1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-16 10:19:47 +02:00
vcmi/server/processors/NewTurnProcessor.h
2024-08-28 13:03:24 +00:00

50 lines
1.3 KiB
C++

/*
* NewTurnProcessor.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 "../../lib/constants/EntityIdentifiers.h"
#include "../../lib/constants/Enumerations.h"
#include "../../lib/gameState/RumorState.h"
VCMI_LIB_NAMESPACE_BEGIN
class CGTownInstance;
class ResourceSet;
struct SetAvailableCreatures;
struct SetMovePoints;
struct SetMana;
struct InfoWindow;
struct NewTurn;
VCMI_LIB_NAMESPACE_END
class CGameHandler;
class NewTurnProcessor : boost::noncopyable
{
CGameHandler * gameHandler;
std::vector<SetMana> updateHeroesManaPoints();
std::vector<SetMovePoints> updateHeroesMovementPoints();
ResourceSet generatePlayerIncome(PlayerColor playerID, bool newWeek);
SetAvailableCreatures generateTownGrowth(const CGTownInstance * town, EWeekType weekType, CreatureID creatureWeek, bool firstDay);
RumorState pickNewRumor();
InfoWindow createInfoWindow(EWeekType weekType, CreatureID creatureWeek, bool newMonth);
std::tuple<EWeekType, CreatureID> pickWeekType(bool newMonth);
NewTurn generateNewTurnPack();
public:
NewTurnProcessor(CGameHandler * gameHandler);
void onNewTurn();
void onPlayerTurnStarted(PlayerColor color);
void onPlayerTurnEnded(PlayerColor color);
};