using Core.Utility;
using Excel2Json;
using Fort23.UTool;
namespace GameLogic.Hero
{
public class SkillInfo
{
public CombatHeroInfo heroInfo;
public SkillConfig skillConfig;
///
/// 是否解锁
///
public bool isUnLock;
public SkillUpConfig upConfig;
// private SkillData _skillData;
public void UpdateInfo()
{
isUnLock = PlayerManager.Instance.heroController.IsUnLockSkill(heroInfo.level.Value, heroInfo.star.Value, skillConfig.ID);
}
public void Init(SkillData skillData, SkillConfig skillConfig)
{
// this._skillData = skillData;
this.skillConfig = skillConfig;
heroInfo = skillData.heroInfo;
isUnLock = PlayerManager.Instance.heroController.IsUnLockSkill(heroInfo.level.Value, heroInfo.star.Value, skillConfig.ID);
int skillUpID = skillConfig.ID % 100;
upConfig = ConfigComponent.Instance.Get(skillUpID);
// isUnLock = false;
// if (skillConfig.ID == GlobalParam.Normal_Attack_Skill_Group_ID)
// {
// isUnLock = true;
// }
// else
// {
// //整体可能有点绕,后面再看优化不
//
// //取技能ID的后两位,后两位是技能解锁表SkillUpConfig的ID, 取这个ID来判断,这个技能是否解锁,以及还差多少差解锁
// int skillUpID = skillConfig.ID % 100;
// skillUpConfig = ConfigComponent.Instance.Get(skillUpID);
//
// //取个位
// int gw = skillUpID % 10;
//
// int skillUpID1 = -1;
// //当个位>1时,需要额外判断一下,技能的1级是否已经解锁(可能1级是星级解锁),比如 21,31,,41。
// //避免出现,技能是5星解锁解锁1级,200级解锁2级,但玩家现在4星,201级,就不该解锁2级,因为星级不够
// if (gw > 1)
// {
// //技能1级的解锁ID,例如: 33 - 3 + 1 = 31, 31就是技能1级的解锁条件id
// skillUpID1 = skillUpID - gw + 1;
// }
//
// //等级解锁
// if (skillUpConfig.upType == 1)
// {
// SkillUpConfig skillUpConfig1 = new SkillUpConfig();
// if (skillUpID1 > 0)
// {
// skillUpConfig1 = ConfigComponent.Instance.Get(skillUpID1);
// }
//
// //如果技能的第一级需要星级解锁,需额外判断一下星级是否达到
// bool isStarOk = skillUpConfig1.upType != 2 || heroInfo.star.Value > skillUpConfig1.upValue;
//
//
// if (heroInfo.level.Value >= skillUpConfig.upValue && isStarOk)
// {
// isUnLock = true;
// }
// }
// //星级解锁
// else if (skillUpConfig.upType == 2)
// {
// if (heroInfo.star.Value >= skillUpConfig.upValue)
// {
// isUnLock = true;
// }
// }
// }
}
}
}