equipment slot audit
Guide for equipment slot audit
Equipment Slot Mismatch Audit
Issue
There is a discrepancy between the
EquipmentSlot enum in items.rs and the implementation in equipment.rs.items.rs (Enum)
pub enum EquipmentSlot {
Head,
Body,
Legs,
Weapon,
Shield,
Hands,
Feet,
Cape,
Ammo, // Present here
}Missing:
Neck, Ring, Boon.equipment.rs (DB Schema)
pub struct PlayerEquipment {
pub head: Option<String>,
pub neck: Option<String>, // Present here
pub body: Option<String>,
pub legs: Option<String>,
pub weapon: Option<String>,
pub shield: Option<String>,
pub hands: Option<String>,
pub feet: Option<String>,
pub cape: Option<String>,
pub ring: Option<String>, // Present here
pub boon: Option<String>, // Present here
// Missing: Ammo
}Consequences
- Cannot define Neck/Ring items:
ItemDefusesEquipmentSlot. SinceNeckisn't in the enum, we can't create amulets properly in code. - Cannot equip Ammo: The database and
PlayerEquipmentstruct lack anammocolumn. Ranged combat requiring arrows will fail to find equipped ammo.
Recommendations
- Update
EquipmentSlotEnum: AddNeck,Ring,Boonto the enum initems.rs. - Update Database Schema: Add
ammocolumn toplayer_equipmenttable.ALTER TABLE player_equipment ADD COLUMN ammo VARCHAR; - Update
PlayerEquipmentStruct: Addammo: Option<String>to the struct inequipment.rs. - Update
EquipmentManager: Handle definitions for new slots.