Esempio n. 1
0
 public void Execute()
 {
     Game.Link.State   = States.LinkState.Idle;
     Game.SpriteLink   = new LinkSprite(Game, "WalkUp", Game.LinkSpriteSheet, Game.spriteBatch);
     Game.Link         = new Link(Game, Game.SpriteLink, Game.LinkSpawn);
     Game.RupeeCounter = 0;
     Game.KeyCounter   = 0;
     Game.BombCounter  = 0;
     Game.hud          = new HUD(Game);
     DungeonLoader.ResetLevel(Game, Game.CurrDungeon);
     Game.hasGun = false;
 }
Esempio n. 2
0
 public Dungeon(Game1 game, string fileLocation)
 {
     Game        = game;
     Rooms       = new Dictionary <string, Room>();
     MFactory    = new MonsterFactory(game);
     Monsters    = new List <Monster>();
     Items       = new List <IItem>();
     HiddenItems = new List <IItem>();
     Attacks     = new List <IAttack>();
     Walls       = new List <Rectangle>();
     Movables    = new List <MovableBlock>();
     Blocks      = new List <Rectangle>();
     Doors       = new List <IDoor>();
     Traps       = new List <ITrap>();
     Transitions = new List <ScreenTransition>();
     DungeonLoader.InitializeDungeon(game, this, fileLocation);
     ActiveRoom = Rooms["Room0"];
     Game.Camera.SetPosition(ActiveRoom.Position);
 }
Esempio n. 3
0
        public void Update()
        {
            DungeonLoader.Update(Game, this);

            foreach (Monster monster in Monsters)
            {
                if (!Game.ClockActivated || monster.State == States.MonsterState.Damaged || monster.State == States.MonsterState.Dead)
                {
                    monster.Update();
                }
            }


            foreach (IItem item in Items)
            {
                item.Update();
            }

            foreach (IAttack attack in Attacks.ToArray())
            {
                attack.Update();
            }

            foreach (IDoor door in Doors)
            {
                door.Update();
            }

            foreach (MovableBlock movable in Movables)
            {
                movable.Update();
            }
            foreach (ITrap trap in Traps)
            {
                trap.Update();
            }
        }
Esempio n. 4
0
        public void TransitionToRoom(string newRoom)
        {
            Game.ClockActivated = false;
            foreach (Monster monster in Monsters)
            {
                monster.CanDamage = true;
            }

            if (!ActiveRoom.Name.Equals(newRoom))
            {
                DungeonLoader.TransitionRooms(Game, this, ActiveRoom, Rooms[newRoom]);
            }

            // updates list of explored rooms every time ethere is a transition to a room
            if (!newRoom.Equals("Room0"))
            {
                int roomNum  = int.Parse(newRoom.Substring(4));
                int explored = Game.roomsExplored[roomNum];
                if (explored == 0)
                {
                    Game.roomsExplored[roomNum] = 1;
                }
            }
        }