| | |
| | | /// </summary>
|
| | | [XLua.LuaCallCSharp]
|
| | | public class SkillHelper : Singleton<SkillHelper>
|
| | | |
| | |
|
| | | {
|
| | | private Dictionary<int, SkillInfo> m_SkillInfoDict;
|
| | | private Dictionary<int, List<SkillInfo>> m_SkillToSpSkill;
|
| | |
| | | {
|
| | | effectValue = new Dictionary<int, EffectValue>();
|
| | |
|
| | | soFile = ScriptableObjectLoader.LoadSoSkill(skillID);
|
| | |
|
| | | if (soFile)
|
| | | {
|
| | | HasHitEvent = soFile.animationEventList.Count > 0;
|
| | | if (HasHitEvent)
|
| | | {
|
| | | HasHitEvent = false;
|
| | | SoConfigBase _soConfig = null;
|
| | | int _param;
|
| | | int _id;
|
| | | SoSkill.E_AttackType _type;
|
| | | for (int i = 0; i < soFile.animationEventList.Count; ++i)
|
| | | {
|
| | | if (soFile.animationEventList[i].frameEventType != E_FrameEventType.OnSkillEvent)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | _soConfig = null;
|
| | | _param = soFile.animationEventList[i].intParam;
|
| | | _id = SoSkill.GetFrameEventId(_param);
|
| | | _type = SoSkill.GetAttactType(_param);
|
| | |
|
| | | if (_type == SoSkill.E_AttackType.Sweep)
|
| | | {
|
| | | _soConfig = ScriptableObjectLoader.LoadSoSweepHit(_id);
|
| | | }
|
| | | else if (_type == SoSkill.E_AttackType.FlyObject)
|
| | | {
|
| | | _soConfig = ScriptableObjectLoader.LoadSoFlyObject(_id);
|
| | | }
|
| | |
|
| | | if (_soConfig != null && _soConfig.floodPercent != 0)
|
| | | {
|
| | | HasHitEvent = true;
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | config = SkillConfig.Get(skillID);
|
| | |
|
| | | if (config != null)
|
| | | {
|
| | | if (config.Effect1 > 0)
|
| | |
| | | effectValue[config.Effect5] = _effectValue;
|
| | | }
|
| | | }
|
| | |
|
| | | soFile = ScriptableObjectLoader.LoadSoSkill(config.SkillTypeID);
|
| | |
|
| | | if (soFile)
|
| | | {
|
| | | HasHitEvent = soFile.animationEventList.Count > 0;
|
| | | if (HasHitEvent)
|
| | | {
|
| | | HasHitEvent = false;
|
| | | SoConfigBase _soConfig = null;
|
| | | int _param;
|
| | | int _id;
|
| | | SoSkill.E_AttackType _type;
|
| | | for (int i = 0; i < soFile.animationEventList.Count; ++i)
|
| | | {
|
| | | if (soFile.animationEventList[i].frameEventType != E_FrameEventType.OnSkillEvent)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | _soConfig = null;
|
| | | _param = soFile.animationEventList[i].intParam;
|
| | | _id = SoSkill.GetFrameEventId(_param);
|
| | | _type = SoSkill.GetAttactType(_param);
|
| | |
|
| | | if (_type == SoSkill.E_AttackType.Sweep)
|
| | | {
|
| | | _soConfig = ScriptableObjectLoader.LoadSoSweepHit(_id);
|
| | | }
|
| | | else if (_type == SoSkill.E_AttackType.FlyObject)
|
| | | {
|
| | | _soConfig = ScriptableObjectLoader.LoadSoFlyObject(_id);
|
| | | }
|
| | |
|
| | | if (_soConfig != null && _soConfig.floodPercent != 0)
|
| | | {
|
| | | HasHitEvent = true;
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|