This repository has been archived by the owner on Oct 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 61
Casting
Monun edited this page Jan 31, 2021
·
1 revision
보는 방향으로 투사체를 발사하거나 사용자가 임의로 사용하는 능력에 적합합니다.
지정된 아이템은 AbilityConcept.wand
로 설정할 수 있습니다.
Ability 클래스에 com.github.noonmaru.psychics.Ability
가 아닌 com.github.noonmaru.psychics.ActiveAbility
를 상속하세요.
상속 후에 onCast(target: Any?)
함수도 override
하세요.
import com.github.noonmaru.psychics.AbilityConcept
import com.github.noonmaru.psychics.ActiveAbility
class MyAbility : ActiveAbility<AbilityConcept>() {
override fun onCast(event: PlayerEvent, action: WandAction, target: Any?) {
// 능력 발동 코드
}
}
onCast
함수는 사용자가 지정된 아이템을 클릭(좌, 우 포함)할때 호출됩니다.
호출하기 이전에 test
함수로 발동 조건을 테스트합니다.
TestResult.SUCCESS
가 반환되지 않을경우 사용자에게 실패 메시지를 보내고 onCast
함수를 실행하지 않습니다.
사용자가 아이템을 클릭하고 일정시간 뒤에 onCast 를 호출하는 방법입니다.
보통 시전시간, 집중시간 이라고 부르기도 합니다.
AbilityConcept.castingTicks
속성을 통해 설정할 수 있습니다.
myfirstability.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 casting-ticks: 50 interruptible: false supply-items: [] description: []
onChannel
= 시전후onCast
호출 전까지 1 tick마다 호출됩니다.onInterrupt
= 시전도중 강제로 취소되었을때 호출됩니다.
targeter
는 ActiveAbility
에서 시전시간 이전에 목표를 지정하는 함수입니다.
보통 시전시간을 설정하여 목표의 정확도를 낮추는데 사용합니다.
반환된 인스턴스는 onCast
함수를 호출할때 target 인수로 전달합니다.
정의하지 않을경우 null
이 전달됩니다.
class MyAbility : ActiveAbility<AbilityConcept>() {
init {
targeter = {
esper.player.eyeLocation // 시전시 사용자의 머리 좌표
}
}
override fun onCast(event: PlayerEvent, action: WandAction, target: Any?) {
// target = targeter통해 얻어온 Location
}
}