Exemplo n.º 1
0
 public virtual void MakeSchemaCompliant()
 {
     DirectionVector.MakeSchemaCompliant();
     DirectionDescription.MakeSchemaCompliant();
     DirectionKeyword.MakeSchemaCompliant();
     DirectionString.MakeSchemaCompliant();
 }
Exemplo n.º 2
0
    /// <summary>
    /// Redirige el código a PlayerRoomNagation para que este se mueva, dependiendo de si reconoce o
    /// no la dirección dada.
    /// </summary>
    /// <param name="controller"></param>
    /// <param name="separatedInputWords"></param>
    public override void RespondToInput(GameController controller, string[] separatedInputWords, string[] separatedCompleteInputWords)
    {
        if (converter == null)
        {
            converter = KeywordToStringConverter.Instance;
        }

        if (separatedInputWords[0] == keyWord)
        {
            if (separatedInputWords.Length > 1)
            {
                DirectionKeyword direction = converter.ConvertFromString(separatedInputWords[1]);

                if (direction != DirectionKeyword.unrecognized)
                {
                    controller.playerRoomNavigation.AttemptToChangeRooms(direction);
                }
                else
                {
                    controller.playerRoomNavigation.AttemptToChangeRooms(separatedInputWords[1]);
                }
            }
            else
            {
                controller.LogStringWithReturn("¿Ir donde?");
            }
        }
        else
        {
            controller.playerRoomNavigation.AttemptToChangeRooms(
                converter.ConvertFromString(separatedInputWords[0]));
        }
    }
Exemplo n.º 3
0
    /// <summary>
    /// Intenta moverse en la dirección dada. Si esta dirección no pertenece a una salida, no se mueve.
    /// </summary>
    /// <param name="directionNoun"></param>
    public void AttemptToChangeRooms(DirectionKeyword directionNoun)
    {
        if (converter == null)
        {
            converter = KeywordToStringConverter.Instance;
        }

        if (exitDictionary.ContainsKey(directionNoun))
        {
            foreach (Exit e in currentRoom.exits)
            {
                if (e.myKeyword == directionNoun && !e.isAble)
                {
                    controller.LogStringWithReturn("No puedes ir en esa dirección.");
                    return;
                }
            }

            Exit exitToGo = exitDictionary[directionNoun];

            if (exitToGo.exitActionDescription == "")
            {
                controller.LogStringWithReturn("Te diriges hacia el " + converter.ConvertFromKeyword(directionNoun) + ".");
            }
            else
            {
                controller.LogStringWithReturn(exitToGo.exitActionDescription);
            }

            HideEnemies();

            currentRoom     = exitDictionary[directionNoun].conectedRoom;
            currentPosition = currentRoom.roomPosition;

            miniMapper.MovePlayerInMap(currentPosition);
            equipManager.updateText();
            inventoryManager.DisplayInventory();

            if (GlobalVariables.ContainsVariable("diario"))
            {
                if (GlobalVariables.GetValueOf("diario") == 1)
                {
                    controller.questManager.updateQuests();
                }
            }

            PlayerChangedRooms();             //Añadido para network

            controller.DisplayRoomText();
        }
        else if (directionNoun != DirectionKeyword.unrecognized)
        {
            controller.LogStringWithReturn("No hay caminos hacia el " + converter.ConvertFromKeyword(directionNoun) + ".");
        }
        else
        {
            controller.LogStringWithReturn("Eso sería bastante difícil.");
        }
    }
    /// <summary>
    /// Recibe una string, y devuelve el DirectionKeyword correspondiente.
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    public DirectionKeyword ConvertFromString(string text)
    {
        DirectionKeyword keyword = DirectionKeyword.unrecognized;

        switch (text)
        {
        default:
            keyword = DirectionKeyword.unrecognized;
            break;

        case "norte":
        case "n":
            keyword = DirectionKeyword.north;
            break;

        case "sur":
        case "s":
            keyword = DirectionKeyword.south;
            break;

        case "este":
        case "e":
            keyword = DirectionKeyword.east;
            break;

        case "oeste":
        case "o":
            keyword = DirectionKeyword.west;
            break;

        case "noreste":
        case "nore":
        case "ne":
            keyword = DirectionKeyword.northEast;
            break;

        case "noroeste":
        case "noro":
        case "no":
            keyword = DirectionKeyword.northWest;
            break;

        case "sureste":
        case "sure":
        case "se":
            keyword = DirectionKeyword.southEast;
            break;

        case "suroeste":
        case "suro":
        case "so":
            keyword = DirectionKeyword.southWest;
            break;
        }

        return(keyword);
    }
Exemplo n.º 5
0
    private Exit CreateExit(DirectionKeyword direction, RoomObject myConnectedRoom)
    {
        Exit newExitToCreate = new Exit()
        {
            exitDescription = "Hay una salida al "
                              + KeywordToStringConverter.Instance.ConvertFromKeyword(direction)
                              + ".",
            myKeyword    = direction,
            conectedRoom = myConnectedRoom
        };

        return(newExitToCreate);
    }
    /// <summary>
    /// Recibe un keyword de dirección y devuelve un string correspondiente.
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    public string ConvertFromKeyword(DirectionKeyword key)
    {
        string direction = "";

        switch (key)
        {
        default:
            direction = "No keyword given";
            break;

        case DirectionKeyword.north:
            direction = "norte";
            break;

        case DirectionKeyword.south:
            direction = "sur";
            break;

        case DirectionKeyword.east:
            direction = "este";
            break;

        case DirectionKeyword.west:
            direction = "oeste";
            break;

        case DirectionKeyword.northEast:
            direction = "noreste";
            break;

        case DirectionKeyword.northWest:
            direction = "noroeste";
            break;

        case DirectionKeyword.southEast:
            direction = "sureste";
            break;

        case DirectionKeyword.southWest:
            direction = "suroeste";
            break;
        }

        return(direction);
    }