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

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

  1. Power to Character: Many-to-many through obj_character_power table
  2. Power to Requirements: One-to-many (via static_power_requirement.PowerID)
  3. 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_power table