-
Notifications
You must be signed in to change notification settings - Fork 21
능력을 만나보세요
Daybreak edited this page Oct 15, 2020
·
2 revisions
아래는 능력 클래스의 기본적인 틀입니다.
@AbilityManifest(name = "반가워요", rank = Rank.A, species = Species.OTHERS, explain = {
"§f당신의 능력을",
"§f마음껏 설명해주세요."
})
public class Ability extends AbilityBase implements ActiveHandler, TargetHandler {
public Ability(Participant participant) {
super(participant);
}
@Override
public boolean ActiveSkill(Material material, ClickType clickType) {
return false;
}
@Override
public void TargetSkill(Material material, LivingEntity entity) {}
@Override
public void onUpdate(Update update) {}
}
AbilityManifest : 능력의 가장 기본적인 정보를 담고 있는 어노테이션입니다. 이 어노테이션이 존재하지 않는 능력은 등록할 수 없습니다.
ActiveSkill : 액티브 능력 코드를 작성하기 위해 사용됩니다. 이 메소드를 사용하려면 능력 클래스가 ActiveHandler를 implement 해야 합니다.
- Material
- IRON_INGOT
- 추가로 사용하고 싶은 Material이 있다면, 능력 클래스에 @Materials 어노테이션을 붙이고 사용할 Material들을 나열하시면 됩니다.
- 동적인 사용 Material 목록 변경이 필요하다면, usesMaterial 메소드를 override하세요.
- ClickType
- RIGHT_CLICK
- LEFT_CLICK
TargetSkill : 타겟팅 능력 코드를 작성하기 위해 사용됩니다. 이 메소드를 사용하려면 능력 클래스가 TargetHandler를 implement 해야 합니다.
- Material : 대상을 우클릭할 때 사용한 아이템
- IRON_INGOT
- 추가로 사용하고 싶은 Material이 있다면, 능력 클래스에 @Materials 어노테이션을 붙이고 사용할 Material들을 나열하시면 됩니다.
- 동적인 사용 Material 목록 변경이 필요하다면, usesMaterial 메소드를 override하세요.
- LivingEntity : 타격한 대상. null이 아닙니다.
onUpdate : 생명주기 안내 메소드입니다.
- Update : 업데이트 종류
- RESTRICTION_CLEAR
- 능력 제한 해제 (활성화)
- RESTRICTION_SET
- 능력 제한 (비활성화)
- ABILITY_DESTROY
- 능력 파괴 (제거)
- RESTRICTION_CLEAR
모든 능력은 AbilityFactory에 기본적으로 등록합니다.
AbilityFactory.registerAbility(Ability.class);기본 게임모드에서 능력이 사용되길 원한다면 AbilityList에도 함께 등록합니다.
AbilityList.registerAbility(Ability.class);예를 들어, 폭탄 돌리기 게임 모드를 만든다고 가정해봅시다. 우리는 다른 플레이어를 타격하면 해당 플레이어에게
능력이 넘어가는 폭탄 능력을 만들었습니다. 이 능력이 폭탄 돌리기 게임 모드에서는 사용되겠지만, 일반 능력자 대전에서
폭탄 능력이 할당되는 것을 원치는 않을 것입니다. 이 경우에, AbilityFactory에만 등록하게 됩니다.