void OnSpawnEnemyPawns(EventDataModel data) { SpawnEnemyPawnEventDataModel targetData = (SpawnEnemyPawnEventDataModel)data; if (targetData == null) { return; } targetData.Pawns.ForEach((pawn) => { SelectedPawn cell = GetEmptyCell(); if (cell != null) { cell.SetPawnImage(pawn); } }); }
SelectedPawn GetEmptyCell() { SelectedPawn result = null; SelectedPawnBoards.ForEach((SelectedPawn cell) => { if (result != null) { return; } if (cell.IsEmpty()) { result = cell; return; } }); return(result); }
void OnSelectPawn(EventDataModel data) { var targetData = (SelectEventDataModel)data; if (targetData == null) { return; } SelectedPawn cell = GetEmptyCell(); if (cell != null) { cell.SetPawnImage(targetData.Pawn); cell.HP.value = 1.0F; targetData.Pawn.PawnDef.HP = targetData.Pawn.PawnDef.MaxHP; AddedToPartyEventDataModel partyAddData = new AddedToPartyEventDataModel(); partyAddData.Pawn = targetData.Pawn; EventManager.DispatchEvent(EVENT.AddedPawnToParty, partyAddData); } }
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); SpriteBatch.Begin(Camera); RenderBackground.DrawBackground(); GrassTufts.DrawGrassTufts(); Bushes.DrawBushes(); DrawHumanPawns.DrawHumans(); DrawZedPawns.DrawZeds(); DrawStructures.DrawBuildings(); RuinedBuilding.DrawRuinedBuildings(); Trees.DrawTrees(); Trees.DrawTreeFoliage(); Resource.DrawGatherIcon(); HealthBar.DrawHealthBar(); //Build Menus if (BuildMenuPane.IsBuildMenuWindowVisible) { DrawBuildMenus.DrawBuildMenuPane(); DrawBuildMenus.DrawMainMenuIcons(); } if (BuildMenuPane.IsBuildMenuWindowVisible && BuildMenuInteraction.IsBuildMenuOpen) { DrawBuildMenus.DrawBuildMenuIcons(); } if (BuildMenuRollOverText.IsBuildMenuRollOverTextVisible) { BuildMenuRollOverText.DrawRolloverText(BuildMenuRollOverText.RollOverTxt); } //Building Placement if (BuildingPlacementHandler.IsPlacingBuilding) { if (BuildingPlacementHandler.CheckIfGroundClear(Blueprint)) { SpriteBatch.Draw(BuildingPlacementHandler.SetBuildingTexture(), MouseCoordinates, Color.Green); } else { SpriteBatch.Draw(BuildingPlacementHandler.SetBuildingTexture(), MouseCoordinates, Color.Red); } } //Pawn PawnInfoSB if (PawnInfo.IsPawnInfoVisible) { //PawnInfoMenuClose.ClosePawnInfoMenu(); DrawPawnsInfoPanel.DrawPawnInfoPanel(); SelectedPawn.DrawSelectedPawnIndicator(); } if (ExtendIconChecks.IsWeaponIconListVisible) { DrawPawnInfoIcons.DrawWeaponListIcons(); } //Pawn rollover text DrawDetailPane.DrawDetailsPane(); if (DetailsPane.isDetailPaneVisible) { DrawDetailPane.DrawDetailsPaneText(); } if (!Bulldozer.IsBulldozerActive) { Cursor.DrawCursor(); } else { Cursor.DrawDozerCursor(); } if (Zeds.Debug.Debug.IsDebugEnabled) { Zeds.Debug.Debug.DrawDebugInfo(); fps.DrawFps(); } SpriteBatch.End(); base.Draw(gameTime); }
protected override void Update(GameTime gameTime) { Camera.Update(gameTime); /* * if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || * Keyboard.GetState().IsKeyDown(Keys.Escape)) * Exit(); */ // Mouse //ToDo 1 Fix mouse getting 'stuck' in fullscreen mode MouseCoordinates = Cursor.GetMouseCoordinates(); Cursor.GetMouseCoordinates(); Cursor.UpdateCursorRectangleLocation(); //Update Tree Foliage Transparency Trees.ChangeTreeFoliageTransparency(); if (Debug.Debug.IsDebugEnabled) { fps.Update(gameTime); } if (ResolutionChanged) { ResolutionHandler.SetResolution(); Graphics.ApplyChanges(); } Camera.Position = CameraPosition; #region User Interface if (BuildMenuPane.IsBuildMenuWindowVisible) { BuildMenuRollOverText.GenerateRollOverText(); BuildMenuPane.CloseBuildMenu(); } if (BuildingPlacementHandler.IsPlacingBuilding) { BuildingPlacementHandler.CheckIfGroundClear(Blueprint); BuildingPlacementHandler.PlaceAStructure(BuildingPlacementHandler.SetBuildingTexture()); } //Menu if (!Bulldozer.IsBulldozerActive) { BuildMenuInteraction.CheckCursorMenuInteraction(Cursor.CursorRectangle); } if (BuildMenuInteraction.IsBuildMenuOpen && !Bulldozer.IsBulldozerActive) { BuildMenuInteraction.CheckBuildIconInteraction(); } if (BuildMenuPane.IsBuildMenuWindowVisible && !Bulldozer.IsBulldozerActive) { BuildMenuPane.UpdateBuildMenuWindowLocation(); } // Details Pane DetailsPaneInteraction.CheckForDetailsPaneInteraction(); DetailsPaneMovement.UpdateDetailsPaneLocation(); // Selected Pawn if (SelectedPawn.SelectedHuman != null) { SelectedPawn.UpdateIndicator(SelectedPawn.SelectedHuman); ExtendIconChecks.CheckExtendHandClicked(); PawnInfo.UpdatePawnInfo(); } #endregion #region PawnInfoSB PawnCursorInteraction.CheckForCursorPawnInteraction(); if (PawnInfo.IsPawnInfoVisible) { PawnInfo.ClosePawnInfo(); } if (ExtendIconChecks.IsWeaponIconListVisible) { EquipWeapon.CheckWeaponIconInteraction(); CreateItemIcons.UpdateWeaponIconList(); } #endregion ZedDeath.CheckZedsHealth(); RuinedBuilding.CheckBuildingsHealth(); HumanDeath.CheckHumansHealth(); ZedController.IncreaseZeds(); //Building Removal if (Bulldozer.IsBulldozerActive) { Bulldozer.DemolishStructure(); } //Movement //HumanMovement.RunFromZeds(); PathFind.MovePawns(); CheckMouseStateChange.UpdateMouseState(); KeyBindings.CheckForKeyInput(); KeyBindings.CheckForMouseInput(); Resource.SetResourcesForGathering(); base.Update(gameTime); }