public virtual void OnUnitEnd() { UnitEnd = true; if (UnitEnded != null) { UnitEnded.Invoke(this, null); } Gray(true); action.Clear(); }
public virtual void OnUnitEnd() { UnitEnd = true; if (UnitEnded != null) { UnitEnded.Invoke(this, null); } for (int i = 0; i < rend.Length; i++) { if (rend[i].material.shader.name == "Shader/ToonOutLine") { rend[i].material.SetFloat("_Gray", 1f); } } action.Clear(); }
public void EndTurn() { Resources.UnloadUnusedAssets(); if (CheckGameEnd()) { return; } if (UnitEnded != null) { UnitEnded.Invoke(this, null); } if (Units.FindAll(u => u.playerNumber == CurrentPlayerNumber && u.UnitEnd == false).Count > 0) //当前玩家仍有角色未操作。 { Players.Find(p => p.playerNumber.Equals(CurrentPlayerNumber)).Play(this); } if (Units.FindAll(u => u.playerNumber == CurrentPlayerNumber && u.UnitEnd == false).Count == 0) //当前Player的所有Unit执行完毕 { CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers; while (Units.FindAll(u => u.playerNumber.Equals(CurrentPlayerNumber)).Count == 0) { CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers; }//Skipping players that are defeated. Units.ForEach(u => { u.OnTurnEnd(); }); if (TurnEnded != null) { TurnEnded.Invoke(this, new EventArgs()); } if (Units.FindAll(u => u.UnitEnd == false).Count == 0) //所有Player的所有Unit执行完毕 { EndRound(); } else { StartCoroutine(TurnStart()); } } }
public void EndTurn(Transform character) { if (Units.Select(u => u.playerNumber).Distinct().Count() == 1) { return; } if (UnitEnded != null) { UnitEnded.Invoke(character, null); } if (Units.FindAll(u => u.playerNumber == CurrentPlayerNumber && u.UnitEnd == false).Count > 0) //当前玩家仍有角色未操作。 { Players.Find(p => p.playerNumber.Equals(CurrentPlayerNumber)).Play(this); } if (Units.FindAll(u => u.playerNumber == CurrentPlayerNumber && u.UnitEnd == false).Count == 0) //当前Player的所有Unit执行完毕 { CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers; while (Units.FindAll(u => u.playerNumber.Equals(CurrentPlayerNumber)).Count == 0) { CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers; }//Skipping players that are defeated. if (Units.FindAll(u => u.UnitEnd == false).Count == 0) //所有Player的所有Unit执行完毕 { EndRound(); } else { Units.ForEach(u => { u.OnTurnEnd(); }); if (TurnEnded != null) { TurnEnded.Invoke(this, new EventArgs()); } StartCoroutine(TurnStart()); } } }