/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); //gui.AddWidget(panel1); // load all needed textures here #region textures shipTexture = Content.Load<Texture2D>("ship01"); enemyShipTexture1 = Content.Load<Texture2D>("ship02Flipped"); enemyShipTexture2 = Content.Load<Texture2D>("ship03Flipped"); energyBar = Content.Load<Texture2D>("energyBar"); healthBarFull = Content.Load<Texture2D>("healthBarFull"); healthBarMed = Content.Load<Texture2D>("healthBarMed"); healthBarLow = Content.Load<Texture2D>("healthBarLow"); shieldBubble = Content.Load<Texture2D>("shieldBubble"); gridSprite = Content.Load<Texture2D>("Grid"); gridHighlightSprite = Content.Load<Texture2D>("GridNotWalkable"); energyBarSprite = Content.Load<Texture2D>("energyBar"); roomSprite = Content.Load<Texture2D>("Room2x2"); roomHighlightSprite = Content.Load<Texture2D>("Room2x2"); pixel = new Texture2D(GraphicsDevice, 1, 1, false, SurfaceFormat.Color); pixel.SetData(new[] { Color.Green }); crewNoAnimate = Content.Load<Texture2D>("crewNoAnimate"); starTexture = Content.Load<Texture2D>("starNode"); overworldCursorTexture = Content.Load<Texture2D>("overworldCursor"); starGreyedTexture = Content.Load<Texture2D>("starNodeGreyed"); #endregion #region player ship construction //Vector2 playerShipStartPosition = new Vector2(50,50); gridWidth = shipTexture.Bounds.Width / 32; gridHeight = shipTexture.Bounds.Height / 32; shipGrid = new int[gridWidth, gridHeight]; // initialize the player's ship // TODO: initialize all objects for a ship outside of the ship itself // pass in the UIDs of the grids, rooms, and weapons attributed with this ship // grid creation for the player ship for (int i = 0; i < shipTexture.Bounds.Width / 32; i++) { // in each column, iterate over the ship sprite's height for (int j = 0; j < shipTexture.Bounds.Height / 32; j++) { // create a new grid object for i,j //shipGrid[i, j] = new Grid(gridTexture, highlightTexture, new Vector2(i * 32 + position.X, j * 32 + position.Y), new Vector2(i, j)); Grid toAdd = new Grid(gridSprite, gridHighlightSprite, new Vector2(i * 32 + playerShipStartPosition.X, j * 32 + playerShipStartPosition.Y), new Vector2(i, j)); int UID = GridManager.AddEntity(toAdd); gridUIDs.Add(UID); shipGrid[i, j] = UID; } } // create rooms, add them to the manager, pass their UIDs to the ship int roomUID = RoomManager.AddEntity( new Room( roomHighlightSprite, roomHighlightSprite, 1, 1, playerShipStartPosition, Globals.roomShape.TwoXTwo, Globals.roomType.EMPTY_ROOM, 2,2)); roomUIDs.Add(roomUID); roomUID = RoomManager.AddEntity(new Room(roomHighlightSprite, roomHighlightSprite, 3, 2, playerShipStartPosition, Globals.roomShape.TwoXTwo, Globals.roomType.EMPTY_ROOM, 2, 2)); roomUIDs.Add(roomUID); bool[] roomTypes = new bool[11]; for (int i = 0; i < 11; i++) { roomTypes[i] = false; } int weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); System.Diagnostics.Debug.WriteLine(weaponUIDs.Count); playerShipUID = ShipManager.AddEntity(new Ship(shipTexture, gridSprite, gridHighlightSprite, playerShipStartPosition, roomUIDs, gridUIDs, weaponUIDs, roomTypes, shipGrid, 0)); foreach (var item in weaponUIDs) { WeaponToShip[item] = playerShipUID; } setRoomGridDictionary(playerShipUID); setRoomToShipDictionary(playerShipUID, roomUIDs); setUnwalkableGrids(playerShipUID); filledRoomUIDs = setCrewDictionary(playerShipUID); setFilledDict(playerShipUID, filledRoomUIDs); //playerShip = new Ship(shipTexture, gridSprite, gridHighlightSprite, new Vector2(50, 50), roomUIDs, gridUIDs, weaponUIDs, roomTypes); #endregion #region enemy ship construction 1 /* //Vector2 enemyShipStartPosition = new Vector2(400,50); Vector2 enemyShipStartPosition; enemyShipStartPosition = new Vector2(400, 50); gridUIDs = new List<int>(); roomUIDs = new List<int>(); weaponUIDs = new List<int>(); gridWidth = shipTexture.Bounds.Width / 32; gridHeight = shipTexture.Bounds.Height / 32; shipGrid = new int[gridWidth, gridHeight]; // grid creation for the player ship for (int i = 0; i < shipTexture.Bounds.Width / 32; i++) { // in each column, iterate over the ship sprite's height for (int j = 0; j < shipTexture.Bounds.Height / 32; j++) { // create a new grid object for i,j //shipGrid[i, j] = new Grid(gridTexture, highlightTexture, new Vector2(i * 32 + position.X, j * 32 + position.Y), new Vector2(i, j)); Grid toAdd = new Grid(gridSprite, gridHighlightSprite, new Vector2(i * 32 + enemyShip1StartPosition.X, j * 32 + enemyShip1StartPosition.Y), new Vector2(i, j)); int UID = GridManager.AddEntity(toAdd); gridUIDs.Add(UID); shipGrid[i, j] = UID; } } roomUID = RoomManager.AddEntity(new Room(roomHighlightSprite, roomHighlightSprite, 3, 1, enemyShip1StartPosition, Globals.roomShape.TwoXTwo, Globals.roomType.EMPTY_ROOM, 2, 2)); roomUIDs.Add(roomUID); roomUID = RoomManager.AddEntity(new Room(roomHighlightSprite, roomHighlightSprite, 3, 4, enemyShip1StartPosition, Globals.roomShape.TwoXTwo, Globals.roomType.EMPTY_ROOM, 2, 2)); roomUIDs.Add(roomUID); roomTypes = new bool[11]; for (int i = 0; i < 11; i++) { roomTypes[i] = false; } weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); System.Diagnostics.Debug.WriteLine(weaponUIDs.Count); enemyShipUID1 = ShipManager.AddEntity(new Ship(shipTexture, gridSprite, gridHighlightSprite, playerShipStartPosition, roomUIDs, gridUIDs, weaponUIDs, roomTypes, shipGrid, 0)); foreach (var item in weaponUIDs) { WeaponToShip[item] = enemyShipUID1; } WeaponToShip[weaponUID] = enemyShipUID1; setRoomGridDictionary(enemyShipUID1); setUnwalkableGrids(enemyShipUID1); */ #endregion #region enemy ship construction 2 /* //enemyShipStartPosition = new Vector2(400, 50); gridUIDs = new List<int>(); roomUIDs = new List<int>(); weaponUIDs = new List<int>(); gridWidth = shipTexture.Bounds.Width / 32; gridHeight = shipTexture.Bounds.Height / 32; shipGrid = new int[gridWidth, gridHeight]; // grid creation for the player ship for (int i = 0; i < shipTexture.Bounds.Width / 32; i++) { // in each column, iterate over the ship sprite's height for (int j = 0; j < shipTexture.Bounds.Height / 32; j++) { // create a new grid object for i,j //shipGrid[i, j] = new Grid(gridTexture, highlightTexture, new Vector2(i * 32 + position.X, j * 32 + position.Y), new Vector2(i, j)); Grid toAdd = new Grid(gridSprite, gridHighlightSprite, new Vector2(i * 32 + enemyShip2StartPosition.X, j * 32 + enemyShip2StartPosition.Y), new Vector2(i, j)); int UID = GridManager.AddEntity(toAdd); gridUIDs.Add(UID); shipGrid[i, j] = UID; } } roomUID = RoomManager.AddEntity(new Room(roomHighlightSprite, roomHighlightSprite, 3, 1, enemyShip2StartPosition, Globals.roomShape.TwoXTwo, Globals.roomType.EMPTY_ROOM, 2, 2)); roomUIDs.Add(roomUID); roomUID = RoomManager.AddEntity(new Room(roomHighlightSprite, roomHighlightSprite, 3, 4, enemyShip2StartPosition, Globals.roomShape.TwoXTwo, Globals.roomType.EMPTY_ROOM, 2, 2)); roomUIDs.Add(roomUID); roomTypes = new bool[11]; for (int i = 0; i < 11; i++) { roomTypes[i] = false; } weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); weaponUID = WeaponManager.AddEntity(new Weapon(gridSprite, 0, 0, 10, 500, 3)); weaponUIDs.Add(weaponUID); System.Diagnostics.Debug.WriteLine(weaponUIDs.Count); enemyShipUID2 = ShipManager.AddEntity(new Ship(shipTexture, gridSprite, gridHighlightSprite, playerShipStartPosition, roomUIDs, gridUIDs, weaponUIDs, roomTypes, shipGrid, 0)); foreach (var item in weaponUIDs) { WeaponToShip[item] = enemyShipUID2; } WeaponToShip[weaponUID] = enemyShipUID2; setRoomGridDictionary(enemyShipUID2); setUnwalkableGrids(enemyShipUID2); */ #endregion // load fonts font = Content.Load<SpriteFont>("Calibri"); // load gui elements skin = new Skin(Content.Load<Texture2D>("uiskin"), System.IO.File.ReadAllText("Content/uiskinmap.txt")); gui = new Gui(this, skin, new Ruminate.GUI.Framework.Text(font, Color.White)); // add all text the GUI we may be using here gui.AddText("error", new Ruminate.GUI.Framework.Text(font, Color.Red)); gui.AddText("password", new Ruminate.GUI.Framework.Text(font, Color.TransparentBlack)); gui.AddText("empty", new Ruminate.GUI.Framework.Text(font, Color.LightSlateGray)); #region stuff from initialize // initialize the state of all input managers currentKeyState = Keyboard.GetState(); currentMouseState = Mouse.GetState(); previousKeyState = Keyboard.GetState(); previousMouseState = Mouse.GetState(); // initialize the game state machine and states #region state machine setup stateMachine = new StateMachine(); startMenu = new State { Name = "startMenu" }; battle = new State { Name = "battle" }; pauseState = new State { Name = "pauseState" }; overworld = new State { Name = "overworld" }; narrative = new State { Name = "narrative" }; introState = new State { Name = "introState" }; startMenu.Transitions.Add(battle.Name, battle); startMenu.Transitions.Add(overworld.Name, overworld); startMenu.Transitions.Add(pauseState.Name, pauseState); startMenu.Transitions.Add(introState.Name, introState); battle.Transitions.Add(startMenu.Name, startMenu); battle.Transitions.Add(overworld.Name, overworld); battle.Transitions.Add(pauseState.Name, pauseState); pauseState.Transitions.Add(startMenu.Name, startMenu); pauseState.Transitions.Add(battle.Name, battle); overworld.Transitions.Add(battle.Name, battle); overworld.Transitions.Add(narrative.Name, narrative); overworld.Transitions.Add(pauseState.Name, pauseState); narrative.Transitions.Add(overworld.Name, overworld); narrative.Transitions.Add(pauseState.Name, pauseState); introState.Transitions.Add(overworld.Name, overworld); stateMachine.Start(battle); #endregion // set up any UI elements here #region ui setup #endregion // set up game objects crewMembers = new List<Crew>(); // set up each game state setupStartMenu(); setupBattle(playerShipUID); setupPauseState(); setupOverworld(); #endregion }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); //gui.AddWidget(panel1); // TODO: use this.Content to load your game content here shipTexture = Content.Load<Texture2D>("ship1"); energyBar = Content.Load<Texture2D>("energyBar"); healthBar = Content.Load<Texture2D>("healthBar"); playerShip = new Ship(shipTexture, new Vector2(50, 50)); font = Content.Load<SpriteFont>("Calibri"); skin = new Skin(Content.Load<Texture2D>("uiskin"), System.IO.File.ReadAllText("Content/uiskinmap.txt")); gui = new Gui(this, skin, new Text(font, Color.White)); gui.AddText("error", new Text(font, Color.Red)); gui.AddText("password", new Text(font, Color.TransparentBlack)); gui.AddText("empty", new Text(font, Color.LightSlateGray)); }