diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-07-27 00:06:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-07-27 00:06:24 +0300 |
commit | 0419f9b7ea98b9de36b6af97fccd964d3cda4750 (patch) | |
tree | 254ebf5626fc22f9ef1730b3e4f1a55233d5e076 /src/being/playerinfo.cpp | |
parent | fab734c769e590b086096e29a498a5a4d71d1946 (diff) | |
download | manaverse-0419f9b7ea98b9de36b6af97fccd964d3cda4750.tar.gz manaverse-0419f9b7ea98b9de36b6af97fccd964d3cda4750.tar.bz2 manaverse-0419f9b7ea98b9de36b6af97fccd964d3cda4750.tar.xz manaverse-0419f9b7ea98b9de36b6af97fccd964d3cda4750.zip |
Calculate damage per second for homunculus and mercenary.
Diffstat (limited to 'src/being/playerinfo.cpp')
-rw-r--r-- | src/being/playerinfo.cpp | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp index 6ed4fceba..89fd30245 100644 --- a/src/being/playerinfo.cpp +++ b/src/being/playerinfo.cpp @@ -396,25 +396,37 @@ void setTrading(const Trading trading) mTrading = trading; } +#define updateAttackStat(atk, delay, speed) \ + attackDelay = getStatBase(delay); \ + if (attackDelay) \ + { \ + setStatBase(speed, \ + getStatBase(atk) * 1000 / attackDelay, \ + Notify_false); \ + setStatMod(speed, \ + getStatMod(atk) * 1000 / attackDelay, \ + Notify_true); \ + } \ + else \ + { \ + setStatBase(speed, 0, \ + Notify_false); \ + setStatMod(speed, 0, \ + Notify_true); \ + } + void updateAttrs() { - const int attackDelay = getStatBase(Attributes::PLAYER_ATTACK_DELAY); - if (attackDelay) - { - setStatBase(Attributes::PLAYER_ATTACK_SPEED, - getStatBase(Attributes::PLAYER_ATK) * 1000 / attackDelay, - Notify_false); - setStatMod(Attributes::PLAYER_ATTACK_SPEED, - getStatMod(Attributes::PLAYER_ATK) * 1000 / attackDelay, - Notify_true); - } - else - { - setStatBase(Attributes::PLAYER_ATTACK_SPEED, 0, - Notify_false); - setStatMod(Attributes::PLAYER_ATTACK_SPEED, 0, - Notify_true); - } + int attackDelay; + updateAttackStat(Attributes::PLAYER_ATK, + Attributes::PLAYER_ATTACK_DELAY, + Attributes::PLAYER_ATTACK_SPEED) + updateAttackStat(Attributes::HOMUN_ATK, + Attributes::HOMUN_ATTACK_DELAY, + Attributes::HOMUN_ATTACK_SPEED) + updateAttackStat(Attributes::MERC_ATK, + Attributes::MERC_ATTACK_DELAY, + Attributes::MERC_ATTACK_SPEED) } void init() |