using System; using Core.Utility; using Excel2Json; using Fort23.UTool; namespace GameLogic.Hero { public class SkillInfo { public long qiangDu; public SkillConfig skillConfig; public SkillPowerupConfig SkillPowerupConfig; public int index; public float[] effectValue; public AccountFileInfo.SkillData SkillData; public SkillInfo(int skillId, int skillPowerup) { InitSkill(skillId, skillPowerup); } public SkillInfo(int skillIdGroup, int skillPowerup, int start) { start--; int skillid = skillIdGroup * 10 + start; while (start >= 0) { SkillConfig skillConfig = ConfigComponent.Instance.Get(skillid); if (skillConfig.ID > 0) { break; } start--; skillid = skillIdGroup * 10 + start; } InitSkill(skillid, skillPowerup); } private void InitSkill(int skillId, int skillPowerup) { SkillData = new AccountFileInfo.SkillData(); skillConfig = ConfigComponent.Instance.Get(skillId); SkillPowerupConfig = ConfigComponent.Instance.Get(skillPowerup); if (skillConfig.ID != 0) { if (skillConfig.effectValue == null) { skillConfig.effectValue = new float[1]; } effectValue = new float[skillConfig.effectValue.Length]; Array.Copy(skillConfig.effectValue, effectValue, skillConfig.effectValue.Length); if (skillConfig.intensifierIndex != null) { for (int i = 0; i < skillConfig.intensifierIndex.Length; i++) { int index = skillConfig.intensifierIndex[i] - 1; if (index >= 0 && index < effectValue.Length) { effectValue[index] = effectValue[index] * SkillPowerupConfig.SkillPower1 * 0.01f; } } } } qiangDu = (long)(SkillPowerupConfig.MainPower * skillConfig.power); index = 0; } public void CustomInt(AccountFileInfo.SkillData skillId) { SkillData = skillId; skillConfig = ConfigComponent.Instance.Get(skillId.id * 10 + skillId.star - 1); SkillPowerupConfig = ConfigComponent.Instance.Get(skillId.level); if (skillConfig.effectValue == null) { skillConfig.effectValue = new float[1]; } if (skillConfig.effectValue != null) { effectValue = new float[skillConfig.effectValue.Length]; Array.Copy(skillConfig.effectValue, effectValue, skillConfig.effectValue.Length); } else { LogTool.Error("找不到技能id:" + (skillId.id * 10 + skillId.star - 1)); } if (skillConfig.intensifierIndex != null) { for (int i = 0; i < skillConfig.intensifierIndex.Length; i++) { int index = skillConfig.intensifierIndex[i] - 1; if (index >= 0 && index < effectValue.Length) { effectValue[index] = effectValue[index] * SkillPowerupConfig.SkillPower1 * 0.01f; } } } qiangDu = (long)(SkillPowerupConfig.MainPower * skillConfig.power); } public SkillInfo(AccountFileInfo.SkillData skillId) { CustomInt(skillId); index = 0; } } }