using System.Linq; using Turbo.Plugins.Default; namespace Turbo.Plugins.glq { public class GLQ_SpecialItemsPlugin : BasePlugin, IInGameWorldPainter { public WorldDecoratorCollection Decorator { get; set; } public string DisplayTextOnAttackspeedDagger { get; set; } public bool EnableSpeak { get; set; } public GLQ_SpecialItemsPlugin() { Enabled = true; EnableSpeak = true; DisplayTextOnAttackspeedDagger = "攻速白匕首"; } public override void Load(IController hud) { base.Load(hud); Decorator = new WorldDecoratorCollection( new MapShapeDecorator(Hud) { ShapePainter = new RotatingTriangleShapePainter(Hud), Brush = Hud.Render.CreateBrush(160, 255, 0, 0, 10), ShadowBrush = Hud.Render.CreateBrush(96, 0, 0, 0, 1), Radius = 2, }, new GroundCircleDecorator(Hud) { Brush = Hud.Render.CreateBrush(150, 255, 128, 0, 0), Radius = 1.125f, }, new GroundLabelDecorator(Hud) { BackgroundBrush = Hud.Render.CreateBrush(90, 0, 0, 0, 0), TextFont = Hud.Render.CreateFont("tahoma", 8, 255, 255, 0, 0, true, false, 88, 0, 0, 0, true), } ); } public void PaintWorld(WorldLayer layer) { var items = Hud.Game.Items.Where(item => item.Location == ItemLocation.Floor && item.SnoItem.SnoItemType.NameEnglish == "Dagger" && item.IsNormal && item.StatList.WeaponDamageBonusAttackSpeedPercent() >= 0.1); foreach (var item in items) { Decorator.Paint(layer, item, item.FloorCoordinate, item.StatList.WeaponDamageBonusAttackSpeedPercent() * 100 + DisplayTextOnAttackspeedDagger); if (EnableSpeak && (item.LastSpeak == null) && Hud.Sound.LastSpeak.TimerTest(2000)) { Hud.Sound.Speak(item.StatList.WeaponDamageBonusAttackSpeedPercent() * 100 + DisplayTextOnAttackspeedDagger); item.LastSpeak = Hud.Time.CreateAndStartWatch(); } continue; } } } }