1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Merge pull request #560 from dydzio0614/bug2814

Fix for arrow cart at bank fights
This commit is contained in:
Alexander Shishkin
2019-03-24 10:20:58 +03:00
committed by GitHub

View File

@@ -304,17 +304,30 @@ int32_t CStack::unitBaseAmount() const
bool CStack::unitHasAmmoCart(const battle::Unit * unit) const bool CStack::unitHasAmmoCart(const battle::Unit * unit) const
{ {
bool hasAmmoCart = false;
for(const CStack * st : battle->stacks) for(const CStack * st : battle->stacks)
{ {
if(battle->battleMatchOwner(st, unit, true) && st->getCreature()->idNumber == CreatureID::AMMO_CART && st->alive()) if(battle->battleMatchOwner(st, unit, true) && st->getCreature()->idNumber == CreatureID::AMMO_CART)
{ {
hasAmmoCart = true; if(st->alive())
break; {
return true;
}
else
{
return false;
}
} }
} }
return hasAmmoCart; //ammo cart works during creature bank battle while not on battlefield
auto ownerHero = battle->battleGetOwnerHero(unit);
if(ownerHero && ownerHero->artifactsWorn.find(ArtifactPosition::MACH2) != ownerHero->artifactsWorn.end())
{
if(battle->battleGetOwnerHero(unit)->artifactsWorn.at(ArtifactPosition::MACH2).artifact->artType->id == ArtifactID::AMMO_CART)
{
return true;
}
}
return false; //will be always false if trying to examine enemy hero in "special battle"
} }
PlayerColor CStack::unitEffectiveOwner(const battle::Unit * unit) const PlayerColor CStack::unitEffectiveOwner(const battle::Unit * unit) const