2023-07-23 23:46:29 +02:00
|
|
|
/*
|
|
|
|
* BattleQueries.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
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "CQuery.h"
|
|
|
|
|
|
|
|
#include "../../lib/NetPacks.h"
|
|
|
|
|
2023-08-28 16:43:57 +02:00
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
class IBattleInfo;
|
|
|
|
VCMI_LIB_NAMESPACE_END
|
|
|
|
|
2023-09-19 22:17:25 +02:00
|
|
|
class CBattleQuery : public CQuery
|
2023-07-23 23:46:29 +02:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
std::array<const CArmedInstance *,2> belligerents;
|
|
|
|
std::array<int, 2> initialHeroMana;
|
|
|
|
|
2023-08-31 17:45:52 +02:00
|
|
|
BattleID battleID;
|
2023-07-23 23:46:29 +02:00
|
|
|
std::optional<BattleResult> result;
|
|
|
|
|
|
|
|
CBattleQuery(CGameHandler * owner);
|
2023-08-28 16:43:57 +02:00
|
|
|
CBattleQuery(CGameHandler * owner, const IBattleInfo * Bi); //TODO
|
2023-07-23 23:46:29 +02:00
|
|
|
virtual void notifyObjectAboutRemoval(const CObjectVisitQuery &objectVisit) const override;
|
|
|
|
virtual bool blocksPack(const CPack *pack) const override;
|
|
|
|
virtual void onRemoval(PlayerColor color) override;
|
2023-09-05 16:22:11 +02:00
|
|
|
virtual void onExposure(QueryPtr topQuery) override;
|
2023-07-23 23:46:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
class CBattleDialogQuery : public CDialogQuery
|
|
|
|
{
|
|
|
|
public:
|
2023-08-28 16:43:57 +02:00
|
|
|
CBattleDialogQuery(CGameHandler * owner, const IBattleInfo * Bi);
|
2023-07-23 23:46:29 +02:00
|
|
|
|
2023-08-28 16:43:57 +02:00
|
|
|
const IBattleInfo * bi;
|
2023-07-23 23:46:29 +02:00
|
|
|
|
|
|
|
virtual void onRemoval(PlayerColor color) override;
|
|
|
|
};
|