Exemple #1
0
 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();
 }
Exemple #3
0
 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;
        }
    }
Exemple #5
0
    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();
            }
        }
    }
Exemple #6
0
 public virtual void Run(CivilianC alienC, ServersGraphC serversC, List <Slot> slots, bool isForward)
 {
     Debug.Log("Control the civilian phase.");
 }