77 lines
2.9 KiB
Markdown
77 lines
2.9 KiB
Markdown
# 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
|