public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            Fire1(builder);
            Fire2(builder);
            Fire3(builder);

            return(builder.Build());
        }
Ejemplo n.º 2
0
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            ElectricFist1(builder);
            ElectricFist2(builder);
            ElectricFist3(builder);

            return(builder.Build());
        }
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            Blizzard1(builder);
            Blizzard2(builder);
            Blizzard3(builder);

            return(builder.Build());
        }
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            PiercingStab1(builder);
            PiercingStab2(builder);
            PiercingStab3(builder);

            return(builder.Build());
        }
        private static void Convert(AbilityBuilder builder)
        {
            builder.Create(Feat.Convert, PerkType.Convert)
            .Name("Convert")
            .HasRecastDelay(RecastGroup.Convert, 600f)
            .UsesActivationType(AbilityActivationType.Casted)
            .HasCustomValidation((activator, target, level) =>
            {
                if (!GetIsPC(activator) || GetIsDM(activator))
                {
                    return("Only players may use this ability.");
                }

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

                if (dbPlayer.MP <= 0)
                {
                    return("Your MP is too low to convert.");
                }

                return(string.Empty);
            })
            .HasImpactAction((activator, target, level) =>
            {
                var playerId = GetObjectUUID(activator);
                var dbPlayer = DB.Get <Player>(playerId);

                var currentHP = GetCurrentHitPoints(activator);
                var currentMP = dbPlayer.MP;

                // Set MP to 0 then do a restore by the player's HP.
                dbPlayer.MP = 0;
                Stat.RestoreMP(activator, dbPlayer, currentHP);
                DB.Set(playerId, dbPlayer);

                // Current HP is higher than MP. Deal damage.
                if (currentHP > currentMP)
                {
                    var damageAmount = currentHP - currentMP;
                    ApplyEffectToObject(DurationType.Instant, EffectDamage(damageAmount), activator);
                }
                // Current HP is lower than MP. Heal damage.
                else if (currentHP < currentMP)
                {
                    var recoverAmount = currentMP - currentHP;
                    ApplyEffectToObject(DurationType.Instant, EffectHeal(recoverAmount), activator);
                }

                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Good_Help), activator);

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.RedMagic, 5);
                Enmity.ModifyEnmityOnAll(activator, 10);
            });
        }
Ejemplo n.º 6
0
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

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

            return(builder.Build());
        }
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            Steal1(builder);
            Steal2(builder);
            Steal3(builder);
            Steal4(builder);

            return(builder.Build());
        }
Ejemplo n.º 8
0
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            TransferMP1(builder);
            TransferMP2(builder);
            TransferStamina1(builder);
            TransferStamina2(builder);

            return(builder.Build());
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Loads the client side player's abilities.
        /// </summary>
        /// <param name="json"></param>
        /// <param name="isInitialLoad"></param>
        private void loadPlayerAbilities(JSONNode json, bool isInitialLoad, string entityName)
        {
            int skillLevel = 0;

            JSONArray      abilityJson = isInitialLoad ? json["starting_abilities"].AsArray : json["abilities"].AsArray;
            AbilityBuilder builder     = new AbilityBuilder();

            foreach (JSONNode jsonNode in abilityJson)
            {
                abilities.Add(constructPlayerAbility(jsonNode, skillLevel, entityName));
            }
        }
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            InnerHealing1(builder);
            InnerHealing2(builder);
            InnerHealing3(builder);
            InnerHealing4(builder);
            InnerHealing5(builder);

            return(builder.Build());
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Returns an ability.
        /// </summary>
        public static Ability CreateAbility(
            string name        = "jim",
            string description = "eureka",
            ActionContainer actionContainer = null)
        {
            var builder = new AbilityBuilder()
                          .Name(name)
                          .Describe(description)
                          .WithActionContainer(actionContainer);

            return(builder.Build());
        }
Ejemplo n.º 12
0
    public static void Create()
    {
        CharacterSheet character = new CharacterSheet();

        character.characterInfo = CharInfoBuilder.Build
                                  (
            CharacterStatic.name, CharacterStatic.charDescription
                                  );

        for (int i = 0; i < CharacterStatic.statsLable.Count; i++)
        {
            character.Stats.Add
            (
                StatisticBuilder.Build(CharacterStatic.statsLable[i],
                                       CharacterStatic.statsValue[i])
            );
        }

        for (int i = 0; i < CharacterStatic.abilityLable.Count; i++)
        {
            character.Abilities.Add(AbilityBuilder.Build
                                    (
                                        CharacterStatic.abilityLable[i],
                                        CharacterStatic.abilityDescription[i],
                                        CharacterStatic.abilityValue[i])
                                    );
        }

        for (int i = 0; i < CharacterStatic.skillLable.Count; i++)
        {
            character.Skills.Add(SkillBuilder.Build
                                 (
                                     CharacterStatic.skillLable[i],
                                     CharacterStatic.skillDescription[i],
                                     CharacterStatic.skillValue[i])
                                 );
        }

        for (int i = 0; i < CharacterStatic.eqLable.Count; i++)
        {
            character.Inventory.Add(ItemBuilder.Build
                                    (
                                        CharacterStatic.eqLable[i],
                                        CharacterStatic.eqDescription[i])
                                    );
        }

        string toSave = JsonUtility.ToJson(character);

        Debug.Log(toSave);
        File.WriteAllText(ProfileStatic.ProfileFolderPath + character.characterInfo.CharacterName + ".dat", Crypter.Crypting(toSave));
    }
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

            Invincible(builder);
            HundredFists(builder);
            Benediction(builder);
            ElementalSeal(builder);
            PerfectDodge(builder);
            Manafont(builder);

            return(builder.Build());
        }
Ejemplo n.º 14
0
        public Dictionary <Feat, AbilityDetail> BuildAbilities()
        {
            var builder = new AbilityBuilder();

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

            return(builder.Build());
        }
Ejemplo n.º 15
0
        public void Activate()
        {
            this.owner          = EntityManager9.Owner;
            this.abilityBuilder = new AbilityBuilder(
                this.owner,
                this.learnAbilities,
                this.abilitiesType,
                this.learnTalents,
                this.talentsType);

            this.enabled.ValueChange       += this.EnabledOnValueChange;
            this.abilityBuilder.BuildReady += this.OnBuildReady;
        }
 private static void Provoke1(AbilityBuilder builder)
 {
     builder.Create(Feat.Provoke1, PerkType.Provoke)
     .Name("Provoke I")
     .HasRecastDelay(RecastGroup.Provoke1, 30f)
     .RequirementStamina(2)
     .UsesActivationType(AbilityActivationType.Casted)
     .HasImpactAction((activator, target, level) =>
     {
         ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Destruction), target);
         Enmity.ModifyEnmity(activator, target, 50);
     });
 }
 private static void Stone3(AbilityBuilder builder)
 {
     builder.Create(Feat.Stone3, PerkType.Stone)
     .Name("Stone III")
     .HasRecastDelay(RecastGroup.Stone, 4f)
     .HasActivationDelay(2.0f)
     .RequirementMP(7)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyStoneEffects(activator, target, Random.D10(2), 14);
     });
 }
 private static void LifeSteal2(AbilityBuilder builder)
 {
     builder.Create(Feat.LifeSteal2, PerkType.LifeSteal)
     .Name("Life Steal II")
     .HasRecastDelay(RecastGroup.LifeSteal, 120f)
     .RequirementStamina(30)
     .UsesActivationType(AbilityActivationType.Weapon)
     .HasImpactAction((activator, target, level) =>
     {
         var percentRecovery = 0.50f;
         SetLocalFloat(target, LifeStealVariableName, percentRecovery);
         SetLocalObject(target, LifeStealActivatorVariableName, activator);
     });
 }
        public void Build_CallsPresent_Succeeds()
        {
            // Arrange
            var builder = new AbilityBuilder()
                          .Name("caribou")
                          .Describe("andorra")
                          .WithActionContainer(new ActionContainer());

            // Act
            var move = builder.Build();

            // Assert
            Assert.That(move, Is.Not.Null);
        }
 private static void Warp1(AbilityBuilder builder)
 {
     builder.Create(Feat.Warp1, PerkType.Warp)
     .Name("Warp I")
     .HasRecastDelay(RecastGroup.Warp, 30f)
     .HasActivationDelay(12.0f)
     .RequirementMP(20)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         SendToHomePoint(target);
     });
 }
 private static void Blizzard3(AbilityBuilder builder)
 {
     builder.Create(Feat.Blizzard3, PerkType.Blizzard)
     .Name("Blizzard III")
     .HasRecastDelay(RecastGroup.Blizzard, 2f)
     .HasActivationDelay(2.0f)
     .RequirementMP(6)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyBlizzardEffects(activator, target, Random.D8(2), 10, 30f);
         ApplyAOEBlizzardEffects(activator, target, Random.D8(2), 10, 30f);
     });
 }
 private static void Thunder3(AbilityBuilder builder)
 {
     builder.Create(Feat.Thunder3, PerkType.Thunder)
     .Name("Thunder III")
     .HasRecastDelay(RecastGroup.Thunder, 4f)
     .HasActivationDelay(4.0f)
     .RequirementMP(8)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyThunderEffects(activator, target, Random.D12(2), 15, 6f);
         ApplyAOEThunderEffects(activator, target, Random.D12(2), 15, 6f);
     });
 }
 private static void Fire3(AbilityBuilder builder)
 {
     builder.Create(Feat.Fire3, PerkType.Fire)
     .Name("Fire III")
     .HasRecastDelay(RecastGroup.Fire, 3f)
     .HasActivationDelay(3.0f)
     .RequirementMP(7)
     .UsesActivationType(AbilityActivationType.Casted)
     .DisplaysVisualEffectWhenActivating()
     .HasImpactAction((activator, target, level) =>
     {
         ApplyFireEffects(activator, target, Random.D12(2), 15, 30f);
         ApplyAOEFireEffects(activator, target, Random.D12(2), 15, 30f);
     });
 }
 private static void Invincible(AbilityBuilder builder)
 {
     builder.Create(Feat.Invincible, PerkType.Invincible)
     .Name("Invincible")
     .HasRecastDelay(RecastGroup.OneHourAbility, 3600f)
     .UsesActivationType(AbilityActivationType.Casted)
     .RequirementStamina(50)
     .HasImpactAction((activator, target, level) =>
     {
         StatusEffect.Apply(activator, target, StatusEffectType.Invincible, 30.0f);
         CombatPoint.AddCombatPointToAllTagged(activator, SkillType.Chivalry, 5);
         Enmity.ModifyEnmityOnAll(activator, 500);
         ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Fnf_Sound_Burst), target);
     });
 }
Ejemplo n.º 25
0
        private static void Blind1(AbilityBuilder builder)
        {
            builder.Create(Feat.Blind1, PerkType.Blind)
            .Name("Blind I")
            .HasRecastDelay(RecastGroup.Blind, 12f)
            .RequirementMP(6)
            .UsesActivationType(AbilityActivationType.Casted)
            .HasActivationDelay(2f)
            .HasImpactAction((activator, target, level) =>
            {
                StatusEffect.Apply(activator, target, StatusEffectType.Blind1, 15f);

                Enmity.ModifyEnmity(activator, target, 4);
                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.RedMagic, 3);
            });
        }
Ejemplo n.º 26
0
        private static void WaspSting3(AbilityBuilder builder)
        {
            builder.Create(Feat.WaspSting3, PerkType.WaspSting)
            .Name("Wasp Sting III")
            .HasRecastDelay(RecastGroup.WaspSting, 60f)
            .RequirementStamina(12)
            .UsesActivationType(AbilityActivationType.Weapon)
            .HasImpactAction((activator, target, level) =>
            {
                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Poison_S), target);
                StatusEffect.Apply(activator, target, StatusEffectType.Poison3, 24f);

                CombatPoint.AddCombatPoint(activator, target, SkillType.Thievery, 3);
                Enmity.ModifyEnmity(activator, target, 20);
            });
        }
Ejemplo n.º 27
0
        private static void Ironclad1(AbilityBuilder builder)
        {
            builder.Create(Feat.Ironclad1, PerkType.Ironclad)
            .Name("Ironclad I")
            .HasRecastDelay(RecastGroup.Ironclad, 300f)
            .RequirementStamina(10)
            .UsesActivationType(AbilityActivationType.Casted)
            .HasImpactAction((activator, target, level) =>
            {
                StatusEffect.Apply(activator, target, StatusEffectType.Ironclad1, 60f);
                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Death_Ward), target);

                Enmity.ModifyEnmityOnAll(activator, 8);
                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.Chivalry, 3);
            });
        }
        private static void PerfectDodge(AbilityBuilder builder)
        {
            builder.Create(Feat.PerfectDodge, PerkType.PerfectDodge)
            .Name("Perfect Dodge")
            .HasRecastDelay(RecastGroup.OneHourAbility, 3600f)
            .UsesActivationType(AbilityActivationType.Casted)
            .RequirementStamina(50)
            .HasImpactAction((activator, target, level) =>
            {
                ApplyEffectToObject(DurationType.Temporary, EffectACIncrease(20), target, 30f);
                ApplyEffectToObject(DurationType.Temporary, EffectVisualEffect(VisualEffect.Vfx_Dur_Pixiedust), target, 30f);

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.Thievery, 5);
                Enmity.ModifyEnmityOnAll(activator, 150);
            });
        }
        private static void Manafont(AbilityBuilder builder)
        {
            builder.Create(Feat.Manafont, PerkType.Manafont)
            .Name("Manafont")
            .HasRecastDelay(RecastGroup.OneHourAbility, 3600f)
            .UsesActivationType(AbilityActivationType.Casted)
            .RequirementMP(50)
            .HasImpactAction((activator, target, level) =>
            {
                StatusEffect.Apply(activator, target, StatusEffectType.Manafont, 30f);
                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Fnf_Sound_Burst), target);

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.RedMagic, 5);
                Enmity.ModifyEnmityOnAll(activator, 100);
            });
        }
Ejemplo n.º 30
0
        private static void SubtleBlow2(AbilityBuilder builder)
        {
            builder.Create(Feat.SubtleBlow2, PerkType.SubtleBlow)
            .Name("Subtle Blow II")
            .HasRecastDelay(RecastGroup.SubtleBlow, 300f)
            .RequirementStamina(7)
            .UsesActivationType(AbilityActivationType.Casted)
            .HasImpactAction((activator, target, level) =>
            {
                StatusEffect.Apply(activator, target, StatusEffectType.SubtleBlow2, 30f);
                ApplyEffectToObject(DurationType.Instant, EffectVisualEffect(VisualEffect.Vfx_Imp_Ac_Bonus), target);

                CombatPoint.AddCombatPointToAllTagged(activator, SkillType.Chi, 3);
                Enmity.ModifyEnmityOnAll(activator, 8);
            });
        }