You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

84 lines
2.4 KiB

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<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].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<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;
}
}