コード例 #1
0
    protected override void ExecuteCommand()
    {
        Logging();
        Data       d;
        TopCommand runTopCommand = instructionPan.GetTopCommandAt(playerCMDNo);

        switch (runTopCommand.myCode)
        {
        case TopCommand.Code.Inbox:
            d = playerInbox.sendFirstData();
            if (d)
            {
                player.PickupData(d);
                ExecuteNextIfNotPaused();
            }
            else
            {
                FailFeedback("There's no more data to \"Take\" off your line.", playerFeedback);
            }
            break;

        case TopCommand.Code.Outbox:
            d = player.SendData();
            if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Boss)
            {
                if (d)
                {
                    playerOutbox.AcceptData(d);
                    if (hasSolved == 0 && d.dataStr == "O")
                    {
                        hasSolved = 1;
                        InformFeedback("Thanks! The next letter that I need is \"K\".", playerFeedback);
                        StartCoroutine(DiminishAfterSec(playerFeedback, 1f));
                        ExecuteNextIfNotPaused();
                    }
                    else if (hasSolved == 0 && d.dataStr == "K")
                    {
                        FailFeedback("I was expecting to receive \"O\" first. Try to \"Store\" \"K\" in a cell first.", playerFeedback);
                    }
                    else if (hasSolved == 1 && d.dataStr == "K")
                    {
                        hasSolved = 2;
                        SucceedFeedback("Well done!", playerFeedback, "Challenge5");
                    }
                    else if (hasSolved == 1 && d.dataStr == "O")
                    {
                        FailFeedback("I was not expecting to receive \"O\" twice.", playerFeedback);
                    }
                }
                else
                {
                    FailFeedback("You're not holding anything. Please \"Take\" or \"Load\" before \"Giving\" me data.", playerFeedback);
                }
            }
            else if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Distrust)
            {
                if (d)
                {
                    distrustOutbox.AcceptData(d);
                    FailFeedback("I was not expecting to receive any data.", distrustFeedback);
                }
                else
                {
                    FailFeedback("Fool. \"Take\" or \"Load\" before \"Giving\" me data.", distrustFeedback);
                }
            }
            break;

        case TopCommand.Code.Load:
            if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Zero)
            {
                d = memoryBar.CloneDataAt(0);
            }
            else
            {
                d = memoryBar.CloneDataAt(1);
            }
            if (d)
            {
                player.PickupData(d);
                ExecuteNextIfNotPaused();
            }
            else
            {
                FailFeedback("That cell is empty!", playerFeedback);
            }
            break;

        case TopCommand.Code.Store:
            d = player.CloneData();
            if (d)
            {
                if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Zero)
                {
                    memoryBar.AcceptDataAt(0, d);
                }
                else
                {
                    memoryBar.AcceptDataAt(1, d);
                }
                ExecuteNextIfNotPaused();
            }
            else
            {
                FailFeedback("You're not holding any data to store.", playerFeedback);
            }
            break;
        }
    }
コード例 #2
0
    protected override void ExecuteCommand()
    {
        Logging();
        Data       d;
        TopCommand runTopCommand = instructionPan.GetTopCommandAt(playerCMDNo);

        switch (runTopCommand.myCode)
        {
        case TopCommand.Code.Inbox:
            d = playerInbox.sendFirstData();
            if (d)
            {
                player.PickupData(d);
                ExecuteNextIfNotPaused();
            }
            else
            {
                FailFeedback("There's no more data to \"Take\" off your line.", playerFeedback);
            }
            break;

        case TopCommand.Code.Outbox:
            d = player.SendData();
            if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Boss)
            {
                if (d)
                {
                    playerOutbox.AcceptData(d);
                    if (hasSolved == 0 && d.dataStr == "O")
                    {
                        hasSolved = 1;
                        InformFeedback("Thanks, I got what I need.", playerFeedback);
                        StartCoroutine(DiminishAfterSec(playerFeedback, 1f));
                        ExecuteNextIfNotPaused();
                    }
                    else if (hasSolved == 2 && d.dataStr == "O")
                    {
                        hasSolved = 3;
                        SucceedFeedback("Well done!", playerFeedback, "Challenge4");
                    }
                    else if (hasSolved == 1 && d.dataStr == "O")
                    {
                        FailFeedback("I was not expecting more letters", playerFeedback);
                    }
                }
                else
                {
                    FailFeedback("Hmm? Please \"Load\" before \"Giving\" me data.", playerFeedback);
                }
            }
            else if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Distrust)
            {
                if (d)
                {
                    distrustOutbox.AcceptData(d);
                    if (hasSolved == 0 && d.dataStr == "O")
                    {
                        hasSolved = 2;
                        InformFeedback("Thanks, I got what I need.", distrustFeedback);
                        StartCoroutine(DiminishAfterSec(distrustFeedback, 1f));
                        ExecuteNextIfNotPaused();
                    }
                    else if (hasSolved == 2 && d.dataStr == "O")
                    {
                        FailFeedback("I was not expecting to receive \"O\" twice.", distrustFeedback);
                    }
                    else if (hasSolved == 1 && d.dataStr == "O")
                    {
                        hasSolved = 3;
                        SucceedFeedback("Nice work.", distrustFeedback, "Challenge4");
                    }
                }
                else
                {
                    FailFeedback("You're empty handed? \"Load\" before \"Giving\" me data.", distrustFeedback);
                }
            }
            break;

        case TopCommand.Code.Load:
            if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Zero)
            {
                d = memoryBar.CloneDataAt(0);
            }
            else
            {
                d = memoryBar.CloneDataAt(1);
            }
            if (d)
            {
                player.PickupData(d);
                ExecuteNextIfNotPaused();
            }
            else
            {
                FailFeedback("No data to load there!", playerFeedback);
            }
            break;
        }
    }
コード例 #3
0
    protected override void ExecuteCommand()
    {
        Logging();
        Data       d;
        TopCommand runTopCommand = instructionPan.GetTopCommandAt(playerCMDNo);

        switch (runTopCommand.myCode)
        {
        case TopCommand.Code.Inbox:
            d = playerInbox.sendFirstData();
            if (d)
            {
                player.PickupData(d);
                ExecuteNextIfNotPaused();
            }
            else
            {
                FailFeedback("There's no more data to \"Take\" off your line.", playerFeedback);
            }
            break;

        case TopCommand.Code.Outbox:
            d = player.SendData();
            if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Boss)
            {
                if (d)
                {
                    playerOutbox.AcceptData(d);
                    if (hasSolved == 0 && d.dataStr == "O")
                    {
                        FailFeedback("I was not expecting to receive \"O\".", playerFeedback);
                    }
                    else if (hasSolved == 0 && d.dataStr == "K")
                    {
                        FailFeedback("You dropped the letter \"O\".", distrustFeedback);
                    }
                    else if (hasSolved == 1 && d.dataStr == "K")
                    {
                        hasSolved += 1;
                        SucceedFeedback("Well done!", playerFeedback, "Challenge3");
                    }
                }
                else
                {
                    FailFeedback("You're hands are empty. Please \"Take\" before \"Giving\" me data.", playerFeedback);
                }
            }
            else if (runTopCommand.subCommandRef.myCode == SubCommand.Code.Distrust)
            {
                if (d)
                {
                    distrustOutbox.AcceptData(d);
                    if (hasSolved == 0 && d.dataStr == "O")
                    {
                        hasSolved += 1;
                        InformFeedback("Thanks, I got what I need.", distrustFeedback);
                        StartCoroutine(DiminishAfterSec(distrustFeedback, 1f));
                        ExecuteNextIfNotPaused();
                    }
                    else if (hasSolved == 0 && d.dataStr == "K")
                    {
                        FailFeedback("Fool! This is the wrong piece of data!", distrustFeedback);
                    }
                    else if (hasSolved == 1 && d.dataStr == "K")
                    {
                        FailFeedback("I don't need all this information.", distrustFeedback);
                    }
                }
                else
                {
                    FailFeedback("You're hands are empty. Please \"Take\" before \"Giving\" me data.", distrustFeedback);
                }
            }
            break;
        }
    }