StendhalRefactoring
Items
We have the next items structure:
- Shields
- Wooden shield
- Studded shield
- Metal Plate shield
- Copper shield
- Swords
- Dagger
- Sword
- Long sword
- Broadsword
- Armors
- Leather armor
- Studded Leather armor
- Plate Mail armor
- Copper Plate armor
- Boots
- Sandals
- Leather
- Helmet
- Leather helmet
- Studded helmet
- Chain Mail helmet
- Viking helmet
- Leg Armour
- Leather Leg Armour
- Studded Leather Leg Armour
- Chain Mail Leg Armour
- Corpse
- Money
- Book
- Food
- Meat
- Cheese
- Bread
Propierties
We have several common attributes for all the items. Mainly:
- Type
- Class
- Subclass
And some attributes that objects may or many not have:
- Attack
- Defense
- Quantity
Creatures
Actions
- Move
- Stop
- Chat
- Tell
- Outfit
- Attack
- Use
- Equip
- Drop
- Own ( a sheep )
Events
Creatures can recieve the next list of events:
- boolean onAttack(target, weapon)
called when attacking a target with the given weapon. - boolean onAttacked(attacker, weapon)
called when attacked by someone with a given weapon. - void onStopAttack(target)
called when we stop attacking target - void onStopAttacked(target)
called when target stops attacking us - boolean onDamage(type, amount)
called when entity is damaged with the damage type (physical, fire, poison, magical, ... ) and the amount of damage done. - boolean onKilled(attacker, weapon)
called when attacked killed us with the given weapon - boolean onKill(target)
called when entity kills target - boolean onMove(x,y)
called when entity moves to x,y ( before moving in fact ) - boolean onCollide(x,y)
called when entity collide at position x,y - boolean onCollideWith(target)
called when entity collide with another entity - boolean onEquip(item, slot)
called when entity equips item on the given slot - boolean onEquipped(source, slot)
called when entity is equipped on the source entity and in the given slot - boolean onDrop(item, slot)
called when entity drops item from the given slot to floor - boolean onDropped(source, x, y)
called when entity is dropped by source to floor at position x,y - void onChat(source, text)
called when someone speaks near entity or write to entity - boolean onUse(item)
called when entity use item - boolean onUseWith(base, item)
called when entity use item on base item - boolean onUsed(source)
called when entity is used by source - boolean onUsedWith(source, base)
called when entity is used by source on base item - boolean onStop()
called when entity stops moving, attacking, etc...