Advertisement
Jembo33

NoxiousGuardianPlugin.cs

Nov 28th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.32 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using Turbo.Plugins.Default;
  3.  
  4. namespace Turbo.Plugins.User
  5. {
  6.     public class NoxiousGuardianPlugin : BasePlugin, IInGameWorldPainter
  7.     {
  8.  
  9.         public WorldDecoratorCollection Decorator { get; set; }
  10.         private Dictionary<string, string> _names = new Dictionary<string, string>();
  11.  
  12.         public NoxiousGuardianPlugin()
  13.         {
  14.             Enabled = true;
  15.         }
  16.  
  17.         public override void Load(IController hud)
  18.         {
  19.             base.Load(hud);
  20.  
  21.             AddNames("Noxious Guardian");
  22.  
  23.             Decorator = new WorldDecoratorCollection(
  24.                 new MapShapeDecorator(Hud)
  25.                 {
  26.                     Brush = Hud.Render.CreateBrush(255, 150, 80, 255, 2.5f),
  27.                     ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1),
  28.                     ShapePainter = new CircleShapePainter(Hud),
  29.                     Radius = 5,
  30.                     RadiusTransformator = new StandardPingRadiusTransformator(Hud, 600)
  31.                     {
  32.                         RadiusMinimumMultiplier = 0.8f
  33.                     }
  34.                 },
  35.                 new GroundCircleDecorator(Hud)
  36.                 {
  37.                     Brush = Hud.Render.CreateBrush(255, 150, 80, 255, 6),
  38.                     Radius = 2.0f,
  39.                     RadiusTransformator = new StandardPingRadiusTransformator(Hud, 600)
  40.                     {
  41.                         RadiusMinimumMultiplier = 0.8f
  42.                     }
  43.                 }
  44.             );
  45.         }
  46.  
  47.         public void AddNames(params string[] names)
  48.         {
  49.             foreach (var name in names)
  50.             {
  51.                 _names[name] = name;
  52.             }
  53.         }
  54.  
  55.         public void RemoveName(string name)
  56.         {
  57.             if (_names.ContainsKey(name)) _names.Remove(name);
  58.         }
  59.  
  60.         public void PaintWorld(WorldLayer layer)
  61.         {
  62.             var monsters = Hud.Game.AliveMonsters;
  63.             foreach (var monster in monsters)
  64.             {
  65.                 if (_names.ContainsKey(monster.SnoMonster.NameEnglish) || _names.ContainsKey(monster.SnoMonster.NameLocalized))
  66.                 {
  67.                     Decorator.Paint(layer, monster, monster.FloorCoordinate, monster.SnoMonster.NameLocalized);
  68.                 }
  69.             }
  70.         }
  71.     }
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement