issues
search
pknu-wap
/
Zenocide
부경대학교 중앙동아리 WAP, 2024년 1학기 게임 2팀 프로젝트입니다.
7
stars
1
forks
source link
스킬 구조 개선
#56
Closed
miniron-v
closed
4 months ago
miniron-v
commented
4 months ago
개요
스킬 구조를 전반적으로 개선했습니다. 리팩토링과 함께 아래 기능들이 추가되었습니다.
하나의 카드가 여러 스킬을 사용할 수 있습니다.
각 스킬 사이에 짧은 딜레이(0.2초)를 주었습니다. 이제 연타 공격을 구현할 수 있습니다.
적 전체에게 스킬을 발동할 수 있습니다.
변경 사항
Skill 스크립트 통합
기존에 CardSkill, EnemySkill로 분리되어 구현했었으나, 이를 Skill로 통합시켰습니다.
관련 변수인 SkillType, SkillTarget 열거형도 통합되었습니다.
타겟 지정 방식 변경
기존엔 각 스킬에 따라, 자동으로 타겟이 지정되게 했었습니다.
예를 들면 단일 공격 카드는 적 오브젝트를, 힐 카드는 플레이어를 타겟팅했습니다.
이를 Skill 내에서 선택하게 변경해, 플레이어나 적이 자신을 공격할 수도, 적을 힐할 수도 있게 되었습니다.
코스트 회복 등 플레이어만 사용 가능한 스킬은, 스킬 구현 내부에서 예외 처리하기로 했습니다.
또한 Target에 AllEnemy를 추가하여, 하나의 공격 스킬로 단일 타겟/광역기를 구현할 수 있게 했습니다.
BattleInfo에 적 오브젝트 등록
기존엔 적의 숫자만 셌으나, 이제 오브젝트 자체를 등록하게 했습니다. (리스트 사용)
이를 통해
적 전체
를 불러올 수 있게 되었습니다.
CardData 형식 변경
SkillTarget이 추가되었습니다.
amount, turnCount를
Skill 클래스
로 분리하고, CardData엔 Skill 배열을 두었습니다.
Skill 클래스는 [System.Serializable]을 붙여 직렬화, 즉 인스펙터에서 값을 수정할 수 있게 만들었습니다.
적 Skill 형식 변경
기존 적과 플레이어의 Skill을 분리했던 이유 중 하나가,
적 오브젝트는 스킬의 이름, 설명이 따로 필요
하다는 점이었습니다.
이를 Skill에 통합시키며
SkillTextInfo
를 신규 생성, SkillType에 맞는 설명을 반환해주는 기능을 구현했습니다.
예를 들어 Type, Amount, TurnCount가 Attack, 6, 0이라면 "6의 데미지로 공격합니다"라는 문구가 반환됩니다.
스킬 사용 로직 변경
기존엔 Character 클래스 하나를 넘겨주고, 해당 Character에 스킬을 사용하는 로직이었습니다.
이를 Character[], 즉 배열로 변경하고, 배열 내 모든 타겟에게 스킬을 사용하게 변경했습니다. 이를 통해 광역기를 구현했습니다.
또한 Card.cs 내부에선, 카드에 등록된
모든 스킬
을 전부 사용하게 변경했습니다.
이때 약간의 딜레이(0.2초)를 주어, 3번 공격 시
순차적으로 3번 공격
하는 효과를 구현했습니다.
참고 자료
개요
스킬 구조를 전반적으로 개선했습니다. 리팩토링과 함께 아래 기능들이 추가되었습니다.
변경 사항
Skill 스크립트 통합
타겟 지정 방식 변경
BattleInfo에 적 오브젝트 등록
CardData 형식 변경
적 Skill 형식 변경
스킬 사용 로직 변경
참고 자료