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; }
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); }
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(); } }
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; } } }