/// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
        {
            return;
        }
        // TODO Commit Moves Here
        CellGridState = new CellGridStateTurnChanging(this);

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });

        CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
        {
            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        }//Skipping players that are defeated.

        if (TurnEnded != null)
        {
            TurnEnded.Invoke(this, new EventArgs());
        }

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        // This is where AI players play
        Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
    }
示例#2
0
        /// <summary>
        /// Method makes turn transitions. It is called by player at the end of his turn.
        /// </summary>
        public void EndTurn()
        {
            if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
            {
                Debug.Log("here");
                return;
            }
            CellGridState = new CellGridStateTurnChanging(this);

            Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });

            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
            while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
            {
                CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
            }//Skipping players that are defeated.

            if (TurnEnded != null)
            {
                TurnEnded.Invoke(this, new EventArgs());
            }

            Debug.Log(string.Format("Player {0} turn", CurrentPlayerNumber));
            Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
            Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
        }
示例#3
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
//        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
//        {
//            return;
//        }
        CellGridState = new CellGridStateTurnChanging(this);

        bool playerDefeated = GetUnitsOfATeam(CurrentPlayerNumber).Count() == 0;

        //End the turn for all units of this current player
        if (!playerDefeated)
        {
            Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });
        }

        CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        bool currentPlayerDefeated = GetUnitsOfATeam(CurrentPlayerNumber).Count() == 0;

        while (currentPlayerDefeated)
        {
            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        }//Skipping players that are defeated until finding the next player

        if (TurnEnded != null)
        {
            TurnEnded.Invoke(this, new EventArgs());
        }

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
    }
示例#4
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
        {
            return;
        }
        CellGridState = new CellGridStateTurnChanging(this);

        // I don't really expect this to do anything but who knows.
        Skills.ForEach(u => { u.OnTurnEnd(); });

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });

        CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
        {
            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        }//Skipping players that are defeated.

        if (TurnEnded != null)
        {
            TurnEnded.Invoke(this, new EventArgs());
        }

        // Added Skill event so the skills can turn themselves off when a turn starts.
        Skills.ForEach(u => { u.OnTurnStart(); });

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
    }
示例#5
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
        /*
         * if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
         * {
         * return;
         * }
         */
        CellGridState = new CellGridStateTurnChanging(this);

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });

        /*
         * CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
         * while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
         * {
         *  CurrentPlayerNumber = (CurrentPlayerNumber + 1)%NumberOfPlayers;
         * }//Skipping players that are defeated.
         */
        if (TurnEnded != null)
        {
            modelAnim.SetBool("walk", false);
            TurnEnded.Invoke(this, new EventArgs());
        }

        CurrentUnit.ChargeTime = 0;
        if (CurrentUnit.ActionPoints != 0)
        {
            CurrentUnit.ChargeTime += 20;
        }
        if (CurrentUnit.MovementPoints != 0)
        {
            CurrentUnit.ChargeTime += 20;
        }

        UnitOrderCT = Units.FindAll(c => c.ChargeTime >= 100);         //Makes a list of units with full CT
        UnitNumber  = UnitOrderCT.Count();
        ClockTick();


        //Needs to be commented, otherwise sudden team attack ;D
        //Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        //Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
    }
示例#6
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
        {
            return;
        }
        CellGridState = new CellGridStateTurnChanging(this);

        Units.FindAll(u => (!u.PlayerNumber.Equals(CurrentPlayerNumber))).ForEach(u => { u.HandleCapture(); });
        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });

        CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        while (Players.FindAll(p => p.PlayerNumber.Equals(CurrentPlayerNumber))[0].eliminated)
        {
            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        }
        //while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
        //{
        //    CurrentPlayerNumber = (CurrentPlayerNumber + 1)%NumberOfPlayers;
        //}//Skipping players that are defeated.

        if (TurnEnded != null)
        {
            TurnEnded.Invoke(this, new EventArgs());
        }

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
        GameObject.Find("TurnChange").GetComponent <AudioSource>().Play();
        string info = GameObject.Find("Info").GetComponent <Text>().text;

        GameObject.Find("Info").GetComponent <Text>().text = "you are " + (DarkRift.DarkRiftAPI.isConnected? armyNames[DarkRift.DarkRiftAPI.id - 1]:"RED")
                                                             + "\n" + "currTurn: " + armyNames[CurrentPlayerNumber]
                                                             + "\n" + barracksInfo
                                                             + "\n" + "Current Capture: " + (capPoints >= 0?capPoints.ToString():"")
                                                             + "\nmessagecount: " + NetManager.messageIndex;
    }
示例#7
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1 &&

            (Citys.Select(c => c.PlayerNumber).Distinct().Count() == 1 ||
             (Citys.Select(c => c.PlayerNumber).Distinct().Count() == 2 &&
              Citys.FindAll(c => c.PlayerNumber.Equals(-1)).Count > 0)))
        {
            return;
        }
        CellGridState = new CellGridStateTurnChanging(this);

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });
        Citys.FindAll(c => c.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(c => {
            c.OnTurnEnd(this);
            CurrentPlayer.Money += c.UnitCost;
        });

        CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        while (Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0 &&
               Citys.FindAll(c => c.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
        {
            CurrentPlayerNumber = (CurrentPlayerNumber + 1) % NumberOfPlayers;
        }//Skipping players that are defeated.



        if (TurnEnded != null)
        {
            TurnEnded.Invoke(this, new EventArgs());
        }

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        Citys.FindAll(c => c.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(c => { c.OnTurnStart(); });
        Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);
    }
示例#8
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
        {
            return;
        }
        CellGridState = new CellGridStateTurnChanging(this);

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });

        var maxPlayerNumber = Units.Max(u => u.PlayerNumber);
        CurrentPlayerNumber += 1;
        while (CurrentPlayerNumber <= maxPlayerNumber && Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0)
        {
            CurrentPlayerNumber += 1;
        }//Skipping players that are defeated.

        if (CurrentPlayerNumber > maxPlayerNumber)
        {
            CurrentPlayerNumber = Units.Min(u => u.PlayerNumber);
            while(Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).Count == 0) { CurrentPlayerNumber += 1; }
        }

        if (TurnEnded != null)
            TurnEnded.Invoke(this, new EventArgs());

        Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnStart(); });
        Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this);     
    }
示例#9
0
 /// <summary>
 /// Method makes turn transitions. It is called by player at the end of his turn.
 /// </summary>
 public void EndTurn()
 {
     CellGridState = new CellGridStateTurnChanging(this);
     StartCoroutine(FacingChoice(UnitList[Turn]));
 }
示例#10
0
	/// <summary>
	/// Starts the turn.
	/// </summary>
	public void StartTurn(){
		CurrentPlayerNumber = GameObject.Find ("NetworkManager").GetComponent<photonNetworkManager> ().currentTurnOwner;
		if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1){
			return;
		}
		if (!boolLock) {
			CellGridState = new CellGridStateTurnChanging (this);
			//Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });
			Units.FindAll (u => u.PlayerNumber.Equals (PhotonNetwork.player.ID)).ForEach (u => {
				u.OnTurnStart ();
			});
			Players.Find(p => p.PlayerNumber.Equals(CurrentPlayerNumber)).Play(this); 
			boolLock = true;
			//GameObject.Find ("NetworkManager").GetComponent<photonNetworkManager> ().startTimer ();
		}


		}
示例#11
0
    /// <summary>
    /// Method makes turn transitions. It is called by player at the end of his turn.
    /// </summary>
    public void EndTurn()
    {
		
        if (Units.Select(u => u.PlayerNumber).Distinct().Count() == 1)
        {
            return;
        }
        CellGridState = new CellGridStateTurnChanging(this);
		//Units.FindAll(u => u.PlayerNumber.Equals(CurrentPlayerNumber)).ForEach(u => { u.OnTurnEnd(); });
		Units.FindAll(u => u.PlayerNumber.Equals(PhotonNetwork.player.ID)).ForEach(u => { u.OnTurnEnd(); });


        if (TurnEnded != null)
            TurnEnded.Invoke(this, new EventArgs());
		
		//Debug.Log ("this reaches to here!@#WEAAFWFEFAWEFADASAEFA");
		//GameObject.Find ("NetworkManager").GetComponent<photonNetworkManager> ().changeTurnOnFly ();
		playAudio(turnSound);
		GameObject.Find ("NetworkManager").GetComponent<PhotonView> ().RPC ("changeTurnOnFly",PhotonTargets.All);
		boolLock = false;
		CurrentPlayerNumber = GameObject.Find ("NetworkManager").GetComponent<photonNetworkManager> ().currentTurnOwner;

		//GameObject.Find ("NetworkManager").GetComponent<photonNetworkManager> ().stopTimer ();
    }