package fight

import (
	_ "blazing/logic/service/fight/effect"
	"blazing/logic/service/fight/info"
	"blazing/logic/service/player"
)

// 野怪对战包
type FightNpcMonsterInboundInfo struct {
	Head player.TomeeHeader `cmd:"2408" struc:"[0]pad"`
	// Number 地图刷新怪物结构体对应的序号（1-9的位置序号）

	Number uint32 `fieldDesc:"地图刷新怪物结构体对应的序号 1 - 9 的位置序号" `
}
type ChallengeBossInboundInfo struct {
	Head   player.TomeeHeader `cmd:"2411" struc:"[0]pad"`
	BossId uint32             `json:"bossId"`
}
type NullOutboundInfo struct {
}

// 准备战斗包
type ReadyToFightInboundInfo struct {
	Head player.TomeeHeader `cmd:"2404" struc:"[0]pad"`
}

// 战斗逃跑
type EscapeFightInboundInfo struct {
	Head player.TomeeHeader `cmd:"2410" struc:"[0]pad"`
}

// HandleFightInviteInboundInfo 处理战斗邀请的入站消息

type HandleFightInviteInboundInfo struct {
	Head   player.TomeeHeader `cmd:"2403" struc:"[0]pad"`
	UserID uint32             `json:"userId" codec:"userId,uint"` // 邀请我对战人的userid
	Flag   uint32             `json:"flag" codec:"flag,uint"`     // 1为同意对战 0为取消对战
	Mode   uint32             `json:"mode" codec:"mode,uint"`     // 战斗类型 1 = 1v1 2 = 6v6
}

type InviteToFightInboundInfo struct {
	Head player.TomeeHeader `cmd:"2401" struc:"[0]pad"`

	UserID uint32 `codec:"true"`

	// Mode 战斗类型 1 = 1v1 2 = 6v6

	Mode info.EnumBattleMode `codec:"true"`
}

// 2502的回复包 PVP邀请消息
type NoteHandleFightInviteOutboundInfo struct {
	UserID   uint32
	Nickname string `struc:"[16]byte"` //  固定长度16字节
	Result   uint32 // 0=拒绝 1=同意 2=在线超6小时 3=无出战精灵 4=不在线
}

type UseSkillInboundInfo struct {
	Head player.TomeeHeader `cmd:"2405" struc:"[0]pad"`
	// 技能id，
	SkillId uint32
}
type ChangePetInboundInfo struct {
	Head player.TomeeHeader `cmd:"2407" struc:"[0]pad"`
	// CatchTime 捕捉时间
	CatchTime uint32 `json:"catchTime"`
}
type CatchMonsterInboundInfo struct {
	Head player.TomeeHeader `cmd:"2409" struc:"[0]pad"`
	// CapsuleId 胶囊id

	CapsuleId uint32 `json:"capsuleId" fieldDescription:"胶囊id" uint:"true"`
}
