package model

// 要塞皮肤表-FortMode exported from 要塞配置.xlsx
type FortMode struct {
	Uid  int64  `json:"Uid"`  // 唯一编号
	Name string `json:"Name"` // 皮肤名字
	// Des           string    `json:"Des"`           // 要塞描述 皮肤升星
	// Res           string    `json:"Res"`           // 皮肤资源
	Quality    int64 `json:"Quality"`    // 皮肤品质
	UnlockItem int64 `json:"UnlockItem"` // 解锁道具  0：无
	GetType    int64 `json:"GetType"`    // 获得方式  0：初始获得 1：解锁获得
	// Shape         [][]int64 `json:"Shape"`         // 地块所占格子 【【第1行1格，第1行2格，第1行3格……】, 【第2行1格，第2行2格，第2行3格……】， 【第3行1格，第3行2格，第3行3格……】】 0：空 1：有 注意：每个块的第一横行要写全，用来判断此地块的长度。
	Offset        []int64 `json:"Offset"`        // 角色的偏移格子数 单位：格 角色的中心点位置
	Radius        int64   `json:"Radius"`        // 要塞碰撞半径
	LandRes       int64   `json:"LandRes"`       // 形状类型
	OrdinarySkill int64   `json:"OrdinarySkill"` // 普攻技能ID  0：没有普攻
} // package model

// 要塞皮肤升星表-FortModeAdvance exported from 要塞配置.xlsx
type FortModeAdvance struct {
	Uid        int64     `json:"Uid"`        // 唯一编号  编号：皮肤编号*100+星级 服务端读表用
	ModeId     int64     `json:"ModeId"`     // 皮肤编号
	Star       int64     `json:"Star"`       // 升星等级
	NextExpend [][]int64 `json:"NextExpend"` // 升星本级消耗 【【道具ID，数量】】  注：若为两个道具则升星只需其中任意道具足够即可
	Skill      int64     `json:"Skill"`      // 皮肤技能  0：无
	Deep       float64   `json:"Deep"`       // 要塞伤害加深/%
} // package model

// 要塞升级表-FortUpList exported from 要塞配置.xlsx
type FortLevel struct {
	ID        int64     `json:"ID"`        // 要塞等级
	Ant       int64     `json:"Ant"`       // 基础攻击力  整数值
	Attr      int64     `json:"Attr"`      // 攻击属性  1：物理 2：魔法
	Pen       int64     `json:"Pen"`       // 全能穿透  整数值 全局生效
	Apen      int64     `json:"Apen"`      // 物理穿透  整数值 全局生效
	Mpen      int64     `json:"Mpen"`      // 魔法穿透  整数值 全局生效
	Td        int64     `json:"Td"`        // 真实伤害  整数值 无视抗性
	Hp        int64     `json:"Hp"`        // 血量  整数值
	As        float64   `json:"As"`        // 攻速  小数值 1秒攻击多少次，越大攻速越快
	Crt       float64   `json:"Crt"`       // 暴击率  小数值 展示百分比
	Dmg       int64     `json:"Dmg"`       // 暴击伤害  小数值 展示百分比
	Heal      int64     `json:"Heal"`      // 治疗力  整数值 控制恢复量
	GridLimit int64     `json:"GridLimit"` // 联结网格块上限
	Range     int64     `json:"Range"`     // 警戒范围 普攻范围  整数值 以此地块为中心的半径像素大小 进入此范围英雄开始攻击
	UpText    string    `json:"UpText"`    // 升星技能加成文本
	UpExpend  [][]int64 `json:"UpExpend"`  // 升级本级消耗材料  [[道具ID，数量]]  首个道具为3025则为突破
}

// 要塞天赋-Talent exported from 要塞天赋配置.xlsx
type FortTalent struct {
	Uid  int64 `json:"Uid"`  // 唯一ID  编号：天赋类型*1000+顺序 服务端读表用
	Type int64 `json:"Type"` // 天赋类型 1--主天赋 2--副天赋
	Lv   int64 `json:"Lv"`   // 等级要求 要塞x级后解锁
	// Icon    string    `json:"Icon"`    // 图标资源
	Skill [][]int64 `json:"Skill"` // 主天赋： 【【技能类型】，【参数】】 副天赋 【技能ID】
	Name  string    `json:"Name"`  // 天赋名称
	// Des     string    `json:"Des"`     // 天赋描述
	Consume [][]int64 `json:"Consume"` // 消耗
}

// 场景皮肤列表-SceneSkin exported from 要塞场景皮肤.xlsx
type SceneSkin struct {
	Uid        int64  `json:"Uid"`        // 皮肤编号
	Name       string `json:"Name"`       // 皮肤名字
	Describe   string `json:"Describe"`   // 场景皮肤描述
	Res        string `json:"Res"`        // 皮肤资源
	UnlockItem int64  `json:"UnlockItem"` // 解锁道具
	Sort       int64  `json:"Sort"`       // 排序 皮肤列表中排序位置 按数值大到小（0代表不进入列表的皮肤）
} // package model

// 场景皮肤升星表-SceneSkinAdvance exported from 要塞场景皮肤.xlsx
type SceneSkinAdvance struct {
	Uid        int64     `json:"Uid"`        // 唯一编号  编号：皮肤编号*100+星级 服务端读表用
	SkinId     int64     `json:"SkinId"`     // 皮肤编号
	Star       int64     `json:"Star"`       // 升星等级
	NextExpend [][]int64 `json:"NextExpend"` // 升星本级消耗 【【道具ID，数量】】  注：若为两个道具则升星只需其中任意道具足够即可
	Skill      int64     `json:"Skill"`      // 皮肤技能  0：无
	// CollectSkill1 []int64 `json:"CollectSkill1"` // 收集效果1 地块数增加效果
	// CollectSkill2 []int64 `json:"CollectSkill2"` // 收集效果2 要塞攻击力增加%
	// CollectSkill3 []int64 `json:"CollectSkill3"` // 收集效果3 所有英雄攻击力增加%
	Skill1     int64   `json:"Skill1"`     // 收集效果1 地块数增加效果
	Parameter1 int64   `json:"Parameter1"` // 参数
	Skill2     int64   `json:"Skill2"`     // 收集效果2 要塞攻击力增加%
	Parameter2 float64 `json:"Parameter2"` // 参数
	Skill3     int64   `json:"Skill3"`     // 收集效果3 所有英雄攻击力增加%
	Parameter3 float64 `json:"Parameter3"` // 参数
}

func ArenaStarIdToSkinId(skinStarId int64) int64 {
	return skinStarId / 100
}

func ArenaSkinIdToStarId(areanSkinId int64, star int64) int64 {
	return (areanSkinId*100 + star)
}

// 共鸣基础表-EchoBase exported from 共鸣配置.xlsx
type EchoBase struct {
	Uid          int64   `json:"Uid"`          // 类型 1--天神系 2--半神系 3--军团系 4--侠盗系 5--魔灵系 6--恶魔系
	EffectSkill1 int64   `json:"EffectSkill1"` // 对应阵营上阵效果类型
	EffectSkill2 int64   `json:"EffectSkill2"` // 对应阵营属性增加效果类型
	SlotMax      int64   `json:"SlotMax"`      // 槽位上限
	Consume1     int64   `json:"Consume1"`     // 消耗的普通道具
	Consume2     int64   `json:"Consume2"`     // 消耗的进阶道具
	CD           int64   `json:"CD"`           // 下阵CD /秒
	ResetConsume []int64 `json:"ResetConsume"` // 单位重置CD消耗 10分钟需要多少个钻石 不足10分钟按10分钟计算
} // package model

// 共鸣升级表-EchoUp exported from 共鸣配置.xlsx
type EchoUp struct {
	Lv        int64   `json:"Lv"`        // 等级
	LimitLv   int64   `json:"LimitLv"`   // 要塞等级  限制升级
	AttackAdd int64   `json:"AttackAdd"` // 基础属性 上阵英雄 攻击增加值 对应共鸣基础表：EffectSkill1
	Attribute float64 `json:"Attribute"` // 对应阵营所有英雄的攻击力增加% 对应共鸣基础表：EffectSkill2
	SlotAdd   int64   `json:"SlotAdd"`   // 共鸣槽位增加量
	Use1      int64   `json:"Use1"`      // 普通道具消耗
	Use2      int64   `json:"Use2"`      // 进阶道具消耗
}

// func (eu *EchoUp) GetSlotNum() int64 {
// 	return eu.SlotAdd
// }
