public bool SetCell(Player owner, GameCellState state) { bool result = (this.state != state); SetOwner(owner); prevState = this.state; this.state = state; return(result); }
public void SetState(GameCellState state) { switch (state) { case GameCellState.Cloaked: { Btn.IsEnabled = true; Btn.Background = Brushes.Black; Btn.Content = ""; State = state; } break; case GameCellState.Uncloaked: { //Btn.IsEnabled = false; Btn.Background = Brushes.AntiqueWhite; Btn.Content = ""; State = state; cellClicked = null; } break; case GameCellState.Occupied: { //Btn.IsEnabled = false; Btn.Background = Brushes.Blue; State = state; cellClicked = null; } break; case GameCellState.Hit: { //Btn.IsEnabled = false; Btn.Background = Brushes.DarkBlue; Btn.Content = "X"; State = state; cellClicked = null; } break; case GameCellState.Sinked: { //Btn.IsEnabled = false; Btn.Background = Brushes.IndianRed; Btn.Content = "X"; State = state; cellClicked = null; } break; } }
public void Revert() { state = prevState; ownerSeat = prevSeat; owner = prevOwner; }
public bool SetCell(Player owner, GameCellState state, bool hasShip, NetworkInstanceId associatedShip) { this.hasShip = hasShip; this.associatedShip = associatedShip; return(SetCell(owner, state)); }
// Update is called once per frame void Update() { //Live if (Application.isPlaying) { Material cellMaterial = prefabHex.GetComponent <Renderer>().material; if (owner == Player.localPlayer.netId && selected && !hexOutline.activeInHierarchy) { //selectedParticles.gameObject.SetActive(true); hexOutline.SetActive(true); } else if (!selected && hexOutline.activeInHierarchy) { //selectedParticles.gameObject.SetActive(false); hexOutline.SetActive(false); } if (owner == Player.localPlayer.netId && hasShip && !shipParticles.gameObject.activeInHierarchy) { shipParticles.gameObject.SetActive(true); } else if (!hasShip && shipParticles.gameObject.activeInHierarchy) { shipParticles.gameObject.SetActive(false); } if (owner != NetworkInstanceId.Invalid) { if (state == GameCellState.Base && !cellMaterial.name.Contains(BaseMaterial.name)) { SetCellMaterial(ClientScene.FindLocalObject(owner).GetComponent <Player>().color, BaseMaterial); } else if (owner == Player.localPlayer.netId && state == GameCellState.ShipBuildArea && !cellMaterial.name.Contains(BaseAreaMaterial.name)) { SetCellMaterial(ClientScene.FindLocalObject(owner).GetComponent <Player>().color, BaseAreaMaterial); } else if (owner == Player.localPlayer.netId && state == GameCellState.MovementArea && !cellMaterial.name.Contains(MovementAreaMaterial.name)) { SetCellMaterial(MovementAreaMaterial.color, MovementAreaMaterial); } else if (owner == Player.localPlayer.netId && state == GameCellState.DepotBuildArea && !cellMaterial.name.Contains(DepotBuildAreaMaterial.name)) { SetCellMaterial(DepotBuildAreaMaterial.color, DepotBuildAreaMaterial); } else if (state == GameCellState.Depot && !cellMaterial.name.Contains(Empty.name)) { SetCellMaterial(Empty.color, Empty); } } if (state == GameCellState.Empty && !cellMaterial.name.Contains(Empty.name)) { SetCellMaterial(Color.clear, Empty); } else if (state == GameCellState.NoMovement && !cellMaterial.name.Contains(Empty.name)) { SetCellMaterial(Color.clear, Empty); } else if (state == GameCellState.TempusSpace && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus1 && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus2 && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus3 && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus4 && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus5 && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus6 && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Tempus && !cellMaterial.name.Contains(TempusSpaceMaterial.name)) { SetCellMaterial(Color.clear, TempusSpaceMaterial); } else if (state == GameCellState.Resource && !cellMaterial.name.Contains(ResourceMaterial.name)) { SetCellMaterial(Color.clear, ResourceMaterial); } if (cellColorTarget != Color.clear && animatingColor && cellAnimationTime / cellAnimationSpeed < .9f) { prefabHex.GetComponent <Renderer>().material.color = Color.Lerp(cellMaterial.color, cellColorTarget, cellAnimationSpeed * Time.deltaTime); cellAnimationTime += Time.deltaTime; } else if (cellColorTarget != Color.clear && cellAnimationTime < cellAnimationSpeed) { prefabHex.GetComponent <Renderer>().material.color = cellColorTarget; cellAnimationTime = 0; animatingColor = false; } } else { //Design Time if (resourceType != ResourceType.None) { state = GameCellState.Resource; } else if (state == GameCellState.Resource) { state = GameCellState.Empty; } if (state == GameCellState.Empty) { resourceType = ResourceType.None; } if (state == GameCellState.Base) { cellColorTarget = Color.blue; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(BaseMaterial); } else if (state == GameCellState.ShipBuildArea) { cellColorTarget = Color.blue; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(BaseAreaMaterial); } else if (state == GameCellState.Resource) { cellColorTarget = Resource.GetColor(resourceType); prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(ResourceMaterial); } else if (state == GameCellState.Empty) { cellColorTarget = Color.black; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(Empty); } else if (state == GameCellState.NoMovement) { cellColorTarget = Color.clear; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(NoMovementMaterial); } else if (state == GameCellState.TempusSpace) { cellColorTarget = Color.gray; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus1) { cellColorTarget = Color.cyan; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus2) { cellColorTarget = Color.cyan; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus3) { cellColorTarget = Color.cyan; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus4) { cellColorTarget = Color.cyan; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus5) { cellColorTarget = Color.cyan; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus6) { cellColorTarget = Color.cyan; prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(TempusSpaceMaterial); } else if (state == GameCellState.Tempus) { cellColorTarget = new Color(1, .5f, 0); prefabHex.GetComponent <Renderer>().sharedMaterial = new Material(Empty); } prefabHex.GetComponent <Renderer>().sharedMaterial.color = cellColorTarget; } }