package msg

// FortLevelUp 要塞升级
type FortLevelUp struct {
	PlayerId int64 `json:"userId"`
}

type ResponseFortLevelUp struct {
	ErrCode int              `json:"errCode"`
	Msg     string           `json:"msg,omitempty"`
	Data    *FortLevelUpData `json:"data"`
}

type FortLevelUpData struct {
	Level int64           `json:"level"` //等级
	Cost  map[int64]int64 `json:"cost"`  // 消耗
}

// FortTalentUp 天赋升级
type FortTalentUp struct {
	PlayerId int64 `json:"userId"`
	Type     int64 `json:"type"`
}

type ResponseFortTalentUp struct {
	ErrCode int               `json:"errCode"`
	Msg     string            `json:"msg,omitempty"`
	Data    *FortTalentUpData `json:"data"`
}

type FortTalentUpData struct {
	Type  int64           `json:"type"`
	Level int64           `json:"level"` //新天赋等级
	Cost  map[int64]int64 `json:"cost"`  // 消耗
}

// ChangeFortSkin 更换时装
type ChangeFortSkin struct {
	PlayerId int64 `json:"userId"`
	SkinId   int64 `json:"skinId"` //皮肤ID
}

type ResponseChangeFortSkin struct {
	ErrCode int    `json:"errCode"`
	Msg     string `json:"msg,omitempty"`
	Data    int64  `json:"data"` //皮肤ID
}

// type ChangeFortSkinData struct {
// 	Level int64     `json:"level"` //等级
// 	Skin  *FortSkin `json:"skin"`  //皮肤
// }

// StarFortSkin 升星时装
type FortSkinStarUp struct {
	PlayerId int64 `json:"userId"`
	SkinId   int64 `json:"skinId"`
}

type ResponseFortSkinStarUp struct {
	ErrCode int                 `json:"errCode"`
	Msg     string              `json:"msg,omitempty"`
	Data    *FortSkinStarUpData `json:"data"`
}

type FortSkinStarUpData struct {
	SkinId int64           `json:"skinId"`
	Star   int64           `json:"star"`
	Cost   map[int64]int64 `json:"cost"`
}

// FortSkinActive
type FortSkinActive struct {
	PlayerId int64 `json:"userId"`
	SkinId   int64 `json:"skinId"` //皮肤模型ID
}

type ResponseFortSkinActive struct {
	ErrCode int                 `json:"errCode"`
	Msg     string              `json:"msg,omitempty"`
	Data    *FortSkinActiveData `json:"data"`
}

type FortSkinActiveData struct {
	SkinId int64           `json:"skinId"` //皮肤ID
	Level  int64           `json:"level"`
	Cost   map[int64]int64 `json:"cost"`
}

// 要塞技能选配
type FortSkillSelect struct {
	PlayerId int64 `json:"userId"`
	SkillId  int64 `json:"skillId"` //皮肤技能ID
	Pos      int64 `json:"pos"`     //技能位置 0,1,2
}

type ResponseFortSkillSelect struct {
	ErrCode int    `json:"errCode"`
	Msg     string `json:"msg,omitempty"`
	Data    int    `json:"data"`
}

// type FortSkillSelectData struct {
// 	SkillId int64 `json:"skillId"`
// 	Pos     int64 `json:"pos"` //技能位置
// }

const (
	WearRune    = 1
	TakeOffRune = 2
	ReplaceRune = 3
)

// ChangeFortRune 穿卸符文
// 镶嵌 卸下 替换： 1,2,3
type ChangeFortRune struct {
	PlayerId int64 `json:"userId"`
	RuneGId  int64 `json:"runeGId"`
	Type     int64 `json:"type"`
}

type ChangeFortRuneData struct {
}

type ResponseChangeFortRune struct {
	ErrCode int                 `json:"errCode"`
	Msg     string              `json:"msg,omitempty"`
	Data    *ChangeFortRuneData `json:"data"`
}

// RunePartLevelUp 符文部位升级
type RunePartLevelUp struct {
	PlayerId int64 `json:"userId"`
	Part     int64 `json:"wearPart"`
	OptType  int64 `json:"optType"` // 0:升级 1:一键升级
}

type RunePartUpLevelData struct {
}

type ResponseRunePartLevelUp struct {
	ErrCode int                  `json:"errCode"`
	Msg     string               `json:"msg,omitempty"`
	Data    *RunePartUpLevelData `json:"data"`
}

// RuneRecastAttrs 符文重铸属性
type RuneRecastAttrs struct {
	PlayerId  int64   `json:"userId"`
	RuneGId   int64   `json:"runeGId"`
	LockAttrs []*Attr `json:"lockAttrs"`
}

type Attr struct {
	Id    int64   `json:"id"`
	Value float64 `json:"value"`
}

type RuneRecastData struct {
	Attrs     []*Attr `json:"attrs"`
	LockAttrs []*Attr `json:"lockAttrs"`
}

type ResponseRuneRecastAttrs struct {
	ErrCode int             `json:"errCode"`
	Msg     string          `json:"msg,omitempty"`
	Data    *RuneRecastData `json:"data"`
}

// SaveRuneRecastAttrs 保存符文重铸属性
type SaveRuneRecastAttrs struct {
	PlayerId  int64   `json:"userId"`
	RuneGId   int64   `json:"runeGId"`
	Attrs     []*Attr `json:"attrs"`
	LockAttrs []*Attr `json:"lockAttrs"`
}

type SaveRuneRecastAttrsData struct{}

type ResponseSaveRuneRecastAttrs struct {
	ErrCode int                      `json:"errCode"`
	Msg     string                   `json:"msg,omitempty"`
	Data    *SaveRuneRecastAttrsData `json:"data"`
}

// RuneDisintegration 符文分解
type RuneDisintegration struct {
	PlayerId int64 `json:"userId"`
	RuneGId  int64 `json:"runeGId"`
}

type RuneDisintegrationData struct {
}

type ResponseRuneDisintegration struct {
	ErrCode int                     `json:"errCode"`
	Msg     string                  `json:"msg,omitempty"`
	Data    *RuneDisintegrationData `json:"data"`
}

// // 英雄换皮肤
// type HeroChangeSkin struct {
// 	PlayerId int64 `json:"userId"`
// 	HeroId   int64 `json:"heroId"`
// 	SkinId   int64 `json:"skinId"`
// }

// type HeroChangeSkinData struct {
// }

// type ResponseHeroChangeSkin struct {
// 	ErrCode int                 `json:"errCode"`
// 	Msg     string              `json:"msg,omitempty"`
// 	Data    *HeroChangeSkinData `json:"data"`
// }

// // HeroActive 激活
// type HeroActive struct {
// 	PlayerId int64 `json:"userId"`
// 	HeroId   int32 `json:"heroId"`
// 	Type     int32 `json:"type"` // 1 碎片合成 2 钻石购买
// }

// type HeroActiveData struct {
// }

// type ResponseHeroActive struct {
// 	ErrCode int             `json:"errCode"`
// 	Msg     string          `json:"msg,omitempty"`
// 	Data    *HeroActiveData `json:"data"`
// }

// TreasuresLevelUp 宝物升级
// type TreasuresLevelUp struct {
// 	PlayerId int64 `json:"userId"`
// 	Id       int32 `json:"id"`
// }

// type TreasuresLevelUpData struct {
// }

// type ResponseTreasuresLevelUp struct {
// 	ErrCode int                   `json:"errCode"`
// 	Msg     string                `json:"msg,omitempty"`
// 	Data    *TreasuresLevelUpData `json:"data"`
// }

// // TreasureStarUp 宝物升星
// type TreasuresStarUp struct {
// 	PlayerId int64 `json:"userId"`
// 	Id       int32 `json:"id"`
// }

// type TreasuresStarUpData struct {
// }

// type ResponseTreasuresStarUp struct {
// 	ErrCode int                  `json:"errCode"`
// 	Msg     string               `json:"msg,omitempty"`
// 	Data    *TreasuresStarUpData `json:"data"`
// }
