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일때

images/Test_1.png


레벨 10일때

images/Test_2.png

TIP

override 로 재정의되지 않은 test 함수는 다음 조건을 테스트합니다.

  • 활성 상태 (isEnabled)
  • 필요 레벨
  • 재사용 대기시간
  • 마나