private void Mirage() { TeiravonMobile caster = (TeiravonMobile)this.ControlMaster; if (caster == null) { caster = (TeiravonMobile)this.SummonMaster; } if (caster == null) { return; } if (!caster.Warmode) { return; } MirrorImage.AddClone(caster); caster.FixedParticles(0x376A, 1, 14, 0x13B5, EffectLayer.Waist); caster.PlaySound(0x594); new Clone(caster).MoveToWorld(caster.Location, caster.Map); return; }
public static void ShapeshiftFunctions(bool shift, int slot, TeiravonMobile player) { int slotnumber = slot - 1; int difficulty = player.ShapeshiftSlotLevel[slotnumber]; int formhue = player.ShapeshiftSlotHue[slotnumber]; string formname = player.ShapeshiftSlotName[slotnumber]; DateTime ShapeshiftTime; if (shift) { player.DruidForm = player.ShapeshiftSlot[slotnumber]; player.DruidFormGroup = player.ShapeshiftSlotLevel[slotnumber]; if (!player.Shapeshifted) { player.ShapeshiftHue = player.Hue; } if (player.DruidFormGroup == 5) { player.Send(Server.Network.SpeedMode.Run); } player.FixedParticles(0x377A, 1, 50, 9949, 1153, 0, EffectLayer.Head); player.SendMessage("You begin to transform into an animal."); player.Paralyze(TimeSpan.FromSeconds(3.0)); ShapeshiftTime = DateTime.Now + TimeSpan.FromSeconds(3.0); player.NameMod = player.ShapeshiftSlotName[slotnumber]; } else { if (player.DruidFormGroup == 5) { player.Send(Server.Network.SpeedMode.Disabled); } player.DruidForm = 0; player.DruidFormGroup = -1; player.SendMessage("You begin transforming back to normal."); player.Paralyze(TimeSpan.FromSeconds(2.0)); player.NameMod = null; ShapeshiftTime = DateTime.Now + TimeSpan.FromSeconds(2.0); } Timer m_Timer = new CustomTransformTimer(player, shift, slotnumber, difficulty, formhue, formname, ShapeshiftTime); m_Timer.Start(); }
protected override void OnTick() { m_Summoner.FixedParticles(0x3779, 10, 100, 9502, 67, 7, EffectLayer.Head); m_Summoner.PlaySound(0x24A); m_Summoner.RevealingAction(); if (!(m_Summoner.Mounted) && (m_Summoner.Body.IsHuman)) { m_Summoner.Animate(266, 7, 1, true, false, 0); } if (RunCount < MaxCount) { RunCount++; Timer m_EffectTimer = new EffectTimer(m_Summoner, RunCount, MaxCount, DateTime.Now + TimeSpan.FromSeconds(3.0)); m_EffectTimer.Start(); } }
public static void GivePrayer(TeiravonMobile from) { TeiravonMobile Caster = from; int min, max; min = 1 + (int)(Caster.Skills[SkillName.SpiritSpeak].Value * 0.25); max = min + Caster.PlayerLevel / 2; if (Caster.CheckSkill(SkillName.SpiritSpeak, 0.0, 120.0)) { Caster.Mana += Utility.RandomMinMax(min, max); Caster.PublicOverheadMessage(MessageType.Emote, 0x3B2, true, "*Bows their head*"); Caster.PlaySound(0x103); Caster.FixedParticles(0x375A, 1, 15, 9501, 391, 4, EffectLayer.Head); Caster.Freeze(TimeSpan.FromSeconds(1)); return; } else { Caster.SendMessage("You are unable to clear your mind for prayer."); return; } }
public override void OnCast() { if (CheckSequence()) { if (Caster is TeiravonMobile) { TeiravonMobile tm_caster = (TeiravonMobile)Caster; if (tm_caster.IsMage()) { tm_caster.FixedParticles(0x375A, 9, 20, 5027, EffectLayer.Waist); tm_caster.PlaySound(0x1F7); int bonus = tm_caster.PlayerLevel * 5; /* * double spelllength = (tm_caster.Skills[SkillName.Magery].Value / 10) + 5.0; * tm_caster.AddSkillMod( new TimedSkillMod( SkillName.MagicResist, true, bonus, TimeSpan.FromMinutes( spelllength ) ) ); * new InternalTimer( Caster ).Start(); */ tm_caster.VirtualArmorMod = (int)GetAosDamage(bonus, 2, 10); string shield = tm_caster.VirtualArmorMod.ToString(); tm_caster.LocalOverheadMessage(MessageType.Emote, 90, true, shield); } else { ArrayList targets = new ArrayList(); Map map = Caster.Map; if (map != null) { IPooledEnumerable eable = map.GetMobilesInRange(Caster.Location, 4); foreach (Mobile m in eable) { if (Caster.CanBeBeneficial(m, false)) { targets.Add(m); } } eable.Free(); } Party party = Party.Get(Caster); for (int i = 0; i < targets.Count; ++i) { Mobile m = (Mobile)targets[i]; if (m == Caster || (party != null && party.Contains(m))) { if (!Spells.Fourth.ArchProtectionSpell.Registry.ContainsKey(m)) { Caster.DoBeneficial(m); m.PlaySound(0x1E9); m.FixedParticles(0x375A, 9, 20, 5016, EffectLayer.Waist); Spells.Fourth.ArchProtectionSpell.Registry.Add(m, 1); } } } } } } }