Skip to content

Commit

Permalink
[Domain] Added an entity to store the characters and the weapons
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed Jan 19, 2022
1 parent 484235d commit b72c4b1
Show file tree
Hide file tree
Showing 11 changed files with 123 additions and 6 deletions.
21 changes: 21 additions & 0 deletions lib/domain/app_constants.dart
Expand Up @@ -860,3 +860,24 @@ int getCurrentRealmCurrency(int initialRealmCurrency, int currentTrustRank, Real
int getRealmMaxCurrency(int currentTrustRank) => realmTrustRank.entries.firstWhere((kvp) => kvp.key == currentTrustRank).value;

int getRealmIncreaseRatio(RealmRankType type) => realmIncreasingRatio.entries.firstWhere((kvp) => kvp.key == type).value;

int minWeaponRefinementLevel = 1;

bool canWeaponBeRefined(int rarity) {
final maxRefinement = getWeaponMaxRefinementLevel(rarity);
return maxRefinement > 0;
}

int getWeaponMaxRefinementLevel(int rarity) {
switch (rarity) {
case 5:
case 4:
case 3:
return 5;
case 2:
case 1:
return 0;
default:
throw Exception('Invalid weapon rarity');
}
}
3 changes: 2 additions & 1 deletion lib/domain/models/custom_builds/custom_build_model.dart
Expand Up @@ -14,8 +14,9 @@ class CustomBuildModel with _$CustomBuildModel {
required bool showOnCharacterDetail,
required bool isRecommended,
required CharacterCardModel character,
required List<WeaponCardModel> weapons,
required List<CustomBuildWeaponModel> weapons,
required List<CustomBuildArtifactModel> artifacts,
required List<CustomBuildTeamCharacterModel> teamCharacters,
required List<CustomBuildNoteModel> notes,
required List<CharacterSkillType> skillPriorities,
}) = _CustomBuildModel;
Expand Down
@@ -0,0 +1,16 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/enums/enums.dart';

part 'custom_build_team_character_model.freezed.dart';

@freezed
class CustomBuildTeamCharacterModel with _$CustomBuildTeamCharacterModel {
const factory CustomBuildTeamCharacterModel({
required String key,
required int index,
required String name,
required String image,
required CharacterRoleType roleType,
required CharacterRoleSubType subType,
}) = _CustomBuildTeamCharacterModel;
}
19 changes: 19 additions & 0 deletions lib/domain/models/custom_builds/custom_build_weapon_model.dart
@@ -0,0 +1,19 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:shiori/domain/enums/enums.dart';

part 'custom_build_weapon_model.freezed.dart';

@freezed
class CustomBuildWeaponModel with _$CustomBuildWeaponModel {
const factory CustomBuildWeaponModel({
required String key,
required int index,
required int rarity,
required int refinement,
required double baseAtk,
required StatType subStatType,
required double subStatValue,
required String name,
required String image,
}) = _CustomBuildWeaponModel;
}
2 changes: 2 additions & 0 deletions lib/domain/models/entities.dart
Expand Up @@ -4,6 +4,8 @@ export 'entities/calculator/calculator_session.dart';
export 'entities/custom_builds/custom_build.dart';
export 'entities/custom_builds/custom_build_artifact.dart';
export 'entities/custom_builds/custom_build_note.dart';
export 'entities/custom_builds/custom_build_team_character.dart';
export 'entities/custom_builds/custom_build_weapon.dart';
export 'entities/game_code/game_code.dart';
export 'entities/game_code/game_code_reward.dart';
export 'entities/inventory/inventory_item.dart';
Expand Down
6 changes: 1 addition & 5 deletions lib/domain/models/entities/custom_builds/custom_build.dart
Expand Up @@ -20,12 +20,9 @@ class CustomBuild extends HiveObject {
bool showOnCharacterDetail;

@HiveField(6)
List<String> weaponKeys;

@HiveField(7)
List<int> skillPriorities;

@HiveField(8)
@HiveField(7)
bool isRecommended;

CustomBuild(
Expand All @@ -34,7 +31,6 @@ class CustomBuild extends HiveObject {
this.title,
this.roleType,
this.roleSubType,
this.weaponKeys,
this.skillPriorities,
this.isRecommended,
);
Expand Down
@@ -0,0 +1,24 @@
import 'package:hive/hive.dart';
import 'package:shiori/domain/enums/enums.dart';

part 'custom_build_team_character.g.dart';

@HiveType(typeId: 21)
class CustomBuildTeamCharacter extends HiveObject {
@HiveField(0)
final int buildItemKey;

@HiveField(1)
int index;

@HiveField(2)
String characterKey;

@HiveField(3)
CharacterRoleType roleType;

@HiveField(4)
CharacterRoleSubType subType;

CustomBuildTeamCharacter(this.buildItemKey, this.index, this.characterKey, this.roleType, this.subType);
}
20 changes: 20 additions & 0 deletions lib/domain/models/entities/custom_builds/custom_build_weapon.dart
@@ -0,0 +1,20 @@
import 'package:hive/hive.dart';

part 'custom_build_weapon.g.dart';

@HiveType(typeId: 22)
class CustomBuildWeapon extends HiveObject {
@HiveField(0)
final int buildItemKey;

@HiveField(1)
String weaponKey;

@HiveField(2)
int index;

@HiveField(3)
int refinement;

CustomBuildWeapon(this.buildItemKey, this.weaponKey, this.index, this.refinement);
}
4 changes: 4 additions & 0 deletions lib/domain/models/models.dart
Expand Up @@ -14,6 +14,8 @@ export 'characters/character_talent_ascension_model.dart';
export 'custom_builds/custom_build_artifact_model.dart';
export 'custom_builds/custom_build_model.dart';
export 'custom_builds/custom_build_note_model.dart';
export 'custom_builds/custom_build_team_character_model.dart';
export 'custom_builds/custom_build_weapon_model.dart';
export 'db/artifacts/artifact_file_model.dart';
export 'db/artifacts/artifacts_file.dart';
export 'db/characters/character_file_model.dart';
Expand Down Expand Up @@ -54,6 +56,8 @@ export 'monsters/monster_card_model.dart';
export 'notifications/notification_item.dart';
export 'notifications/notification_item_image.dart';
export 'settings/app_settings.dart';
export 'sorting/sort_result.dart';
export 'sorting/sortable_item.dart';
export 'tierlist/tierlist_row_model.dart';
export 'weapons/weapon_ascension_model.dart';
export 'weapons/weapon_card_model.dart';
Expand Down
8 changes: 8 additions & 0 deletions lib/domain/models/sorting/sort_result.dart
@@ -0,0 +1,8 @@
import 'package:shiori/domain/models/sorting/sortable_item.dart';

class SortResult {
final bool somethingChanged;
final List<SortableItem> items;

SortResult(this.somethingChanged, this.items);
}
6 changes: 6 additions & 0 deletions lib/domain/models/sorting/sortable_item.dart
@@ -0,0 +1,6 @@
class SortableItem {
final String key;
final String text;

SortableItem(this.key, this.text);
}

0 comments on commit b72c4b1

Please sign in to comment.