Esempio n. 1
0
        public override ClientDelve GetClientDelve()
        {
            if (style == null)
            {
                return(NotFoundClientDelve);
            }

            var styles = clt.Player.GetSpecList().SelectMany(e => e.PretendStylesForLiving(clt.Player, clt.Player.MaxLevel));

            var clientDelve = new ClientDelve("Style");

            clientDelve.Index = Index;

            if (style.OpeningRequirementType == Style.eOpening.Offensive && style.AttackResultRequirement == Style.eAttackResultRequirement.Style)
            {
                Style st = styles.Where(s => s.ID == style.OpeningRequirementValue).FirstOrDefault();
                if (st != null)
                {
                    clientDelve.AddElement("OpeningStyle", st.Name);
                }
            }

            var followupStyles = styles
                                 .Where(s => (s.OpeningRequirementType == Style.eOpening.Offensive && s.AttackResultRequirement == Style.eAttackResultRequirement.Style && s.OpeningRequirementValue == style.ID))
                                 .Select(s => s.Name);

            clientDelve.AddElement("FollowupStyle", followupStyles);
            clientDelve.AddElement("Name", style.Name);
            clientDelve.AddElement("Icon", style.Icon);
            clientDelve.AddElement("Level", style.Level);
            clientDelve.AddElement("Fatigue", style.EnduranceCost);
            clientDelve.AddElement("DefensiveMod", style.BonusToDefense);
            clientDelve.AddElement("AttackMod", style.BonusToHit);
            clientDelve.AddElement("OpeningDamage", LevelZeroDamage + style.Level * DamageIncreasePerLevel);
            clientDelve.AddElement("LevelBonus", DamageIncreasePerLevel);
            clientDelve.AddElement("OpeningType", (int)style.OpeningRequirementType);
            if (style.OpeningRequirementType == Style.eOpening.Positional)
            {
                clientDelve.AddElement("OpeningNumber", style.OpeningRequirementValue);
            }
            if (style.WeaponTypeRequirement > 0)
            {
                clientDelve.AddElement("Weapon", style.GetRequiredWeaponName());
            }
            clientDelve.AddElement("OpeningResult", (int)style.AttackResultRequirement);
            clientDelve.AddElement("Hidden", style.StealthRequirement);
            foreach (var proc in style.Procs)
            {
                if (proc.Item2 == 0 || proc.Item2 == style.ClassID)
                {
                    clientDelve.AddElement("SpecialNumber", proc.Item1.InternalID);
                    clientDelve.AddElement("SpecialType", "1");
                }
            }

            return(clientDelve);
        }
Esempio n. 2
0
        public override ClientDelve GetClientDelve()
        {
            if (spellHandler == null)
            {
                return(NotFoundClientDelve);
            }

            var clientDelve = new ClientDelve(DelveType);

            clientDelve.Index = Index;
            clientDelve.AddElement("effect", Index);
            clientDelve.AddElement("Name", Spell.Name);
            return(clientDelve);
        }
Esempio n. 3
0
        public override ClientDelve GetClientDelve()
        {
            var delve = new ClientDelve(DelveType);

            delve.AddElement("Index", Index);

            if (skill is RealmAbility realmAbility)
            {
                delve.AddElement("Name", realmAbility.Name);
                if (skill.Icon > 0)
                {
                    delve.AddElement("icon", realmAbility.Icon);
                }

                for (int i = 0; i <= realmAbility.MaxLevel - 1; i++)
                {
                    delve.AddElement($"TrainingCost_{i + 1}", realmAbility.CostForUpgrade(i));
                }

                if (skill is RAStatEnhancer statEnhancer)
                {
                    for (int i = 1; i <= realmAbility.MaxLevel; i++)
                    {
                        var statIncrease = statEnhancer.GetAmountForLevel(i) - statEnhancer.GetAmountForLevel(i - 1);
                        delve.AddElement($"AmountLvl_{i}", statIncrease);
                    }
                }

                if (skill is TimedRealmAbility timedRealmAbility)
                {
                    for (int i = 1; i <= timedRealmAbility.MaxLevel; i++)
                    {
                        delve.AddElement(string.Format("ReuseTimer_{0}", i), timedRealmAbility.GetReUseDelay(i));
                    }
                }
            }
            else if (skill != null)
            {
                delve.AddElement("Name", skill.Name);
            }
            else
            {
                delve.AddElement("Name", "(not found)");
            }

            return(delve);
        }
Esempio n. 4
0
        public override ClientDelve GetClientDelve()
        {
            var delve = new ClientDelve(DelveType);

            delve.AddElement("Index", Index);

            if (skill != null)
            {
                delve.AddElement("Name", skill.Name);
            }
            else
            {
                delve.AddElement("Name", "(not found)");
            }

            return(delve);
        }
Esempio n. 5
0
        public override ClientDelve GetClientDelve()
        {
            if (spellHandler == null)
            {
                return(NotFoundClientDelve);
            }

            var clientDelve = new ClientDelve("Spell");

            clientDelve.AddElement("Function", "light");
            clientDelve.Index = Index;
            clientDelve.AddElement("Name", Spell.Name);
            if (CastTime >= 2000)
            {
                clientDelve.AddElement("cast_timer", CastTime - 2000);
            }
            if (CastTime == 0)
            {
                clientDelve.AddElement("instant", "1");
            }
            clientDelve.AddElement("damage_type", GetMagicTypeID());
            clientDelve.AddElement("level", Spell.Level);
            clientDelve.AddElement("power_cost", Spell.Power);
            clientDelve.AddElement("cost_type", GetCostTypeID());
            clientDelve.AddElement("range", Spell.Range);
            clientDelve.AddElement("duration", Spell.Duration / 1000);
            clientDelve.AddElement("dur_type", GetDurationType());
            clientDelve.AddElement("timer_value", Spell.RecastDelay / 1000);
            clientDelve.AddElement("target", GetSpellTargetType());
            clientDelve.AddElement("radius", Spell.Radius);
            clientDelve.AddElement("concentration_points", Spell.Concentration);
            clientDelve.AddElement("frequency", Spell.Frequency);

            clientDelve.AddElement("delve_string", spellHandler.ShortDescription);
            return(clientDelve);
        }