public static void ApplyDirectLockdown(GameActor target, float duration, Color tintColour, Color deathTintColour, EffectResistanceType resistanceType, string identifier, bool tintsEnemy, bool tintsCorpse) { GameActorSpeedEffect lockdownToApply = new GameActorSpeedEffect { duration = duration, TintColor = tintColour, DeathTintColor = deathTintColour, effectIdentifier = identifier, AppliesTint = tintsEnemy, AppliesDeathTint = tintsCorpse, resistanceType = resistanceType, SpeedMultiplier = 0f, //Eh OverheadVFX = LockdownStatusEffect.lockdownVFXObject, AffectsEnemies = true, AffectsPlayers = false, AppliesOutlineTint = false, OutlineTintColor = tintColour, PlaysVFXOnActor = false, }; if (target && target.aiActor && target.healthHaver && target.healthHaver.IsAlive) { target.ApplyEffect(lockdownToApply, 1f, null); } }
// Token: 0x06000180 RID: 384 RVA: 0x00013DB8 File Offset: 0x00011FB8 public static GameActorSpeedEffect CopySpeedFrom(this GameActorSpeedEffect self, GameActorSpeedEffect other) { bool flag = self == null; if (flag) { self = new GameActorSpeedEffect(); } bool flag2 = other == null; GameActorSpeedEffect result; if (flag2) { result = null; } else { self.CopyEffectFrom(other); self.SpeedMultiplier = other.SpeedMultiplier; self.CooldownMultiplier = other.CooldownMultiplier; self.OnlyAffectPlayerWhenGrounded = other.OnlyAffectPlayerWhenGrounded; result = self; } return(result); }
public static T GetCopyOf <T>(this GameActorSpeedEffect obj, T other) where T : GameActorSpeedEffect { Type type = obj.GetType(); if (type != other.GetType()) { return(null); // type mis-match } PropertyInfo[] pinfos = type.GetProperties(); foreach (var pinfo in pinfos) { if (pinfo.CanWrite) { try { var value = pinfo.GetValue(other, null); // ETGModConsole.Log(pinfo.Name + value.ToString()); pinfo.SetValue(obj, pinfo.GetValue(other, null), null); } catch { } // In case of NotImplementedException being thrown. For some reason specifying that exception didn't seem to catch it, so I didn't catch anything specific. } } FieldInfo[] finfos = type.GetFields(); foreach (var finfo in finfos) { var value = finfo.GetValue(other); // ETGModConsole.Log(finfo.Name + value.ToString()); finfo.SetValue(obj, finfo.GetValue(other)); } return(obj as T); }
private void AddSlowEffect(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { Gun gun = ETGMod.Databases.Items["triple_crossbow"] as Gun; GameActorSpeedEffect gameActorSpeedEffect = gun.DefaultModule.projectiles[0].speedEffect; gameActorSpeedEffect.duration = 20f; arg2.aiActor.ApplyEffect(gameActorSpeedEffect, 1, null); arg2.gameActor.ApplyEffect(this.fireEffect, 1f, null); arg2.gameActor.ApplyEffect(this.charmEffect, 1f, null); }
public void SlowDown(Projectile projectile, SpeculativeRigidbody specrigbody, bool yes) { if (specrigbody && specrigbody.healthHaver && specrigbody.aiActor && specrigbody.healthHaver.IsAlive) { Gun gun = ETGMod.Databases.Items["triple_crossbow"] as Gun; GameActorSpeedEffect speedEffect = gun.DefaultModule.projectiles[0].speedEffect; speedEffect.duration = 5f; specrigbody.aiActor.ApplyEffect(speedEffect); } }
private void AddSlowEffect(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { if (arg2 != null && arg2.aiActor != null && Owner != null) { if (arg2 != null && arg2.healthHaver.IsAlive) { if (arg2.aiActor.EnemyGuid != "465da2bb086a4a88a803f79fe3a27677" && arg2.aiActor.EnemyGuid != "05b8afe0b6cc4fffa9dc6036fa24c8ec") { Gun gun = ETGMod.Databases.Items["triple_crossbow"] as Gun; GameActorSpeedEffect gameActorSpeedEffect = gun.DefaultModule.projectiles[0].speedEffect; ApplyDirectStatusEffects.ApplyDirectSlow(arg2.gameActor, 20f, gameActorSpeedEffect.SpeedMultiplier, Color.white, Color.white, EffectResistanceType.None, "Snail Bullets", false, false); } } } }
public static void Init() { string itemName = "Snare Bullets"; string resourceName = "Items/Resources/snare_bullets.png"; GameObject obj = new GameObject(itemName); var item = obj.AddComponent <SnareBullets>(); ItemBuilder.AddSpriteToObject(itemName, resourceName, obj); string shortDesc = "Catch and Keep"; string longDesc = "Shots may slow enemies.\n\n" + "To capture something, you must lure it in with something familiar."; ItemBuilder.SetupItem(item, shortDesc, longDesc, "cel"); item.chanceOfActivating = .1f; item.chanceFromBeamPerSecond = .1f; item.sprite.IsPerpendicular = true; Gun tripleCrossbow = ETGMod.Databases.Items["triple_crossbow"] as Gun; // new Gun().GetCopyOf(tripleCrossbow); var myEffect = new GameActorSpeedEffect(); foreach (var projmod in tripleCrossbow.RawSourceVolley.projectiles) { foreach (var proj in projmod.projectiles) { if (proj != null) { myEffect.GetCopyOf(proj.speedEffect); myEffect.duration = 10; } } } item.AppliesSpeedModifier = true; item.SpeedModifierEffect = myEffect; item.quality = PickupObject.ItemQuality.B; }
private void OnHitEnemy(Projectile arg1, SpeculativeRigidbody arg2, bool arg3) { if (bighead2 == 6) { base.StartCoroutine(this.HandleFear(gun.CurrentOwner as PlayerController, arg2)); } if (bighead2 == 5) { GameActorHealthEffect irradiatedLeadEffect = PickupObjectDatabase.GetById(204).GetComponent <BulletStatusEffectItem>().HealthModifierEffect; arg2.aiActor.ApplyEffect(irradiatedLeadEffect, 2f, arg1); } if (bighead2 == 2) { GameActorFireEffect hotLeadEffect = PickupObjectDatabase.GetById(295).GetComponent <BulletStatusEffectItem>().FireModifierEffect; arg2.aiActor.ApplyEffect(hotLeadEffect, 2f, arg1); } if (bighead2 == 1) { arg2.aiActor.healthHaver.ApplyDamage(1f * (gun.CurrentOwner as PlayerController).stats.GetStatValue(PlayerStats.StatType.Damage), Vector2.zero, "Erasure", CoreDamageTypes.None, DamageCategory.Normal, true, null, false); GlobalSparksDoer.DoRadialParticleBurst(50, arg2.specRigidbody.HitboxPixelCollider.UnitCenter, arg2.specRigidbody.HitboxPixelCollider.UnitCenter, 90f, 2f, 0f, null, null, Color.red, GlobalSparksDoer.SparksType.BLOODY_BLOOD); } if (bighead2 == 3) { arg2.aiActor.ApplyEffect(this.cheeseEffect, 3f, null); } if (bighead2 == 7) { GameActorCharmEffect charmingRoundsEffect = PickupObjectDatabase.GetById(527).GetComponent <BulletStatusEffectItem>().CharmModifierEffect; arg2.aiActor.ApplyEffect(charmingRoundsEffect, 3f, null); } if (bighead2 == 4) { GameActorFreezeEffect frostBulletsEffect = PickupObjectDatabase.GetById(278).GetComponent <BulletStatusEffectItem>().FreezeModifierEffect; arg2.aiActor.ApplyEffect(frostBulletsEffect, 3f, null); } if (bighead2 == 8) { GameActorSpeedEffect tripleCrossbowSlowEffect = (PickupObjectDatabase.GetById(381) as Gun).DefaultModule.projectiles[0].speedEffect; arg2.aiActor.ApplyEffect(tripleCrossbowSlowEffect, 3f, null); } }
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 static GameActorSpeedEffect GenerateLockdown(float duration = 4f) { GameActorSpeedEffect lockdownToApply = new GameActorSpeedEffect { duration = duration, TintColor = Color.grey, DeathTintColor = Color.grey, effectIdentifier = "Lockdown", AppliesTint = true, AppliesDeathTint = true, resistanceType = EffectResistanceType.None, SpeedMultiplier = 0f, //Eh OverheadVFX = LockdownStatusEffect.lockdownVFXObject, AffectsEnemies = true, AffectsPlayers = false, AppliesOutlineTint = false, OutlineTintColor = Color.grey, PlaysVFXOnActor = false, }; return(lockdownToApply); }
protected override void DoEffect(PlayerController user) { Exploder.DoDistortionWave(user.sprite.WorldCenter, 0.5f, 0.04f, 20f, 1.5f); List <AIActor> activeEnemies = this.LastOwner.CurrentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All); bool flag = activeEnemies != null; if (flag) { AkSoundEngine.PostEvent("Play_ENM_gorgun_gaze_01", base.gameObject); int count = activeEnemies.Count; for (int i = 0; i < count; i++) { bool flag2 = activeEnemies[i] && activeEnemies[i].HasBeenEngaged && activeEnemies[i].healthHaver && activeEnemies[i].IsNormalEnemy && !activeEnemies[i].healthHaver.IsDead && !activeEnemies[i].healthHaver.IsBoss && !activeEnemies[i].IsTransmogrified; if (flag2) { activeEnemies[i].CanTargetPlayers = false; activeEnemies[i].CanTargetEnemies = false; activeEnemies[i].MovementModifiers += this.NoMotionModifier; activeEnemies[i].RegisterOverrideColor(Color.grey, this.gameObject.name); if (activeEnemies[i].behaviorSpeculator) { activeEnemies[i].behaviorSpeculator.InterruptAndDisable(); //Uncomment this line if you want your item to disable ALL behaviors of the target enemy. } if (activeEnemies[i].spriteAnimator != null && activeEnemies[i].spriteAnimator.Library != null && activeEnemies[i].spriteAnimator.Library.clips != null) { foreach (tk2dSpriteAnimationClip clip in activeEnemies[i].spriteAnimator.Library.clips) { if (clip != null && clip.frames != null) { foreach (tk2dSpriteAnimationFrame frame in clip.frames) { if (frame != null && frame.invulnerableFrame) { frame.invulnerableFrame = false; } } } } } activeEnemies[i].ReflectsProjectilesWhileInvulnerable = false; activeEnemies[i].specRigidbody.ReflectProjectiles = false; activeEnemies[i].specRigidbody.ReflectBeams = false; activeEnemies[i].healthHaver.damageTypeModifiers.Clear(); activeEnemies[i].healthHaver.PreventAllDamage = false; } if (activeEnemies[i].healthHaver.IsBoss) { Gun gun = ETGMod.Databases.Items["triple_crossbow"] as Gun; GameActorSpeedEffect speedEffect = gun.DefaultModule.projectiles[0].speedEffect; speedEffect.duration = 15f; activeEnemies[i].ApplyEffect(speedEffect, 1f, null); base.StartCoroutine(this.TurnBossGrey(activeEnemies[i])); } } } if (user.CurrentRoom.IsShop) { foreach (BaseShopController controller in user.CurrentRoom.GetComponentsInRoom <BaseShopController>()) { controller.SetCapableOfBeingStolenFrom(true, "AegisShield", new float?(15f)); this.TurnShopkeeperGrey(controller); } } }
private void F**K() { PlayerController player = this.gun.CurrentOwner as PlayerController; bool flag = !Assigned; if (flag) { Assigned = true; int T = T1; if (T == 0) { gun.SetBaseMaxAmmo(450); gun.ammo = 450; gun.reloadTime = 1.1f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[341]).DefaultModule.projectiles[0]; PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetration = 1; BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>(); bounceProj.numberOfBounces = 0; } if (T == 1) { gun.SetBaseMaxAmmo(150); gun.ammo = 150; gun.reloadTime = 1.8f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[336]).DefaultModule.projectiles[0]; PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetration = 0; gun.DefaultModule.projectiles[0].AppliesFire = false; AIActor Grenat = EnemyDatabase.GetOrLoadByGuid("b4666cb6ef4f4b038ba8924fd8adf38f"); ExplosiveModifier GetFucked = gun.DefaultModule.projectiles[0].gameObject.AddComponent <ExplosiveModifier>(); ExplosionData die = new ExplosionData { damageRadius = 1.5f, damageToPlayer = 0f, doDamage = true, damage = 20f, doExplosionRing = true, doDestroyProjectiles = true, doForce = true, debrisForce = 5f, pushRadius = 1.6f, force = 8f, preventPlayerForce = true, explosionDelay = 0f, usesComprehensiveDelay = false, doScreenShake = false, playDefaultSFX = true, effect = Grenat.GetComponent <ExplodeOnDeath>().explosionData.effect //VFX_Explosion_Tiny, VFX_Explosion_Newtiny BOTH IN SHARED_AUTO }; GetFucked.explosionData = die; } if (T == 2) { gun.SetBaseMaxAmmo(600); gun.ammo = 600; gun.reloadTime = 1.4f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[229]).DefaultModule.projectiles[0]; } if (T == 3) { gun.SetBaseMaxAmmo(100); gun.ammo = 100; gun.reloadTime = 1.25f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[27]).DefaultModule.projectiles[0]; gun.DefaultModule.projectiles[0].baseData.damage *= 8.57142857143f; PierceProjModifier orAddComponent = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <PierceProjModifier>(); orAddComponent.penetratesBreakables = true; orAddComponent.penetration = 10000; } if (T == 4) { gun.SetBaseMaxAmmo(800); gun.ammo = 800; gun.reloadTime = 0f; LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(Types[T]).gameObject, player); gun.DefaultModule.projectiles[0] = ((Gun)ETGMod.Databases.Items[124]).DefaultModule.projectiles[0]; gun.DefaultModule.projectiles[0].baseData.damage *= 0.6f; } int K1 = 0; if (K1 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); HomingModifier homingModifier = gun.DefaultModule.projectiles[0].gameObject.AddComponent <HomingModifier>(); homingModifier.HomingRadius = 5f; homingModifier.AngularVelocity = 50f; } if (K1 == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); gun.DefaultModule.projectiles[0].AdditionalScaleMultiplier *= 1.25f; } if (K1 == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); Gun tripleCrossbow = ETGMod.Databases.Items["triple_crossbow"] as Gun; var myEffect = new GameActorSpeedEffect(); foreach (var projmod in tripleCrossbow.RawSourceVolley.projectiles) { foreach (var proj in projmod.projectiles) { if (proj != null) { myEffect.GetCopyOf(proj.speedEffect); myEffect.duration = 10; } } } gun.DefaultModule.projectiles[0].AppliesSpeedModifier = true; gun.DefaultModule.projectiles[0].speedEffect = myEffect; gun.DefaultModule.projectiles[0].SpeedApplyChance = .4f; } if (K1 == 3) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsUni[K1]).gameObject, player); gun.SetBaseMaxAmmo(Convert.ToInt32((gun.GetBaseMaxAmmo() * 1.25f))); gun.ammo = gun.GetBaseMaxAmmo(); } int K2; if (T == 0) { K2 = 1; if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].baseData.damage *= 1.35f; Mono.DefaultModule.cooldownTime *= 1.25f; } if (K2 == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>(); bounceProj.numberOfBounces += 2; } if (K2 == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); Mono.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Burst; Mono.DefaultModule.burstShotCount = 5; Mono.DefaultModule.burstCooldownTime = .05f; Mono.DefaultModule.cooldownTime = .4f; } if (K2 == 3) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].AppliesPoison = true; gun.DefaultModule.projectiles[0].healthEffect = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect; gun.DefaultModule.projectiles[0].PoisonApplyChance = .25f; } } if (T == 1) { K2 = UnityEngine.Random.Range(0, 4); //Blazing, toxic, flare, burst if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); gun.DefaultModule.projectiles[0].OnDestruction += this.FirePool; } if (K2 == 1) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); gun.DefaultModule.projectiles[0].OnDestruction += this.VenomPool; gun.DefaultModule.projectiles[0].DefaultTintColor = new Color(78 / 100f, 5 / 100f, 120 / 100f); gun.DefaultModule.projectiles[0].HasDefaultTint = true; } if (K2 == 2) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); gun.DefaultModule.projectiles[0].OnDestruction += Flares; } if (K2 == 3) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsFire[K2]).gameObject, player); Mono.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Burst; Mono.DefaultModule.burstShotCount = 5; Mono.DefaultModule.burstCooldownTime = .2f; Mono.DefaultModule.cooldownTime = 1f; } } if (T == 2) { //High-caliber, ricochet, burst, poison K2 = UnityEngine.Random.Range(0, 5); if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].baseData.damage *= 3f; Mono.DefaultModule.cooldownTime *= 2f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); BounceProjModifier bounceProj = gun.DefaultModule.projectiles[0].gameObject.GetOrAddComponent <BounceProjModifier>(); bounceProj.numberOfBounces += 2; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); Mono.DefaultModule.shootStyle = ProjectileModule.ShootStyle.Burst; Mono.DefaultModule.burstShotCount = 5; Mono.DefaultModule.burstCooldownTime = .05f; Mono.DefaultModule.cooldownTime = .4f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsGunSaw[K2]).gameObject, player); gun.DefaultModule.projectiles[0].AppliesPoison = true; gun.DefaultModule.projectiles[0].healthEffect = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect; gun.DefaultModule.projectiles[0].PoisonApplyChance = .25f; } } if (T == 3) { //Quick, power up, sidearm K2 = UnityEngine.Random.Range(0, 4); if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player); Mono.reloadTime *= .6f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player); Mono.DefaultModule.projectiles[0].baseData.damage *= 1.25f; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRail[K2]).gameObject, player); Mono.DefaultModule.numberOfShotsInClip = 5; Mono.DefaultModule.projectiles[0].baseData.damage *= .33f; } } if (T == 4) { //Critical, backshot, chain gun K2 = UnityEngine.Random.Range(0, 4); if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player); gun.PostProcessProjectile += Proj; } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player); GunVolleyModificationItem.AddDuplicateOfBaseModule(gun.Volley, player, 1, 7.35f, 180); } if (K2 == 0) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(KeyWordsRapid[K2]).gameObject, player); Mono.SetBaseMaxAmmo(Mono.GetBaseMaxAmmo() * 2); Mono.ammo = Mono.GetBaseMaxAmmo(); Mono.DefaultModule.cooldownTime = .001f; } } } }
public static void InitCustomEffects() { FriendlyWebGoopSpeedMod = new GameActorSpeedEffect { duration = 1, TintColor = tripleCrossbowSlowEffect.TintColor, DeathTintColor = tripleCrossbowSlowEffect.DeathTintColor, effectIdentifier = "FriendlyWebSlow", AppliesTint = false, AppliesDeathTint = false, resistanceType = EffectResistanceType.None, SpeedMultiplier = 0.40f, //Eh OverheadVFX = null, AffectsEnemies = true, AffectsPlayers = false, AppliesOutlineTint = false, OutlineTintColor = tripleCrossbowSlowEffect.OutlineTintColor, PlaysVFXOnActor = false, }; HoneySpeedMod = new GameActorSpeedEffect { duration = 1, TintColor = tripleCrossbowSlowEffect.TintColor, DeathTintColor = tripleCrossbowSlowEffect.DeathTintColor, effectIdentifier = "HoneySlow", AppliesTint = false, AppliesDeathTint = false, resistanceType = EffectResistanceType.None, SpeedMultiplier = 0.60f, //Eh OverheadVFX = tripleCrossbowSlowEffect.OverheadVFX, AffectsEnemies = true, AffectsPlayers = true, AppliesOutlineTint = false, OutlineTintColor = tripleCrossbowSlowEffect.OutlineTintColor, PlaysVFXOnActor = false, }; FriendlyHoneySpeedMod = new GameActorSpeedEffect { duration = 1, TintColor = tripleCrossbowSlowEffect.TintColor, DeathTintColor = tripleCrossbowSlowEffect.DeathTintColor, effectIdentifier = "HoneySlow", AppliesTint = false, AppliesDeathTint = false, resistanceType = EffectResistanceType.None, SpeedMultiplier = 0.60f, //Eh OverheadVFX = tripleCrossbowSlowEffect.OverheadVFX, AffectsEnemies = true, AffectsPlayers = false, AppliesOutlineTint = false, OutlineTintColor = tripleCrossbowSlowEffect.OutlineTintColor, PlaysVFXOnActor = false, }; PropulsionGoopSpeedMod = new GameActorSpeedEffect { duration = 1, TintColor = tripleCrossbowSlowEffect.TintColor, DeathTintColor = tripleCrossbowSlowEffect.DeathTintColor, effectIdentifier = "PropulsionGoopSpeed", AppliesTint = false, AppliesDeathTint = false, resistanceType = EffectResistanceType.None, SpeedMultiplier = 1.40f, //Eh OverheadVFX = null, AffectsEnemies = true, AffectsPlayers = true, AppliesOutlineTint = false, OutlineTintColor = tripleCrossbowSlowEffect.OutlineTintColor, PlaysVFXOnActor = false, }; }