mirror of
https://github.com/vcmi/vcmi.git
synced 2024-11-24 08:32:34 +02:00
Fixed #832. War machines will now be immune to a number of effects.
This commit is contained in:
parent
a33017f9da
commit
1e45674a7c
@ -2122,11 +2122,20 @@ SpellCasting::ESpellCastProblem BattleInfo::battleIsImmune(const CGHeroInstance
|
||||
return SpellCasting::STACK_IMMUNE_TO_SPELL;
|
||||
break;
|
||||
case 24: // Death Ripple
|
||||
if (subject->hasBonusOfType(Bonus::SIEGE_WEAPON))
|
||||
return SpellCasting::STACK_IMMUNE_TO_SPELL; //don't break here - undeads and war machines are immune, non-living are not
|
||||
case 41:
|
||||
case 42: //undeads are immune to bless & curse
|
||||
if (subject->hasBonusOfType(Bonus::UNDEAD))
|
||||
return SpellCasting::STACK_IMMUNE_TO_SPELL;
|
||||
break;
|
||||
case 53: //haste
|
||||
case 54: //slow
|
||||
case 63: // Teleport
|
||||
case 65: //clone
|
||||
if (subject->hasBonusOfType(Bonus::SIEGE_WEAPON))
|
||||
return SpellCasting::STACK_IMMUNE_TO_SPELL; //war machines are mmune to some spells than involve movement
|
||||
break;
|
||||
case 61: //Forgetfulness
|
||||
if (!subject->hasBonusOfType(Bonus::SHOOTER))
|
||||
return SpellCasting::STACK_IMMUNE_TO_SPELL;
|
||||
|
@ -418,8 +418,8 @@ si32 IBonusBearer::magicResistance() const
|
||||
bool IBonusBearer::isLiving() const //TODO: theoreticaly there exists "LIVING" bonus in stack experience documentation
|
||||
{
|
||||
std::stringstream cachingStr;
|
||||
cachingStr << "type_" << Bonus::UNDEAD << "s_-1Otype_" << Bonus::NON_LIVING;
|
||||
return(!hasBonus(Selector::type(Bonus::UNDEAD) || Selector::type(Bonus::NON_LIVING), cachingStr.str()));
|
||||
cachingStr << "type_" << Bonus::UNDEAD << "s_-1Otype_" << Bonus::NON_LIVING << "s_-11type_" << Bonus::SIEGE_WEAPON; //I don't relaly get what string labels mean?
|
||||
return(!hasBonus(Selector::type(Bonus::UNDEAD) || Selector::type(Bonus::NON_LIVING) || Selector::type(Bonus::SIEGE_WEAPON), cachingStr.str()));
|
||||
}
|
||||
|
||||
const TBonusListPtr IBonusBearer::getSpellBonuses() const
|
||||
|
Loading…
Reference in New Issue
Block a user