public override bool GetActorStaticSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
 {
     skillData.TheActorMeta = actorMeta;
     skillData.SkillSlot    = skillSlot;
     ActorStaticDataProviderBase.ActorSkillDataBuilder actorSkillDataBuilder = null;
     this._actorSkillDataBuilder.TryGetValue((uint)actorMeta.ActorType, out actorSkillDataBuilder);
     return(actorSkillDataBuilder != null && actorSkillDataBuilder(ref actorMeta, skillSlot, ref skillData));
 }
        protected virtual bool BuildOrganSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            ResOrganCfgInfo dataCfgInfoByCurLevelDiff = OrganDataHelper.GetDataCfgInfoByCurLevelDiff(skillData.TheActorMeta.ConfigId);

            if (dataCfgInfoByCurLevelDiff == null)
            {
                base.ErrorMissingOrganConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (skillSlot >= (ActorSkillSlot)dataCfgInfoByCurLevelDiff.SkillIDs.Length)
            {
                return(false);
            }
            skillData.SkillId        = dataCfgInfoByCurLevelDiff.SkillIDs[(int)skillSlot];
            skillData.PassiveSkillId = 0;
            return(skillData.SkillId > 0);
        }
        protected virtual bool BuildMonsterSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            ResMonsterCfgInfo dataCfgInfo = MonsterDataHelper.GetDataCfgInfo(skillData.TheActorMeta.ConfigId, (int)skillData.TheActorMeta.Difficuty);

            if (dataCfgInfo == null)
            {
                dataCfgInfo = MonsterDataHelper.GetDataCfgInfo(skillData.TheActorMeta.ConfigId, 1);
            }
            if (dataCfgInfo == null)
            {
                base.ErrorMissingMonsterConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (skillSlot >= (ActorSkillSlot)dataCfgInfo.SkillIDs.Length)
            {
                return(false);
            }
            skillData.SkillId        = dataCfgInfo.SkillIDs[(int)skillSlot];
            skillData.PassiveSkillId = dataCfgInfo.PassiveSkillID[(int)skillSlot];
            return(skillData.SkillId > 0 || skillData.PassiveSkillId > 0);
        }
        protected virtual bool BuildHeroSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            ResHeroCfgInfo dataByKey = GameDataMgr.heroDatabin.GetDataByKey((uint)skillData.TheActorMeta.ConfigId);

            if (dataByKey == null)
            {
                base.ErrorMissingHeroConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (skillSlot >= (ActorSkillSlot)dataByKey.astSkill.Length)
            {
                return(false);
            }
            skillData.PassiveSkillId = dataByKey.astSkill[(int)skillSlot].iPassiveSkillID;
            skillData.SkillId        = dataByKey.astSkill[(int)skillSlot].iSkillID;
            return(skillData.SkillId > 0);
        }
 public virtual bool GetActorStaticSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
 {
     return(false);
 }
        protected virtual bool BuildMonsterSkillData(ref ActorMeta actorMeta, ActorSkillSlot skillSlot, ref ActorStaticSkillData skillData)
        {
            int index = (int)skillSlot;
            ResMonsterCfgInfo dataCfgInfo = MonsterDataHelper.GetDataCfgInfo(skillData.TheActorMeta.ConfigId, skillData.TheActorMeta.Difficuty);

            if (dataCfgInfo == null)
            {
                base.ErrorMissingMonsterConfig((uint)skillData.TheActorMeta.ConfigId);
                return(false);
            }
            if (index >= dataCfgInfo.SkillIDs.Length)
            {
                return(false);
            }
            skillData.SkillId        = dataCfgInfo.SkillIDs[index];
            skillData.PassiveSkillId = dataCfgInfo.PassiveSkillID[index];
            return((skillData.SkillId > 0) || (skillData.PassiveSkillId > 0));
        }