public override bool HandleEvent(AttackerDealingDamageEvent E)
        {
            if (E.Actor == ParentObject && ParentObject.HasEffect("AstralTabbyStance"))
            {
                E.Damage.Amount = (E.Damage.Amount / 2);
            }

            return(base.HandleEvent(E));
        }
        public override bool HandleEvent(AttackerDealingDamageEvent E)
        {
            try
            {
                var Parent = E.Actor == ParentObject;
                var Target = E.Object;

                Body body = ParentObject.GetPart("Body") as Body;

                var ParentsAgility = ParentObject.StatMod("Ego");
                var ParentsLevel   = ParentObject.Statistics["Level"].BaseValue;

                List <BodyPart> hands = body.GetPart("Hand");

                if (E.Actor == ParentObject && (E.Weapon.HasPart("MartialConditioningFistMod") || E.Weapon.Blueprint == "DefaultMartialFist" || E.Weapon.HasPart("NaturalGear") || E.Weapon.HasPropertyOrTag("WeaponUnarmed")))
                {
                    // AddPlayerMessage("Accessing Damage System.s");

                    foreach (BodyPart hand in hands)
                    {
                        try
                        {
                            // AddPlayerMessage("Accessing Damage System. A");

                            if (Parent && Target.HasPart("Brain") && Target.HasPart("Combat"))
                            {
                                var FistDamage = E.Damage.Amount;

                                E.Damage.Amount = (int)Math.Round(E.Damage.Amount + ((CurrentComboICounter * 0.025) * E.Damage.Amount));
                            }
                            else if (Stat.Random(1, 100) < CurrentComboICounter && Parent && hand.DefaultBehavior.HasPart("MartialConditioningFistMod") && ParentObject.HasSkill("WM_MMA_CombinationStrikesII") && Target.HasPart("Brain") && Target.HasPart("Combat"))
                            {
                                E.Damage.Amount = (int)Math.Round(E.Damage.Amount + ((CurrentComboICounter * 0.050) * E.Damage.Amount));
                            }
                        }
                        catch
                        {
                            return(base.HandleEvent(E));
                        }
                    }
                }
            }
            catch
            { }
            return(base.HandleEvent(E));
        }
Exemple #3
0
        public override bool HandleEvent(AttackerDealingDamageEvent E)
        {
            var Parent  = E.Actor;
            var Target  = E.Object;
            var eDamage = E.Damage;

            var ParentsLevel = Parent.Statistics["Level"].BaseValue;

            if (Parent.HasPart("MartialBody") && Parent == Object && Parent.HasEffect("DawnStance") && eDamage.HasAttribute("Fire"))
            {
                var ComboSystem = Object.GetPart <WM_MMA_CombinationStrikesI>();

                eDamage.Amount = (int)Math.Round(eDamage.Amount + ((ComboSystem.CurrentComboICounter * 0.025) * E.Damage.Amount));
            }

            return(base.HandleEvent(E));
        }
Exemple #4
0
        public override bool HandleEvent(AttackerDealingDamageEvent E)
        {
            try
            {
                var Attacker    = E.Object;
                var Defender    = E.Actor;
                var ElectroHook = ParentObject.GetPart <Electrokinesis>();

                var WeaponMeleeHook = E.Weapon.GetPart <MeleeWeapon>();
                var ProjectileHook  = E.Projectile.GetPart <Projectile>();
                var DefenderArmor   = Defender.Equipped.GetEquippedObjects();

                var PotencyMod = 1 + ElectroHook.Potency;

                if (ElectroHook.Potency >= 12 && ParentObject.HasEffect("ShimmeringShroud"))
                {
                    if (Defender == ParentObject && E.Weapon.HasPart("Metal") && !E.Weapon.HasPart("NaturalEquipment"))
                    {
                        Attacker.TakeDamage((PotencyMod), Attacker.Is + "takes damage from " + Defender.its + " shimmering shroud!", "Electricity", DeathReason: null, ThirdPersonDeathReason: null, Defender);
                    }
                    else if (Defender == ParentObject && E.Weapon.HasPart("Metal") || E.Weapon.HasPart("NaturalEquipment"))
                    {
                        foreach (var wornObj in DefenderArmor)
                        {
                            if (wornObj.IsEquippedOnLimbType("Body") && wornObj.HasPart("Metal"))
                            {
                                Attacker.TakeDamage((PotencyMod), Attacker.Is + "takes damage from " + Defender.its + " shimmering shroud!", "Electricity", DeathReason: null, ThirdPersonDeathReason: null, Defender);
                            }
                            else
                            {
                            }
                        }
                    }
                }

                if (ElectroHook.Potency >= 28 && ParentObject.HasEffect("ShimmeringShroud"))
                {
                    if (Defender == ParentObject &&
                        Attacker.HasPart("Combat") ||
                        Attacker.HasPart("Robot") ||
                        Attacker.HasTag("Robot"))
                    {
                        if (!Attacker.MakeSave("Toughness", 8 + ElectroHook.Potency, Defender, null, null))
                        {
                            Attacker.TakeDamage((PotencyMod), Attacker.Is + "takes damage from " + Defender.its + " shimmering shroud!", "Electricity", DeathReason: null, ThirdPersonDeathReason: null, Defender);
                            Attacker.ApplyEffect(new Stun(PotencyMod, PotencyMod));
                        }
                    }
                }
                else if (ElectroHook.Potency >= 38 && ParentObject.HasEffect("ShimmeringShroud"))
                {
                    if (Defender == ParentObject && E.Damage.IsElectricDamage())
                    {
                        var DamageConversion = E.Damage.Amount;
                        ElectroHook.Potency += DamageConversion / 2;
                        E.Damage.Amount     /= 2;
                    }
                }
                else if (ElectroHook.Potency >= 42 && ParentObject.HasEffect("ShimmeringShroud"))
                {
                    if (Defender == ParentObject &&
                        E.Weapon.HasPart("DischargeOnHit") ||
                        WeaponMeleeHook.Element == "Electric" ||
                        ProjectileHook.Attributes == "Electric")
                    {
                        ElectroHook.Potency += E.Damage.Amount / 3;
                    }
                }

                if (Defender == ParentObject &&
                    E.Damage.HasAttribute("Light Laser") ||
                    E.Projectile.HasTagOrStringProperty("EnergyAmmoLoader", "ProjectileLaserRifle") ||
                    E.Projectile.HasTagOrStringProperty("EnergyAmmoLoader", "ProjectileEigenrifle") ||
                    E.Projectile.HasTagOrStringProperty("EnergyAmmoLoader", "ProjectileLaserPistol") ||
                    E.Projectile.HasTagOrStringProperty("EnergyAmmoLoader", "ProjectileOverloadedLaserPistol") ||
                    E.Projectile.HasTagOrStringProperty("EnergyAmmoLoader", "ProjectileElectrobow"))
                {
                    if (ElectroHook.Potency >= 18 && ParentObject.HasEffect("ShimmeringShroud"))
                    {
                        E.Damage.Amount /= 2;
                    }
                    else if (ElectroHook.Potency >= 28 && ParentObject.HasEffect("ShimmeringShroud"))
                    {
                        E.Damage.Amount = 0;
                    }
                    else if (ElectroHook.Potency >= 38 && ParentObject.HasEffect("ShimmeringShroud"))
                    {
                        var DamageConversion = E.Damage.Amount;
                        ElectroHook.Potency += DamageConversion / 2;
                        E.Damage.Amount      = 0;
                    }
                    else if (ElectroHook.Potency >= 42 && ParentObject.HasEffect("ShimmeringShroud"))
                    {
                        if (E.Damage.IsElectricDamage())
                        {
                            var DamageConversion = E.Damage.Amount;
                            ElectroHook.Potency += DamageConversion;
                            E.Damage.Amount      = 0;
                        }
                    }
                }
            }
            catch { }

            return(base.HandleEvent(E));
        }