Exemplo n.º 1
0
 public override void cleanUp()
 {
     base.cleanUp();
     if (!Sprite.CurrentMoveAnimation.IsAttack)
     {
         rekkaLevel = 1;
         SuperManager.endSuper(PlayerNumber);
         DisplayShadow = false;
         IsPhysical    = true;
     }
 }
Exemplo n.º 2
0
        public override void performGroundSpecialMove(KeyboardState ks, String moveName)
        {
            if (moveName == "fireball")
            {
                Fireball();
            }
            if (moveName == "supera")
            {
                DisplayShadow = true;
                if (Direction == Direction.Left)
                {
                    Sprite.MoveBy(-Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                }
                else
                {
                    Sprite.MoveBy(Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                }
            }
            if (moveName == "superaending")
            {
                if (Sprite.isLastFrameOfAnimation())
                {
                    // Tell the super manager that the special is over
                    //
                    SuperManager.endSuper(PlayerNumber);
                    Console.WriteLine("SPECIAL IS NOW OVER YAY");
                }
            }
            else if (moveName == "superafollowup")
            {
                if (Direction == Direction.Left)
                {
                    Sprite.MoveBy(-Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                }
                else
                {
                    Sprite.MoveBy(Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                }
            }
            else if (moveName == "superaslash")
            {
                if (Sprite.CurrentMoveAnimation.CurrentFrame >= 0 && Sprite.CurrentMoveAnimation.CurrentFrame < 4)
                {
                    IsPhysical = false;

                    if (Direction == Direction.Left)
                    {
                        Sprite.MoveBy(-Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                    }
                    else
                    {
                        Sprite.MoveBy(Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                    }
                    GivePlayerMomentum(7, 3, true);
                }
                else
                {
                    IsPhysical = true;
                }
                if (Sprite.isLastFrameOfAnimation() && Sprite.CurrentMoveAnimation.HasHitOpponent && !Sprite.CurrentMoveAnimation.Blocked)
                {
                    Sprite.CurrentAnimation = "superaending";
                }
            }
            else if (moveName == "aattack")
            {
            }
            else if (moveName == "cattack")
            {
                // This seems kinda clumsy to perform every c attack. Maybe we should keep a reference the the projectile instead of cloning it.
                //
                List <Projectile> projectiles = ProjectileManager.getPlayerProjectiles(PlayerNumber);
                for (int i = projectiles.Count - 1; i >= 0; i--)
                {
                    if (Sprite.Hitbox.Intersects(projectiles[i].Hitbox))
                    {
                        projectiles[i].CurrentAnimation = "projectile";
                    }
                }
            }
            else if (moveName == "rekka")
            {
                if (Direction == Direction.Left)
                {
                    Sprite.MoveBy(-5, 0);
                }
                else
                {
                    Sprite.MoveBy(5, 0);
                }
            }
            else if (moveName == "rekkaB")
            {
                if (Sprite.CurrentMoveAnimation.CurrentFrame > 3 && Sprite.CurrentMoveAnimation.CurrentFrame < 11)
                {
                    if (Direction == Direction.Left)
                    {
                        Sprite.MoveBy(-20, 0);
                    }
                    else
                    {
                        Sprite.MoveBy(20, 0);
                    }
                }
            }
            else if (moveName == "rekkaC")
            {
                if (Sprite.CurrentMoveAnimation.CurrentFrame > 4 && Sprite.CurrentMoveAnimation.CurrentFrame < 8)
                {
                    IsPhysical = false;
                    if (Direction == Direction.Left)
                    {
                        Sprite.MoveBy(-Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                    }
                    else
                    {
                        Sprite.MoveBy(Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                    }
                    GivePlayerMomentum(7, 3, true);
                }
                else
                {
                    IsPhysical = true;
                }
            }


            else if (moveName == "superaending")
            {
            }
            else if (moveName == "specialcommand")
            {
                if (Sprite.CurrentMoveAnimation.CurrentFrame > 4 && Sprite.CurrentMoveAnimation.CurrentFrame < 8)
                {
                    IsPhysical = false;
                    if (Direction == Direction.Left)
                    {
                        Sprite.MoveBy(Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                    }
                    else
                    {
                        Sprite.MoveBy(-Sprite.CurrentMoveAnimation.CurrentXMovementInfo, 0);
                    }
                    GivePlayerMomentum(7, 3, true);
                }
                else
                {
                    IsPhysical = true;
                }
            }
            else if (moveName == "backfireball")
            {
                BackFireball();
            }
            else
            {
                base.performGroundSpecialMove(ks, moveName);
            }
        }