EerieVillage/Assets/Scripts/Progression/SkillCardPlaceholder.cs

34 lines
1.3 KiB
C#
Raw Normal View History

BT12-MVP-A Phase 2-A: 경험치·레벨업 시스템 코드 + JSON 테이블 PD 직접 지시 2026-05-08 — (b) 채택 + JSON 테이블 영역 관리. 신규 영역 (8 파일): - Assets/Resources/Progression/level_xp_table.json — Lv 1~30 EXP 테이블 (balance-designer SOT) - Assets/Scripts/Progression/LevelXPTableLoader.cs — Resources.Load + JsonUtility 캐시 - Assets/Scripts/Progression/PlayerProgression.cs — Level·EXP 진행도 (BT12-Dev v1 PlayerStats와 직무 분리) - Assets/Scripts/Progression/ExperienceSystem.cs — EXP 발급 정적 게이트웨이 - Assets/Scripts/Progression/SkillCardPlaceholder.cs — placeholder ScriptableObject - Assets/Scripts/Progression/SkillCardPlaceholderPool.cs — 카드 풀·Draw3Random - Assets/Scripts/Progression/LevelUpManager.cs — 레벨업 발화·일시정지·UI placeholder (Phase 2-B 통합) 기존 파일 수정 (2 파일): - EnemyDeath.cs Execute 마지막 영역 ExperienceSystem.OnEnemyKilled 호출 - PlayerController.cs Awake PlayerProgression 자동 부착 회귀 위험: - BT5-Dev 발판/몬스터 영역 영향 X (EnemyDeath 호출 마지막·PlayerController 자동 부착) - BT7-Dev VS 순수형 영향 X (Schedule 영역 변경 X) - BT12-Dev v1 영역 충돌 X (PlayerStats 분리·신규 namespace EerieVillage.Progression) Phase 2-A 영역 검증: - 적 처치 → EXP 누적 → Lv 임계점 → Console [LevelUpManager] 영역 출력 확증 - Phase 2-B 영역 = SkillSelectionUI prefab + 5 placeholder asset + Scene 통합
2026-05-08 08:53:39 +00:00
using UnityEngine;
namespace EerieVillage.Progression
{
public enum CardRarity { Common, Rare, Max }
/// <summary>
/// BT12-MVP-A 영역 placeholder 카드 데이터 ScriptableObject.
/// BT12-Dev v1 영역 ActiveSkillData·PassiveSkillData·AwakeningSkillData 영역과 별도 (효과 정의 X·표시 영역만).
/// 차기 BT12-Dev 본격 영역 = 본 ScriptableObject 영역 deprecate + 60종 카드 ScriptableObject 활용.
/// </summary>
[CreateAssetMenu(menuName = "EerieVillage/SkillCardPlaceholder")]
public class SkillCardPlaceholder : ScriptableObject
{
[Header("식별 영역")]
public string id; // 고유 ID (예: "A01_jineonbu")
public string displayName; // 한글 카드명 (예: "진언부")
[Header("표시 영역 (PD 예시 정합)")]
public Sprite icon; // 원형 아이콘
public CardRarity rarity = CardRarity.Common;
[Range(1, 5)]
public int currentLevel = 1; // PD 예시 영역 "레벨 N"
[Range(1, 5)]
public int maxLevel = 5; // PD 예시 영역 "최대" 표시
[TextArea(2, 4)]
public string description; // 효과 설명 (3~4 라인 placeholder)
public bool IsMaxLevel => currentLevel >= maxLevel;
}
}