Skip to content

Commit

Permalink
Merge pull request #333 from Ariemeth/trait_info
Browse files Browse the repository at this point in the history
Include trait information
  • Loading branch information
Ariemeth authored Dec 12, 2023
2 parents ca80a96 + 4237de6 commit fe6288b
Show file tree
Hide file tree
Showing 32 changed files with 989 additions and 796 deletions.
2 changes: 1 addition & 1 deletion assets/data/units/north.json
Original file line number Diff line number Diff line change
Expand Up @@ -2345,7 +2345,7 @@
"ew": "5+",
"react-weapons": "LAC (T Link)",
"mounted-weapons": "-",
"traits": "Transport: 2 Squads, CommsECM, ECCM, Stealth (Aux)",
"traits": "Transport: 2 Squads, Comms, ECM, ECCM, Stealth (Aux)",
"type": "Vehicle",
"height": 1
},
Expand Down
10 changes: 5 additions & 5 deletions assets/data/units/peace_river.json
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@
"ew": "4+",
"react-weapons": "MRF, LP, LVB",
"mounted-weapons": "-",
"traits": "Hands, Agile, Airdrop, Comms, SatUp, ECM+ (Aux), Sensors:36 (Aux)",
"traits": "Hands, Agile, Airdrop, Comms, SatUp, ECM+ (Aux), Sensors:36 (Aux)",
"type": "Gear",
"height": 1.5
}
Expand Down Expand Up @@ -702,7 +702,7 @@
"ew": "5+",
"react-weapons": "LAC (Precise Silent), LVB",
"mounted-weapons": "LRP",
"traits": "Hands, Agile, Airdrop, Vet, Comms, Stealth (Aux)",
"traits": "Hands, Agile, Airdrop, Vet, Comms, Stealth (Aux)",
"type": "Gear",
"height": 1.5
},
Expand Down Expand Up @@ -821,7 +821,7 @@
"ew": "5+",
"react-weapons": "LPA, LVB",
"mounted-weapons": "LRP",
"traits": "Hands, Agile, Airdrop, Vet, Comms, Stealth (Aux)",
"traits": "Hands, Agile, Airdrop, Vet, Comms, Stealth (Aux)",
"type": "Gear",
"height": 1.5
},
Expand All @@ -838,7 +838,7 @@
"ew": "5+",
"react-weapons": "MRL, LVB",
"mounted-weapons": "LRP",
"traits": "Hands, Agile, Airdrop, Vet, Comms, Stealth (Aux)",
"traits": "Hands, Agile, Airdrop, Vet, Comms, Stealth (Aux)",
"type": "Gear",
"height": 1.5
}
Expand Down Expand Up @@ -1617,7 +1617,7 @@
"ew": "5+",
"react-weapons": "MRF (AA Silent)",
"mounted-weapons": "MRP (Link)",
"traits": "Agile, ECM, Stealth TD, VTOL",
"traits": "Agile, ECM, Stealth, TD, VTOL",
"type": "Vehicle",
"height": 2
}
Expand Down
2 changes: 1 addition & 1 deletion assets/data/units/south.json
Original file line number Diff line number Diff line change
Expand Up @@ -2810,7 +2810,7 @@
"ew": "6+",
"react-weapons": "HMG (L Link Auto), HMG (R Link Auto)",
"mounted-weapons": "HFL (T Apex)",
"traits": "Amphib, Offroad, SmokeTransport: 2 Squads",
"traits": "Amphib, Offroad, Smoke, Transport: 2 Squads",
"type": "Vehicle",
"height": 1
}
Expand Down
24 changes: 18 additions & 6 deletions lib/models/mods/duelist/duelist_modification.dart
Original file line number Diff line number Diff line change
Expand Up @@ -109,13 +109,13 @@ class DuelistModification extends BaseModification {
);
mod.addMod<List<Trait>>(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Duelist')),
createAddTraitToList(Trait.Duelist()),
description: '+Duelist',
);

mod.addMod(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Vet')),
createAddTraitToList(Trait.Vet()),
description: '+Vet',
);

Expand Down Expand Up @@ -174,7 +174,10 @@ class DuelistModification extends BaseModification {

independentOperator.addMod(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Independent Operator')),
createAddTraitToList(const Trait(
name: 'Independent Operator',
description: 'Duelist is an Independent Operator and will be the' +
' sole model in a combat group')),
description: 'Duelist is an Independent Operator and will be the sole ' +
'model in a combat group',
);
Expand Down Expand Up @@ -225,7 +228,11 @@ class DuelistModification extends BaseModification {
})
..addMod(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Lead by Example')),
createAddTraitToList(const Trait(
name: 'Lead by Example',
description: 'duelist will gain the following ability during the ' +
' game. Once per round, for each duelist, whenever a duelist ' +
' damages an enemy model, give one SP to one model in formation with the duelist.')),
description:
'duelist will gain the following ability during the game. Once ' +
'per round, for each duelist, whenever a duelist damages an enemy ' +
Expand Down Expand Up @@ -493,8 +500,13 @@ class DuelistModification extends BaseModification {
return rs!.duelistModCheck(u, cg!, modID: aceGunnerId);
})
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Ace Gunner')))
..addMod(
UnitAttribute.traits,
createAddTraitToList(const Trait(
name: 'Ace Gunner',
description: 'This model does not suffer the -1D6 modifier when' +
' using the Split weapon trait',
)))
..addMod(
UnitAttribute.special,
createAddStringToList(
Expand Down
11 changes: 5 additions & 6 deletions lib/models/mods/factionUpgrades/peace_river.dart
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class PeaceRiverFactionMods extends FactionModification {
..addMod<int>(UnitAttribute.ew, createSetIntMod(4), description: 'EW: 4')
..addMod<List<Trait>>(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Agile')),
createAddTraitToList(Trait.Agile()),
description: '+Agile',
);
}
Expand Down Expand Up @@ -143,8 +143,8 @@ class PeaceRiverFactionMods extends FactionModification {
)
..addMod<int>(UnitAttribute.tv, createSimpleIntMod(1),
description: 'TV: +1')
..addMod<List<Trait>>(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Shield')),
..addMod<List<Trait>>(
UnitAttribute.traits, createAddTraitToList(Trait.Shield()),
description: '+Shield')
..addMod<List<Weapon>>(UnitAttribute.weapons, (value) {
final newList = value.toList();
Expand Down Expand Up @@ -219,7 +219,7 @@ class PeaceRiverFactionMods extends FactionModification {
newList.remove(selectedWeaponToRemove);
newList.add(Weapon.fromWeapon(
selectedWeaponToRemove,
addTraits: [const Trait(name: 'Advanced')],
addTraits: [Trait.Advanced()],
));

return newList;
Expand Down Expand Up @@ -441,8 +441,7 @@ class PeaceRiverFactionMods extends FactionModification {
}, dynamicDescription: () {
return '${unitRPToRemove.isNotEmpty ? '-$unitRPToRemove' : ''}';
})
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Shield')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Shield()),
description: '+Shield');
}
/*
Expand Down
4 changes: 2 additions & 2 deletions lib/models/mods/standardUpgrades/standard_modification.dart
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class StandardModification extends BaseModification {
factory StandardModification.antiAirTrait(Unit u, CombatGroup cg) {
final List<ModificationOption> _options = [];
final RegExp weaponMatch = RegExp(r'^(AC|RC|LC|RLC)');
final traitToAdd = const Trait(name: 'AA');
final traitToAdd = Trait.AA();

final allWeapons = u.weapons;
allWeapons
Expand Down Expand Up @@ -694,7 +694,7 @@ class StandardModification extends BaseModification {
)
..addMod(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Smoke')),
createAddTraitToList(Trait.Smoke()),
description: '+Smoke',
);
}
Expand Down
41 changes: 14 additions & 27 deletions lib/models/mods/unitUpgrades/black_talon.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,40 +13,35 @@ final UnitModification psi = UnitModification(name: 'Psi Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Psi'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms');

final UnitModification darkJaguarPsi = UnitModification(name: 'Psi Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Psi'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms')
..addMod(
UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'SatUp', isAux: true)),
createAddTraitToList(Trait.SatUp(isAux: true)),
description: '+SatUp (Aux)',
);

final UnitModification phi = UnitModification(name: 'Phi Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Phi'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'ECCM')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ECCM()),
description: '+ECCM');

final UnitModification darkMambaPsi = UnitModification(name: 'Psi Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Psi'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'SatUp')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SatUp()),
description: '+SatUp');

final UnitModification xi = UnitModification(name: 'Xi Upgrade')
Expand Down Expand Up @@ -119,17 +114,13 @@ final UnitModification darkCoyotePsi = UnitModification(name: 'Psi Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(3), description: 'TV +3')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Psi'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'SP', level: 1)),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SP(1)),
description: '+SP:+1')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'SatUp')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SatUp()),
description: '+SatUp')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'ECCM')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ECCM()),
description: '+ECCM');

final UnitModification iota = UnitModification(name: 'Iota Upgrade')
Expand All @@ -154,8 +145,7 @@ final UnitModification spectre = UnitModification(name: 'Spectra Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(2), description: 'TV +2')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Spectre'))
..addMod(UnitAttribute.ew, createSetIntMod(3), description: 'EW 3+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'ECM+')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ECMPlus()),
description: '+ECM+');

final UnitModification darkHoplitePsi = UnitModification(
Expand All @@ -166,14 +156,11 @@ final UnitModification darkHoplitePsi = UnitModification(
..addMod(UnitAttribute.tv, createSimpleIntMod(2), description: 'TV +2')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Psi'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'SP', level: 1)),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SP(1)),
description: '+SP:+1')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'SatUp')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SatUp()),
description: '+SatUp');

final UnitModification blackwindTheta = UnitModification(name: 'Theta Upgrade')
Expand Down
6 changes: 2 additions & 4 deletions lib/models/mods/unitUpgrades/caprice.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ import 'package:gearforce/models/weapons/weapons.dart';
final UnitModification command = UnitModification(name: 'Command Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Command'))
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'SP', level: 1)),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SP(1)),
description: '+SP:+1');

final UnitModification mortar = UnitModification(name: 'Mortar Upgrade')
Expand All @@ -22,6 +21,5 @@ final UnitModification command2 = UnitModification(name: 'Command Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Command'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms');
44 changes: 17 additions & 27 deletions lib/models/mods/unitUpgrades/cef.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,22 @@ final UnitModification command = UnitModification(name: 'Command Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Command'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'SatUp')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SatUp()),
description: '+SatUp')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'ECCM', isAux: true)),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ECCM(isAux: true)),
description: '+ECCM (Aux)');

final UnitModification mobilityPack6 = UnitModification(
name: 'Mobility Pack Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(
UnitAttribute.name, createSimpleStringMod(false, 'with Mobility Pack'))
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Airdrop')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Airdrop()),
description: '+Airdrop')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Jetpack', level: 6, isAux: true)),
..addMod(
UnitAttribute.traits, createAddTraitToList(Trait.Jetpack(6, isAux: true)),
description: '+Jetpack:6 (Aux)');

final UnitModification stealth = UnitModification(name: 'Stealth Upgrade')
Expand All @@ -41,20 +37,19 @@ final UnitModification stealth = UnitModification(name: 'Stealth Upgrade')
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(UnitAttribute.roles, createAddRoleToList(Role(name: RoleType.SO)),
description: '+SO')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Stealth', isAux: true)),
..addMod(
UnitAttribute.traits, createAddTraitToList(Trait.Stealth(isAux: true)),
description: '+Stealth (Aux)');

final UnitModification mobilityPack5 = UnitModification(
name: 'Mobility Pack Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(
UnitAttribute.name, createSimpleStringMod(false, 'with Mobility Pack'))
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Airdrop')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Airdrop()),
description: '+Airdrop')
..addMod(UnitAttribute.traits,
createAddTraitToList(const Trait(name: 'Jetpack', level: 5, isAux: true)),
..addMod(
UnitAttribute.traits, createAddTraitToList(Trait.Jetpack(5, isAux: true)),
description: '+Jetpack:5 (Aux)');

final UnitModification mrl = UnitModification(name: 'MRL Upgrade')
Expand All @@ -80,8 +75,7 @@ final UnitModification grelCrew2 = UnitModification(name: 'GREL Crew Upgrade')
..addMod(UnitAttribute.gunnery, createSetIntMod(3), description: 'GU 3+')
..addMod(UnitAttribute.piloting, createSetIntMod(3), description: 'PI 3+')
..addMod(UnitAttribute.ew, createSetIntMod(3), description: 'EW 3+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'React+')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ReactPlus()),
description: '+React+');

final UnitModification grelCrew3 = UnitModification(name: 'GREL Crew Upgrade')
Expand All @@ -90,8 +84,7 @@ final UnitModification grelCrew3 = UnitModification(name: 'GREL Crew Upgrade')
..addMod(UnitAttribute.gunnery, createSetIntMod(3), description: 'GU 3+')
..addMod(UnitAttribute.piloting, createSetIntMod(3), description: 'PI 3+')
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'React+')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ReactPlus()),
description: '+React+');

final UnitModification grelCrew4 = UnitModification(name: 'GREL Crew Upgrade')
Expand All @@ -109,21 +102,18 @@ final UnitModification hpc64Command = UnitModification(
..addMod(UnitAttribute.tv, createSimpleIntMod(2), description: 'TV +2')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Command'))
..addMod(UnitAttribute.ew, createSetIntMod(4), description: 'EW 4+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'SatUp')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.SatUp()),
description: '+SatUp')
..addMod(UnitAttribute.traits, createAddTraitToList(const Trait(name: 'ECM')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.ECM()),
description: '+ECM');

final UnitModification jan = UnitModification(name: 'Jan Upgrade')
..addMod(UnitAttribute.tv, createSimpleIntMod(1), description: 'TV +1')
..addMod(UnitAttribute.name, createSimpleStringMod(true, 'Jan'))
..addMod(UnitAttribute.ew, createSetIntMod(5), description: 'EW 5+')
..addMod(
UnitAttribute.traits, createAddTraitToList(const Trait(name: 'Comms')),
..addMod(UnitAttribute.traits, createAddTraitToList(Trait.Comms()),
description: '+Comms');

final UnitModification squad = UnitModification(name: 'Squad')
Expand Down
Loading

0 comments on commit fe6288b

Please sign in to comment.