private void Manafont(StatusEffectBuilder builder)
 {
     builder
     .Create(StatusEffectType.Manafont)
     .Name("Manafont")
     .EffectIcon(156);
 }
 private void ElementalSeal(StatusEffectBuilder builder)
 {
     builder
     .Create(StatusEffectType.ElementalSeal)
     .Name("Elemental Seal")
     .EffectIcon(132);
 }
Esempio n. 3
0
        private static void Dia2(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Dia2)
            .Name("Dia II")
            .EffectIcon(154)
            .GrantAction((target, duration) =>
            {
                if (StatusEffect.HasStatusEffect(target, StatusEffectType.Dia3))
                {
                    SendMessageToPC(target, "A more powerful version of Dia is already in effect.");
                    StatusEffect.Remove(target, StatusEffectType.Dia2);
                    return;
                }

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

                AssignCommand(activator, () =>
                {
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Positive), target);
                });
            });
        }
Esempio n. 4
0
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder()
                          .Create(StatusEffectType.DeliberateStab)
                          .EffectIcon(161);

            return(builder.Build());
        }
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder();

            Refresh(builder);

            return(builder.Build());
        }
Esempio n. 6
0
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder();

            SubtleBlow1(builder);
            SubtleBlow2(builder);

            return(builder.Build());
        }
Esempio n. 7
0
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder()
                          .Create(StatusEffectType.ElementalSpread)
                          .Name("Elemental Spread")
                          .EffectIcon(133);

            return(builder.Build());
        }
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder();

            ElementalSeal(builder);
            Manafont(builder);

            return(builder.Build());
        }
 private static void Blind2(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.Blind2)
     .Name("Blind II")
     .EffectIcon(147)
     .GrantAction((target, duration) =>
     {
         ApplyEffectToObject(DurationType.Temporary, EffectMissChance(18), target, duration);
     });
 }
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder();

            Bleed1(builder);
            Bleed2(builder);
            Bleed3(builder);

            return(builder.Build());
        }
Esempio n. 11
0
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder();

            Cover1(builder);
            Cover2(builder);
            Cover3(builder);
            Cover4(builder);

            return(builder.Build());
        }
Esempio n. 12
0
 private static void SubtleBlow2(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.SubtleBlow2)
     .Name("Subtle Blow II")
     .EffectIcon(136)
     .GrantAction((target, duration) =>
     {
         if (StatusEffect.HasStatusEffect(target, StatusEffectType.SubtleBlow1))
         {
             StatusEffect.Remove(target, StatusEffectType.SubtleBlow1);
         }
     });
 }
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder();

            Defender1(builder);
            Defender2(builder);
            Defender3(builder);
            Ironclad1(builder);
            Ironclad2(builder);
            Ironclad3(builder);

            return(builder.Build());
        }
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder()
                          .Create(StatusEffectType.Static)
                          .Name("Static")
                          .EffectIcon(139)
                          .TickAction((activator, target) =>
            {
                var damage = Random.D4(1);
                ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Electrical), target);
            });

            return(builder.Build());
        }
Esempio n. 15
0
 private static void SubtleBlow1(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.SubtleBlow1)
     .Name("Subtle Blow I")
     .EffectIcon(135)
     .GrantAction((target, duration) =>
     {
         if (StatusEffect.HasStatusEffect(target, StatusEffectType.SubtleBlow2))
         {
             StatusEffect.Remove(target, StatusEffectType.SubtleBlow1);
             SendMessageToPC(target, "A more powerful effect is already active.");
         }
     });
 }
Esempio n. 16
0
        private static void Poison3(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Poison3)
            .Name("Poison III")
            .EffectIcon(152)
            .TickAction((activator, target) =>
            {
                var damage = Random.D6(2);

                AssignCommand(activator, () =>
                {
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Acid), target);
                });
            });
        }
 private static void Defender3(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.Defender3)
     .Name("Defender III")
     .EffectIcon(142)
     .GrantAction((target, duration) =>
     {
         RemoveEffectByTag(target, Defender1EffectTag, Defender2EffectTag, Defender3EffectTag);
         ApplyDamageResistanceEffect(target, 7, Defender3EffectTag, 60f);
     })
     .RemoveAction(target =>
     {
         RemoveEffectByTag(target, Defender3EffectTag);
     });
 }
 private static void Ironclad3(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.Ironclad3)
     .Name("Ironclad III")
     .EffectIcon(145)
     .GrantAction((target, duration) =>
     {
         RemoveEffectByTag(target, Ironclad1EffectTag, Ironclad2EffectTag, Ironclad3EffectTag);
         ApplyDamageResistanceEffect(target, 8, Ironclad3EffectTag, 60f);
     })
     .RemoveAction(target =>
     {
         RemoveEffectByTag(target, Ironclad3EffectTag);
     });
 }
Esempio n. 19
0
 private static void Cover1(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.Cover1)
     .Name("Cover I")
     .EffectIcon(148)
     .GrantAction((target, duration) =>
     {
         if (StatusEffect.HasStatusEffect(target, StatusEffectType.Cover2) ||
             StatusEffect.HasStatusEffect(target, StatusEffectType.Cover3) ||
             StatusEffect.HasStatusEffect(target, StatusEffectType.Cover4))
         {
             StatusEffect.Remove(target, StatusEffectType.Cover1);
             SendMessageToPC(target, "A more powerful Cover effect is already active.");
         }
     });
 }
Esempio n. 20
0
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder()
                          .Create(StatusEffectType.Burn)
                          .Name("Burn")
                          .EffectIcon(131)
                          .TickAction((source, target) =>
            {
                AssignCommand(source, () =>
                {
                    var damage = Random.D6(1);
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Fire), target);
                });
            });

            return(builder.Build());
        }
Esempio n. 21
0
 private static void Cover4(StatusEffectBuilder builder)
 {
     builder.Create(StatusEffectType.Cover4)
     .Name("Cover IV")
     .EffectIcon(151)
     .GrantAction((target, duration) =>
     {
         if (StatusEffect.HasStatusEffect(target, StatusEffectType.Cover1) ||
             StatusEffect.HasStatusEffect(target, StatusEffectType.Cover2) ||
             StatusEffect.HasStatusEffect(target, StatusEffectType.Cover3))
         {
             StatusEffect.Remove(target, StatusEffectType.Cover1);
             StatusEffect.Remove(target, StatusEffectType.Cover2);
             StatusEffect.Remove(target, StatusEffectType.Cover3);
         }
     });
 }
Esempio n. 22
0
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            var builder = new StatusEffectBuilder()
                          .Create(StatusEffectType.Invincible)
                          .Name("Invincible")
                          .EffectIcon(130)
                          .GrantAction((target, duration) =>
            {
                SetPlotFlag(target, true);
            })
                          .RemoveAction((target) =>
            {
                SetPlotFlag(target, false);
            });

            return(builder.Build());
        }
        private static void Refresh(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Refresh)
            .Name("Refresh")
            .EffectIcon(160)
            .TickAction((activator, target) =>
            {
                if (!GetIsPC(target) || GetIsDM(target))
                {
                    return;
                }

                var playerId = GetObjectUUID(target);
                var dbPlayer = DB.Get <Player>(playerId);

                Stat.RestoreMP(target, dbPlayer, 3);
            });
        }
        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. 25
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 Ironclad2(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Ironclad2)
            .Name("Ironclad II")
            .EffectIcon(144)
            .GrantAction((target, duration) =>
            {
                if (StatusEffect.HasStatusEffect(target, StatusEffectType.Ironclad3))
                {
                    SendMessageToPC(target, "A more powerful version of Ironclad is already in effect.");
                    return;
                }
                RemoveEffectByTag(target, Ironclad1EffectTag, Ironclad2EffectTag);

                ApplyDamageResistanceEffect(target, 6, Ironclad2EffectTag, 60f);
            })
            .RemoveAction(target =>
            {
                RemoveEffectByTag(target, Ironclad2EffectTag);
            });
        }
        private static void Defender2(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Defender2)
            .Name("Defender II")
            .EffectIcon(141)
            .GrantAction((target, duration) =>
            {
                if (StatusEffect.HasStatusEffect(target, StatusEffectType.Defender3))
                {
                    SendMessageToPC(target, "A more powerful version of Defender is already in effect.");
                    return;
                }
                RemoveEffectByTag(target, Defender1EffectTag, Defender2EffectTag);

                ApplyDamageResistanceEffect(target, 5, Defender2EffectTag, 60f);
            })
            .RemoveAction(target =>
            {
                RemoveEffectByTag(target, Defender2EffectTag);
            });
        }
        public Dictionary <StatusEffectType, StatusEffectDetail> BuildStatusEffects()
        {
            const string SleepEffectTag = "STATUS_EFFECT_SLEEP";

            var builder = new StatusEffectBuilder()
                          .Create(StatusEffectType.Sleep)
                          .Name("Sleep")
                          .EffectIcon(134)
                          .GrantAction((target, duration) =>
            {
                var effect = EffectStunned();
                effect     = EffectLinkEffects(effect, EffectVisualEffect(VisualEffect.Vfx_Dur_Iounstone_Blue));
                effect     = EffectLinkEffects(effect, EffectVisualEffect(VisualEffect.Vfx_Imp_Sleep));
                effect     = TagEffect(effect, SleepEffectTag);
                ApplyEffectToObject(DurationType.Temporary, effect, target, duration);
            })
                          .RemoveAction(target =>
            {
                RemoveEffectByTag(target, SleepEffectTag);
            });

            return(builder.Build());
        }
        private static void Bleed1(StatusEffectBuilder builder)
        {
            builder.Create(StatusEffectType.Bleed1)
            .Name("Bleed I")
            .EffectIcon(157)
            .GrantAction((target, duration) =>
            {
                if (StatusEffect.HasStatusEffect(target, StatusEffectType.Bleed2) ||
                    StatusEffect.HasStatusEffect(target, StatusEffectType.Bleed3))
                {
                    SendMessageToPC(target, "A more powerful version of Bleed is already in effect.");
                    StatusEffect.Remove(target, StatusEffectType.Bleed1);
                }
            })
            .TickAction((activator, target) =>
            {
                var damage = Random.D4(1);

                AssignCommand(activator, () =>
                {
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damage, DamageType.Piercing), target);
                });
            });
        }