fix monsters to not walk on fields when aggresive if they cannot push items

This commit is contained in:
ErikasKontenis 2020-11-22 14:07:52 +02:00
parent 7e37b2c935
commit 618bb6917b

View File

@ -521,6 +521,20 @@ ReturnValue Tile::queryAdd(int32_t, const Thing& thing, uint32_t, uint32_t flags
} }
} }
if (monster->hasCondition(CONDITION_AGGRESSIVE) && !monster->canPushItems()) {
if (hasFlag(TILESTATE_FIREDAMAGE) && !monster->isImmune(COMBAT_FIREDAMAGE)) {
return RETURNVALUE_NOTPOSSIBLE;
}
if (hasFlag(TILESTATE_POISONDAMAGE) && !monster->isImmune(COMBAT_EARTHDAMAGE)) {
return RETURNVALUE_NOTPOSSIBLE;
}
if (hasFlag(TILESTATE_ENERGYDAMAGE) && !monster->isImmune(COMBAT_ENERGYDAMAGE)) {
return RETURNVALUE_NOTPOSSIBLE;
}
}
if (!monster->hasCondition(CONDITION_AGGRESSIVE) && if (!monster->hasCondition(CONDITION_AGGRESSIVE) &&
!hasBitSet(FLAG_IGNOREFIELDDAMAGE, flags)) { !hasBitSet(FLAG_IGNOREFIELDDAMAGE, flags)) {
if (hasFlag(TILESTATE_FIREDAMAGE) && !monster->isImmune(COMBAT_FIREDAMAGE)) { if (hasFlag(TILESTATE_FIREDAMAGE) && !monster->isImmune(COMBAT_FIREDAMAGE)) {