Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

capture-from-socket.py

Blame
  • 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;