Exemplo n.º 1
0
        private void ConfirmPlayAsTrio()
        {
            var box = RPGMessageBox.Create("Are you sure you want to play as the trio?", "Play as Michael Trevor and Franklin", "Continue Playing GTA:RPG", () => { View.CloseAllMenus(); RPGMethods.PlayAsTrio(); }, () => { View.MenuPosition = new Point(UI.WIDTH - 300, 0); });

            RPGUI.FormatMenu(box);
            View.AddMenu(box);
        }
Exemplo n.º 2
0
        private void ConfirmReturnToNormal()
        {
            var box = RPGMessageBox.Create("Are you sure you want to return to normal mode?", "Return to normal mode", "Continue Playing GTA:RPG", () => { View.CloseAllMenus(); RPGMethods.ReturnToNormal(); }, () => { View.MenuPosition = new Point(UI.WIDTH - 300, 0); });

            RPGUI.FormatMenu(box);
            View.AddMenu(box);
        }
Exemplo n.º 3
0
        private void ConfirmPlayAsYourCharacter()
        {
            var box = RPGMessageBox.Create("Are you sure you want to switch to your character?", "Play as " + RPG.PlayerData.Name, "Continue Playing", () => { View.CloseAllMenus(); RPG.InitCharacter(); }, () => { View.MenuPosition = new Point(UI.WIDTH - 300, 0); });

            RPGUI.FormatMenu(box);
            View.AddMenu(box);
        }
Exemplo n.º 4
0
        private void NewGame()
        {
            var confirm = RPGMessageBox.Create("Are you sure you want to start over?", "Start new game", "Continue playing", () =>
            {
                RPG.GameLoaded = false;
                CharCreationNew.RestartCharCreation();
            }, () => { });

            RPGUI.FormatMenu(confirm);

            RPG.UIHandler.View.AddMenu(confirm);
        }
Exemplo n.º 5
0
        public UIHandler()
        {
            RPG.UIHandler = this;
            KeyDown      += OnKeyDown;
            //Use some fancy transitions
            View.MenuTransitions = true;
            View.PopMenu();
            View.MenuOffset   = new Point(-302, 0);
            View.MenuPosition = new Point(UI.WIDTH - 300, 0);

            CharacterMenu = new RPGMenu("Character Menu", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), new IMenuItem[] {
                new MenuButton("Quests", "").WithActivate(OpenQuestLog),
                new MenuButton("Set Skillbar", "").WithActivate(OpenSkillBarMenu),
                new MenuButton("Skills", "").WithActivate(OpenSkillsMenu),
                new MenuButton("Weapons", "").WithActivate(OpenWeaponsMenu),
                //new MenuButton("Talents", "", () => { View.PopMenu(); }),
                //new MenuButton("Mod Weapons", "", () => { View.PopMenu(); }),
                //new MenuButton("Mod Cars", "", () => { View.PopMenu();}),
                new MenuButton("Back", "").WithActivate(() => View.PopMenu())
            });

            ActionsMenu = new RPGMenu("ACTIONS", new GTASprite("CommonMenu", "interaction_bgd", Color.Red), new IMenuItem[] {
                new MenuButton("Spawn Personal Vehicle", "").WithActivate(() => RPGMethods.SpawnCar()),
                new MenuButton("Get Random Contract", "").WithActivate(GetRandomContract),
                new MenuButton("Purchase Goods", "").WithActivate(OpenShop),
                new MenuButton("Craft Items", "").WithActivate(OpenCrafting),
                new MenuButton("Back", "").WithActivate(View.PopMenu)
            });

            SkillTreeMenu  = RPG.SkillHandler.GetSkillMenu();
            WeaponTreeMenu = RPG.WeaponHandler.GetWeaponMenu();

            //var o = new MenuNumericScroller("Number", "", d => { }, d => { }, 0, 100, 1);
            //var p = new MenuToggle("Toggle", "", ()=> { }, () => { });

            MainMenu = new RPGMenu("RPG Menu", new GTASprite("CommonMenu", "interaction_bgd", Color.DodgerBlue), new IMenuItem[] {
                new MenuButton("Inventory", "").WithActivate(OpenInventory),
                new MenuButton("Character Menu", "").WithActivate(OpenCharacterMenu),
                new MenuButton("Actions ", "").WithActivate(() => View.AddMenu(ActionsMenu)),
                new MenuButton("Options", "").WithActivate(() => OpenOptionsMenu()),
                new MenuButton("Play as Michael, Franklin and Trevor ", "").WithActivate(ConfirmPlayAsTrio),
                new MenuButton("Play as Yourself", "").WithActivate(ConfirmPlayAsYourCharacter),
                new MenuButton("Return to Normal Mode ", "").WithActivate(ConfirmReturnToNormal),
                new MenuButton("Close", "").WithActivate(View.PopMenu)
            });



            RPGUI.FormatMenu(ActionsMenu);
            RPGUI.FormatMenu(MainMenu);
            RPGUI.FormatMenu(CharacterMenu);
        }
Exemplo n.º 6
0
        private void UpdateInventory(int selected = 0)
        {
            var inventoryList = new List <IMenuItem>();

            if (!PlayerData.Inventory.Any())
            {
                inventoryList.Add(new MenuButton("Empty"));
            }

            for (int i = 0; i < PlayerData.Inventory.Count; i++)
            {
                var item = PlayerData.Inventory[i];

                inventoryList.Add(new MenuButton(item.Quantity + "x\t" + item.Name, item.Description));
            }

            inventoryList.Add(new MenuButton("Back"));

            foreach (var i in inventoryList)
            {
                i.Parent = InventoryMenu;
            }

            if (InventoryMenu == null)
            {
                InventoryMenu = new RPGListMenu("Inventory", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), UseInventoryItem, inventoryList.ToArray());
            }
            else
            {
                InventoryMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0");
                InventoryMenu.Items.Clear();
                InventoryMenu.Items.AddRange(inventoryList);
                InventoryMenu.Initialize();
            }

            RPGUI.FormatMenuWithFooter(InventoryMenu);
            InventoryMenu.HeaderHeight = 25;
            InventoryMenu.Caption      = "GTA$" + PlayerData.Money.ToString("N0");

            if (InventoryMenu != null && IsOpen(InventoryMenu))
            {
                InventoryMenu.SelectedIndex = selected;
            }
        }
Exemplo n.º 7
0
        public void UpdateQuestLog(int selected = 0)
        {
            var questList = new List <IMenuItem>();

            var storyQuests = RPG.PlayerData.Quests.Where(q => !q.IsContract && !q.IsRepeatable).ToList();
            var completion  = (float)storyQuests.Count(s => s.Done) / storyQuests.Count;

            var quests = PlayerData.Quests.Where(s => s.InProgress).Concat(PlayerData.Quests.Where(c => !c.InProgress)).Where(c => !c.IsContract || c.InProgress).ToList();

            for (int i = 0; i < quests.Count; i++)
            {
                var item = quests[i];
                questList.Add(new MenuButton((item.InProgress ? "[In Progress] " : (item.Done ? "[Done] " : "[Not Started] ")) + item.Name, item.Description));
            }

            questList.Add(new MenuButton("Back"));

            foreach (var i in questList)
            {
                i.Parent = QuestLogMenu;
            }

            if (QuestLogMenu == null)
            {
                QuestLogMenu = new RPGListMenu("Quest Log", new GTASprite("CommonMenu", "interaction_bgd", Color.DarkOrange), UseQuestLogEntry, questList.ToArray());
            }
            else
            {
                QuestLogMenu.Caption = "Story Progress: " + completion.ToString("P0");
                QuestLogMenu.Items.Clear();
                QuestLogMenu.Items.AddRange(questList);
                QuestLogMenu.Initialize();
            }

            QuestLogMenu.Caption = "Story Progress: " + completion.ToString("P0");
            RPGUI.FormatMenuWithFooter(QuestLogMenu);
            QuestLogMenu.FooterHeight = 40;
            QuestLogMenu.HeaderHeight = 25;
            if (QuestLogMenu != null && IsOpen(QuestLogMenu))
            {
                QuestLogMenu.SelectedIndex = selected;
            }
        }
Exemplo n.º 8
0
        public void UpdateDialog(int selected = 0)
        {
            var dialogList = new List <IMenuItem>();

            if (CurrentDialog == null)
            {
                return;
            }
            var dialogs = CurrentDialog.Current.Responses.Where(r => r.ConditionsMet).ToList();

            for (int i = 0; i < dialogs.Count; i++)
            {
                var item = dialogs[i];
                dialogList.Add(new MenuButton((item.Text)));
            }

            foreach (var i in dialogList)
            {
                i.Parent = DialogMenu;
            }

            if (DialogMenu == null)
            {
                DialogMenu = new RPGDialogMenu(CurrentNpc.Name + ": " + CurrentDialog.Current.NpcText, SelectDialog, dialogList.ToArray());
                DialogMenu.ExtendWindowHeight = false;
            }
            else
            {
                DialogMenu.Caption = CurrentNpc.Name + ": " + CurrentDialog.Current.NpcText;
                DialogMenu.Items.Clear();
                DialogMenu.Items.AddRange(dialogList);
                DialogMenu.Initialize();
            }

            DialogMenu.Caption = CurrentNpc.Name + ": " + CurrentDialog.Current.NpcText;
            RPGUI.FormatMenu(DialogMenu);
            DialogMenu.HeaderHeight = 25;
            if (DialogMenu != null && IsOpen(DialogMenu))
            {
                DialogMenu.SelectedIndex = selected;
            }
        }
Exemplo n.º 9
0
        private void UseQuestLogEntry(RPGListMenu obj)
        {
            var quests   = PlayerData.Quests.Where(s => s.InProgress).Concat(PlayerData.Quests.Where(c => !c.InProgress)).Where(c => !c.IsContract || c.InProgress).ToList();
            var selected = obj.SelectedIndex;

            if (selected >= quests.Count)
            {
                View.PopMenu();
                return;
            }

            var selectedItem = quests[selected];

            if (selectedItem.InProgress && selectedItem.Cancellable)
            {
                var abandon = RPGMessageBox.Create("Would you like to abandon [" + selectedItem.Name + "] ?", "Abandon Quest", "Cancel", () => { selectedItem.Reset(); UpdateQuestLog(); }, () => { });
                RPGUI.FormatMenu(abandon);
                abandon.HeaderCentered = true;
                View.AddMenu(abandon);
            }
        }
Exemplo n.º 10
0
        public void UpdateShop(int selected = 0)
        {
            var shopList = new List <IMenuItem>();

            var purchasableItems = ItemRepository.Items.Where(i => i.CanBuy).ToList();

            for (int i = 0; i < purchasableItems.Count; i++)
            {
                var item = purchasableItems[i];
                shopList.Add(new MenuButton(item.Quantity + "x\t" + item.Name, "[ GTA$" + item.Cost + " ]" + item.Description));
            }
            shopList.Add(new MenuButton("Back"));

            foreach (var i in shopList)
            {
                i.Parent = ShopMenu;
            }

            if (ShopMenu == null)
            {
                ShopMenu = new RPGListMenu("Shop", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), BuyShopItem, shopList.ToArray());
            }
            else
            {
                ShopMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0");
                ShopMenu.Items.Clear();
                ShopMenu.Items.AddRange(shopList);
                ShopMenu.Initialize();
            }
            ShopMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0");

            RPGUI.FormatMenuWithFooter(ShopMenu);
            ShopMenu.HeaderHeight = 25;

            if (ShopMenu != null && IsOpen(ShopMenu))
            {
                ShopMenu.SelectedIndex = selected;
            }
        }
Exemplo n.º 11
0
        public void UpdateCrafting(int selected = 0)
        {
            var craftingList = new List <IMenuItem>();

            var craftableItems = ItemRepository.Items.Where(i => i.CanCraft).ToList();

            for (int i = 0; i < craftableItems.Count; i++)
            {
                var item = craftableItems[i];
                craftingList.Add(new MenuButton(item.Quantity + "x\t" + item.Name, item.GetCraftString()));
            }

            craftingList.Add(new MenuButton("Back"));

            foreach (var i in craftingList)
            {
                i.Parent = CraftingMenu;
            }

            if (CraftingMenu == null)
            {
                CraftingMenu = new RPGListMenu("Crafting", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), CraftItem, craftingList.ToArray());
            }
            else
            {
                CraftingMenu.Items.Clear();
                CraftingMenu.Items.AddRange(craftingList);
                CraftingMenu.Initialize();
            }

            RPGUI.FormatMenuWithFooter(CraftingMenu);
            CraftingMenu.FooterCentered = true;
            CraftingMenu.FooterHeight   = 75;

            if (CraftingMenu != null && IsOpen(CraftingMenu))
            {
                CraftingMenu.SelectedIndex = selected;
            }
        }
Exemplo n.º 12
0
        protected override void Start()
        {
            RPGSettings.AudioVolume             = RPG.Settings.GetValue("Options", "AudioVolume", 35);
            RPGSettings.PlayKillstreaks         = RPG.Settings.GetValue("Options", "PlayKillAnnouncements", true);
            RPGSettings.ShowKillstreaks         = RPG.Settings.GetValue("Options", "ShowKillAnnouncements", true);
            RPGSettings.ShowPrerequisiteWarning = RPG.Settings.GetValue("Options", "ShowPrerequisiteWarning", true);
            RPGSettings.ShowPressYToStart       = RPG.Settings.GetValue("Options", "ShowPressYToStart", true);
            RPGSettings.EnableAutoSave          = RPG.Settings.GetValue("Options", "EnableAutoSave", true);
            RPGSettings.AutosaveInterval        = RPG.Settings.GetValue("Options", "AutosaveIntervalSeconds", 30);
            RPGSettings.AutostartRPGMode        = RPG.Settings.GetValue("Options", "AutostartRPGMode", true);
            RPGSettings.ShowQuestTracker        = RPG.Settings.GetValue("Options", "ShowQuestTracker", true);
            RPGSettings.ShowSkillBar            = RPG.Settings.GetValue("Options", "ShowSkillBar", true);
            RPGSettings.SafeArea = RPG.Settings.GetValue("Options", "SafeArea", 10);

            NpcCamera   = World.CreateCamera(Game.Player.Character.Position, Game.Player.Character.Rotation, GameplayCamera.FieldOfView);
            OptionsMenu = new RPGMenu("Options", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), new IMenuItem[] {
                new MenuButton("Save Game", "").WithActivate(() => { RPG.SaveAllData(); RPG.Subtitle("Saved"); }),
                new MenuButton("New Game", "").WithActivate(NewGame),
                new MenuNumericScroller("AudioVolume", "", 0, 100, 10, RPGSettings.AudioVolume / 10).WithNumericActions(ChangeAudioVolume, d => { }),
                new MenuNumericScroller("SafeArea Setting", "", 0, 10, 1, RPGSettings.SafeArea).WithNumericActions(ChangeSafeArea, d => { }),
                new MenuToggle("Toggle Skill Bar", "", RPGSettings.ShowSkillBar).WithToggles(ToggleSkillBar, ToggleSkillBar),
                new MenuToggle("Toggle Quest Tracker", "", RPGSettings.ShowQuestTracker).WithToggles(ToggleQuestTracker, ToggleQuestTracker),

                new MenuToggle("Play Kill Announcer Sounds", "", RPGSettings.PlayKillstreaks).WithToggles(ToggleKillAnnounceSounds, ToggleKillAnnounceSounds),
                new MenuToggle("Show Killstreak Text", "", RPGSettings.ShowKillstreaks).WithToggles(ToggleShowKillAnnounce, ToggleShowKillAnnounce),
                new MenuToggle("Show Prerequisite Warning", "", RPGSettings.ShowPrerequisiteWarning).WithToggles(ToggleWarning, ToggleWarning),
                new MenuToggle("Show Press Y To Start", "", RPGSettings.ShowPressYToStart).WithToggles(ToggleShowPressY, ToggleShowPressY),
                new MenuToggle("Enable Auto Save", "", RPGSettings.EnableAutoSave).WithToggles(ToggleAutoSave, ToggleAutoSave),
                new MenuNumericScroller("Autosave Interval (s)", "", 0, 120, 10, RPGSettings.AutosaveInterval / 10).WithNumericActions(ChangeAutosaveInterval, d => { }),
                new MenuToggle("Autostart RPG Mode", "", RPGSettings.AutostartRPGMode).WithToggles(ToggleAutostartRPG, ToggleAutostartRPG),


                new MenuButton("Mod Version: " + RPG.Version, ""),
                new MenuButton("Back", "").WithActivate(() => View.PopMenu())
            });
            RPGUI.FormatMenu(OptionsMenu);
        }
Exemplo n.º 13
0
        private void StartRPGMode()
        {
            World.DestroyAllCameras();
            Game.Player.CanControlCharacter = true;

            string missing;
            var    statusGood = CheckStatus(out missing);

            if (statusGood || !RPGSettings.ShowPrerequisiteWarning)
            {
                RPG.Initialise();
                Enabled = false;
            }
            else
            {
                var mb = (RPGMessageBox)RPGMessageBox.Create("Missing: " + missing + " View readme for more info.",
                                                             "Play Anyway ( WARNING: Bugs/errors expected))", "Return to normal mode", PlayAnyway, () => { RPGMethods.ReturnToNormal(); RPG.UIHandler.View.CloseAllMenus(); });
                RPGUI.FormatMenu(mb);
                mb.TopColor    = Color.Red;
                mb.HeaderScale = 0.5f;
                RPG.UIHandler.View.AddMenu(mb);
                Enabled = false;
            }
        }
Exemplo n.º 14
0
        private void UpdateSkillBarMenu()
        {
            var items      = new IMenuItem[6];
            var skillSlots = RPG.PlayerData.SkillSlots;
            var entries    = RPG.SkillHandler.GetEntriesFormatted();

            for (int i = 0; i < 5; i++)
            {
                var slot = skillSlots[i];
                if (!slot.IsEmpty)
                {
                    var indexOfCur = Array.IndexOf(entries, slot.Name);
                    items[i] = new MenuEnumScroller(slot.GetMenuKeyName() + ":", "Skill for " + slot.Key, RPG.SkillHandler.GetEntriesFormatted(), indexOfCur).WithEnumActions(ChangeAction, ClearAction);
                }
                else
                {
                    items[i] = new MenuEnumScroller(slot.GetMenuKeyName() + ":", "Skill for " + slot.Key, RPG.SkillHandler.GetEntriesFormatted()).WithEnumActions(ChangeAction, ClearAction);
                }
            }
            items[5] = new MenuButton("Back").WithActivate(View.PopMenu);

            SkillbarMenu = new RPGMenu("Set skills", new GTASprite("Commonmenu", "interaction_bgd", Color.LightBlue), items);
            RPGUI.FormatMenuWithFooter(SkillbarMenu);
        }
Exemplo n.º 15
0
        private UIContainer GetQuestTracker()
        {
            var quests = PlayerData.Quests.Where(q => q.InProgress).ToList();

            if (!quests.Any())
            {
                return(new UIContainer());
            }

            //350 IS MAP height
            Point questTrackerPoint;

            switch (RPGSettings.SafeArea)
            {
            case 0:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 63 : 63), 10);
                break;

            case 1:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 57 : 57), 15);
                break;

            case 2:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 51 : 50), 20);
                break;

            case 3:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 45 : 45), 25);
                break;

            case 4:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 39 : 39), 30);
                break;

            case 5:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 32 : 32), 35);
                break;

            case 6:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 26 : 26), 40);
                break;

            case 7:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 19 : 19), 45);
                break;

            case 8:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 13 : 13), 50);
                break;

            case 9:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 6 : 6), 55);
                break;

            case 10:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 0 : 0), 60);
                break;

            default:
                questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 0 : 0), 65);
                break;
            }

            var questTracker = new UIContainer(questTrackerPoint, new Size(180, UI.HEIGHT - 190)); //note: -180 for non-RPG-UI

            var bottomPoint = (questTracker.Size.Height);

            for (int i = quests.Count - 1; i >= 0; i--)
            {
                var quest         = quests[i];
                var text          = quest.GetProgressString();
                var formattedText = RPGUI.FormatText(text, 80);
                var lines         = formattedText.Length;
                var height        = 15 + (lines * 10) + 2;
                bottomPoint = bottomPoint - height;

                var point = new Point(5, bottomPoint);
                questTracker.Items.Add(new UIRectangle(point, new Size(170, 15), Color.FromArgb(120, 255, 255, 255)));
                questTracker.Items.Add(new UIText(quest.Name, new Point(point.X + 1, point.Y), 0.25f, Color.FromArgb(230, 8, 8, 8), 0, false));
                questTracker.Items.Add(new UIText((i + 1).ToString("00"), new Point(point.X + 170 - 14, point.Y + 1), 0.25f, Color.FromArgb(230, 78, 78, 78), Font.Monospace, false));
                for (int j = 0; j < lines; j++)
                {
                    questTracker.Items.Add(new UIText(formattedText[j], new Point(5 + point.X, point.Y + 15 + (j * 10)), 0.2f, Color.White, 0, false));
                }

                //questTracker.Items.Add(new UIText("- " + quest.GetProgressString(), new Point(point.X, point.Y + 15),0.2f,Color.White,0,false));
                //questTracker.Items.Add(new UIText("- Malvoro is upset with your last mission.\n- Kill Antonio\n- Speak to bob\n- Eat cakes\n- Dist: 5m", new Point(5 + point.X, point.Y + 15),0.2f,Color.White,0,false));
            }

            questTracker.Items.Add(new UIText("Missions", new Point(1, bottomPoint - 17), 0.28f, Color.White, 0, false));
            //questTracker.Items.Add(new UIRectangle(new Point(1, bottomPoint - 17), new Size(180 - 6, 15), Color.FromArgb(120, 150, 150, 150)));

            return(questTracker);
        }
Exemplo n.º 16
0
        public override void Update()
        {
            if (!CanRun)
            {
                return;
            }
            if (!_show)
            {
                return;
            }

            int showTime = TimeToShowMs / 14;
            int fadeTime = showTime / 8;

            if (HideOnlyWhenClosed)
            {
                CloseablePopups.Add(this);
            }

            while (_timeWaited < showTime && _show)
            {
                if (_timeWaited < fadeTime)
                {
                    if (FadeInPopup)
                    {
                        RPGUI.SetAlpha(_popup, Math.Min((int)(((float)_timeWaited / fadeTime) * 255), 255));
                    }
                }

                if (_timeWaited > showTime - fadeTime)
                {
                    if (HideOnlyWhenClosed || HideTillManuallyClosed)
                    {
                        while (_show && !Function.Call <bool>(Hash.IS_CUTSCENE_ACTIVE))
                        {
                            _popup.Draw();
                            Wait(0);
                        }
                    }

                    if (FadeOutPopup)
                    {
                        var timeOfFrame = _timeWaited - (showTime - fadeTime);
                        RPGUI.SetAlpha(_popup, Math.Min((int)(255 - (255 * ((float)timeOfFrame / fadeTime))), 0));
                    }
                }

                if (DoCustom != null)
                {
                    DoCustom.Invoke(_popup, _timeWaited, showTime, fadeTime);
                }

                _popup.Draw();

                _timeWaited++;
                Wait(0);
            }



            Finish();
        }
Exemplo n.º 17
0
        //private void ChangeVariation(int obj)
        //{
        //    var index = Mennu.SelectedIndex;
        //    var kvp = variations.ElementAt(index);
        //    var component = kvp.Key;
        //    Function.Call(Hash.SET_PED_COMPONENT_VARIATION, Game.Player.Character, component, obj, 0,0);
        //}

        //private Menu Mennu;
        //Dictionary<int, int> variations = new Dictionary<int, int>();
        //
        //
        //private void SelectTile(int obj)
        //{
        //    throw new NotImplementedException();
        //}


        public override void Update()
        {
            if (Game.IsKeyPressed(Keys.F5))
            {
                //try
                //{

                //RPG.PlayerData.AddMoney(20120324);
                //var mmmmmenu = new TiledMenu("Select Your Gender",
                //    new TiledPanel("Male", new GTASprite("mptattoos1", "tattoo_drugdeal", Color.Red), Color.DodgerBlue, SelectTile, "Play as an XY chromosome."),
                //    new TiledPanel("Female", new GTASprite("mptattoos", "killplayerbountyhead", Color.Purple),Color.Pink, SelectTile, "Play as an XX chromosome."));
                //View.AddMenu(mmmmmenu);

                //variations = new Dictionary<int, int>();
                //for (int i = 0; i < 10 ; i++)
                //{
                //    var a = Function.Call<int>(Hash._0x5FAF9754E789FB47, Game.Player.Character, i);
                //    //if(a > 1)
                //    //{
                //    //    variations.Add(i,a);
                //        RPGLog.Log("Tried " + i + " got variations: " + a);
                //    //}
                //}
                //Function.Call(Hash.SET_PED_RANDOM_PROPS, Game.Player.Character);
                //Function.Call(Hash.SET_PED_PROP_INDEX, Game.Player.Character, 0, adasdasdasdij);
                //adasdasdasdij++;

//
//                    View.MenuPosition = new Point(UI.WIDTH/2 -  150, UI.HEIGHT - 300);
//                    Mennu.Width = 300;
//                    RPGUI.FormatMenu(Mennu);
//                    View.AddMenu(Mennu);

                //}
                //catch (Exception ex)
                //{
                //    RPGLog.Log(ex);
                //}

                //Wait(500);
                //try
                //{
                //    var outArg = new OutputArgument();
                //    var a =  Function.Call<Vector3>(Hash.GET_HUD_COMPONENT_POSITION, 15, outArg);
                //    RPG.Notify("a: " + a);
                //    RPG.Notify("a: " + outArg.GetResult<Vector3>());
                //
                //}
                //catch
                //{
                //
                //}

                //string s = Game.GetUserInput(100);
                //try
                //{
                //    var propName = s;
                //    Model m = propName;
                //    var p = World.CreateProp(m, Game.Player.Character.Position + Game.Player.Character.ForwardVector * 2, true, true);
                //    Wait(5000);
                //    if (p.Exists())
                //    {
                //        p.Delete();
                //    }
                //}
                //catch (Exception)
                //{
                //    RPG.Notify("err");
                //}
            }

            if (!Debug)
            {
                return;
            }
            var c = new UIContainer(new Point(UI.WIDTH - 305, UI.HEIGHT - 305), new Size(300, 300), Color.FromArgb(180, 50, 50, 50));

            var debug = "";

            debug += "player co-ordinates: " + VecStr(Game.Player.Character.Position) + "\n";
            debug += "- heading: " + Game.Player.Character.Heading + "\n";
            debug += "- rotation: " + VecStr(Game.Player.Character.Rotation) + "\n";
            debug += "- model hash: " + Game.Player.Character.Model.Hash + "\n";
            var v = new UIText(debug, new Point(0, 0), 0.25f, Color.White);

            if (Game.Player.Character.IsInVehicle())
            {
                debug += "vehicle model: " + Game.Player.Character.CurrentVehicle.Model.Hash + "\n";
                debug += "- heading: " + Game.Player.Character.CurrentVehicle.Heading + "\n";
                debug += "- rotation: " + VecStr(Game.Player.Character.CurrentVehicle.Rotation) + "\n";
            }

            foreach (var wep in RPG.PlayerData.Weapons)
            {
                debug += string.Format("Weapon: {0} [{1}] , Unlocked {2} \n", wep.WeaponName, wep.WeaponHash.ToString(), wep.Unlocked);
            }

            var lines = RPGUI.FormatText(debug, 99);

            for (int i = 0; i < lines.Length; i++)
            {
                var x = new UIText(lines[i], new Point(0, 0 + (30 * i)), 0.25f, Color.White);
                c.Items.Add(x);
            }

            c.Draw();
        }