using System.Linq; using Turbo.Plugins.glq; namespace Turbo.Plugins.LightningMod { public class WizardBlackHolePlugin : AbstractSkillHandler, ISkillHandler, ICustomizer { public int SpareResource { get; set; } private int CoeIndex = 0; public bool AutoSelect { get; set; } public WizardBlackHolePlugin() : base(CastType.BuffSkill, CastPhase.AutoCast, CastPhase.Attack, CastPhase.AttackIdle) { AutoSelect = true;//自动选择密度最高区域 Enabled = true; } public void Customize() { CoeIndex = Hud.GetPlugin().CoeIndex; } public override void Load(IController hud) { base.Load(hud); AssignedSnoPower = Hud.Sno.SnoPowers.Wizard_BlackHole; CreateCastRule() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfCanCastBuff().ThenContinueElseNoCast() .IfCanCastSimple().ThenContinueElseNoCast() .IfTrue(ctx => ctx.Skill.Rune == 3 && hud.Game.Me.Powers.BuffIsActive(hud.Sno.SnoPowers.ConventionOfElements.Sno) && hud.Game.Me.Powers.BuffIsActive(hud.Sno.SnoPowers.SerpentsSparker.Sno)).ThenContinueElseNoCast()//法术窃取+元素戒指+蛇杖 .IfTrue(ctx => { bool IsElementReady = PublicClassPlugin.IsElementReady(hud, 1, ctx.Skill.Player, CoeIndex);////爆发元素前1秒 return IsElementReady; }).ThenContinueElseNoCast() .IfTrue(ctx => { var HighestDensityMonster = Hud.Game.AliveMonsters.Where(x => x.IsOnScreen).OrderByDescending(x => x.GetMonsterDensity(15)).FirstOrDefault(); if (AutoSelect && HighestDensityMonster != null) { var tempX = hud.Window.CursorX; var tempY = hud.Window.CursorY; hud.Interaction.MouseMove(HighestDensityMonster.ScreenCoordinate.X, HighestDensityMonster.ScreenCoordinate.Y); hud.Interaction.DoActionAutoShift(ctx.Skill.Key); hud.Interaction.MouseMove(tempX, tempY); } return false; }) .IfTrue(ctx => !AutoSelect).ThenContinueElseNoCast() .IfEnoughMonstersNearbyCursor(ctx => 15, ctx => 1).ThenCastElseContinue() ; } } }