Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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();
        }