public MSDistrictScreen(DistrictName district, MoodSwing game) : base(game.Content.Load<Texture2D>("districtmap"), 0, 0, 0, 0, game.SpriteBatch, game) { gameTime = 0; lastTotalRunTime = 0; this.name = district; String filename = ""; if (district == DistrictName.FEAR) { filename = @"Content\smallMap.txt"; districtName = "small"; ultiGoal = 3; } else if (district == DistrictName.SADNESS) { filename = @"Content\mediumMap.txt"; districtName = "medium"; ultiGoal = 6; } else if (district == DistrictName.ANGER) { filename = @"Content\largeMap.txt"; districtName = "large"; ultiGoal = 8; } map = new MSMap(filename); MSCamera.initialize((game as MoodSwing).GraphicsDevice.Viewport, MSDistrictHall.getInstance().Position, MSDistrictHall.getInstance().Rotation); //citizensList = new List<MSCitizen>(); unitHandler = MSUnitHandler.Restart(); moodManager = MSMoodManager.GetInstance(); MSMoodManager.Reset(); resourceManager = MSResourceManager.GetInstance(); MSResourceManager.instantiate(1000, map.InitialVolunteerCenters); foreach (MS3DTile tile in map.MapArray) { tile.LightSource = map.LightSource; } blackOutPanel = new MSPanel ( game.Content.Load<Texture2D>("BlackOut"), BoundingRectangle, null, Shape.RECTANGULAR, spriteBatch, game ); blackOutPanel.Visible = false; AddComponent(blackOutPanel); MSToolTip idleVolunteersToolTip = new MSToolTip ( null, new Rectangle(52, 25, 50, 14), SpriteBatch, Game ); MSPanel idleVolunteersPanel = new MSPanel ( null, new Rectangle(52, 25, 50, 14), idleVolunteersToolTip, Shape.RECTANGULAR, SpriteBatch, Game ); idleVolunteers = new MSTextField ( "0", new Rectangle(82, 25, 20, 14), null, null, 4, game.Content.Load<SpriteFont>("TopPanel"), Color.White, spriteBatch, game ); idleVolunteersPanel.AddComponent(idleVolunteers); idleVolunteersToolTip.AddComponent(new MSWrappingLabel ( new Point(82, 39), "Idle Volunteers", Game.Content.Load<SpriteFont>("ToolTipFont"), Color.White, Game.Content.Load<Texture2D>("BlackOut"), 3, 3, 3, 3, null, null, SpriteBatch, Game )); MSToolTip totalVolunteersToolTip = new MSToolTip ( null, new Rectangle(152, 25, 80, 14), SpriteBatch, Game ); MSPanel totalVolunteersPanel = new MSPanel ( null, new Rectangle(152, 25, 80, 14), totalVolunteersToolTip, Shape.RECTANGULAR, SpriteBatch, Game ); totalVolunteers = new MSTextField( "0/0", new Rectangle(192, 34, 40, 14), null, null, 9, game.Content.Load<SpriteFont>("TopPanel"), Color.White, spriteBatch, game); totalVolunteersPanel.AddComponent(totalVolunteers); totalVolunteersToolTip.AddComponent(new MSWrappingLabel ( new Point(192, 48), "Total Volunteers/Volunteer Limit", Game.Content.Load<SpriteFont>("ToolTipFont"), Color.White, Game.Content.Load<Texture2D>("BlackOut"), 3, 3, 3, 3, null, null, SpriteBatch, Game )); MSToolTip fundsToolTip = new MSToolTip ( null, new Rectangle(262, 44, 150, 20), SpriteBatch, Game ); MSPanel fundsPanel = new MSPanel ( null, new Rectangle(262, 44, 150, 20), fundsToolTip, Shape.RECTANGULAR, SpriteBatch, Game ); funds = new MSTextField ( "0", new Rectangle(332, 44, 80, 20), null, null, 8, game.Content.Load<SpriteFont>("TopPanel"), Color.White, spriteBatch, game ); fundsPanel.AddComponent(funds); fundsToolTip.AddComponent(new MSWrappingLabel ( new Point(332, 64), "Funds", Game.Content.Load<SpriteFont>("ToolTipFont"), Color.White, Game.Content.Load<Texture2D>("BlackOut"), 3, 3, 3, 3, null, null, SpriteBatch, Game )); MSPanel topPanelBack = new MSPanel ( Game.Content.Load<Texture2D>("GamePanel/WhiteBG"), new Rectangle(0, 0, 1024, 91), null, Shape.AMORPHOUS, SpriteBatch, Game ); AddComponent(topPanelBack, Alignment.TOP_CENTER); MSPanel topPanel = new MSPanel ( Game.Content.Load<Texture2D>("GamePanel/TopPanel"), new Rectangle(0, 0, 1024, 91), null, Shape.AMORPHOUS, SpriteBatch, Game ); topPanel.AddComponent(idleVolunteersPanel); topPanel.AddComponent(totalVolunteersPanel); topPanel.AddComponent(fundsPanel); AddComponent(topPanel, Alignment.TOP_CENTER); mainMenuButton = new MSButton( null, new OpenExitConfirmation(OpenExitConfirmation.ExitType.ToMainMenu), new Rectangle(403, 92, 226, 57), game.Content.Load<Texture2D>("GamePanel/MainMenu"), game.Content.Load<Texture2D>("GamePanel/mainmenuclicked"), game.Content.Load<Texture2D>("GamePanel/mainmenuhovered"), null, Shape.AMORPHOUS, spriteBatch, game); optionsButton = new MSButton( null, OpenOptionsScreen.GetInstance(), new Rectangle(431, 151, 237, 57), game.Content.Load<Texture2D>("GamePanel/Options"), game.Content.Load<Texture2D>("GamePanel/optionsclicked"), game.Content.Load<Texture2D>("GamePanel/optionshovered"), null, Shape.AMORPHOUS, spriteBatch, game); exitButton = new MSButton( null, new OpenExitConfirmation(OpenExitConfirmation.ExitType.ToWindows), new Rectangle(460, 210, 277, 57), game.Content.Load<Texture2D>("GamePanel/quit"), game.Content.Load<Texture2D>("GamePanel/quitclicked"), game.Content.Load<Texture2D>("GamePanel/quithovered"), null, Shape.AMORPHOUS, spriteBatch, game); AddComponent(mainMenuButton); AddComponent(optionsButton); AddComponent(exitButton); mainMenuButton.Visible = false; optionsButton.Visible = false; exitButton.Visible = false; openInGameMenu = new MSAnimatingButton( null, new OpenInGameMenu(), new Rectangle(465, 25, 111, 110), game.Content.Load<Texture2D>("GamePanel/Logo"), game.Content.Load<Texture2D>("GamePanel/LogoClicked"), game.Content.Load<Texture2D>("GamePanel/LogoHovered"), Color.White, null, Shape.CIRCULAR, SpriteBatch, Game); openInGameMenu.UnclickPosition = new SwingButtonOpenMovement(); openInGameMenu.UnclickTimerLimit = 12; closeInGameMenu = new MSAnimatingButton( null, new CloseInGameMenu(), new Rectangle(639, 235, 111, 110), game.Content.Load<Texture2D>("GamePanel/Logo"), game.Content.Load<Texture2D>("GamePanel/LogoClicked"), game.Content.Load<Texture2D>("GamePanel/LogoHovered"), Color.White, null, Shape.CIRCULAR, SpriteBatch, Game); closeInGameMenu.UnclickPosition = new SwingButtonCloseMovement(); closeInGameMenu.UnclickTimerLimit = 12; closeInGameMenu.Visible = false; AddComponent(closeInGameMenu); AddComponent(openInGameMenu); AddComponent(moodManager.PovertyProgressBar); AddComponent(moodManager.EducationProgressBar); AddComponent(moodManager.GenderEqualityProgressBar); AddComponent(moodManager.ChildHealthProgressBar); AddComponent(moodManager.MaternalHealthProgressBar); AddComponent(moodManager.HivAidsProgressBar); AddComponent(moodManager.EnvironmentProgressBar); AddComponent(moodManager.GlobalPartnershipProgressBar); MSImageHolder translucentOverlay = new MSImageHolder ( new Rectangle(0, 0, 1024, 91), Game.Content.Load<Texture2D>("GamePanel/translucent"), SpriteBatch, Game ); AddComponent(translucentOverlay); Paused = false; MSStory.Init(district); load(); }
protected void AddSelection(string title, string description, MSBuildingStats stats, Rectangle boundingRectangle, Texture2D unhoveredTexture, Texture2D clickedTexture, Texture2D hoveredTexture, Alignment alignment) { if (selected is MSChangeableBuilding) { MSToolTip toolTip = new MSToolTip(Game.Content.Load<Texture2D>("BlackOut"), new Rectangle(0, 568, 1024, 200), 10, 10, 10, 10, SpriteBatch, Game); MSWrappingLabel titleToolTip = new MSWrappingLabel(new Point(0, 0), title, Game.Content.Load<SpriteFont>("ToolTipTitle"), Color.White, null, 2, 2, 2, 2, 1024, 758, SpriteBatch, Game); toolTip.AddComponent(titleToolTip, Alignment.TOP_LEFT); /** MSToolTip orbCostToolTip = new MSToolTip(null, new Rectangle(BoundingRectangle.X + BoundingRectangle.Width / 2, BoundingRectangle.Y, 75, 50), -30, 0, 0, 0, SpriteBatch, Game); orbCostToolTip.AddComponent(bucksIcon, Alignment.MIDDLE_LEFT); orbCostToolTip.AddComponent(moneyCost, Alignment.MIDDLE_RIGHT); orbCostToolTip.AddComponent(gingerBreadManIcon, Alignment.BOTTOM_LEFT); orbCostToolTip.AddComponent(volunteerCost, Alignment.BOTTOM_RIGHT); toolTip.AddComponent(orbCostToolTip); */ MSToolTip costToolTip = new MSToolTip(null, new Rectangle(0, 0, 75, 50), 0, 0, 0, 0, SpriteBatch, Game); toolTip.AddComponent(costToolTip, Alignment.TOP_RIGHT); if (stats.GetFundsCost() != 0) { MSWrappingLabel moneyCost = new MSWrappingLabel(new Point(0, 0), stats.GetFundsCost().ToString(), Game.Content.Load<SpriteFont>("BuyDialog"), Color.White, null, null, null, SpriteBatch, Game); costToolTip.AddComponent(bucksIcon, Alignment.TOP_LEFT); costToolTip.AddComponent(moneyCost, Alignment.TOP_RIGHT); } if (stats.GetVolunteerCost() != 0) { MSWrappingLabel volunteerCost = new MSWrappingLabel(new Point(0, 0), stats.GetVolunteerCost().ToString(), Game.Content.Load<SpriteFont>("BuyDialog"), Color.White, null, null, null, SpriteBatch, Game); costToolTip.AddComponent(gingerBreadManIcon, Alignment.BOTTOM_LEFT); costToolTip.AddComponent(volunteerCost, Alignment.BOTTOM_RIGHT); } MSWrappingLabel descriptionToolTip = new MSWrappingLabel(new Point(titleToolTip.BoundingRectangle.X, costToolTip.BoundingRectangle.Y + costToolTip.BoundingRectangle.Height), description, Game.Content.Load<SpriteFont>("ToolTipFont"), Color.White, null, 2, 2, 2, 2, 1024, 758, SpriteBatch, Game); toolTip.AddComponent(descriptionToolTip); MSAction toPerform; if (stats is MSTowerStats) toPerform = new BuyTower(selected as MSChangeableBuilding, stats as MSTowerStats); else if (stats is MSVolunteerCenterStats) toPerform = new BuyVolunteerCenter(selected as MSChangeableBuilding); else if (stats is MSFundraiserStats) toPerform = new BuyFundraiser(selected as MSChangeableBuilding); else throw new ArgumentException(); AddComponent(new MSButton(null, toPerform, boundingRectangle, unhoveredTexture, clickedTexture, hoveredTexture, toolTip, Shape.AMORPHOUS, spriteBatch, Game), alignment); } else throw new NotImplementedException(); }