Beispiel #1
0
        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;
 }
Beispiel #3
0
        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);
 }
Beispiel #6
0
 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);
 }
Beispiel #7
0
        //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);*/
        }
Beispiel #8
0
        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);
        }
Beispiel #10
0
            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);
                }
            }
Beispiel #11
0
        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();
        }