| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- /*
 
- * 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->inBoat()) - 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);
 
- }
 
- }
 
 
  |