diff --git a/lib/src/core/engine/test_character_service.dart b/lib/src/core/engine/test_character_service.dart index 3bb6ec1..1039f2c 100644 --- a/lib/src/core/engine/test_character_service.dart +++ b/lib/src/core/engine/test_character_service.dart @@ -1,3 +1,4 @@ +import 'package:asciineverdie/data/skill_data.dart'; import 'package:asciineverdie/src/core/engine/item_service.dart'; import 'package:asciineverdie/src/core/model/combat_stats.dart'; import 'package:asciineverdie/src/core/model/equipment_item.dart'; @@ -5,7 +6,6 @@ import 'package:asciineverdie/src/core/model/equipment_slot.dart'; import 'package:asciineverdie/src/core/model/game_state.dart'; import 'package:asciineverdie/src/core/model/hall_of_fame.dart'; import 'package:asciineverdie/src/core/model/item_stats.dart'; -import 'package:asciineverdie/src/core/model/pq_config.dart'; import 'package:asciineverdie/src/core/util/deterministic_random.dart'; import 'package:asciineverdie/src/core/util/roman.dart'; @@ -14,12 +14,8 @@ import 'package:asciineverdie/src/core/util/roman.dart'; /// 현재 캐릭터를 레벨 100, 고급 장비, 다수의 스킬을 가진 /// 캐릭터로 변환하여 명예의 전당에 등록할 수 있게 함. class TestCharacterService { - TestCharacterService({ - required this.config, - required this.rng, - }); + TestCharacterService({required this.rng}); - final PqConfig config; final DeterministicRandom rng; /// 테스트 캐릭터 데이터 생성 @@ -200,18 +196,22 @@ class TestCharacterService { } /// 테스트용 스킬 생성 (20~30개) + /// + /// SkillData.spellNameToSkill에 정의된 전투 스킬만 선택 List> _generateTestSkills() { - final spells = config.spells; + // 전투에서 실제로 사용 가능한 스킬 목록 + final validSpells = SkillData.spellNameToSkill.keys.toList(); final skillCount = 20 + rng.nextInt(11); // 20~30개 final selectedSpells = {}; final skills = >[]; // 중복 없이 스킬 선택 - while (selectedSpells.length < skillCount && selectedSpells.length < spells.length) { - final index = rng.nextInt(spells.length); - final spell = spells[index].split('|')[0]; + while (selectedSpells.length < skillCount && + selectedSpells.length < validSpells.length) { + final index = rng.nextInt(validSpells.length); + final spell = validSpells[index]; if (selectedSpells.add(spell)) { - // 랭크: I~X 랜덤 (레벨 100 기준 높은 랭크 선호) + // 랭크: V~X 랜덤 (레벨 100 기준 높은 랭크) final rank = _randomHighRank(); skills.add({'name': spell, 'rank': rank}); } diff --git a/lib/src/features/game/game_session_controller.dart b/lib/src/features/game/game_session_controller.dart index 76f3cde..e525794 100644 --- a/lib/src/features/game/game_session_controller.dart +++ b/lib/src/features/game/game_session_controller.dart @@ -385,10 +385,7 @@ class GameSessionController extends ChangeNotifier { await _stopLoop(saveOnStop: false); // TestCharacterService로 테스트 캐릭터 생성 - final testService = TestCharacterService( - config: progressService.config, - rng: _state!.rng, - ); + final testService = TestCharacterService(rng: _state!.rng); final entry = testService.createTestCharacter(_state!);