package model

const (
	HeroStratumNormal = 1
	HeroStratumMyth   = 2
)

// const (
// 	// 英雄等级
// 	HeroQualityWhite int64 = iota + 1
// 	HeroQualityGreen
// 	HeroQualityBlue
// 	HeroQualityPurple

// 	HeroQualityMythic int64 = 10
// )

const (
	HeroTypeNormal = 1
	HeroTypeMythic = 2
)

func SkinIdToHeroId(skinId int64) int64 {
	return (skinId / 1000)
}

// LandBase 英雄类型列表-LandBase exported from 英雄配置.xlsx
type LandBase struct {
	ID   int64  `json:"ID"`   // 地块ID
	Name string `json:"Name"` // 地块名字
	Type int64  `json:"Type"` // 地块定位类型  1：基础 2：神话
	// Quality        int64     `json:"Quality"`        // 品质 1：白 2：绿 3：蓝 4：紫  10:神话
	Camp           int64     `json:"Camp"`           // 阵营类型  1：天神 2：半神 3：军团 4：侠盗 5：魔灵 6：恶魔
	Tag            [][]int64 `json:"Tag"`            // 定位列表  查找定位文本表 【【对应形象定位】，【对应形象定位】】
	HeroRes        []int64   `json:"HeroRes"`        // 对应形象的数值  可变换形态的填数组
	SkinList       []int64   `json:"SkinList"`       // 皮肤组  【皮肤组号，皮肤组号】  在英雄形象列表 默认第一个是基础皮肤
	Formula        []int64   `json:"Formula"`        // 合成公式  【【地块ID，品质】，【地块ID，品质】】
	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"`         // 角色的偏移格子数 单位：格 角色的中心点位置
	LandRes        int64     `json:"LandRes"`        // 形状类型
	Dmg            float64   `json:"Dmg"`            // 升级增加的暴击伤害%  小数值
	GetWey         []int64   `json:"GetWey"`         // 获取方式  0：初始获得 1：钻石购买 2：其它直接获得
	ExclusiveItem  int64     `json:"ExclusiveItem"`  // 碎片道具ID
	DiamondNum     int64     `json:"DiamondNum"`     // 钻石价格
	Disintegration []int64   `json:"Disintegration"` // 分解获得  神话英雄招募时若已获得则自动分解
	IsShow         int64     `json:"IsShow"`         // 列表中是否显示 0：不显示 1：显示
}

// 英雄皮肤表-LandModeSkin exported from 英雄配置.xlsx
type LandModeSkin struct {
	SkinId     int64   `json:"SkinId"`     // 皮肤组号
	HeroId     int64   `json:"HeroId"`     // 造型所属英雄
	Name       string  `json:"Name"`       // 形象名字
	Skill      []int64 `json:"Skill"`      // 皮肤技能 界面上显示  技能ID []:没有技能
	Deep       float64 `json:"Deep"`       // 收集属性  本体伤害加成 文本："收集属性：本体伤害+x%" /小数 0：没有
	Hp         float64 `json:"Hp"`         // 收集属性  本体血量加成 文本："收集属性：本体血量+x%" /小数 0：没有
	Quality    int64   `json:"Quality"`    // 皮肤品质  6-典藏彩 5-传说橙 4-精品紫 3-蓝色
	HeroRes    int64   `json:"HeroRes"`    // 皮肤展示英雄阶段
	HeroImage  string  `json:"HeroImage"`  // 皮肤立绘展示
	UnlockItem int64   `json:"UnlockItem"` // 解锁道具  道具表中ID 0：默认解锁
} // package model

// LandUpList 英雄升级列表-LandUpList exported from 英雄配置.xlsx
type LandUpList struct {
	Uid     int64     `json:"Uid"`     // 唯一编号
	ID      int64     `json:"ID"`      // 英雄ID
	Level   int64     `json:"Level"`   // 地块外围等级
	Consume [][]int64 `json:"Consume"` // 升级至本级所需材料   【【道具ID，消耗数量】】  注：第1位是升级材料,第2位是金币
	// UpText  string    `json:"UpText"`  // 升星技能加成文本
}

// LandMode 英雄形象列表-LandMode exported from 英雄配置.xlsx
type LandMode struct {
	Uid     int64   `json:"Uid"`     // 唯一ID
	SkinId  int64   `json:"SkinId"`  // 最终皮肤组号  每种英雄预留5个位置 服务器要求将此组和HeroId关联 公式：HeroId * 1000+皮肤组号
	HeroId  int64   `json:"HeroId"`  // 造型所属英雄
	Order   int64   `json:"Order"`   // 进阶顺序
	Name    string  `json:"Name"`    // 形象名字
	HeroRes string  `json:"HeroRes"` // 英雄资源名
	Pos     []int64 `json:"Pos"`     // 子弹发射点  怪物资源上找 可多个发射点
	Skill   int64   `json:"Skill"`   // 皮肤技能 界面上显示  技能ID 0:没有技能
}

// 英雄形象数值-LandModeData exported from 英雄配置.xlsx
type LandModeData struct {
	Uid           int64   `json:"Uid"`           // 唯一编号
	ID            int64   `json:"ID"`            // 地块ID
	Order         int64   `json:"Order"`         // 进阶顺序 基础：升级形态 神话：变化形态
	Level         int64   `json:"Level"`         // 地块外围等级
	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"`            // 真实伤害  整数值 无视抗性
	As            int64   `json:"As"`            // 攻速  小数值 1秒攻击多少次，越大攻速越快
	Crt           int64   `json:"Crt"`           // 暴击率  小数值 展示百分比
	Dmg           int64   `json:"Dmg"`           // 暴击伤害  小数值 展示百分比
	Range         int64   `json:"Range"`         // 警戒范围 普攻范围  整数值 以此地块为中心的半径像素大小 进入此范围英雄开始攻击
	Price         []int64 `json:"Price"`         // 出售价格  【道具ID，数量】
	OrdinarySkill int64   `json:"OrdinarySkill"` // 普攻技能ID  0：没有普攻
	SkillList     []int64 `json:"SkillList"`     // 技能列表 （临时）  【【技能ID，动作编号，是否解锁】】 普通攻击动作编号永远为1  0:未解锁 1：已解锁
} // package model

// 定位文本-LandTag exported from 英雄配置.xlsx
type LandTag struct {
	Uid  int64  `json:"Uid"`  // 编号
	Text string `json:"Text"` // 定位文本
	Icon string `json:"Icon"` // 背景资源
}

func IsMythicHero(heroId int64) bool {
	return heroId >= 100
}
