/// <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> /// Salva todos los datos que se puedan cambiar de una habitación. /// </summary> /// <param name="roomToSave"></param> public static void SaveData(RoomObject roomToSave) { if (converter == null) { converter = KeywordToStringConverter.Instance; } Room_Data roomData = new Room_Data(); roomData.roomPositionData = roomToSave.roomPosition; roomData.roomDescriptionData = roomToSave.roomDescription; roomData.roomNameData = roomToSave.roomName; roomData.exitsData = new Exit_Data[roomToSave.exits.Count]; if (roomToSave.exits.Count > 0) { for (int i = 0; i < roomData.exitsData.Length; i++) { roomData.exitsData[i] = new Exit_Data(); roomData.exitsData[i].myKeywordData = converter.ConvertFromKeyword(roomToSave.exits[i].myKeyword); roomData.exitsData[i].connectedRoomPosition = roomToSave.exits[i].conectedRoom.roomPosition; roomData.exitsData[i].exitDescriptionData = roomToSave.exits[i].exitDescription; roomData.exitsData[i].exitActionDescriptionData = roomToSave.exits[i].exitActionDescription; roomData.exitsData[i].isExplicit = roomToSave.exits[i].isExplicit; roomData.exitsData[i].disabledDescription = roomToSave.exits[i].disabledDescription; roomData.exitsData[i].isAble = roomToSave.exits[i].isAble; } } SaveGame.Save <Room_Data>(roomToSave.name, roomData, SaveGamePath.RoomDataPath); }