protected void Update() { PlayerController player = gun.CurrentOwner as PlayerController; if (player && player != null) { if (gun.PreventNormalFireAudio != true) { gun.PreventNormalFireAudio = true; } if (!gun.IsReloading && HasReloaded == false) { HasReloaded = true; } if (player.HasPickupID(205) || player.HasPickupID(313) || player.HasPickupID(815)) { DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(Alchemiser.goopDefs[0]).TimedAddGoopCircle(player.sprite.WorldBottomCenter, 1f, 0.25f, false); if (HasImmunity == false) { HasImmunity = true; this.m_poisonImmunity = new DamageTypeModifier(); this.m_poisonImmunity.damageMultiplier = 0f; this.m_poisonImmunity.damageType = CoreDamageTypes.Poison; player.healthHaver.damageTypeModifiers.Add(this.m_poisonImmunity); } } } }
public void Start() { if (fireImmunity == null) { fireImmunity = new DamageTypeModifier(); fireImmunity.damageMultiplier = 0; fireImmunity.damageType = CoreDamageTypes.Fire; } if (SpeedBuff == null) { SpeedBuff = new StatModifier(); SpeedBuff.statToBoost = PlayerStats.StatType.MovementSpeed; SpeedBuff.amount = 2f; SpeedBuff.modifyType = StatModifier.ModifyMethod.ADDITIVE; } if (DamageBuff == null) { DamageBuff = new StatModifier(); DamageBuff.statToBoost = PlayerStats.StatType.Damage; DamageBuff.amount = 1.25f; DamageBuff.modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE; } if (target) { GoldenEffectStart(target); } timer = 60; }
public override void Pickup(PlayerController player) { base.Pickup(player); this.m_electricityImmunity = new DamageTypeModifier(); this.m_electricityImmunity.damageMultiplier = 0f; this.m_electricityImmunity.damageType = CoreDamageTypes.Electric; player.healthHaver.damageTypeModifiers.Add(this.m_electricityImmunity); }
public override void OnApplied() { player.OnPreDodgeRoll += AntiRoll; fireWeakness = new DamageTypeModifier { damageMultiplier = 2f, damageType = CoreDamageTypes.Fire }; player.healthHaver.damageTypeModifiers.Add(fireWeakness); }
public override void Pickup(PlayerController player) { player.PostProcessProjectile += this.onFired; player.OnAnyEnemyReceivedDamage += this.SpawnCasingSynergy; player.PostProcessBeam += this.onFiredBeam; this.m_poisonImmunity = new DamageTypeModifier(); this.m_poisonImmunity.damageMultiplier = 0f; this.m_poisonImmunity.damageType = CoreDamageTypes.Poison; player.healthHaver.damageTypeModifiers.Add(this.m_poisonImmunity); base.Pickup(player); }
public override void Pickup(PlayerController player) { if (m_poisonImmunity == null) { this.m_poisonImmunity = new DamageTypeModifier(); this.m_poisonImmunity.damageMultiplier = 0f; this.m_poisonImmunity.damageType = CoreDamageTypes.Poison; } player.healthHaver.damageTypeModifiers.Add(this.m_poisonImmunity); base.Pickup(player); }
//private DamageTypeModifier m_poisonMultiplier; public void AIActorMods(AIActor target) { this.m_fireMultiplier = new DamageTypeModifier(); this.m_fireMultiplier.damageMultiplier = 3f; this.m_fireMultiplier.damageType = CoreDamageTypes.Fire; target.healthHaver.damageTypeModifiers.Add(this.m_fireMultiplier); /*this.m_poisonMultiplier = new DamageTypeModifier(); * this.m_poisonMultiplier.damageMultiplier = 300f; * this.m_poisonMultiplier.damageType = CoreDamageTypes.; * target.healthHaver.damageTypeModifiers.Add(this.m_poisonMultiplier);*/ }
protected void Update() { PlayerController player = gun.CurrentOwner as PlayerController; if (gun.CurrentOwner) { bool flag5 = this.gun.CurrentOwner != null && this.gun.CurrentOwner is PlayerController; if (flag5) { this.lastOwner = (this.gun.CurrentOwner as PlayerController); bool flag6 = this.electricityImmunity == null; if (flag6) { this.electricityImmunity = new DamageTypeModifier { damageMultiplier = 0f, damageType = CoreDamageTypes.Electric }; this.lastOwner.healthHaver.damageTypeModifiers.Add(this.electricityImmunity); } } else { bool flag7 = this.electricityImmunity != null; if (flag7) { this.lastOwner.healthHaver.damageTypeModifiers.Remove(this.electricityImmunity); this.electricityImmunity = null; } } if (!gun.IsReloading && !HasReloaded) { this.HasReloaded = true; } if (gun.PreventNormalFireAudio) { this.gun.PreventNormalFireAudio = true; } } }
public override void Pickup(PlayerController player) { base.Pickup(player); //Setup Immunities this.m_poisonImmunity = new DamageTypeModifier(); this.m_poisonImmunity.damageMultiplier = 0f; this.m_poisonImmunity.damageType = CoreDamageTypes.Poison; player.healthHaver.damageTypeModifiers.Add(this.m_poisonImmunity); this.m_fireImmunity = new DamageTypeModifier(); this.m_fireImmunity.damageMultiplier = 0f; this.m_fireImmunity.damageType = CoreDamageTypes.Fire; player.healthHaver.damageTypeModifiers.Add(this.m_fireImmunity); //Make immune to pits player.ImmuneToPits.SetOverride("ShadeHeart", true, null); //Add flight player.SetIsFlying(true, "Shadeheart", false, false); player.AdditionalCanDodgeRollWhileFlying.AddOverride("Shadeheart", null); }
public static void PanaceaUseHook(Action <Panacea, PlayerController> orig, Panacea self, PlayerController user) { orig(self, user); List <int> OptionalItemIDs = new List <int> { 64, 174, 267, 168, 205, 427, 426, 424 }; bool hasMysteriousBrewSynergy = false; foreach (PlayerItem active in user.activeItems) { if (OptionalItemIDs.Contains(active.PickupObjectId)) { hasMysteriousBrewSynergy = true; } } foreach (PassiveItem passive in user.passiveItems) { if (OptionalItemIDs.Contains(passive.PickupObjectId)) { hasMysteriousBrewSynergy = true; } } if (hasMysteriousBrewSynergy) { int value = UnityEngine.Random.Range(1, 9); string header = ""; string text = ""; if (value == 1) { header = "?"; text = "Nothing happened."; } else if (value == 2) { header = "Invigorated"; text = "You feel healthier."; StatModifier mod = new StatModifier { statToBoost = PlayerStats.StatType.Health, amount = 1, modifyType = StatModifier.ModifyMethod.ADDITIVE, }; user.ownerlessStatModifiers.Add(mod); user.stats.RecalculateStats(user, true, false); } else if (value == 3) { header = "Overloaded"; text = "The brew explodes."; Exploder.DoDefaultExplosion(user.sprite.WorldCenter, new Vector2()); } else if (value == 4) { header = "Pathetic"; text = "You feel weaker."; StatModifier mod = new StatModifier { statToBoost = PlayerStats.StatType.Damage, amount = -0.20f, modifyType = StatModifier.ModifyMethod.ADDITIVE, }; StatModifier mod2 = new StatModifier { statToBoost = PlayerStats.StatType.ThrownGunDamage, amount = 0, modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE, }; user.ownerlessStatModifiers.Add(mod); user.ownerlessStatModifiers.Add(mod2); user.stats.RecalculateStats(user, true, false); } else if (value == 5) { header = "Fast Reaction"; text = "Bullets are slow to you."; StatModifier mod2 = new StatModifier { statToBoost = PlayerStats.StatType.EnemyProjectileSpeedMultiplier, amount = 0.90f, modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE, }; user.ownerlessStatModifiers.Add(mod2); user.stats.RecalculateStats(user, true, false); } else if (value == 6) { header = "Slow Hands"; text = "Slower charge and reload."; StatModifier mod2 = new StatModifier { statToBoost = PlayerStats.StatType.ReloadSpeed, amount = 0.10f, modifyType = StatModifier.ModifyMethod.ADDITIVE, }; StatModifier mod1 = new StatModifier { statToBoost = PlayerStats.StatType.ChargeAmountMultiplier, amount = -0.10f, modifyType = StatModifier.ModifyMethod.ADDITIVE, }; user.ownerlessStatModifiers.Add(mod2); user.ownerlessStatModifiers.Add(mod1); user.stats.RecalculateStats(user, true, false); } else if (value == 7) { header = "Flammable"; text = "You feel vulnerable to fire."; DamageTypeModifier mod = new DamageTypeModifier { damageType = CoreDamageTypes.Fire, damageMultiplier = 2 }; user.healthHaver.damageTypeModifiers.Add(mod); } else if (value == 8) { header = "Obsidian Skin"; text = "You feel immune to fire."; DamageTypeModifier mod = new DamageTypeModifier { damageType = CoreDamageTypes.Fire, damageMultiplier = 0 }; user.healthHaver.damageTypeModifiers.Add(mod); } else if (value == 9) { header = "Bulletproof"; text = "You feel almost invulnerable!"; void ModifyDamageEvent(HealthHaver healthHaver, HealthHaver.ModifyDamageEventArgs args) { if (args == EventArgs.Empty) { return; } if (UnityEngine.Random.value < 0.2f) { args.ModifiedDamage = 0f; } } user.healthHaver.ModifyDamage += ModifyDamageEvent; } NoPseudosynergiesModule.Notify(header, text, self.sprite); } }
protected override void Update() { if (m_poisonImmunity == null) { m_poisonImmunity = new DamageTypeModifier(); m_poisonImmunity.damageMultiplier = 0f; m_poisonImmunity.damageType = CoreDamageTypes.Poison; } if (m_fireImmunity == null) { m_fireImmunity = new DamageTypeModifier(); m_fireImmunity.damageMultiplier = 0f; m_fireImmunity.damageType = CoreDamageTypes.Fire; } if (m_electricityImmunity == null) { m_electricityImmunity = new DamageTypeModifier(); m_electricityImmunity.damageMultiplier = 0f; m_electricityImmunity.damageType = CoreDamageTypes.Electric; } if (machoDamageMod == null) { machoDamageMod = new StatModifier(); machoDamageMod.statToBoost = PlayerStats.StatType.Damage; machoDamageMod.modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE; machoDamageMod.amount = 1.3f; } if (this.m_extantOrbital != null && this.Owner != null) { if (this.m_extantOrbital.GetComponent <PlayerOrbital>().orbitRadius != overrideOrbitalDistance) { this.m_extantOrbital.GetComponent <PlayerOrbital>().orbitRadius = overrideOrbitalDistance; } if (this.m_extantOrbital.GetComponent <PlayerOrbital>().orbitDegreesPerSecond != overrideOrbitalSpeed) { this.m_extantOrbital.GetComponent <PlayerOrbital>().orbitDegreesPerSecond = overrideOrbitalSpeed; } if (this.m_extantOrbital.GetComponent <PlayerOrbital>().perfectOrbitalFactor != overridePerfectOrbitalFactor) { this.m_extantOrbital.GetComponent <PlayerOrbital>().perfectOrbitalFactor = overridePerfectOrbitalFactor; } if (this.m_extantOrbital.GetComponent <tk2dSprite>().renderer.material.shader != ShaderCache.Acquire("Brave/Internal/RainbowChestShader")) { this.m_extantOrbital.GetComponent <tk2dSprite>().sprite.renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); this.m_extantOrbital.GetComponent <tk2dSprite>().sprite.renderer.material.SetFloat("_AllColorsToggle", 1f); } if (canReselectGuonState && Owner) { canReselectGuonState = false; ReSelectGuonState(); Invoke("resetGuonStateCooldown", 5f); } if (Owner && Owner.IsInCombat && Owner.specRigidbody.Velocity == Vector2.zero && canFireCyanProjectile) { if (RandomlySelectedGuonState == GuonState.CYAN) { FireProjectileFromGuon(CyanGuonStone.cyanGuonProj.gameObject, true, true, 1, 0, 5, true); canFireCyanProjectile = false; if (Owner.PlayerHasActiveSynergy("Rainbower Guon Stone")) { Invoke("resetCyanFireCooldown", 0.16f); } else { Invoke("resetCyanFireCooldown", 0.35f); } } } if (Owner && Owner.IsInCombat && canFireOrangeProjectile) { if (RandomlySelectedGuonState == GuonState.ORANGE) { canFireOrangeProjectile = false; if (Owner.PlayerHasActiveSynergy("Rainbower Guon Stone")) { FireProjectileFromGuon(mockOrangeGuonProj.gameObject, true, true, 1.6f); Invoke("resetOrangeFireCooldown", 0.5f); } else { FireProjectileFromGuon(mockOrangeGuonProj.gameObject, true, true, 1); Invoke("resetOrangeFireCooldown", 1f); } } } } base.Update(); }