feat: 초기 커밋
- Progress Quest 6.4 Flutter 포팅 프로젝트 - 게임 루프, 상태 관리, UI 구현 - 캐릭터 생성, 인벤토리, 장비, 주문 시스템 - 시장/판매/구매 메커니즘
This commit is contained in:
26
lib/src/core/engine/reward_service.dart
Normal file
26
lib/src/core/engine/reward_service.dart
Normal file
@@ -0,0 +1,26 @@
|
||||
import 'package:askiineverdie/src/core/engine/game_mutations.dart';
|
||||
import 'package:askiineverdie/src/core/model/equipment_slot.dart';
|
||||
import 'package:askiineverdie/src/core/model/game_state.dart';
|
||||
import 'package:askiineverdie/src/core/util/pq_logic.dart';
|
||||
|
||||
/// Applies quest/act rewards to the GameState using shared RNG.
|
||||
class RewardService {
|
||||
RewardService(this.mutations);
|
||||
|
||||
final GameMutations mutations;
|
||||
|
||||
GameState applyReward(GameState state, RewardKind reward) {
|
||||
switch (reward) {
|
||||
case RewardKind.spell:
|
||||
return mutations.winSpell(state, state.stats.wis, state.traits.level);
|
||||
case RewardKind.equip:
|
||||
final slot = EquipmentSlot
|
||||
.values[state.rng.nextInt(EquipmentSlot.values.length)];
|
||||
return mutations.winEquip(state, state.traits.level, slot);
|
||||
case RewardKind.stat:
|
||||
return mutations.winStat(state);
|
||||
case RewardKind.item:
|
||||
return mutations.winItem(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user