-
Notifications
You must be signed in to change notification settings - Fork 1
Feature 7: Equipment System (Equip/Unequip Items) #132
Copy link
Copy link
Open
Labels
P2: MediumMedium priority - enhanced UXMedium priority - enhanced UXcharacter-sheetCharacter sheet featuresCharacter sheet featuresenhancementNew feature or requestNew feature or requestgame-masterGame Master mode featuresGame Master mode features
Description
Description
Allow items to be marked as equipped, with visual indicators and stat modifiers applied.
Priority
P2 (Medium) - Enhances inventory system
Estimated Effort
3 days
Dependencies
- Feature 6: Basic Inventory Management #131 (Feature 6: Basic Inventory Management)
Acceptance Criteria
- Toggle button to equip/unequip items
- Equipped items have visual indicator (checkmark, highlight)
- Equipped weapon/armor affects stats
- Only one weapon and one armor equipped at a time
- Equipping new item unequips old one
- Stat modifiers calculated and displayed
Implementation Details
const equipItem = async (itemId: string) => {
const item = inventory.find(i => i.id === itemId);
// Unequip other items of same type
const updatedInventory = inventory.map(i => ({
...i,
equipped: i.id === itemId ? true : (i.type === item.type ? false : i.equipped)
}));
await updateInventory(updatedInventory);
// Recalculate stats based on equipped items
recalculateStats(updatedInventory);
};
const recalculateStats = (inventory: InventoryItem[]) => {
const equippedItems = inventory.filter(i => i.equipped);
let acBonus = 0;
let damageBonus = 0;
equippedItems.forEach(item => {
if (item.stats?.armorClass) acBonus += item.stats.armorClass;
if (item.stats?.damage) damageBonus += item.stats.damage;
});
// Update character stats
updateCharacterStat('armorClass', baseAC + acBonus);
};Testing
- Equip weapon → stat bonus applied
- Equip armor → AC increases
- Equipping new weapon unequips old
- Visual indicator shows equipped
- Stats recalculate correctly
Related Documentation
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P2: MediumMedium priority - enhanced UXMedium priority - enhanced UXcharacter-sheetCharacter sheet featuresCharacter sheet featuresenhancementNew feature or requestNew feature or requestgame-masterGame Master mode featuresGame Master mode features