`MagicEffect*` thingys are working for all melee weapons
[k8-i-v-a-n.git] / src / game / gears / meleeweapon_slowaxe.cpp
blob706fa2f61d1c229638b4b35b029027337c99ae4c
1 #ifdef HEADER_PHASE
2 ITEM(slowaxe, meleeweapon)
4 //public:
5 //virtual truth HitEffect(character*, character*, v2, int, int, truth);
6 };
9 #else
13 truth slowaxe::HitEffect (character *Enemy, character *Hitter, v2 HitPos, int BodyPartIndex, int Direction, truth BlockedByArmour) {
14 truth BaseSuccess = meleeweapon::HitEffect(Enemy, Hitter, HitPos, BodyPartIndex, Direction, BlockedByArmour);
15 if (GetMagicEffect() > 0 && Enemy->IsEnabled() && GetMagicEffectChance().inRange()) {
16 if (Hitter) {
17 if (Enemy->IsPlayer() || Hitter->IsPlayer() || Enemy->CanBeSeenByPlayer() || Hitter->CanBeSeenByPlayer()) {
18 //ADD_MESSAGE("%s axe chills %s.", Hitter->CHAR_POSSESSIVE_PRONOUN, Enemy->CHAR_DESCRIPTION(DEFINITE));
19 ProcessAndAddRandomMessage(GetMagicMessageCanSee(), Hitter, Enemy);
21 } else {
22 if (Enemy->IsPlayer() || Enemy->CanBeSeenByPlayer()) {
23 //ADD_MESSAGE("The axe chills %s.", Enemy->CHAR_DESCRIPTION(DEFINITE));
24 ProcessAndAddRandomMessage(GetMagicMessageCannotSee(), Hitter, Enemy);
27 //Enemy->BeginTemporaryState(SLOW, 400+RAND_N(200));
28 Enemy->BeginTemporaryState(GetMagicEffect(), GetMagicEffectDuration().rand()); //400+RAND_N(200)
29 return BaseSuccess;
31 return BaseSuccess;
36 #endif