namespace Turbo.Plugins.LightningMod { using System.Linq; public class BarbarianIgnorePainPlugin : AbstractSkillHandler, ISkillHandler { public BarbarianIgnorePainPlugin() : base(CastType.BuffSkill, CastPhase.AutoCast, CastPhase.Move, CastPhase.PreAttack) { Enabled = false; } public override void Load(IController hud) { base.Load(hud); AssignedSnoPower = Hud.Sno.SnoPowers.Barbarian_IgnorePain; CreateCastRule()//同仇敌忾 .IfTrue(ctx => ctx.Skill.Rune == 2).ThenContinueElseNoCast() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfCanCastBuff().ThenContinueElseNoCast() .IfCanCastSimple().ThenContinueElseNoCast() .IfEnoughMonstersNearby(ctx => 100, ctx => 1).ThenContinueElseNoCast() .IfHealthWarning(30, 60).ThenCastElseContinue() .IfNearbyPartyMemberIsInDanger(48, 30, 60, 40, true).ThenCastElseContinue() .IfTrue(ctx => { var players = ctx.Hud.Game.Players.Where(p => !p.IsDead && p.SnoArea.Sno == hud.Game.Me.SnoArea.Sno && p.CentralXyDistanceToMe <= 200); return ctx.Skill.Rune == 2 && players.All(p => p.CentralXyDistanceToMe <= 50 && !p.Powers.BuffIsActive(Hud.Sno.SnoPowers.Generic_ActorGhostedBuff.Sno));//队友都在50码内且不是灵魂状态 } ).ThenCastElseContinue() .IfSpecificBuffIsActiveOnParty(Hud.Sno.SnoPowers.StoneGauntlets, 2, HeroClass.All, 50).ThenCastElseContinue()//岩石护手debuff .IfTrue(ctx => ctx.Skill.Player.Powers.BuffIsActive(ctx.Hud.Sno.SnoPowers.Ingeom.Sno) && ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.PrideOfCassius.Sno) && (ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.ObsidianRingOfTheZodiac.Sno) || ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.MesserschmidtsReaver.Sno))).ThenContinueElseNoCast()//寅剑+卡修斯之傲+黄道或梅斧 .IfSpecificBuffIsAboutToExpireOnParty(Hud.Sno.SnoPowers.Barbarian_IgnorePain, 0, 8000, 8000, HeroClass.All, 50).ThenCastElseContinue()//任意队友无视苦痛BUFF少于8秒时施放 ; CreateCastRule()//威风八面符文 .IfTrue(ctx => ctx.Skill.Rune == 3).ThenContinueElseNoCast() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfCanCastBuff().ThenContinueElseNoCast() .IfCanCastSimple().ThenContinueElseNoCast() .IfBuffIsAboutToExpire(100, 500).ThenCastElseContinue() ; CreateCastRule()//其他符文 .IfTrue(ctx => ctx.Skill.Rune != 2).ThenContinueElseNoCast() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfCanCastBuff().ThenContinueElseNoCast() .IfCanCastSimple().ThenContinueElseNoCast() .IfEnoughMonstersNearby(ctx => 100, ctx => 1).ThenContinueElseNoCast() .IfHealthWarning(40, 80).ThenCastElseContinue() .IfTrue(ctx => ctx.Skill.Rune != 3 && ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.Generic_PagesBuffInvulnerable.Sno, 0)).ThenNoCastElseContinue()//除威风八面符文时开启护盾塔后不使用 .IfTrue(ctx => ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.ObsidianRingOfTheZodiac.Sno) || ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.MesserschmidtsReaver.Sno) || ctx.Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.PrideOfCassius.Sno)//卡修斯之傲或黄道或梅斧 ).ThenContinueElseNoCast() .IfBuffIsAboutToExpire(100,500).ThenCastElseContinue() ; } } }