Exemple #1
0
 public virtual void OnUnitEnd()
 {
     UnitEnd = true;
     if (UnitEnded != null)
     {
         UnitEnded.Invoke(this, null);
     }
     Gray(true);
     action.Clear();
 }
Exemple #2
0
 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();
 }
Exemple #3
0
    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());
            }
        }
    }
Exemple #4
0
    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());
            }
        }
    }