Select Git revision
Player.cpp 2.31 KiB
/**
* Player.cpp
*
* @author Frederik Keens
*/
#include "Player.hpp"
#include <iostream>
namespace advanced_wars
{
Player::Player(int money, Faction faction)
: m_money(money), m_alive(true), m_activeTurn(false), m_faction(faction)
{
}
Player::~Player() {}
void Player::startTurn(
std::unordered_map<int, std::unique_ptr<Unit>>& lvUnits,
std::unordered_map<int, Building>& lvBuildings)
{
for (auto& [id, unit] : lvUnits)
{
Unit& unitRef = *unit;
if (unitRef.getFaction() == m_faction)
{
unitRef.setState(UnitState::IDLE);
unitRef.setMoved(false);
}
}
int underControl = 0;
for (auto& [id, building] : lvBuildings)
{
switch (m_faction)
{
case Faction::URED:
if (building.getFaction() == Faction::URED)
{
underControl++;
}
break;
case Faction::UBLUE:
if (building.getFaction() == Faction::UBLUE)
{
underControl++;
}
break;
case Faction::UYELLOW:
if (building.getFaction() == Faction::UYELLOW)
{
underControl++;
}
break;
case Faction::UGREEN:
if (building.getFaction() == Faction::UGREEN)
{
underControl++;
}
break;
case Faction::UPURPLE:
if (building.getFaction() == Faction::UPURPLE)
{
underControl++;
}
break;