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); } }
public void AddToSet(dStructurePlacement data) { if (data != null) { _set.Add(data); } }
public virtual dStructurePlacement Click() { Player currentPlayer = _game._playerSystem._currentPlayer; dStructurePlacement dsp = Click(currentPlayer); return(dsp); }
bool CanAffordToAddToSet(dStructurePlacement data) { float newCost = data.data.cost; float currentSetCost = GetSetCost(); float totalCost = newCost + currentSetCost; return(_player._resources.CanAfford(totalCost)); }
dStructurePlacement GetStructurePlacement(MouseHandlerInfo mhi) { dStructurePlacement structureToBuild = null; if (mhi._pos != null && mhi._left[eInput.Up]) { structureToBuild = _locations[mhi._pos].Click(); } return(structureToBuild); }
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; }
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); }
public dStructurePlacement GetStructureAtPos(Pos p) { dStructurePlacement spd = null; foreach (dStructurePlacement d in _set) { if (d.location._pos == p) { spd = d; break; } } return(spd); }
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(); }
public dStructurePlacement GetStructureInQueueAtPos(Pos p) { dStructurePlacement dsp = null; foreach (dStructurePlacement q in _queue) { if (q.location._pos == p) { dsp = q; break; } } return(dsp); }
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); } }
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); }
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(); } }
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); }
bool CanFitInSet(dStructurePlacement data) { return(_set.Count <= _maxSetSize); }
public bool Contains(dStructurePlacement data) { return(_set.Select(x => x.location).Contains(data.location)); }
public SandboxStructure(HomelandsGame game, dStructurePlacement placementData) : base(game, placementData) { }
public ExodusStructure(HomelandsGame game, dStructurePlacement data) : base(game, data) { }