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); } }
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 } } }
private void DrawGreyBrush(float xPos) { GreyBrush.DrawRectangle((HudWidth * 0.5f - _lRashaSize * .5f) + xPos, HudHeight * RashaIndicatorsYpos, _lRashaSize * _lRashaSizeMod, _lRashaSize * _lRashaSizeMod); }