Beispiel #1
0
 public AttackingUnit(Level initial)
     : base(initial)
 {
 }
 public MultiLevelEntity(Level level)
     : base()
 {
     this.Level = level;
 }
Beispiel #3
0
 public MovableUnit(Level initial)
     : base(initial)
 {
 }
        public void LoadMultiLevel(string name)
        {
            // Get a mapping of level instances to tilesets.
            Dictionary<Level, string> mapping = this.GetLevelToTilesetMapping(name);

            // Perform the actual level switch.
            this.m_Levels = mapping.Keys.ToArray();
            this.m_Tilesets = TilesetXmlLoader.MultiLoad(Path.Combine(World.BaseDirectory, "Resources/" + name + ".oel"), mapping.Values.ToArray());

            for (int i = 0; i < this.m_Levels.Length; i++)
            {
                foreach (Tile t in this.m_Tilesets[i].AsLinear())
                    if (t is MultiLevelEntityTile)
                    {
                        this.m_Levels[i].Entities.Add(t as MultiLevelEntityTile);
                        if (t is IMultiLevelEntity)
                            (t as IMultiLevelEntity).Level = this.m_Levels[i];
                    }
                    else if (t is EntityTile)
                        throw new InvalidOperationException("All entity tiles must derive from MultiLevelEntityTile for MultiLevelWorld.");
                    else if (t is SolidTile && this.m_Levels[i] is PathFindingLevel)
                    {
                        // Mark areas in the level's path finding that are solid.
                        for (int x = (int)(t as SolidTile).X; x < (int)(t as SolidTile).X + (t as SolidTile).Width; x += Tileset.TILESET_CELL_WIDTH)
                            for (int y = (int)(t as SolidTile).Y; y < (int)(t as SolidTile).Y + (t as SolidTile).Height; y += Tileset.TILESET_CELL_HEIGHT)
                                (this.m_Levels[i] as PathFindingLevel).PathMarkTile(x, y, true);
                    }
            }

            // Set initial active level.
            this.m_ActiveLevel = this.m_Levels[0];
        }
Beispiel #5
0
 public Unit(Level initial)
     : base(initial)
 {
 }