2 CHARACTER(rogue
, humanoid
)
5 virtual void GetAICommand();
6 virtual truth
IsRetreating() const;
14 truth
rogue::IsRetreating () const {
15 if (humanoid::IsRetreating()) return true;
16 for (stackiterator i
= GetStack()->GetBottom(); i
.HasItem(); ++i
) if ((*i
)->GetSparkleFlags()) return true;
22 void rogue::GetAICommand () {
23 if (!IsRetreating()) {
24 character
*Char
= GetRandomNeighbour();
27 for (stackiterator i
= Char
->GetStack()->GetBottom(); i
.HasItem(); ++i
) {
28 if ((*i
)->GetSparkleFlags() && !MakesBurdened((*i
)->GetWeight())) Sparkling
.push_back(*i
);
30 if (!Sparkling
.empty()) {
31 item
*ToSteal
= Sparkling
[RAND() % Sparkling
.size()];
32 ToSteal
->RemoveFromSlot();
33 GetStack()->AddItem(ToSteal
);
34 if (Char
->IsPlayer()) ADD_MESSAGE("%s steals your %s.", CHAR_NAME(DEFINITE
), ToSteal
->CHAR_NAME(UNARTICLED
));
40 humanoid::GetAICommand();