summaryrefslogtreecommitdiff
path: root/src/being.h
diff options
context:
space:
mode:
authorsniper <sniper@livecd.janhome.net>2009-03-10 14:28:31 +0100
committerJared Adams <jaxad0127@gmail.com>2009-03-10 08:01:51 -0600
commitcf49b996e41f6e28aa67fb2d6891c1b28e65d520 (patch)
treea12a5ee85064b2271e3c21554e89649ea07a3540 /src/being.h
parent7aeec98b0d2ff6c034c78e9ae6572179a808cfc5 (diff)
downloadmana-cf49b996e41f6e28aa67fb2d6891c1b28e65d520.tar.gz
mana-cf49b996e41f6e28aa67fb2d6891c1b28e65d520.tar.bz2
mana-cf49b996e41f6e28aa67fb2d6891c1b28e65d520.tar.xz
mana-cf49b996e41f6e28aa67fb2d6891c1b28e65d520.zip
Extended hit type handling
The client can now differentiate between the following hit types: - hit (normal) - critical (full attack) - multi (more than one hit at once, currently not used) - reflect (reflected damage, currently not used) - flee (dodging criticals) The Being's showCrit method is now merged into takeDamage. Being's takeDamage and handleAttack now both get the opponent, the amount of damage and the attack type as parameter.
Diffstat (limited to 'src/being.h')
-rw-r--r--src/being.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/being.h b/src/being.h
index ef216841..3f753fcf 100644
--- a/src/being.h
+++ b/src/being.h
@@ -124,6 +124,15 @@ class Being : public Sprite
NUM_SPEECH
};
+ enum AttackType
+ {
+ HIT = 0x00,
+ CRITICAL = 0x0a,
+ MULTI = 0x08,
+ REFLECT = 0x04,
+ FLEE = 0x0b
+ };
+
/**
* Directions, to be used as bitmask values
*/
@@ -172,22 +181,20 @@ class Being : public Sprite
/**
* Puts a damage bubble above this being.
*
- * @param amount The amount of damage.
- */
- virtual void takeDamage(int amount);
-
- /**
- * Puts a crit notification bubble above this being.
+ * @param attacker the attacking being
+ * @param damage the amount of damage recieved (0 means miss)
+ * @param type the attack type
*/
- virtual void showCrit();
+ virtual void takeDamage(Being *attacker, int damage, AttackType type);
/**
* Handles an attack of another being by this being.
*
- * @param victim The attacked being.
- * @param damage The amount of damage dealt (0 means miss).
+ * @param victim the victim being
+ * @param damage the amount of damage dealt (0 means miss)
+ * @param type the attack type
*/
- virtual void handleAttack(Being *victim, int damage);
+ virtual void handleAttack(Being *victim, int damage, AttackType type);
/**
* Returns the name of the being.