抛射物追踪器
ProjectileTracker 用于在属性计算或事件处理中记录与 抛射物 相关的上下文信息。当玩家使用弓、弩或投掷道具时,该接口负责携带发射时的属性加成、蓄力强度等数据,供后续命中逻辑使用。
接口方法
上下文判断
Groovy
// 判断是否为抛射物上下文
if (handler.isProj()) {
// 处理远程命中逻辑
}
// 判断是否为箭类型(EntityType.ARROW)
if (handler.isArrowProj()) {
// 箭矢专属处理
}获取抛射物实例
Groovy
def proj = handler.getProj()
if (proj != null) {
println "抛射物类型: ${proj.type}"
println "抛射物位置: ${proj.location}"
}获取属性范围
Groovy
// 获取伤害属性的范围
def (minDamage, maxDamage) = handler.getProjectileAttributeValue("物理攻击")
println "伤害范围: ${minDamage} ~ ${maxDamage}"
// 使用简写别名
def (minDamage, maxDamage) = handler.getProjAttributeValue("物理攻击")随机取值
Groovy
// 在伤害范围内随机取一个值
def finalDamage = handler.getProjectileRandomValue("damage")
println "本次造成伤害: ${finalDamage}"
// 随机火焰燃烧时间
def fireTicks = handler.getProjRandomValue("fire_ticks")