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); }
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); }
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); }