Exemplo n.º 1
0
    public static void StartMoveScale(GameObject target, SkillMoveScaleInfo info)
    {
        MovementControl tLockFrame = target.gameObject.GetComponent <MovementControl>();

        if (tLockFrame == null)
        {
            LogicSystem.GfxLog("StartMoveScale component miss!");
            return;
        }
        tLockFrame.StartMoveScale(info);
    }
Exemplo n.º 2
0
    public SkillMoveScaleInfo Clone()
    {
        SkillMoveScaleInfo newData = new SkillMoveScaleInfo();

        newData.IsValid    = IsValid;
        newData.Id         = Id;
        newData.Duration   = Duration;
        newData.MoveScale  = MoveScale;
        newData.NeedTarget = NeedTarget;
        return(newData);
    }
Exemplo n.º 3
0
    /// param:ID[对应到SkillSceneObjManager中的LockFrameInfo Id]
    /// example:101
    public void Trigger_LockMoveScale(string param)
    {
#if SHOOTER_LOG
        Debug.Log("Trigger_LockMoveScale param:");
#endif
        if (m_SceneObjMgr != null)
        {
            SkillSceneObjInfo  sobjInfo = new SkillSceneObjInfo(param);
            SkillMoveScaleInfo lockInfo = m_SceneObjMgr.TryGetSkillMoveScaleInfo(sobjInfo.Id);
            if (lockInfo != null)
            {
                lockInfo = lockInfo.Clone();
                TriggerImpl.StartMoveScale(this.gameObject, lockInfo);
            }
            else
            {
                Debug.Log("Trigger_LockFrame null!");
            }
        }
    }
Exemplo n.º 4
0
    private static void ProcessImpactLock(GameObject attacker, SkillImpactInfos impacts, bool isTargeted)
    {
        SkillLockFrameInfo lockInfo = TriggerImpl.GetLockFrameInfoById(attacker, impacts.LockFrameInfoId);

        if (lockInfo != null)
        {
            lockInfo = lockInfo.Clone();
            if (lockInfo.NeedTarget)
            {
                if (isTargeted)
                {
                    TriggerImpl.StartLockFrame(attacker, lockInfo);
                }
            }
            else
            {
                TriggerImpl.StartLockFrame(attacker, lockInfo);
            }
        }

        SkillMoveScaleInfo lockMoveInfo = TriggerImpl.GetMoveScaleInfoById(attacker, impacts.MoveScaleInfoId);

        if (lockMoveInfo != null)
        {
            lockMoveInfo = lockMoveInfo.Clone();
            if (lockInfo.NeedTarget)
            {
                if (isTargeted)
                {
                    TriggerImpl.StartMoveScale(attacker, lockMoveInfo);
                }
            }
            else
            {
                lockMoveInfo = lockMoveInfo.Clone();
                TriggerImpl.StartMoveScale(attacker, lockMoveInfo);
            }
        }
    }
Exemplo n.º 5
0
    internal void Update()
    {
        float delta = Time.deltaTime;

        if (m_MoveScaleInfo != null && m_MoveScaleInfo.Duration >= 0)
        {
            m_MoveScaleElapsed += delta;
            if (m_MoveScaleElapsed <= m_MoveScaleInfo.Duration)
            {
                delta *= m_MoveScaleInfo.MoveScale;
            }
            else
            {
                m_MoveScaleElapsed = 0;
                m_MoveScaleInfo    = null;
            }
        }
        m_MovementCom.ExecuteMove(delta);

        if (!m_IsIngoreGravity)
        {
            if (IsAutoGravity())
            {
                SetGravityOn(true);
            }
            else
            {
                SetGravityOn(false);
            }
        }

        if (m_IsGravityOn)
        {
            ApplyGravity(this.gameObject, Time.deltaTime, GravityDropDownAnimInfo);
        }
    }
Exemplo n.º 6
0
 public void StartMoveScale(SkillMoveScaleInfo info)
 {
     m_MoveScaleElapsed = 0;
     m_MoveScaleInfo    = info;
 }