using System;
using System.Linq;
using Trinity.Combat;
using Trinity.Helpers;
using Trinity.Objects;
using System.Collections.Generic;
using Zeta.Game;
using Zeta.Game.Internals.Actors;

// AUTO-GENERATED on {{timestamp}}

namespace Trinity.Reference
{
public static class Skills
{
{{#each classes}} public class {{name}} : FieldCollection<{{name}}, Skill>
{
{{#each skills}}
/// <summary>
/// {{description}}
/// </summary>
public static Skill {{Strip name}} = new Skill
{
Index = {{orderIndex}},
Name = "{{name}}",
SNOPower = SNOPower.{{SNOPowerFormat icon name}},
Slug = "{{slug}}",
IconSlug = "{{icon}}",
RequiredLevel = {{requiredLevel}},
Description = "{{description}}",
Tooltip = "{{tooltipParams}}",
Category = SpellCategory.{{categoryName}},
IsPrimary = {{Bool primary}},
Class = ActorClass.{{Format className}},
{{{ICombatProperties description "Duration"}}} {{{ICombatProperties description "Cost"}}} {{{ICombatProperties description "Cooldown"}}} {{{ICombatProperties description "Element" name}}} {{{ICombatProperties description "Resource"}}} {{{ICombatProperties description "IsDamaging"}}} {{{ICombatProperties description "AreaEffectRadius"}}} {{{ICombatProperties description "ResourceEffect"}}} Runes = new List<Rune>
{
Runes.{{className}}.None,
{{#each runes}} Runes.{{className}}.{{StripRune name ../name}},
{{/each}}
}
};
{{/each}}
}
{{/each}}
}
}