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"); } }
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."); } }