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); }
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 } } }
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(); } }
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(); } }
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(); }
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); } } }