public static void Track_ChestBehavior(On.RoR2.ChestBehavior.orig_Awake orig, ChestBehavior self) { orig(self); InstanceTracker.Add(self); if (!self.GetComponent <InstanceTrackerRemover>()) { self.gameObject.AddComponent <InstanceTrackerRemover>().chestBehavior = self; } }
private void ChestBehavior_Awake(On.RoR2.ChestBehavior.orig_Awake orig, ChestBehavior self) { orig(self); var mimicSpawnChance = GetMimicSpawnChance(); var gameObject = self.gameObject; if (Util.CheckRoll(mimicSpawnChance)) { var component = gameObject.GetComponent <MimicComponent>(); if (!component) { component = gameObject.AddComponent <MimicComponent>(); } component.heldItemIndex = PickupCatalog.GetPickupDef(self.dropPickup).itemIndex; self.Invoke("Open", 0); } }