Beispiel #1
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;
            }
        }
Beispiel #2
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;
            }
        }
Beispiel #3
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;
            }
        }
Beispiel #4
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;
            }
        }
Beispiel #5
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);
        }