#pragma once #include "CObjectHandler.h" #include "../CCreatureSet.h" /* * CArmedInstance.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ struct BattleInfo; class CGameState; class DLL_LINKAGE CArmedInstance: public CGObjectInstance, public CBonusSystemNode, public CCreatureSet { public: BattleInfo *battle; //set to the current battle, if engaged void randomizeArmy(int type); virtual void updateMoraleBonusFromArmy(); void armyChanged() override; ////////////////////////////////////////////////////////////////////////// // int valOfGlobalBonuses(CSelector selector) const; //used only for castle interface ??? virtual CBonusSystemNode *whereShouldBeAttached(CGameState *gs); virtual CBonusSystemNode *whatShouldBeAttached(); ////////////////////////////////////////////////////////////////////////// CArmedInstance(); template void serialize(Handler &h, const int version) { h & static_cast(*this); h & static_cast(*this); h & static_cast(*this); } };