public static void Callback(Mobile from, object target, object craftState) { string errorMessage = null; CraftState cs = craftState as CraftState; try { if (target is BaseArmor) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseArmor)target, AosAttribute.ReflectPhysical, m_Minimum, m_Maximum); } else if (target is BaseHat) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseHat)target, AosAttribute.ReflectPhysical, m_Minimum, m_Maximum); } else { errorMessage = SpellCraft.AssembleMessage(SpellCraft.MsgNums.ArmorComma, SpellCraft.MsgNums.ShieldsComma, SpellCraft.MsgNums.AndHats); } } catch (SpellCraftException e) { errorMessage = e.ToString(); } finally { if (null != errorMessage) { from.SendMessage(errorMessage); } } }
public static void Callback(Mobile from, object target, object craftState) { string errorMessage = null; CraftState cs = craftState as CraftState; try { if (target is BaseWeapon) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseWeapon)target, AosWeaponAttribute.HitLowerDefend, m_Minimum, m_Maximum, 2); } else { errorMessage = SpellCraft.AssembleMessage(SpellCraft.MsgNums.Weapons); } } catch (SpellCraftException e) { errorMessage = e.ToString(); } finally { if (null != errorMessage) { from.SendMessage(errorMessage); } } }
public static void Callback(Mobile from, object target, object craftState) { string errorMessage = null; CraftState cs = craftState as CraftState; try { if (target is BaseWeapon) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseWeapon)target, AosAttribute.WeaponDamage, m_Minimum, m_Maximum); } else if (target is BaseJewel) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseJewel)target, AosAttribute.WeaponDamage, m_Minimum, m_Maximum); } else { errorMessage = SpellCraft.AssembleMessage(SpellCraft.MsgNums.ArmorComma, SpellCraft.MsgNums.HatsComma, SpellCraft.MsgNums.AndJewelry); } } catch (SpellCraftException e) { errorMessage = e.ToString(); } finally { if (null != errorMessage) { from.SendMessage(errorMessage); } } }
public static void Callback(Mobile from, object target, object craftState) { string errorMessage = null; CraftState cs = craftState as CraftState; try { if (target is BaseWeapon) { SpellCraft.ApplySlayerAttribute(from, cs.Book, cs.Id, (BaseWeapon)target); } else if (target is BaseInstrument) { SpellCraft.ApplySlayerAttribute(from, cs.Book, cs.Id, (BaseInstrument)target); } else { errorMessage = SpellCraft.AssembleMessage(SpellCraft.MsgNums.Weapons, SpellCraft.MsgNums.AndInstruments); } } catch (SpellCraftException e) { errorMessage = e.ToString(); } finally { if (null != errorMessage) { from.SendMessage(errorMessage); } } }
public static void Callback(Mobile from, object target, object craftState) { string errorMessage = null; CraftState cs = craftState as CraftState; try { if (target is BaseShield) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseShield)target, AosAttribute.SpellChanneling, m_Minimum, m_Maximum); SpellCraft.AdjustFastCast((BaseShield)target); // Chance for a penalty to fc } if (target is BaseWeapon) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseWeapon)target, AosAttribute.SpellChanneling, m_Minimum, m_Maximum); SpellCraft.AdjustFastCast((BaseWeapon)target); // Chance for a penalty to fc } else { errorMessage = SpellCraft.AssembleMessage(SpellCraft.MsgNums.Shields, SpellCraft.MsgNums.AndWeapons); } } catch (SpellCraftException e) { errorMessage = e.ToString(); } finally { if (null != errorMessage) { from.SendMessage(errorMessage); } } }
public GuardianOfTheMagics() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = m_Names[Utility.Random(m_Names.Length)]; Title = m_Titles[Utility.Random(m_Titles.Length)]; Body = 0x190; Hue = Utility.RandomSkinHue(); SetStr(90, 100); SetDex(50, 75); SetInt(150, 250); SetHits(900, 1100); SetDamage(12, 18); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 50, 70); SetResistance(ResistanceType.Fire, 50, 70); SetResistance(ResistanceType.Cold, 50, 70); SetResistance(ResistanceType.Poison, 50, 70); SetResistance(ResistanceType.Energy, 50, 70); SetSkill(SkillName.EvalInt, 95.0, 120.0); SetSkill(SkillName.Magery, 95.0, 120.0); SetSkill(SkillName.Meditation, 95.0, 100.0); SetSkill(SkillName.MagicResist, 100.0, 120.0); SetSkill(SkillName.Tactics, 95.0, 120.0); SetSkill(SkillName.Wrestling, 95.0, 120.0); Fame = 13000; Karma = -13000; VirtualArmor = 70; int hue = Utility.RandomNeutralHue(); AddItem(new Robe(hue)); AddItem(new Sandals()); AddItem(new WizardsHat(hue)); PackGold(400, 600); PackMagicItems(2, 4, 0.45, 0.35); // Pack magic jewels and possibly SpellCraft items PackItem(new MagicJewel(SpellCraftConfig.GuardianOfTheMagicsMagicJewelSpawn)); if (Utility.RandomDouble() <= SpellCraftConfig.GuardianOfTheMagicsBookChance) { PackItem(new BookOfSpellCrafts()); } if (Utility.RandomDouble() <= SpellCraftConfig.GuardianOfTheMagicsJewelChance) { PackItem(SpellCraft.RandomCraft()); } }
public static void Callback(Mobile from, object target, object craftState) { string errorMessage = null; CraftState cs = craftState as CraftState; try { if (target is BaseArmor) { SpellCraft.ApplyResistance(from, cs.Book, cs.Id, (BaseArmor)target, ResistanceType.Physical, m_Minimum, m_Maximum); } else if (target is BaseWeapon) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseWeapon)target, AosWeaponAttribute.ResistPhysicalBonus, m_Minimum, m_Maximum); } else if (target is BaseHat) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseHat)target, AosElementAttribute.Physical, m_Minimum, m_Maximum); } else if (target is BaseJewel) { SpellCraft.ApplyAttribute(from, cs.Book, cs.Id, (BaseJewel)target, AosElementAttribute.Physical, m_Minimum, m_Maximum); } else { errorMessage = SpellCraft.AssembleMessage(SpellCraft.MsgNums.ArmorComma, SpellCraft.MsgNums.ShieldsComma, SpellCraft.MsgNums.WeaponsComma, SpellCraft.MsgNums.HatsComma, SpellCraft.MsgNums.AndJewelry); } } catch (SpellCraftException e) { errorMessage = e.ToString(); } finally { if (null != errorMessage) { from.SendMessage(errorMessage); } } }
public override JSONObject Serialize() { JSONObject obj = new JSONObject(); obj.Add(cAppraise, Appraise.Serialize()); obj.Add(cBalance, Balance.Serialize()); obj.Add(cBluff, Bluff.Serialize()); obj.Add(cClimb, Climb.Serialize()); obj.Add(cConcentration, Concentration.Serialize()); obj.Add(cDecipherScript, DecipherScript.Serialize()); obj.Add(cDiplomacy, Diplomacy.Serialize()); obj.Add(cDisableDevice, DisableDevice.Serialize()); obj.Add(cDisguise, Disguise.Serialize()); obj.Add(cEscapeArtist, EscapeArtist.Serialize()); obj.Add(cForgery, Forgery.Serialize()); obj.Add(cGatherInformation, GatherInformation.Serialize()); obj.Add(cHandleAnimal, HandleAnimal.Serialize()); obj.Add(cHeal, Heal.Serialize()); obj.Add(cHide, Hide.Serialize()); obj.Add(cIntimidate, Intimidate.Serialize()); obj.Add(cJump, Jump.Serialize()); obj.Add(cListen, Listen.Serialize()); obj.Add(cMoveSilently, MoveSilently.Serialize()); obj.Add(cOpenLock, OpenLock.Serialize()); obj.Add(cRide, Ride.Serialize()); obj.Add(cSearch, Search.Serialize()); obj.Add(cSenseMotive, SenseMotive.Serialize()); obj.Add(cSleightOfHand, SleightOfHand.Serialize()); obj.Add(cSpellCraft, SpellCraft.Serialize()); obj.Add(cSpot, Spot.Serialize()); obj.Add(cSurvival, Survival.Serialize()); obj.Add(cSwim, Swim.Serialize()); obj.Add(cTumble, Tumble.Serialize()); obj.Add(cUseMagicDevice, UseMagicDevice.Serialize()); obj.Add(cUseRope, UseRope.Serialize()); return(obj); }
public override void OnSingleClick(Mobile from) { this.LabelTo(from, "Spellcraft Jewel : {0}", SpellCraft.GetCraftName(m_CraftID)); }
public override void GetProperties(ObjectPropertyList list) { base.GetProperties(list); list.Add(1050045, " \t" + SpellCraft.GetCraftName(m_CraftID) + "\t "); }
public override void OnResponse(NetState state, RelayInfo info) { Mobile from = state.Mobile; int craft = info.ButtonID - 1; if (craft < 0) { return; } if (!SpellCraftConfig.CraftEnabled[craft]) { from.SendMessage("This craft is currently not enabled."); return; } if (!SpellCraft.SufficientSkillToCraft(from)) { from.SendMessage("You must have at least {0} alchemy and {1} inscription to use this craft.", SpellCraftConfig.MinimumAlchemy, SpellCraftConfig.MinimumInscription); return; } from.SendMessage("Select the item to place this spellcraft on."); switch (craft) { case 0: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(BonusStr.Callback), new CraftState(m_Book, 0)); break; case 1: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(BonusDex.Callback), new CraftState(m_Book, 1)); break; case 2: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(BonusInt.Callback), new CraftState(m_Book, 2)); break; case 3: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(BonusHits.Callback), new CraftState(m_Book, 3)); break; case 4: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(BonusStam.Callback), new CraftState(m_Book, 4)); break; case 5: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(BonusMana.Callback), new CraftState(m_Book, 5)); break; case 6: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(PhysicalResist.Callback), new CraftState(m_Book, 6)); break; case 7: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(FireResist.Callback), new CraftState(m_Book, 7)); break; case 8: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(ColdResist.Callback), new CraftState(m_Book, 8)); break; case 9: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(PoisonResist.Callback), new CraftState(m_Book, 9)); break; case 10: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(EnergyResist.Callback), new CraftState(m_Book, 10)); break; case 11: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(RegenHits.Callback), new CraftState(m_Book, 11)); break; case 12: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(RegenMana.Callback), new CraftState(m_Book, 12)); break; case 13: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(RegenStam.Callback), new CraftState(m_Book, 13)); break; case 14: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(CastRecovery.Callback), new CraftState(m_Book, 14)); break; case 15: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(CastSpeed.Callback), new CraftState(m_Book, 15)); break; case 16: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(LowerManaCost.Callback), new CraftState(m_Book, 16)); break; case 17: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(LowerRegCost.Callback), new CraftState(m_Book, 17)); break; case 18: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(MageArmor.Callback), new CraftState(m_Book, 18)); break; case 19: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(MageWeapon.Callback), new CraftState(m_Book, 19)); break; case 20: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(SpellChanneling.Callback), new CraftState(m_Book, 20)); break; case 21: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(SpellDamage.Callback), new CraftState(m_Book, 21)); break; case 22: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitColdArea.Callback), new CraftState(m_Book, 22)); break; case 23: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitEnergyArea.Callback), new CraftState(m_Book, 23)); break; case 24: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitFireArea.Callback), new CraftState(m_Book, 24)); break; case 25: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitPhysicalArea.Callback), new CraftState(m_Book, 25)); break; case 26: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitPoisonArea.Callback), new CraftState(m_Book, 26)); break; case 27: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitDispel.Callback), new CraftState(m_Book, 27)); break; case 28: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitFireball.Callback), new CraftState(m_Book, 28)); break; case 29: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitHarm.Callback), new CraftState(m_Book, 29)); break; case 30: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitLightning.Callback), new CraftState(m_Book, 30)); break; case 31: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitMagicArrow.Callback), new CraftState(m_Book, 31)); break; case 32: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitLowerAttack.Callback), new CraftState(m_Book, 32)); break; case 33: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitLowerDefend.Callback), new CraftState(m_Book, 33)); break; case 34: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitLeechHits.Callback), new CraftState(m_Book, 34)); break; case 35: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitLeechMana.Callback), new CraftState(m_Book, 35)); break; case 36: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(HitLeechStam.Callback), new CraftState(m_Book, 36)); break; case 37: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(UseBestSkill.Callback), new CraftState(m_Book, 37)); break; case 38: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(WeaponDamage.Callback), new CraftState(m_Book, 38)); break; case 39: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(WeaponSpeed.Callback), new CraftState(m_Book, 39)); break; case 40: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(AttackChance.Callback), new CraftState(m_Book, 40)); break; case 41: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(DefendChance.Callback), new CraftState(m_Book, 41)); break; case 42: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(EnhancePotions.Callback), new CraftState(m_Book, 42)); break; case 43: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(LowerStatReq.Callback), new CraftState(m_Book, 43)); break; case 44: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(Luck.Callback), new CraftState(m_Book, 44)); break; case 45: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(ReflectPhysical.Callback), new CraftState(m_Book, 45)); break; case 46: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(SelfRepair.Callback), new CraftState(m_Book, 46)); break; case 47: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(NightSight.Callback), new CraftState(m_Book, 47)); break; case 48: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(Slayer.Callback), new CraftState(m_Book, 48)); break; case 49: from.BeginTarget(1, false, TargetFlags.None, new TargetStateCallback(Durability.Callback), new CraftState(m_Book, 49)); break; default: break; } // Retrieve the current page from the button that was used to get here, and reopen the book. List <Server.Gumps.GumpEntry> entries = Entries; int page = 1; for (int i = entries.Count - 1; i >= 0; i--) { GumpEntry e = entries[i]; if (e is GumpButton && ((GumpButton)e).ButtonID == craft + 1) { page = ((GumpButton)e).Param; break; } } from.SendGump(new SpellCraftBook(from, m_Book, page)); }