/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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; }
/// <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); }
/// <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); }
/// <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])); }
/// <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 (); } }
/// <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 (); }