diff --git a/mobile-app/lib/data/warband_roster.dart b/mobile-app/lib/data/warband_roster.dart index e276907..751ea96 100644 --- a/mobile-app/lib/data/warband_roster.dart +++ b/mobile-app/lib/data/warband_roster.dart @@ -66,6 +66,15 @@ class HenchmenGroup extends Unit { @JsonKey(defaultValue: false) bool large; + @JsonKey(defaultValue: false) + bool slowWitted; + + @JsonKey(defaultValue: false) + bool mount; + + @JsonKey(name: 'attackanimal', defaultValue: false) + bool attackAnimal; + @JsonKey( fromJson: Unit._statsFromJson, toJson: Unit._statsToJson, required: true) final Stats stats; @@ -76,8 +85,11 @@ class HenchmenGroup extends Unit { @JsonKey(fromJson: Unit._splitListFromJson, toJson: Unit._joinListToJson) final List armour; - HenchmenGroup( - this.header, this.stats, this.weapons, this.armour, this.large) { + @JsonKey(fromJson: Unit._splitListFromJson, toJson: Unit._joinListToJson) + final List rules; + + HenchmenGroup(this.header, this.stats, this.weapons, this.armour, this.rules, + this.large, this.slowWitted, this.mount, this.attackAnimal) { this.name = this.header['name']; this.type = this.header['type']; this.number = int.tryParse(this.header['number']) ?? 1; @@ -146,16 +158,35 @@ class Hero extends Unit { @JsonKey(fromJson: Unit._splitListFromJson, toJson: Unit._joinListToJson) final List rules; + @JsonKey(fromJson: Unit._splitListFromJson, toJson: Unit._joinListToJson) + final List injuries; + @JsonKey(defaultValue: 0) final int warbandaddition; @JsonKey(defaultValue: false) bool large; + @JsonKey(defaultValue: false) + bool slowWitted; @JsonKey(defaultValue: false, name: 'hiredsword') final bool hiredSword; - Hero(this.stats, this.skilllists, this.weapons, this.armour, this.rules, - this.warbandaddition, this.large, this.header, this.hiredSword) { + @JsonKey(defaultValue: false, name: 'dramatispersonae') + final bool dramatisPersonae; + + Hero( + this.stats, + this.skilllists, + this.weapons, + this.armour, + this.rules, + this.injuries, + this.warbandaddition, + this.large, + this.header, + this.hiredSword, + this.dramatisPersonae, + this.slowWitted) { this.name = this.header['name']; this.type = this.header['type']; this.experience = int.tryParse(this.header['experience']) ?? 0; @@ -334,6 +365,10 @@ class WarbandRoster { if (henchmenGroup.large) { rating += 15 * henchmenGroup.number; + } else { + if (henchmenGroup.mount || henchmenGroup.attackAnimal) { + rating += 5 * henchmenGroup.number; + } } }); diff --git a/mobile-app/lib/data/warband_roster.g.dart b/mobile-app/lib/data/warband_roster.g.dart index 30dc91f..4c66c2d 100644 --- a/mobile-app/lib/data/warband_roster.g.dart +++ b/mobile-app/lib/data/warband_roster.g.dart @@ -13,7 +13,11 @@ HenchmenGroup _$HenchmenGroupFromJson(Map json) { Unit._statsFromJson(json['stats'] as String), Unit._splitListFromJson(json['weapons'] as String), Unit._splitListFromJson(json['armour'] as String), + Unit._splitListFromJson(json['rules'] as String), json['large'] as bool ?? false, + json['slowWitted'] as bool ?? false, + json['mount'] as bool ?? false, + json['attackanimal'] as bool ?? false, ); } @@ -21,9 +25,13 @@ Map _$HenchmenGroupToJson(HenchmenGroup instance) => { 'group': HenchmenGroup._henchmengroupHeaderToJson(instance.header), 'large': instance.large, + 'slowWitted': instance.slowWitted, + 'mount': instance.mount, + 'attackanimal': instance.attackAnimal, 'stats': Unit._statsToJson(instance.stats), 'weapons': Unit._joinListToJson(instance.weapons), 'armour': Unit._joinListToJson(instance.armour), + 'rules': Unit._joinListToJson(instance.rules), }; Hero _$HeroFromJson(Map json) { @@ -34,10 +42,13 @@ Hero _$HeroFromJson(Map json) { Unit._splitListFromJson(json['weapons'] as String), Unit._splitListFromJson(json['armour'] as String), Unit._splitListFromJson(json['rules'] as String), + Unit._splitListFromJson(json['injuries'] as String), json['warbandaddition'] as int ?? 0, json['large'] as bool ?? false, Hero._heroHeaderFromJson(json['hero'] as String), json['hiredsword'] as bool ?? false, + json['dramatispersonae'] as bool ?? false, + json['slowWitted'] as bool ?? false, ); } @@ -48,9 +59,12 @@ Map _$HeroToJson(Hero instance) => { 'weapons': Unit._joinListToJson(instance.weapons), 'armour': Unit._joinListToJson(instance.armour), 'rules': Unit._joinListToJson(instance.rules), + 'injuries': Unit._joinListToJson(instance.injuries), 'warbandaddition': instance.warbandaddition, 'large': instance.large, + 'slowWitted': instance.slowWitted, 'hiredsword': instance.hiredSword, + 'dramatispersonae': instance.dramatisPersonae, }; WarbandRoster _$WarbandRosterFromJson(Map json) {