Ejemplo n.º 1
0
 public bool CanAddToSet(dStructurePlacement data)
 {
     if (data != null)
     {
         if (!Contains(data))
         {
             if (CanFitInSet(data))
             {
                 if (CanAffordToAddToSet(data))
                 {
                     return(true);
                 }
                 else
                 {
                     return(false);
                 }
             }
             else
             {
                 return(false);
             }
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 2
0
 public void AddToSet(dStructurePlacement data)
 {
     if (data != null)
     {
         _set.Add(data);
     }
 }
Ejemplo n.º 3
0
    public virtual dStructurePlacement Click()
    {
        Player currentPlayer    = _game._playerSystem._currentPlayer;
        dStructurePlacement dsp = Click(currentPlayer);

        return(dsp);
    }
Ejemplo n.º 4
0
    bool CanAffordToAddToSet(dStructurePlacement data)
    {
        float newCost        = data.data.cost;
        float currentSetCost = GetSetCost();
        float totalCost      = newCost + currentSetCost;

        return(_player._resources.CanAfford(totalCost));
    }
Ejemplo n.º 5
0
    dStructurePlacement GetStructurePlacement(MouseHandlerInfo mhi)
    {
        dStructurePlacement structureToBuild = null;

        if (mhi._pos != null && mhi._left[eInput.Up])
        {
            structureToBuild = _locations[mhi._pos].Click();
        }
        return(structureToBuild);
    }
Ejemplo n.º 6
0
    public HomelandsStructure(HomelandsGame game, dStructurePlacement placementData)
    {
        _game     = game;
        _location = placementData.location;
        _owner    = placementData.creator;

        _cost      = placementData.data.cost;
        _hitPoints = placementData.data.hitPoints;
        _radii     = placementData.data.radii;
    }
Ejemplo n.º 7
0
    public MouseHandlerOutput GetMouseHandlerOutput(MouseHandlerInfo mhi)
    {
        dStructurePlacement builtBuilding = GetStructurePlacement(mhi);
        SelectedData        selected      = GetSelectedData(mhi);
        MouseHandlerOutput  mho           = new MouseHandlerOutput();

        mho._structurePlaced = builtBuilding;
        mho._selected        = selected;

        return(mho);
    }
Ejemplo n.º 8
0
    public dStructurePlacement GetStructureAtPos(Pos p)
    {
        dStructurePlacement spd = null;

        foreach (dStructurePlacement d in _set)
        {
            if (d.location._pos == p)
            {
                spd = d;
                break;
            }
        }
        return(spd);
    }
Ejemplo n.º 9
0
    void InitializePlayerStarts()
    {
        UpdateGame();
        Dictionary <Player, Pos> startingPositions = _startPositioner.GetStartingPos();

        foreach (Player player in startingPositions.Keys)
        {
            Pos p = startingPositions[player];
            HomelandsLocation   location  = _locations[p];
            dStructurePlacement structure = location.Click(player);
            player._buildQueue.TryToAddStructureToBuildQueue(structure);
        }
        EndTurn();
    }
Ejemplo n.º 10
0
    public dStructurePlacement GetStructureInQueueAtPos(Pos p)
    {
        dStructurePlacement dsp = null;

        foreach (dStructurePlacement q in _queue)
        {
            if (q.location._pos == p)
            {
                dsp = q;
                break;
            }
        }
        return(dsp);
    }
Ejemplo n.º 11
0
    public virtual dStructurePlacement Click(Player currentPlayer)
    {
        dStructure          structureToBuild = GetBasicStructure();
        dStructurePlacement spd = new dStructurePlacement(structureToBuild, currentPlayer, this);
        bool placementSuccess   = TryToMakeStructure(currentPlayer, structureToBuild);

        if (placementSuccess)
        {
            return(spd);
        }
        else
        {
            return(null);
        }
    }
Ejemplo n.º 12
0
    public bool TryToAddStructureToBuildQueue(dStructurePlacement data)
    {
        bool success = false;

        if (data != null)
        {
            if (_player._resources.CanAfford(data.data.cost))
            {
                success = true;
                _queue.Add(data);
            }
            else
            {
                Debug.Log(_player._name + " can't afford the structure!");
            }
        }
        return(success);
    }
Ejemplo n.º 13
0
    public static HomelandsStructure Make(HomelandsGame game, dStructurePlacement data)
    {
        eGame gameType = game._settings._gameType;

        Debug.Log($@"Created Structure({gameType})");

        if (gameType == eGame.Exodus)
        {
            return(new ExodusStructure(game, data));
        }
        else if (gameType == eGame.Sandbox)
        {
            return(new SandboxStructure(game, data));
        }
        else
        {
            return(new SandboxStructure(game, data));
            //throw new System.NotImplementedException();
        }
    }
Ejemplo n.º 14
0
    public virtual bool TryToMakeStructure(Player currentPlayer, dStructure structureToBuild)
    {
        bool madeStructure = false;

        if (currentPlayer != null)
        {
            if (_structure == null)
            {
                if (_terrain._type == eTerrain.Land)
                {
                    if (_game._stats._numberOfStructures[currentPlayer] <= 0 || _stats._control._controllingPlayers[currentPlayer])
                    {
                        dStructurePlacement potentialSd = new dStructurePlacement(structureToBuild, currentPlayer, this);
                        madeStructure = currentPlayer._buildQueue.TryToAddStructureToBuildQueue(potentialSd);
                        Debug.Log($"{currentPlayer._name} added a structure to the build queue");
                    }
                    else
                    {
                        Debug.Log($"{currentPlayer._name} can't Build - Not Controlled");
                    }
                }
                else
                {
                    Debug.Log($"{currentPlayer._name} can't Build - Unbuildable");
                }
            }
            else
            {
                Debug.Log("Can't Build - Occupied");
            }
        }
        else
        {
            Debug.Log("Can't Build - No Player");
        }

        return(madeStructure);
    }
Ejemplo n.º 15
0
 bool CanFitInSet(dStructurePlacement data)
 {
     return(_set.Count <= _maxSetSize);
 }
Ejemplo n.º 16
0
 public bool Contains(dStructurePlacement data)
 {
     return(_set.Select(x => x.location).Contains(data.location));
 }
Ejemplo n.º 17
0
 public SandboxStructure(HomelandsGame game, dStructurePlacement placementData) : base(game, placementData)
 {
 }
Ejemplo n.º 18
0
 public ExodusStructure(HomelandsGame game, dStructurePlacement data) : base(game, data)
 {
 }