using System.Collections.Generic; using Common.Utility.CombatEvent; using Excel2Json; using Fort23.Core; using Fort23.UTool; namespace GameLogic.Hero { public class HeroInfo : CombatHeroInfo { public SkillData SkillData; private string _iconZhiYe; /// /// 是否为主力英雄 /// public bool isLead; /// /// 技能数据 /// // public SkillData SkillData; public string GetZyIconName() { if (string.IsNullOrEmpty(_iconZhiYe)) { switch (modelConfig.profession) { case 1 : _iconZhiYe = "icon_zy_Shield"; break; case 2 : _iconZhiYe = "icon_zy_Hat"; break; case 3 : _iconZhiYe = "icon_zy_Potion"; break; case 4 : _iconZhiYe = "icon_zy_Bow"; break; } } return _iconZhiYe; } public HeroInfo() { EventManager.Instance.AddEventListener(CustomEventType.HeroEquip, OnHeroEquip); } private void OnHeroEquip(IEventData e) { HeroEquipEventData data = e as HeroEquipEventData; if (data.zy == modelConfig.profession) { CalAttribute(); HeroPowerUpEventData eventData = HeroPowerUpEventData.Create(); eventData.heroModelID = modelID; eventData.isSkillUp = false; eventData.upType = HeroUpType.BasicEquip; EventManager.Instance.Dispatch(CustomEventType.HeroPowerUp, eventData); } } public void InitHero(AccountFileInfo.HeroData heroData) { // modelID = heroData.heroModelId; isLead = heroData.isLead; InitHero(heroData.heroModelId, heroData.heroPowerId, heroData.heroPromoteId); // SetDataConfig(heroData.heroModelId, // heroData.heroPowerId, // heroData.heroPromoteId); // CalFactor(); // CalAttribute(); // SkillData = new SkillData(this); // SkillData.InitSkills(); } public void InitHero(int modelID, int powerID, int promoteID) { this.modelID = modelID; SetDataConfig(modelID, powerID, promoteID); CalAttribute(); SkillData = new SkillData(this); SkillData.InitSkills(); } public HeroInfo Upgrade() { level.Value++; powerUpConfig = ConfigComponent.Instance.Get(level.Value); CalBasicAttribute(); return this; } public HeroInfo Promote() { // star.Value++; // promoteConfig = ConfigComponent.Instance.Get(star.Value); // CalFactor(); // CalBasicAttribute(); return this; } public AccountFileInfo.HeroData ToHeroData() { AccountFileInfo.HeroData heroData = new AccountFileInfo.HeroData { heroModelId = modelConfig.ID, heroPowerId = powerUpConfig.ID, heroPromoteId = promoteConfig.ID, isLead = isLead, }; return heroData; } } }