Example #1
0
        private void GenericPickupController_AttemptGrant(On.RoR2.GenericPickupController.orig_AttemptGrant orig, RoR2.GenericPickupController self, RoR2.CharacterBody body)
        {
            if (PickupCatalog.GetPickupDef(self.pickupIndex).equipmentIndex != EquipmentIndex.None)
            {
                orig(self, body);
                return;
            }
            InventoryLimits limits = null;

            limits = body.master.gameObject.GetComponent <InventoryLimits>();
            if (limits != null && PickupCatalog.GetPickupDef(self.pickupIndex).itemIndex != ItemIndex.None)
            {
                if (limits.Limited)
                {
                    /*
                     * Chat.AddMessage($"<color=#FFFF00>Inventory full: {limits.amount}/{limits.limit}. Gain experience to gain free space.</color>");
                     */
                    return;
                }
            }
            orig(self, body);
            if (limits != null && PickupCatalog.GetPickupDef(self.pickupIndex).itemIndex != ItemIndex.None)
            {
                if (NetworkServer.active)
                {
                    DropperChat.ItemCountMessage(body.GetUserName(), limits.amount, limits.limit);
                }
            }
        }
Example #2
0
 public void OnPointerClick(PointerEventData eventData)
 {
     if (master != null && master.playerCharacterMasterController != null)
     {
         ItemIcon  itemIcon  = GetComponent <ItemIcon>();
         ItemIndex itemIndex = itemIcon.GetFieldValue <ItemIndex>("itemIndex");
         if (ItemCatalog.GetItemDef(itemIndex).tier == ItemTier.NoTier)
         {
             Debug.LogWarning("Trash cannot be dropped :D");
             return;
         }
         if (NetworkServer.active)
         {
             ServerStuffDropper.DropItem(master, itemIndex);
             InventoryLimits limits = master.GetComponent <InventoryLimits>();
             if (!limits)
             {
                 return;
             }
             limits.Count(master.inventory);
         }
         else
         {
             if (ClientScene.readyConnection == null)
             {
                 Debug.LogError("Connection is not ready.");
             }
             ClientScene.readyConnection.Send(ConversionArtifactMod.msgItemDropType, new ItemDropMessage(itemIndex));
         }
     }
 }
Example #3
0
        private void PlayerCharacterMasterController_OnBodyStart(On.RoR2.PlayerCharacterMasterController.orig_OnBodyStart orig, PlayerCharacterMasterController self)
        {
            if (NetworkClient.active)
            {
                ConversionArtifactMod.master = self.master;
                //self.networkUser.connectionToServer.RegisterHandler(msgDropCallbackType, msgDropCallbackHandler);
                //self.connectionToServer.RegisterHandler(msgDropCallbackType, msgDropCallbackHandler);
                //ClientScene.readyConnection.RegisterHandler(msgDropCallbackType, msgDropCallbackHandler);
            }
            var master = self.master;

            if (master != null && master.GetComponent <InventoryLimits>() == null && master.GetComponent <DropperApplier>() == null)
            {
                InventoryLimits limits = master.gameObject.AddComponent <InventoryLimits>();
                limits.limit = (int)TeamManager.instance.GetTeamLevel(self.master.teamIndex);
                limits.Count(master.inventory);
                DropperApplier dropperApplier = master.gameObject.AddComponent <DropperApplier>();
                dropperApplier.inventory = master.inventory;
                dropperApplier.master    = master;
            }
            orig(self);
        }