2023-07-24 00:46:29 +03: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"
|
2023-10-23 13:59:15 +03:00
|
|
|
#include "../../lib/networkPacks/PacksForClientBattle.h"
|
2023-07-24 00:46:29 +03:00
|
|
|
|
2023-08-28 17:43:57 +03:00
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
|
|
class IBattleInfo;
|
2024-01-25 23:44:41 +01:00
|
|
|
struct SideInBattle;
|
2023-08-28 17:43:57 +03:00
|
|
|
VCMI_LIB_NAMESPACE_END
|
|
|
|
|
2023-09-19 23:17:25 +03:00
|
|
|
class CBattleQuery : public CQuery
|
2023-07-24 00:46:29 +03:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
std::array<const CArmedInstance *,2> belligerents;
|
|
|
|
std::array<int, 2> initialHeroMana;
|
|
|
|
|
2023-08-31 18:45:52 +03:00
|
|
|
BattleID battleID;
|
2023-07-24 00:46:29 +03:00
|
|
|
std::optional<BattleResult> result;
|
|
|
|
|
|
|
|
CBattleQuery(CGameHandler * owner);
|
2023-08-28 17:43:57 +03:00
|
|
|
CBattleQuery(CGameHandler * owner, const IBattleInfo * Bi); //TODO
|
2024-02-10 20:22:08 +01:00
|
|
|
void notifyObjectAboutRemoval(const CObjectVisitQuery &objectVisit) const override;
|
|
|
|
bool blocksPack(const CPack *pack) const override;
|
|
|
|
void onRemoval(PlayerColor color) override;
|
|
|
|
void onExposure(QueryPtr topQuery) override;
|
2023-07-24 00:46:29 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
class CBattleDialogQuery : public CDialogQuery
|
|
|
|
{
|
|
|
|
public:
|
2023-08-28 17:43:57 +03:00
|
|
|
CBattleDialogQuery(CGameHandler * owner, const IBattleInfo * Bi);
|
2023-07-24 00:46:29 +03:00
|
|
|
|
2023-08-28 17:43:57 +03:00
|
|
|
const IBattleInfo * bi;
|
2023-07-24 00:46:29 +03:00
|
|
|
|
2024-02-10 20:22:08 +01:00
|
|
|
void onRemoval(PlayerColor color) override;
|
2023-07-24 00:46:29 +03:00
|
|
|
};
|