1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
vcmi/AI/Nullkiller/Goals/StayAtTown.cpp
Xilmi 9b9a50c0ae Update StayAtTown.cpp
Showing mana-limit too for Stay At Town.
2024-09-14 02:51:33 +02:00

49 lines
1.1 KiB
C++

/*
* ArmyUpgrade.cpp, 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
*
*/
#include "StdInc.h"
#include "StayAtTown.h"
#include "../AIGateway.h"
#include "../Engine/Nullkiller.h"
#include "../AIUtility.h"
namespace NKAI
{
using namespace Goals;
StayAtTown::StayAtTown(const CGTownInstance * town, AIPath & path)
: ElementarGoal(Goals::STAY_AT_TOWN)
{
sethero(path.targetHero);
settown(town);
movementWasted = static_cast<float>(hero->movementPointsRemaining()) / hero->movementPointsLimit(!hero->boat) - path.movementCost();
vstd::amax(movementWasted, 0);
}
bool StayAtTown::operator==(const StayAtTown & other) const
{
return hero == other.hero && town == other.town;
}
std::string StayAtTown::toString() const
{
return "Stay at town " + town->getNameTranslated()
+ " hero " + hero->getNameTranslated()
+ ", mana: " + std::to_string(hero->mana)
+ " / " + std::to_string(hero->manaLimit());
}
void StayAtTown::accept(AIGateway * ai)
{
ai->nullkiller->lockHero(hero, HeroLockedReason::DEFENCE);
}
}