Skip to content

Commit

Permalink
[Domain] Added an entity for the custom build notes
Browse files Browse the repository at this point in the history
  • Loading branch information
Wolfteam committed Jan 16, 2022
1 parent 3960469 commit e85fa20
Show file tree
Hide file tree
Showing 10 changed files with 69 additions and 5 deletions.
23 changes: 21 additions & 2 deletions lib/domain/app_constants.dart
Expand Up @@ -53,8 +53,8 @@ List<StatType> getArtifactPossibleMainStats(ArtifactType type) {
}
}

List<StatType> getArtifactPossibleSubStats() {
return [
List<StatType> getArtifactPossibleSubStats(StatType mainStat) {
final possibleValues = [
StatType.hp,
StatType.atk,
StatType.def,
Expand All @@ -66,6 +66,25 @@ List<StatType> getArtifactPossibleSubStats() {
StatType.critRatePercentage,
StatType.critDmgPercentage,
];
//The main stat cannot be repeated
return possibleValues.except([mainStat]).toList();
}

int getArtifactMaxNumberOfSubStats(int rarity) {
switch (rarity) {
case 1:
return 0;
case 2:
return 1;
case 3:
return 2;
case 4:
return 3;
case 5:
return 4;
default:
throw Exception('The provided rarity is not valid for an artifact');
}
}

const languagesMap = {
Expand Down
Expand Up @@ -11,5 +11,6 @@ class CustomBuildArtifactModel with _$CustomBuildArtifactModel {
required StatType statType,
required String image,
required int rarity,
required List<StatType> subStats,
}) = _CustomBuildArtifactModel;
}
3 changes: 3 additions & 0 deletions lib/domain/models/custom_builds/custom_build_model.dart
Expand Up @@ -12,8 +12,11 @@ class CustomBuildModel with _$CustomBuildModel {
required CharacterRoleType type,
required CharacterRoleSubType subType,
required bool showOnCharacterDetail,
required bool isRecommended,
required CharacterCardModel character,
required List<WeaponCardModel> weapons,
required List<CustomBuildArtifactModel> artifacts,
required List<CustomBuildNoteModel> notes,
required List<CharacterSkillType> skillPriorities,
}) = _CustomBuildModel;
}
11 changes: 11 additions & 0 deletions lib/domain/models/custom_builds/custom_build_note_model.dart
@@ -0,0 +1,11 @@
import 'package:freezed_annotation/freezed_annotation.dart';

part 'custom_build_note_model.freezed.dart';

@freezed
class CustomBuildNoteModel with _$CustomBuildNoteModel {
const factory CustomBuildNoteModel({
required int index,
required String note,
}) = _CustomBuildNoteModel;
}
1 change: 1 addition & 0 deletions lib/domain/models/entities.dart
Expand Up @@ -3,6 +3,7 @@ export 'entities/calculator/calculator_item.dart';
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/game_code/game_code.dart';
export 'entities/game_code/game_code_reward.dart';
export 'entities/inventory/inventory_item.dart';
Expand Down
8 changes: 6 additions & 2 deletions lib/domain/models/entities/custom_builds/custom_build.dart
Expand Up @@ -23,7 +23,10 @@ class CustomBuild extends HiveObject {
List<String> weaponKeys;

@HiveField(7)
List<int> talentPriority;
List<int> skillPriorities;

@HiveField(8)
bool isRecommended;

CustomBuild(
this.characterKey,
Expand All @@ -32,6 +35,7 @@ class CustomBuild extends HiveObject {
this.roleType,
this.roleSubType,
this.weaponKeys,
this.talentPriority,
this.skillPriorities,
this.isRecommended,
);
}
Expand Up @@ -17,5 +17,8 @@ class CustomBuildArtifact extends HiveObject {
@HiveField(3)
StatType statType;

CustomBuildArtifact(this.buildItemKey, this.itemKey, this.type, this.statType);
@HiveField(4)
List<StatType> subStats;

CustomBuildArtifact(this.buildItemKey, this.itemKey, this.type, this.statType, this.subStats);
}
17 changes: 17 additions & 0 deletions lib/domain/models/entities/custom_builds/custom_build_note.dart
@@ -0,0 +1,17 @@
import 'package:hive/hive.dart';

part 'custom_build_note.g.dart';

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

@HiveField(1)
int index;

@HiveField(2)
String note;

CustomBuildNote(this.buildItemKey, this.index, this.note);
}
1 change: 1 addition & 0 deletions lib/domain/models/models.dart
Expand Up @@ -13,6 +13,7 @@ export 'characters/character_skill_card_model.dart';
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 'db/artifacts/artifact_file_model.dart';
export 'db/artifacts/artifacts_file.dart';
export 'db/characters/character_file_model.dart';
Expand Down
Expand Up @@ -16,6 +16,8 @@ abstract class CustomBuildsDataService {
CharacterRoleType type,
CharacterRoleSubType subType,
bool showOnCharacterDetail,
bool isRecommended,
List<CustomBuildNoteModel> notes,
List<String> weaponKeys,
List<CustomBuildArtifactModel> artifacts,
List<CharacterSkillType> talentPriority,
Expand All @@ -27,6 +29,8 @@ abstract class CustomBuildsDataService {
CharacterRoleType type,
CharacterRoleSubType subType,
bool showOnCharacterDetail,
bool isRecommended,
List<CustomBuildNoteModel> notes,
List<String> weaponKeys,
List<CustomBuildArtifactModel> artifacts,
List<CharacterSkillType> talentPriority,
Expand Down

0 comments on commit e85fa20

Please sign in to comment.