コード例 #1
0
        public static void ShowWindow(int windowID)
        {
            firstNetworkUser = PlayerCharacterMasterController.instances[0].networkUser;
            firstPlayer      = PlayerCharacterMasterController.instances[0].master;
            var viewModel = AugmentShop.GetShopViewModel(firstPlayer.netId);

            GUILayout.BeginHorizontal();

            foreach (var item in viewModel.Items)
            {
                var itemDef = ItemCatalog.GetItemDef(item.ItemIndex);

                GUILayout.Label($"Item name: {itemDef.name}, Points to spend: {item.PointsToSpend}");

                foreach (var augment in item.Augments)
                {
                    if (GUILayout.Button(new GUIContent(augment.Name, itemDef.pickupIconTexture)))
                    {
                        AugmentResolver.TryAddOrUpgradeAugmentToPlayer(firstPlayer.netId, itemDef.itemIndex, augment.AugmentId);
                        Chat.AddMessage($"{firstNetworkUser.userName} unlocked augment {augment.Name}");
                    }
                }
            }

            GUILayout.EndHorizontal();
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: nordtorp95/RoR2.ItemAugments
        private static void InventoryHook(On.RoR2.GenericPickupController.orig_GrantItem orig,
                                          GenericPickupController self,
                                          CharacterBody body,
                                          Inventory inventory)
        {
            var networkIdentity = body.master.netId;
            var item            = PickupCatalog.GetPickupDef(self.pickupIndex);
            var itemDef         = ItemCatalog.GetItemDef(item.itemIndex);

            var itemCount = inventory.GetItemCount(itemDef.itemIndex);
            var itemCost  = Application.Config.ConfigResolver.ItemCount(itemDef.tier);
            var canAdd    = itemCount > 1 && itemCount % itemCost == 0;

            if (canAdd)
            {
                var augments = AugmentResolver.ListAugmentsForItem(itemDef.itemIndex);
                if (augments != null && augments.Any())
                {
                    AugmentResolver.TryAddOrUpgradeAugmentToPlayer(networkIdentity,
                                                                   itemDef.itemIndex,
                                                                   augments.FirstOrDefault().Value.Id);
                }
            }

            orig(self,
                 body,
                 inventory);
        }