AbilityConcept - noonmaru/psychics GitHub Wiki

개요

능력 작성자가 Ability의 속성을 관리할 수 있는 방법을 제공합니다.

코드 개발 단계에서 긴 코드의 작성 없이 간단하게 표현할 수 있습니다.

개념

이전 Ability의 튜토리얼을 진행하면서 다음과 같은 코드를 계속 봐왔습니다.

class MyAbility : Ability<AbilityConcept>()

Psychics의 Ability는 능력 작성자가 변경가능한 속성을 AbilityConcept에 넣어둡니다.

Configuration과 동일한 개념입니다.

Ability 클래스는 능력 사용자가 생길때마다 인스턴스를 생성하여 등록하는 방식입니다.

Ability 인스턴스가 생길때마다 속성들을 불러오는것은 비효율적입니다.

그래서 별도의 클래스에서 관리하는 방식이 AbilityConcept입니다.

Ability를 상속할때 제네릭으로 선언해주면 해당 AbilityConcept의 인스턴스를 사용하게됩니다.

능력 작성자가 작성한 능력마다 한개의 인스턴스만 생성하여 사용합니다.

같은 Psychic이 두 플레이어에게 부여되었을경우 다음과 같은 관계도를 가지게됩니다.

images/Rel.png