public override void OnCast() { if (CheckWSequence() && CheckSequence() && Caster.Weapon == Weapon) { Caster.PlaySound(0x64E); Caster.FixedEffect(0x37C4, 10, 14, 4, 3); Caster.SendMessage("You enchant the weapon."); int prim = (int)Caster.Skills[CastSkill].Value; int sec = (int)Caster.Skills[DamageSkill].Value; int value = (50 * (prim + sec)) / 240; double duration = ((double)(prim + sec) / 2.0) + 30.0; if (Table == null) { Table = new Dictionary <Mobile, EnchantmentTimer>(); } if (Table.ContainsKey(Caster)) { RemoveEnchantment(Caster); } Enhancement.SetValue(Caster, this.Attribute, value, ModName); if (prim >= 80 && sec >= 80) { Enhancement.SetValue(Caster, AosAttribute.SpellChanneling, 1, ModName); Enhancement.SetValue(Caster, AosAttribute.CastSpeed, -1, ModName); } Table[Caster] = new EnchantmentTimer(Caster, Weapon, this.Attribute, value, duration); BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.Enchant, 1080126, 1080129, TimeSpan.FromSeconds(duration), Caster, value)); Weapon.EnchantedWeilder = Caster; Weapon.InvalidateProperties(); } FinishSequence(); }
public override void OnCast() { if (CheckWSequence() && CheckSequence() && Caster.Weapon == Weapon) { Caster.PlaySound(0x64E); Caster.FixedEffect(0x37C4, 10, 14, 4, 3); Caster.SendMessage("You enchant the weapon."); int prim = (int)Caster.Skills[CastSkill].Value; int sec = (int)Caster.Skills[DamageSkill].Value; int value = (50 * (prim + sec)) / 240; double duration = Math.Max(30, (double)(prim + sec) / 2.0); if (Table == null) { Table = new Dictionary <Mobile, EnchantmentTimer>(); } if (Table.ContainsKey(Caster)) { RemoveEnchantment(Caster); } Enhancement.SetValue(Caster, this.Attribute, value, ModName); if ((Weapon.ArtifactRarity > 0 || Weapon.Name != null) && Weapon.Attributes.CastSpeed >= 0) { Enhancement.SetValue(Caster, AosAttribute.CastSpeed, -1, ModName + "CastSpeed"); } Table[Caster] = new EnchantmentTimer(Caster, Weapon, this.Attribute, value, duration); Weapon.EnchantedWeilder = Caster; Weapon.InvalidateProperties(); } FinishSequence(); }
public override void OnCast() { if (CheckWSequence() && CheckSequence() && Caster.Weapon == Weapon) { Caster.PlaySound(0x64E); Caster.FixedEffect(0x37C4, 10, 14, 4, 3); Caster.SendMessage("You enchant the weapon."); int prim = (int)Caster.Skills[CastSkill].Value; int sec = (int)Caster.Skills[DamageSkill].Value; int value = (50 * (prim + sec)) / 240; double duration = ((double)(prim + sec) / 2.0) + 30.0; if (Table == null) Table = new Dictionary<Mobile, EnchantmentTimer>(); if (Table.ContainsKey(Caster)) RemoveEnchantment(Caster); Enhancement.SetValue(Caster, this.Attribute, value, ModName); if (prim >= 80 && sec >= 80) { Enhancement.SetValue(Caster, AosAttribute.SpellChanneling, 1, ModName); Enhancement.SetValue(Caster, AosAttribute.CastSpeed, -1, ModName); } Table[Caster] = new EnchantmentTimer(Caster, Weapon, this.Attribute, value, duration); Weapon.EnchantedWeilder = Caster; Weapon.InvalidateProperties(); } FinishSequence(); }