public roomInfo BuildingIntoRoom(Building thisBuilding) { roomInfo ThisRoom = new roomInfo(); ThisRoom.RoomName = thisBuilding.BuildingName; ThisRoom.Description = thisBuilding.Description; ThisRoom.AltDescription = thisBuilding.AltDescription; ThisRoom.CanMove = thisBuilding.CanMove; ThisRoom.LockedIn = thisBuilding.LockedIn; ThisRoom.SuicideAction = thisBuilding.SuicideAction; //ThisRoom.ImagePath = thisBuilding.ImagePath; ThisRoom.Events = new List<Event>(); ThisRoom.Civilians = new List<CivilianProfile>(); ThisRoom.items = new List<itemInfo>(); ThisRoom.Enemy = new List<EnemyProfile>(); DataTypes dt = new DataTypes(); if (thisBuilding.Events != null) foreach (Event newEvent in thisBuilding.Events) { ThisRoom.Events.Add(dt.CloneEvent(newEvent)); } if (thisBuilding.Civilians != null) foreach (CivilianProfile NPC in thisBuilding.Civilians) { ThisRoom.Civilians.Add(dt.CloneNPC(NPC)); } if (thisBuilding.items != null) foreach (itemInfo NewItem in thisBuilding.items) { ThisRoom.items.Add(dt.CloneItem(NewItem)); } if (thisBuilding.Enemy != null) foreach (EnemyProfile Enemy in thisBuilding.Enemy) { ThisRoom.Enemy.Add(dt.CloneEnemy(Enemy)); } return ThisRoom; }
private void Test() { //StartCoroutine(Get(_roomStatusURL + 9, GetRoomStatusHandler)); roomInfo info = new roomInfo(); info.roomID = 217; info.userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjQ4LCJpYXQiOjE0OTE5NTkxNDgsImV4cCI6MTQ5MjEzMTk0OH0.8T9sKTGRXFXdwRNs2Cz9ZoCPX7_2tI5jQH0K8-a8Ovs"; string json = JsonMapper.ToJson(info); InitRoom(json); }
public roomInfo CloneRoom(roomInfo Room) { roomInfo NewRoom = new roomInfo(); NewRoom.Description = Room.Description; NewRoom.AltDescription = Room.AltDescription; NewRoom.CanMove = Room.CanMove; NewRoom.LockedIn = Room.LockedIn; NewRoom.SuicideAction = Room.SuicideAction; NewRoom.RoomColour = Room.RoomColour; //NewRoom.ImagePath = Room.ImagePath; NewRoom.Building = CloneBuilding(Room.Building); NewRoom.Events = new List <Event>(); NewRoom.Civilians = new List <CivilianProfile>(); NewRoom.items = new List <itemInfo>(); NewRoom.Enemy = new List <EnemyProfile>(); if (Room.Events != null) { foreach (Event newEvent in Room.Events) { NewRoom.Events.Add(CloneEvent(newEvent)); } } if (Room.Civilians != null) { foreach (CivilianProfile NPC in Room.Civilians) { NewRoom.Civilians.Add(CloneNPC(NPC)); } } if (Room.items != null) { foreach (itemInfo NewItem in Room.items) { NewRoom.items.Add(CloneItem(NewItem)); } } if (Room.Enemy != null) { foreach (EnemyProfile Enemy in Room.Enemy) { NewRoom.Enemy.Add(CloneEnemy(Enemy)); } } return(NewRoom); }
public Building RoomIntoBuilding(roomInfo thisRoom) { Building thisBuilding = new Building(); thisBuilding.BuildingName = thisRoom.RoomName; thisBuilding.Description = thisRoom.Description; thisBuilding.AltDescription = thisRoom.AltDescription; thisBuilding.CanMove = thisRoom.CanMove; thisBuilding.LockedIn = thisRoom.LockedIn; thisBuilding.SuicideAction = thisRoom.SuicideAction; //thisBuilding.ImagePath = thisRoom.ImagePath; thisBuilding.Events = new List <Event>(); thisBuilding.Civilians = new List <CivilianProfile>(); thisBuilding.items = new List <itemInfo>(); thisBuilding.Enemy = new List <EnemyProfile>(); DataTypes dt = new DataTypes(); if (thisRoom.Events != null) { foreach (Event newEvent in thisRoom.Events) { thisBuilding.Events.Add(dt.CloneEvent(newEvent)); } } if (thisRoom.Civilians != null) { foreach (CivilianProfile NPC in thisRoom.Civilians) { thisBuilding.Civilians.Add(dt.CloneNPC(NPC)); } } if (thisRoom.items != null) { foreach (itemInfo NewItem in thisRoom.items) { thisBuilding.items.Add(dt.CloneItem(NewItem)); } } if (thisRoom.Enemy != null) { foreach (EnemyProfile Enemy in thisRoom.Enemy) { thisBuilding.Enemy.Add(dt.CloneEnemy(Enemy)); } } return(thisBuilding); }
public void InitRoom(string json) { StopAllCoroutines(); roomInfo info = JsonMapper.ToObject <roomInfo>(json); if (info == null) { Debug.LogError("Json Error!"); return; } _roomID = info.roomID; _userToken = info.userToken; StartCoroutine(Get(_roomStatusURL + _roomID, GetRoomStatusHandler)); EventDispatcher.TriggerEvent("InitCapture"); }
public void Setup(List <MatchInfoSnapshot> matches) { foreach (MatchInfoSnapshot match in matches) { GameObject newMatch = (GameObject)Instantiate(roomBtnPrefab, transform); roomInfo room = newMatch.GetComponent <roomInfo>(); room.label.text = match.name; room.info = match; newMatch.transform.localScale = Vector3.one; newMatch.transform.localPosition = Vector3.zero; } }
//takes building and room information from selected values and fills the values from the .csv report into the inventory tab of the main form private void pullDataBtn_Click(object sender, EventArgs e) { f1.addBuildingComBox.SelectedItem = BuildingCB.Text; f1.addRoomTB.Text = RoomCB.Text; roomInfo exactRoom = new roomInfo(); foreach (var room in f1.campusData) { if (room.Building.Equals(BuildingCB.Text) && room.Room.Equals(RoomCB.Text)) { exactRoom = room; break; } } f1.addContComBox.SelectedItem = exactRoom.control; f1.addAudioComBox.SelectedItem = exactRoom.audio; f1.addDockCB.Checked = exactRoom.dock; f1.addDCCB.Checked = exactRoom.docCam; f1.addCamCB.Checked = exactRoom.camera; f1.addMicCB.Checked = exactRoom.mic; f1.addBRCB.Checked = exactRoom.Bluray; f1.addDVDCB.Checked = exactRoom.DVD; f1.addHDMICB.Checked = exactRoom.hdmi; f1.addVGACB.Checked = exactRoom.vga; f1.addAVCB.Checked = exactRoom.av; f1.addSolCB.Checked = exactRoom.sol; f1.addMMTB1.Text = exactRoom.display1; f1.addSerialTB1.Text = exactRoom.serial1; f1.addScrTB1.Text = exactRoom.screen1; f1.addIPTB1.Text = exactRoom.ip1; f1.addMACTB1.Text = exactRoom.mac1; f1.addBulbTB1.Text = exactRoom.bulb1; f1.addMMTB2.Text = exactRoom.display2; f1.addSerialTB2.Text = exactRoom.serial2; f1.addScrTB2.Text = exactRoom.screen2; f1.addIPTB2.Text = exactRoom.ip2; f1.addMACTB2.Text = exactRoom.mac2; f1.addBulbTB2.Text = exactRoom.bulb3; f1.addMMTB3.Text = exactRoom.display3; f1.addSerialTB3.Text = exactRoom.serial3; f1.addScrTB3.Text = exactRoom.screen3; f1.addIPTB3.Text = exactRoom.ip3; f1.addMACTB3.Text = exactRoom.mac3; f1.addBulbTB3.Text = exactRoom.bulb3; f1.addMMTB4.Text = exactRoom.display4; f1.addSerialTB4.Text = exactRoom.serial4; f1.addScrTB4.Text = exactRoom.screen4; f1.addIPTB4.Text = exactRoom.ip4; f1.addMACTB4.Text = exactRoom.mac4; f1.addBulbTB4.Text = exactRoom.bulb4; if (exactRoom.filter.ToString("MM/dd/yyyy") != "01/01/0001") { f1.addFilter.Text = exactRoom.filter.ToString("MM/dd/yyyy"); } else { f1.addFilter.CustomFormat = " "; } if (exactRoom.alarm.ToString("MM/dd/yyyy") != "01/01/0001") { f1.addAlarm.Text = exactRoom.alarm.ToString("MM/dd/yyyy"); } else { f1.addAlarm.CustomFormat = " "; } f1.addPCModTB.Text = exactRoom.PCModel; f1.addPCSerialTB.Text = exactRoom.PCSerial; f1.addNUCIPTB.Text = exactRoom.nucip; f1.addNUCMACTB.Text = exactRoom.nucmac; f1.addCatVidTB.Text = exactRoom.Cat6.ToString(); f1.addNetTB.Text = exactRoom.NetPorts.ToString(); if (exactRoom.solDate.ToString("MM/dd/yyyy") != "01/01/0001") { f1.addSolDate.Text = exactRoom.solDate.ToString("MM/dd/yyyy"); } else { f1.addSolDate.CustomFormat = " "; } f1.addOtherTB.Text = exactRoom.other; f1.Refresh(); Close(); }
public static Building LeaveBuilding(roomInfo thisRoom) { Building thisBuilding = new Building(); LoDConsole.WriteLine("Leaving " + thisRoom.RoomName); //Thread.Sleep(1000); DataTypes dt = new DataTypes(); thisBuilding = dt.RoomIntoBuilding(thisRoom); Player.InBuilding = false; return thisBuilding; }
public static Event EventAction(Event thisEvent) { if (thisEvent.Triggered == false) { thisEvent.Triggered = true; if (thisEvent.Action.ToLower() == "unlockroom") //unlock { if (thisEvent.Coodinates != null) { ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].CanMove = true; } } else if (thisEvent.Action.ToLower() == "lockroom") //lock { if (thisEvent.Coodinates != null) { ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].CanMove = false; } } else if (thisEvent.Action.ToLower() == "unlockbuilding") //unlock { if (thisEvent.Coodinates != null) { ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building.CanMove = true; } } else if (thisEvent.Action.ToLower() == "lockbuilding") //lock { if (thisEvent.Coodinates != null) { ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building.CanMove = false; } } else if (thisEvent.Action.ToLower() == "lockin") { if (!CurrentRoom.LockedIn) CurrentRoom.LockedIn = true; else CurrentRoom.LockedIn = false; SaveWorld(); } else if (thisEvent.Action.ToLower() == "kill all enemies") //kill all { //do some other things if (CurrentRoom.Enemy != null) { if (CurrentRoom.items == null) CurrentRoom.items = new List<itemInfo>(); foreach (EnemyProfile ThisEnemy in CurrentRoom.Enemy) { CurrentRoom.items.Add(ThisEnemy.Weapon); itemInfo newItem = new itemInfo(); newItem.Name = string.Concat(ThisEnemy.name, "'s body"); newItem.Class = "Object"; newItem.Examine = string.Concat("The slashed and torn body of enemy ", ThisEnemy.name); newItem.CanPickUp = false; newItem.InteractionName = new List<string>(); newItem.InteractionName.Add("body"); newItem.InteractionName.Add("corpse"); newItem.InteractionName.Add("enemy"); newItem.InteractionName.Add(string.Concat(ThisEnemy.name, "'s body")); newItem.InteractionName.Add(ThisEnemy.name); CurrentRoom.items.Add(newItem); GainXPfromEnemy(ThisEnemy); } EventTrigger("killallenemies"); CurrentRoom.Enemy.Clear(); //Overwrite all enemies } } else if (thisEvent.Action.ToLower() == "remove all npcs") //remove all npcs { CurrentRoom.Civilians.Clear(); SaveWorld(); } else if (thisEvent.Action.ToLower() == "remove all items") //remove all npcs { CurrentRoom.items.Clear(); SaveWorld(); } else if (thisEvent.Action.ToLower() == "change description" || thisEvent.Action.ToLower() == "custom description") //change description { if (thisEvent.Coodinates[2] != Player.CurrentPos[2]) //If change is not on this floor { Floor TempFloor; TempFloor = world[thisEvent.Coodinates[2]]; if (!thisEvent.ApplyToBuilding) { if (thisEvent.Action.ToLower() == "change description") TempFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Description = TempFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].AltDescription; else TempFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Description = thisEvent.EventValue; } else if (thisEvent.ApplyToBuilding == true && TempFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building.BuildingName != null) { roomInfo TempRoom = new roomInfo(); DataTypes dt = new DataTypes(); TempRoom = dt.BuildingIntoRoom(TempFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building); if (thisEvent.Action.ToLower() == "change description") TempRoom.Description = TempRoom.AltDescription; else TempRoom.Description = thisEvent.EventValue; TempFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building = dt.RoomIntoBuilding(TempRoom); } world[thisEvent.Coodinates[2]] = TempFloor; } else if (Player.CurrentPos[0] != thisEvent.Coodinates[0] || Player.CurrentPos[1] != thisEvent.Coodinates[1]) //Change is not in this cell { if (!thisEvent.ApplyToBuilding) { if (thisEvent.Action.ToLower() == "change description") ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Description = ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].AltDescription; else ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Description = thisEvent.EventValue; } else if (thisEvent.ApplyToBuilding == true && ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building.BuildingName != null) { roomInfo TempRoom = new roomInfo(); DataTypes dt = new DataTypes(); TempRoom = dt.BuildingIntoRoom(ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building); if (thisEvent.Action.ToLower() == "change description") TempRoom.Description = TempRoom.AltDescription; else TempRoom.Description = thisEvent.EventValue; ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building = dt.RoomIntoBuilding(TempRoom); } } else { if ((!thisEvent.ApplyToBuilding && !Player.InBuilding) || (thisEvent.ApplyToBuilding && Player.InBuilding)) //Applying to the non-building area the player is in { if (thisEvent.Action.ToLower() == "change description") CurrentRoom.Description = CurrentRoom.AltDescription; else CurrentRoom.Description = thisEvent.EventValue; } else if (!thisEvent.ApplyToBuilding && Player.InBuilding == true) //Applies to current cell but player is in building { if (thisEvent.Action.ToLower() == "change description") ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Description = ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].AltDescription; else ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Description = thisEvent.EventValue; } else if (thisEvent.ApplyToBuilding == true && Player.InBuilding == false) //Applies to building in current Cell { roomInfo TempRoom = new roomInfo(); DataTypes dt = new DataTypes(); TempRoom = dt.BuildingIntoRoom(ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building); if (thisEvent.Action.ToLower() == "change description") TempRoom.Description = TempRoom.AltDescription; else TempRoom.Description = thisEvent.EventValue; ThisFloor.CurrentFloor[thisEvent.Coodinates[0], thisEvent.Coodinates[1]].Building = dt.RoomIntoBuilding(TempRoom); } } SaveWorld(); CurrentRoom = GetRoomInfo(Player.CurrentPos); //retreive new room info } else if (thisEvent.Action.ToLower() == "change location") //change floor { bool newFloor = false; if (thisEvent.Coodinates[2] != Player.CurrentPos[2]) newFloor = true; //If the player is changing floors //ThisEvent will remain bool untriggered as will allow multiple re-use //Thread.Sleep(5000); world[Player.CurrentPos[2]] = ThisFloor; //save floor to list. Player.CurrentPos[0] = thisEvent.Coodinates[0]; Player.CurrentPos[1] = thisEvent.Coodinates[1]; //set players position to start of new room Player.CurrentPos[2] = thisEvent.Coodinates[2]; ThisFloor = world[Player.CurrentPos[2]]; //retreive new floor if (!thisEvent.ApplyToBuilding) Player.InBuilding = false; else Player.InBuilding = true; CurrentRoom = GetRoomInfo(Player.CurrentPos); //retreive new room info //else if (!string.IsNullOrEmpty(ThisFloor.CurrentFloor[Player.CurrentPos[0], Player.CurrentPos[1]].Building.BuildingName)) //move player into building. //{ // DataTypes dt = new DataTypes(); // CurrentRoom = dt.BuildingIntoRoom(ThisFloor.CurrentFloor[Player.CurrentPos[0],Player.CurrentPos[1]].Building); //} LoDConsole.Clear(); //clear the screen LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); if (newFloor == true && ThisFloor.FloorSong != null && File.Exists(ThisFloor.FloorSong)) { MusicPlayer.SoundLocation = ThisFloor.FloorSong; Music("Start"); } } else if (thisEvent.Action.ToLower() == "change objective") { Player.Objective = thisEvent.EventValue; LoDConsole.WriteLine("\nYour current objective has changed."); } /* else if (thisEvent.Action.ToLower() == "custom description") { CurrentRoom.Description = thisEvent.EventValue; SaveWorld(); } */ else if (thisEvent.Action.ToLower() == "output text") { LoDConsole.WriteLine(""); LoDConsole.WriteLine(WordWrap(thisEvent.EventValue)); } else if (thisEvent.Action == "spawnItems") { if (CurrentRoom.items == null) CurrentRoom.items = new List<itemInfo>(); foreach (itemInfo Item in thisEvent.Items) { CurrentRoom.items.Add(Item); } SaveWorld(); } else if (thisEvent.Action == "spawnNPC") { if (CurrentRoom.Civilians == null) CurrentRoom.Civilians = new List<CivilianProfile>(); foreach (CivilianProfile NPC in thisEvent.NPCs) { CurrentRoom.Civilians.Add(NPC); } SaveWorld(); } else if (thisEvent.Action == "spawnEnemy") { if (CurrentRoom.Enemy == null) CurrentRoom.Enemy = new List<EnemyProfile>(); foreach (EnemyProfile Enemy in thisEvent.Enemies) { CurrentRoom.Enemy.Add(Enemy); } SaveWorld(); } else if (thisEvent.Action == "giveXP") { int n; if (int.TryParse(thisEvent.EventValue, out n)) Player.XP = Player.XP + n; } else if (thisEvent.Action == "EndCredits") { Console.ReadKey(); EndCredits(); } else thisEvent.Triggered = false; //If an event is re-usable allow it to be triggered again if (thisEvent.Triggered == true && thisEvent.ReUsable == true) thisEvent.Triggered = false; if (thisEvent.Coodinates != null && thisEvent.Coodinates[0] == Player.CurrentPos[0] && thisEvent.Coodinates[1] == Player.CurrentPos[1] && thisEvent.Coodinates[2] == Player.CurrentPos[2]) CurrentRoom = GetRoomInfo(Player.CurrentPos); } return thisEvent; }
public roomInfo CloneRoom(roomInfo Room) { roomInfo NewRoom = new roomInfo(); NewRoom.Description = Room.Description; NewRoom.AltDescription = Room.AltDescription; NewRoom.CanMove = Room.CanMove; NewRoom.LockedIn = Room.LockedIn; NewRoom.SuicideAction = Room.SuicideAction; NewRoom.RoomColour = Room.RoomColour; //NewRoom.ImagePath = Room.ImagePath; NewRoom.Building = CloneBuilding(Room.Building); NewRoom.Events = new List<Event>(); NewRoom.Civilians = new List<CivilianProfile>(); NewRoom.items = new List<itemInfo>(); NewRoom.Enemy = new List<EnemyProfile>(); if (Room.Events != null) foreach (Event newEvent in Room.Events) { NewRoom.Events.Add(CloneEvent(newEvent)); } if (Room.Civilians != null) foreach (CivilianProfile NPC in Room.Civilians) { NewRoom.Civilians.Add(CloneNPC(NPC)); } if (Room.items != null) foreach (itemInfo NewItem in Room.items) { NewRoom.items.Add(CloneItem(NewItem)); } if (Room.Enemy != null) foreach (EnemyProfile Enemy in Room.Enemy) { NewRoom.Enemy.Add(CloneEnemy(Enemy)); } return NewRoom; }
public static void EndCredits() { LoDConsole.Clear(); int Linebreaks = 20; int Counter = 0; int StartLine = 0; int i; List<string> Credits = new List<string>(); Credits.Add("Game Developed by Joe van de Bilt"); if (WorldState.WorldAuthor != null) Credits.Add("World Designed by " + WorldState.WorldAuthor); if (WorldState.Credits != null) foreach (string Credit in WorldState.Credits) { Credits.Add(Credit); } while (Counter < (Credits.Count + 20)) { for (i = 0; i < Linebreaks; i++) { LoDConsole.WriteLine(); } for (i = StartLine; i <= Counter; i++) { if (i >= Credits.Count) LoDConsole.WriteLine(); else LoDConsole.WriteLine("\t\t" + Credits[i] + "\n\n"); } Counter = Counter + 1; Linebreaks = Linebreaks - 1; if (Linebreaks <= 0) StartLine++; //Thread.Sleep(1000); LoDConsole.Clear(); } LoDConsole.Clear(); LoDConsole.WriteLine("\n\n\n\t\tThank you for Playing"); Console.ReadKey(); //Run the main menu screen DrawMainMenu(); ThisFloor = world[Player.CurrentPos[2]]; CurrentRoom = ThisFloor.CurrentFloor[Player.CurrentPos[0], Player.CurrentPos[1]]; LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); }
public static void EnterCommand(string PlayerCommand) { //Take in a player command //LoDConsole.Write(">"); //PlayerCommand = Console.ReadLine(); PlayerCommand = CleanPlayerInput(PlayerCommand); //Clean the input of unusual characters if (!ClearConsole) LoDConsole.WriteLine(""); else LoDConsole.Clear(); try { #region Help if (PlayerCommand.ToLower() == "help" || PlayerCommand.ToLower() == "commands" || PlayerCommand.ToLower().Contains("how do i") || PlayerCommand.ToLower().Contains("how can i")) { using (StreamReader file = new System.IO.StreamReader(@".\System Files\GameEngineHelp.sys", true)) { LoDConsole.WriteLine(WordWrap(file.ReadToEnd())); } } #endregion #region Movement else if ( (PlayerCommand.ToLower().Split(' ')[0] == "go" && PlayerCommand.ToLower().Split(' ')[1] != "into") || PlayerCommand.ToLower().Split(' ')[0] == "move" || PlayerCommand.ToLower().Split(' ')[0] == "travel" || PlayerCommand.ToLower() == "north" || PlayerCommand.ToLower() == "east" || PlayerCommand.ToLower() == "south" || PlayerCommand.ToLower() == "west" ) { if (!CurrentRoom.LockedIn) { int[] ProposedMove = new int[3]; ProposedMove[0] = Player.CurrentPos[0]; ProposedMove[1] = Player.CurrentPos[1]; ProposedMove[2] = Player.CurrentPos[2]; string Direction = string.Empty; if (PlayerCommand.ToLower().Split(' ')[0] == "go" || PlayerCommand.ToLower().Split(' ')[0] == "move" || PlayerCommand.ToLower().Split(' ')[0] == "travel") Direction = PlayerCommand.ToLower().Split(' ')[1]; else Direction = PlayerCommand.ToLower(); switch (Direction) { case "north": ProposedMove[0] = ProposedMove[0] - 1; break; case "east": ProposedMove[1] = ProposedMove[1] + 1; break; case "south": ProposedMove[0] = ProposedMove[0] + 1; break; case "west": ProposedMove[1] = ProposedMove[1] - 1; break; default: ProposedMove = Player.CurrentPos; break; } ThisFloor.CurrentFloor[ProposedMove[0], ProposedMove[1]].Explored = true; PotentialRoom = GetRoomInfo(ProposedMove); if (PotentialRoom.CanMove == true) { if (PotentialRoom.Description == null || PotentialRoom.Description == string.Empty) LoDConsole.WriteLine(WordWrap("I Successfully move into Row ") + Char.ConvertFromUtf32(ProposedMove[0] + 65) + " Col " + (ProposedMove[1] + 1) + " Level " + (ProposedMove[2] + 1)); else LoDConsole.WriteLine(WordWrap(PotentialRoom.Description)); ThisFloor.CurrentFloor[Player.CurrentPos[0], Player.CurrentPos[1]] = CurrentRoom; CurrentRoom = PotentialRoom; Player.CurrentPos = ProposedMove; EventTrigger("moveinto"); } else if (PotentialRoom.Description == null || PotentialRoom.Description == string.Empty) LoDConsole.WriteLine(WordWrap("Looks like I can't go that way.")); else LoDConsole.WriteLine(WordWrap(PotentialRoom.Description)); } else { LoDConsole.WriteLine("You cannot leave the current area"); if (CurrentRoom.Enemy != null) attacked(); } } #endregion #region Buildings else if ((PlayerCommand.ToLower().Split(' ')[0] == "go" && PlayerCommand.ToLower().Split(' ')[1] == "into") || PlayerCommand.ToLower().Split(' ')[0] == "enter") { if (!Player.InBuilding) { if (CurrentRoom.Building.BuildingName != null) { if (!CurrentRoom.LockedIn) { string target = string.Empty; if (PlayerCommand.ToLower().Split(' ')[0] == "go" && PlayerCommand.ToLower().Split(' ')[1] == "into") { for (int i = 2; i < PlayerCommand.Split(' ').Length; i++) { target = target + " " + PlayerCommand.Split(' ')[i]; } } else if (PlayerCommand.ToLower().Split(' ')[0] == "enter") { for (int i = 1; i < PlayerCommand.Split(' ').Length; i++) { target = target + " " + PlayerCommand.Split(' ')[i]; } } target = target.Trim(); if (target != string.Empty && target.ToLower() == CurrentRoom.Building.BuildingName.ToLower()) { if (CurrentRoom.Building.CanMove == true) { SaveWorld(); CurrentRoom = GoIntoBuilding(CurrentRoom.Building); LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); EventTrigger("moveinto"); } else LoDConsole.WriteLine(WordWrap(target + " is locked.")); } else if (target != CurrentRoom.Building.BuildingName) LoDConsole.WriteLine(target + " is not something you can enter."); else LoDConsole.WriteLine("Go into where?"); } else { LoDConsole.WriteLine("You cannot leave the current area"); if (CurrentRoom.Enemy != null) attacked(); } } else LoDConsole.WriteLine("There is no building here to enter"); } else LoDConsole.WriteLine("You are Already inside a building"); } else if (PlayerCommand.ToLower().Split(' ')[0] == "leave") { if (Player.InBuilding == true) { if (!CurrentRoom.LockedIn) { ThisFloor.CurrentFloor[Player.CurrentPos[0], Player.CurrentPos[1]].Building = LeaveBuilding(CurrentRoom); CurrentRoom = GetRoomInfo(Player.CurrentPos); LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); EventTrigger("moveinto"); } else { LoDConsole.WriteLine("You cannot leave the current area"); if (CurrentRoom.Enemy != null) attacked(); } } else LoDConsole.WriteLine(WordWrap("You are not currently inside a building")); } #endregion #region Descriptions else if (CommandContains(PlayerCommand, "who am i") || CommandContains(PlayerCommand, "whoami")) { LoDConsole.WriteLine(WordWrap(string.Concat("Your name is ", Player.name))); } else if (CommandContains(PlayerCommand, "status")) { PlayerStatus(); } else if (CommandContains(PlayerCommand, "describe")) { LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); } else if (CommandContains(PlayerCommand, "objective")) { LoDConsole.WriteLine(WordWrap(string.Concat("Your Current Objective is: ", Player.Objective))); } else if (CommandContains(PlayerCommand, "money")) { LoDConsole.WriteLine("You currently have {0} gold coins", Player.Money.ToString()); } #endregion #region Read else if (CommandContains(PlayerCommand, "read")) { if (CurrentRoom.items != null || Player.inventory.Count != 0) { string target = string.Empty; if (PlayerCommand.ToLower().Split(' ').Length != 1) { for (int i = 1; i < PlayerCommand.ToLower().Split(' ').Length; i++) { target = target + PlayerCommand.ToLower().Split(' ')[i]; } } else { target = LoDConsole.ReadLine("What do you want to read?","Read",string.Empty); } LoDConsole.WriteLine(WordWrap(ReadItem(target.Trim()))); } else LoDConsole.WriteLine("There is nothing to read"); } #endregion #region Inventory else if (CommandContains(PlayerCommand, "inventory")) { if (Player.inventory.Count != 0) { LoDConsole.WriteLine(WordWrap(string.Concat("You are currently using ", (Player.MaxItems - Player.invspace), "/", Player.MaxItems, " of your inventory\n"))); int index = 1; foreach (itemInfo Item in Player.inventory) { LoDConsole.WriteLine(WordWrap(string.Concat(index, ": ", Item.Name))); index++; } LoDConsole.WriteLine(""); } else LoDConsole.WriteLine("Your inventory is empty"); } #endregion #region Ask else if (CommandContains(PlayerCommand, "ask about")) { string Target = string.Empty; string Topic = string.Empty; bool topicstart = false; if (PlayerCommand.ToLower().Contains("about")) { for (int i = 1; i < PlayerCommand.Split(' ').Length; i++) { if (PlayerCommand.Split(' ')[i].ToLower() == "about") { topicstart = true; } else if (topicstart == false) { Target = Target + " " + PlayerCommand.Split(' ')[i]; } else if (topicstart == true) { Topic = Topic + " " + PlayerCommand.Split(' ')[i]; } } AskQuestion(Target.Trim(), Topic.Trim()); } else LoDConsole.WriteLine(WordWrap("Ask who about what?")); } #endregion #region Take Item else if (CommandContains(PlayerCommand, "take") || CommandContains(PlayerCommand, "pick") || CommandContains(PlayerCommand, "get")) { string ObjectName = string.Empty; if (Player.invspace > 0) { if (PlayerCommand.ToLower() == "take" || PlayerCommand.ToLower() == "pick" || PlayerCommand.ToLower() == "pick up" || PlayerCommand.ToLower() == "get") { LoDConsole.Write("What do you want to pick up?: "); ObjectName = LoDConsole.ReadLine("What do you want to pick up?", "Pick Up", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); int index = 2; if (strArray[0].ToLower() == "take" || strArray[0].ToLower() == "get") { index = 2; ObjectName = strArray[1]; } else if (strArray[0] == "pick" && strArray[1] == "up") { index = 3; ObjectName = strArray[2]; } while (index < strArray.Length) { ObjectName = string.Concat(ObjectName, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } ObjectName = ObjectName.Trim(); } TakeItem(ObjectName); } else LoDConsole.WriteLine("There is no space in your inventory to pick anything up"); } #endregion #region DropItem else if (CommandContains(PlayerCommand, "drop")) { if (Player.inventory.Count != 0) { string ObjectName = string.Empty; if (PlayerCommand.ToLower() == "drop") { int index = 1; foreach (itemInfo Item in Player.inventory) { LoDConsole.WriteLine(WordWrap(string.Concat(index, ": ", Item.Name))); index++; } ObjectName = LoDConsole.ReadLine("Which item do you wish to drop", "Drop Item", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); ObjectName = strArray[1]; int index = 2; while (index < strArray.Length) { ObjectName = string.Concat(ObjectName, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } ObjectName = ObjectName.Trim(); } LoDConsole.WriteLine(WordWrap(DropItem(ObjectName))); } else LoDConsole.WriteLine(WordWrap("There are no items in your inventory")); } #endregion #region Look At Item else if (CommandContains(PlayerCommand, "look at")) { string ObjectName = string.Empty; if (PlayerCommand.ToLower() == "look at") { ObjectName = LoDConsole.ReadLine("What do you want to look at?", "Look At", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); ObjectName = strArray[2]; int index = 3; while (index < strArray.Length) { ObjectName = string.Concat(ObjectName, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } ObjectName = ObjectName.Trim(); } LoDConsole.WriteLine(WordWrap(LookAtItem(ObjectName))); } #endregion #region Examine Item else if (CommandContains(PlayerCommand, "examine") || CommandContains(PlayerCommand, "inspect")) { if (Player.inventory.Count != 0) { string ObjectName = string.Empty; if (PlayerCommand.ToLower() == "examine" || PlayerCommand.ToLower() == "inspect") { int index = 1; foreach (itemInfo Item in Player.inventory) { LoDConsole.WriteLine(WordWrap("{0}: {1}"), index.ToString(), Item.Name); index++; } ObjectName = LoDConsole.ReadLine("What item do you want to examine?", "Examine", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); ObjectName = strArray[1]; int index = 2; while (index < strArray.Length) { ObjectName = string.Concat(ObjectName, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } ObjectName = ObjectName.Trim(); } ExamineItem(ObjectName); } else LoDConsole.WriteLine(WordWrap("There are no items in your inventory")); } #endregion #region Use Item else if (CommandContains(PlayerCommand, "use") || CommandContains(PlayerCommand, "put")) { int index = 0; string item = string.Empty; string target = string.Empty; if (CurrentRoom.items != null) { if (PlayerCommand.ToLower() == "use" || PlayerCommand.ToLower() == "put") { item = LoDConsole.ReadLine("What item do you want to " + PlayerCommand.ToLower().Split(' ')[0] + "?", PlayerCommand.ToLower().Split(' ')[0], string.Empty); target = LoDConsole.ReadLine("What do you want to " + PlayerCommand.ToLower().Split(' ')[0] + " " + item + " on?", "Target", string.Empty); } else if (CurrentRoom.items != null) { item = PlayerCommand.Split(' ')[1]; bool itemFound = false; bool targetFound = false; index = 2; while (index < (PlayerCommand.Split(' ').Length)) { if (PlayerCommand.Split(' ')[index].ToLower() == "on" || PlayerCommand.Split(' ')[index].ToLower() == "in") { itemFound = true; index++; target = PlayerCommand.Split(' ')[index].ToLower(); targetFound = true; } else if (itemFound == false) { item = string.Concat(item, " ", PlayerCommand.Split(' ')[index].ToLower()); } else { target = string.Concat(target, " ", PlayerCommand.Split(' ')[index].ToLower()); } index++; } if (targetFound == false) { LoDConsole.WriteLine("Objects in the room:\n"); for (index = 0; index < CurrentRoom.items.Count; index++) { //if (CurrentRoom.items[index].Class == "Interaction Object") LoDConsole.WriteLine(string.Concat(CurrentRoom.items[index].Name)); LoDConsole.WriteLine(string.Concat(CurrentRoom.items[index].Name)); } target = LoDConsole.ReadLine("What do you want to use " + item + " on?", "Target", string.Empty); } } UseItem(item, target); } else { LoDConsole.WriteLine("There is nothing in the room to interact with"); } } #endregion #region View Wares else if (CommandContains(PlayerCommand, "view wares")) { int index; string VendorName; if (CurrentRoom.Civilians != null) { if (PlayerCommand.ToLower().Split(' ').Length > 2) { string[] strArray = PlayerCommand.Split(' '); VendorName = strArray[2]; index = 3; while (index < strArray.Length) { VendorName = string.Concat(VendorName, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } VendorName = VendorName.Trim(); } else { LoDConsole.WriteLine("Civilians in the room:\n"); for (index = 0; index < CurrentRoom.Civilians.Count; index++) { if (CurrentRoom.Civilians[index].willSell == true) LoDConsole.WriteLine(string.Concat(CurrentRoom.Civilians[index].name, " - ", CurrentRoom.Civilians[index].MerchantType)); } VendorName = LoDConsole.ReadLine("Who do you want to view the inventory of?", "View Wares", string.Empty); } bool vendorFound = false; index = 0; while (vendorFound == false && CurrentRoom.Civilians != null && index < CurrentRoom.Civilians.Count) { if (VendorName.ToLower() == CurrentRoom.Civilians[index].name.ToLower()) { if (CurrentRoom.Civilians[index].willSell == true) { vendorFound = true; LoDConsole.WriteLine(); LoDConsole.WriteLine("Item\t\t\tClass\t\t\tPrice"); for (int Count = 0; Count < CurrentRoom.Civilians[index].inventory.Count; Count++) { if (CurrentRoom.Civilians[index].inventory[Count].Name == null) LoDConsole.Write("null\t\t"); if (CurrentRoom.Civilians[index].inventory[Count].Name.Length < 8) LoDConsole.Write("{0}\t\t", CurrentRoom.Civilians[index].inventory[Count].Name); else if (CurrentRoom.Civilians[index].inventory[Count].Name.Length <= 15) LoDConsole.Write("{0}\t", CurrentRoom.Civilians[index].inventory[Count].Name); else LoDConsole.Write(CurrentRoom.Civilians[index].inventory[Count].Name); if (CurrentRoom.Civilians[index].inventory[Count].Class == null) LoDConsole.Write("null\t\t\t"); else if (CurrentRoom.Civilians[index].inventory[Count].Class.Length < 8) LoDConsole.Write("{0}\t\t\t", CurrentRoom.Civilians[index].inventory[Count].Class); else if (CurrentRoom.Civilians[index].inventory[Count].Class.Length <= 15) LoDConsole.Write("{0}\t\t", CurrentRoom.Civilians[index].inventory[Count].Class); else if (CurrentRoom.Civilians[index].inventory[Count].Class.Length <= 21) LoDConsole.Write("{0}\t", CurrentRoom.Civilians[index].inventory[Count].Class); else LoDConsole.Write(CurrentRoom.Civilians[index].inventory[Count].Class); if (CurrentRoom.Civilians[index].inventory[Count].Value != 0) LoDConsole.Write("\t{0}\n", CurrentRoom.Civilians[index].inventory[Count].Value.ToString()); else LoDConsole.Write("\tnull\n"); //LoDConsole.WriteLine(WordWrap(string.Concat(CurrentRoom.Civilians[index].inventory[Count].Name, "\t", CurrentRoom.Civilians[index].inventory[Count].Class, "\t",CurrentRoom.Civilians[index].inventory[Count].Value))); } } else LoDConsole.WriteLine(WordWrap(string.Concat(CurrentRoom.Civilians[index].name, " is not willing to sell you anything"))); } index++; } if (!vendorFound) LoDConsole.WriteLine(VendorName + " is either not here or not a merchant"); } else LoDConsole.WriteLine("There is nobody currently selling anything in this area"); } #endregion #region Bribe else if (CommandContains(PlayerCommand, "bribe")) { int index; string WhoToBribe = string.Empty; int BribeAmount = 0; bool dontrun = false; if (CurrentRoom.Enemy != null || CurrentRoom.Civilians != null) { if (PlayerCommand.ToLower() == "bribe") { LoDConsole.WriteLine("People in the room who may accept a bribe:\n"); if (CurrentRoom.Enemy != null) { for (index = 0; index < CurrentRoom.Enemy.Count; index++) { LoDConsole.WriteLine(CurrentRoom.Enemy[index].name); } } if (CurrentRoom.Civilians != null) { for (index = 0; index < CurrentRoom.Civilians.Count; index++) { LoDConsole.WriteLine(CurrentRoom.Civilians[index].name); } } WhoToBribe = LoDConsole.ReadLine("Who do you want to bribe?", "Bribe", string.Empty); Int32.TryParse(LoDConsole.ReadLine("How much do you want to give them?","Bribe Amount","0"), out BribeAmount); if (BribeAmount == 0) { dontrun = true; LoDConsole.WriteLine("You cannot bribe somebody with that amount"); } } else if (PlayerCommand.Split(' ')[0].ToLower() == "bribe") { WhoToBribe = PlayerCommand.Split(' ')[1]; int i = 2; int n; bool AmountFound = false; while (AmountFound == false && i < PlayerCommand.Split(' ').Length) { if (Int32.TryParse(PlayerCommand.Split(' ')[i], out n)) { BribeAmount = n; AmountFound = true; } else WhoToBribe = string.Concat(WhoToBribe, " ", PlayerCommand.Split(' ')[i]); i++; } if (AmountFound == false) { Int32.TryParse(LoDConsole.ReadLine("How much do you want to give to " + WhoToBribe + "?", "Bribe Amount", "0"), out BribeAmount); } if (BribeAmount == 0) { dontrun = true; LoDConsole.WriteLine("You cannot bribe somebody with that amount"); } } else { dontrun = true; LoDConsole.WriteLine(WordWrap("I can't quite work out how many things you just said, try again")); } if (dontrun == false) { if (isEnemy(WhoToBribe)) PayOff(WhoToBribe, BribeAmount); else if (isNPC(WhoToBribe)) GiveItem(BribeAmount + " gold", WhoToBribe); else LoDConsole.WriteLine("That person does not appear to be here..."); } } else LoDConsole.WriteLine(WordWrap("There are no people in the room to bribe")); } #endregion #region Buy Item else if (CommandContains(PlayerCommand, "buy")) { int index; string vendor = string.Empty; string ItemName = string.Empty; if (Player.invspace > 0) { if (CurrentRoom.Civilians != null) { if (PlayerCommand.ToLower() == "buy") { ItemName = LoDConsole.ReadLine("What item do you want to buy?", "Buy Item", string.Empty); //player didn't specify item or person LoDConsole.WriteLine("Civilians in the room:\n"); for (index = 0; index < CurrentRoom.Civilians.Count; index++) { if (CurrentRoom.Civilians[index].willSell == true) LoDConsole.WriteLine(string.Concat(CurrentRoom.Civilians[index].name, " - ", CurrentRoom.Civilians[index].MerchantType)); } vendor = ItemName = LoDConsole.ReadLine("Who do you want to buy from?", "Merchants", string.Empty); } else if (PlayerCommand.Split(' ').Length >= 2) { //ItemName = PlayerCommand.Split(' ')[1].ToLower(); ItemName = PlayerCommand.Split(' ')[1].ToLower(); bool itemFound = false; bool vendorFound = false; index = 2; while (index < (PlayerCommand.Split(' ').Length)) { if (PlayerCommand.Split(' ')[index].ToLower() == "from") { itemFound = true; index++; vendor = PlayerCommand.Split(' ')[index].ToLower(); vendorFound = true; } else if (itemFound == false) { ItemName = string.Concat(ItemName, " ", PlayerCommand.Split(' ')[index].ToLower()); } else { vendor = string.Concat(vendor, " ", PlayerCommand.Split(' ')[index].ToLower()); } index++; } if (vendorFound == false) { LoDConsole.WriteLine("Civilians in the room:\n"); for (index = 0; index < CurrentRoom.Civilians.Count; index++) { if (CurrentRoom.Civilians[index].willSell == true) LoDConsole.WriteLine(string.Concat(CurrentRoom.Civilians[index].name, " - ", CurrentRoom.Civilians[index].MerchantType)); } vendor = LoDConsole.ReadLine("Who do you want to buy " + ItemName + " from?", "Merchants", string.Empty); } } BuyItem(ItemName, vendor); } else LoDConsole.WriteLine("There is nobody willing to buy anything from you here"); } else LoDConsole.WriteLine("There is no space in your inventory to buy anything."); } #endregion #region Sell Item else if (CommandContains(PlayerCommand, "sell")) { int index; string vendor = string.Empty; string ItemName = string.Empty; itemInfo ItemToSell = new itemInfo(); if (CurrentRoom.Civilians != null) { if (PlayerCommand.ToLower() == "sell") { LoDConsole.Write(" "); ItemName = LoDConsole.ReadLine("What item do you want to sell?", "Sell Item", string.Empty); index = 0; bool itemfound = false; while (itemfound == false && index < Player.inventory.Count) { if (ItemName.ToLower() == Player.inventory[index].Name.ToLower()) { itemfound = true; ItemToSell = Player.inventory[index]; } index++; } //player didn't specify item or person LoDConsole.WriteLine("Civilians in the room:\n"); for (index = 0; index < CurrentRoom.Civilians.Count; index++) { if (CurrentRoom.Civilians[index].willBuy == true) LoDConsole.WriteLine(string.Concat(CurrentRoom.Civilians[index].name, " - ", CurrentRoom.Civilians[index].MerchantType)); } vendor = LoDConsole.ReadLine("Who do you want to sell to?", "Merchants", string.Empty); } else if (PlayerCommand.Split(' ').Length >= 2) { //ItemName = PlayerCommand.Split(' ')[1].ToLower(); ItemName = PlayerCommand.Split(' ')[1].ToLower(); bool itemFound = false; bool vendorFound = false; index = 2; while (index < (PlayerCommand.Split(' ').Length)) { if (PlayerCommand.Split(' ')[index].ToLower() == "to") { itemFound = true; index++; vendor = PlayerCommand.Split(' ')[index].ToLower(); vendorFound = true; } else if (itemFound == false) { ItemName = string.Concat(ItemName, " ", PlayerCommand.Split(' ')[index].ToLower()); } else { vendor = string.Concat(vendor, " ", PlayerCommand.Split(' ')[index].ToLower()); } index++; } index = 0; itemFound = false; while (itemFound == false && index < Player.inventory.Count) { if (ItemName.ToLower() == Player.inventory[index].Name.ToLower()) { itemFound = true; ItemToSell = Player.inventory[index]; } index++; } if (itemFound == true && vendorFound == false) { LoDConsole.WriteLine("Civilians in the room:\n"); for (index = 0; index < CurrentRoom.Civilians.Count; index++) { if (CurrentRoom.Civilians[index].willBuy == true) LoDConsole.WriteLine(string.Concat(CurrentRoom.Civilians[index].name, " - ", CurrentRoom.Civilians[index].MerchantType)); } vendor = LoDConsole.ReadLine("Who do you want to sell "+ItemName+" to?", "Merchants", string.Empty); } } SellItem(ItemToSell, vendor); } else LoDConsole.WriteLine("There is nobody willing to buy anything from you here"); } #endregion #region Give Item else if (CommandContains(PlayerCommand, "give")) { string itemName = string.Empty; string targetNPC = string.Empty; bool itemFound = false; for (int i = 1; i < PlayerCommand.Split(' ').Length; i++) { if (PlayerCommand.Split(' ')[i].ToLower() == "to") itemFound = true; else if (!itemFound) itemName = itemName + " " + PlayerCommand.Split(' ')[i]; else targetNPC = targetNPC + " " + PlayerCommand.Split(' ')[i]; } if (!string.IsNullOrEmpty(itemName) && string.IsNullOrEmpty(targetNPC)) { targetNPC = LoDConsole.ReadLine("Who do you want to give " + itemName.Trim() + " to?", "Give Item", string.Empty); } else if (!itemFound && targetNPC == string.Empty) { itemName = LoDConsole.ReadLine("Who do you want to give?", "Give Item", string.Empty); targetNPC = LoDConsole.ReadLine("Who do you want to give " + itemName.Trim() + " to?", "Give Item", string.Empty); } //if (itemName.Trim().ToLower() == "gold") LoDConsole.WriteLine(WordWrap("You cannot gift gold at this time")); else GiveItem(itemName.Trim(), targetNPC.Trim()); } #endregion #region Talk to else if (CommandContains(PlayerCommand, "talk")) { int index; string NPCname = string.Empty; if (CurrentRoom.Civilians != null) { if (PlayerCommand.ToLower() == "talk to" || PlayerCommand.ToLower() == "talk") { LoDConsole.WriteLine("Non-Hostile people in the room:\n"); for (index = 0; index < CurrentRoom.Civilians.Count; index++) { LoDConsole.WriteLine(WordWrap(CurrentRoom.Civilians[index].name)); } LoDConsole.Write("\nWho do you want to talk to? "); NPCname = LoDConsole.ReadLine("Who do you want to talk to?", "Talk", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); foreach (string word in strArray) { if (word != "to" && word != "talk") NPCname = string.Concat(NPCname, " ", word); } } if (NPCname == string.Empty) LoDConsole.WriteLine("Talk to who?"); else LoDConsole.WriteLine(WordWrap(TalkToNPC(NPCname.Trim()))); } else { LoDConsole.WriteLine("There are no non-hostile people to talk to"); } } #endregion #region Suicide else if (PlayerCommand.Contains("suicide") || PlayerCommand.ToLower() == "attack self" || PlayerCommand.ToLower() == "hit self" || PlayerCommand.ToLower() == string.Concat("hit ", Player.name.ToLower()) || PlayerCommand.ToLower() == string.Concat("attack ", Player.name.ToLower()) || PlayerCommand.ToLower() == "kill self") { if (PlayerCommand.Contains("suicide") && CurrentRoom.SuicideAction != null) LoDConsole.WriteLine(WordWrap(CurrentRoom.SuicideAction)); else LoDConsole.WriteLine(WordWrap("You raise your weapon above your head. Screaming in blind rage for some unknown reason. You strike yourself until you die")); Player.HPBonus = 0; //LoDConsole.WriteLine("I GET HERE, and my health is {0}", Player.HPBonus); } #endregion #region Attack else if (CommandContains(PlayerCommand, "attack") || CommandContains(PlayerCommand, "hit") || CommandContains(PlayerCommand, "fight")) { string enemy; int index; bool enemyfound = false; if (CurrentRoom.Enemy != null && CurrentRoom.Enemy.Count > 0) { if (PlayerCommand.ToLower() == "attack" || PlayerCommand.ToLower() == "hit" || PlayerCommand.ToLower() == "fight") { LoDConsole.WriteLine(WordWrap("Enemies in room:\n")); for (index = 0; index < CurrentRoom.Enemy.Count; index++) { LoDConsole.WriteLine(WordWrap(CurrentRoom.Enemy[index].name)); } enemy = LoDConsole.ReadLine("Who do you want to attack?", "Combat", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); enemy = strArray[1]; for (int i = 2; i < strArray.Length; i++) { enemy = enemy + " " + strArray[i]; } } index = 0; while (CurrentRoom.Enemy != null && index < CurrentRoom.Enemy.Count && enemyfound == false) { if (CurrentRoom.Enemy[index].name.ToLower() == enemy.ToLower()) { Combat(Player.WeaponHeld, enemy); enemyfound = true; } index++; } if (enemyfound == false) LoDConsole.WriteLine(WordWrap(string.Concat("Could not find ", enemy, " in the area"))); } else if (CurrentRoom.Civilians != null && CurrentRoom.Civilians.Count > 0) { if (PlayerCommand.ToLower() == "attack" || PlayerCommand.ToLower() == "hit" || PlayerCommand.ToLower() == "fight") { enemy = LoDConsole.ReadLine("Who do you want to attack?", "Give Item", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); enemy = strArray[1]; for (int i = 2; i < strArray.Length; i++) { enemy = enemy + " " + strArray[i]; } } StartFight(enemy); } else LoDConsole.WriteLine(WordWrap("There is nobody in the room to fight")); } #endregion #region Equip/Wear else if (CommandContains(PlayerCommand, "equip") || CommandContains(PlayerCommand, "wear")) { EquipItem(PlayerCommand); } #endregion #region Eat/Drink else if (CommandContains(PlayerCommand, "eat") || CommandContains(PlayerCommand, "drink") || CommandContains(PlayerCommand, "consume")) { if (Player.inventory.Count != 0) { int index; string ObjectName = string.Empty; if (PlayerCommand.ToLower() == "eat" || PlayerCommand.ToLower() == "drink" || PlayerCommand.ToLower() == "consume") { LoDConsole.WriteLine("Food in your inventory:\n"); foreach (itemInfo Item in Player.inventory) { if (Item.Class == "Food" || Item.Class == "Drink") { LoDConsole.WriteLine(WordWrap(Item.Name)); } } ObjectName = LoDConsole.ReadLine("Which item do you want to consume?", "Consume", string.Empty); } else { string[] strArray = PlayerCommand.Split(' '); ObjectName = strArray[1]; index = 2; while (index < strArray.Length) { ObjectName = string.Concat(ObjectName, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } ObjectName = ObjectName.Trim(); } LoDConsole.WriteLine(WordWrap(ConsumeItem(ObjectName))); } else LoDConsole.WriteLine("Your inventory is empty"); } #endregion #region Sleep else if (CommandContains(PlayerCommand, "sleep") || CommandContains(PlayerCommand, "sleep in") || CommandContains(PlayerCommand, "go to sleep")) { int index = 0; string bedItem = string.Empty; if (PlayerCommand.ToLower() == "sleep in" || PlayerCommand.ToLower() == "sleep") { bedItem = LoDConsole.ReadLine("Who do you want to sleep in?", "Give Item", string.Empty); } else if (PlayerCommand.ToLower().Split(' ').Length > 2 && PlayerCommand.ToLower().Split(' ')[0] == "sleep" && PlayerCommand.ToLower().Split(' ')[1] == "in") { string[] strArray = PlayerCommand.Split(' '); bedItem = strArray[2]; index = 3; while (index < strArray.Length) { bedItem = string.Concat(bedItem, " ", strArray[index]); index++; //LoDConsole.WriteLine(WordWrap("item is {0}", item); } bedItem = bedItem.Trim(); } //LoDConsole.WriteLine("Trying to sleep in {0}", bedItem); Rest(bedItem); } #endregion #region Map else if ((CommandContains(PlayerCommand, "map"))) { DrawMap(); } #endregion #region Time else if (CommandContains(PlayerCommand, "time")) { TimeSpan ts = TimeSpan.FromMinutes(WorldState.WorldTime); LoDConsole.WriteLine("The time is " + ts.ToString("hh':'mm")); } #endregion #region Music else if (PlayerCommand.ToLower() == "music browse") { Music("browse"); } else if (PlayerCommand.ToLower() == "music start") { Music("start"); } else if (PlayerCommand.ToLower() == "music stop") { Music("stop"); } #endregion #region Control else if (PlayerCommand.ToLower() == "clear") { LoDConsole.Clear(); LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); } else if (PlayerCommand.ToLower() == "main menu" || PlayerCommand.ToLower() == "mainmenu") { //Run the main menu screen lock (myLock) { stopTime = 0; } //Pause the clock DrawMainMenu(); lock (myLock) { stopTime = 1; } //Start the clock //ThisFloor = world[Player.CurrentPos[2]]; CurrentRoom = GetRoomInfo(Player.CurrentPos); LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); } else if (CommandContains(PlayerCommand, "save")) { string success = SaveGame(); LoDConsole.WriteLine(WordWrap(string.Concat("Save ", success))); } else if (PlayerCommand.ToLower() == "quit" || PlayerCommand.ToLower() == "exit") { LoDConsole.WriteLine("Quitting game"); QuitGame(); } #endregion #region Easter Eggs else if (CommandContains(PlayerCommand, "typical")) { LoDConsole.WriteLine("I know right?\n"); } #endregion #region Debugging else if (DebugEnabled == true) { if (CommandContains(PlayerCommand, "getpos")) { LoDConsole.WriteLine("Row {0}, Col {1}, Level {2}", Char.ConvertFromUtf32(Player.CurrentPos[0] + 65), (Player.CurrentPos[1] + 1).ToString(), (Player.CurrentPos[2] + 1).ToString()); } else if (CommandContains(PlayerCommand, "movepos")) { SaveWorld(); string[] Command = PlayerCommand.Split(' '); bool fail = false; int[] NewCoods = new int[3]; int Row; if (Int32.TryParse(Command[1], out Row)) NewCoods[0] = Row; else { char ThisChar = Command[1].ToUpper().ToCharArray()[0]; int temp = (int)Convert.ToChar(ThisChar); temp = temp - 65; NewCoods[0] = temp; } int Col; if (Int32.TryParse(Command[2], out Col)) NewCoods[1] = Col - 1; else fail = true; int Floor; if (Int32.TryParse(Command[3], out Floor)) NewCoods[2] = Floor - 1; else fail = true; if (!fail) { Player.CurrentPos[0] = NewCoods[0]; Player.CurrentPos[1] = NewCoods[1]; Player.CurrentPos[2] = NewCoods[2]; CurrentRoom = GetRoomInfo(Player.CurrentPos); LoDConsole.WriteLine(CurrentRoom.Description); EventTrigger("moveinto"); } else LoDConsole.WriteLine("Command Failed"); } else LoDConsole.WriteLine(WordWrap("Command not found, type help for a list of valid commands")); } else LoDConsole.WriteLine(WordWrap("Command not found, type help for a list of valid commands")); } catch (Exception ex) { string FileName = DateTime.Now.ToString(@"dd-MM-yyyy HHmmss"); LoDConsole.WriteLine(WordWrap("\nYou have encountered an error.\nThe game engine was not able to handle the command you entered.")); LoDConsole.WriteLine(WordWrap("\nAn error report has been created in .\\Errors\\" + FileName + ".txt\nPlease submit this to the developer")); if (!Directory.Exists(".\\Errors")) Directory.CreateDirectory(".\\Errors"); using (StreamWriter file = new System.IO.StreamWriter(@".\Errors\" + FileName + ".txt", true)) { file.WriteLine("---Legend-Of-Drongo---"); file.WriteLine(""); file.WriteLine("Error logged at {0}", DateTime.Now.ToString(@"dd-MM-yyyy HH:mm:ss")); file.WriteLine(""); file.WriteLine("Player Location: Row {0}, Col {1}, Level {2}\n\n", Char.ConvertFromUtf32(Player.CurrentPos[0] + 65), (Player.CurrentPos[1] + 1), (Player.CurrentPos[2] + 1)); file.WriteLine("Command Entered: {0}\n\n", PlayerCommand); file.WriteLine(""); file.WriteLine(""); Random rng = new Random(); int output = rng.Next(1, 3); switch (output) { case 1: file.WriteLine("The stacktrace output can be scary, do not say the words out loud as you may summon a demon!"); break; case 2: file.WriteLine("The stacktrace output can be scary, some say it can read your very soul!"); break; case 3: file.WriteLine("The stacktrace output can be scary, don't believe it's lies about being sentient!"); break; } file.WriteLine("Error Message: {0}", ex.Message); file.WriteLine("Stacktrace:"); file.WriteLine(ex.StackTrace); file.WriteLine(""); file.WriteLine(""); file.WriteLine("End of line..."); } } #endregion #region Level Up int XP = Player.XP; int Level = Player.Level; if (XP >= XPNeeded(Level)) LevelUp(Level + 1); #endregion #region GameOver if (Player.HPBonus <= 0) { if (Player.CurrentPos[2] == 0) { lock (myLock) { stopTime = 0; } LoDConsole.WriteLine("\n\n Your adventure has come to an end :("); Thread.Sleep(5000); DrawMainMenu(); lock (myLock) { stopTime = 1; } ThisFloor = world[Player.CurrentPos[2]]; CurrentRoom = ThisFloor.CurrentFloor[Player.CurrentPos[0], Player.CurrentPos[1]]; LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); } else { LoDConsole.WriteLine("\n\n You have died, but this is not the end..."); Thread.Sleep(5000); LoDConsole.Clear(); LoDConsole.WriteLine(WordWrap("\n\n\tYou fall through darkness and smoke\n\tuntil you feel your feet softly make contact with ground")); Player.HPBonus = 60; world[(Player.CurrentPos[2])] = ThisFloor; Player.CurrentPos[0] = 1; Player.CurrentPos[1] = 1; //set coodinates of afterlife Player.CurrentPos[2] = 0; ThisFloor = world[0]; CurrentRoom = GetRoomInfo(Player.CurrentPos); EventTrigger("moveinto"); } } #endregion //LoDConsole.DrawEnvironment(CurrentRoom); }
public static void DrawMap() { int row; int col; LoDConsole.Clear(); //Console.CursorSize LoDConsole.WriteLine("Map of " + ThisFloor.FloorName); LoDConsole.WriteLine("──────────────────────"); LoDConsole.WriteLine("* Dead End"); LoDConsole.WriteLine("X Blocked"); LoDConsole.WriteLine("┼ Path\n\n"); LoDConsole.Write("\t┌────────────┐\n"); for (row = 0; row < ThisFloor.CurrentFloor.GetLength(0); row++) { LoDConsole.Write("\t│ "); for (col = 0; col < ThisFloor.CurrentFloor.GetLength(1); col++) { //Draw the map roomInfo TempRoom = new roomInfo(); TempRoom = ThisFloor.CurrentFloor[row, col]; if (TempRoom.Explored == true) { if (TempRoom.CanMove == true) { if (row > 0 && row < ThisFloor.CurrentFloor.GetLength(0) && col > 0 && col < ThisFloor.CurrentFloor.GetLength(1)) { bool north = false; bool east = false; bool south = false; bool west = false; bool isPlayer = false; if (row == Player.CurrentPos[0] && col == Player.CurrentPos[1]) isPlayer = true; if (ThisFloor.CurrentFloor[row - 1, col].CanMove == true) north = true; if (ThisFloor.CurrentFloor[row + 1, col].CanMove == true) south = true; if (ThisFloor.CurrentFloor[row, col - 1].CanMove == true) west = true; if (ThisFloor.CurrentFloor[row, col + 1].CanMove == true) east = true; /* * http://www.theasciicode.com.ar/ */ if (isPlayer == true) Console.Write("O"); //North Combinations else if (north == true && south == true && east == true && west == true) LoDConsole.Write("┼"); else if (north == true && south == true && east == true && west == false) LoDConsole.Write("├"); else if (north == true && south == true && east == false && west == true) LoDConsole.Write("┤"); else if (north == true && south == true && east == false && west == false) LoDConsole.Write("│"); else if (north == true && south == false && east == true && west == true) LoDConsole.Write("┴"); else if (north == true && south == false && east == true && west == false) LoDConsole.Write("└"); else if (north == true && south == false && east == false && west == true) LoDConsole.Write("┘"); //South Combinations else if (north == false && south == true && east == true && west == true) LoDConsole.Write("┬"); else if (north == false && south == true && east == true && west == false) LoDConsole.Write("┌"); else if (north == false && south == true && east == false && west == true) LoDConsole.Write("┐"); //East West Combinations else if (north == false && south == false && east == true && west == true) LoDConsole.Write("─"); else LoDConsole.Write("X"); } } else LoDConsole.Write("*"); } else LoDConsole.Write(" "); } LoDConsole.Write(" │\n"); } LoDConsole.WriteLine("\t└────────────┘"); }
public static void StartGame(PlayerProfile Player) { LoDConsole.ToggleMenuButtons(false); ParseOptions(); ThisFloor = world[Player.CurrentPos[2]]; CurrentRoom = GetRoomInfo(Player.CurrentPos); CurrentRoom.Explored = true; //if (Player.InBuilding == true) //{ // CurrentRoom = GoIntoBuilding(CurrentRoom.Building); // Player.InBuilding = true; //} WorldState.WorldTime = 512; //Set the clock to 8am and start ticking Thread TimeThread = new Thread(TimeTicker); TimeThread.Start(); //The starting floor has a song that is not the one currently playing if (ThisFloor.FloorSong != null && File.Exists(ThisFloor.FloorSong) && ThisFloor.FloorSong != MusicPlayer.SoundLocation) { MusicPlayer.SoundLocation = ThisFloor.FloorSong; Music("Start"); } //LoDConsole.WriteLine(WordWrap(CurrentRoom.Description)); //LoDConsole.DrawEnvironment(CurrentRoom); }
Dictionary <int, deskNode> dic = new Dictionary <int, deskNode>();//用来保存座位号,和对应的桌子 private RoomControll() { RoomInfo = new roomInfo(); EventDispatch.addEventListener(this, "do"); Debug.Log("newlControll"); }
public static roomInfo GoIntoBuilding(Building thisBuilding) { LoDConsole.WriteLine("Entering " + thisBuilding.BuildingName); //Thread.Sleep(1000); DataTypes dt = new DataTypes(); roomInfo ThisRoom = new roomInfo(); ThisRoom = dt.BuildingIntoRoom(thisBuilding); Player.InBuilding = true; return ThisRoom; }
public static roomInfo GetRoomInfo(int[] UserPos) { //SaveWorld(); roomInfo ThisRoom = new roomInfo(); //ThisFloor = world[UserPos[2]]; ThisFloor = world[UserPos[2]]; DataTypes dt = new DataTypes(); if (Player.InBuilding) ThisRoom = dt.BuildingIntoRoom(ThisFloor.CurrentFloor[UserPos[0], UserPos[1]].Building); else ThisRoom = ThisFloor.CurrentFloor[UserPos[0], UserPos[1]]; return (ThisRoom); }