public static MSUnitHandler GetInstance() { if (unitHandler == null) unitHandler = new MSUnitHandler(); return unitHandler; }
public void sentinel(MSMap map, MSUnitHandler unitHandler) { if (capacity > 0 && this.State == MSChangeableBuildingState.IDLE) { for (int i = 0; i < unitHandler.Units.Count; i++) { MSUnit unit = unitHandler.Units[i]; if (unit is MSMobber && !targetList.Contains(unit) ) { Vector2 targetTileCoords = unit.TileCoordinate; //int distance = Math.Abs(Row - (int)targetTileCoords.X) + Math.Abs(Column - (int)targetTileCoords.Y); MS3DTile tile = (unit as MSMobber).Map.MapArray[(int)targetTileCoords.X, (int)targetTileCoords.Y]; Node path = (MoodSwing.GetInstance().CurrentScreen as MSDistrictScreen).Map.GetPath(TileCoordinate, targetTileCoords); int distance = 0; while (path.next != null) { distance++; path = path.next; } if (tile is MSRoad && distance <= Stats.GetRange()) { MSMilleniumDevelopmentGoal goal = (unit as MSMobber).Concern; if (Stats.GetEffectiveness(goal) == true) { capacity--; /*unitHandler.Units[i] = new MSCitizen ( unit.Position, unit.Path, unit.Map, false, unit.Rotation ); unit = unitHandler.Units[i];*/ //unit.IsStopped = true; MSUnitHandler.GetInstance().SendVolunteer(map, unit, this); targetList.Add(unit); //MSMoodManager.GetInstance().TakeHealth(); //MSMoodManager.GetInstance().AddMDGScore(goal); } break; } } } } }
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(); }
public static MSUnitHandler Restart() { unitHandler = new MSUnitHandler(); return unitHandler; }