Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
        }