하스스톤을 보면 하수인과 주문 카드로 나뉘어져 있잖아요?
만약 BaseCard라는 추상 클래스를 두고 이를 MonsterCard : BaseCard, SpellCard : BaseCard 이렇게 상속을 받는다고 할 때 BaseCard의 코드는 어떤 식으로 작성하시는지 궁금합니다.
예를 들어서 하수인의 경우 마나, 공격력, 체력이 있는 반면 주문 카드는 공격력, 체력은 없고 마나만 있으니까
이런 경우 BaseCard에 public virtual int Cost만 선언을 하시는지 ATK, HP까지 선언해두시는지 궁금합니다.
다른 방법(인터페이스 등)으로 하신다면 어떤 구조를 선호하시는지 궁금합니다.
'카드'라면 가지고 있는 공통된 속성만 BaseCard에 넣어야지 카드 이름, 설명, 그림, 비용 같은거 소환되는 하수인 정보는 하수인 카드에만 있으니까 MonsterCard에만 넣는 게 맞고 카드에 공격력 체력을 직접 넣는 것보단 그 수치를 가진 하수인을 넣는 게 더 적절할 것 같네
나라면 class 까지는 안만들고 인터페이스로 IBaseCard로 유지하고 모든 카드가 들고 있어야하는 필수 정보만 멤버 변수로 선언 해줄듯 cost, name, image, description 정도
추가로 onDraw, onUse 등 같은 모든 카드에 들어가는 기본 이벤트 정도 선언 해주거나 나중에 이벤트 추가되는 상활을 위해서 ICardEvent 같은 class 만들고 그거 List 로 들고있는 인자 추가하거나 할듯 ICardEvent 내부는 Enum으로 CardEventType 만들어서 관리하고 onEventStart, onEventEnd 메서드 2개정도 들고있는 구조로 만들것 같음
공통속성만
아 나 이렇게할걸 ㅋㅋ 뭔가 잘못만들었다 내카드겜을 - dc App