Example #1
0
        private static List <ExportPower> ToPowers(this List <Character.Power> importPowers, Rules charRules, Rules d20Rules)
        {
            List <ExportPower> powers = new List <ExportPower>();

            foreach (var importPower in importPowers)
            {
                Rule charRule;
                if (!charRules.TryGetFirstByTypeAndName("Power", importPower.Name, out charRule))
                {
                    continue;
                }

                // use the D20 rules instead of the character file's rules
                Rule rule = CompleteRule(charRule, d20Rules);
                importPower.Specifics = rule.Specifics;

                var power = new ExportPower();
                power.ActionType = importPower.SafeGet("Action Type");
                power.Attack     = importPower.Attack;
                power.AttackType = importPower.SafeGet("Attack Type");
                power.Display    = importPower.Display.FixWhitespace();
                power.Effect     = importPower.Effect.FixWhitespace();
                power.Flavor     = (!String.IsNullOrWhiteSpace(importPower.Flavor) ? importPower.Flavor : rule.Flavor).FixWhitespace();
                power.Hit        = importPower.Hit.FixWhitespace();
                power.Keywords   = importPower.Keywords.ToList();
                power.Name       = importPower.Name;
                power.PowerType  = importPower.SafeGet("Power Type");
                power.Range      = importPower.Range;
                power.Source     = rule.Source.FixWhitespace();
                power.Target     = importPower.Target.FixWhitespace();
                power.Text       = rule.Text.FixWhitespace();
                power.Usage      = importPower.SafeGet("Power Usage");
                power.Weapons    = importPower.Weapons.Select(w => new ExportWeapon()
                {
                    AttackBonus      = w.AttackBonus,
                    AttackStat       = w.AttackStat.ToAbilityScore(),
                    Conditions       = w.Conditions.ToStringList(),
                    Damage           = w.Damage.Expression,
                    DamageComponents = w.DamageComponents.ToStringList(),
                    DamageType       = w.DamageType.FixWhitespace(),
                    Defense          = w.Defense.ToDefense(),
                    HitComponents    = w.HitComponents.ToStringList(),
                    Name             = w.Name,
                }).ToList();
                powers.Add(power);
            }

            return(powers);
        }
        private static List<ExportPower> ToPowers(this List<Character.Power> importPowers, Rules charRules, Rules d20Rules)
        {
            List<ExportPower> powers = new List<ExportPower>();
            foreach (var importPower in importPowers) {
                Rule charRule;
                if (!charRules.TryGetFirstByTypeAndName("Power", importPower.Name, out charRule)) {
                    continue;
                }

                // use the D20 rules instead of the character file's rules
                Rule rule = CompleteRule(charRule, d20Rules);
                importPower.Specifics = rule.Specifics;

                var power = new ExportPower();
                power.ActionType = importPower.SafeGet("Action Type");
                power.Attack = importPower.Attack;
                power.AttackType = importPower.SafeGet("Attack Type");
                power.Display = importPower.Display.FixWhitespace();
                power.Effect = importPower.Effect.FixWhitespace();
                power.Flavor = (!String.IsNullOrWhiteSpace(importPower.Flavor) ? importPower.Flavor : rule.Flavor).FixWhitespace();
                power.Hit = importPower.Hit.FixWhitespace();
                power.Keywords = importPower.Keywords.ToList();
                power.Name = importPower.Name;
                power.PowerType = importPower.SafeGet("Power Type");
                power.Range = importPower.Range;
                power.Source = rule.Source.FixWhitespace();
                power.Target = importPower.Target.FixWhitespace();
                power.Text = rule.Text.FixWhitespace();
                power.Usage = importPower.SafeGet("Power Usage");
                power.Weapons = importPower.Weapons.Select(w => new ExportWeapon() {
                    AttackBonus = w.AttackBonus,
                    AttackStat = w.AttackStat.ToAbilityScore(),
                    Conditions = w.Conditions.ToStringList(),
                    Damage = w.Damage.Expression,
                    DamageComponents = w.DamageComponents.ToStringList(),
                    DamageType = w.DamageType.FixWhitespace(),
                    Defense = w.Defense.ToDefense(),
                    HitComponents = w.HitComponents.ToStringList(),
                    Name = w.Name,
                }).ToList();
                powers.Add(power);
            }

            return powers;
        }