public override void OnAgentStay(HackGameAgent agent, HackGameBoard board, HackGameBoardElement_Node node) { if (!Empty && agent is HackGameAgent_Player) { PlayerHacking = (HackGameAgent_Player)agent; PlayerHacking.SetHacking(true); //our first time in! board.GetMedia().StartHackLoopSound(); HackBackgroundTextUpdateTimer = HackBackgroundTextUpdateTimerMax; } }
/// <summary> /// Load graphics content for the game. /// </summary> public override void LoadContent() { if (content == null) content = new ContentManager(ScreenManager.Game.Services, "Content"); ourGame = ((Game1)(ScreenManager.Game)); gameFont = content.Load<SpriteFont>("gamefont"); drawing = new HackNodeGameBoardMedia(ScreenManager.Game, content); board = new HackGameBoard((Game1)ScreenManager.Game, this, drawing); //USE YOUR CURRENT WAVE TO LOAD UP A NEW MAP. board.LoadWave(ourGame); player = new HackGameAgent_Player(board); board.AddAgent(player); int maxtrails = 50; float maxAlpha = 0.85f; float minAlpha = 0.00f; for (int i = 0; i < maxtrails; i++) { HackGameAgent_Trail t = new HackGameAgent_Trail(board, MathHelper.Lerp(minAlpha, maxAlpha, (float)(maxtrails-i)/maxtrails), drawing.PlayerTexture); if (i % 2 != 0 || i < 5) { t.SetCurrentState(HackGameAgent.HackGameAgent_State.HackGameAgent_State_Inactive); } player.AddTrail(t); board.AddAgent(t); } ScreenManager.Game.ResetElapsedTime(); ourGame.LoadStopTime = DateTime.Now; ourGame.LoadTime = (float)(ourGame.LoadStopTime.Ticks - ourGame.LoadStartTime.Ticks) / (float)TimeSpan.TicksPerSecond; }
public override void OnAgentExit(HackGameAgent agent, HackGameBoard board, HackGameBoardElement_Node node) { if (agent is HackGameAgent_Player) { ((HackGameAgent_Player)(agent)).SetHacking(false); PlayerHacking = null; board.GetMedia().StopHackLoopSound(); //reset timer HackTimerRemaining = HackTimerMax; HackBackgroundTextUpdateTimer = 0.0f; } }
public void DrawSelf(HackNodeGameBoardMedia drawing, SpriteBatch spriteBatch, GraphicsDevice GraphicsDevice, HackGameAgent_Player player) { Vector2 offset = GetCurrentOffset(); spriteBatch.Draw(drawing.LowerUI_Shell, DrawLocation_Shell + offset, Color.White); //spriteBatch.Draw(drawing.LowerUI_AlertShell, DrawLocation_AlertShell + offset, Color.White); //spriteBatch.Draw(drawing.LowerUI_BonusShell, DrawLocation_BonusShell + offset, Color.White); //Draw the numbers spriteBatch.DrawString(drawing.LowerUI_Score_Font, scorestring.outputstring, DrawLocation_ScoreText + offset, Color.Red); //Draw the alert lights //spriteBatch.Draw(AlertLightOne_Flash.IsOn() ? drawing.LowerUI_Alert_Light_On : drawing.LowerUI_Alert_Light_Off, DrawLocation_AlertLightOne + offset, Color.White); //spriteBatch.Draw(AlertLightTwo_Flash.IsOn() ? drawing.LowerUI_Alert_Light_On : drawing.LowerUI_Alert_Light_Off, DrawLocation_AlertLightTwo + offset, Color.White); //spriteBatch.Draw(AlertLightThree_Flash.IsOn() ? drawing.LowerUI_Alert_Light_On : drawing.LowerUI_Alert_Light_Off, DrawLocation_AlertLightThree + offset, Color.White); //Draw the target slice float currentTargetCompletion = 0.0f; if (board != null && board.GetTargetCashToExit() > 0) { currentTargetCompletion = (float)((double)(GetScore()) / (double)(board.GetTargetCashToExit())); } Texture2D chosenTargetSprite; if (currentTargetCompletion >= 1.0f) { chosenTargetSprite = drawing.TargetSlice_100_Percent; } else if (currentTargetCompletion >= 0.75f) { chosenTargetSprite = drawing.TargetSlice_75_Percent; } else if (currentTargetCompletion >= 0.50f) { chosenTargetSprite = drawing.TargetSlice_50_Percent; } else if (currentTargetCompletion >= 0.25f) { chosenTargetSprite = drawing.TargetSlice_25_Percent; } else { chosenTargetSprite = drawing.TargetSlice_0_Percent; } if (chosenTargetSprite != null) { spriteBatch.Draw(chosenTargetSprite, DrawLocation_TargetSlices + offset, Color.White); } }
public void DrawSelf(HackNodeGameBoardMedia drawing, SpriteBatch spriteBatch, GraphicsDevice GraphicsDevice, HackGameAgent_Player player) { if (newlyactive) { newlyactive = false; active = true; currentTickerPos = GraphicsDevice.Viewport.Width - tickerCharWidth; stringDrawLength = drawing.Ticker_Font.MeasureString(currentTicker).X; if (!overriding && newActiveTime <= 0) { drawing.StartMessageSound(); } } if (active) { //Draw the ticker spriteBatch.DrawString(drawing.Ticker_Font, currentTicker, new Vector2(currentTickerPos, drawLocationY), Color.Red); } }
public void SetInitialRandom(HackGameBoard board, HackGameAgent_Player player) { //get all "nodes" List<Point> allNodes = new List<Point>(); for (int i = 0; i < board.GetGameBoardSize(); i++) { for (int k = 0; k < board.GetGameBoardSize(); k++) { if (board.board[i, k].type == HackGameBoardElementBaseType.HackGameBoardElementBaseType_Node && board.board[i, k].GetCurrentState() == HackGameBoardElement.HackGameBoardElement_State.HackGameBoardElement_State_Active) { if (player.getCurrentBoardLocation() != new Point(k, i)) { allNodes.Add(new Point(k, i)); } } } } if (allNodes.Count > 0) { Point newCur = allNodes[board.r.Next(0, allNodes.Count)]; setCurrentBoardLocation(newCur, board); } else { Kill(0); } }
public void SetToPlayerData(HackGameAgent_Player player) { SetToOtherAgentData((HackGameAgent)(player)); //now set special zoom if (player.GetCurrentState() == HackGameAgent_State.HackGameAgent_State_SpawningIn) { specialZoom = player.getSpawnInZoom(); } else if (player.GetCurrentState() == HackGameAgent_State.HackGameAgent_State_ExitingOut) { specialZoom = player.getExitOutZoom(); } else { specialZoom = 1.0f; } }