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 ResearchEnchantStone) { ResearchEnchantStone orb = (ResearchEnchantStone)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, int spellID) { if (o is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)o; if (Caster.Backpack.FindItemByType(typeof(ResearchEnchantStone)) != null) { DoFizzle(); } else if (!Caster.CanSee(weapon)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (!Caster.CanBeginAction(typeof(ResearchEnchant))) { 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()) { ResearchEnchantStone orb = new ResearchEnchantStone(); Caster.AddToBackpack(orb); Server.Misc.Research.ConsumeScroll(Caster, true, spellID, false); 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; weapon.Name = "" + name + " [enchanted]"; weapon.Hue = 0x489; weapon.Attributes.WeaponDamage += 100; Caster.PlaySound(0x1F7); Caster.FixedParticles(0x3039, 9, 32, 5008, Server.Items.CharacterDatabase.GetMySpellHue(Caster, 0x85E), 0, EffectLayer.Waist); int val = (int)(DamagingSkill(Caster) / 2); if (val > 120) { val = 120; } new InternalTimer(Caster, TimeSpan.FromMinutes(val)).Start(); } } else { Caster.SendMessage("You can only enchant weapons with this spell."); } FinishSequence(); }