Ejemplo n.º 1
0
        private void TalRashaElements(IPlayer me)
        {
            GreyBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) - _lRashaSize * 1.6f, hudHeight * _lRashaYpos - _lRashaSize * 0.1f, _lRashaSize * 4.1f, _lRashaSize * 1.1f);

            if (me.Powers.BuffIsActive(429855, 1))
            {
                ArcaneBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) - _lRashaSize * 1.5f, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
            }
            else
            {
                DrawArcaneBackgroundBrush(-_lRashaSize * 1.5f);
            }

            if (me.Powers.BuffIsActive(429855, 2))
            {
                ColdBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) - _lRashaSize / 2, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
            }
            else
            {
                DrawColdBackgroundBrush(-_lRashaSize / 2);
            }

            if (me.Powers.BuffIsActive(429855, 3))
            {
                FireBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) + _lRashaSize / 2, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
            }
            else
            {
                DrawFireBackgroundBrush(_lRashaSize / 2);
            }

            if (me.Powers.BuffIsActive(429855, 4))
            {
                LightningBrush.DrawRectangle((hudWidth * 0.5f - _lRashaSize * .5f) + _lRashaSize * 1.5f, hudHeight * _lRashaYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
            }
            else
            {
                DrawLightningBackgroundBrush(_lRashaSize * 1.5f);
            }
        }
Ejemplo n.º 2
0
        private void DrawLine(IScreenCoordinate objectPosition, Line line, bool grey)
        {
            var start = PointOnLine(Center.X, Center.Y, objectPosition.X, objectPosition.Y, 60);
            var end   = PointOnLine(objectPosition.X, objectPosition.Y - 30, Center.X, Center.Y, 20);

            if (grey)
            {
                GreyBrush.DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth * 0.5f);
                return;
            }

            switch (line.Anim)
            {
            case Line.AnimType.None:
                line.Brush.DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth * 0.8f);
                break;

            case Line.AnimType.Blink:
                if ((Hud.Game.CurrentRealTimeMilliseconds / 700) % 2 == 0)
                {
                    line.Brush.DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth * 0.6f);
                }
                break;

            case Line.AnimType.Fade:
                line.Brush.Opacity = _opacity;
                line.Brush.DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth * 0.8f);
                break;

            case Line.AnimType.WidthMod:
                line.Brush.DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth * _lineWidth);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public void PaintTopInGame(ClipState clipState)
        {
            if (clipState != ClipState.BeforeClip)
            {
                return;
            }
            var textDistanceAway = TextDistanceAway;

            var monsters = Hud.Game.AliveMonsters.Where(monster => MonsterBrushes.ContainsKey(monster.Rarity) && monster.SummonerAcdDynamicId == 0 && monster.NormalizedXyDistanceToMe > CloseEnoughRange);

            foreach (var monster in monsters)
            {
                var monsterScreenCoordinate = monster.FloorCoordinate.ToScreenCoordinate();

                //Draw line to monster
                var start = PointOnLine(center.X, center.Y, monsterScreenCoordinate.X, monsterScreenCoordinate.Y, 60);
                var end   = PointOnLine(monsterScreenCoordinate.X, monsterScreenCoordinate.Y - 30, center.X, center.Y, 20);

                if (monster.NormalizedXyDistanceToMe < HitRange)
                {
                    MonsterBrushes[monster.Rarity].DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth);
                }
                else
                {
                    GreyBrush.DrawLine(start.X, start.Y, end.X, end.Y, StrokeWidth * 0.5f);
                }

                if (ShowText) //Draw text
                {
                    var layout = TextFont.GetTextLayout(string.Format("{0:N0}", monster.NormalizedXyDistanceToMe));
                    var p      = PointOnLine(center.X, center.Y, monsterScreenCoordinate.X, monsterScreenCoordinate.Y, textDistanceAway);
                    TextFont.DrawText(layout, p.X, p.Y);
                    textDistanceAway += 30; // avoid text overlap
                }
            }
        }
Ejemplo n.º 4
0
 private void DrawGreyBrush(float xPos)
 {
     GreyBrush.DrawRectangle((HudWidth * 0.5f - _lRashaSize * .5f) + xPos, HudHeight * RashaIndicatorsYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod);
 }