private static void Bleed2(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Bleed2)
            .Name("Bleed II")
            .EffectIcon(158)
            .GrantAction((target, duration) =>
            {
                if (StatusEffect.HasStatusEffect(target, StatusEffectType.Bleed3))
                {
                    SendMessageToPC(target, "A more powerful version of Bleed is already in effect.");
                    StatusEffect.Remove(target, StatusEffectType.Bleed2);
                    return;
                }

                StatusEffect.Remove(target, StatusEffectType.Bleed1);
            })
            .TickAction((activator, target) =>
            {
                var damage = Random.D6(1);

                AssignCommand(activator, () =>
                {
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Piercing), target);
                });
            });
        }
Esempio n. 2
0
        private static void Curaga1(AbilityBuilder builder)
        {
            builder.Create(Feat.Curaga1, PerkType.Curaga)
            .Name("Curaga I")
            .HasRecastDelay(RecastGroup.Curaga1, 12f)
            .HasActivationDelay(4.0f)
            .RequirementMP(12)
            .UsesActivationType(AbilityActivationType.Casted)
            .DisplaysVisualEffectWhenActivating()
            .HasImpactAction((activator, target, level) =>
            {
                var bonus = GetAbilityModifier(AbilityType.Wisdom, activator);

                foreach (var member in Party.GetAllPartyMembersWithinRange(activator, 5.0f))
                {
                    var amount = Random.D6(2) + bonus;

                    ApplyEffectToObject(DurationType.Instant, GetRacialType(target) == RacialType.Undead
                            ? EffectDamage(amount)
                            : EffectHeal(amount), target);

                    ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Healing_S), member);

                    Enmity.ModifyEnmityOnAll(activator, amount);
                }

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.WhiteMagic, 3);
            });
        }
 private static void Stone2(AbilityBuilder builder)
 {
     builder.Create(Feat.Stone2, PerkType.Stone)
     .Name("Stone II")
     .HasRecastDelay(RecastGroup.Stone, 4f)
     .HasActivationDelay(2.0f)
     .RequirementMP(5)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyStoneEffects(activator, target, Random.D6(2), 9);
     });
 }
 private static void Blizzard1(AbilityBuilder builder)
 {
     builder.Create(Feat.Blizzard1, PerkType.Blizzard)
     .Name("Blizzard I")
     .HasRecastDelay(RecastGroup.Blizzard, 2f)
     .HasActivationDelay(2.0f)
     .RequirementMP(2)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyBlizzardEffects(activator, target, Random.D6(2), 5, 0.0f);
         ApplyAOEBlizzardEffects(activator, target, Random.D6(2), 5, 0.0f);
     });
 }
 private static void Fire1(AbilityBuilder builder)
 {
     builder.Create(Feat.Fire1, PerkType.Fire)
     .Name("Fire I")
     .HasRecastDelay(RecastGroup.Fire, 3f)
     .HasActivationDelay(3.0f)
     .RequirementMP(3)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyFireEffects(activator, target, Random.D6(2), 5, 0.0f);
         ApplyAOEFireEffects(activator, target, Random.D6(2), 5, 0.0f);
     });
 }
 private static void Thunder1(AbilityBuilder builder)
 {
     builder.Create(Feat.Thunder1, PerkType.Thunder)
     .Name("Thunder I")
     .HasRecastDelay(RecastGroup.Thunder, 4f)
     .HasActivationDelay(4.0f)
     .RequirementMP(4)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyThunderEffects(activator, target, Random.D6(2), 5, 0.0f);
         ApplyAOEThunderEffects(activator, target, Random.D6(2), 5, 0.0f);
     });
 }
        private static void Chakra1(AbilityBuilder builder)
        {
            builder.Create(Feat.Chakra1, PerkType.Chakra)
            .Name("Chakra I")
            .HasRecastDelay(RecastGroup.Chakra, 30f)
            .HasActivationDelay(2f)
            .UsesActivationType(AbilityActivationType.Casted)
            .RequirementStamina(10)
            .HasImpactAction((activator, target, level) =>
            {
                var hpRecover = Random.D6(2);
                ApplyEffectToObject(DurationType.Instant, EffectHeal(hpRecover), target);
                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Healing_S), target);

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.Chi, 2);
                Enmity.ModifyEnmityOnAll(activator, 6 + hpRecover);
            });
        }
        private static void Jolt2(AbilityBuilder builder)
        {
            builder.Create(Feat.Jolt2, PerkType.Jolt)
            .Name("Jolt II")
            .HasRecastDelay(RecastGroup.Jolt, 4f)
            .RequirementMP(8)
            .UsesActivationType(AbilityActivationType.Casted)
            .HasActivationDelay(2f)
            .HasImpactAction((activator, target, level) =>
            {
                var damage = Random.D6(2);

                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Com_Hit_Electrical), target);
                ApplyEffectToObject(DurationType.Instant, EffectDamage(damage), target);

                Enmity.ModifyEnmity(activator, target, damage + 6);
                CombatPoint.AddCombatPoint(activator, target, SkillType.RedMagic, 3);
            });
        }
Esempio n. 9
0
        private static void Dia3(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Dia3)
            .Name("Dia III")
            .EffectIcon(155)
            .GrantAction((target, duration) =>
            {
                StatusEffect.Remove(target, StatusEffectType.Dia1);
                StatusEffect.Remove(target, StatusEffectType.Dia2);
            })
            .TickAction((activator, target) =>
            {
                var damage = Random.D6(1);

                AssignCommand(activator, () =>
                {
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Positive), target);
                });
            });
        }
        private static void Bleed3(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Bleed3)
            .Name("Bleed III")
            .EffectIcon(159)
            .GrantAction((target, duration) =>
            {
                StatusEffect.Remove(target, StatusEffectType.Bleed1);
                StatusEffect.Remove(target, StatusEffectType.Bleed3);
            })
            .TickAction((activator, target) =>
            {
                var damage = Random.D6(2);

                AssignCommand(activator, () =>
                {
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Piercing), target);
                });
            });
        }
Esempio n. 11
0
        private static void Cure2(AbilityBuilder builder)
        {
            builder.Create(Feat.Cure2, PerkType.Cure)
            .Name("Cure II")
            .HasRecastDelay(RecastGroup.Cure2, 5f)
            .HasActivationDelay(2.0f)
            .RequirementMP(8)
            .UsesActivationType(AbilityActivationType.Casted)
            .DisplaysVisualEffectWhenActivating()
            .HasImpactAction((activator, target, level) =>
            {
                var amount = Random.D6(2) + GetAbilityModifier(AbilityType.Wisdom, activator);

                ApplyEffectToObject(DurationType.Instant, EffectHeal(amount), target);
                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Healing_M), target);

                Enmity.ModifyEnmityOnAll(activator, amount);
                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.WhiteMagic, 3);
            });
        }
        private static void RecoveryStab1(AbilityBuilder builder)
        {
            builder.Create(Feat.RecoveryStab1, PerkType.RecoveryStab)
            .Name("Recovery Stab I")
            .HasRecastDelay(RecastGroup.RecoveryStab, 60f)
            .RequirementStamina(8)
            .UsesActivationType(AbilityActivationType.Weapon)
            .HasImpactAction((activator, target, level) =>
            {
                var bonus = GetAbilityModifier(AbilityType.Wisdom, activator);
                foreach (var member in Party.GetAllPartyMembersWithinRange(activator, 5.0f))
                {
                    var amount = Random.D6(2) + bonus;

                    ApplyEffectToObject(DurationType.Instant, EffectHeal(amount), member);
                    ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Healing_S), member);

                    Enmity.ModifyEnmityOnAll(activator, amount + 2);
                }

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.RedMagic, 3);
                Enmity.ModifyEnmityOnAll(activator, 6);
            });
        }