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);
CalFactor();
CalAttribute();
SkillData = new SkillData(this);
SkillData.InitSkills();
}
public HeroInfo Upgrade()
{
level.Value++;
powerUpConfig = ConfigComponent.Instance.Get(level.Value);
CalFactor();
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;
}
}
}