using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
using Networking.Server;
|
|
using Networking;
|
|
|
|
public class PortalSetup : MonoBehaviour
|
|
{
|
|
public ClientList clientDataList;
|
|
public List<ClientData> ConnectedClients;
|
|
public Color[] playerColours;
|
|
public List<int> 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].SceneScore >= collectAmount || ConnectedClients[1].SceneScore >= collectAmount || ConnectedClients[2].SceneScore >= collectAmount || ConnectedClients[3].SceneScore >= collectAmount)){
|
|
collectedFive = true;
|
|
StartCoroutine (ColorChange ());
|
|
}
|
|
}
|
|
|
|
private void Awake ()
|
|
{
|
|
//get list of players
|
|
ConnectedClients = clientDataList.ConnectedClients;
|
|
playerColours = new Color[ConnectedClients.Count];
|
|
validIndex = new List<int>();
|
|
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;
|
|
}
|
|
}
|