public bool SelectSelectorStateArea(Button selectedArea, int selectorPlayerNumber) { int selectedStateNumber = selectedTakeOverAreaNodes.First().ownedStateNumber; if (IsSelectorPlayerState(selectedArea, selectorPlayerNumber)) { if (IsAreaAdjacent(selectedArea, selectedStateNumber, selectorBetAreaNodes)) { AreaSelectNode saverButton = new AreaSelectNode() { ownedStateNumber = StateFlag.GetPlayerNumberWithFlag(selectedArea.BackColor), currentFlag = selectedArea.BackColor, areaNumber = int.Parse(selectedArea.Name) }; selectorBetAreaNodes.Push(saverButton); selectedArea.BackColor = Color.White; return(true); } else { WarningMessager.AreaNotAdjacent(); } } else { WarningMessager.NotSelectorPlayerState(); } return(false); }
private void AnnexAreas(int annextationStateNumber, int requestedStateNumber, Stack <AreaSelectNode> annexedAreas) { while (annexedAreas.Count != 0) { AreaSelectNode oldAreaNode = annexedAreas.Pop(); currentAreas[oldAreaNode.areaNumber].BackColor = StateFlag.GetFlag(annextationStateNumber); gameStates[annextationStateNumber].ownedAreas.Add(oldAreaNode.areaNumber); gameStates[requestedStateNumber].ownedAreas.Remove(oldAreaNode.areaNumber); } }
public void ResetSelections() { while (selectedTakeOverAreaNodes.Count != 0) { AreaSelectNode oldAreaNode = selectedTakeOverAreaNodes.Pop(); currentAreas[oldAreaNode.areaNumber].BackColor = StateObjectTypesConverter.ConvertStateFlagObjectType(oldAreaNode.currentFlag); } while (selectorBetAreaNodes.Count != 0) { AreaSelectNode oldAreaNode = selectorBetAreaNodes.Pop(); currentAreas[oldAreaNode.areaNumber].BackColor = StateObjectTypesConverter.ConvertStateFlagObjectType(oldAreaNode.currentFlag); } }
public bool SelectOtherStateArea(Button selectedArea, int selectorPlayerNumber) { if (!IsSelectorPlayerState(selectedArea, selectorPlayerNumber)) { if (!IsStateOfAnotherEnemyPlayer(selectedArea)) { if (IsAreaAdjacent(selectedArea, selectorPlayerNumber, selectedTakeOverAreaNodes)) { AreaSelectNode areaNode = new AreaSelectNode() { ownedStateNumber = StateFlag.GetPlayerNumberWithFlag(selectedArea.BackColor), currentFlag = selectedArea.BackColor, areaNumber = int.Parse(selectedArea.Name) }; selectedTakeOverAreaNodes.Push(areaNode); selectedArea.BackColor = Color.Black; return(true); } else { WarningMessager.AreaNotAdjacent(); } } else { WarningMessager.StateOfEnemyPlayer(); } } else { WarningMessager.SelectorPlayerState(); } return(false); }