Ejemplo n.º 1
0
 public SamusBallState(Samus samus)
 {
     _samus            = samus;
     Sprite            = PlayerSpriteFactory.Instance.CreateSamusBallSprite(samus.Id, samus.FacingRight);
     Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X + 2, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
     samus.BoundingBox = new Rectangle(Sprite.WorldRect.X, Sprite.WorldRect.Y, 11, 12);
 }
Ejemplo n.º 2
0
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            Samus samus = (Samus)gameObject;

            samus.TakeDamage(collidedWith);
            Game1.GetLevel().Destroy(collidedWith);
        }
Ejemplo n.º 3
0
 public BulletState(Bullet bullet, IPlayer samus)
 {
     _bullet         = bullet;
     Sprite          = PlayerSpriteFactory.Instance.CreateBullet(samus.FacingRight);
     _speed          = 5;
     _directionIsSet = false;
     _samus          = (Samus)samus;
 }
Ejemplo n.º 4
0
 public SamusJumpingLookUpShootState(Samus samus)
 {
     this.samus        = samus;
     Sprite            = PlayerSpriteFactory.Instance.CreateSamusJumpingLookUp(samus.facingRight);
     Sprite.x          = (int)samus.Position.X;
     Sprite.y          = (int)samus.Position.Y;
     samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 5, Sprite.WorldRect.Y + 6, 9, 26);
 }
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            MissileRefill missleRefill = (MissileRefill)gameObject;

            missleRefill.Obtain();
            Samus samus = (Samus)collidedWith;

            samus.RefillMissiles();
        }
Ejemplo n.º 6
0
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            EnergyRefill energyRefill = (EnergyRefill)gameObject;

            energyRefill.Obtain();
            Samus samus = (Samus)collidedWith;

            samus.RefillEnergy();
        }
Ejemplo n.º 7
0
 public ExplosionState(BombExplosion bomb, IPlayer playerCharacter)
 {
     _bomb          = bomb;
     _samus         = (Samus)playerCharacter;
     Sprite         = PlayerSpriteFactory.Instance.CreateExplosion();
     Sprite.X       = (int)bomb.Position.X;
     Sprite.Y       = (int)bomb.Position.Y;
     Sprite.Visible = true;
     SoundManager.Instance.PlaySong("bomb_explode");
 }
Ejemplo n.º 8
0
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            Samus samus = (Samus)gameObject;

            samus.BonkBlock();
            while (gameObject.BoundingBox.Intersects(collidedWith.BoundingBox))
            {
                samus.Position = new Vector2(samus.Position.X, samus.Position.Y + 1);
            }
        }
Ejemplo n.º 9
0
 public SamusBallTransformState(Samus samus)
 {
     _samus       = samus;
     _framesDone  = 0;
     _totalFrames = 4;
     Sprite       = PlayerSpriteFactory.Instance.CreateSamusTransformSprite(samus.Id, samus.FacingRight);
     Sprite.X     = (int)samus.Position.X;
     Sprite.Y     = (int)samus.Position.Y;
     SoundManager.Instance.PlaySong("samus_morphball");
 }
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            Samus samus = (Samus)gameObject;

            samus.Velocity = new Vector2(samus.Velocity.X, 0);
            while (gameObject.BoundingBox.Intersects(collidedWith.BoundingBox))
            {
                samus.Position = new Vector2(samus.Position.X, samus.Position.Y - 1);
            }
            samus.BecomeGrounded();
        }
Ejemplo n.º 11
0
 public SamusWalkShootState(Samus samus)
 {
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusWalkShoot(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         Sprite.WorldRect = new Rectangle(Sprite.WorldRect.X - 6, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
     }
     samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 8, Sprite.WorldRect.Y + 1, 11, 31);
     Sprite.X          = (int)samus.Position.X;
     Sprite.Y          = (int)samus.Position.Y;
 }
Ejemplo n.º 12
0
 public SamusStandState(Samus samus)
 {
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusStandSprite(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 4, Sprite.WorldRect.Y, 9, 32);
     }
     else
     {
         samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 7, Sprite.WorldRect.Y, 9, 32);
     }
     Sprite.X = (int)samus.Position.X;
     Sprite.Y = (int)samus.Position.Y;
 }
 public SamusJumpingLookUpState(Samus samus)
 {
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusJumpingLookUp(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         Sprite.WorldRect = new Rectangle(Sprite.WorldRect.X - 5, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
     }
     else
     {
         Sprite.WorldRect = new Rectangle(Sprite.WorldRect.X + 4, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
     }
     samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 5, Sprite.WorldRect.Y + 6, 9, 26);
     Sprite.X          = (int)samus.Position.X;
     Sprite.Y          = (int)samus.Position.Y;
 }
Ejemplo n.º 14
0
 public SamusWalkLookUpState(Samus samus)
 {
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusWalkLookUp(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X - 6, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
         samus.BoundingBox = new Rectangle(7, 7, 9, 31);
     }
     else
     {
         Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X + 5, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
         samus.BoundingBox = new Rectangle(4, 7, 9, 31);
     }
     Sprite.X = (int)samus.Position.X;
     Sprite.Y = (int)samus.Position.Y;
 }
 public SamusJumpingShootState(Samus samus)
 {
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusJumpingShoot(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X - 5, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
         samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 7, Sprite.WorldRect.Y, 11, 25);
     }
     else
     {
         Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X + 4, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
         samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 3, Sprite.WorldRect.Y, 11, 25);
     }
     Sprite.X = (int)samus.Position.X;
     Sprite.Y = (int)samus.Position.Y;
 }
 public SamusStandLookUpState(Samus samus)
 {
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusStandLookUpSprite(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         samus.Position    = new Vector2(samus.Position.X, samus.Position.Y - 6);
         samus.BoundingBox = new Rectangle(5, 7, 9, 31);
     }
     else
     {
         samus.Position    = new Vector2(samus.Position.X, samus.Position.Y - 6);
         samus.BoundingBox = new Rectangle(6, 7, 9, 31);
     }
     Sprite.X = (int)samus.Position.X;
     Sprite.Y = (int)samus.Position.Y;
 }
Ejemplo n.º 17
0
        public void LoadContent(LevelLoader levelLoader)
        {
            levelLoader.LoadLevel(@"Content/Sprint6TestLevel.csv", GameObjects);
            _camera = new VerticalScrollingCamera(Game1.graphics.GraphicsDevice.Viewport)
            {
                Zoom = 2f
            };
            Player1Character = new Samus(new Vector2(112, 64), 0);
            Player2Character = new Samus(new Vector2(128, 64), 1);
            Players          = new[] { Player1Character, Player2Character };

            _camera.Focus          = Player1Character;
            _camera.CameraPosition = new Vector2(_camera.Focus.Position.X - _camera.Viewport.Width / _camera.Zoom / 2, _camera.CameraPosition.Y);
            GameObjects.Add(Player1Character);
            GameObjects.Add(Player2Character);
            _defaultFont = FontManager.Instance.CreateNewDefaultFont();
        }
Ejemplo n.º 18
0
 public MissileState(Missile missile, IPlayer samus)
 {
     _missile = missile;
     if (missile.IsUp)
     {
         Sprite = PlayerSpriteFactory.Instance.CreateVerticalMissile(samus.FacingRight);
     }
     else
     {
         Sprite = PlayerSpriteFactory.Instance.CreateHorizontalMissile(samus.FacingRight);
     }
     Sprite.X        = (int)missile.Position.X;
     Sprite.Y        = (int)missile.Position.Y;
     _speed          = 5;
     Sprite.Visible  = true;
     _directionIsSet = false;
     _samus          = (Samus)samus;
 }
Ejemplo n.º 19
0
        public virtual void DoItemDrops()
        {
            ILevel level  = Game1.GetLevel();
            Samus  player = level.Players[0] as Samus;
            Random ran    = new Random();

            if (ran.Next(100) < 30)
            {
                if (player.HasMissileUpgrade && ran.Next(100) > 50)
                {
                    level.Spawn(new MissileRefill(Position), Position);
                }
                else
                {
                    level.Spawn(new EnergyRefill(Position), Position);
                }
            }
        }
 public SamusWalkJumpingState(Samus samus)
 {
     SoundManager.Instance.PlaySong("jump");
     _samus = samus;
     Sprite = PlayerSpriteFactory.Instance.CreateSamusWalkJumpingSprite(samus.Id, samus.FacingRight);
     if (samus.FacingRight)
     {
         Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X - 6, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
         samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 7, Sprite.WorldRect.Y, 9, 28);
     }
     else
     {
         Sprite.WorldRect  = new Rectangle(Sprite.WorldRect.X + 5, Sprite.WorldRect.Y, Sprite.WorldRect.Width, Sprite.WorldRect.Height);
         samus.BoundingBox = new Rectangle(Sprite.WorldRect.X + 5, Sprite.WorldRect.Y, 9, 28);
     }
     Sprite.X = (int)samus.Position.X;
     Sprite.Y = (int)samus.Position.Y;
 }
Ejemplo n.º 21
0
        public void LoadContent(LevelLoader levelLoader)
        {
            levelLoader.LoadLevel(@"Content/Brinstar.csv", GameObjects);
            _camera = new HorizontalScrollingCamera(Game1.graphics.GraphicsDevice.Viewport)
            {
                Zoom = 2f
            };
            Player1Character =
                new Samus(new Vector2(640, 159), 0)
            {
                ColorScheme = PlayerSpriteFactory.Instance.DefaultSchemes[0]
            };
            PlayerSpriteFactory.Instance.SetPlayerToCustomTextures(0, PlayerSpriteFactory.Instance.DefaultSchemes[0]);
            Players = new[] { Player1Character };

            _camera.Focus          = Player1Character;
            _camera.CameraPosition = new Vector2(_camera.Focus.Position.X - _camera.Viewport.Width / _camera.Zoom / 2, _camera.CameraPosition.Y);
            GameObjects.Add(Player1Character);
            _defaultFont = FontManager.Instance.CreateNewDefaultFont();
        }
Ejemplo n.º 22
0
        public void AddPlayer()
        {
            IPlayer newPlayer = new Samus(new Vector2(50 * (NumPlayers + 1) - 37, 40), NumPlayers);

            ((Samus)newPlayer).ColorScheme = PlayerSpriteFactory.Instance.DefaultSchemes[NumPlayers];
            ((Samus)newPlayer).State       = new SamusStandState((Samus)newPlayer);
            Players[NumPlayers]            = newPlayer;
            PlayerSpriteFactory.Instance.SetPlayerToCustomTextures(NumPlayers, PlayerSpriteFactory.Instance.DefaultSchemes[NumPlayers]);
            IController controller = Game1.Controllers.First(e => e.Id == NumPlayers);

            if (controller is ControllerKeyboard)
            {
                _gamePadStrings[NumPlayers] = "KEYBOARD";
            }
            else
            {
                _gamePadStrings[NumPlayers] = "GAMEPAD" + (((ControllerGamepad)controller).GetControllerNum() + 1);
            }
            AddMenuOptions(((Samus)newPlayer).ColorScheme.IsZeroSuit);
            NumPlayers++;
        }
Ejemplo n.º 23
0
        public void LoadContent(LevelLoader levelLoader)
        {
            levelLoader.LoadLevel(@"Content/Brinstar.csv", GameObjects);
            _camera = new HorizontalScrollingCamera(Game1.graphics.GraphicsDevice.Viewport)
            {
                Zoom = 2f
            };
            Players = new IPlayer[_numPlayers];
            for (int i = 0; i < _numPlayers; i++)
            {
                IPlayer newSamus = new Samus(new Vector2(620 + (i * 20), 159), i);
                ((Samus)newSamus).ColorScheme = playerColorSchemes[i];
                Players[i] = newSamus;
                PlayerSpriteFactory.Instance.SetPlayerToCustomTextures(i, ((Samus)Players[i]).ColorScheme);
                GameObjects.Add(newSamus);
            }

            _camera.Focus          = Players[0];
            _camera.CameraPosition = new Vector2(_camera.Focus.Position.X - _camera.Viewport.Width / _camera.Zoom / 2, _camera.CameraPosition.Y);
            _defaultFont           = FontManager.Instance.CreateNewDefaultFont();
        }
Ejemplo n.º 24
0
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            if (CollisionHandler.Instance.BlockedLeft(collidedWith.BoundingBox, 1, "Environment"))
            {
                if (CollisionHandler.Instance.BlockedAbove(collidedWith.BoundingBox, 1, "Player"))
                {
                    new CommandPlayerTileFromTopCollision().Execute(gameObject, collidedWith);
                }
                else
                {
                    new CommandPlayerTileFromBottomCollision().Execute(gameObject, collidedWith);
                }
                return;
            }
            Samus samus = (Samus)gameObject;

            samus.State.RightRelease();
            while (gameObject.BoundingBox.Intersects(collidedWith.BoundingBox))
            {
                samus.Position = new Vector2(samus.Position.X - 1, samus.Position.Y);
            }
        }
Ejemplo n.º 25
0
        public override void BeginExecute(int controllerId)
        {
            Samus samus = (Samus)Game1.GetLevel().Players[controllerId];

            samus.SetMissile(!samus.MissilesOn);
        }
Ejemplo n.º 26
0
 void Awake()
 {
     S = this;
     Physics.gravity = new Vector3(0f, -17f, 0f);
 }
Ejemplo n.º 27
0
        public override void BeginExecute(int controllerId)
        {
            Samus samus = (Samus)Game1.GetLevel().Players[controllerId];

            samus.SetVaria(!samus.Varia);
        }
        public void Execute(IGameObject gameObject, IGameObject collidedWith)
        {
            Samus samus = (Samus)gameObject;

            samus.TakeDamage(collidedWith);
        }
Ejemplo n.º 29
0
 public SamusIntroState(Samus samus)
 {
     this.samus = samus;
     Sprite     = PlayerSpriteFactory.Instance.CreateSamusIntro(samus.Id);
 }
Ejemplo n.º 30
0
        public void MenuRight(int playerId)
        {
            if (playerId == -1 || _pointerPositions[playerId] == _menuStrings[playerId].Length - 1)
            {
                return;
            }
            Samus player = (Samus)Players[playerId];

            PlayerSpriteFactory.PlayerColorScheme newScheme = new PlayerSpriteFactory.PlayerColorScheme()
            {
                AccentMissileColor    = player.ColorScheme.AccentMissileColor,
                HelmetColor           = player.ColorScheme.HelmetColor,
                AccentBaseColor       = player.ColorScheme.AccentBaseColor,
                IsZeroSuit            = player.ColorScheme.IsZeroSuit,
                SuitBaseColor         = player.ColorScheme.SuitBaseColor,
                SuitVariaColor        = player.ColorScheme.SuitVariaColor,
                SuitVariaMissileColor = player.ColorScheme.SuitVariaMissileColor
            };

            int selectedColor = ++_colorSelections[playerId][_pointerPositions[playerId]];

            switch (_pointerPositions[playerId])
            {
            case 0:
                newScheme.IsZeroSuit = !player.ColorScheme.IsZeroSuit;
                if (newScheme.IsZeroSuit)
                {
                    _menuStrings[playerId] = new[] { "< Zero Suit >", "< Hair >", "< Suit >", "READY" };
                }
                else
                {
                    _menuStrings[playerId] = new[] { "< Zero Suit >", "< Helmet >", "< Suit >", "< Accent >", "READY" };
                }
                break;

            case 1:
                if (!player.ColorScheme.IsZeroSuit)
                {
                    if (selectedColor >=
                        _helmetColors.Count)
                    {
                        selectedColor = 0;
                    }
                    newScheme.HelmetColor =
                        _helmetColors[selectedColor];
                }
                else
                {
                    if (selectedColor >= _hairColors.Count)
                    {
                        selectedColor = 0;
                    }
                    newScheme.HelmetColor =
                        _hairColors[selectedColor];
                }
                break;

            case 2:
                if (!player.ColorScheme.IsZeroSuit)
                {
                    if (selectedColor >= _zSuitColors.Count)
                    {
                        selectedColor = 0;
                    }
                    newScheme.SuitBaseColor =
                        _zSuitColors[selectedColor];
                }
                else
                {
                    if (selectedColor >= _suitColors.Count)
                    {
                        selectedColor = 0;
                    }
                    newScheme.SuitBaseColor =
                        _suitColors[selectedColor];
                }
                break;

            case 3:
                if (_menuStrings[playerId].Length == 4)
                {
                    break;
                }
                if (!player.ColorScheme.IsZeroSuit)
                {
                    if (selectedColor >= _zSuitAccentColors.Count)
                    {
                        selectedColor = 0;
                    }
                    newScheme.AccentBaseColor =
                        _zSuitAccentColors[selectedColor];
                }
                else
                {
                    if (selectedColor >= _suitAccentColors.Count)
                    {
                        selectedColor = 0;
                    }
                    newScheme.AccentBaseColor =
                        _suitAccentColors[selectedColor];
                }
                break;
            }
            _colorSelections[playerId][_pointerPositions[playerId]] = selectedColor;
            player.ColorScheme = newScheme;
            PlayerSpriteFactory.Instance.SetPlayerToCustomTextures(playerId, newScheme);
        }
Ejemplo n.º 31
0
 // Start is called before the first frame update
 void Start()
 {
     samus = FindObjectOfType <Samus>();
     bc2D  = GetComponent <BoxCollider2D>();
 }