using System.Linq; namespace Turbo.Plugins.LightningMod { public class BarbarianWrathOfTheBerserkerPlugin : AbstractSkillHandler, ISkillHandler { public BarbarianWrathOfTheBerserkerPlugin() : base(CastType.BuffSkill, CastPhase.AutoCast, CastPhase.UseTpStart, CastPhase.UseWpStart, CastPhase.Move, CastPhase.PreAttack) { Enabled = false; } public override void Load(IController hud) { base.Load(hud); AssignedSnoPower = Hud.Sno.SnoPowers.Barbarian_WrathOfTheBerserker; CreateCastRule() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfCanCastBuff().ThenContinueElseNoCast() .IfCanCastSimple().ThenContinueElseNoCast() .IfTrue(ctx => { var IKset = Hud.Game.Me.GetSetItemCount(671068) >= 4;//不朽4件套 return (IKset) || ((ctx.Skill.Player.Stats.CooldownReduction >= 0.4 || Hud.Game.Me.Powers.UsedPassives.Any(p => p.Sno == Hud.Sno.SnoPowers.Barbarian_Passive_BoonOfBulKathos.Sno)) //CDR 40% 或 布尔凯索的恩泽被动 && (Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.Generic_ItemPassiveUniqueRing920x1.Sno) || Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.MesserschmidtsReaver.Sno))) //黄道或梅斧 || (Hud.Game.IsEliteOnScreen) ||//遭遇精英 (Hud.Game.MaxPriorityOnScreen >= MonsterPriority.keywarden) ||//遭遇钥匙守卫 (Hud.Game.ActorQuery.NearestBoss != null) ||//遭遇BOSS (ctx.Skill.Player.Defense.HealthPct <= 30);//血量低于30% }).ThenContinueElseNoCast() .IfBuffIsAboutToExpire(300, 500).ThenCastElseContinue() ; } } }