add warband rating
This commit is contained in:
parent
9409f91330
commit
814e270eef
3 changed files with 36 additions and 6 deletions
|
@ -63,6 +63,9 @@ class HenchmenGroup extends Unit {
|
|||
@JsonKey(ignore: true)
|
||||
int experience;
|
||||
|
||||
@JsonKey(defaultValue: false)
|
||||
bool large;
|
||||
|
||||
@JsonKey(
|
||||
fromJson: Unit._statsFromJson, toJson: Unit._statsToJson, required: true)
|
||||
final Stats stats;
|
||||
|
@ -73,7 +76,8 @@ class HenchmenGroup extends Unit {
|
|||
@JsonKey(fromJson: Unit._splitListFromJson, toJson: Unit._joinListToJson)
|
||||
final List<String> armour;
|
||||
|
||||
HenchmenGroup(this.header, this.stats, this.weapons, this.armour) {
|
||||
HenchmenGroup(
|
||||
this.header, this.stats, this.weapons, this.armour, this.large) {
|
||||
this.name = this.header['name'];
|
||||
this.type = this.header['type'];
|
||||
this.number = int.tryParse(this.header['number']) ?? 1;
|
||||
|
@ -144,12 +148,14 @@ class Hero extends Unit {
|
|||
|
||||
@JsonKey(defaultValue: 0)
|
||||
final int warbandaddition;
|
||||
@JsonKey(defaultValue: false)
|
||||
bool large;
|
||||
|
||||
@JsonKey(defaultValue: false, name: 'hiredsword')
|
||||
final bool hiredSword;
|
||||
|
||||
Hero(this.stats, this.skilllists, this.weapons, this.armour, this.rules,
|
||||
this.warbandaddition, this.header, this.hiredSword) {
|
||||
this.warbandaddition, this.large, this.header, this.hiredSword) {
|
||||
this.name = this.header['name'];
|
||||
this.type = this.header['type'];
|
||||
this.experience = int.tryParse(this.header['experience']) ?? 0;
|
||||
|
@ -309,9 +315,29 @@ class WarbandRoster {
|
|||
this.race = this.nameAndRace['race'];
|
||||
}
|
||||
|
||||
int experience() {
|
||||
// TODO: Calculate
|
||||
return 1337;
|
||||
int rating() {
|
||||
int rating = 0;
|
||||
|
||||
heros.forEach((hero) {
|
||||
rating += hero.experience;
|
||||
rating += hero.warbandaddition;
|
||||
rating += 5;
|
||||
|
||||
if (hero.large) {
|
||||
rating += 15;
|
||||
}
|
||||
});
|
||||
|
||||
henchmenGroups.forEach((henchmenGroup) {
|
||||
rating += henchmenGroup.experience * henchmenGroup.number;
|
||||
rating += 5 * henchmenGroup.number;
|
||||
|
||||
if (henchmenGroup.large) {
|
||||
rating += 15 * henchmenGroup.number;
|
||||
}
|
||||
});
|
||||
|
||||
return rating;
|
||||
}
|
||||
|
||||
static HashMap<String, String> _warbandNameAndRaceFromJson(
|
||||
|
|
|
@ -13,12 +13,14 @@ HenchmenGroup _$HenchmenGroupFromJson(Map json) {
|
|||
Unit._statsFromJson(json['stats'] as String),
|
||||
Unit._splitListFromJson(json['weapons'] as String),
|
||||
Unit._splitListFromJson(json['armour'] as String),
|
||||
json['large'] as bool ?? false,
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> _$HenchmenGroupToJson(HenchmenGroup instance) =>
|
||||
<String, dynamic>{
|
||||
'group': HenchmenGroup._henchmengroupHeaderToJson(instance.header),
|
||||
'large': instance.large,
|
||||
'stats': Unit._statsToJson(instance.stats),
|
||||
'weapons': Unit._joinListToJson(instance.weapons),
|
||||
'armour': Unit._joinListToJson(instance.armour),
|
||||
|
@ -33,6 +35,7 @@ Hero _$HeroFromJson(Map json) {
|
|||
Unit._splitListFromJson(json['armour'] as String),
|
||||
Unit._splitListFromJson(json['rules'] as String),
|
||||
json['warbandaddition'] as int ?? 0,
|
||||
json['large'] as bool ?? false,
|
||||
Hero._heroHeaderFromJson(json['hero'] as String),
|
||||
json['hiredsword'] as bool ?? false,
|
||||
);
|
||||
|
@ -46,6 +49,7 @@ Map<String, dynamic> _$HeroToJson(Hero instance) => <String, dynamic>{
|
|||
'armour': Unit._joinListToJson(instance.armour),
|
||||
'rules': Unit._joinListToJson(instance.rules),
|
||||
'warbandaddition': instance.warbandaddition,
|
||||
'large': instance.large,
|
||||
'hiredsword': instance.hiredSword,
|
||||
};
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ class WarbandDrawerWidget extends StatelessWidget {
|
|||
badgeColor: Colors.black12,
|
||||
shape: BadgeShape.square,
|
||||
borderRadius: 2,
|
||||
badgeContent: Text(roster.experience().toString() + ' xp',
|
||||
badgeContent: Text(roster.rating().toString(),
|
||||
style: TextStyle(color: Colors.white)),
|
||||
),
|
||||
),
|
||||
|
|
Loading…
Reference in a new issue