feat(core): i18n 및 핵심 로직 개선

- 수익화 관련 텍스트 추가
- item_service 수정
- progress_service 수정
This commit is contained in:
JiWoong Sul
2026-01-16 20:10:36 +09:00
parent c95fb7f4b4
commit c95e4de5a4
3 changed files with 69 additions and 19 deletions

View File

@@ -972,12 +972,16 @@ class ProgressService {
String? lostItemName;
EquipmentSlot? lostItemSlot;
ItemRarity? lostItemRarity;
EquipmentItem? lostEquipmentItem; // 광고 부활 시 복구용
if (!isBossDeath) {
// 레벨 기반 장비 손실 확률 계산
// Lv 1~5: 0%, Lv 6: 10%, Lv 10: 50%, Lv 15+: 100%
// Lv 1: 20%, Lv 5: ~56%, Lv 10+: 100%
// 공식: 20 + (level - 1) * 80 / 9
final level = state.traits.level;
final lossChancePercent = ((level - 5) * 10).clamp(0, 100);
final lossChancePercent = level >= 10
? 100
: (20 + ((level - 1) * 80 ~/ 9)).clamp(0, 100);
final roll = state.rng.nextInt(100); // 0~99
final shouldLoseEquipment = roll < lossChancePercent;
@@ -1004,10 +1008,10 @@ class ProgressService {
)];
// 제물로 바칠 아이템 정보 저장
final lostItem = state.equipment.getItemByIndex(sacrificeIndex);
lostItemName = lostItem.name;
lostEquipmentItem = state.equipment.getItemByIndex(sacrificeIndex);
lostItemName = lostEquipmentItem.name;
lostItemSlot = EquipmentSlot.values[sacrificeIndex];
lostItemRarity = lostItem.rarity;
lostItemRarity = lostEquipmentItem.rarity;
// 해당 슬롯을 빈 장비로 교체
newEquipment = newEquipment.setItemByIndex(
@@ -1029,6 +1033,7 @@ class ProgressService {
lostItemName: lostItemName,
lostItemSlot: lostItemSlot,
lostItemRarity: lostItemRarity,
lostItem: lostEquipmentItem, // 광고 부활 시 복구용
goldAtDeath: state.inventory.gold,
levelAtDeath: state.traits.level,
timestamp: state.skillSystem.elapsedMs,