public void Target(IPoint3D p) { Map map = Caster.Map; SpellHelper.GetSurfaceTop(ref p); if (map == null || !map.CanSpawnMobile(p.X, p.Y, p.Z) || BaseShip.FindShipAt(p, map) != null) { Caster.SendLocalizedMessage(501942); // That location is blocked. } else if (SpellHelper.CheckTown(p, Caster) && CheckSequence()) { bool enhancedSpellcast = SpellHelper.IsEnhancedSpell(Caster, null, EnhancedSpellbookType.Summoner, false, true); BaseCreature summon = new BladeSpirits(); summon.StoreBaseSummonValues(); double duration = 2.0 * Caster.Skills[SkillName.Magery].Value; if (enhancedSpellcast) { duration *= SpellHelper.EnhancedSummonDurationMultiplier; summon.DamageMin = (int)((double)summon.DamageMin * SpellHelper.EnhancedSummonDamageMultiplier); summon.DamageMax = (int)((double)summon.DamageMax * SpellHelper.EnhancedSummonDamageMultiplier); summon.SetHitsMax((int)((double)summon.HitsMax * SpellHelper.EnhancedSummonHitPointsMultiplier)); summon.Hits = summon.HitsMax; } summon.SetDispelResistance(Caster, enhancedSpellcast, 0); int spellHue = Enhancements.GetMobileSpellHue(Caster, Enhancements.SpellType.BladeSpirits); summon.Hue = spellHue; BaseCreature.Summon(summon, false, Caster, new Point3D(p), 0x212, TimeSpan.FromSeconds(duration)); } FinishSequence(); }
public override void OnEnter(Mobile m) { if (!Controller.InUse) { return; } if (m is EnergyVortex) { EnergyVortex ev = (EnergyVortex)m; Controller.EVsAndBSsAdd(ev); } else if (m is BladeSpirits) { BladeSpirits bs = (BladeSpirits)m; Controller.EVsAndBSsAdd(bs); } m.Delta(MobileDelta.Noto); m.InvalidateProperties(); }
public void Target(IPoint3D p) { Map map = Caster.Map; SpellHelper.GetSurfaceTop(ref p); if (map == null || !map.CanSpawnMobile(p.X, p.Y, p.Z)) { Caster.SendLocalizedMessage(501942); // That location is blocked. } else if (SpellHelper.CheckTown(p, Caster) && CheckSequence()) { TimeSpan duration = TimeSpan.FromSeconds(120); BaseCreature summon = new BladeSpirits(); BaseCreature.Summon(summon, false, Caster, new Point3D(p), 0x212, duration); Effects.SendTargetParticles(summon, 0x3728, 10, 10, 0x13AA, (EffectLayer)255); } FinishSequence(); }