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));
        }
Exemple #3
0
        void Hire()
        {
            BurntimeClassic classic = app as BurntimeClassic;
            Player          boss    = classic.Game.World.ActivePlayerObj;

            character.Hire(boss);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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");
        }
Exemple #7
0
        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);
        }
Exemple #9
0
        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");
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }