private void PostProcessProjectile(Projectile projectile, float Chance) { if (BoxOTools.BasicRandom(0.7f) && !CoolAsIce) { ShootPlagueShit(); } }
private void PostProcessProjectile(Projectile projectile, float Chance) { if (BoxOTools.BasicRandom(Owner.PlayerHasActiveSynergy("Mahoguny Sapling") ? 0.6f : 0.75f) && CoolAsIce && Owner) { ShootLeafShit(); } }
private void PostProcessBeamChanceTick(BeamController beamController) { if (BoxOTools.BasicRandom(Owner.PlayerHasActiveSynergy("Mahoguny Sapling") ? 0.6f : 0.75f) && CoolAsIce) { ShootLeafShit(); } }
public void PostProcessProjectile(Projectile projectile, float chungo) { PlayerController player = base.Owner; float Chance = 0.8f; if (player.HasGun(7)) { Chance -= 0.05f; } if (BoxOTools.BasicRandom(Chance) && !CoolAsIce) { CoolAsIce = true; StartCoroutine(StartCooldown()); if (BoxOTools.BasicRandom(0.98f) && !SharkMFs) { SharkMFs = true; StartCoroutine(SharkCooldown()); player.HandleProjectile(25f, (player.HasGun(359)) ? 110 : 90f, 359, true, Vector2.zero, true); } else { player.HandleProjectile(20f, (player.HasGun(7)) ? 15 : 10, 7, false, Vector2.zero, true); } } }
private void PostProcessBeamChanceTick(BeamController beamController) { if (BoxOTools.BasicRandom(0.7f) && !CoolAsIce) { ShootPlagueShit(); } }
void Event(Chest chest, PlayerController player) { if (player.carriedConsumables.KeyBullets > 0 && BoxOTools.BasicRandom(0.5f)) { player.carriedConsumables.KeyBullets--; } }
private void PostProcessProjectile(Projectile sourceProjectile, float effectChanceScalar) { try { if (sourceProjectile.GetComponent <HomingModifier>() == null) { BoomerangEffect boom = sourceProjectile.gameObject.AddComponent <BoomerangEffect>(); boom.m_speed = sourceProjectile.baseData.speed / 10; boom.startingDamage = sourceProjectile.baseData.damage; sourceProjectile.baseData.range *= 10; } else { sourceProjectile.baseData.damage *= 1.3f; } if (BoxOTools.BasicRandom(0.9f) && Owner.PlayerHasActiveSynergy("Suicide King")) { Owner.HandleProjectile(40, 1, 39, false, Vector2.zero); } if (BoxOTools.BasicRandom(0.8f) && Owner.PlayerHasActiveSynergy("Boomerang Bros")) { Owner.HandleProjectile(20, 6, 448, false, Vector2.zero); } } catch (Exception ex) { ETGModConsole.Log(ex.Message, false); } this.damageToDo = sourceProjectile.baseData.damage; }
private void PostProcessBeamChanceTick(BeamController beamController) { PlayerController player = base.Owner; float Chance = 0.9f; if (player.HasGun(7)) { Chance -= 0.05f; } if (BoxOTools.BasicRandom(Chance) && !CoolAsIce) { CoolAsIce = true; StartCoroutine(StartCooldown()); if (BoxOTools.BasicRandom(0.97f) && !SharkMFs) { SharkMFs = true; StartCoroutine(SharkCooldown()); player.HandleProjectile(25f, (player.HasGun(359)) ? 110 : 95f, 359, true, Vector2.zero, true); } else { player.HandleProjectile(20f, (player.HasGun(7)) ? 20 : 10, 7, false, Vector2.zero, true); } } }
private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { try { if (arg2 != null && arg2.aiActor != null && Owner != null) { if (BoxOTools.BasicRandom(.5f)) { if (arg2.aiActor.GetEffect("weezer") != null) { GameActorUnweaveEffect unweave = arg2.aiActor.GetEffect("weezer") as GameActorUnweaveEffect; unweave.duration += 5; unweave.IncreaseIfAmountNotHit(arg2.aiActor); } else { GameActorUnweaveEffect unweave = weezer; arg2.aiActor.ApplyEffect(unweave); } } } } catch (Exception eror) { eror.ToString().Log(); } }
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); } } } }
private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy) { if (enemy.specRigidbody != null && enemy.aiActor != null && base.Owner != null && enemy != null) { if (fatal) { if (BoxOTools.BasicRandom(0.97f)) { if (BoxOTools.BasicRandom(0.99f) && !base.Owner.HasPickupID(580) && !base.Owner.HasPickupID(641)) { if (BoxOTools.BasicRandom(0.05f) && !base.Owner.HasPickupID(580)) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(580).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); } else if (!base.Owner.HasPickupID(641)) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(641).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); } } else { LootEngine.SpawnItem(PickupObjectDatabase.GetById(127).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); } } } } }
private void PostProcessProjectile(Projectile projectile, float arg2) { if (projectile && BoxOTools.BasicRandom(0.85f)) { projectile.AdjustPlayerProjectileTint(Color.red, 5); projectile.OnDestruction += PushinPeopleToTheGround; } }
private void Player_PostProcessProjectile(Projectile projectile, float arg2) { if (projectile && BoxOTools.BasicRandom(0.9f)) { projectile.baseData.damage *= 2; projectile.AdjustPlayerProjectileTint(Color.yellow, 5); } }
private void PostProcessProjectile(Projectile projectile, float chungo) { if (BoxOTools.BasicRandom(base.Owner.CurrentGun.PickupObjectId == 7 ? 0.4f : 0.9f) && !CoolAsIce && projectile) { CoolAsIce = true; projectile.AdjustPlayerProjectileTint(Color.blue, 5); projectile.OnDestruction += Wave; } }
public void AmmoInator(PlayerController player, HealthHaver healed) { if (healed && healed.specRigidbody && player) { if (BoxOTools.BasicRandom(0.825f) && Shells < Mathf.FloorToInt(55 * player.stats.GetStatValue(PlayerStats.StatType.AmmoCapacityMultiplier)) && player.HasGun(Gungeon.Game.Items["psm:wastelanders_shotgun"].PickupObjectId)) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(NuclearAmmoPickup.id).gameObject, healed.specRigidbody.UnitCenter, Vector2.zero, 1f, true, true); } } }
private void OnEnemyDamaged(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { if (arg2 && arg2.healthHaver && arg2.aiActor) { if ((Owner.PlayerHasActiveSynergy("Mirror Cannon") || BoxOTools.BasicRandom(0.9f)) && !arg2.healthHaver.IsBoss) { arg2.aiActor.gameActor.ApplyEffect(EnemyDebuff, 1f, null); } } }
private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { if (arg2 != null && arg2.aiActor != null && Owner != null && arg2.healthHaver && arg2.healthHaver.IsVulnerable) { if (BoxOTools.BasicRandom(0.97f)) { LootEngine.SpawnItem(PickupObjectDatabase.GetById(68).gameObject, arg2.UnitCenter, Vector2.zero, 1f, false, true, true); } } }
public static void Healing(Action <HealthPickup, PlayerController> acshon, HealthPickup key, PlayerController player) { acshon(key, player); foreach (PassiveItem passives in player.passiveItems) { if (passives is CodexUmbra && BoxOTools.BasicRandom(.5f)) { GiveRandomItem(player); } } }
public static void VeryBlank(Action <SilencerItem, PlayerController> acshon, SilencerItem key, PlayerController player) { acshon(key, player); foreach (PassiveItem passives in player.passiveItems) { if (passives is CodexUmbra && BoxOTools.BasicRandom(.5f)) { GiveRandomItem(player); } } }
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); } } }
public static void PigHook(Action <CompanionController, PlayerController> orig, CompanionController companion, PlayerController owner) { orig(companion, owner); if (companion && companion.specRigidbody && companion.name.StartsWith("Pig") && owner.PlayerHasActiveSynergy("Oink")) { if (BoxOTools.BasicRandom(0.4f)) { LootEngine.SpawnCurrency(companion.specRigidbody.UnitCenter, 2); } } }
// the old "I don't lnow how to balance my items" version private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy) { if (enemy.specRigidbody != null && enemy.aiActor != null && base.Owner != null) { if (fatal) { if (BoxOTools.BasicRandom(.985f) && !GameStatsManager.Instance.IsRainbowRun) { GameManager.Instance.RewardManager.SpawnTotallyRandomItem(enemy.specRigidbody.UnitCenter); } } } }
private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy) { if (!Owner.PlayerHasActiveSynergy("REANIMATE")) { if (fatal && enemy && enemy.aiActor && enemy.aiActor.EnemyGuid != "699cd24270af4cd183d671090d8323a1") { if (Owner.CurrentRoom != null) { if (BoxOTools.BasicRandom(0.975f) && DoneKill) { try { AIActor aiactor = BoxOTools.SummonAtRandomPosition("699cd24270af4cd183d671090d8323a1", Owner); if (base.Owner.PlayerHasActiveSynergy("keysight")) { aiactor.IsHarmlessEnemy = true; aiactor.BecomeBlackPhantom(); } if (!base.Owner.PlayerHasActiveSynergy("keysight")) { aiactor.PreventBlackPhantom = true; } aiactor.HandleReinforcementFallIntoRoom(0f); DoneKill = false; } catch (Exception Error) { ETGModConsole.Log(Error.Message); } } } } } else { if (BoxOTools.BasicRandom(0.8f) && enemy && enemy.aiActor && Owner.CurrentRoom != null && fatal) { if (BoxOTools.BasicRandom(0.3f) || base.Owner.PlayerHasActiveSynergy("keysight")) { AIActor aiactor = BoxOTools.SummonAtRandomPosition("336190e29e8a4f75ab7486595b700d4a", Owner); BoxOTools.AddPermanentCharm(aiactor); aiactor.HandleReinforcementFallIntoRoom(0f); } else { AIActor aiactor = BoxOTools.SummonAtRandomPosition("95ec774b5a75467a9ab05fa230c0c143", Owner); BoxOTools.AddPermanentCharm(aiactor); aiactor.HandleReinforcementFallIntoRoom(0f); } } } }
public void OnHit(Projectile proj, SpeculativeRigidbody target, bool flag) { if (proj && proj.specRigidbody) { target?.aiActor?.ParentRoom?.BetterDoToEnemiesInRadius(proj.specRigidbody.UnitCenter, 6, delegate(AIActor enemy) { if (BoxOTools.BasicRandom(0.5f)) { GameActorHealthEffect poisonEffect = Gungeon.Game.Items["irradiated_lead"].GetComponent <BulletStatusEffectItem>().HealthModifierEffect; enemy.ApplyEffect(poisonEffect); } }); } }
private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { if (arg2 != null && arg2.aiActor != null && Owner != null) { if (BoxOTools.BasicRandom(.85f)) { GameActorWitherEffect witherEffect = wither; if (Owner.PlayerHasActiveSynergy("Withered away")) { wither.duration *= 2; } arg2.aiActor.ApplyEffect(witherEffect, 1f, null); } } }
private void ItemGiver(PlayerController player) { if (BoxOTools.BasicRandom(.91f) && player && player.specRigidbody && !player.CurrentRoom.PlayerHasTakenDamageInThisRoom) { if (Owner.PlayerHasActiveSynergy("Lucky Bird")) { GameManager.Instance.RewardManager.SpawnTotallyRandomItem(player.specRigidbody.UnitCenter, ItemQuality.A, ItemQuality.S); } else { GameManager.Instance.RewardManager.SpawnTotallyRandomItem(player.specRigidbody.UnitCenter); } LootEngine.DoDefaultItemPoof(player.specRigidbody.UnitCenter); } }
public void MoreItems(AIActor actor) { if (actor && actor.healthHaver) { float ChanceToActivate = 0.5f; if (Owner.characterIdentity != PlayableCharacters.Robot || Owner.healthHaver.GetMaxHealth() <= 0) { ChanceToActivate = Owner.healthHaver.GetCurrentHealthPercentage(); } if (BoxOTools.BasicRandom(ChanceToActivate)) { float BaseHealth = actor.healthHaver.GetMaxHealth(); actor.healthHaver.SetHealthMaximum(BaseHealth * 0.5f, null, true); } } }
private void OnEnemyDamaged(float damage, bool fatal, HealthHaver enemy) { PlayerController user = base.LastOwner; if (fatal) { if (BoxOTools.BasicRandom(0.985f)) { if (enemy != null && enemy.specRigidbody != null && enemy.aiActor != null && base.LastOwner != null) { switch (pick3) { case 1: LootEngine.SpawnItem(PickupObjectDatabase.GetById(67).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); break; case 2: LootEngine.SpawnItem(PickupObjectDatabase.GetById(565).gameObject, enemy.specRigidbody.UnitCenter, Vector2.zero, 1f, false, true, false); break; case 3: StatModifier damageboost = new StatModifier { statToBoost = PlayerStats.StatType.Damage, amount = 0.01f, modifyType = StatModifier.ModifyMethod.ADDITIVE }; user.ownerlessStatModifiers.Add(damageboost); user.stats.RecalculateStats(user, true, false); AkSoundEngine.PostEvent("Play_OBJ_power_up_01", base.gameObject); break; case 4: IntVector2?intVector = new IntVector2?(this.LastOwner.CurrentRoom.GetRandomVisibleClearSpot(1, 1)); var BulletKin = EnemyDatabase.GetOrLoadByGuid("a446c626b56d4166915a4e29869737fd"); if (enemy.aiActor.EnemyGuid != "a446c626b56d4166915a4e29869737fd") { AIActor aiactor = AIActor.Spawn(BulletKin.aiActor, intVector.Value, GameManager.Instance.Dungeon.data.GetAbsoluteRoomFromPosition(intVector.Value), true, AIActor.AwakenAnimationType.Awaken, true); aiactor.HandleReinforcementFallIntoRoom(0f); } break; } } } } }
private void ChargeActives(PlayerController obj) { if (obj && obj.activeItems.Count > 0) { foreach (PlayerItem item in obj.activeItems) { if (item.IsOnCooldown) { item.CurrentDamageCooldown = Mathf.Max(0, item.CurrentDamageCooldown - 150); if (BoxOTools.BasicRandom(0.66f)) { item.CurrentRoomCooldown = Mathf.Max(0, item.CurrentRoomCooldown - 1); } } } } }
private void Player_PostProcessProjectile(Projectile arg1, float arg2) { if (Owner && coinProjectile && coinProjectile.gameObject && BoxOTools.BasicRandom(0.9f) && Owner.PlayerHasActiveSynergy("Keeper of the Coin")) { GameObject coinObject = SpawnManager.SpawnProjectile(LemonPig.coinProjectile.gameObject, Owner.CurrentGun.barrelOffset.position, Quaternion.Euler(0, 0, (Owner.CurrentGun == null) ? 0f : Owner.CurrentGun.CurrentAngle)); Projectile projectile = coinObject.gameObject.GetComponent <Projectile>(); if (projectile) { projectile.Owner = Owner; projectile.Shooter = Owner.specRigidbody; projectile.gameObject.AddComponent(new HomingModifier() { HomingRadius = 720, AngularVelocity = 180 }); } AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", gameObject); } }