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