Esempio n. 1
0
        public void Execute(IGameObject gameObject1, IGameObject gameObject2)
        {
            FireBallProjectile g = (FireBallProjectile)gameObject1;

            g.Location = new Vector2(g.Destination.X, gameObject2.Destination.Y - g.Destination.Height);
            g.Velocity = new Vector2(g.Velocity.X, -GameUtilities.FireBallPopVelocity);
        }
Esempio n. 2
0
    void Shoot()
    {
        if (Time.time > nextShotTime)
        {
            if (fireMode == FireMode.Burst)
            {
                if (shootRemainingInBurst == 0) // Se não houver mais tiros, não dispara
                {
                    return;
                }
                shootRemainingInBurst--;
            }
            else if (fireMode == FireMode.Single)
            {
                if (!triggerReleaseSinceLastShot)
                {
                    return;
                }
            }

            for (int i = 0; i < projectileSpawn.Length; i++) //Disparar nos vários pontos?
            {
                nextShotTime = Time.time + msBetweenShots / 1000;
                //Criar um novo Tiro, na posição do "projectileSpawn" sem rotação
                FireBallProjectile newFireBallProjectile = Instantiate(projectile, projectileSpawn[i].position, projectileSpawn[i].rotation) as FireBallProjectile;
                newFireBallProjectile.SetSpeed(muzzleVelocity); //Colocar velocidade no tiro
            }
        }
    }
Esempio n. 3
0
        public void Execute(IGameObject gameObject1, IGameObject gameObject2)
        {
            FireBallProjectile fireBall = (FireBallProjectile)gameObject1;
            IEnemy             enemy    = (IEnemy)gameObject2;

            if (enemy.State.GetType() != typeof(KoopaSideDeathState))
            {
                fireBall.Terminate();
                ScoringSystem.AddPointsForFireballKoopaHit(gameObject2, fireBall.InitiatingPlayer);
                enemy.Terminate("DOWN");
                SoundManager.Instance.PlayKickSound();
            }
        }
Esempio n. 4
0
        public void Execute(IGameObject gameObject1, IGameObject gameObject2)
        {
            FireBallProjectile fireBall = (FireBallProjectile)gameObject1;
            Goomba2            enemy    = (Goomba2)gameObject2;

            if (!enemy.Alive)
            {
                return;
            }
            if (enemy.State.GetType() != typeof(GoombaDeadState))
            {
                fireBall.Terminate();
                ScoringSystem.AddPointsForFireballGoombaHit(gameObject2, fireBall.InitiatingPlayer);
                enemy.Terminate("LEFT");
                SoundManager.Instance.PlayKickSound();
            }
        }
Esempio n. 5
0
        public void Execute(IGameObject gameObject1, IGameObject gameObject2)
        {
            FireBallProjectile fireBall = (FireBallProjectile)gameObject1;
            int fireBallPreY            = (int)(fireBall.Destination.Y - (fireBall.Velocity.Y - GameUtilities.SinglePixel));

            if (fireBallPreY + fireBall.Destination.Height <= gameObject2.Destination.Y)
            {
                return;
            }

            else if (fireBallPreY > gameObject2.Destination.Y + gameObject2.Destination.Height)
            {
                return;
            }
            fireBall.Terminate();
            SoundManager.Instance.PlayBumpSound();
        }
Esempio n. 6
0
        public void Execute()
        {
            if (!mario.IsInAir && mario.State.MarioPosture == MarioState.MarioPostureEnums.Running)
            {
                mario.MarioTopSpeed = GameUtilities.MarioSprintSpeed;
            }

            long length = GameUtilities.GameObjectManager.FireBallListLongCount;

            if (player == 1)
            {
                length = GameUtilities.GameObjectManager.FireBallList2LongCount;
            }

            if ((mario.State.MarioShape == MarioState.MarioShapeEnums.Fire ||
                 (mario.State.MarioShape == MarioState.MarioShapeEnums.StarBig &&
                  mario.PreStarShape == MarioState.MarioShapeEnums.Fire)) && length < maxFireballNum)
            {
                FireBallProjectile fireBall = new FireBallProjectile(new Vector2(GameUtilities.Origin, GameUtilities.Origin), mario.Player);
                fireBall.Location = new Vector2(mario.Destination.X + mario.Destination.Width - GameUtilities.BlockSize, mario.Destination.Y);
                fireBall.Velocity = new Vector2(fireBallVelocityX, GameUtilities.StationaryVelocity);
                if (mario.State.MarioDirection == MarioState.MarioDirectionEnums.Left)
                {
                    fireBall.Location = new Vector2(mario.Destination.X + 5, mario.Destination.Y);
                    fireBall.Velocity = new Vector2(-fireBall.Velocity.X, GameUtilities.StationaryVelocity);
                }

                if (player == 0)
                {
                    GameUtilities.GameObjectManager.AddFireBall(fireBall);
                }
                else
                {
                    GameUtilities.GameObjectManager.AddFireBall2(fireBall);
                }
            }
        }