コード例 #1
0
    private void SendGrabImpact(GameObject obj, ImpactInfo impactInfo)
    {
        ImpactGrab grabLogic = obj.GetComponent <ImpactGrab>();

        if (null != grabLogic)
        {
            if (!grabLogic.IsAcitve)
            {
                StopImpactExcept(obj, ImpactType.Grab);
                grabLogic.StartImpact(impactInfo);
            }
        }
    }
コード例 #2
0
    private void SendHitFlyImpact(GameObject obj, ImpactInfo impactInfo)
    {
        ImpactMicroGHitFly mircoGHitFly = obj.GetComponent <ImpactMicroGHitFly>();
        ImpactHitFly       hitFlyLogic  = obj.GetComponent <ImpactHitFly>();

        if (null != mircoGHitFly && mircoGHitFly.IsAcitve)
        {
            if (ImpactType.HitFly != mircoGHitFly.GetImpactType())
            {
                mircoGHitFly.StopImpact();
                if (null != hitFlyLogic)
                {
                    hitFlyLogic.StartImpact(impactInfo);
                    return;
                }
            }
            else
            {
                mircoGHitFly.OnHitInFly();
            }
            return;
        }
        ImpactGrab grabLogic = obj.GetComponent <ImpactGrab>();

        if (null != grabLogic && grabLogic.IsAcitve)
        {
            return;
        }
        ImpactKnockDown knockDownLogic = obj.GetComponent <ImpactKnockDown>();

        if (null != knockDownLogic && knockDownLogic.IsAcitve)
        {
            knockDownLogic.StopImpact();
        }
        ImpactStiffness stiffnessLogic = obj.GetComponent <ImpactStiffness>();

        if (null != stiffnessLogic && stiffnessLogic.IsAcitve)
        {
            stiffnessLogic.StopImpact();
        }
        if (null != hitFlyLogic)
        {
            /*if (hitFlyLogic.IsAcitve) {
             * hitFlyLogic.OnHitInFly();
             * return;
             * }*/
            hitFlyLogic.StopImpact();
            hitFlyLogic.StartImpact(impactInfo);
        }
    }
コード例 #3
0
    private void SendThunderStrokeImpact(GameObject obj, ImpactInfo impactInfo)
    {
        ImpactGrab grabLogic = obj.GetComponent <ImpactGrab>();

        if (null != grabLogic && grabLogic.IsAcitve)
        {
            return;
        }
        ImpactThunderStroke thunderStrokeLogic = obj.GetComponent <ImpactThunderStroke>();

        if (null != thunderStrokeLogic)
        {
            thunderStrokeLogic.StartImpact(impactInfo);
        }
    }
コード例 #4
0
    private void SendKnockDownImpact(GameObject obj, ImpactInfo impactInfo)
    {
        ImpactMicroGHitFly mircoGHitFly   = obj.GetComponent <ImpactMicroGHitFly>();
        ImpactKnockDown    knockDownLogic = obj.GetComponent <ImpactKnockDown>();

        if (null != mircoGHitFly && mircoGHitFly.IsAcitve)
        {
            if (ImpactType.HitFly != mircoGHitFly.GetImpactType())
            {
                mircoGHitFly.StopImpact();
                if (null != knockDownLogic)
                {
                    knockDownLogic.StartImpact(impactInfo);
                    return;
                }
            }
            return;
        }
        ImpactGrab grabLogic = obj.GetComponent <ImpactGrab>();

        if (null != grabLogic && grabLogic.IsAcitve)
        {
            return;
        }
        ImpactHitFly hitFlyLogic = obj.GetComponent <ImpactHitFly>();

        if (null != hitFlyLogic && hitFlyLogic.IsAcitve && ImpactType.UnKnown == hitFlyLogic.GetImpactType())
        {
            hitFlyLogic.StopImpact();
            if (null != knockDownLogic)
            {
                knockDownLogic.StartImpact(impactInfo);
                return;
            }
        }
        if (null != hitFlyLogic && hitFlyLogic.IsAcitve && ImpactType.UnKnown != hitFlyLogic.GetImpactType())
        {
            hitFlyLogic.OnKnockDown();
            return;
        }
        if (null != knockDownLogic && !knockDownLogic.IsAcitve)
        {
            knockDownLogic.StartImpact(impactInfo);
        }
    }
コード例 #5
0
    public void StopImpact(GameObject obj, ImpactType impactType)
    {
        switch (impactType)
        {
        case ImpactType.HitFly:
            ImpactHitFly hitFlyLogic = obj.GetComponent <ImpactHitFly>();
            if (null != hitFlyLogic && hitFlyLogic.IsAcitve)
            {
                hitFlyLogic.StopImpact();
            }
            break;

        case ImpactType.Stiffness:
            ImpactStiffness stiffnessLogic = obj.GetComponent <ImpactStiffness>();
            if (null != stiffnessLogic && stiffnessLogic.IsAcitve)
            {
                stiffnessLogic.StopImpact();
            }
            break;

        case ImpactType.KnockDown:
            ImpactKnockDown knockDownLogic = obj.GetComponent <ImpactKnockDown>();
            if (null != knockDownLogic && knockDownLogic.IsAcitve)
            {
                knockDownLogic.StopImpact();
            }
            break;

        case ImpactType.ThunderStroke:
            break;

        case ImpactType.Grab:
            ImpactGrab grabLogic = obj.GetComponent <ImpactGrab>();
            if (null != grabLogic && grabLogic.IsAcitve)
            {
                grabLogic.StopImpact();
            }
            break;
        }
    }
コード例 #6
0
    private void SendStiffnessImpact(GameObject obj, ImpactInfo impactInfo)
    {
        ImpactMicroGHitFly mircoGHitFly   = obj.GetComponent <ImpactMicroGHitFly>();
        ImpactStiffness    StiffnessLogic = obj.GetComponent <ImpactStiffness>();

        if (null != mircoGHitFly && mircoGHitFly.IsAcitve)
        {
            if (ImpactType.HitFly != mircoGHitFly.GetImpactType())
            {
                mircoGHitFly.StopImpact();
                if (null != StiffnessLogic)
                {
                    StiffnessLogic.StartImpact(impactInfo);
                }
                return;
            }
            else
            {
                mircoGHitFly.OnStiffness(impactInfo);
            }
            return;
        }
        ImpactGrab grabLogic = obj.GetComponent <ImpactGrab>();

        if (null != grabLogic && grabLogic.IsAcitve)
        {
            return;
        }
        ImpactHitFly    hitFlyLogic    = obj.GetComponent <ImpactHitFly>();
        ImpactKnockDown KnockDownLogic = obj.GetComponent <ImpactKnockDown>();

        // 击飞后端,停止击飞做硬直
        if (null != hitFlyLogic && hitFlyLogic.IsAcitve && ImpactType.UnKnown == hitFlyLogic.GetImpactType())
        {
            hitFlyLogic.StopImpact();
            if (null != StiffnessLogic)
            {
                StiffnessLogic.StartImpact(impactInfo);
            }
            return;
        }
        // 如果被击飞,只做受击
        if (null != hitFlyLogic && hitFlyLogic.IsAcitve && ImpactType.UnKnown != hitFlyLogic.GetImpactType())
        {
            if (null != StiffnessLogic)
            {
                hitFlyLogic.OnHitInFly();
                return;
            }
        }
        // 击倒前段, 不处理
        if (null != KnockDownLogic && KnockDownLogic.IsAcitve && ImpactType.UnKnown != KnockDownLogic.GetImpactType())
        {
            return;
        }
        if (null != KnockDownLogic && KnockDownLogic.IsAcitve && ImpactType.UnKnown == KnockDownLogic.GetImpactType())
        {
            KnockDownLogic.StopImpact();
            if (null != StiffnessLogic)
            {
                StiffnessLogic.StartImpact(impactInfo);
                return;
            }
        }

        if (null != StiffnessLogic)
        {
            StiffnessLogic.StartImpact(impactInfo);
        }
    }