2.7 KiB
2.7 KiB
Power Handler Documentation
Overview
This document describes the database relationships and interactions for the dbPowerHandler class. The power handler manages game powers and abilities that characters can possess and use in the Magicbane emulator system.
Handler Class
File: src/engine/db/handlers/dbPowerHandler.java
Class: dbPowerHandler
Extends: dbHandlerBase
Database Tables
Main Table(s)
- Table Name:
obj_power - Description: Core power information including name, description, and activation properties
- Columns:
- UID (Primary Key)
- name
- description
- powerType
- activationType
- cooldownTime
- duration
- maxLevel
- cost
- iconID
Related Tables
| Table Name | Description | Relationship |
|---|---|---|
obj_character_power |
Tracks character-specific power levels and status | CharacterID → obj_character.UID, PowerID → obj_power.UID |
static_power_requirement |
Stores requirements for unlocking powers | PowerID → obj_power.UID |
Key Queries
Get Power by ID
SELECT * FROM `obj_power` WHERE `UID`=?
File: dbPowerHandler.java, Line ~60
Get Character's Powers
SELECT p.*, cp.level, cp.isUnlocked
FROM `obj_power` p
INNER JOIN `obj_character_power` cp ON p.`UID` = cp.`PowerID`
WHERE cp.`CharacterID`=?
File: dbPowerHandler.java, Line ~85
Get Power Requirements
SELECT * FROM `static_power_requirement` WHERE `PowerID`=?
File: dbPowerHandler.java, Line ~120
Relationships
- Power to Character: Many-to-many through
obj_character_powertable - Power to Requirements: One-to-many (via
static_power_requirement.PowerID) - Power to Static Data: Power definitions are stored in static tables
Java Field to Database Column Mappings
| Java Field | Database Column | Notes |
|---|---|---|
name |
obj_power.name |
Power name |
description |
obj_power.description |
Power description |
powerType |
obj_power.powerType |
Type of power (active, passive) |
activationType |
obj_power.activationType |
How the power is activated |
cooldownTime |
obj_power.cooldownTime |
Cooldown period in seconds |
duration |
obj_power.duration |
Duration of power effect |
maxLevel |
obj_power.maxLevel |
Maximum level for this power |
cost |
obj_power.cost |
Resource cost to use power |
iconID |
obj_power.iconID |
Icon identifier for UI display |
Notes
- The power system is designed to support both active and passive abilities
- Power requirements are stored separately to allow flexible unlocking mechanisms
- Character-specific power data is tracked in the
obj_character_powertable