using System.Collections.Generic; namespace Luneraria.Core { /// How a hero power is triggered. public enum PowerTrigger { /// Automatic in combat (like the existing abilities). Automatic, /// Released by the player through the command menu during combat. Command, } /// /// Description of an ability or ultimate. Numbers are balance parameters; null means "not /// decided yet". Nothing here is simulated until a hero is activated in a hero phase. /// public sealed class HeroPower { public string Id = ""; public string Name = ""; public string Text = ""; public PowerTrigger Trigger = PowerTrigger.Automatic; /// Effect family in the rules vocabulary (slow, splash, damage buff, dot, ...). public string Effect = ""; public double? Radius; public double? Duration; public double? Amount; public int? MaxTargets; public double? Cooldown; /// Stun length for powers that stun (a new rule, see docs/port/U1-RULES.md). public double? Stun; /// Open design questions of this power. public string Note = ""; } /// A planned hero from the owner's hero concept (docs/luneraria/HELDEN-KONZEPT.md in the reference). public sealed class PlannedHero { public string Id = ""; public string Name = ""; public string People = ""; public string Role = ""; /// Row in the formation, as for troops: front, melee, ranged, splash or support. public string FormationRole = ""; public string Weapon = ""; public string Look = ""; public HeroPower Ability = new HeroPower(); public HeroPower Ultimate = new HeroPower(); public string Goal = ""; /// False until a hero phase implements and balances the kit; not purchasable before. public bool Active; } /// /// The four heroes the owner defined for Champions of Luneraria (Lucy, Ghaliga, Siegfried, /// Feena). Part of the data model so HUD and command menu can be designed against them; /// the match still offers only the three reference heroes (ContentData.Heroes), so the port /// keeps behavioural parity. Ultimates are released through the command menu; the rest of /// the combat stays automatic. /// public static class PlannedHeroes { public static readonly IReadOnlyList All = new List { new PlannedHero { Id = "lucy", Name = "Lucy", People = "Dunkelelfe", Role = "Kontrolle / Fernkampf", FormationRole = "ranged", Weapon = "Bogen", Look = "Lange weiße Haare, grüne Augen, dunkle Haut, dunkle Lederrüstung mit dunkelblauen Akzenten, frostige Nachtästhetik.", Ability = new HeroPower { Id = "frostpfeile", Name = "Frostpfeile", Text = "Treffer verlangsamen Gegner.", Effect = "movement_slow" }, Ultimate = new HeroPower { Id = "multischuss", Name = "Multischuss", Text = "Mehrere Pfeile auf mehrere Ziele; Kontrolle und Flächendruck statt rohem Burst.", Trigger = PowerTrigger.Command, Effect = "multi_target_volley" }, Goal = "Gefährliche Gegnerwellen verlangsamen und Formationen stören.", }, new PlannedHero { Id = "ghaliga", Name = "Ghaliga", People = "Zwerg", Role = "Frontkämpfer / Bruiser", FormationRole = "front", Weapon = "Axt", Look = "Rote Haare, langer Bart, blaue Augen, goldene Zwergenrüstung, schwere robuste Silhouette.", Ability = new HeroPower { Id = "wirbelhieb", Name = "Wirbelhieb", Text = "Flächenangriff um ihn herum.", Effect = "splash_around_self" }, Ultimate = new HeroPower { Id = "versteinerung", Name = "Versteinerung", Text = "Absorbiert massiv Schaden und wird extrem zäh.", Trigger = PowerTrigger.Command, Effect = "shield_and_reduction", Note = "Bindungs-/Aggroeffekt optional: wäre eine neue Zielwahlregel." }, Goal = "Front halten, Gegner binden, Wellen abfangen.", }, new PlannedHero { Id = "siegfried", Name = "Siegfried", People = "Mensch", Role = "Anführer / Frontkämpfer / Support", FormationRole = "front", Weapon = "Schwert (gold-blau)", Look = "Kurze blonde Haare, blaue Augen, goldene Paladinrüstung.", Ability = new HeroPower { Id = "schlachtruf", Name = "Schlachtruf", Text = "Stärkt nahe Verbündete.", Effect = "damage" }, Ultimate = new HeroPower { Id = "excalibur", Name = "Excalibur", Text = "Großer kritischer Flächenangriff mit kurzer Betäubung; trifft nicht die ganze Karte.", Trigger = PowerTrigger.Command, Effect = "area_strike_stun", Note = "Wirkbereich (Radius) und Betäubungsdauer sind Balanceparameter; Betäubung ist eine neue Regel." }, Goal = "Verbündete stärken und kritische Kämpfe drehen.", }, new PlannedHero { Id = "feena", Name = "Feena", People = "Waldelfe", Role = "Fernkampf-DPS / Boss- und Elitejägerin", FormationRole = "ranged", Weapon = "Bogen", Look = "Lange rote Haare, grüne Augen, grün-braune Lederrüstung, flinke naturverbundene Schützin.", Ability = new HeroPower { Id = "giftpfeile", Name = "Giftpfeile", Text = "Schaden über Zeit.", Effect = "dot" }, Ultimate = new HeroPower { Id = "turbopfeile", Name = "Turbopfeile", Text = "Stark erhöhtes Angriffstempo für kurze Zeit.", Trigger = PowerTrigger.Command, Effect = "attack_speed", Note = "Das Angriffstempo ist heute auf +50 % gedeckelt; das Ultimate braucht eine Ausnahme oder einen höheren Deckel." }, Goal = "Hoher anhaltender Fernkampfschaden, besonders gegen starke Einzelziele.", }, }; } }