2 CHARACTER(oree
, humanoid
)
5 virtual void Bite(character
*, v2
, int, truth
= false);
6 virtual void GetAICommand();
8 virtual cchar
* FirstPersonBiteVerb() const;
9 virtual cchar
* FirstPersonCriticalBiteVerb() const;
10 virtual cchar
* ThirdPersonBiteVerb() const;
11 virtual cchar
* ThirdPersonCriticalBiteVerb() const;
12 virtual cchar
* BiteNoun() const;
13 void CallForMonsters();
21 cchar
* oree::FirstPersonBiteVerb() const { return "vomit acidous blood at"; }
25 cchar
* oree::FirstPersonCriticalBiteVerb() const { return "vomit very acidous blood at"; }
29 cchar
* oree::ThirdPersonBiteVerb() const { return "vomits acidous blood at"; }
33 cchar
* oree::ThirdPersonCriticalBiteVerb() const { return "vomits very acidous blood at"; }
37 cchar
* oree::BiteNoun() const { return "liquid"; }
41 void oree::Bite(character
* Enemy
, v2 HitPos
, int, truth
)
44 ADD_MESSAGE("You vomit acidous blood at %s.", Enemy
->CHAR_DESCRIPTION(DEFINITE
));
45 else if(Enemy
->IsPlayer() || CanBeSeenByPlayer() || Enemy
->CanBeSeenByPlayer())
46 ADD_MESSAGE("%s vomits acidous blood at %s.", CHAR_DESCRIPTION(DEFINITE
), Enemy
->CHAR_DESCRIPTION(DEFINITE
));
48 Vomit(HitPos
, 500 + RAND() % 500, false);
53 void oree::GetAICommand()
58 humanoid::GetAICommand();
63 void oree::CallForMonsters()
65 //if (GetDungeon()->GetIndex() != ELPURI_CAVE || GetLevel()->GetIndex() != OREE_LAIR) return;
66 //if (!GetLevel()->IsGCOreeLevel()) return;
67 if (!IsHomeLevel(GetLevel())) return;
69 character
* ToBeCalled
= 0;
74 ToBeCalled
= darkknight::Spawn(ELITE
);
77 ToBeCalled
= frog::Spawn(RAND_2
? GREATER_DARK
: GIANT_DARK
);
80 ToBeCalled
= frog::Spawn(DARK
);
83 ToBeCalled
= darkmage::Spawn(RAND_2
? APPRENTICE
: BATTLE_MAGE
);
86 ToBeCalled
= darkmage::Spawn(RAND_2
? APPRENTICE
: ELDER
);
89 ToBeCalled
= necromancer::Spawn(RAND_2
? APPRENTICE_NECROMANCER
: MASTER_NECROMANCER
);
95 for(int c
= 0; c
< 100; ++c
)
97 TryToCreate
= game::GetMonsterPortal()->GetPos() + game::GetMoveVector(RAND() % DIRECTION_COMMAND_KEYS
);
99 if(GetArea()->IsValidPos(TryToCreate
) && ToBeCalled
->CanMoveOn(GetNearLSquare(TryToCreate
)) && ToBeCalled
->IsFreeForMe(GetNearLSquare(TryToCreate
)))
101 ToBeCalled
->SetTeam(game::GetTeam(MONSTER_TEAM
));
102 ToBeCalled
->PutTo(TryToCreate
);