package model

const (
	LegendCompoundNum = 5 // 合成一个高品质铭文消耗的低级铭文数量

	//类型
	//1--传承铭文
	//2--纷争铭文
	//3--冥想铭文
	//4--神圣铭文
	LegendTypeInherit    = 1
	LegendTypeWrangle    = 2
	LegendTypeMeditation = 3
	LegendTypeHoly       = 4

	//	槽位类型
	//1：普通槽位
	//2：神圣槽位
	SlotTypeNormal = 1
	SlotTypeHoly   = 2
)

// 铭文槽位-LegendSlot exported from 铭文配置.xlsx
type LegendSlot struct {
	Uid       int64 `json:"Uid"`       // 唯一编号
	Type      int64 `json:"Type"`      // 大类型 1--传承铭文 2--纷争铭文 3--冥想铭文
	SlotType  int64 `json:"SlotType"`  // 槽位类型 1：普通槽位 2：神圣槽位
	Order     int64 `json:"Order"`     // 槽位顺序编号
	Condition int64 `json:"Condition"` // 位置解锁条件 主线关卡ID
} // package model

type LegendSlotList []*LegendSlot

func (l LegendSlotList) Len() int      { return len(l) }
func (l LegendSlotList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }
func (l LegendSlotList) Less(i, j int) bool {
	if l[i].Type == l[j].Type {
		return l[i].Order < l[j].Order
	}
	return l[i].Type < l[j].Type
}

// 铭文表-Legend exported from 铭文配置.xlsx
type Legend struct {
	Uid       int64     `json:"Uid"`       // ID
	Type      int64     `json:"Type"`      // 类型 1--传承铭文 2--纷争铭文 3--冥想铭文 4--神圣铭文
	Name      string    `json:"Name"`      // 名称
	Quality   int64     `json:"Quality"`   // 品质
	Icon      string    `json:"Icon"`      // 图标
	Des       string    `json:"Des"`       // 属性描述
	Skill     int64     `json:"Skill"`     // 词条类型
	Value     []float64 `json:"Value"`     // 数值
	OnlyEntry int64     `json:"OnlyEntry"` // 唯一词条，全铭文唯一 1--是唯一属性 0--不是唯一属性
} // package model

// 铭文精通等级-LegendExcel exported from 铭文配置.xlsx
type LegendExcel struct {
	Grade     int64 `json:"Grade"`     // 等级
	Condition int64 `json:"Condition"` // 所需铭文总品质等级
	// EntrySkill1 [][]int64 `json:"EntrySkill1"` // 要塞攻击力 【【技能类型】，【参数】】
	// EntrySkill2 [][]int64 `json:"EntrySkill2"` // 要塞爆伤 【【技能类型】，【参数】】
	Consume    []int64 `json:"Consume"`    // 本机升级消耗 【道具ID，数量】
	Skill1     int64   `json:"Skill1"`     // 服务端校验用 第一类型
	Parameter1 float64 `json:"Parameter1"` // 服务器校验用 第一类型参数
	Skill2     int64   `json:"Skill2"`     // 服务器校验用 第二类型
	Parameter2 float64 `json:"Parameter2"` // 服务器校验用 第二类型 参数
} // package model

// 铭文重铸消耗-LegendConsume exported from 铭文配置.xlsx
type LegendConsume struct {
	Uid             int64   `json:"Uid"`             // ID
	Quality         int64   `json:"Quality"`         // 铭文品质
	ConsumeQuantity []int64 `json:"ConsumeQuantity"` // 消耗数量 空值--不可重铸 [道具ID，数量]
}
