public void BlankModHook(Action <SilencerInstance, BlankModificationItem, Vector2, PlayerController> orig, SilencerInstance silencer, BlankModificationItem bmi, Vector2 centerPoint, PlayerController user) { orig(silencer, bmi, centerPoint, user); if (user.HasPickupID(AmmolockID)) { GameActorSpeedEffect Lockdown = StatusEffectHelper.GenerateLockdown(10); RoomHandler currentRoom = user.CurrentRoom; List <AIActor> activeEnemies = currentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All); if (activeEnemies != null) { for (int i = 0; i < activeEnemies.Count; i++) { AIActor aiactor = activeEnemies[i]; aiactor.gameActor.ApplyEffect(Lockdown, 1f, null); if (user.PlayerHasActiveSynergy("Under Lock And Key") && aiactor.healthHaver) { aiactor.healthHaver.ApplyDamage(7 * user.carriedConsumables.KeyBullets, Vector2.zero, "Under Lock And Key"); } } } } }
public override void PostProcessProjectile(Projectile projectile) { base.PostProcessProjectile(projectile); switch (currentMode) { case 1: //Increase EnemyScaleUpdaterMod scaleIncrease = projectile.gameObject.GetOrAddComponent <EnemyScaleUpdaterMod>(); scaleIncrease.targetScale = new Vector2(1.25f, 1.25f); scaleIncrease.multiplyExisting = true; scaleIncrease.addScaleEffectsToEnemy = true; break; case 2: //Decrease EnemyScaleUpdaterMod scaleDecrease = projectile.gameObject.GetOrAddComponent <EnemyScaleUpdaterMod>(); scaleDecrease.targetScale = new Vector2(0.75f, 0.75f); scaleDecrease.multiplyExisting = true; scaleDecrease.addScaleEffectsToEnemy = true; break; case 3: //ApplyStatus StatusEffectBulletMod effectMod = projectile.gameObject.AddComponent <StatusEffectBulletMod>(); effectMod.pickRandom = true; effectMod.datasToApply.AddRange(new List <StatusEffectBulletMod.StatusData>() { new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.chaosBulletsFreeze, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.charmingRoundsEffect, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.greenFireEffect, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.StandardPlagueEffect, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.tripleCrossbowSlowEffect, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.hotLeadEffect, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StaticStatusEffects.irradiatedLeadEffect, applyChance = 1, applyTint = false, }, new StatusEffectBulletMod.StatusData() { effect = StatusEffectHelper.GenerateLockdown(4), applyChance = 1, applyTint = false, }, }); break; case 4: //SpawnKin SpawnEnemyOnDestructionMod kinSpawn = projectile.gameObject.GetOrAddComponent <SpawnEnemyOnDestructionMod>(); kinSpawn.pickRandom = true; kinSpawn.EnemiesToSpawn.AddRange(new List <string>() { EnemyGuidDatabase.Entries["bullet_kin"], EnemyGuidDatabase.Entries["mutant_bullet_kin"], EnemyGuidDatabase.Entries["cardinal"], EnemyGuidDatabase.Entries["shroomer"], EnemyGuidDatabase.Entries["ashen_bullet_kin"], EnemyGuidDatabase.Entries["fallen_bullet_kin"], EnemyGuidDatabase.Entries["ak47_bullet_kin"], EnemyGuidDatabase.Entries["bandana_bullet_kin"], EnemyGuidDatabase.Entries["veteran_bullet_kin"], EnemyGuidDatabase.Entries["treadnaughts_bullet_kin"], EnemyGuidDatabase.Entries["brollet"], EnemyGuidDatabase.Entries["skullet"], EnemyGuidDatabase.Entries["skullmet"], EnemyGuidDatabase.Entries["gummy_spent"], EnemyGuidDatabase.Entries["red_shotgun_kin"], EnemyGuidDatabase.Entries["blue_shotgun_kin"], EnemyGuidDatabase.Entries["veteran_shotgun_kin"], EnemyGuidDatabase.Entries["mutant_shotgun_kin"], EnemyGuidDatabase.Entries["executioner"], EnemyGuidDatabase.Entries["ashen_shotgun_kin"], EnemyGuidDatabase.Entries["bullat"], EnemyGuidDatabase.Entries["shotgat"], EnemyGuidDatabase.Entries["grenat"], EnemyGuidDatabase.Entries["spirat"], EnemyGuidDatabase.Entries["grenade_kin"], EnemyGuidDatabase.Entries["dynamite_kin"], EnemyGuidDatabase.Entries["m80_kin"], EnemyGuidDatabase.Entries["tazie"], EnemyGuidDatabase.Entries["rubber_kin"], EnemyGuidDatabase.Entries["sniper_shell"], EnemyGuidDatabase.Entries["professional"], }); break; case 5: //SpawnTable SpawnGameObjectOnDestructionMod tableSpawn = projectile.gameObject.GetOrAddComponent <SpawnGameObjectOnDestructionMod>(); tableSpawn.objectsToPickFrom.AddRange(new List <GameObject>() { EasyPlaceableObjects.TableVertical, EasyPlaceableObjects.TableHorizontal, EasyPlaceableObjects.TableHorizontalStone, EasyPlaceableObjects.TableVerticalStone, EasyPlaceableObjects.FoldingTable, }); break; case 6: //SpawnBarrel SpawnGameObjectOnDestructionMod barrelSpawn = projectile.gameObject.GetOrAddComponent <SpawnGameObjectOnDestructionMod>(); barrelSpawn.objectsToPickFrom.AddRange(new List <GameObject>() { EasyPlaceableObjects.ExplosiveBarrel, EasyPlaceableObjects.MetalExplosiveBarrel, EasyPlaceableObjects.OilBarrel, EasyPlaceableObjects.PoisonBarrel, EasyPlaceableObjects.WaterBarrel }); break; case 7: //Erase EraseEnemyBehav erase = projectile.gameObject.GetOrAddComponent <EraseEnemyBehav>(); erase.doSparks = true; break; } }