Exemple #1
0
        static Chunk()
        {
            levels = Library.GetFilenames("Levels/", "*")
                     .ToList();

            for (int i = 0; i < levels.Count; i++)
            {
                var level = levels[i];
                level     = level.Substring(level.LastIndexOf("/"));
                levels[i] = level;
            }

            levels.Remove("/bawks.oel");
            levels.Remove("/Real_3.oel");
            levels.Remove("/bigYucky.oel");

//			levels = new string[] { "Real_3.oel" };

            loader = new OgmoLoader();
            loader.RegisterGridType("Collision", "Collision", 16, 16);

            loader.RegisterClassAlias <Crumble>("crumble");
            loader.RegisterClassAlias <Razor>("deadlyAnchor");
            loader.RegisterClassAlias <SpawnPoint>("spawnPoint");
            loader.RegisterClassAlias <UpgradeSpawn>("Upgrade");
        }
Exemple #2
0
        public Map(string map_filename)
        {
            OgmoLoader ogmo = new OgmoLoader();

            ogmo.RegisterClassAlias <MapRoom>("Room");
            var mapRoomEntities = ogmo.BuildLevelAsArray(
                Library
                .Get <XmlDocument>(map_filename));

            this.mapRooms = new MapRoom[mapRoomEntities.Length];
            Array.Copy(mapRoomEntities, this.mapRooms, this.mapRooms.Length);

            this.Visible    = false;
            this.RenderStep = 100;

            this.Camera = new Camera();
            foreach (var r in mapRooms)
            {
                r.Camera = this.Camera;
            }
            this.Scale *= .7f;
        }
Exemple #3
0
        public GameWorld()
            : base()
        {
            World = this;
            Engine.Console.InvisibleUntilOpen = true;

            // Fade
            Fade fade = new Fade(new Color(0x000000), 0.15f);

            AddResponse(Door.DoorMessages.StartChangeRoom, (a) =>
            {
                player.Active = false;
                fade.FadeIn(() =>
                {
                    Door callingDoor = (Door)a[0];
                    ActuallyChangeRoom(callingDoor);
                    fade.FadeOut(() => player.Active = true);
                });
            });
            this.Add(fade);

            // Ogmo loading
            OgmoLoader ogmoSenpai = new OgmoLoader();

            // TODO: Move enemy init logic somewhere else
            ogmoSenpai.RegisterClassAlias <Enemy>("EnemyWalker");

            ogmoSenpai.DefineGrid("TileCollision", KQ.CollisionTypeSolid, 24, 24);
            ogmoSenpai.DefineGrid("px4TileCollision", KQ.CollisionTypeSolid, 6, 6);

            ogmoSenpai.DefineTilemap("Blocks", 24, 24, Library.Get <Texture>("content/ogmo/rooms/roomProjectTileset.png"));

            Map map = new Map("content/ogmo/layout/layout.oel");

            this.Add(map);

            foreach (MapRoom layoutRoom in map.mapRooms.OfType <MapRoom>())
            {
                XmlDocument roomXml = Library.Get <XmlDocument>("content/ogmo/rooms/" + layoutRoom.Filename + ".oel");
                //Load level properties

                Room realRoom = new Room
                                (
                    ogmoSenpai.BuildLevelAsArray(roomXml).ToList(),
                    ogmoSenpai.GetLevelProperties <RealRoomMeta>(roomXml),
                    layoutRoom,
                    this
                                );
                realRoom.RealRoomMeta.Init();
                rooms.Add(layoutRoom.Filename, realRoom);
            }

            (CurrentRoom = rooms["start"]).PopulateWorld();
            Add(player);

            HUD hud = new HUD(player);

            Add(hud);


            Entity follow = player;
            //for (int i = 0; i < 4; i++)
            //{
            //	Orb orb = new Orb(player.X, player.Y, (OrbType)i, follow);
            //	follow = orb;
            //	orbs.Add(Add(orb));
            //}
        }