Skip to content

Commit

Permalink
[Application] Do not include skill with a type = Others in the calcul…
Browse files Browse the repository at this point in the history
…ator
  • Loading branch information
Wolfteam committed Mar 27, 2021
1 parent a2093ed commit 8153c7c
Showing 1 changed file with 26 additions and 14 deletions.
Expand Up @@ -4,6 +4,7 @@ import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:genshindb/domain/app_constants.dart';
import 'package:genshindb/domain/assets.dart';
import 'package:genshindb/domain/enums/enums.dart';
import 'package:genshindb/domain/models/models.dart';
import 'package:genshindb/domain/services/genshin_service.dart';
import 'package:tuple/tuple.dart';
Expand Down Expand Up @@ -46,20 +47,7 @@ class CalculatorAscMaterialsItemBloc extends Bloc<CalculatorAscMaterialsItemEven
desiredLevel: maxItemLevel,
currentAscensionLevel: minAscensionLevel,
desiredAscensionLevel: maxAscensionLevel,
skills: translation.skills.map(
(e) {
final enableTuple = _isSkillEnabled(minSkillLevel, maxSkillLevel, minAscensionLevel, maxAscensionLevel);
return CharacterSkill.skill(
name: e.title,
currentLevel: minSkillLevel,
desiredLevel: maxSkillLevel,
isCurrentDecEnabled: enableTuple.item1,
isCurrentIncEnabled: enableTuple.item2,
isDesiredDecEnabled: enableTuple.item3,
isDesiredIncEnabled: enableTuple.item4,
);
},
).toList(),
skills: _getCharacterSkillsToUse(char, translation),
);
}
final weapon = _genshinService.getWeapon(e.key);
Expand Down Expand Up @@ -373,4 +361,28 @@ class CalculatorAscMaterialsItemBloc extends Bloc<CalculatorAscMaterialsItemEven
final nextEntry = itemAscensionLevelMap.entries.firstWhere((kvp) => kvp.key == ascensionLevel + 1);
return entry.value >= currentLevel && currentLevel <= nextEntry.value;
}

List<CharacterSkill> _getCharacterSkillsToUse(CharacterFileModel character, TranslationCharacterFile translation) {
final skills = <CharacterSkill>[];
for (final e in translation.skills) {
final related = character.skills.firstWhereOrNull((el) => el.key == e.key);
if (related == null || related.type == CharacterSkillType.others) {
continue;
}

final enableTuple = _isSkillEnabled(minSkillLevel, maxSkillLevel, minAscensionLevel, maxAscensionLevel);
final skill = CharacterSkill.skill(
name: e.title,
currentLevel: minSkillLevel,
desiredLevel: maxSkillLevel,
isCurrentDecEnabled: enableTuple.item1,
isCurrentIncEnabled: enableTuple.item2,
isDesiredDecEnabled: enableTuple.item3,
isDesiredIncEnabled: enableTuple.item4,
);
skills.add(skill);
}

return skills;
}
}

0 comments on commit 8153c7c

Please sign in to comment.