@@ -116,6 +116,7 @@ public class TableParser {
116116 private readonly XmlSerializer fameLimitSerializer ;
117117 private readonly XmlSerializer fameLogSerializer ;
118118 private readonly XmlSerializer famePickMethodSerializer ;
119+ private readonly XmlSerializer characterAbilitySerializer ;
119120
120121 private readonly string locale ;
121122 private readonly string language ;
@@ -226,6 +227,7 @@ public TableParser(M2dReader xmlReader, string language) {
226227 fameLimitSerializer = new XmlSerializer ( typeof ( FameLimitRoot ) ) ;
227228 fameLogSerializer = new XmlSerializer ( typeof ( FameLogRoot ) ) ;
228229 famePickMethodSerializer = new XmlSerializer ( typeof ( FamePickMethod ) ) ;
230+ characterAbilitySerializer = new XmlSerializer ( typeof ( CharacterAbilityRoot ) ) ;
229231
230232 locale = FeatureLocaleFilter . Locale . ToLower ( ) ;
231233 this . language = language ;
@@ -1733,4 +1735,15 @@ public IEnumerable<JobTableNew> ParseJobTableNew() {
17331735 yield return ( pickMethod . type , pickMethod . repeatType , pickMethod ) ;
17341736 }
17351737 }
1738+
1739+ public IEnumerable < ( int Id , CharacterAbility Ability ) > ParseCharacterAbility ( ) {
1740+ string xml = Sanitizer . RemoveEmpty ( xmlReader . GetString ( xmlReader . GetEntry ( $ "table/characterability.xml") ) ) ;
1741+ var reader = XmlReader . Create ( new StringReader ( xml ) ) ;
1742+ var data = characterAbilitySerializer . Deserialize ( reader ) as CharacterAbilityRoot ;
1743+ Debug . Assert ( data != null ) ;
1744+
1745+ foreach ( CharacterAbility entry in data . ability ) {
1746+ yield return ( entry . id , entry ) ;
1747+ }
1748+ }
17361749}
0 commit comments