Akrosinos

SR_WizMirrorImages

Apr 4th, 2021 (edited)
995
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.07 KB | None | 0 0
  1. // by StormReaver
  2.  
  3. using System;
  4.  
  5. namespace Turbo.Plugins.User
  6. {
  7.     using SharpDX.Direct2D1;
  8.     using System.Collections.Generic;
  9.     using Turbo.Plugins.Default;
  10.  
  11.     public class SR_WizMirrorImages : BasePlugin, ICustomizer, IInGameWorldPainter
  12.     {
  13.         public WorldDecoratorCollection MirrorImageDeco { get; set; }
  14.         public WorldDecoratorCollection MirrorImageEoWDeco { get; set; }
  15.  
  16.         public SR_WizMirrorImages()
  17.         {
  18.             Enabled = true;
  19.         }
  20.  
  21.         public void Customize()
  22.         {
  23.             /* Hud.RunOnPlugin<PlayerSkillPlugin>(plugin =>
  24.             {
  25.                 // disable DEFAULT
  26.                 plugin.Enabled = false;
  27.             }); */
  28.         }
  29.  
  30.         public override void Load(IController hud)
  31.         {
  32.             base.Load(hud);
  33.  
  34.             InitMapping();
  35.  
  36.            
  37.             // SKill: Mirror Image
  38.  
  39.             // All runes, expect Extension of Will
  40.             MirrorImageDeco = new WorldDecoratorCollection(
  41.                 new MapShapeDecorator(Hud)
  42.                 {
  43.                     Brush = Hud.Render.CreateBrush(220, 255, 100, 100, 2),
  44.                     ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1),
  45.                     ShapePainter = new TriangleShapePainter(Hud),
  46.                     Radius = 1.5,
  47.                 },
  48.                 new GroundCircleDecorator(Hud)
  49.                 {
  50.                     Brush = Hud.Render.CreateBrush(120, 255, 255, 0, 2.8f, DashStyle.Dash),
  51.                     Radius = 2.2f,
  52.                 },
  53.                 new GroundLabelDecorator(Hud) // offset_z="-1.5"
  54.                 {
  55.                     CountDownFrom = 7,
  56.                     TextFont = Hud.Render.CreateFont("tahoma", 8.5f, 220, 255, 255, 0, true, false, 128, 0, 0, 0, true),
  57.                 },
  58.                 new GroundTimerDecorator(Hud) // offset_z="-1.5"
  59.                 {
  60.                     Enabled = true,
  61.                     CountDownFrom = 7,
  62.                     BackgroundBrushEmpty = Hud.Render.CreateBrush(128, 0, 0, 0, 0),
  63.                     BackgroundBrushFill = Hud.Render.CreateBrush(200, 240, 70, 70, 0),
  64.                     Radius = 18,
  65.                 });
  66.            
  67.             // Extension of Will rune
  68.            MirrorImageEoWDeco = new WorldDecoratorCollection(
  69.                 new MapShapeDecorator(Hud)
  70.                 {
  71.                     Brush = Hud.Render.CreateBrush(220, 255, 100, 100, 2),
  72.                     ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1),
  73.                     ShapePainter = new TriangleShapePainter(Hud),
  74.                     Radius = 1.5,
  75.                 },
  76.                 new GroundCircleDecorator(Hud)
  77.                 {
  78.                     Brush = Hud.Render.CreateBrush(60, 255, 255, 0, 2.8f, DashStyle.Dash),
  79.                     Radius = 2.2f,
  80.                 },
  81.                 new GroundLabelDecorator(Hud) // offset_z="-1.5"
  82.                 {
  83.                     CountDownFrom = 10,
  84.                     TextFont = Hud.Render.CreateFont("tahoma", 8.5f, 220, 255, 255, 0, true, false, 128, 0, 0, 0, true),
  85.                 },
  86.                 new GroundTimerDecorator(Hud) // offset_z="-1.5"
  87.                 {
  88.                     Enabled = true,
  89.                     CountDownFrom = 10,
  90.                     BackgroundBrushEmpty = Hud.Render.CreateBrush(128, 0, 0, 0, 0),
  91.                     BackgroundBrushFill = Hud.Render.CreateBrush(200, 0, 210, 150, 0),
  92.                     Radius = 18,
  93.                 });
  94.         }
  95.        
  96.        
  97.         private Dictionary<ActorSnoEnum, Action<WorldLayer, IActor>> _summonedByMeSnoMapping;
  98.  
  99.         private void InitMapping()
  100.         {
  101.             _summonedByMeSnoMapping = new Dictionary<ActorSnoEnum, Action<WorldLayer, IActor>>()
  102.             {
  103.                 //Mirror Image
  104.                 {(ActorSnoEnum) 98010, MirrorImagePaint }, // Wizard_MirrorImage_Female
  105.                 {(ActorSnoEnum) 107916, MirrorImagePaint }, // Wizard_MirrorImage_Male
  106.  
  107.             };
  108.         }
  109.        
  110.         public void PaintWorld(WorldLayer layer)
  111.         {
  112.             var actors = Hud.Game.Actors;
  113.             foreach (var actor in actors)
  114.             {
  115.                 /* ---  Skills where "summoned_by_me" works  --- */
  116.  
  117.                 if (actor.SummonerAcdDynamicId == Hud.Game.Me.SummonerId) // summoned_by_me
  118.                 {
  119.                     if (_summonedByMeSnoMapping.TryGetValue(actor.SnoActor.Sno, out var summonedByMeAction))
  120.                     {
  121.                         summonedByMeAction?.Invoke(layer, actor);
  122.                     }
  123.                 }
  124.             }
  125.         }
  126.        
  127.         private void MirrorImagePaint(WorldLayer layer, IActor actor)
  128.         {
  129.             var skill = Hud.Game.Me.Powers.UsedWizardPowers.MirrorImage;
  130.             if (skill != null)
  131.             {
  132.                 if (skill.Rune == 3) // with Extension of Will, Rune 3
  133.                 {
  134.                     MirrorImageEoWDeco.Paint(layer, actor, actor.FloorCoordinate, null);
  135.                 }
  136.                 else // with all other runes
  137.                 {
  138.                     MirrorImageDeco.Paint(layer, actor, actor.FloorCoordinate, null);
  139.                 }
  140.             }
  141.         }
  142.  
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment