using UnityEngine; namespace TKS.OutGame { /// /// 재화·군량·신규 유저 초기값·보상·상점 공식 값(economy.csv key,value · 기획서 §2·§3-2·§6 · 2026-11-05 구현 세션이 start_*·공식 계수 키 추가). /// public class EconomyConfig : ScriptableObject { public KeyValueList values = new KeyValueList(); public int StaminaMax { get { return values.I("stamina_max"); } } public int StaminaRegenSec { get { return values.I("stamina_regen_sec"); } } public int StageCost { get { return values.I("stage_cost"); } } public int BossCost { get { return values.I("boss_cost"); } } public int AdStamina { get { return values.I("ad_stamina"); } } public int AdStaminaDaily { get { return values.I("ad_stamina_daily"); } } public int GemStaminaCost { get { return values.I("gem_stamina_cost"); } } public int GemStaminaAmount { get { return values.I("gem_stamina_amount"); } } public int GemStaminaDaily { get { return values.I("gem_stamina_daily"); } } public float RepeatRewardMult { get { return values.F("repeat_reward_mult"); } } public int SoldierDupGold { get { return values.I("soldier_dup_gold"); } } public int StartGold { get { return values.I("start_gold"); } } public int StartGem { get { return values.I("start_gem"); } } public int StartStamina { get { return values.I("start_stamina"); } } public string[] StartHeroes { get { return values.List("start_heroes"); } } public int PresetCount { get { return values.I("preset_count"); } } public int FormationFront { get { return values.I("formation_front"); } } public float GearBonusPct { get { return values.F("gear_bonus_pct"); } } public float PowerHpDiv { get { return values.F("power_hp_div"); } } public float PowerAtkW { get { return values.F("power_atk_w"); } } public float PowerDefW { get { return values.F("power_def_w"); } } public int GoldPerStage { get { return values.I("gold_per_stage"); } } public float FirstClearGoldMult { get { return values.F("first_clear_gold_mult"); } } public float BossGearDropPct { get { return values.F("boss_gear_drop_pct"); } } public int ShopSlots { get { return values.I("shop_slots"); } } public string[] ShopGrades { get { return values.List("shop_grades"); } } public float ShopPriceMult { get { return values.F("shop_price_mult"); } } public int ShopRefreshGem { get { return values.I("shop_refresh_gem"); } } /// 중복 영웅 → 조각(희귀도 1~3). public int ShardDup(int rarity) { return values.I("shard_dup_r" + Mathf.Clamp(rarity, 1, 3)); } /// 임포터가 확인하는 필수 키. public static readonly string[] RequiredKeys = { "stamina_max", "stamina_regen_sec", "stage_cost", "boss_cost", "ad_stamina", "ad_stamina_daily", "gem_stamina_cost", "gem_stamina_amount", "gem_stamina_daily", "repeat_reward_mult", "shard_dup_r3", "shard_dup_r2", "shard_dup_r1", "soldier_dup_gold", "start_gold", "start_gem", "start_stamina", "start_heroes", "preset_count", "formation_front", "gear_bonus_pct", "power_hp_div", "power_atk_w", "power_def_w", "gold_per_stage", "first_clear_gold_mult", "boss_gear_drop_pct", "shop_slots", "shop_grades", "shop_price_mult", "shop_refresh_gem", }; } }