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 hasAmmoCart = false;
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;
break;
if(st->alive())
{
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