typos
[k8-i-v-a-n.git] / src / game / humans / humanoid_werewolfwolf.cpp
blob22aa1dfa446d864591c9282dd68855870fc4675b
1 #ifdef HEADER_PHASE
2 CHARACTER(werewolfwolf, humanoid)
4 public:
5 virtual festring GetKillName() const;
6 virtual truth SpecialBiteEffect(character* Victim, v2 HitPos, int BodyPartIndex, int Direction, truth BlockedByArmour, truth Critical, int DoneDamage);
7 };
10 #else
13 festring werewolfwolf::GetKillName() const
15 if(GetPolymorphBackup() && GetPolymorphBackup()->GetType() == werewolfhuman::ProtoType.GetIndex())
16 return GetName(INDEFINITE);
18 return humanoid::GetKillName();
22 truth werewolfwolf::SpecialBiteEffect(character* Victim, v2 HitPos, int BodyPartIndex, int Direction, truth BlockedByArmour, truth Critical, int DoneDamage) {
23 if (!BlockedByArmour && Victim->IsWarmBlooded() && (!(RAND() % 2) || Critical) && !Victim->AllowSpoil()) {
24 // Werewolf wolf gives lycanthropy
25 if (Victim->IsHumanoid() && !Victim->StateIsActivated(VAMPIRISM) && !Victim->StateIsActivated(LYCANTHROPY) && !Victim->StateIsActivated(DISEASE_IMMUNITY)) {
26 Victim->BeginTemporaryState(LYCANTHROPY, 6000 + RAND_N(2000));
29 // Werewolves do double damage against vampires and this is a drain attack
30 if (Victim->StateIsActivated(VAMPIRISM) && (DoneDamage >= 1)) {
31 if (IsPlayer())
32 ADD_MESSAGE("You drain some life force from %s!", Victim->CHAR_DESCRIPTION(DEFINITE));
33 else if (Victim->IsPlayer() || Victim->CanBeSeenByPlayer() || CanBeSeenByPlayer())
34 ADD_MESSAGE("%s drains some life force from %s!", CHAR_DESCRIPTION(DEFINITE), Victim->CHAR_DESCRIPTION(DEFINITE));
35 return Victim->ReceiveBodyPartDamage(this, DoneDamage, DRAIN, BodyPartIndex, Direction);
37 return false;
39 return false;
42 #endif