public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (now > _NextShadowStep) { _NextShadowStep = now + ShadowStepInterval; CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(1), Throw_Poop)); } } }
public void UltimaImpact_Callback(Point3D impactloc) { CurrentSpell.Clear(); var queue = new EffectQueue(); queue.Deferred = true; BaseExplodeEffect e = ExplodeFX.Smoke.CreateInstance( impactloc, Map, 8, 0, TimeSpan.FromMilliseconds(1000 - ((10) * 100)), null, () => { foreach (Mobile mobile in AcquireAllTargets(impactloc, 8)) { if (mobile is PlayerMobile) { mobile.Damage(UltimaDamage, this); } else { mobile.Damage(UltimaPetDamage, this); } } }); e.Send(); queue.Process(); CantWalk = false; }
public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (now > _NextShadowStep) { _NextShadowStep = now + ShadowStepInterval; CurrentSpell.Clear(); HideEffect(); CantWalk = true; Hidden = true; Blessed = true; Combatant = null; CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(1), BackStab_Callback)); } } }
public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (now > _NextShadowStep && CurrentSpell.Count == 0) { _NextShadowStep = now + ShadowStepInterval; CurrentSpell.Clear(); HideEffect(); CantWalk = true; Hidden = true; Blessed = true; Combatant = null; CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(1), BackStab_Callback)); } else if (now > _NextUltima && CurrentSpell.Count == 0) { _NextUltima = now + UltimaInterval; CurrentSpell.Clear(); CantWalk = true; Combatant = null; Say("*Begins to cast Ultima*"); AnimateSpell(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(2), Ultima_Callback)); } else if (now > _NextMirrorImage && CurrentSpell.Count == 0) { _NextMirrorImage = now + MirrorImageInterval; CurrentSpell.Clear(); CantWalk = true; Combatant = null; Say("*Begins to cast Mirror Image*"); AnimateSpell(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(2), MirrorImage_Callback)); } } }
public void MirrorImage_Callback() { HideEffect(); Hidden = true; CantWalk = true; Blessed = true; var mob1 = new LockeColeMirrorImage(); var mob2 = new LockeColeMirrorImage(); var mob3 = new LockeColeMirrorImage(); mob1.Hidden = true; mob1.CantWalk = true; mob1.Blessed = true; mob2.Hidden = true; mob2.CantWalk = true; mob2.Blessed = true; mob3.Hidden = true; mob3.CantWalk = true; mob3.Blessed = true; SetHits(Hits); Timer.DelayCall(TimeSpan.FromSeconds(2), () => { mob1.MoveToWorld(Location, Map); mob2.MoveToWorld(Location, Map); mob3.MoveToWorld(Location, Map); mob1.SetHits(MirrorImageHealth); mob2.SetHits(MirrorImageHealth); mob3.SetHits(MirrorImageHealth); HideEffect(); mob1.HideEffect(); mob2.HideEffect(); mob3.HideEffect(); Hidden = false; CantWalk = false; Blessed = false; mob1.Hidden = false; mob1.CantWalk = false; mob1.Blessed = false; mob2.Hidden = false; mob2.CantWalk = false; mob2.Blessed = false; mob3.Hidden = false; mob3.CantWalk = false; mob3.Blessed = false; CurrentSpell.Clear(); }); }
protected void BackStab_Callback() { Random rnd = new Random(); List <Mobile> rangelist = AcquireTargets(Location, 15).OrderBy(x => rnd.Next()).Take(5).ToList(); Point3D origloc = Location; int count = 1; foreach (var mobile in rangelist) { Mobile mobile1 = mobile; Timer.DelayCall(TimeSpan.FromSeconds(2.5 * count), () => { Location = mobile1.Location; Hidden = false; HideEffect(); Timer.DelayCall(TimeSpan.FromSeconds(0.2), () => { Say("*Stabs you in the back.*"); Animate(); }); if (mobile1.Hits <= ShadowStepKill) { mobile1.Damage(mobile1.Hits + 1, this); } else { mobile1.Hits = ShadowStepDamage; mobile1.ApplyPoison(this, Poison.Lethal); } Timer.DelayCall(TimeSpan.FromSeconds(1.5), () => { HideEffect(); Hidden = true; }); }); count++; } Timer.DelayCall(TimeSpan.FromSeconds(2.5 * count), () => { Location = origloc; Timer.DelayCall(TimeSpan.FromSeconds(1), () => { Blessed = false; HideEffect(); Hidden = false; CantWalk = false; CurrentSpell.Clear(); }); }); }
public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (Hits < HitsMax * .75) { ToggleSummon = true; } if (ToggleSummon && now > _NextSummon) { _NextSummon = now + SummonInterval; CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Summon_Callback)); } else if (now > _NextFeast) { _NextFeast = now + FeastInterval; CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Feast_Callback)); } else if (now > _NextMerciless) { _NextMerciless = now + MercilessInterval; CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.5), Merciless_Callback)); } } }
public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (now > _NextUltima && CurrentSpell.Count == 0) { _NextUltima = now + UltimaInterval; CurrentSpell.Clear(); CantWalk = true; Combatant = null; AnimateSpell(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(2.0), Ultima_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Ultima_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(4.0), Ultima_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(5.0), Ultima_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(6.0), Ultima_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(7.0), Ultima_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(8.0), Ultima_Callback)); } } }
public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (Hits < HitsMax * .75) { ToggleSummon = true; } if (ToggleMeteor && now > _NextMeteor && Transformed) { _NextMeteor = now + MeteorInterval; Yell(Utility.RandomBool() ? "Corp Por Kal Des Ylem" : "The heavens betray you! METEOR!!!"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Meteor_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(4.0), Meteor_Callback)); } else if (ToggleSummon && now > _NextSummon) { _NextSummon = now + SummonInterval; Yell(Utility.RandomBool() ? "Kal Xen Bal Beh" : "From the darkest abyss, I summon thee!"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Summon_Callback)); } else if (ToggleGreaterExplosion && now > _NextGreaterExplosion) { _NextGreaterExplosion = now + GreaterExplosionInterval; Yell(Utility.RandomBool() ? "Kal Vas Ort Flam" : "MAY YOU BE REDUCED TO ASHES"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), GreaterExplosion_Callback)); } else if (TogglePoisonExplosion && now > _NextPoisonExplosion) { _NextPoisonExplosion = now + PoisonExplosionInterval; Yell(Utility.RandomBool() ? "In Vas Ort Nox" : "Breathe deep the underworld.."); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.5), PoisonExplosion_Callback)); } } }
public override void OnThink() { base.OnThink(); DateTime now = DateTime.UtcNow; if (!this.InCombat()) { return; } if (now > _NextCast) { _NextCast = now + CastInterval; if (CurrentSpell == null) { CurrentSpell = new List <Timer>(); } if (Hits < HitsMax * .75) { ToggleSummon = true; } if (ToggleMeteor && now > _NextMeteor && Transformed) { _NextMeteor = now + MeteorInterval; Yell("FEEL THE WRATH OF THE ONE TRUE EASTER BUNNY"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Meteor_Callback)); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(4.0), Meteor_Callback)); } else if (ToggleSummon && now > _NextSummon) { _NextSummon = now + SummonInterval; Yell(Utility.RandomBool() ? "Fluff Cand Choc Suga" : "Aid me my fluffy brethren!"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), Summon_Callback)); } else if (ToggleGreaterExplosion && now > _NextGreaterExplosion) { _NextGreaterExplosion = now + GreaterExplosionInterval; Yell(Utility.RandomBool() ? "I FART IN YOUR GENERAL DIRECTION" : "ISN'T EASTER FUN?"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.0), GreaterExplosion_Callback)); } else if (TogglePoisonExplosion && now > _NextPoisonExplosion) { _NextPoisonExplosion = now + PoisonExplosionInterval; Yell("DIABETES!"); Animate(); CurrentSpell.Clear(); CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(3.5), PoisonExplosion_Callback)); } } }