public override bool OnKeyPress(char key) { if (app.Settings["debug"].GetBool("enable_cheats")) { string[] items = null; switch (key) { case '1': items = app.Settings["debug"].GetStrings("insert_items_1"); break; case '2': items = app.Settings["debug"].GetStrings("insert_items_2"); break; case '3': items = app.Settings["debug"].GetStrings("insert_items_3"); break; } if (items != null) { BurntimeClassic classic = app as BurntimeClassic; foreach (string id in items) { Item item = classic.Game.ItemTypes.Generate(id); classic.Game.World.ActiveLocationObj.Items.DropAt(item, classic.Game.World.ActivePlayerObj.Character.Position); } } } return(false); }
public String GetEntranceTitle(int Number) { BurntimeClassic classic = app as BurntimeClassic; Location loc = classic.Game.World.ActiveLocationObj; return(app.ResourceManager.GetString(loc.Map.Entrances[Number].TitleId)); }
void Hire() { BurntimeClassic classic = app as BurntimeClassic; Player boss = classic.Game.World.ActivePlayerObj; character.Hire(boss); }
public void OnMenuInventory() { BurntimeClassic classic = app as BurntimeClassic; classic.InventoryBackground = -1; classic.InventoryRoom = null; classic.PickItems = null; app.SceneManager.SetScene("InventoryScene", classic.Game.World.ActivePlayerObj.Character); }
public override bool OnMouseClick(Vector2 position, MouseButton button) { if (hover == 0 && dialogmode == 0) { dlgoffset += 2; if (dlgoffset + 2 >= conversation.Text.Length) { dialogmode = 1; } } else if (hover != -1) { BurntimeClassic classic = app as BurntimeClassic; result = conversation.Choices[hover].Action.Type; dialogmode = 0; dlgoffset = 0; switch (conversation.Choices[hover].Action.Type) { case ConversationActionType.Talk: conversation = character.Dialog.GetConversation(self, ConversationType.Talk); break; case ConversationActionType.Trade: Hide(); classic.Game.World.ActiveTraderObj = character as Trader; app.SceneManager.SetScene("TraderScene"); break; case ConversationActionType.Yes: case ConversationActionType.No: case ConversationActionType.Exit: Hide(); break; case ConversationActionType.HireRequirements: conversation = character.Dialog.GetConversation(self, ConversationType.Hire); break; case ConversationActionType.Profession: conversation = character.Dialog.GetConversation(self, ConversationType.Profession); break; case ConversationActionType.Hire: Hire(); Hide(); break; } dialogmode = (conversation.Text.Length <= 3) ? 1 : 0; } return(true); }
public void OnMenuInfo() { BurntimeClassic game = app as BurntimeClassic; if (game.Game.World.ActiveLocationObj.IsCity) { return; } // check camp or location game.InfoCity = game.Game.World.ActivePlayerObj.Location; app.SceneManager.SetScene("InfoScene"); }
public void SetCharacter(Character self, Character character, ConversationType type) { this.self = self; this.character = character; this.type = type; face.FaceID = character.FaceID; BurntimeClassic classic = app as BurntimeClassic; conversation = character.Dialog.GetConversation(self, type); dialogmode = (conversation.Text.Length < 3) ? 1 : 0; dlgoffset = 0; ready = true; }
public void OnMenuInventory() { if (charOverlay.SelectedCharacter.IsDead) { return; } charOverlay.SelectedCharacter.CancelAction(); BurntimeClassic classic = app as BurntimeClassic; classic.InventoryBackground = -1; classic.InventoryRoom = null; classic.Game.World.ActiveLocationObj.Items.DropPosition = charOverlay.SelectedCharacter.Position; classic.PickItems = new PickItemList(classic.Game.World.ActiveLocationObj.Items, charOverlay.SelectedCharacter.Position, 20); app.SceneManager.SetScene("InventoryScene", charOverlay.SelectedCharacter); }
public MapScene(Module App) : base(App) { Size = app.Engine.GameResolution; view = new ClassicMapView(this, App); view.Position = new Vector2(16, 0); view.Size = new Vector2(Size.x - 32, Size.y - 40); //view.Position = new Vector2(0, 0); //view.Size = new Vector2(Size.x, Size.y - 16); view.Overlays.Add(new Maps.MapViewOverlayFlags(app)); view.Overlays.Add(new Maps.MapViewOverlayPlayer(app)); view.Overlays.Add(new Maps.MapViewOverlayHoverText(app)); view.Scroll += new EventHandler <MapScrollArgs>(view_Scroll); Windows += view; menu = new MenuWindow(App); menu.Layer += 50; menu.AddLine("@burn?351", (CommandHandler)OnMenuInfo); menu.AddLine("@burn?367", (CommandHandler)OnMenuInventory); menu.AddLine("@burn?359", (CommandHandler)OnMenuStatistics); menu.AddLine("@burn?361", (CommandHandler)OnMenuOptions); menu.AddLine("@burn?357", (CommandHandler)OnMenuTurn); menu.Hide(); Windows += menu; cursorAni = new Image(App); cursorAni.Background = "[email protected]?24-27"; cursorAni.Background.Animation.Progressive = false; cursorAni.Layer += 59; Windows += cursorAni; gui = new MapGuiWindow(App); gui.Layer += 60; Windows += gui; BurntimeClassic classic = app as BurntimeClassic; debugNoTravel = classic.Settings["debug"].GetBool("no_travel") && classic.Settings["debug"].GetBool("enable_cheats"); }
public bool OnClickEntrance(int Number, MouseButton Button) { // do not enter when in fight mode if (fightMode) { return(false); } BurntimeClassic classic = app as BurntimeClassic; Location loc = classic.Game.World.ActiveLocationObj; MapEntrance entrance = loc.Map.Entrances[Number]; EntranceObject entranceObject = new EntranceObject(entrance, Number); if (!TryEnterRoom(entranceObject, charOverlay.SelectedCharacter)) { charOverlay.SelectedCharacter.Mind.MoveToObject(new InteractionObject(entranceObject, classic.Game.World.ActiveLocationObj.Rooms[Number].EntryCondition, this)); } return(true); }
private bool TryEnterRoom(EntranceObject entranceObject, Character chr) { MapEntrance entrance = entranceObject.Data; int number = entranceObject.Number; BurntimeClassic classic = BurntimeClassic.Instance; Condition condition = classic.Game.World.ActiveLocationObj.Rooms[number].EntryCondition; if (!condition.Process(charOverlay.SelectedCharacter)) { return(false); } if (view.Location.Player != null && view.Location.Player != view.Player) { return(true); } charOverlay.SelectedCharacter.CancelAction(); switch (entrance.RoomType) { case RoomType.Normal: case RoomType.WaterSource: classic.InventoryBackground = entrance.Background; classic.InventoryRoom = classic.Game.World.ActiveLocationObj.Rooms[number]; app.SceneManager.SetScene("InventoryScene", charOverlay.SelectedCharacter); break; case RoomType.Rope: classic.InventoryBackground = 3; classic.InventoryRoom = classic.Game.World.ActiveLocationObj.Rooms[number]; app.SceneManager.SetScene("InventoryScene", charOverlay.SelectedCharacter); break; case RoomType.Trader: classic.ImageScene = null; classic.ActionAfterImageScene = ActionAfterImageScene.Trader; classic.Game.World.ActiveTraderObj = classic.Game.World.ActiveLocationObj.LocalTrader; switch (entrance.Background) { case 0x0D: classic.ImageScene = "film_10.pac"; break; case 0x11: classic.ImageScene = "film_05.pac"; break; } if (classic.ImageScene != null) { app.SceneManager.SetScene("ImageScene"); } break; case RoomType.Pub: classic.InventoryBackground = entrance.Background; if (entrance.Background == 14) { classic.ImageScene = "film_06.pac"; classic.ActionAfterImageScene = ActionAfterImageScene.Pub; app.SceneManager.SetScene("ImageScene"); } else { app.SceneManager.SetScene("PubScene"); } break; case RoomType.Restaurant: classic.InventoryBackground = entrance.Background; app.SceneManager.SetScene("RestaurantScene"); break; case RoomType.Doctor: app.SceneManager.SetScene("DoctorScene"); break; case RoomType.Church: app.SceneManager.SetScene("ChurchScene"); break; case RoomType.Scene: classic.ImageScene = null; classic.ActionAfterImageScene = ActionAfterImageScene.None; switch (entrance.Background) { case 0x0A: case 0x0B: case 0x0C: classic.ImageScene = "film_" + (entrance.Background - 8).ToString("D2") + ".pac"; break; case 0x10: classic.ImageScene = "film_08.pac"; break; case 0x12: classic.ImageScene = "film_09.pac"; break; } if (classic.ImageScene != null) { app.SceneManager.SetScene("ImageScene"); } break; } return(true); }