Files
Server/src/engine/documentation/Handler Specific Documentation/dbSkillReqHandler_Documentation.md
T

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
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

  1. Skill Requirement to Skill Base: Many-to-one (via skillID → obj_skillbase.UID)
  2. Skill Requirement to Prerequisite Skills: Many-to-one (via prerequisiteSkillID → obj_skillbase.UID)
  3. 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