diff --git a/lib/NetPacks.h b/lib/NetPacks.h index 0ff30acfe..6d57cc17d 100644 --- a/lib/NetPacks.h +++ b/lib/NetPacks.h @@ -349,7 +349,7 @@ struct DLL_LINKAGE SetAvailableHeroes : public CPackForClient struct DLL_LINKAGE GiveBonus : public CPackForClient { - enum class ETarget : ui8 { HERO, PLAYER, TOWN }; + enum class ETarget : ui8 { HERO, PLAYER, TOWN, BATTLE }; GiveBonus(ETarget Who = ETarget::HERO) :who(Who) diff --git a/lib/NetPacksLib.cpp b/lib/NetPacksLib.cpp index 460a984dc..99498186e 100644 --- a/lib/NetPacksLib.cpp +++ b/lib/NetPacksLib.cpp @@ -961,6 +961,10 @@ void GiveBonus::applyGs(CGameState *gs) case ETarget::TOWN: cbsn = gs->getTown(ObjectInstanceID(id)); break; + case ETarget::BATTLE: + assert(Bonus::OneBattle(&bonus)); + cbsn = dynamic_cast(gs->curB.get()); + break; } assert(cbsn);