Beispiel #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main(string[] args)
        {
            int players = 4;
            int resolution = 1080;
            try
            {
                for (int i = 0; i < args.Length; i++)
                {
                    if (args[i] == "-scale")
                        resolution = Int32.Parse(args[i + 1]);
                    if (args[i] == "-players")
                        players = Int32.Parse(args[i + 1]);
                }
            }
            catch (Exception)
            {
                Console.WriteLine("options are -scale [height of screen in pixels] and -players [nb players <= 4]");
                throw;
            }

            using (GameCore game = new GameCore(resolution, players))
            {
                game.Run();
            }
        }
Beispiel #2
0
 public MustDriveShip(GameCore game)
     : base(game, game.txtPilot)
 {
     _target = _game._rooms [RoomType.COMMANDS];
     Visible = true;
     Enabled = true; //always enabled
 }
Beispiel #3
0
 public EventBase(GameCore game, Texture2D text)
     : base(game)
 {
     _game = game;
     _text = text;
     _game.Components.Add (this);
     Enabled = false;
     Visible = false;
     DrawOrder = 150;
 }
Beispiel #4
0
 public TemporaryEffect(GameCore game, Vector2 position, MyTexture2D tex, double lifeTime)
     : base(game)
 {
     this._position = position;
     this._lifeTime = lifeTime;
     this._tex = tex;
     _game = game;
     _game.Components.Add (this);
     DrawOrder = 1000;
 }
Beispiel #5
0
        public Room(GameCore game, Vector2 position, Vector2 spawnPoint, RoomMovementType moveType)
            : base(game)
        {
            _game = game;
            Position = position;
            SpawnPosition = spawnPoint;
            MoveType = moveType;

            Exits = new List<RoomLink> ();

            _game.Components.Add (this);
            this.Enabled = true;
            this.Visible = true;
            DrawOrder = 300;

            Actionned = true;
        }
Beispiel #6
0
        public Player(GameCore game, Dictionary<PlayerState, MyTexture2D> textures, Room startRoom, Dictionary<Direction, Keys> controls, PlayerIndex myIndex)
            : base(game)
        {
            this.myIndex = myIndex;
            this.controls = controls;
            _game = game;
            _textures = textures;

            Position = startRoom.SpawnPosition;
            currentRoom = startRoom;
            startRoom.PlayerEnters ();

            Visible = true;
            Enabled = true;
            game.Components.Add (this);

            DrawOrder = 200;
        }
Beispiel #7
0
        public static void InitRooms(GameCore game, Dictionary<RoomType, Room> rooms)
        {
            rooms[RoomType.COMMANDS] = new Room(game, new Vector2(253,  211), new Vector2(427,290),   RoomMovementType.HORIZONTAL);
            rooms[RoomType.HALL_1]   = new Room(game, new Vector2(601,  284), new Vector2(), 		   RoomMovementType.HORIZONTAL);
            rooms[RoomType.KITCHEN]  = new Room(game, new Vector2(819,  211), new Vector2(870,290), 		   RoomMovementType.HORIZONTAL);
            rooms[RoomType.HALL_2]   = new Room(game, new Vector2(1167, 284), new Vector2(), 		   RoomMovementType.HORIZONTAL);
            rooms[RoomType.BRIDGE]   = new Room(game, new Vector2(1385, 211), new Vector2(1600, 290), RoomMovementType.HORIZONTAL);
            //Etage 2
            rooms[RoomType.LADDER_1] = new Room(game, new Vector2(393,  415), new Vector2(), RoomMovementType.VERTICAL);
            rooms[RoomType.HALL_3]   = new Room(game, new Vector2(494,  443), new Vector2(), RoomMovementType.HORIZONTAL);
            rooms[RoomType.LADDER_2] = new Room(game, new Vector2(667,  415), new Vector2(), RoomMovementType.VERTICAL);
            rooms[RoomType.HALL_4]   = new Room(game, new Vector2(766,  443), new Vector2(), RoomMovementType.HORIZONTAL);
            rooms[RoomType.LADDER_3] = new Room(game, new Vector2(960,  415), new Vector2(), RoomMovementType.VERTICAL);
            rooms[RoomType.HALL_5]   = new Room(game, new Vector2(1061, 443), new Vector2(), RoomMovementType.HORIZONTAL);
            rooms[RoomType.LADDER_4] = new Room(game, new Vector2(1267, 415), new Vector2(), RoomMovementType.VERTICAL);
            rooms[RoomType.HALL_6]   = new Room(game, new Vector2(1368, 443), new Vector2(), RoomMovementType.HORIZONTAL);
            rooms[RoomType.LADDER_5] = new Room(game, new Vector2(1597, 415), new Vector2(), RoomMovementType.VERTICAL);
            //Etage 3
            rooms[RoomType.CALE]    = new Room(game, new Vector2(253,  590),      new Vector2(427,290),   RoomMovementType.HORIZONTAL);
            rooms[RoomType.HALL_7]  = new Room(game, new Vector2(601,  590 + 74), new Vector2(), 		   RoomMovementType.HORIZONTAL);
            rooms[RoomType.CHAMBRE] = new Room(game, new Vector2(819,  590), 	   new Vector2(), 		   RoomMovementType.HORIZONTAL);
            rooms[RoomType.HALL_8]  = new Room(game, new Vector2(1167, 590 + 74), new Vector2(), 		   RoomMovementType.HORIZONTAL);
            rooms[RoomType.MACHINE] = new Room(game, new Vector2(1385, 590), 	   new Vector2(1600, 671), RoomMovementType.HORIZONTAL);

            rooms[RoomType.COMMANDS]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_1], 	new Rectangle(600,  211, 1,   200), Direction.RIGHT, new Vector2(605,  290)));
            rooms[RoomType.HALL_1]		.Exits.Add(new RoomLink(rooms[RoomType.COMMANDS], 	new Rectangle(603,  211, 1,   200), Direction.LEFT,  new Vector2(560,  290)));
            rooms[RoomType.HALL_1]		.Exits.Add(new RoomLink(rooms[RoomType.KITCHEN], 	new Rectangle(817,  211, 1,   200), Direction.RIGHT, new Vector2(825,  290)));
            rooms[RoomType.KITCHEN]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_1], 	new Rectangle(820,  211, 1,   200), Direction.LEFT,  new Vector2(750,  290)));
            rooms[RoomType.KITCHEN]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_2], 	new Rectangle(1165, 211, 1,   200), Direction.RIGHT, new Vector2(1172, 290)));
            rooms[RoomType.HALL_2]		.Exits.Add(new RoomLink(rooms[RoomType.KITCHEN], 	new Rectangle(1168, 211, 1,   200), Direction.LEFT,  new Vector2(1120, 290)));
            rooms[RoomType.HALL_2]		.Exits.Add(new RoomLink(rooms[RoomType.BRIDGE], 	new Rectangle(1385, 211, 1,   200), Direction.RIGHT, new Vector2(1395, 290)));
            rooms[RoomType.BRIDGE]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_2], 	new Rectangle(1388, 211, 1,   200), Direction.LEFT,  new Vector2(1330, 290)));
            rooms[RoomType.HALL_1]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_2], 	new Rectangle(672,  390, 100, 1),   Direction.DOWN,  new Vector2(680,  450)));
            rooms[RoomType.LADDER_2]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_1], 	new Rectangle(672,  410, 100, 1),   Direction.UP,    new Vector2(680,  295)));
            rooms[RoomType.COMMANDS]	.Exits.Add(new RoomLink(rooms[RoomType.LADDER_1], 	new Rectangle(393,  390, 100, 1),   Direction.DOWN,  new Vector2(420,  410)));
            rooms[RoomType.LADDER_1]	.Exits.Add(new RoomLink(rooms[RoomType.COMMANDS], 	new Rectangle(393,  393, 100, 1),   Direction.UP,    new Vector2(420,  290)));
            rooms[RoomType.LADDER_1]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_3], 	new Rectangle(446,  443, 1,   130), Direction.RIGHT, new Vector2(500,  445)));
            rooms[RoomType.HALL_3]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_1], 	new Rectangle(495,  443, 1,   130), Direction.LEFT,  new Vector2(420,  443)){needBreak = true});
            rooms[RoomType.LADDER_1]	.Exits.Add(new RoomLink(rooms[RoomType.CALE], 		new Rectangle(393,  595, 100, 1),   Direction.DOWN,  new Vector2(393,  671)));
            rooms[RoomType.CALE]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_1], 	new Rectangle(393,  770, 100, 1),   Direction.UP,    new Vector2(420,  470)));
            rooms[RoomType.HALL_3]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_2], 	new Rectangle(663,  443, 1,   130), Direction.RIGHT, new Vector2(680,  443)){needBreak = true});
            rooms[RoomType.LADDER_2]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_3], 	new Rectangle(682,  443, 1,   130), Direction.LEFT,  new Vector2(600,  443)));
            rooms[RoomType.LADDER_2]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_4], 	new Rectangle(745,  443, 1,   130), Direction.RIGHT, new Vector2(782,  443)));
            rooms[RoomType.HALL_4]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_2], 	new Rectangle(770,  443, 1,   130), Direction.LEFT,  new Vector2(680,  443)){needBreak = true});
            rooms[RoomType.CALE]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_7], 	new Rectangle(597,  670, 1,   130), Direction.RIGHT, new Vector2(620,  670)));
            rooms[RoomType.HALL_7]		.Exits.Add(new RoomLink(rooms[RoomType.CALE], 		new Rectangle(605,  670, 1,   130), Direction.LEFT,  new Vector2(530,  670)));
            rooms[RoomType.HALL_7]		.Exits.Add(new RoomLink(rooms[RoomType.CHAMBRE], 	new Rectangle(815,  670, 1,   130), Direction.RIGHT, new Vector2(830,  670)));
            rooms[RoomType.CHAMBRE]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_7], 	new Rectangle(820,  670, 1,   130), Direction.LEFT,  new Vector2(750,  670)));
            rooms[RoomType.CHAMBRE]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_8], 	new Rectangle(1163, 670, 1,   130), Direction.RIGHT, new Vector2(1178, 670)));
            rooms[RoomType.HALL_8]		.Exits.Add(new RoomLink(rooms[RoomType.CHAMBRE], 	new Rectangle(1168, 670, 1,   130), Direction.LEFT,  new Vector2(1080, 670)));
            rooms[RoomType.HALL_8]		.Exits.Add(new RoomLink(rooms[RoomType.MACHINE], 	new Rectangle(1381, 670, 1,   130), Direction.RIGHT, new Vector2(1410, 670)));
            rooms[RoomType.MACHINE]		.Exits.Add(new RoomLink(rooms[RoomType.HALL_8], 	new Rectangle(1386, 670, 1,   130), Direction.LEFT,  new Vector2(1290, 670)));
            rooms[RoomType.HALL_7]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_2], 	new Rectangle(672,  770, 100, 1),   Direction.UP,    new Vector2(672,  500)));
            rooms[RoomType.LADDER_2]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_7], 	new Rectangle(672,  650, 100, 1),   Direction.DOWN,  new Vector2(672,  671)));
            rooms[RoomType.HALL_4]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_3], 	new Rectangle(960,  443, 1,   130), Direction.RIGHT, new Vector2(980,  443)) { needBreak = true });
            rooms[RoomType.LADDER_3]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_4], 	new Rectangle(980,  443, 1,   130), Direction.LEFT,  new Vector2(890,  443)) { needBreak = true });
            rooms[RoomType.LADDER_3]	.Exits.Add(new RoomLink(rooms[RoomType.KITCHEN], 	new Rectangle(960,  410, 100, 1),   Direction.UP,    new Vector2(980,  295)));
            rooms[RoomType.KITCHEN]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_3], 	new Rectangle(960,  390, 100, 1),   Direction.DOWN,  new Vector2(980,  443)) { needBreak = true });
            rooms[RoomType.CHAMBRE]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_3], 	new Rectangle(960,  770, 100, 1),   Direction.UP,    new Vector2(980,  443)) { needBreak = true });
            rooms[RoomType.LADDER_3]	.Exits.Add(new RoomLink(rooms[RoomType.CHAMBRE], 	new Rectangle(960,  580, 100, 1),   Direction.DOWN,  new Vector2(980,  671)));
            rooms[RoomType.LADDER_3]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_5], 	new Rectangle(1020, 443, 1,   130), Direction.RIGHT, new Vector2(1087, 443)) { needBreak = true });
            rooms[RoomType.HALL_5]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_3], 	new Rectangle(1050, 443, 1,   130), Direction.LEFT,  new Vector2(980,  443)) { needBreak = true });
            rooms[RoomType.HALL_5]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_4], 	new Rectangle(1260, 443, 1,   130), Direction.RIGHT, new Vector2(1290, 443)) { needBreak = true });
            rooms[RoomType.LADDER_4]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_5], 	new Rectangle(1295, 443, 1,   130), Direction.LEFT,  new Vector2(1200, 443)) { needBreak = true });
            rooms[RoomType.LADDER_4]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_6], 	new Rectangle(1320, 443, 1,   130), Direction.RIGHT, new Vector2(1370, 443)) { needBreak = true });
            rooms[RoomType.HALL_6]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_4], 	new Rectangle(1360, 443, 1,   130), Direction.LEFT,  new Vector2(1290, 443)) { needBreak = true });
            rooms[RoomType.HALL_2]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_4], 	new Rectangle(1270, 390, 100, 1),   Direction.DOWN,  new Vector2(1290, 443)));
            rooms[RoomType.LADDER_4]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_2], 	new Rectangle(1270, 410, 100, 1),   Direction.UP,    new Vector2(1290, 295)));
            rooms[RoomType.HALL_8]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_4], 	new Rectangle(1270, 770, 100, 1),   Direction.UP,    new Vector2(1270, 500)));
            rooms[RoomType.LADDER_4]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_8], 	new Rectangle(1270, 650, 100, 1),   Direction.DOWN,  new Vector2(1270, 671)));
            rooms[RoomType.BRIDGE]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_5], 	new Rectangle(1600, 390, 100, 1),   Direction.DOWN,  new Vector2(1600, 410)));
            rooms[RoomType.LADDER_5]	.Exits.Add(new RoomLink(rooms[RoomType.BRIDGE], 	new Rectangle(1600, 410, 100, 1),   Direction.UP,    new Vector2(1600, 290)));
            rooms[RoomType.LADDER_5]	.Exits.Add(new RoomLink(rooms[RoomType.MACHINE], 	new Rectangle(1600, 580, 100, 1),   Direction.DOWN,  new Vector2(1600, 671)));
            rooms[RoomType.MACHINE]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_5], 	new Rectangle(1600, 770, 100, 1),   Direction.UP,    new Vector2(1600, 470)));
            rooms[RoomType.LADDER_5]	.Exits.Add(new RoomLink(rooms[RoomType.HALL_6], 	new Rectangle(1600, 443, 1,   130), Direction.LEFT,  new Vector2(1500, 443)));
            rooms[RoomType.HALL_6]		.Exits.Add(new RoomLink(rooms[RoomType.LADDER_5], 	new Rectangle(1590, 443, 1,   130), Direction.RIGHT, new Vector2(1600, 443)) { needBreak = true });
        }
Beispiel #8
0
 public GetTrap(GameCore game)
     : base(game, game.txtDodo)
 {
     _target = _game._rooms [RoomType.CHAMBRE];
 }
Beispiel #9
0
 public GetFood(GameCore game)
     : base(game, game.txtCook)
 {
     _target = _game._rooms [RoomType.KITCHEN];
 }
Beispiel #10
0
 public Gui(GameCore game)
     : base(game)
 {
     _game = game;
     _game.Components.Add (this);
 }
Beispiel #11
0
 public FixEngine(GameCore game)
     : base(game, game.txtSdm)
 {
     _target = _game._rooms [RoomType.MACHINE];
 }
Beispiel #12
0
 public AllToCale(GameCore game)
     : base(game, game.txtFuite)
 {
     _target = _game._rooms [RoomType.CALE];
 }
Beispiel #13
0
 public CarryKohl(GameCore game)
     : base(game, game.txtCharb)
 {
     _source = _game._rooms [RoomType.BRIDGE];
     _cible = _game._rooms [RoomType.MACHINE];
 }