| 
									
										
										
										
											2020-02-29 01:40:05 +01:00
										 |  |  | import 'package:aidedejeu_flutter/models/filters.dart'; | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | import 'package:json_annotation/json_annotation.dart'; | 
					
						
							| 
									
										
										
										
											2020-02-27 17:24:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | part 'items.g.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  | class Item { | 
					
						
							| 
									
										
										
										
											2020-02-28 17:59:22 +01:00
										 |  |  |   String id; | 
					
						
							|  |  |  |   String rootId; | 
					
						
							|  |  |  |   String parentLink; | 
					
						
							|  |  |  |   String name; | 
					
						
							|  |  |  |   String normalizedName; | 
					
						
							|  |  |  |   String parentName; | 
					
						
							|  |  |  |   int nameLevel; | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   String altName; | 
					
						
							|  |  |  |   String altNameText; | 
					
						
							| 
									
										
										
										
											2020-02-28 17:59:22 +01:00
										 |  |  |   String normalizedAlias; | 
					
						
							|  |  |  |   String source; | 
					
						
							|  |  |  |   String markdown; | 
					
						
							|  |  |  |   String fullText; | 
					
						
							|  |  |  |   String itemType; | 
					
						
							|  |  |  |   List<Item> children; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   Item();   | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   factory Item.fromJson(Map<String, dynamic> map) => _$ItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$ItemToJson(this); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							|  |  |  | class GenericItem extends Item { | 
					
						
							|  |  |  |   GenericItem(); | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory GenericItem.fromJson(Map<String, dynamic> map) => _$GenericItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$GenericItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  | class MonsterItem extends Item { | 
					
						
							| 
									
										
										
										
											2020-02-28 17:59:22 +01:00
										 |  |  |   String family; | 
					
						
							|  |  |  |   String type; | 
					
						
							|  |  |  |   String size; | 
					
						
							|  |  |  |   String alignment; | 
					
						
							|  |  |  |   String terrain; | 
					
						
							|  |  |  |   String legendary; | 
					
						
							|  |  |  |   String armorClass; | 
					
						
							|  |  |  |   String hitPoints; | 
					
						
							|  |  |  |   String speed; | 
					
						
							|  |  |  |   String strength; | 
					
						
							|  |  |  |   String dexterity; | 
					
						
							|  |  |  |   String constitution; | 
					
						
							|  |  |  |   String intelligence; | 
					
						
							|  |  |  |   String wisdom; | 
					
						
							|  |  |  |   String charisma; | 
					
						
							|  |  |  |   String savingThrows; | 
					
						
							|  |  |  |   String skills; | 
					
						
							|  |  |  |   String damageVulnerabilities; | 
					
						
							|  |  |  |   String damageImmunities; | 
					
						
							|  |  |  |   String conditionImmunities; | 
					
						
							|  |  |  |   String damageResistances; | 
					
						
							|  |  |  |   String senses; | 
					
						
							|  |  |  |   String languages; | 
					
						
							|  |  |  |   String challenge; | 
					
						
							|  |  |  |   int xp; | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   MonsterItem(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   factory MonsterItem.fromJson(Map<String, dynamic> map) => _$MonsterItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$MonsterItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  | class SpellItem extends Item { | 
					
						
							|  |  |  |   String family; | 
					
						
							|  |  |  |   String level; | 
					
						
							|  |  |  |   String type; | 
					
						
							|  |  |  |   String ritual; | 
					
						
							|  |  |  |   String castingTime; | 
					
						
							|  |  |  |   String range; | 
					
						
							|  |  |  |   String components; | 
					
						
							|  |  |  |   String verbalComponent; | 
					
						
							|  |  |  |   String somaticComponent; | 
					
						
							|  |  |  |   String materialComponent; | 
					
						
							|  |  |  |   String concentration; | 
					
						
							|  |  |  |   String duration; | 
					
						
							|  |  |  |   String classes; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   SpellItem(); | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory SpellItem.fromJson(Map<String, dynamic> map) => _$SpellItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$SpellItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-02-22 00:59:48 +01:00
										 |  |  | class Items extends Item { | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   Items(); | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory Items.fromJson(Map<String, dynamic> map) => _$ItemsFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$ItemsToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-22 00:59:48 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | class FilteredItems extends Items { | 
					
						
							| 
									
										
										
										
											2020-02-28 17:59:22 +01:00
										 |  |  |   String family; | 
					
						
							| 
									
										
										
										
											2020-02-22 00:59:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   FilteredItems(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   @JsonKey(ignore: true) | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   List<Filter> toFilterList() => [].toList(); | 
					
						
							| 
									
										
										
										
											2020-02-25 17:51:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory FilteredItems.fromJson(Map<String, dynamic> map) => _$FilteredItemsFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$FilteredItemsToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-26 17:20:09 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2020-02-25 17:51:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-02-22 00:59:48 +01:00
										 |  |  | class MonsterItems extends FilteredItems { | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   String types; | 
					
						
							|  |  |  |   String challenges; | 
					
						
							|  |  |  |   String sizes; | 
					
						
							|  |  |  |   String sources; | 
					
						
							|  |  |  |   String terrains; | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   Filter get typesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Types", | 
					
						
							|  |  |  |         displayName: "monstersTypes", | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: types?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get challengesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Challenges", | 
					
						
							|  |  |  |         displayName: "monstersChallenges", | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |         type: FilterType.Range, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: challenges?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get sizesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Sizes", | 
					
						
							|  |  |  |         displayName: "monstersSizes", | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |         type: FilterType.Range, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: sizes?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get sourcesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Sources", | 
					
						
							|  |  |  |         displayName: "monstersSources", | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: sources?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get terrainsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Terrains", | 
					
						
							|  |  |  |         displayName: "monstersTerrains", | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: terrains?.split("|")); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   MonsterItems(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							| 
									
										
										
										
											2020-02-26 17:20:09 +01:00
										 |  |  |   List<Filter> toFilterList() => { | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         typesFilter, | 
					
						
							|  |  |  |         challengesFilter, | 
					
						
							|  |  |  |         sizesFilter, | 
					
						
							|  |  |  |         sourcesFilter, | 
					
						
							|  |  |  |         terrainsFilter, | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |       }.toList(); | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   factory MonsterItems.fromJson(Map<String, dynamic> map) => _$MonsterItemsFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$MonsterItemsToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-21 14:49:39 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  | class SpellItems extends FilteredItems { | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   String classes; | 
					
						
							|  |  |  |   String levels; | 
					
						
							|  |  |  |   String schools; | 
					
						
							|  |  |  |   String rituals; | 
					
						
							|  |  |  |   String castingTimes; | 
					
						
							|  |  |  |   String ranges; | 
					
						
							|  |  |  |   String verbalComponents; | 
					
						
							|  |  |  |   String somaticComponents; | 
					
						
							|  |  |  |   String materialComponents; | 
					
						
							|  |  |  |   String concentrations; | 
					
						
							|  |  |  |   String durations; | 
					
						
							|  |  |  |   String sources; | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get classesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Classes", | 
					
						
							|  |  |  |         displayName: "spellsClasses", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: classes?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get levelsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Levels", | 
					
						
							|  |  |  |         displayName: "spellsLevels", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: levels?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get schoolsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Schools", | 
					
						
							|  |  |  |         displayName: "spellsSchools", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: schools?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get ritualsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Rituals", | 
					
						
							|  |  |  |         displayName: "spellsRituals", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: rituals?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get castingTimesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "CastingTimes", | 
					
						
							|  |  |  |         displayName: "spellsCastingTimes", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: castingTimes?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get rangesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Ranges", | 
					
						
							|  |  |  |         displayName: "spellsRanges", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: ranges?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get verbalComponentsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "VerbalComponents", | 
					
						
							|  |  |  |         displayName: "spellsVerbalComponents", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: verbalComponents?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get somaticComponentsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "SomaticComponents", | 
					
						
							|  |  |  |         displayName: "spellsSomaticComponents", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: somaticComponents?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get materialComponentsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "MaterialComponents", | 
					
						
							|  |  |  |         displayName: "spellsMaterialComponents", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: materialComponents?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get concentrationsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Concentrations", | 
					
						
							|  |  |  |         displayName: "spellsConcentrations", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: concentrations?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get durationsFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Durations", | 
					
						
							|  |  |  |         displayName: "spellsDurations", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: durations?.split("|")); | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							|  |  |  |   Filter get sourcesFilter => Filter( | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |         name: "Sources", | 
					
						
							|  |  |  |         displayName: "spellsSources", | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |         type: FilterType.Choices, | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         values: sources?.split("|")); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   SpellItems(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @JsonKey(ignore: true) | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |   List<Filter> toFilterList() => { | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |         classesFilter, | 
					
						
							|  |  |  |         levelsFilter, | 
					
						
							|  |  |  |         schoolsFilter, | 
					
						
							|  |  |  |         ritualsFilter, | 
					
						
							|  |  |  |         castingTimesFilter, | 
					
						
							|  |  |  |         rangesFilter, | 
					
						
							|  |  |  |         verbalComponentsFilter, | 
					
						
							|  |  |  |         somaticComponentsFilter, | 
					
						
							|  |  |  |         materialComponentsFilter, | 
					
						
							|  |  |  |         concentrationsFilter, | 
					
						
							|  |  |  |         durationsFilter, | 
					
						
							|  |  |  |         sourcesFilter, | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |       }.toList(); | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   factory SpellItems.fromJson(Map<String, dynamic> map) => _$SpellItemsFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$SpellItemsToJson(this); | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  | class RaceItem extends Item { | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |   String fullName; | 
					
						
							|  |  |  |   bool hasSubRaces; | 
					
						
							|  |  |  |   String strengthBonus; | 
					
						
							|  |  |  |   String dexterityBonus; | 
					
						
							|  |  |  |   String constitutionBonus; | 
					
						
							|  |  |  |   String intelligenceBonus; | 
					
						
							|  |  |  |   String wisdomBonus; | 
					
						
							|  |  |  |   String charismaBonus; | 
					
						
							|  |  |  |   String dispatchedBonus; | 
					
						
							|  |  |  |   String maxDispatchedStrengthBonus; | 
					
						
							|  |  |  |   String maxDispatchedDexterityBonus; | 
					
						
							|  |  |  |   String maxDispatchedConstitutionBonus; | 
					
						
							|  |  |  |   String maxDispatchedIntelligenceBonus; | 
					
						
							|  |  |  |   String maxDispatchedWisdomBonus; | 
					
						
							|  |  |  |   String maxDispatchedCharismaBonus; | 
					
						
							|  |  |  |   String abilityScoreIncrease; | 
					
						
							|  |  |  |   String age; | 
					
						
							|  |  |  |   String alignment; | 
					
						
							|  |  |  |   String size; | 
					
						
							|  |  |  |   String speed; | 
					
						
							|  |  |  |   String darkvision; | 
					
						
							|  |  |  |   String languages; | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   RaceItem(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   factory RaceItem.fromJson(Map<String, dynamic> map) => _$RaceItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$RaceItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-03-01 00:27:51 +01:00
										 |  |  | class SubRaceItem extends RaceItem { | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |   String parentRaceId; | 
					
						
							| 
									
										
										
										
											2020-03-01 00:27:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   SubRaceItem(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   factory SubRaceItem.fromJson(Map<String, dynamic> map) => _$SubRaceItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$SubRaceItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-03-01 00:27:51 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  | class RaceItems extends FilteredItems { | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   RaceItems(); | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   @JsonKey(ignore: true) | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  |   @override | 
					
						
							|  |  |  |   List<Filter> toFilterList() { | 
					
						
							|  |  |  |     return [].toList(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory RaceItems.fromJson(Map<String, dynamic> map) => _$RaceItemsFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$RaceItemsToJson(this); | 
					
						
							| 
									
										
										
										
											2020-02-29 02:36:15 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  | class OriginItem extends Item { | 
					
						
							|  |  |  |   String regionsOfOrigin; | 
					
						
							|  |  |  |   String mainLanguages; | 
					
						
							|  |  |  |   String aspirations; | 
					
						
							|  |  |  |   String availableSkills; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   OriginItem(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   factory OriginItem.fromJson(Map<String, dynamic> map) => _$OriginItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$OriginItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  | class OriginItems extends FilteredItems { | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   OriginItems(); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  |   @JsonKey(ignore: true) | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  |   @override | 
					
						
							|  |  |  |   List<Filter> toFilterList() { | 
					
						
							|  |  |  |     return [].toList(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory OriginItems.fromJson(Map<String, dynamic> map) => _$OriginItemsFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$OriginItemsToJson(this); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-03-01 21:30:33 +01:00
										 |  |  | class BackgroundItem extends Item { | 
					
						
							|  |  |  |   String skillProficiencies; | 
					
						
							|  |  |  |   String masteredTools; | 
					
						
							|  |  |  |   String masteredLanguages; | 
					
						
							|  |  |  |   String equipment; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   BackgroundItem(); | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory BackgroundItem.fromJson(Map<String, dynamic> map) => _$BackgroundItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$BackgroundItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-03-01 21:30:33 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | @JsonSerializable(explicitToJson: true, fieldRename: FieldRename.pascal) | 
					
						
							| 
									
										
										
										
											2020-03-01 21:30:33 +01:00
										 |  |  | class SubBackgroundItem extends BackgroundItem { | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   SubBackgroundItem(); | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   factory SubBackgroundItem.fromJson(Map<String, dynamic> map) => _$SubBackgroundItemFromJson(map); | 
					
						
							|  |  |  |   Map<String, dynamic> toJson() => _$SubBackgroundItemToJson(this); | 
					
						
							| 
									
										
										
										
											2020-03-01 21:30:33 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  | Item itemFromMap(Map<String, dynamic> map) { | 
					
						
							| 
									
										
										
										
											2020-09-29 15:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |   switch (map["ItemType"]) { | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |     case "GenericItem": | 
					
						
							|  |  |  |       return GenericItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |     case "RaceItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return RaceItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |     case "SubRaceItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return SubRaceItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |     case "RaceItems": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return RaceItems.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  |     case "OriginItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return OriginItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-05-16 13:12:24 +02:00
										 |  |  |     case "OriginItems": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return OriginItems.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 21:30:33 +01:00
										 |  |  |     case "BackgroundItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return BackgroundItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 21:30:33 +01:00
										 |  |  |     case "SubBackgroundItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return SubBackgroundItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |     case "MonsterItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return MonsterItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-01 01:44:08 +01:00
										 |  |  |     case "MonsterItems": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return MonsterItems.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |     case "SpellItem": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return SpellItem.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-03-05 16:50:31 +01:00
										 |  |  |     case "SpellItems": | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |       return SpellItems.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-09-28 18:01:38 +02:00
										 |  |  |   return Item.fromJson(map); | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  | List<T> itemsFromMapList<T extends Item>(List<Map<String, dynamic>> mapList) { | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  |   return List.generate(mapList.length, (i) { | 
					
						
							| 
									
										
										
										
											2020-03-13 09:46:17 +01:00
										 |  |  |     return itemFromMap(mapList[i]); | 
					
						
							| 
									
										
										
										
											2020-02-19 15:50:44 +01:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2020-03-01 00:27:51 +01:00
										 |  |  | } |