using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; using Networking.Server; using Networking; public class PortalSetup : MonoBehaviour { public ConnectionHandler clientDataList; public List ConnectedClients; public Color[] playerColours; public List validIndex; public float collectAmount; public float waitTime; int currentIndex = 0; Color deactiveGrey = new Color32 (120, 120, 120, 255); Color deactiveGreyA = new Color32 (120, 120, 120, 0); bool collectedFive = false; //load portal public ParticleSystem Edge; public ParticleSystem InSpark; public ParticleSystem RandomSparks; public ParticleSystem Ring; public ParticleSystem Smoke; ParticleSystem.MainModule mainEdge; ParticleSystem.MainModule mainInSpark; ParticleSystem.MainModule mainRandomSparks; ParticleSystem.MainModule mainRing; ParticleSystem.MainModule mainSmoke; IEnumerator ColorChange () { while(true){ mainEdge.startColor = playerColours[validIndex[currentIndex]]; mainInSpark.startColor = playerColours[validIndex[currentIndex]]; mainRandomSparks.startColor = playerColours[validIndex[currentIndex]]; mainRing.startColor = playerColours[validIndex[currentIndex]]; mainSmoke.startColor = playerColours[validIndex[currentIndex]]; currentIndex++; if(currentIndex >= validIndex.Count){ currentIndex = 0; } yield return new WaitForSeconds (5.0f); } } void Update() { if (!collectedFive && (ConnectedClients[0].collected >= collectAmount || ConnectedClients[1].collected >= collectAmount || ConnectedClients[2].collected >= collectAmount || ConnectedClients[3].collected >= collectAmount)){ collectedFive = true; StartCoroutine (ColorChange ()); } } private void Awake () { //get list of players ConnectedClients = clientDataList.ConnectedClients; playerColours = new Color[ConnectedClients.Count]; validIndex = new List(); for (int i = 0; i < ConnectedClients.Count; i++){ playerColours[i] = ConnectedClients[i].Color; } //link portal particle sections mainEdge = Edge.main; mainInSpark = InSpark.main; mainRandomSparks = RandomSparks.main; mainRing = Ring.main; mainSmoke = Smoke.main; //set start mode for portal mainEdge.startColor = deactiveGrey; mainInSpark.startColor = deactiveGreyA; mainRandomSparks.startColor = deactiveGreyA; mainRing.startColor = deactiveGrey; mainSmoke.startColor = deactiveGreyA; } }