示例#1
0
        private static bool Prefix(Scp914Machine __instance, Inventory inventory, CharacterClassManager player, IEnumerable <CharacterClassManager> players)
        {
            try
            {
                var splayer = inventory.GetPlayer();
                foreach (var item in splayer.Inventory.Items)
                {
                    var type = Map.Get.Scp914.UpgradeItemID(item.ID);

                    if (type < 0)
                    {
                        item.Destroy();
                    }
                    else
                    {
                        var newitem = new SynapseItem(type, item.Durabillity, item.Sight, item.Barrel, item.Other);
                        item.Destroy();
                        if (newitem.ItemType == ItemType.GunLogicer)
                        {
                            newitem.Sight  = 0;
                            newitem.Barrel = 0;
                            newitem.Other  = 0;
                        }
                        newitem.PickUp(splayer);
                        Scp914Machine.TryFriendshipAchievement(item.ItemType, player, players);
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Get.Error($"Synapse-Event: Scp914PlayerUpgrade failed!!\n{e}\nStackTrace:\n{e.StackTrace}");
            }
            return(false);
        }
示例#2
0
        private static void ReCreateItem(Player player, SynapseItem item)
        {
            var newitem = new SynapseItem(item.ID);

            newitem.Durabillity = item.Durabillity;
            newitem.ItemData    = item.ItemData;
            item.Destroy();
            newitem.PickUp(player);
        }
示例#3
0
        private static bool Prefix(Scp914Machine __instance, Inventory inventory, CharacterClassManager player, IEnumerable <CharacterClassManager> players)
        {
            try
            {
                if (inventory.curItem == ItemType.None)
                {
                    return(false);
                }

                var splayer = inventory.GetPlayer();
                var type    = Map.Get.Scp914.UpgradeItemID(splayer.ItemInHand.ID);
                var index   = inventory.GetItemIndex();
                if (index < 0 || index >= inventory.items.Count)
                {
                    return(false);
                }
                if (type < 0)
                {
                    splayer.ItemInHand.Destroy();
                    return(false);
                }

                var item    = splayer.ItemInHand;
                var newitem = new SynapseItem(type, item.Durabillity, item.Sight, item.Barrel, item.Other);
                if (newitem.ItemType == ItemType.GunLogicer)
                {
                    newitem.Barrel = 0;
                    newitem.Sight  = 0;
                    newitem.Other  = 0;
                }
                item.Destroy();
                newitem.PickUp(splayer);

                Scp914Machine.TryFriendshipAchievement(newitem.ItemType, player, players);
            }
            catch (Exception e)
            {
                Logger.Get.Error($"Synapse-Event: Scp914HeldItemUpgrade failed!!\n{e}\nStackTrace:\n{e.StackTrace}");
            }
            return(false);
        }