Projext/Assets/Scripts/Player/Upgrade/Data/RandomStatCardData.cs

31 lines
2.2 KiB
C#
Raw Normal View History

2026-02-12 15:23:25 +00:00
using UnityEngine; // 유니티 엔진의 기본 기능을 불러올거에요 -> UnityEngine을
2026-01-29 06:58:38 +00:00
2026-02-12 15:23:25 +00:00
[CreateAssetMenu(menuName = "LevelUp/RandomStatCard")] // 메뉴를 만들거에요 -> 에셋 생성 메뉴에 "LevelUp/RandomStatCard"를
public class RandomStatCardData : CardData // 클래스를 선언할거에요 -> CardData를 상속받는 RandomStatCardData를
2026-01-29 06:58:38 +00:00
{
2026-02-12 15:23:25 +00:00
public StatType[] possibleStats; // 배열을 선언할거에요 -> 등장 가능한 스탯 목록을 possibleStats에
public int minValue = 1; // 변수를 선언할거에요 -> 스탯 증가 최소값을 minValue에
public int maxValue = 3; // 변수를 선언할거에요 -> 스탯 증가 최대값을 maxValue에
2026-01-29 06:58:38 +00:00
// ⭐ 기존의 stat1, value1 같은 변수들은 다 지워버리세요!
// 이제 CardUI가 기억할 거니까 여기엔 필요 없습니다.
2026-02-12 15:23:25 +00:00
public override string GetText() => ""; // 함수를 덮어씌울거에요 -> 텍스트 반환 함수를 (CardUI가 처리하므로 빈 문자열 반환)
2026-01-29 06:58:38 +00:00
2026-02-12 15:23:25 +00:00
protected override void ApplyEffect() { } // 함수를 덮어씌울거에요 -> 기본 효과 적용 함수를 (여기선 안 씀)
2026-01-29 06:58:38 +00:00
// ⭐ CardUI가 호출할 수 있게 public으로 만듭니다.
2026-02-12 15:23:25 +00:00
public void ApplyToPlayer(StatType stat, int value) // 함수를 선언할거에요 -> 플레이어에게 스탯을 적용하는 ApplyToPlayer를
2026-01-29 06:58:38 +00:00
{
2026-02-12 15:23:25 +00:00
Stats stats = FindObjectOfType<Stats>(); // 컴포넌트를 찾을거에요 -> 씬에 있는 Stats 스크립트를
if (stats == null) return; // 조건이 맞으면 중단할거에요 -> Stats가 없다면
2026-01-29 06:58:38 +00:00
2026-02-12 15:23:25 +00:00
switch (stat) // 분기할거에요 -> 스탯 타입(stat)에 따라
2026-01-29 06:58:38 +00:00
{
2026-02-12 15:23:25 +00:00
case StatType.Health: stats.AddMaxHealth(value); break; // 일치하면 실행할거에요 -> 최대 체력 증가 함수를
case StatType.Speed: stats.AddMoveSpeed(value); break; // 일치하면 실행할거에요 -> 이동 속도 증가 함수를
// case StatType.Strength: stats.AddStrength(value); break; // (주석 처리됨) 힘 증가 로직
case StatType.Damage: stats.AddAttackDamage(value); break; // 일치하면 실행할거에요 -> 공격력 증가 함수를
2026-01-29 06:58:38 +00:00
}
}
}