public static void EndEffects(Mobile m) { int serial = 0; string name = ""; int hue = 0; int dmg = 0; ArrayList targets = new ArrayList(); foreach (Item item in World.Items.Values) { if (item is EnchantSpellStone) { EnchantSpellStone orb = (EnchantSpellStone)item; if ((orb.EnchantOwner == m && m != null) || m == null) { serial = orb.EnchantSerial; name = orb.EnchantName; hue = orb.EnchantHue; dmg = orb.EnchantDmg; targets.Add(item); } } } for (int i = 0; i < targets.Count; ++i) { Item item = ( Item )targets[i]; item.Delete(); } foreach (Item item in World.Items.Values) { if (item.Serial == serial && item is BaseWeapon) { if ((item.Name).Contains("[enchanted]")) { BaseWeapon w = (BaseWeapon)item; w.Hue = hue; w.Name = name; w.Attributes.WeaponDamage = dmg; } } } if (m != null) { m.PlaySound(0x1F8); } }
public void Target(object o) { if (o is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)o; if (Caster.Backpack.FindItemByType(typeof(EnchantSpellStone)) != null) { DoFizzle(); } else if (!Caster.CanSee(weapon)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (!Caster.CanBeginAction(typeof(EnchantSpell))) { Caster.SendLocalizedMessage(1005559); // This spell is already in effect. } else if (!weapon.IsChildOf(Caster.Backpack)) { Caster.SendMessage("The weapon must be in your pack to enchant."); } else if (CheckSequence()) { EnchantSpellStone orb = new EnchantSpellStone(); Caster.AddToBackpack(orb); string name = weapon.Name; if (weapon.Name != null && weapon.Name != "") { name = weapon.Name; } if (name == null) { name = MorphingItem.AddSpacesToSentence((weapon.GetType()).Name); } orb.EnchantOwner = Caster; orb.EnchantSerial = weapon.Serial; orb.EnchantName = name; orb.EnchantDmg = weapon.Attributes.WeaponDamage; orb.EnchantHue = weapon.Hue; orb.EnchantSlayer1 = weapon.Slayer; orb.EnchantSlayer2 = weapon.Slayer2; weapon.Name = "" + name + " [enchanted]"; weapon.Hue = 0x9C4; weapon.Attributes.WeaponDamage += 50; weapon.Slayer = SlayerName.Silver; weapon.Slayer2 = SlayerName.Exorcism; Caster.FixedParticles(0x375A, 9, 20, 5027, EffectLayer.Waist); Caster.PlaySound(0x1F7); int val = (int)Caster.Skills[SkillName.Healing].Value; if (val > 100) { val = 100; } new InternalTimer(Caster, TimeSpan.FromMinutes(val)).Start(); } } else { Caster.SendMessage("You can only enchant weapons with this spell."); } FinishSequence(); }