Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Mirror;
- public class TurnSystem : NetworkBehaviour
- {
- public List<TurnClass> playersGroup;
- public GameObject[] players;
- // Start is called before the first frame update
- void Start()
- {
- RpcResetTurns();
- StartCoroutine(AddPlayersToList());
- }
- IEnumerator AddPlayersToList()
- {
- yield return new WaitForSeconds(1f);
- RpcAddPlayers();
- }
- [ClientRpc]
- public void RpcAddPlayers()
- {
- players = GameObject.FindGameObjectsWithTag("Player");
- for (int i = 0; i < players.Length; i++)
- {
- playersGroup.Add(players[i].GetComponent<PlayerMoveTurn>().turnClass);
- playersGroup[i].player = players[i];
- }
- RpcUpdateTurns();
- }
- // Update is called once per frame
- void Update()
- {
- RpcUpdateTurns();
- }
- [ClientRpc]
- void RpcResetTurns()
- {
- for (int i = 0; i < playersGroup.Count; i++)
- {
- if (i == 0)
- {
- playersGroup[i].player.GetComponent<PlayerMoveTurn>().isTurn = true;
- playersGroup[i].player.GetComponent<PlayerMoveTurn>().actionPoints = 2;
- playersGroup[i].player.GetComponent<PlayerMoveTurn>().wasTurnPrev = false;
- }
- else
- {
- playersGroup[i].player.GetComponent<PlayerMoveTurn>().isTurn = false;
- playersGroup[i].player.GetComponent<PlayerMoveTurn>().wasTurnPrev = false;
- }
- }
- }
- [ClientRpc]
- public void RpcUpdateTurns()
- {
- for (int i = 0; i < playersGroup.Count; i++)
- {
- if(!playersGroup[i].player.GetComponent<PlayerMoveTurn>().wasTurnPrev)
- {
- playersGroup[i].player.GetComponent<PlayerMoveTurn>().isTurn = true;
- break;
- }
- else if(i == playersGroup.Count - 1 && playersGroup[i].player.GetComponent<PlayerMoveTurn>().wasTurnPrev)
- {
- RpcResetTurns();
- }
- }
- }
- }
- [System.Serializable]
- public class TurnClass
- {
- public GameObject player;
- //public bool isTurn = false;
- //public bool wasTurnPrev = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement