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 }