public void Animate(AIController ai, ServersGraphC serversC, bool isForward) { if (isForward) { serversC.goingTo.BucklePath(true); serversC.goingTo.SetDomainColour(serversC.GetLightedColour()); d.GetComponent <Image>().color = Color.green; ai.SetEndPosition(serversC.goingTo.GetLandingPos()); step += 1; } else { if (step == 0) { //ToLaunchPad ai.ReturnToInitPosition(); } else { serversC.goingTo.BucklePath(true); ai.SetEndPosition(serversC.goingTo.GetLandingPos()); } step -= 1; } }
void Start() { serversC = GetComponentInChildren <ServersGraphC>(); foreach (AIController AI in GetComponentsInChildren <AIController>()) { AIs.Enqueue(AI); } AIGo = GetComponent <AIGoScript>(); _activeAI = AIs.Dequeue(); }
public void Run(AIController aiC, ServersGraphC serversC, List <Slot> slots, bool isForward) { if (aiC is AlienC) { Run((aiC as AlienC), serversC, slots, isForward); } else { Run((aiC as CivilianC), serversC, slots, isForward); } }
public override void Run(AlienC alien, ServersGraphC serversC, List <Slot> slots, bool isForward) { switch (step) { case -1: slots[step + 1].holding.myImage.color = Color.green; d = slots[step + 1].holding; Animate(alien, serversC, true); break; case 0: serversC.nowAt = serversC.goingTo; serversC.nowAt.BucklePath(false); alien.GetExploded(delegate { Feedback.instance.popUp(true, "Challenge2"); }); break; } }
public override void Run(AlienC alien, ServersGraphC serversC, List <Slot> slots, bool isForward) { if (isForward) { switch (step) { case -1: slots.Reverse(); //Read from the end. d = slots[step + 1].holding; if (d.myName == "COM") { Animate(alien, serversC, true); } else { alien.GetConfused(); } break; case 0: serversC.nowAt = serversC.goingTo; serversC.nowAt.BucklePath(false); d = slots[step + 1].holding; if (d.myName == "CITI" || d.myName == "ONLINE") { serversC.goingTo = serversC.nowAt.ReturnChild(d.myName); Animate(alien, serversC, true); } else { alien.GetConfused(); } break; case 1: serversC.nowAt = serversC.goingTo; serversC.nowAt.BucklePath(false); d = slots[step + 1].holding; if (d.myName == "CITI" || d.myName == "ONLINE") { serversC.goingTo = serversC.nowAt.ReturnChild(d.myName); Animate(alien, serversC, true); } else { alien.GetConfused(); } break; case 2: serversC.nowAt = serversC.goingTo; serversC.nowAt.BucklePath(false); if (d.myName == "CITI") { alien.GetExploded(delegate { GetComponent <NetworkWindows>().NextAI(delegate { Feedback.instance.popUp(true, "Challenge5"); }); }); } else if (d.myName == "ONLINE") { alien.GetRevenge(delegate { Feedback.instance.popUp(false, "Challenge5"); }); } else { alien.GetConfused(); } break; default: Debug.Log("Shouldn't reach here.@AIGoChallengeFour"); break; } } else { if (step > 0) { d = slots[step - 1].holding; serversC.goingTo = serversC.nowAt.ReturnParent(); Animate(alien, serversC, false); } else if (step == 0) { serversC.nowAt = serversC.goingTo; serversC.goingTo = serversC.nowAt.ReturnParent(); Animate(alien, serversC, false); } else { //Reached the launchpad. serversC.nowAt = serversC.goingTo; serversC.goingTo = serversC.root; alien.isForward = true; slots.Reverse(); //Enable sync. Hint(); } } }
public virtual void Run(CivilianC alienC, ServersGraphC serversC, List <Slot> slots, bool isForward) { Debug.Log("Control the civilian phase."); }