protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted == null)
                {
                    return;
                }

                if (!(targeted is Item))
                {
                    from.SendMessage("This gem can only be used on weapons.");
                    return;
                }

                if (m_deed.Deleted)
                {
                    return;
                }

                if (!(targeted as Item).IsChildOf(from.Backpack))
                {
                    from.SendMessage("You can use this gem only on items in your backpack");
                    return;
                }

                if (targeted is BaseWeapon)
                {
                    BaseWeapon w = targeted as BaseWeapon;

                    if (w != null)
                    {
                        if (w.Attributes.WeaponDamage != 0)
                        {
                            w.Attributes.WeaponDamage = 0;
                            from.SendMessage("Gem absorbed items glow, and disintegrated with bright flash");
                        }
                        else
                        {
                            w.Attributes.WeaponDamage = 100;
                            from.SendMessage("Glow from gem was transfered to item, gem vanished into thin air");
                        }
                    }

                    Effects.PlaySound(from.Location, from.Map, 0x243);
                    Effects.SendMovingParticles(new Entity(Serial.Zero, new Point3D(from.X - 6, from.Y - 4, from.Z + 15), from.Map), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100);
                    Effects.SendTargetParticles(from, 0x375A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100);
                    Effects.SendTargetParticles(from, 0x375A, 35, 90, 0x00, 0x00, 9502, (EffectLayer)255, 0x100);
                    m_deed.Delete();
                }
                else
                {
                    from.SendMessage("Gem did not react to targeted object");
                }
            }
Ejemplo n.º 2
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted is BaseWeapon)
                {
                    BaseWeapon Weapon = targeted as BaseWeapon;

                    if (!from.InRange(((Item)targeted).GetWorldLocation(), 1))
                    {
                        from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
                    }

                    if (targeted is HellsHalberd || targeted is JudgementHammer || targeted is BlackWidow || targeted is BloodTentacle || targeted is ChuKoNu || targeted is DiamondKatana || targeted is DwarfWarHammer || targeted is DwarvenBattleAxe || targeted is GoblinClooba || targeted is LionheartAxe || targeted is SerpentsTongue || targeted is Wolfbane)
                    {
                        from.SendMessage("This gem cannot be used on that.");
                    }

                    else if ((((Item)targeted).Parent != null) && (((Item)targeted).Parent is Mobile))
                    {
                        from.SendMessage("You cannot enhance that in it's current location.");
                    }

                    else
                    {
                        int DestroyChance = Utility.Random(3);

                        if (DestroyChance > 0) // Success
                        {
                            if (Weapon.DamageLevel == WeaponDamageLevel.Regular)
                            {
                                Weapon.DamageLevel = WeaponDamageLevel.Ruin;
                                from.PlaySound(0x1F5);
                                from.SendMessage("Your weapon becomes more powerful.");
                                m_PerfectWeaponDamageGem.Delete();
                                return;
                            }

                            if (Weapon.DamageLevel == WeaponDamageLevel.Ruin)
                            {
                                Weapon.DamageLevel = WeaponDamageLevel.Might;
                                from.PlaySound(0x1F5);
                                from.SendMessage("Your weapon becomes more powerful.");
                                m_PerfectWeaponDamageGem.Delete();
                                return;
                            }

                            if (Weapon.DamageLevel == WeaponDamageLevel.Might)
                            {
                                Weapon.DamageLevel = WeaponDamageLevel.Force;
                                from.PlaySound(0x1F5);
                                from.SendMessage("Your weapon becomes more powerful.");
                                m_PerfectWeaponDamageGem.Delete();
                                return;
                            }

                            if (Weapon.DamageLevel == WeaponDamageLevel.Force)
                            {
                                Weapon.DamageLevel = WeaponDamageLevel.Power;
                                from.PlaySound(0x1F5);
                                from.SendMessage("Your weapon becomes more powerful.");
                                m_PerfectWeaponDamageGem.Delete();
                                return;
                            }

                            if (Weapon.DamageLevel == WeaponDamageLevel.Power)
                            {
                                Weapon.DamageLevel = WeaponDamageLevel.Vanq;
                                from.SendMessage("Your weapon becomes as powerful as possible!");
                                return;
                            }

                            if (Weapon.DamageLevel == WeaponDamageLevel.Vanq)
                            {
                                from.SendMessage("This weapon is already at full damage level.");
                                return;
                            }
                        }

                        else // Fail
                        {
                            from.SendMessage("You have failed to enhance the weapon!");
                            from.PlaySound(42);
                            m_PerfectWeaponDamageGem.Delete();
                        }
                    }
                }

                else
                {
                    from.SendMessage("You cannot enhance that.");
                }
            }