Exemple #1
0
    structTrigger GetCurrentBehavior()
    {
        AnimatorStateInfo StateInfo  = CurAnimator.GetCurrentAnimatorStateInfo(0);
        structTrigger     nexTrigger = new structTrigger("None", "None", PlayerBehavior.None);

        foreach (structTrigger nTrigger in Triggers)
        {
            if (StateInfo.IsName(nTrigger.AnimationName))
            {
                nexTrigger = nTrigger;
            }
        }

        return(nexTrigger);
    }
Exemple #2
0
    void StopCurAnimation()
    {
        AnimatorStateInfo StateInfo  = CurAnimator.GetCurrentAnimatorStateInfo(0);
        structTrigger     curTrigger = GetCurrentBehavior();

        if (StateInfo.IsName(curTrigger.AnimationName))
        {
            if (curTrigger.enableAmmo && Ammo.bulletCount == 0)
            {
                CurAnimator.ResetTrigger("Shot");
                CurAnimator.ResetTrigger("AimingShot");
                plrBehavior.CurrentBehavior = PlayerBehavior.Idle;
            }
        }

        if (curTrigger.chargingLimit && Ammo.bulletCount == Ammo.maximalBulletGun)
        {
            CurAnimator.ResetTrigger("Recharge");
            plrBehavior.CurrentBehavior = PlayerBehavior.Idle;
        }
    }
Exemple #3
0
    void SetNewBehavior()
    {
        structTrigger curTrigger = GetCurrentBehavior();
        structTrigger nexTrigger = GetNextBehavior();

        bool animationBlocked = false;

        if (BlockedAnimation.Length > 0)
        {
            AnimatorStateInfo StateInfo = CurAnimator.GetCurrentAnimatorStateInfo(0);

            foreach (string nBlockAnim in BlockedAnimation)
            {
                if (StateInfo.IsName(nBlockAnim))
                {
                    animationBlocked = true;
                    int i = (int)StateInfo.normalizedTime;

                    if (StateInfo.normalizedTime < i + 0.9f)
                    {
                        ChangeBehaviorBlock   = true;
                        NameAnimationBlocking = nBlockAnim;
                        break;
                    }
                    else
                    {
                        ChangeBehaviorBlock = false;
                    }
                }
            }

            if (ChangeBehaviorBlock)
            {
                if (StateInfo.IsName(NameAnimationBlocking))
                {
                    int numI = (int)StateInfo.normalizedTime;

                    if (StateInfo.normalizedTime > numI + 0.8)
                    {
                        ChangeBehaviorBlock = false;
                    }
                }
            }

            if (!ChangeBehaviorBlock)
            {
                if (plrBehavior.CurrentBehavior != PlayerBehavior.Hide)
                {
                    if (nexTrigger.Behavior != curTrigger.Behavior && nexTrigger.Behavior != PlayerBehavior.None)
                    {
                        if (curTrigger.TriggerName != "None")
                        {
                            CurAnimator.ResetTrigger(curTrigger.TriggerName);
                        }


                        plrBehavior.CurrentBehavior = GetNextBehavior().Behavior;

                        if (nexTrigger.enableAmmo && Ammo.bulletCount > 0)
                        {
                            CurAnimator.SetTrigger(nexTrigger.TriggerName);
                        }
                        else if (!nexTrigger.enableAmmo)
                        {
                            CurAnimator.SetTrigger(nexTrigger.TriggerName);
                        }

                        if (nexTrigger.enableAmmo && Ammo.bulletCount == 0)
                        {
                            CurAnimator.SetTrigger("Idle");
                        }
                    }
                }
            }
        }
        else
        {
            if (plrBehavior.CurrentBehavior != PlayerBehavior.Hide)
            {
                if (nexTrigger.Behavior != curTrigger.Behavior && nexTrigger.Behavior != PlayerBehavior.None)
                {
                    CurAnimator.ResetTrigger(curTrigger.TriggerName);

                    plrBehavior.CurrentBehavior = GetNextBehavior().Behavior;


                    if (nexTrigger.enableAmmo && Ammo.bulletCount > 0)
                    {
                        CurAnimator.SetTrigger(nexTrigger.TriggerName);
                    }
                    else if (!nexTrigger.enableAmmo)
                    {
                        CurAnimator.SetTrigger(nexTrigger.TriggerName);
                    }

                    if (nexTrigger.enableAmmo && Ammo.bulletCount == 0)
                    {
                        CurAnimator.SetTrigger("Idle");
                    }
                }
            }
        }

        if (!animationBlocked)
        {
            ChangeBehaviorBlock = false;
        }
    }