Un ptit soucis auquel je viens de penser :
Si on a deux rangs d'un même sort :
Code:
<Spell id="125">
<Rank val="1"/>
</Spell>
<Spell id="126">
<Rank val="2"/>
</Spell>
... on a aucun moyen de savoir que le sort 126 est le rang 2 du sort 125 ! (mis à part qu'ils sont l'un à côté de l'autre dans la base de donnée, mais faut pas s'appuyer là dessus).
Je propose donc de changer un peu la structure du fichier :
Code:
<SpellFamily>
<Spell id="125">
<Rank val="1"/>
</Spell>
<Spell id="126">
<Rank val="2"/>
</Spell>
</SpellFamily>
Pas besoin de mettre de paramètres à "SpellFamily", c'est juste pour créer une hiérarchie.
Autre petit détail, pour me simplifier la vie : il faut que les rangs soit ordonnés de manière croissante : le rang 1, puis le rang 2, ect. Sinon ça va être la galère pour gérer l'héritage ^^
Ah et pour finir, enfait je vais virer la balise "GlobalCooldown".
Ça sera géré dans les scripts...
Edit : non finalement c'est pas fini ^^
C'est pas important pour le moment, mais je l'écris juste pour ne pas oublier :
Il faudra dire à quel(s) cooldown(s) le sort est lié. J'ai pensé d'abord à le faire dans un script, mais enfait ça n'a pas vraiment de sens. Il me semble que ça serait plus clean de faire un truc du style :
Code:
<Spell>
...
<Cooldowns>
<Cooldown name="Global" duration="0.5"/>
<Cooldown name="FireBlast" duration="8"/>
</Cooldowns>
...
</Spell>
... ensuite dans les scripts :
Code:
<OnCastBegin>
...
UnitTriggerCooldown(caster, "Global");
</OnCastBegin>
<OnCasted>
...
UnitTriggerCooldown(caster, "FireBlast");
</OnCasted>
On pourra faire pareil avec les objets plus tard (exemple : les trinkets qui ont un cooldown partagé).