s4000

DAV_BossWarmingPlugin.cs

May 4th, 2019
975
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System.Linq;
  2. using System.Collections.Generic;
  3. using Turbo.Plugins.Default;
  4.  
  5. namespace Turbo.Plugins.DavMonster
  6. {
  7.     public class DAV_BossWarmingPlugin : BasePlugin, IInGameWorldPainter {
  8.         public Dictionary<AnimSnoEnum, string> WarmingMessage;
  9.        
  10.         public WorldDecoratorCollection MessageDecorator { get; set; }
  11.         public float BossOffsetX { get; set; }
  12.         public float BossOffsetY { get; set; }
  13.         public float BossOffsetZ { get; set; }
  14.         public float MeOffsetX { get; set; }
  15.         public float MeOffsetY { get; set; }
  16.         public float MeOffsetZ { get; set; }
  17.         public bool ShowOrlashClone { get; set; }
  18.         public bool onBoss { get; set; }
  19.         public bool onMe { get; set; }
  20.         public bool GRonly { get; set; }
  21.        
  22.         public DAV_BossWarmingPlugin() {
  23.             Enabled = true;
  24.             BossOffsetX = -20.0f;
  25.             BossOffsetY = 0.0f;
  26.             BossOffsetZ = 10.0f;
  27.             MeOffsetX = -10.0f;
  28.             MeOffsetY = 0.0f;
  29.             MeOffsetZ = 5.0f;
  30.             ShowOrlashClone = false;
  31.             GRonly = true;
  32.             onBoss = true;
  33.             onMe = true;
  34.         }
  35.  
  36.         public override void Load(IController hud) {
  37.             base.Load(hud);
  38.  
  39.             WarmingMessage = new Dictionary<AnimSnoEnum, string>();
  40.            
  41.             MessageDecorator = new WorldDecoratorCollection(
  42.                 new GroundLabelDecorator(Hud) {
  43.                     TextFont = Hud.Render.CreateFont("tahoma", 15, 255, 255, 255, 51, true, true, 255, 255, 51, 51, true),
  44.                 }
  45.             );
  46.         }
  47.        
  48.         public void PaintWorld(WorldLayer layer) {
  49.             if (GRonly && Hud.Game.SpecialArea != SpecialArea.GreaterRift) return ;
  50.            
  51.             var mylocate = Hud.Game.Me.FloorCoordinate;
  52.             var bosses = Hud.Game.AliveMonsters.Where(m => m.Rarity == ActorRarity.Boss);
  53.            
  54.             foreach(IMonster m in bosses) {
  55.                 if (!ShowOrlashClone && m.SummonerAcdDynamicId != 0) continue;
  56.                
  57.                 string outmessage;
  58.                 if (!WarmingMessage.TryGetValue(m.Animation, out outmessage)) continue;
  59.                
  60.                 if (onBoss) MessageDecorator.Paint(layer, m, m.FloorCoordinate.Offset(BossOffsetX, BossOffsetY, BossOffsetZ), outmessage);
  61.                 if (onMe) MessageDecorator.Paint(layer, null, mylocate.Offset(MeOffsetX, MeOffsetY, MeOffsetZ), outmessage);
  62.             }
  63.         }
  64.     }
  65. }
RAW Paste Data