public virtual void MakeSchemaCompliant() { DirectionVector.MakeSchemaCompliant(); DirectionDescription.MakeSchemaCompliant(); DirectionKeyword.MakeSchemaCompliant(); DirectionString.MakeSchemaCompliant(); }
/// <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])); } }
/// <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); }
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); }