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

27 lines
1.7 KiB
C#
Raw Normal View History

2026-02-12 15:23:25 +00:00
using System.Collections; // 컬렉션 기능을 사용할거에요 -> System.Collections를
using System.Collections.Generic; // 제네릭 컬렉션 기능을 사용할거에요 -> System.Collections.Generic을
using TMPro; // 텍스트메쉬프로 기능을 사용할거에요 -> TMPro를
using Unity.VisualScripting; // 유니티 비주얼 스크립팅 기능을 사용할거에요 -> Unity.VisualScripting을
using UnityEngine; // 유니티 엔진의 기본 기능을 불러올거에요 -> UnityEngine을
2026-01-29 06:58:38 +00:00
2026-02-12 15:23:25 +00:00
[CreateAssetMenu(menuName = "LevelUp/Card")] // 메뉴를 만들거에요 -> 에셋 생성 메뉴에 "LevelUp/Card"를
public abstract class CardData : ScriptableObject // 추상 클래스를 선언할거에요 -> ScriptableObject를 상속받는 CardData를
2026-01-29 06:58:38 +00:00
{
2026-02-12 15:23:25 +00:00
public Sprite icon; // 변수를 선언할거에요 -> 카드 아이콘 이미지를 icon에
2026-01-29 06:58:38 +00:00
2026-02-10 08:04:33 +00:00
// ⭐ 추가: 이 카드가 나타나기 위해 필요한 '복수의 집착' 레벨
// 기본값을 1로 설정하면 처음부터 등장합니다.
2026-02-12 15:23:25 +00:00
public int requiredObsessionLevel = 1; // 변수를 선언할거에요 -> 등장 조건 레벨(1)을 requiredObsessionLevel에
2026-02-10 08:04:33 +00:00
2026-01-29 06:58:38 +00:00
// UI 표시용
2026-02-12 15:23:25 +00:00
public abstract string GetText(); // 추상 함수를 선언할거에요 -> 카드 설명 텍스트를 반환하는 GetText를
2026-01-29 06:58:38 +00:00
// 외부에서 호출되는 공통 실행 함수
2026-02-12 15:23:25 +00:00
public void Execute() // 함수를 선언할거에요 -> 카드 효과를 실행하는 공통 함수 Execute를
2026-01-29 06:58:38 +00:00
{
2026-02-12 15:23:25 +00:00
ApplyEffect(); // 함수를 실행할거에요 -> 실제 효과 적용 함수를
2026-01-29 06:58:38 +00:00
}
// 실제 효과는 자식이 구현
2026-02-12 15:23:25 +00:00
protected abstract void ApplyEffect(); // 추상 함수를 선언할거에요 -> 자식 클래스에서 구현할 효과 적용 함수 ApplyEffect를
}