35 lines
936 B
Go
35 lines
936 B
Go
|
|
package fight
|
|||
|
|
|
|||
|
|
// 技能目标关系(与前端可选目标范围对齐):
|
|||
|
|
// 0: 对手(enemy)
|
|||
|
|
// 1: 自己(self)
|
|||
|
|
// 2: 队友(ally)
|
|||
|
|
const (
|
|||
|
|
SkillTargetOpponent uint8 = 0
|
|||
|
|
SkillTargetSelf uint8 = 1
|
|||
|
|
SkillTargetAlly uint8 = 2
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// EncodeTargetIndex 对目标下标进行编码,兼容旧 UseSkillAt(actorIndex,targetIndex) 接口:
|
|||
|
|
// 1) 敌方目标:直接使用非负下标(0,1,2...)
|
|||
|
|
// 2) 同侧目标(自己/队友):编码为负数 -(index+1)
|
|||
|
|
func EncodeTargetIndex(targetIndex int, targetIsOpposite bool) int {
|
|||
|
|
if targetIndex < 0 {
|
|||
|
|
targetIndex = 0
|
|||
|
|
}
|
|||
|
|
if targetIsOpposite {
|
|||
|
|
return targetIndex
|
|||
|
|
}
|
|||
|
|
return -(targetIndex + 1)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// DecodeTargetIndex 解析目标下标编码,返回:
|
|||
|
|
// 1) 目标位下标
|
|||
|
|
// 2) 是否为敌方目标
|
|||
|
|
func DecodeTargetIndex(encoded int) (targetIndex int, targetIsOpposite bool) {
|
|||
|
|
if encoded < 0 {
|
|||
|
|
return -encoded - 1, false
|
|||
|
|
}
|
|||
|
|
return encoded, true
|
|||
|
|
}
|