Beispiel #1
0
        public Tile(Room room, Enumeration.TileType tileType, Enumeration.StateTile state, Enumeration.Items eitem, Enumeration.TileType NextTileType)
        {
            tileAnimation = new AnimationSequence(this);
            this.room     = room;
            nextTileType  = NextTileType;

            System.Xml.Serialization.XmlSerializer ax = new System.Xml.Serialization.XmlSerializer(tileSequence.GetType());

            Stream txtReader = Microsoft.Xna.Framework.TitleContainer.OpenStream(PoP.CONFIG_PATH_CONTENT + PoP.CONFIG_PATH_SEQUENCES + tileType.ToString() + "_sequence.xml");

            //TextReader txtReader = File.OpenText(PrinceOfPersiaGame.CONFIG_PATH_CONTENT + PrinceOfPersiaGame.CONFIG_PATH_SEQUENCES + tileType.ToString() + "_sequence.xml");


            tileSequence = (List <Sequence>)ax.Deserialize(txtReader);

            foreach (Sequence s in tileSequence)
            {
                s.Initialize();
            }

            //Search in the sequence the right type
            Sequence result = tileSequence.Find(delegate(Sequence s)
            {
                return(s.name.ToUpper() == state.ToString().ToUpper());
            });

            if (result != null)
            {
                //AMF to be adjust....
                result.frames[0].SetTexture((Texture2D)Maze.Content[PoP.CONFIG_TILES + result.frames[0].value]);
                //result.frames[0].SetTexture(Content.Load<Texture2D>(PrinceOfPersiaGame.CONFIG_TILES + result.frames[0].value));

                collision = result.collision;
                Texture   = result.frames[0].texture;
            }
            Type = tileType;


            //change statetile element
            StateTileElement stateTileElement = new StateTileElement();

            stateTileElement.state = state;
            tileState.Add(stateTileElement);
            tileAnimation.PlayAnimation(tileSequence, tileState);

            //load item
            switch (eitem)
            {
            case Enumeration.Items.flask:
                item = new Flask();
                break;

            case Enumeration.Items.sword:
                item = new Sword();
                break;
            }
        }
Beispiel #2
0
        private Tile LoadTile(Enumeration.TileType tiletype, Enumeration.StateTile state, int switchButton, Enumeration.Items item, Enumeration.TileType nextTileType, float timeOpen)
        {
            switch (tiletype)
            {
            case Enumeration.TileType.spikes:
                return(new Spikes(this, content, tiletype, state, nextTileType));



            case Enumeration.TileType.lava:
                return(new Lava(this, content, tiletype, state, nextTileType));



            case Enumeration.TileType.pressplate:
                return(new PressPlate(this, content, tiletype, state, switchButton, nextTileType));


            case Enumeration.TileType.closeplate:
                return(new ClosePlate(this, content, tiletype, state, switchButton, nextTileType));

            case Enumeration.TileType.gate:
                return(new Gate(this, content, tiletype, state, switchButton, nextTileType, timeOpen));

            case Enumeration.TileType.mirror:
                return(new Mirror(this, content, tiletype, state, switchButton, nextTileType, timeOpen));

            case Enumeration.TileType.loose:
                return(new Loose(this, content, tiletype, state, nextTileType));



            case Enumeration.TileType.block:
                return(new Block(this, content, tiletype, state, nextTileType));



            case Enumeration.TileType.chomper:
                return(new Chomper(this, content, tiletype, state, nextTileType));

            case Enumeration.TileType.exit:
                return(new Exit(this, content, tiletype, state, 0, nextTileType));



            default:

                return(new Tile(this, content, tiletype, state, item, nextTileType));
            }
        }
Beispiel #3
0
        private Tile LoadTile(Enumeration.TileType tiletype, Enumeration.StateTile state, int switchButton, Enumeration.Items item, Enumeration.TileType nextTileType)
        {
            switch (tiletype)
            {
            case Enumeration.TileType.spikes:
                return(new Spikes(this, tiletype, state, nextTileType));

                break;

            case Enumeration.TileType.pressplate:
                return(new PressPlate(this, tiletype, state, switchButton, nextTileType));

                break;

            case Enumeration.TileType.gate:
                return(new Gate(this, tiletype, state, switchButton, nextTileType));

                break;

            case Enumeration.TileType.loose:
                return(new Loose(this, tiletype, state, nextTileType));

                break;

            case Enumeration.TileType.block:
                return(new Block(this, tiletype, state, nextTileType));

                break;

            case Enumeration.TileType.exit:
                return(new Exit(this, tiletype, state, switchButton, nextTileType));

                break;

            case Enumeration.TileType.chomper:
                return(new Chomper(this, tiletype, state, nextTileType));

                break;

            default:
                return(new Tile(this, tiletype, state, item, nextTileType));
            }
        }
Beispiel #4
0
        public Tile(RoomNew room, ContentManager Content, Enumeration.TileType tileType, Enumeration.StateTile state, Enumeration.Items eitem, Enumeration.TileType NextTileType__1)
        {
            this.room    = room;
            nextTileType = NextTileType__1;

            System.Xml.Serialization.XmlSerializer ax = new System.Xml.Serialization.XmlSerializer(m_tileSequence.GetType());

            Stream txtReader = Microsoft.Xna.Framework.TitleContainer.OpenStream(PrinceOfPersiaGame.CONFIG_PATH_CONTENT + PrinceOfPersiaGame.CONFIG_PATH_SEQUENCES + tileType.ToString().ToUpper() + "_sequence.xml");

            //TextReader txtReader = File.OpenText(PrinceOfPersiaGame.CONFIG_PATH_CONTENT + PrinceOfPersiaGame.CONFIG_PATH_SEQUENCES + tileType.ToString().ToUpper() + "_sequence.xml");


            m_tileSequence = (List <Sequence>)ax.Deserialize(txtReader);

            foreach (Sequence s in m_tileSequence)
            {
                s.Initialize(Content);
            }

            //Search in the sequence the right type
            Sequence result = m_tileSequence.Find((Sequence s) => s.name == state.ToString().ToUpper());

            if (result != null)
            {
                //AMF to be adjust....
                result.frames[0].SetTexture(Content.Load <Texture2D>(PrinceOfPersiaGame.CONFIG_TILES[0] + result.frames[0].value));

                collision = result.collision;
                Texture   = result.frames[0].texture;
            }
            Type = tileType;


            //change statetile element
            StateTileElement stateTileElement = new StateTileElement();

            stateTileElement.state = state;
            tileState.Add(stateTileElement);
            tileAnimation.PlayAnimation(m_tileSequence, tileState.Value());

            //load item
            switch (eitem)
            {
            case Enumeration.Items.flask:
                item = new Flask(Content);
                break;     // TODO: might not be correct. Was : Exit Select

            case Enumeration.Items.flaskbig:
                item = new FlaskBig(Content);
                break;     // TODO: might not be correct. Was : Exit Select

            case Enumeration.Items.sword:
                item = new Sword(Content);
                break;     // TODO: might not be correct. Was : Exit Select
            }
        }
Beispiel #5
0
        public void LoadTilesApoplexy(Apoplexy.level Apoplexylevel, Apoplexy.tile[] ApoplexyTiles, Apoplexy.guard[] Apoplexyguards, Apoplexy.@event[] Apoplexyevents)
        {
            int ix           = 0;
            int switchButton = 0;

            tiles = new Tile[10, 3]; //30 fix...sorry
            Enumeration.Items item = Enumeration.Items.none;
            for (int x = 0; x < 10; x++)
            {
                for (int y = 0; y < 3; y++)
                {
                    ix = 10 * y + x;

                    Enumeration.TileType  nextTileType = Enumeration.TileType.space;
                    Enumeration.TileType  myTileType   = Enumeration.TileType.space;
                    Enumeration.StateTile myStateTile  = Enumeration.StateTile.normal;
                    //convert TileType to
                    myTileType   = Utils.ParseTileType(ApoplexyTiles[ix].element);
                    myStateTile  = Utils.ParseStateType(ref myTileType, ApoplexyTiles[ix].modifier);
                    switchButton = Utils.ParseSwitchButton(myTileType, ApoplexyTiles[ix].modifier);


                    if (myTileType == Enumeration.TileType.flask)
                    {
                        myTileType  = Enumeration.TileType.floor;
                        myStateTile = Enumeration.StateTile.normal;
                        item        = Enumeration.Items.flask;
                    }
                    else if (myTileType == Enumeration.TileType.sword)
                    {
                        myTileType  = Enumeration.TileType.floor;
                        myStateTile = Enumeration.StateTile.normal;
                        item        = Enumeration.Items.sword;
                    }
                    else
                    {
                        item = Enumeration.Items.none;
                    }


                    tiles[x, y] = LoadTile(myTileType, myStateTile, switchButton, item, nextTileType);

                    Vector2 v = new Vector2(x * Tile.WIDTH, (y * Tile.HEIGHT) - Tile.HEIGHT_VISIBLE);

                    tiles[x, y].Position   = new Position(Vector2.Zero, new Vector2(Tile.WIDTH, Tile.REALHEIGHT));
                    tiles[x, y].Position.X = v.X;
                    tiles[x, y].Position.Y = v.Y;
                }
            }
            //LOAD GUARD
            foreach (Apoplexy.guard g in Apoplexyguards)
            {
                if (g.location != "0")
                {
                    int iLocation = int.Parse(g.location);
                    int xGuard    = iLocation % 10 - 1;
                    int yGuard    = iLocation / 10 + 1;

                    xGuard = xGuard * Tile.WIDTH + Player.SPRITE_SIZE_X;
                    yGuard = (yGuard * (Tile.HEIGHT)) - Sprite.SPRITE_SIZE_Y + Room.TOP_BORDER;
                    Guard guardSprite = new Guard(this, new Vector2(xGuard, yGuard), maze.graphicsDevice, SpriteEffects.None); //to be fixed direction
                    level.sprites.Add(guardSprite);
                }
            }
        }