示例#1
0
 public override void OnPartialAnimationLoopEnd(PartialAnimation ActivePartialAnimation, string ActiveMovementStance, RobotAnimation Owner)
 {
     if (IsReloading)
     {
         if (CanBeReloaded())
         {
             if (CurrentAnimation.AnimationPath == ReloadAnimationName)
             {
                 IsReloading = false;
                 Owner.ActivatePartialWeapon(this, GetAnimationName(ActiveMovementStance));
             }
             else
             {
                 InitiateFollowingAttack(true, ActiveMovementStance, Owner);
             }
         }
         else
         {
             IsReloading = false;
         }
     }
     else if (CurrentAnimation == ActivePartialAnimation)
     {
         CurrentAnimation = null;
         InitiateFollowingAttack(true, ActiveMovementStance, Owner);
         if (CurrentAnimation == null)
         {
             Owner.ActivatePartialWeapon(this, GetAnimationName(ActiveMovementStance));
         }
     }
 }
示例#2
0
        public override void InitiateFollowingAttack(bool IsPartialAnimation, string ActiveMovementStance, RobotAnimation Owner)
        {
            if (!CanBeUsed)
            {
                Owner.Reload();
                return;
            }

            bool CanUseNextCombo = false;

            if (IsShooting || IsReloading)
            {
                if (AnimationType == AnimationTypes.PartialAnimation == IsPartialAnimation)
                {
                    CanUseNextCombo = true;
                }
                else
                {
                    if ((AnimationType == AnimationTypes.PartialAnimation) == IsPartialAnimation)
                    {
                        CanUseNextCombo = true;
                    }
                }

                if (CanUseNextCombo && IsReloading)
                {
                    if (AnimationType == AnimationTypes.PartialAnimation)
                    {
                        Owner.RemovePartialAnimation(HoldingAnimationName);
                        Owner.RemovePartialAnimation(ShootingAnimationName);
                        Owner.ActivatePartialWeapon(this, ReloadAnimationName);
                        CurrentAnimation.ActiveKeyFrame++;
                    }
                    else
                    {
                        Owner.LockAnimation = true;
                        Owner.ActivatePartialWeapon(this, ReloadAnimationName);
                    }
                }
                else if (CanUseNextCombo && IsShootingNext)
                {
                    if (AnimationType == AnimationTypes.PartialAnimation)
                    {
                        Owner.RemovePartialAnimation(HoldingAnimationName);
                        Owner.RemovePartialAnimation(ShootingAnimationName);
                        Owner.ActivatePartialWeapon(this, ShootingAnimationName);
                        CurrentAnimation.ActiveKeyFrame++;
                    }
                    else
                    {
                        Owner.LockAnimation = true;
                        Owner.ActivatePartialWeapon(this, ShootingAnimationName);
                    }
                }
            }

            _IsShooting    = IsShootingNext;
            IsShootingNext = false;
        }
        public override void InitiateFollowingAttack(bool IsPartialAnimation, string ActiveMovementStance, RobotAnimation Owner)
        {
            if (!CanBeUsed)
            {
                Owner.Reload();
                return;
            }

            bool CanUseNextCombo = false;

            if (ActiveCombo != null)
            {
                if (ActiveCombo.AnimationType == AnimationTypes.PartialAnimation == IsPartialAnimation)
                {
                    CanUseNextCombo = true;
                }
                else
                {
                    Combo ActiveWeaponCombo = GetActiveWeaponCombo(ActiveMovementStance);

                    if (ActiveWeaponCombo != null)
                    {
                        if ((ActiveCombo.AnimationType == AnimationTypes.PartialAnimation) == IsPartialAnimation)
                        {
                            CanUseNextCombo = true;
                            ActiveWeaponCombo.Reset();
                        }
                    }
                }

                if (CanUseNextCombo && NextCombo != null)
                {
                    if (NextCombo.AnimationType == AnimationTypes.PartialAnimation)
                    {
                        Owner.RemovePartialAnimation(ActiveCombo.AnimationName);
                        Owner.ActivatePartialWeapon(this, NextCombo.AnimationName);
                        CurrentAnimation.ActiveKeyFrame++;
                    }
                    else
                    {
                        Owner.LockAnimation = true;
                        Owner.ActivatePartialWeapon(this, NextCombo.AnimationName);
                    }
                }
            }

            ActiveCombo = NextCombo;
            NextCombo   = null;
        }