public class CharacterAttribute : Attribute { /* ... */ }
public enum CharacterAttributeType {
Health
}
public class Character {
private Dictionary<CharacterAttributeType, CharacterAttribute> attributes;
public CharacterAttribute GetAttribute (CharacterAttributeType type) {
return this.attributes[type];
}
}
// Adesso sarĂ possibile monitorare "la morte del personaggio" in questo modo.
istanzaPersonaggio.GetAttribute(CharacterAttributeType.Health).OnCurrentChange = (int amount) => {
if (istanzaPersonaggio.GetAttribute(CharacterAttributeType.Health).Current == 0) {
/* Morto. */
}
}