Test - noonmaru/psychics GitHub Wiki
개요
Psychics의 Ability 발동 조건 테스트에 대해 다룹니다.
단위 테스트는 Unit test 페이지를 참고하세요.
Ability 발동 조건은 여러가지가 있습니다.
필요 레벨, 마나 소모량, 재사용 대기시간 등등
이를 능력 적용 전에 테스트하고 결과를 반환하여 메시지를 플레이어에게 전달할 수 있습니다.
예제
능력 사용자가 웅크릴때 사용 가능하다면 능력 발동
메시지를 보내는 코드입니다.
class MyAbility : Ability<AbilityConcept>() {
override fun onEnable() {
psychic.registerEvents(EventListener())
}
inner class EventListener: Listener {
@EventHandler
fun onPlayerSneak(event: PlayerToggleSneakEvent) {
if (!event.isSneaking) return
val result = test()
if (result == TestResult.SUCCESS) {
event.player.sendMessage("능력 발동")
} else {
event.player.sendActionBar(result.getMessage(this@MyAbility))
}
}
}
}
빌드하여 서버에 적용 후 myfirstpsychic.yml 파일의 abilities.myfirstability.common에 level-requirement: 10
를 추가해보세요
myfirstpsychic.yml
display-name: myfirstpsychic health-bonus: 0.0 health-regen-per-tick: 0.0 mana: 0.0 mana-regen-per-tick: 0.0 mana-color: BLUE description: [] abilities: myfirstability: ability: .myability common: display-name: myability type: PASSIVE level-requirement: 10 interruptible: false supply-items: [] description: []
레벨 0일때
레벨 10일때
TIP
override
로 재정의되지 않은test
함수는 다음 조건을 테스트합니다.
- 활성 상태 (isEnabled)
- 필요 레벨
- 재사용 대기시간
- 마나