예제 #1
0
        private void HandleEffect(HealthHaver source, HealthHaver.ModifyDamageEventArgs args)
        {
            bool flag = args == EventArgs.Empty;

            if (!flag)
            {
                bool flag2 = args.ModifiedDamage <= 0f;
                if (!flag2)
                {
                    bool flag3 = !source.IsVulnerable;
                    if (!flag3)
                    {
                        bool dmgcheck = damageInstances < 2;
                        if (dmgcheck)
                        {
                            bool flag4 = base.Owner;
                            if (flag4)
                            {
                                AkSoundEngine.PostEvent("Play_BOSS_agunim_ribbons_01", gameObject);
                                source.StartCoroutine("IncorporealityOnHit");
                                source.TriggerInvulnerabilityPeriod(-1f);
                                args.ModifiedDamage   = 0f;
                                this.damageInstances += 1;
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        private void HandleEffect(HealthHaver source, HealthHaver.ModifyDamageEventArgs args)
        {
            bool flag = args == EventArgs.Empty;

            if (!flag)
            {
                bool flag2 = args.ModifiedDamage <= 0f;
                if (!flag2)
                {
                    bool flag3 = !source.IsVulnerable;
                    if (!flag3)
                    {
                        bool flag4 = base.LastOwner;
                        if (flag4)
                        {
                            AkSoundEngine.PostEvent("Play_BOSS_spacebaby_charge_01", base.gameObject);
                            source.StartCoroutine("IncorporealityOnHit");
                            source.TriggerInvulnerabilityPeriod(-1f);
                            args.ModifiedDamage = 0f;
                            ApplyStat(base.LastOwner, PlayerStats.StatType.Damage, 0.96f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.ReloadSpeed, 1.04f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.RateOfFire, 1.04f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            //ApplyStat(base.LastOwner, PlayerStats.StatType.DodgeRollDistanceMultiplier, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
                            //ApplyStat(base.LastOwner, PlayerStats.StatType.DodgeRollSpeedMultiplier, UnityEngine.Random.Range(1.25f, 0.75f), StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.DamageToBosses, 0.96f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.MovementSpeed, 0.96f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.Accuracy, 1.06f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.KnockbackMultiplier, 0.96f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                            ApplyStat(base.LastOwner, PlayerStats.StatType.RangeMultiplier, 0.96f, StatModifier.ModifyMethod.MULTIPLICATIVE);
                        }
                    }
                }
            }
        }
예제 #3
0
        private void HandleEffect(HealthHaver source, HealthHaver.ModifyDamageEventArgs args)
        {
            if (args == EventArgs.Empty)
            {
                return;
            }

            if (args.ModifiedDamage <= 0f)
            {
                return;
            }

            if (!source.IsVulnerable)
            {
                return;
            }

            if (Owner)
            {
                source.StartCoroutine("IncorporealityOnHit");
                source.TriggerInvulnerabilityPeriod(-1f);
                args.ModifiedDamage = 0f;
                damageInstances    += 1;
                DoMicroBlank((!source.specRigidbody) ? source.transform.position.XY() : source.specRigidbody.UnitCenter);
            }
        }
예제 #4
0
        private void HandleEffect(HealthHaver source, HealthHaver.ModifyDamageEventArgs args)
        {
            bool flag = args == EventArgs.Empty;

            if (!flag)
            {
                bool flag2 = args.ModifiedDamage <= 0f;
                if (!flag2)
                {
                    bool flag3 = !source.IsVulnerable;
                    if (!flag3)
                    {
                        bool flag4 = base.Owner;
                        if (flag4)
                        {
                            PlayerController player = base.Owner as PlayerController;
                            bool             actuallygonnafuckingdie = ((double)player.healthHaver.GetCurrentHealth() == 1 && player.healthHaver.Armor == 0f) || player.healthHaver.GetCurrentHealth() == 0f && player.healthHaver.Armor == 2f || ((double)player.healthHaver.GetCurrentHealth() == 0.5f && player.healthHaver.Armor == 0f) || player.healthHaver.GetCurrentHealth() == 0f && player.healthHaver.Armor == 1f;
                            if (actuallygonnafuckingdie)
                            {
                                source.StartCoroutine("IncorporealityOnHit");
                                source.TriggerInvulnerabilityPeriod(-1f);
                                args.ModifiedDamage = 0f;
                                AkSoundEngine.PostEvent("Play_ENM_darken_world_01", gameObject);
                                float num = 0f;
                                num = (player.stats.GetStatValue(PlayerStats.StatType.Health));
                                ApplyStat(player, PlayerStats.StatType.Health, (-num) + 1, StatModifier.ModifyMethod.ADDITIVE);
                                ApplyStat(player, PlayerStats.StatType.Curse, 1.5f, StatModifier.ModifyMethod.ADDITIVE);
                                player.healthHaver.FullHeal();
                                player.IsOnFire = false;
                                if (player.characterIdentity == PlayableCharacters.Robot)
                                {
                                    player.healthHaver.Armor = 3f;
                                }
                                base.StartCoroutine(this.Weeee());
                            }
                        }
                    }
                }
            }
        }