private void OnDraw(EventArgs args) { if (!DrawGlobal.CurrentValue) { // Complete drawing turned off return; } foreach (var enemy in EntityManager.Heroes.Enemies.Where(o => !o.IsDead || o.IsInRange(EnemySpawnPoint, 250))) { // Get the minimap position var pos = enemy.ServerPosition.WorldToMinimap(); if (LastSeen.ContainsKey(enemy.NetworkId)) { // Update the position pos = LastSeenPosition[enemy.NetworkId].WorldToMinimap(); // Get the time being invisible in seconds var invisibleTime = (Core.GameTickCount - LastSeen[enemy.NetworkId]) / 1000f; // Predicted movement circle if (DrawMovementCircle.CurrentValue) { // Get the radius the champ could have walked var radius = LastSeenRange.ContainsKey(enemy.NetworkId) ? LastSeenRange[enemy.NetworkId] : (enemy.MoveSpeed > 1 ? enemy.MoveSpeed : 540) * invisibleTime; // Don't roast toasters if (radius < RangeCircleDisableRange.CurrentValue * 10) { Utilities.DrawCricleMinimap(pos, radius * Utilities.MinimapMultiplicator, Color.Red, 1, 500); } } // Draw the minimap icon ChampionSprites[enemy.Hero].Draw(pos + MinimapIconOffset); // Draw the time being invisible if (DrawInvisibleTime.CurrentValue && invisibleTime >= DelayInvisibleTime.CurrentValue) { var text = Math.Floor(invisibleTime).ToString(CultureInfo.InvariantCulture); var bounding = TimerText.MeasureBounding(text); TimerText.Draw(text, TimerText.Color, pos - (new Vector2(bounding.Width, bounding.Height) / 2) + 1); } } // Draw recall circle if (DrawRecallCircle.CurrentValue && RecallingHeroes.ContainsKey(enemy.NetworkId)) { var startTime = RecallingHeroes[enemy.NetworkId].Item1; var duration = RecallingHeroes[enemy.NetworkId].Item2; Utilities.DrawArc(pos, (MinimapIconSize + 4) / 2f, Color.Aqua, 3.1415f, Utilities.PI2 * ((Core.GameTickCount - startTime) / (float)duration), 2f, 100); } } }
public void Draw(SpriteBatch spriteBatch) { spriteBatch.Draw(background, Position, Color.White); string seconds = TimeSpan.FromSeconds(scene.Timer.Counter).Seconds.ToString("00"); string minutes = TimeSpan.FromSeconds(scene.Timer.Counter).Minutes.ToString("00"); TimerText.Text = minutes + ":" + seconds; LivesText.Text = "Lives: " + scene.Player.Live.ToString(); BlockLeftText.Text = "Block Left: " + scene.BlockLeft.ToString(); AlignText(TimerText, Alignment.Center); AlignText(LivesText, Alignment.Left); AlignText(BlockLeftText, Alignment.Right); TimerText.Draw(spriteBatch); LivesText.Draw(spriteBatch); BlockLeftText.Draw(spriteBatch); }