Ejemplo n.º 1
0
    public void GetInput(string theInput)
    {
        Random randy = new Random();

        WriteLine("--" + theInput);
        updateTextPosition();
        theInput = theInput.ToLower();
        char[] myCharCollection = new char[theInput.Length];
        myCharCollection = theInput.ToCharArray();
        if (!theInput.Contains(','))
        {
            theInput = new string(myCharCollection.Where(c => !char.IsPunctuation(c)).ToArray());
        }
        switch (theInput)
        {
        //TESTMODE COMMANDS----------------------------------------------------------------------------------------
        case "testmode":
            WriteLine(">>>testMode starting...");
            testMode = true;
            break;

        case "testmodeoff":
            testMode = false;
            WriteLine(">>>testMode stopped...");
            break;

        //CONVERSATIONAL COMMANDS----------------------------------------------------------------------------------
        case "thecakeisalie":
            WriteLine(">>>Well, for my sister GLADoS that might be true, but I'll give you all the cake you want!");
            break;

        case "read a book":
            WriteLine(">>>I'm a computer, I can't read. You can check out the Digital Library though.");
            break;

        //INVENTORY DEBUG COMMANDS---------------------------------------------------------------------------------
        case "give player something":
            if (inventoryChanger.GivePlayer(InventoryManager.ERK_ITEM))
            {
                WriteLine(">>>Giving Player an ERK... [OK]");
            }
            else
            {
                WriteLine("Giving Player an ERK... [FAIL]");
            }
            break;

        //DOOR COMMANDS-------------------------------------------------------------------------------------------
        //UNLOCK DOORS
        case "opn7169":
            WriteLine("UNLOCKING DOORS...");
            if (gameManager.commandEntered)
            {
                Write(" [FAIL--ALREADY UNLOCKED]");
            }
            else
            {
                gameManager.commandEntered = true;
                Write(" [OK]");
            }
            break;

        //OPEN DOORS----------------------------------------
        case "open bathroom door":
            if (doorManager.Open(DoorManager.BATHROOM_DOOR))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY OPEN]");
            }
            break;

        case "open airlock door one":
            if (doorManager.Open(DoorManager.AIRLOCK_DOOR_ONE))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY OPEN]");
            }
            break;

        case "open airlock door two":
            if (doorManager.Open(DoorManager.AIRLOCK_DOOR_TWO))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY OPEN]");
            }
            break;

        case "open emergency airlock door one":
            if (doorManager.Open(DoorManager.EMERGENCY_AIRLOCK_DOOR_ONE))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY OPEN]");
            }
            break;

        case "open emergency airlock door two":
            if (doorManager.Open(DoorManager.EMERGENCY_AIRLOCK_DOOR_TWO))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY OPEN]");
            }
            break;

        //CLOSE DOORS----------------------------------------
        case "close bathroom door":
            if (doorManager.Close(DoorManager.BATHROOM_DOOR))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY CLOSED]");
            }
            break;

        case "close airlock door one":
            if (doorManager.Close(DoorManager.AIRLOCK_DOOR_ONE))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY CLOSED]");
            }
            break;

        case "close airlock door two":
            if (doorManager.Close(DoorManager.AIRLOCK_DOOR_TWO))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY CLOSED]");
            }
            break;

        case "close emergency airlock door one":
            if (doorManager.Close(DoorManager.EMERGENCY_AIRLOCK_DOOR_ONE))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY CLOSED]");
            }
            break;

        case "close emergency airlock door two":
            if (doorManager.Close(DoorManager.EMERGENCY_AIRLOCK_DOOR_TWO))
            {
                Write(" [OK]");
            }
            else
            {
                Write(" [FAIL--DOOR ALREADY CLOSED]");
            }
            break;

        //VARIABLE COMMANDS----------------------------------------------------------------------------------------------
        default:
            //TODO check unconstant stuff
            //TELEPORTATION--------------------------------------------------------------------------------------------------
            if (theInput.Contains("tp"))
            {
                //A really long line of code that does a lot of stuff.
                player.setPlayerPosition(Vector3String.StringToVector3(theInput.Split(' ')[1]));
                break;
            }
            //TIME
            if (theInput.Contains("timeset"))
            {
                int timeToSet;
                if (int.TryParse(theInput.Split(' ')[1], out timeToSet))
                {
                    timemanager.setTime(timeToSet);
                    WriteLine(" [OK]");
                }
                else
                {
                    WriteLine(" [Failed -- Not An Integer]");
                }
                break;
            }
            WriteLine(">>>ai.exe error. Unable to interpret [" + theInput + "]");
            break;
        }
        updateTextPosition();
    }