using Turbo.Plugins.glq; using System.Linq; namespace Turbo.Plugins.LightningMod { public class CrusaderShieldGlarePlugin : AbstractSkillHandler, ISkillHandler { public CrusaderShieldGlarePlugin() : base(CastType.BuffSkill, CastPhase.AutoCast, CastPhase.Collect, CastPhase.Move, CastPhase.Attack) { Enabled = true; } public override void Load(IController hud) { base.Load(hud); AssignedSnoPower = Hud.Sno.SnoPowers.Crusader_ShieldGlare; CreateCastRule() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfCanCastSimple().ThenContinueElseNoCast() .IfSpecificBuffIsActive(Hud.Sno.SnoPowers.Crusader_SteedCharge).ThenNoCastElseContinue()//骑马时 .IfTrue(ctx => { var SelectedMonster = ctx.Hud.Game.SelectedMonster2; bool nearbyenough = ctx.Skill.Player.Powers.BuffIsActive(hud.Sno.SnoPowers.TheFinalWitness.Sno) ?//最后的见证者 ctx.Hud.Game.AliveMonsters.Where(m =>(m.IsElite || m.SnoMonster.Priority == MonsterPriority.goblin || m.Rarity == ActorRarity.Boss) && !m.Illusion && !m.Invisible && !m.Invulnerable && m.NormalizedXyDistanceToMe <= 30).Count() > 1 ://周围30码内至少一个有效怪 SelectedMonster != null && (SelectedMonster.IsElite || SelectedMonster.SnoMonster.Priority == MonsterPriority.goblin || SelectedMonster.Rarity == ActorRarity.Boss) && !SelectedMonster.Illusion && !SelectedMonster.Invisible && !SelectedMonster.Invulnerable && SelectedMonster.NormalizedXyDistanceToMe <= 30;//选中目标为有效怪 return ctx.Skill.Player.Powers.BuffIsActive(hud.Sno.SnoPowers.BracerOfFury.Sno)//愤怒护腕 && ctx.Skill.Player.Powers.BuffIsActive(hud.Sno.SnoPowers.ConventionOfElements.Sno)//元素戒指 && PublicClassPlugin.IsElementReady(hud, 0.5, ctx.Skill.Player)//爆发前0.5秒 && nearbyenough ; }).ThenCastElseContinue() ; } } }