using System.Linq; namespace Turbo.Plugins.LightningMod { public class NecSimulacrumPlugin : AbstractSkillHandler, ISkillHandler { public float SecSpare { get; set; } public NecSimulacrumPlugin() : base(CastType.BuffSkill, CastPhase.AutoCast, CastPhase.UseWpStart, CastPhase.Move, CastPhase.Attack, CastPhase.AttackIdle) { Enabled = false; SecSpare = 10f; } public override void Load(IController hud) { base.Load(hud); AssignedSnoPower = Hud.Sno.SnoPowers.Necromancer_Simulacrum; CreateCastRule() .IfCanCastSkill(100, 150, 1000).ThenContinueElseNoCast() .IfInTown().ThenNoCastElseContinue() .IfCastingIdentify().ThenNoCastElseContinue() .IfCastingPortal().ThenNoCastElseContinue() .IfOnCooldown().ThenNoCastElseContinue() .IfSpecificBuffIsActive(Hud.Sno.SnoPowers.Necromancer_Simulacrum).ThenNoCastElseContinue() .IfTrue(ctx => { var buffLandOfTheDead = Hud.Game.Me.Powers.GetBuff(Hud.Sno.SnoPowers.Necromancer_LandOfTheDead.Sno); return (buffLandOfTheDead?.TimeElapsedSeconds[0] < 1 && buffLandOfTheDead?.TimeElapsedSeconds[0] != 0) || //亡者领域施放1秒内 ( (120 - (Hud.Game.Me.Powers.BuffIsActive(Hud.Sno.SnoPowers.Ingeom.Sno, 1) ? GetIngeom() : 0) //寅剑激活 ) * (1 - Hud.Game.Me.Stats.CooldownReduction) //总CDR <= ((Hud.Game.Me.Powers.UsedLegendaryPowers.HauntedVisions?.Active == true ? 30 : 15) + SecSpare) && (Hud.Game.Me.Density.GetDensity(50)> 0)); }).ThenCastElseContinue() ; } private uint GetIngeom() { uint Sec = 10; if (Hud.Game.Me.CubeSnoItem1 != null && Hud.Game.Me.CubeSnoItem1.Sno == Hud.Sno.SnoItems.Unique_Sword_1H_113_x1.Sno) { Sec = 10; } else { var Ingeom = Hud.Game.Items.FirstOrDefault(item => (item.Location == ItemLocation.RightHand || item.Location == ItemLocation.LeftHand) && item.SnoItem.Sno == Hud.Sno.SnoItems.Unique_Sword_1H_113_x1.Sno); Sec = Ingeom == null ? 0 : (uint)Ingeom.Perfections.FirstOrDefault(p => p.Attribute.Code == "Item_Power_Passive").Cur; } return Sec; } } }