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
|
|
|
}
|