示例#1
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;
        }