少年修仙传客户端代码仓库
Hale Cai
2019-08-15 b8385537b8451901681eb76d6943ee4d7c95bf62
382 嘲讽状态下无法释放专精技能
1个文件已修改
70 ■■■■■ 已修改文件
Fight/Actor/Status/Status_Mocking.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/Status_Mocking.cs
@@ -1,8 +1,30 @@
using UnityEngine;
using System;
using Snxxz.UI;
using UnityEngine;
public class Status_Mocking : Status_Base
{
    private float m_LastUseSkillTime;
    private int m_UseClickSkill = -1;
    public override void Init(uint sid, int skillId, uint srcSid, int type, int lastTime)
    {
        base.Init(sid, skillId, srcSid, type, lastTime);
        m_UseClickSkill = -1;
        HeroBehaviour.OnUserClickSkill += OnUserClickSkill;
    }
    private void OnUserClickSkill(int skillId)
    {
        m_UseClickSkill = skillId;
    }
    public override void UnInit(uint objID, byte buffType)
    {
        base.UnInit(objID, buffType);
        HeroBehaviour.OnUserClickSkill -= OnUserClickSkill;
    }
    public sealed override void Update()
    {
@@ -42,13 +64,39 @@
            }
        }
        int _index = _hero.nextComAtkIndex;
        if (_index == -1)
        _skill = null;
        if (m_UseClickSkill != -1)
        {
            _index = 0;
            int _skillId;
            var _tsModel = ModelCenter.Instance.GetModel<TreasureSkillModel>();
            if (_tsModel.TryGetExpertSkill(m_UseClickSkill, out _skillId))
            {
                int _level = 0;
                if (_tsModel.TryGetExpertActiveLevel(_skillId, out _level))
                {
                    _skillId += (_level - 1);
                }
                var _skillInfo = SkillHelper.Instance.Get(_skillId);
                SkillHelper.EffectValue _effectValue;
                if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue))
                {
                    _skill = _hero.SkillMgr.Get(_skillId);
                }
            }
            m_UseClickSkill = -1;
        }
        int _comSkillID = _hero.GetCommonSkillID(_index);
        _skill = _hero.SkillMgr.Get(_comSkillID);
        if (_skill == null)
        {
            int _index = _hero.nextComAtkIndex;
            if (_index == -1)
            {
                _index = 0;
            }
            int _comSkillID = _hero.GetCommonSkillID(_index);
            _skill = _hero.SkillMgr.Get(_comSkillID);
        }
        if (_skill == null)
        {
@@ -92,8 +140,16 @@
        Vector3 _forward = MathUtility.ForwardXZ(_target.Pos, _hero.Pos);
        _hero.destForward = _hero.Forward = _forward;
        _hero.Behaviour.DoCommonAttack();
        if (_skill.skillInfo.config.FuncType == (int)E_SkillFuncType.NormalAttack)
        {
            _hero.Behaviour.DoCommonAttack();
        }
        else
        {
            _hero.Behaviour.DoAttack(_skill);
        }
        m_UseClickSkill = -1;
        m_LastUseSkillTime = Time.time;
    }
}