61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package over
|
|
|
|
import (
|
|
"github.com/tnnmigga/enum"
|
|
)
|
|
|
|
// 战斗结束原因数据接口
|
|
type BattleOverData interface{}
|
|
|
|
// 玩家离线数据
|
|
type PlayerOfflineData struct {
|
|
// 可以根据需要添加字段
|
|
PlayerID int64
|
|
}
|
|
|
|
// 玩家逃脱数据
|
|
type PlayerEscapeData struct {
|
|
// 可以根据需要添加字段
|
|
PlayerID int64
|
|
}
|
|
|
|
// 玩家捕获成功数据
|
|
type PlayerCaptureSuccessData struct {
|
|
// 可以根据需要添加字段
|
|
CaptorID int64
|
|
TargetID int64
|
|
CaptureTime int64
|
|
}
|
|
|
|
// 默认结束数据
|
|
type DefaultEndData struct {
|
|
// 可以根据需要添加字段
|
|
Reason string
|
|
}
|
|
|
|
// 战斗结束原因枚举
|
|
type EnumBattleOverReason int
|
|
|
|
var BattleOverReason = enum.New[struct {
|
|
PlayerOffline EnumBattleOverReason `enum:"1"`
|
|
PlayerEscape EnumBattleOverReason `enum:"2"`
|
|
PlayerCaptureSuccess EnumBattleOverReason `enum:"3"`
|
|
DefaultEnd EnumBattleOverReason `enum:"4"`
|
|
}]()
|
|
|
|
// 获取对应的类型
|
|
func (e EnumBattleOverReason) DataType() interface{} {
|
|
switch e {
|
|
case BattleOverReason.PlayerOffline:
|
|
return PlayerOfflineData{}
|
|
case BattleOverReason.PlayerEscape:
|
|
return PlayerEscapeData{}
|
|
case BattleOverReason.PlayerCaptureSuccess:
|
|
return PlayerCaptureSuccessData{}
|
|
case BattleOverReason.DefaultEnd:
|
|
return DefaultEndData{}
|
|
default:
|
|
return nil
|
|
}
|
|
}
|