# Rune Base Attribute Handler Documentation ## Overview This document describes the database relationships and interactions for the `dbRuneBaseAttributeHandler` class. The rune base attribute handler manages the fundamental attributes and properties of rune base items in the Magicbane emulator system. ## Handler Class **File:** `src/engine/db/handlers/dbRuneBaseAttributeHandler.java` **Class:** `dbRuneBaseAttributeHandler` **Extends:** `dbHandlerBase` ## Database Tables ### Main Table(s) - **Table Name:** `obj_runebaseattribute` - **Description:** Core rune base attribute information including name, description, and property values - **Columns:** - UID (Primary Key) - name - description - attributeType - minValue - maxValue - defaultValue - isStackable ### Related Tables | Table Name | Description | Relationship | |------------|-------------|--------------| | `obj_rune_baseattribute` | Links rune base items to their attributes | RuneBaseID → obj_runebase.UID, AttributeID → obj_runebaseattribute.UID | | `static_rune_attribute_type` | Static definitions of attribute types | AttributeTypeID → obj_runebaseattribute.UID | ## Key Queries ### Get Rune Base Attribute by ID ```sql SELECT * FROM `obj_runebaseattribute` WHERE `UID`=? ``` **File:** `dbRuneBaseAttributeHandler.java`, Line ~60 ### Get Attributes for Rune Base ```sql SELECT rba.*, rbaa.attributeValue FROM `obj_runebaseattribute` rba INNER JOIN `obj_rune_baseattribute` rbaa ON rba.`UID` = rbaa.`AttributeID` WHERE rbaa.`RuneBaseID`=? ``` **File:** `dbRuneBaseAttributeHandler.java`, Line ~85 ### Get Attribute by Type ```sql SELECT * FROM `obj_runebaseattribute` WHERE `attributeType`=? ``` **File:** `dbRuneBaseAttributeHandler.java`, Line ~120 ## Relationships 1. **Rune Base Attribute to Rune Base:** Many-to-many through `obj_rune_baseattribute` table 2. **Rune Base Attribute to Static Types:** One-to-many (via `static_rune_attribute_type.AttributeTypeID`) 3. **Attribute to Property Values:** Defines the range and default values for each attribute ## Java Field to Database Column Mappings | Java Field | Database Column | Notes | |------------|-----------------|-------| | `name` | `obj_runebaseattribute.name` | Attribute name | | `description` | `obj_runebaseattribute.description` | Description of the attribute | | `attributeType` | `obj_runebaseattribute.attributeType` | Type of attribute (stat, effect, etc.) | | `minValue` | `obj_runebaseattribute.minValue` | Minimum value allowed | | `maxValue` | `obj_runebaseattribute.maxValue` | Maximum value allowed | | `defaultValue` | `obj_runebaseattribute.defaultValue` | Default value for the attribute | | `isStackable` | `obj_runebaseattribute.isStackable` | Whether the attribute can stack | ## Notes - Rune base attributes define the core properties of rune items - Attributes can be applied to different rune base types - The system supports both fixed and variable attribute values