public static void DoubleKeys(Action <KeyBulletPickup> acshon, KeyBulletPickup key) { acshon(key); foreach (PassiveItem passives in GameManager.Instance.GetActivePlayerClosestToPoint(key.specRigidbody.UnitCenter, true).passiveItems) { if (passives is UnluckyKey) { key.specRigidbody.Velocity = BraveMathCollege.DegreesToVector(Vector2.Angle(key.specRigidbody.UnitCenter, GameManager.Instance.GetActivePlayerClosestToPoint(key.specRigidbody.UnitCenter, true).specRigidbody.UnitCenter) + 180); key.specRigidbody.CollideWithTileMap = true; } } }
public static void keyPickupHookMethod(Action <KeyBulletPickup, PlayerController> orig, KeyBulletPickup self, PlayerController player) { orig(self, player); if (player.HasPickupID(Gungeon.Game.Items["nn:keychain"].PickupObjectId)) { if (!self.IsRatKey && UnityEngine.Random.value < .25f) { player.carriedConsumables.KeyBullets += 1; } else if (self.IsRatKey && UnityEngine.Random.value < .1f) { player.carriedConsumables.ResourcefulRatKeys += 1; } } }
public static void DoubleKeys(Action <KeyBulletPickup, PlayerController> acshon, KeyBulletPickup key, PlayerController player) { acshon(key, player); foreach (PassiveItem passives in player.passiveItems) { if (passives is KeyDoubler && BoxOTools.BasicRandom(0.5f)) { player.carriedConsumables.KeyBullets += 1; player.BloopItemAboveHead(itemator.sprite); if (player.PlayerHasActiveSynergy("Twice the Pride")) { if (player.characterIdentity != PlayableCharacters.Robot) { player.healthHaver.ApplyHealing(1f); } else { player.healthHaver.Armor += 1; } AkSoundEngine.PostEvent("Play_OBJ_heart_heal_01", passives.gameObject); player.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/vfx_healing_sparkles_001") as GameObject, Vector3.zero); } } } }
public static void keyPickupHookMethod(Action <KeyBulletPickup, PlayerController> orig, KeyBulletPickup self, PlayerController player) { orig(self, player); if (keyRegulator) { if (self.IsRatKey) { giveCash(player, 10); } else { giveCash(player, 6); } keyRegulator = false; } else { keyRegulator = true; } }
public static void VeryShady(Action <KeyBulletPickup, PlayerController> acshon, KeyBulletPickup key, PlayerController player) { acshon(key, player); foreach (PassiveItem passives in GameManager.Instance.GetActivePlayerClosestToPoint(key.specRigidbody.UnitCenter, true).passiveItems) { if (passives is CodexUmbra && BoxOTools.BasicRandom(.5f)) { GiveRandomItem(player); } } }