3 * Iter Vehemens ad Necem (IVAN)
4 * Copyright (C) Timo Kiviluoto
5 * Released under the GNU General
8 * See LICENSING which should be included
9 * along with this file for more details
18 CHARACTER(humanoid
, character
)
21 friend class rightarm
;
24 humanoid () : CurrentRightSWeaponSkill(0), CurrentLeftSWeaponSkill(0) { }
25 humanoid (const humanoid
&);
27 virtual truth
CanWield () const;
28 virtual truth
Hit (character
*, v2
, int, int = 0);
29 virtual int GetSize () const;
30 head
*GetHead () const { return static_cast<head
*>(*BodyPartSlot
[HEAD_INDEX
]); }
31 arm
*GetRightArm () const { return static_cast<arm
*>(*BodyPartSlot
[RIGHT_ARM_INDEX
]); }
32 arm
*GetLeftArm () const { return static_cast<arm
*>(*BodyPartSlot
[LEFT_ARM_INDEX
]); }
33 groin
*GetGroin () const { return static_cast<groin
*>(*BodyPartSlot
[GROIN_INDEX
]); }
34 leg
*GetRightLeg () const { return static_cast<leg
*>(*BodyPartSlot
[RIGHT_LEG_INDEX
]); }
35 leg
*GetLeftLeg () const { return static_cast<leg
*>(*BodyPartSlot
[LEFT_LEG_INDEX
]); }
36 item
*GetHelmet () const { return GetHead() ? GetHead()->GetHelmet() : 0; }
37 item
*GetAmulet () const { return GetHead() ? GetHead()->GetAmulet() : 0; }
38 item
*GetCloak () const { return GetHumanoidTorso() ? GetHumanoidTorso()->GetCloak() : 0; }
39 item
*GetBodyArmor () const { return GetHumanoidTorso() ? GetHumanoidTorso()->GetBodyArmor() : 0; }
40 item
*GetBelt () const { return GetHumanoidTorso() ? GetHumanoidTorso()->GetBelt() : 0; }
41 item
*GetRightWielded () const { return GetRightArm() ? GetRightArm()->GetWielded() : 0; }
42 item
*GetLeftWielded () const { return GetLeftArm() ? GetLeftArm()->GetWielded() : 0; }
43 item
*GetRightRing () const { return GetRightArm() ? GetRightArm()->GetRing() : 0; }
44 item
*GetLeftRing () const { return GetLeftArm() ? GetLeftArm()->GetRing() : 0; }
45 item
*GetRightGauntlet () const { return GetRightArm() ? GetRightArm()->GetGauntlet() : 0; }
46 item
*GetLeftGauntlet () const { return GetLeftArm() ? GetLeftArm()->GetGauntlet() : 0; }
47 item
*GetRightBoot () const { return GetRightLeg() ? GetRightLeg()->GetBoot() : 0; }
48 item
*GetLeftBoot () const { return GetLeftLeg() ? GetLeftLeg()->GetBoot() : 0; }
49 void SetHelmet (item
*What
) { GetHead()->SetHelmet(What
); }
50 void SetAmulet (item
*What
) { GetHead()->SetAmulet(What
); }
51 void SetCloak (item
*What
) { GetHumanoidTorso()->SetCloak(What
); }
52 void SetBodyArmor (item
*What
) { GetHumanoidTorso()->SetBodyArmor(What
); }
53 void SetBelt (item
*What
) { GetHumanoidTorso()->SetBelt(What
); }
54 void SetRightWielded (item
*What
) { GetRightArm()->SetWielded(What
); }
55 void SetLeftWielded (item
*What
) { GetLeftArm()->SetWielded(What
); }
56 void SetRightRing (item
*What
) { GetRightArm()->SetRing(What
); }
57 void SetLeftRing (item
*What
) { GetLeftArm()->SetRing(What
); }
58 void SetRightGauntlet (item
*What
) { GetRightArm()->SetGauntlet(What
); }
59 void SetLeftGauntlet (item
*What
) { GetLeftArm()->SetGauntlet(What
); }
60 void SetRightBoot (item
*What
) { GetRightLeg()->SetBoot(What
); }
61 void SetLeftBoot (item
*What
) { GetLeftLeg()->SetBoot(What
); }
62 arm
*GetMainArm () const;
63 arm
*GetSecondaryArm () const;
64 virtual truth
ReceiveDamage(character
*, int, int, int = ALL
, int = 8, truth
= false, truth
= false, truth
= false, truth
= true);
65 virtual truth
BodyPartIsVital(int) const;
66 virtual truth
BodyPartCanBeSevered(int) const;
67 virtual item
* GetMainWielded() const;
68 virtual item
* GetSecondaryWielded() const;
69 virtual cchar
* GetEquipmentName(int) const;
70 virtual bodypart
* GetBodyPartOfEquipment(int) const;
71 virtual item
* GetEquipment(int) const;
72 virtual int GetEquipments() const { return 13; }
73 virtual void SwitchToDig(item
*, v2
);
74 virtual int GetUsableLegs() const;
75 virtual int GetUsableArms() const;
76 virtual truth
CheckKick() const;
77 virtual int OpenMultiplier() const;
78 virtual int CloseMultiplier() const;
79 virtual truth
CheckThrow() const;
80 virtual truth
CheckThrowItemOpportunity();
81 virtual truth
CheckOffer() const;
82 virtual sorter
EquipmentSorter(int) const;
83 virtual void SetEquipment(int, item
*);
84 virtual void DrawSilhouette(truth
) const;
85 virtual int GetGlobalResistance(int) const;
86 virtual truth
TryToRiseFromTheDead();
87 virtual truth
HandleNoBodyPart(int);
88 virtual void Kick(lsquare
*, int, truth
= false);
89 virtual double GetTimeToKill(ccharacter
*, truth
) const;
90 virtual int GetAttribute(int, truth
= true) const;
91 virtual truth
EditAttribute(int, int);
92 virtual void EditExperience(int, double, double);
93 virtual int DrawStats(truth
) const;
94 virtual void Bite(character
*, v2
, int, truth
= false);
95 virtual int GetCarryingStrength() const;
96 virtual int GetRandomStepperBodyPart() const;
97 virtual int CheckForBlock(character
*, item
*, double, int, int, int);
98 virtual truth
AddSpecialSkillInfo(felist
&) const;
99 virtual truth
CheckBalance(double);
100 virtual sLong
GetMoveAPRequirement(int) const;
101 virtual v2
GetEquipmentPanelPos(int) const;
102 virtual truth
EquipmentEasilyRecognized(int) const;
103 sweaponskill
* GetCurrentRightSWeaponSkill() const { return CurrentRightSWeaponSkill
; }
104 void SetCurrentRightSWeaponSkill(sweaponskill
* What
) { CurrentRightSWeaponSkill
= What
; }
105 sweaponskill
* GetCurrentLeftSWeaponSkill() const { return CurrentLeftSWeaponSkill
; }
106 void SetCurrentLeftSWeaponSkill(sweaponskill
* What
) { CurrentLeftSWeaponSkill
= What
; }
107 virtual void SWeaponSkillTick();
108 virtual void Save(outputfile
&) const;
109 virtual void Load(inputfile
&);
110 virtual void SignalEquipmentAdd(int);
111 virtual void SignalEquipmentRemoval(int, citem
*);
112 virtual void DrawBodyParts(blitdata
&) const;
113 virtual truth
CanUseStethoscope(truth
) const;
114 virtual truth
IsUsingArms() const;
115 virtual truth
IsUsingLegs() const;
116 virtual truth
IsUsingHead() const;
117 virtual void CalculateBattleInfo();
118 virtual void CalculateBodyParts();
119 virtual void CalculateAllowedWeaponSkillCategories();
120 virtual truth
HasALeg() const { return HasAUsableLeg(); }
121 virtual void AddSpecialEquipmentInfo(festring
&, int) const;
122 virtual void CreateInitialEquipment(int);
123 virtual festring
GetBodyPartName(int, truth
= false) const;
124 virtual void CreateBlockPossibilityVector(blockvector
&, double) const;
125 virtual item
* SevereBodyPart(int, truth
= false, stack
* = 0);
126 virtual int GetSWeaponSkillLevel(citem
*) const;
127 virtual truth
UseMaterialAttributes() const;
128 virtual void CalculateDodgeValue();
129 virtual truth
CheckZap();
130 virtual truth
IsHumanoid() const { return true; }
131 virtual truth
CheckTalk();
132 virtual truth
CheckIfEquipmentIsNotUsable(int) const;
133 virtual void AddSpecialStethoscopeInfo(felist
&) const;
134 virtual item
* GetPairEquipment(int) const;
135 virtual truth
HasHead() const { return truth(GetHead()); }
136 virtual cfestring
& GetStandVerb() const;
137 virtual head
* Behead();
138 virtual void AddAttributeInfo(festring
&) const;
139 virtual void AddAttackInfo(felist
&) const;
140 virtual void AddDefenceInfo(felist
&) const;
141 virtual void DetachBodyPart();
142 virtual int GetRandomApplyBodyPart() const;
143 void EnsureCurrentSWeaponSkillIsCorrect(sweaponskill
*&, citem
*);
144 virtual int GetSumOfAttributes() const;
145 virtual truth
CheckConsume(cfestring
&) const;
146 virtual truth
CanConsume(material
*) const;
147 virtual truth
PreProcessForBone();
148 virtual void FinalProcessForBone();
149 virtual void StayOn(liquid
*);
150 virtual head
* GetVirtualHead() const { return GetHead(); }
151 virtual character
* CreateZombie() const;
152 virtual void LeprosyHandler();
153 virtual void DropRandomNonVitalBodypart();
154 virtual void DropBodyPart(int);
155 virtual void DuplicateEquipment(character
*, uLong
);
156 virtual int GetAttributeAverage() const;
157 virtual truth
CanVomit() const;
158 virtual truth
CheckApply() const;
159 virtual truth
CanForceVomit() const { return TorsoIsAlive() && HasAUsableArm(); }
160 virtual truth
IsTransparent() const;
161 virtual void ModifySituationDanger(double&) const;
162 virtual int RandomizeTryToUnStickBodyPart(uLong
) const;
163 virtual truth
AllowUnconsciousness() const;
164 virtual truth
CanChokeOnWeb(web
*) const;
165 virtual truth
BrainsHurt() const;
166 virtual cchar
* GetRunDescriptionLine(int) const;
167 virtual cchar
* GetNormalDeathMessage() const;
168 virtual void ApplySpecialAttributeBonuses();
169 virtual truth
MindWormCanPenetrateSkull(mindworm
*) const;
170 truth
HasSadistWeapon() const;
171 virtual truth
HasSadistAttackMode() const;
173 virtual v2
GetBodyPartBitmapPos(int, truth
= false) const;
174 virtual col16
GetBodyPartColorB(int, truth
= false) const;
175 virtual col16
GetBodyPartColorC(int, truth
= false) const;
176 virtual col16
GetBodyPartColorD(int, truth
= false) const;
177 virtual int GetBodyPartSparkleFlags(int) const;
178 virtual sLong
GetBodyPartSize(int, int) const;
179 virtual sLong
GetBodyPartVolume(int) const;
180 virtual bodypart
* MakeBodyPart(int) const;
181 virtual cfestring
& GetDeathMessage() const;
182 virtual v2
GetDrawDisplacement(int) const { return ZERO_V2
; }
183 truth
HasAUsableArm() const;
184 truth
HasAUsableLeg() const;
185 truth
HasTwoUsableLegs() const;
186 truth
CanAttackWithAnArm() const;
187 truth
RightArmIsUsable() const;
188 truth
LeftArmIsUsable() const;
189 truth
RightLegIsUsable() const;
190 truth
LeftLegIsUsable() const;
191 std::list
<sweaponskill
*> SWeaponSkill
;
192 sweaponskill
* CurrentRightSWeaponSkill
;
193 sweaponskill
* CurrentLeftSWeaponSkill
;
194 static cint DrawOrder
[];
197 CHARACTER(playerkind
, humanoid
)
201 playerkind(const playerkind
&);
202 virtual void Save(outputfile
&) const;
203 virtual void Load(inputfile
&);
204 virtual void SetSoulID(uLong
);
205 virtual truth
SuckSoul(character
*);
206 virtual truth
TryToRiseFromTheDead();
207 virtual void FinalProcessForBone();
208 virtual void BeTalkedTo();
209 virtual truth
IsHuman() const { return true; }
210 virtual col16
GetHairColor() const { return HairColor
; }
211 virtual col16
GetEyeColor() const { return EyeColor
; }
212 virtual v2
GetHeadBitmapPos() const;
213 virtual v2
GetRightArmBitmapPos() const;
214 virtual v2
GetLeftArmBitmapPos() const;
215 virtual int GetNaturalSparkleFlags() const;
216 virtual truth
IsPlayerKind() const { return true; }
217 virtual double GetNaturalExperience(int) const;
219 virtual bodypart
* MakeBodyPart(int) const;
220 virtual void PostConstruct();
230 CHARACTER(petrus
, humanoid
)
235 virtual void Save(outputfile
&) const;
236 virtual void Load(inputfile
&);
237 virtual void BeTalkedTo();
238 truth
HealFully(character
*);
239 virtual void FinalProcessForBone();
240 virtual truth
MoveTowardsHomePos();
242 virtual void CreateCorpse(lsquare
*);
243 virtual void GetAICommand();
247 CHARACTER(farmer
, humanoid
)
250 virtual v2
GetHeadBitmapPos() const;
251 virtual v2
GetRightArmBitmapPos() const;
252 virtual v2
GetLeftArmBitmapPos() const { return GetRightArmBitmapPos(); }
255 CHARACTER(guard
, humanoid
)
258 guard() : NextWayPoint(0) { }
259 virtual void Save(outputfile
&) const;
260 virtual void Load(inputfile
&);
261 virtual void GetAICommand();
262 virtual void SetWayPoints(const fearray
<packv2
>&);
263 virtual truth
MoveTowardsHomePos();
264 virtual void BeTalkedTo();
266 std::vector
<v2
> WayPoints
;
270 CHARACTER(shopkeeper
, humanoid
)
275 virtual void GetAICommand() { StandIdleAI(); }
278 CHARACTER(priest
, humanoid
)
281 virtual void GetAICommand () { StandIdleAI(); }
282 virtual void BeTalkedTo ();
285 CHARACTER(exiledpriest
, priest
)
289 virtual ~exiledpriest ();
290 virtual void Save (outputfile
&) const;
291 virtual void Load (inputfile
&);
292 virtual void BeTalkedTo ();
293 virtual truth
MoveTowardsHomePos ();
295 virtual void GetAICommand ();
296 void healBodyParts ();
297 void healDeseases ();
303 CHARACTER(oree
, humanoid
)
306 virtual void Bite(character
*, v2
, int, truth
= false);
307 virtual void GetAICommand();
309 virtual cchar
* FirstPersonBiteVerb() const;
310 virtual cchar
* FirstPersonCriticalBiteVerb() const;
311 virtual cchar
* ThirdPersonBiteVerb() const;
312 virtual cchar
* ThirdPersonCriticalBiteVerb() const;
313 virtual cchar
* BiteNoun() const;
314 void CallForMonsters();
317 CHARACTER(darkknight
, humanoid
)
320 virtual int ModifyBodyPartHitPreference(int, int) const;
321 virtual int ModifyBodyPartToHitChance(int, int) const;
322 virtual truth
CanPanicFromSeveredBodyPart() const { return false; }
323 virtual void SpecialBodyPartSeverReaction();
326 CHARACTER(ennerbeast
, humanoid
)
329 virtual truth
Hit(character
*, v2
, int, int = 0);
330 virtual truth
MustBeRemovedFromBone() const;
332 virtual bodypart
* MakeBodyPart(int) const;
333 virtual void GetAICommand();
334 virtual truth
AttackIsBlockable(int) const { return false; }
337 CHARACTER(skeleton
, humanoid
)
340 virtual void BeTalkedTo();
341 virtual item
* SevereBodyPart(int, truth
= false, stack
* = 0);
342 virtual truth
BodyPartIsVital(int) const;
343 virtual sLong
GetBodyPartVolume(int) const;
345 virtual void CreateCorpse(lsquare
*);
348 CHARACTER(goblin
, humanoid
)
352 CHARACTER(golem
, humanoid
)
356 virtual truth
MoveRandomly();
357 virtual truth
CheckForUsefulItemsOnGround(truth
= true) { return false; }
358 virtual void BeTalkedTo();
359 virtual void Save(outputfile
&) const;
360 virtual void Load(inputfile
&);
361 void SetItemVolume(sLong What
) { ItemVolume
= What
; }
363 virtual truth
AddAdjective(festring
&, truth
) const;
364 virtual material
* CreateBodyPartMaterial(int, sLong
) const;
365 virtual void CreateCorpse(lsquare
*);
369 CHARACTER(communist
, humanoid
)
372 virtual truth
MoveRandomly();
373 virtual void BeTalkedTo();
374 virtual truth
BoundToUse(citem
*, int) const;
375 virtual truth
MustBeRemovedFromBone() const;
377 virtual truth
ShowClassDescription() const;
380 CHARACTER(hunter
, humanoid
)
383 virtual void BeTalkedTo();
385 virtual void CreateBodyParts(int);
388 CHARACTER(slave
, playerkind
)
391 virtual void BeTalkedTo();
392 virtual void GetAICommand();
393 virtual col16
GetHairColor() const { return humanoid::GetHairColor(); }
394 virtual col16
GetEyeColor() const { return humanoid::GetEyeColor(); }
396 virtual void PostConstruct();
399 CHARACTER(petrusswife
, humanoid
)
402 petrusswife() : GiftTotal(0) { }
403 virtual truth
MoveRandomly() { return MoveRandomlyInRoom(); }
404 virtual truth
SpecialEnemySightedReaction(character
*);
405 virtual void Save(outputfile
&) const;
406 virtual void Load(inputfile
&);
407 virtual void BeTalkedTo();
412 CHARACTER(housewife
, humanoid
)
415 virtual truth
SpecialEnemySightedReaction(character
*);
417 virtual int GetHairColor() const;
418 virtual v2
GetHeadBitmapPos() const;
421 CHARACTER(femaleslave
, humanoid
)
424 virtual void BeTalkedTo();
426 virtual void GetAICommand() { StandIdleAI(); }
429 CHARACTER(librarian
, humanoid
)
432 virtual void BeTalkedTo();
434 virtual void GetAICommand() { StandIdleAI(); }
437 CHARACTER(zombie
, humanoid
)
440 virtual void BeTalkedTo();
441 virtual truth
BodyPartIsVital(int) const;
442 virtual void CreateBodyParts(int);
443 virtual truth
AllowSpoil() const { return true; }
444 void SetDescription(cfestring What
) { Description
= What
; }
445 virtual void Save(outputfile
&) const;
446 virtual void Load(inputfile
&);
447 virtual festring
GetZombieDescription() const;
449 virtual void PostConstruct();
450 virtual void AddPostFix(festring
&, int) const;
451 virtual void GetAICommand();
452 virtual truth
AllowExperience() const { return false; }
453 festring Description
;
456 CHARACTER(imp
, humanoid
)
460 CHARACTER(mistress
, humanoid
)
463 virtual int TakeHit(character
*, item
*, bodypart
*, v2
, double, double, int, int, int, truth
, truth
);
464 virtual truth
ReceiveDamage(character
*, int, int, int = ALL
, int = 8, truth
= false, truth
= false, truth
= false, truth
= true);
465 virtual truth
AllowEquipment(citem
*, int) const;
468 CHARACTER(werewolfhuman
, humanoid
)
472 CHARACTER(werewolfwolf
, humanoid
)
475 virtual festring
GetKillName() const;
478 CHARACTER(kobold
, humanoid
)
482 CHARACTER(gibberling
, humanoid
)
486 CHARACTER(angel
, humanoid
)
489 angel() : LastHealed(0) { }
490 virtual void Load(inputfile
&);
491 virtual void Save(outputfile
&) const;
492 virtual truth
AttachBodyPartsOfFriendsNear();
493 virtual truth
BodyPartIsVital(int) const;
494 virtual int GetAttribute(int, truth
= true) const;
495 virtual col24
GetBaseEmitation() const;
496 virtual truth
CanCreateBodyPart(int) const;
497 virtual cfestring
& GetStandVerb() const { return character::GetStandVerb(); }
498 virtual void FinalProcessForBone();
499 virtual void CreateInitialEquipment(int);
501 virtual int GetTorsoMainColor() const;
502 virtual int GetArmMainColor() const;
503 virtual void GetAICommand();
507 CHARACTER(kamikazedwarf
, humanoid
)
510 virtual truth
Hit(character
*, v2
, int, int = 0);
511 virtual truth
CheckForUsefulItemsOnGround(truth
= true) { return false; }
512 virtual void GetAICommand();
513 virtual void CreateInitialEquipment(int);
514 virtual truth
IsKamikazeDwarf() const { return true; }
515 virtual void SingRandomSong();
517 virtual int GetTorsoMainColor() const;
518 virtual int GetGauntletColor() const;
519 virtual int GetLegMainColor() const;
520 virtual v2
GetDrawDisplacement(int) const;
521 virtual int GetWSkillHits() const { return 10000; }
522 virtual truth
IsElite() const { return false; }
525 CHARACTER(axethrowerdwarf
, humanoid
)
528 virtual void GetAICommand();
529 virtual void CreateInitialEquipment(int);
531 virtual int GetTorsoMainColor() const;
532 virtual int GetGauntletColor() const;
533 virtual int GetLegMainColor() const;
534 virtual v2
GetDrawDisplacement(int) const;
535 virtual int GetWSkillHits() const { return 10000; }
536 virtual truth
IsElite() const { return false; }
539 CHARACTER(genie
, humanoid
)
542 virtual truth
BodyPartIsVital(int) const;
543 virtual int GetAttribute(int, truth
= true) const;
544 virtual truth
CanCreateBodyPart(int) const;
545 virtual cfestring
& GetStandVerb() const { return character::GetStandVerb(); }
548 CHARACTER(orc
, humanoid
)
551 virtual void PostConstruct();
554 CHARACTER(cossack
, humanoid
)
558 CHARACTER(bananagrower
, humanoid
)
561 virtual void Save(outputfile
&) const;
562 virtual void Load(inputfile
&);
563 virtual void BeTalkedTo();
564 virtual festring
& ProcessMessage(festring
&) const;
565 virtual truth
IsBananaGrower() const { return true; }
566 festring
GetProfession() const { return Profession
; }
568 virtual truth
HandleCharacterBlockingTheWay(character
*, v2
, int);
569 virtual void PostConstruct();
570 virtual void GetAICommand();
571 void RandomizeProfession();
573 truth HasDroppedBananas
;
577 CHARACTER(imperialist
, humanoid
)
580 virtual void GetAICommand () { StandIdleAI(); }
581 virtual void BeTalkedTo ();
582 virtual void DisplayStethoscopeInfo (character
*) const;
584 virtual void CreateCorpse (lsquare
*);
587 CHARACTER(smith
, humanoid
)
590 virtual void BeTalkedTo();
591 virtual void GetAICommand() { StandIdleAI(); }
594 CHARACTER(elder
, humanoid
)
597 virtual void GetAICommand();
598 virtual void CreateBodyParts(int);
601 CHARACTER(encourager
, humanoid
)
604 encourager() : LastHit(0) { }
605 virtual void Save(outputfile&) const;
606 virtual void Load(inputfile&);
607 virtual void FinalProcessForBone();
609 virtual void GetAICommand();
612 virtual void GetAICommand() { StandIdleAI(); }
615 CHARACTER(darkmage
, humanoid
)
618 virtual void GetAICommand();
619 int GetSpellAPCost() const;
622 CHARACTER(necromancer
, humanoid
)
625 virtual truth
TryToRaiseZombie();
626 virtual void RaiseSkeleton();
628 virtual void GetAICommand();
629 int GetSpellAPCost() const;
632 CHARACTER(sumowrestler
, humanoid
)
635 virtual void BeTalkedTo();
636 virtual truth
CheckIfSatiated() { return GetNP() > BLOATED_LEVEL
; }
637 virtual truth
IsSumoWrestler() const { return true; }
638 virtual truth
EquipmentIsAllowed(int) const;
640 virtual void GetAICommand();
643 CHARACTER(tourist
, humanoid
)
646 virtual character
* GetLeader() const;
648 virtual void GetAICommand();
651 CHARACTER(veterankamikazedwarf
, kamikazedwarf
)
654 virtual void PostConstruct();
655 virtual int GetTorsoMainColor() const;
656 virtual int GetGauntletColor() const;
657 virtual int GetLegMainColor() const;
658 virtual int GetWSkillHits() const { return 50000; }
659 virtual truth
IsElite() const { return true; }
662 CHARACTER(archangel
, angel
)
665 virtual void CreateInitialEquipment(int);
667 virtual int GetTorsoMainColor() const;
668 virtual int GetArmMainColor() const;
671 CHARACTER(tailor
, humanoid
)
674 virtual void BeTalkedTo();
675 virtual void GetAICommand() { StandIdleAI(); }
679 CHARACTER(siren
, humanoid
)
682 virtual void GetAICommand();
684 virtual truth
TryToSing();
688 CHARACTER(punisher
, humanoid
)
693 CHARACTER(mysteryman
, humanoid
)
696 virtual void BeTalkedTo();
699 CHARACTER(denim
, humanoid
)
702 virtual void GetAICommand();
705 CHARACTER(raven
, humanoid
)
708 virtual void BeTalkedTo();
710 virtual void GetAICommand();
713 CHARACTER(wisefarmer
, humanoid
)
716 virtual void GetAICommand();
718 virtual v2
GetHeadBitmapPos() const;
719 virtual v2
GetRightArmBitmapPos() const;
720 virtual v2
GetLeftArmBitmapPos() const { return GetRightArmBitmapPos(); }
723 CHARACTER(vulcan
, humanoid
)
726 virtual void GetAICommand();
729 CHARACTER(bum
, humanoid
)
733 CHARACTER(rogue
, humanoid
)
736 virtual void GetAICommand();
737 virtual truth
IsRetreating() const;
740 CHARACTER(assassin
, humanoid
)
743 virtual void BeTalkedTo();
746 CHARACTER(reaper
, genie
)