forked from MagicBane/Server
3.0 KiB
3.0 KiB
Skill Requirement Handler Documentation
Overview
This document describes the database relationships and interactions for the dbSkillReqHandler class. The skill requirement handler manages the prerequisites and conditions needed to unlock or use various skills in the Magicbane emulator system.
Handler Class
File: src/engine/db/handlers/dbSkillReqHandler.java
Class: dbSkillReqHandler
Extends: dbHandlerBase
Database Tables
Main Table(s)
- Table Name:
static_skill_requirement - Description: Core skill requirement information including type, value, and conditions
- Columns:
- UID (Primary Key)
- skillID
- requirementType
- requirementValue
- prerequisiteSkillID
- prerequisiteLevel
- prerequisiteStat
Related Tables
| Table Name | Description | Relationship |
|---|---|---|
obj_skillbase |
Links to the skill that has requirements | SkillID → obj_skillbase.UID |
obj_character_skill |
Tracks character-specific skill status | CharacterID → obj_character.UID, SkillID → obj_skillbase.UID |
Key Queries
Get Skill Requirements by Skill ID
SELECT * FROM `static_skill_requirement` WHERE `skillID`=?
File: dbSkillReqHandler.java, Line ~60
Get Specific Requirement by ID
SELECT * FROM `static_skill_requirement` WHERE `UID`=?
File: dbSkillReqHandler.java, Line ~85
Get Requirements for Character Skill
SELECT sr.*, cs.level as characterLevel
FROM `static_skill_requirement` sr
LEFT JOIN `obj_character_skill` cs ON sr.`prerequisiteSkillID` = cs.`SkillID`
WHERE sr.`skillID`=?
File: dbSkillReqHandler.java, Line ~120
Relationships
- Skill Requirement to Skill Base: Many-to-one (via
skillID→ obj_skillbase.UID) - Skill Requirement to Prerequisite Skills: Many-to-one (via
prerequisiteSkillID→ obj_skillbase.UID) - Skill Requirement to Character Skills: One-to-many through character skill tracking
Java Field to Database Column Mappings
| Java Field | Database Column | Notes |
|---|---|---|
skillID |
static_skill_requirement.skillID |
Reference to the skill that requires this condition |
requirementType |
static_skill_requirement.requirementType |
Type of requirement (level, skill, stat) |
requirementValue |
static_skill_requirement.requirementValue |
Value needed for requirement |
prerequisiteSkillID |
static_skill_requirement.prerequisiteSkillID |
Prerequisite skill ID if applicable |
prerequisiteLevel |
static_skill_requirement.prerequisiteLevel |
Required level of prerequisite skill |
prerequisiteStat |
static_skill_requirement.prerequisiteStat |
Required stat value if applicable |
Notes
- Skill requirements define the conditions needed to unlock or use skills
- Requirements can be based on character level, other skills, or specific stats
- The system supports complex requirement chains for advanced skill trees