Beispiel #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);
                }
            }
        }
Beispiel #2
0
        public static void DropEquipment(CharacterMaster master, EquipmentIndex equipmentIndex)
        {
            var transform  = master.GetBodyObject().transform;
            var dropVector = UnityEngine.Random.insideUnitCircle;

            PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(equipmentIndex), transform.position, new Vector3(dropVector.x, 0, dropVector.y) * 5f);
            master.inventory.SetEquipmentIndex(EquipmentIndex.None);
            DropperChat.EquipmentDropMessage(master.GetBody().GetUserName(), equipmentIndex);
        }
Beispiel #3
0
        public static void DropItem(CharacterMaster master, ItemIndex itemIndex)
        {
            var transform  = master.GetBodyObject().transform;
            var dropVector = UnityEngine.Random.insideUnitCircle;

            PickupDropletController.CreatePickupDroplet(PickupCatalog.FindPickupIndex(itemIndex), transform.position, new Vector3(dropVector.x, 0, dropVector.y) * 5f);
            master.inventory.RemoveItem(itemIndex);
            DropperChat.ItemDropMessage(master.GetBody().GetUserName(), itemIndex);
            var limits = master.GetComponent <InventoryLimits>();

            DropperChat.ItemCountMessage(master.GetBody().GetUserName(), limits.amount, limits.limit);
        }