GetRandomSlayer() публичный статический Метод

public static GetRandomSlayer ( ) : SlayerName
Результат SlayerName
Пример #1
0
 public Pincer()
 {
     Hue = 2500;
     Attributes.BalancedWeapon = 1;
     Slayer2 = BaseRunicTool.GetRandomSlayer();
     SetSkillBonuses.SetValues(0, SkillName.Lumberjacking, 10);
     WeaponAttributes.HitLeechHits = 87;
     Attributes.RegenStam          = 6;
     Attributes.RegenMana          = 6;
     Attributes.WeaponDamage       = 40;
 }
Пример #2
0
        public CaptainJohnesBlade()
        {
            this.Slayer2 = BaseRunicTool.GetRandomSlayer();
            this.Attributes.AttackChance       = 15;
            this.Attributes.DefendChance       = 15;
            this.Attributes.WeaponSpeed        = 30;
            this.Attributes.WeaponDamage       = 60;
            this.ExtendedWeaponAttributes.Bane = 1;

            this.Hue = 2124;
        }
Пример #3
0
        public GargishCaptainJohnesBlade()
        {
            Slayer2 = BaseRunicTool.GetRandomSlayer();
            Attributes.AttackChance       = 15;
            Attributes.DefendChance       = 15;
            Attributes.WeaponSpeed        = 30;
            Attributes.WeaponDamage       = 60;
            ExtendedWeaponAttributes.Bane = 1;

            Hue = 2124;
        }
Пример #4
0
 public GargishPincer()
 {
     this.Hue = 2500;
     // TODO attributes Balanced
     this.Slayer2 = BaseRunicTool.GetRandomSlayer();
     this.SetSkillBonuses.SetValues(0, SkillName.Lumberjacking, 10);
     this.WeaponAttributes.HitLeechHits = 87;
     this.Attributes.RegenStam          = 6;
     this.Attributes.RegenMana          = 6;
     this.Attributes.WeaponDamage       = 40;
 }
Пример #5
0
        public Craven()
        {
            this.Slayer2 = BaseRunicTool.GetRandomSlayer();
            this.WeaponAttributes.HitLowerAttack = 40;
            this.Attributes.WeaponSpeed          = 26;
            this.Attributes.WeaponDamage         = 35;
            this.Attributes.LowerManaCost        = 8;
            // TODO attributes Balanced

            this.Hue = 2124;
        }
Пример #6
0
        public Craven()
        {
            this.Slayer2 = BaseRunicTool.GetRandomSlayer();
            this.WeaponAttributes.HitLowerAttack = 40;
            this.Attributes.WeaponSpeed          = 26;
            this.Attributes.WeaponDamage         = 35;
            this.Attributes.LowerManaCost        = 8;

            Attributes.BalancedWeapon = 1;

            this.Hue = 1365;
        }
Пример #7
0
 public GargishEquivocation()
 {
     Attributes.BalancedWeapon = 1;
     Slayer2 = BaseRunicTool.GetRandomSlayer();
     Attributes.AttackChance   = 10;
     Attributes.RegenHits      = 6;
     Attributes.Brittle        = 1;
     Attributes.WeaponSpeed    = 35;
     Attributes.WeaponDamage   = 50;
     WeaponAttributes.HitCurse = 15;
     Hue = 1365;
 }
        public int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue)
        {
            Quality = (SpellbookQuality)quality;

            if (makersMark)
            {
                Crafter = from;
            }

            int magery = from.Skills.Magery.BaseFixedPoint;

            if (magery >= 800)
            {
                int[] propertyCounts;
                int   minIntensity;
                int   maxIntensity;

                if (magery >= 1000)
                {
                    propertyCounts = m_GrandPropertyCounts;
                    minIntensity   = 55;
                    maxIntensity   = 75;
                }
                else if (magery >= 900)
                {
                    propertyCounts = m_MasterPropertyCounts;
                    minIntensity   = 25;
                    maxIntensity   = 45;
                }
                else
                {
                    propertyCounts = m_AdeptPropertyCounts;
                    minIntensity   = 0;
                    maxIntensity   = 15;
                }

                int propertyCount = propertyCounts[Utility.Random(propertyCounts.Length)];

                BaseRunicTool.ApplyAttributesTo(this, true, 0, propertyCount, minIntensity, maxIntensity);

                SlayerName slayer = SlayerName.None;

                if (Core.SE && 0.05 > Utility.RandomDouble())
                {
                    slayer = BaseRunicTool.GetRandomSlayer();
                }

                m_Slayer = slayer;
            }

            return(quality);
        }
Пример #9
0
        public GargishEquivocation()
        {
            // TODO attributes Balanced
            this.Slayer2 = BaseRunicTool.GetRandomSlayer();
            this.Attributes.AttackChance   = 10;
            this.Attributes.RegenHits      = 6;
            this.Attributes.Brittle        = 1;
            this.Attributes.WeaponSpeed    = 35;
            this.Attributes.WeaponDamage   = 50;
            this.WeaponAttributes.HitCurse = 15;

            this.Hue = 2124;
        }
Пример #10
0
        public Equivocation()
        {
            this.Attributes.BalancedWeapon = 1;

            this.Slayer2 = BaseRunicTool.GetRandomSlayer();
            this.Attributes.AttackChance   = 10;
            this.Attributes.RegenHits      = 6;
            this.Attributes.Brittle        = 1;
            this.Attributes.WeaponSpeed    = 35;
            this.Attributes.WeaponDamage   = 50;
            this.WeaponAttributes.HitCurse = 15;

            this.Hue = 1365;
        }
Пример #11
0
        public void OnTargetGears(Mobile from, object targ)
        {
            Gears g = targ as Gears;

            if (g == null || !g.IsChildOf(from.Backpack))
            {
                from.SendLocalizedMessage(1010623);                   // You must use gears.
            }
            else if (IsModified)
            {
                from.SendMessage("That has already been modified.");
            }
            else if (!IsChildOf(from.Backpack))
            {
                from.SendMessage("This must be in your backpack to modify it.");
            }
            else if (from.Skills[SkillName.Fletching].Base < 100.0)
            {
                from.SendMessage("Only a grandmaster bowcrafter can modify this weapon.");
            }
            else
            {
                g.Consume();

                Hue = 0x453;

                Slayer = BaseRunicTool.GetRandomSlayer();

                if (0.05 > Utility.RandomDouble())
                {
                    Slayer2 = BaseRunicTool.GetRandomSlayer();
                }

                from.SendMessage("You modify it.");
            }
        }
Пример #12
0
        public override void OnDoubleClick(Mobile from)
        {
            if (from.Blessed)
            {
                from.SendMessage("You cannot look through that while in this state.");
            }
            else if (!from.InRange(GetWorldLocation(), 3))
            {
                from.SendMessage("You will have to get closer to it!");
            }
            else if (m_Uses < 5)
            {
                m_Uses++;
                if (Server.Misc.GetPlayerInfo.LuckyPlayer(from.Luck) && Utility.RandomBool())
                {
                    m_Uses--;
                }

                from.PlaySound(0x2E5);
                from.SendMessage("You pull something from the treasure hoard!");

                Item item = null;

                switch (Utility.Random(17))
                {
                case 0:
                    item = Loot.RandomArty();
                    break;

                case 1:
                    item = DungeonLoot.RandomSlayer();
                    break;

                case 2:
                    item = Loot.RandomSArty();
                    break;

                case 3:
                    if (Server.Misc.GetPlayerInfo.EvilPlay(from) == true && Utility.RandomMinMax(0, 10) == 10)
                    {
                        item = DungeonLoot.RandomEvil();
                    }
                    else
                    {
                        item = Loot.RandomRelic();
                        if (item is DDRelicWeapon && Server.Misc.GetPlayerInfo.OrientalPlay(from) == true)
                        {
                            Server.Items.DDRelicWeapon.MakeOriental(item);
                        }
                        else if (item is DDRelicStatue && Server.Misc.GetPlayerInfo.OrientalPlay(from) == true)
                        {
                            Server.Items.DDRelicStatue.MakeOriental(item);
                        }
                        else if (item is DDRelicBanner && item.ItemID != 0x2886 && item.ItemID != 0x2887 && Server.Misc.GetPlayerInfo.OrientalPlay(from) == true)
                        {
                            Server.Items.DDRelicBanner.MakeOriental(item);
                        }
                    }
                    break;

                case 4:
                    item = DungeonLoot.RandomRare();
                    if (item.Stackable == true)
                    {
                        item.Amount = Utility.RandomMinMax(5, 20);
                    }
                    break;

                case 5:
                    item = DungeonLoot.RandomLoreBooks();
                    break;

                case 6:
                    if (Utility.Random(4) != 1)
                    {
                        item = Loot.RandomScroll(0, 7, SpellbookType.Regular);
                    }
                    else
                    {
                        item = Loot.RandomScroll(0, 17, SpellbookType.Necromancer);
                    }
                    break;

                case 7:
                    int luckMod = from.Luck; if (luckMod > 2000)
                    {
                        luckMod = 2000;
                    }

                    if ((Region.Find(from.Location, from.Map)).IsPartOf("the Ancient Crash Site") ||
                        (Region.Find(from.Location, from.Map)).IsPartOf("the Ancient Sky Ship"))
                    {
                        item = new DDXormite((luckMod + Utility.RandomMinMax(333, 666)));
                    }
                    else if (Worlds.GetMyWorld(from.Map, from.Location, from.X, from.Y) == "the Mines of Morinia")
                    {
                        item = new Crystals((luckMod + Utility.RandomMinMax(200, 400)));
                    }
                    else if (Worlds.GetMyWorld(from.Map, from.Location, from.X, from.Y) == "the Underworld")
                    {
                        item = new DDJewels((luckMod + Utility.RandomMinMax(500, 1000)));
                    }
                    else
                    {
                        item = new Gold((luckMod + Utility.RandomMinMax(1000, 2000)));
                    }
                    break;

                case 8:
                case 9:
                case 10:
                case 11:
                    item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(Server.LootPackEntry.IsInIslesDread(from));
                    ContainerFunctions.LootMutate(from, Server.LootPack.GetRegularLuckChance(from), item, from.Backpack, Utility.RandomMinMax(5, 10));
                    break;

                case 12:
                    item = Loot.RandomInstrument();

                    int attributeCount;
                    int min, max;
                    Server.Misc.ContainerFunctions.GetRandomAOSStats(out attributeCount, out min, out max, 6);

                    BaseInstrument instr = (BaseInstrument)item;

                    int cHue = 0;
                    int cUse = 0;

                    switch (instr.Resource)
                    {
                    case CraftResource.AshTree: cHue = MaterialInfo.GetMaterialColor("ash", "", 0); cUse = 20; break;

                    case CraftResource.CherryTree: cHue = MaterialInfo.GetMaterialColor("cherry", "", 0); cUse = 40; break;

                    case CraftResource.EbonyTree: cHue = MaterialInfo.GetMaterialColor("ebony", "", 0); cUse = 60; break;

                    case CraftResource.GoldenOakTree: cHue = MaterialInfo.GetMaterialColor("gold", "", 0); cUse = 80; break;

                    case CraftResource.HickoryTree: cHue = MaterialInfo.GetMaterialColor("hickory", "", 0); cUse = 100; break;

                    case CraftResource.MahoganyTree: cHue = MaterialInfo.GetMaterialColor("mahogany", "", 0); cUse = 120; break;

                    case CraftResource.DriftwoodTree: cHue = MaterialInfo.GetMaterialColor("driftwood", "", 0); cUse = 120; break;

                    case CraftResource.OakTree: cHue = MaterialInfo.GetMaterialColor("oak", "", 0); cUse = 140; break;

                    case CraftResource.PineTree: cHue = MaterialInfo.GetMaterialColor("pine", "", 0); cUse = 160; break;

                    case CraftResource.RosewoodTree: cHue = MaterialInfo.GetMaterialColor("rosewood", "", 0); cUse = 180; break;

                    case CraftResource.WalnutTree: cHue = MaterialInfo.GetMaterialColor("walnute", "", 0); cUse = 200; break;
                    }

                    if (!(Server.Misc.Worlds.IsOnSpaceship(from.Location, from.Map)))
                    {
                        if (cHue > 0)
                        {
                            item.Hue = cHue;
                        }
                        else if (Utility.RandomMinMax(1, 4) == 1)
                        {
                            item.Hue = Utility.RandomColor(0);
                        }
                        Server.Misc.MorphingTime.MakeOrientalItem(item, from);
                        item.Name = LootPackEntry.MagicItemName(item, from, Region.Find(from.Location, from.Map));
                    }
                    else
                    {
                        string newName = "odd alien";
                        switch (Utility.RandomMinMax(0, 6))
                        {
                        case 0: newName = "odd"; break;

                        case 1: newName = "unusual"; break;

                        case 2: newName = "bizarre"; break;

                        case 3: newName = "curious"; break;

                        case 4: newName = "peculiar"; break;

                        case 5: newName = "strange"; break;

                        case 6: newName = "weird"; break;
                        }

                        switch (Utility.RandomMinMax(1, 4))
                        {
                        case 1: item = new Pipes();             item.Name = newName + " " + Server.Misc.RandomThings.GetRandomAlienRace() + " pipes";           break;

                        case 2: item = new Pipes();             item.Name = newName + " " + Server.Misc.RandomThings.GetRandomAlienRace() + " pan flute";       break;

                        case 3: item = new Fiddle();    item.Name = newName + " " + Server.Misc.RandomThings.GetRandomAlienRace() + " violin";          break;

                        case 4: item = new Fiddle();    item.Name = newName + " " + Server.Misc.RandomThings.GetRandomAlienRace() + " fiddle";          break;
                        }

                        BaseInstrument lute = (BaseInstrument)item;
                        lute.Resource = CraftResource.None;

                        item.Hue = Utility.RandomColor(0);
                    }

                    instr.UsesRemaining = instr.UsesRemaining + cUse;

                    BaseRunicTool.ApplyAttributesTo((BaseInstrument)item, attributeCount, min, max);

                    SlayerName slayer = BaseRunicTool.GetRandomSlayer();

                    instr.Quality = InstrumentQuality.Regular;
                    if (Utility.RandomMinMax(1, 4) == 1)
                    {
                        instr.Quality = InstrumentQuality.Exceptional;
                    }

                    if (Utility.RandomMinMax(1, 4) == 1)
                    {
                        instr.Slayer = slayer;
                    }

                    break;

                case 13:
                    item = Loot.RandomGem();
                    break;

                case 14:
                    item = Loot.RandomPotion();
                    break;

                case 15:
                    item = Loot.RandomWand(); Server.Misc.MaterialInfo.ColorMetal(item, 0); string wandOwner = ""; if (Utility.RandomMinMax(1, 3) == 1)
                    {
                        wandOwner = Server.LootPackEntry.MagicWandOwner() + " ";
                    }
                    item.Name = wandOwner + item.Name;
                    break;

                case 16:
                    m_Uses = 6;                             // STOP GIVING LOOT WHEN THEY GET A CONTAINER
                    int chestLuck = Server.Misc.GetPlayerInfo.LuckyPlayerArtifacts(from.Luck);
                    if (chestLuck < 3)
                    {
                        chestLuck = 3;
                    }
                    if (chestLuck > 8)
                    {
                        chestLuck = 8;
                    }
                    item        = new LootChest(Utility.RandomMinMax(3, chestLuck));
                    item.ItemID = Utility.RandomList(0x9AB, 0xE40, 0xE41, 0xE7C);
                    item.Hue    = Utility.RandomList(0x961, 0x962, 0x963, 0x964, 0x965, 0x966, 0x967, 0x968, 0x969, 0x96A, 0x96B, 0x96C, 0x96D, 0x96E, 0x96F, 0x970, 0x971, 0x972, 0x973, 0x974, 0x975, 0x976, 0x977, 0x978, 0x979, 0x97A, 0x97B, 0x97C, 0x97D, 0x97E, 0x4AA);

                    Region reg = Region.Find(from.Location, from.Map);

                    string box = "hoard chest";
                    switch (Utility.RandomMinMax(0, 7))
                    {
                    case 0: box = "hoard chest";            break;

                    case 1: box = "treasure chest";         break;

                    case 2: box = "secret chest";           break;

                    case 3: box = "fabled chest";           break;

                    case 4: box = "legendary chest";        break;

                    case 5: box = "mythical chest";         break;

                    case 6: box = "lost chest";                     break;

                    case 7: box = "stolen chest";           break;
                    }

                    if (Server.Misc.Worlds.IsOnSpaceship(from.Location, from.Map))
                    {
                        Server.Misc.ContainerFunctions.MakeSpaceCrate(((LockableContainer)item));
                        box = item.Name;
                    }

                    switch (Utility.RandomMinMax(0, 1))
                    {
                    case 0: item.Name = box + " from " + Server.Misc.Worlds.GetRegionName(from.Map, from.Location);       break;

                    case 1: item.Name = box + " of " + HoardName;   break;
                    }
                    int xTraCash = Utility.RandomMinMax(5000, 8000);

                    int zone = 0;
                    if (Worlds.IsOnSpaceship(from.Location, from.Map))
                    {
                        zone = 1;
                    }
                    else if (Worlds.GetMyWorld(from.Map, from.Location, from.X, from.Y) == "the Underworld")
                    {
                        zone = 2;
                    }

                    ContainerFunctions.AddGoldToContainer(xTraCash, (LootChest)item, zone, from);
                    int artychance = GetPlayerInfo.LuckyPlayerArtifacts(from.Luck) + 10;
                    if (Utility.RandomMinMax(0, 100) < artychance)
                    {
                        Item artys = Loot.RandomArty(); ((LootChest)item).DropItem(artys); BaseContainer.DropItemFix(artys, from, ((LootChest)item).ItemID, ((LootChest)item).GumpID);
                    }
                    break;
                }

                if (item != null)
                {
                    if (Worlds.IsOnSpaceship(from.Location, from.Map))
                    {
                        Server.Misc.MorphingTime.MakeSpaceAceItem(item, from);
                    }

                    if (item is Container)
                    {
                        item.MoveToWorld(from.Location, from.Map);
                    }
                    else
                    {
                        from.AddToBackpack(item);
                    }
                }
                else
                {
                    if (Worlds.IsOnSpaceship(from.Location, from.Map))
                    {
                        item = new DDXormite((from.Luck + Utility.RandomMinMax(333, 666)));
                    }
                    else if (Worlds.GetMyWorld(from.Map, from.Location, from.X, from.Y) == "the Underworld")
                    {
                        item = new DDJewels((from.Luck + Utility.RandomMinMax(500, 1000)));
                    }
                    else
                    {
                        item = new Gold((from.Luck + Utility.RandomMinMax(1000, 2000)));
                    }
                    if (item != null)
                    {
                        from.AddToBackpack(item);
                    }
                }
            }
            else
            {
                from.SendMessage("There is nothing else worth taking from this pile!");
                this.Delete();
            }
        }
Пример #13
0
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                Mobile from = sender.Mobile;

                if (m_Artifact.PaganPoints < 1)
                {
                    m_Artifact.PaganPoints = Utility.RandomMinMax(80, 100);
                }

                from.SendSound(0x2C);

                if (info.ButtonID == 1)
                {
                    if (
                        m_Artifact.PaganItem == 0x1408 ||
                        m_Artifact.PaganItem == 0x140A ||
                        m_Artifact.PaganItem == 0x140C ||
                        m_Artifact.PaganItem == 0x1412 ||
                        m_Artifact.PaganItem == 0x2645 ||
                        m_Artifact.PaganItem == 0x2FBB ||
                        m_Artifact.PaganItem == 0x140E ||
                        m_Artifact.PaganItem == 0x1410 ||
                        m_Artifact.PaganItem == 0x1411 ||
                        m_Artifact.PaganItem == 0x1413 ||
                        m_Artifact.PaganItem == 0x1414 ||
                        m_Artifact.PaganItem == 0x1415
                        )
                    {
                        BaseGiftArmor armor = new GiftPlateHelm();
                        armor.Delete();

                        if (m_Artifact.PaganItem == 0x1410)
                        {
                            armor = new GiftPlateArms();
                        }
                        else if (m_Artifact.PaganItem == 0x1411)
                        {
                            armor = new GiftPlateLegs();
                        }
                        else if (m_Artifact.PaganItem == 0x1413)
                        {
                            armor = new GiftPlateGorget();
                        }
                        else if (m_Artifact.PaganItem == 0x1414)
                        {
                            armor = new GiftPlateGloves();
                        }
                        else if (m_Artifact.PaganItem == 0x1415)
                        {
                            armor = new GiftPlateChest();
                        }
                        else
                        {
                            armor = new GiftPlateHelm(); armor.ItemID = m_Artifact.PaganItem;
                        }

                        armor.Name     = m_Artifact.PaganName;
                        armor.Hue      = m_Artifact.PaganColor;
                        armor.m_Owner  = from;
                        armor.m_Gifter = "Artifact from Pagan";
                        armor.m_How    = "Found by";
                        armor.m_Points = m_Artifact.PaganPoints;

                        from.AddToBackpack(armor);
                        from.SendMessage("You take possession of the Pagan artifact, " + m_Artifact.PaganName + "!");
                        LoggingFunctions.LogGeneric(from, "has found a Pagan armor artifact.");
                    }
                    else if (m_Artifact.PaganItem == 0x1BC4 || m_Artifact.PaganItem == 0x1BC3)
                    {
                        BaseGiftShield shield = new GiftOrderShield();

                        if (m_Artifact.PaganItem == 0x1BC3)
                        {
                            shield.Delete(); shield = new GiftChaosShield();
                        }

                        shield.Name     = m_Artifact.PaganName;
                        shield.Hue      = m_Artifact.PaganColor;
                        shield.m_Owner  = from;
                        shield.m_Gifter = "Artifact from Pagan";
                        shield.m_How    = "Found by";
                        shield.m_Points = m_Artifact.PaganPoints;

                        from.AddToBackpack(shield);
                        from.SendMessage("You take possession of the Pagan artifact, " + m_Artifact.PaganName + "!");
                        LoggingFunctions.LogGeneric(from, "has found a Pagan shield artifact.");
                    }
                    else if (m_Artifact.PaganItem == 0x1406 || m_Artifact.PaganItem == 0xF5D)
                    {
                        BaseGiftBashing mace = new GiftWarMace();

                        if (m_Artifact.PaganItem == 0x1BC3)
                        {
                            mace.Delete(); mace = new GiftMace(); mace.Slayer = SlayerName.Silver;
                        }
                        else
                        {
                            SlayerName slayer1 = BaseRunicTool.GetRandomSlayer();
                            mace.Slayer = slayer1;
                            SlayerName slayer2 = BaseRunicTool.GetRandomSlayer();

                            while (slayer1 == slayer2)
                            {
                                slayer2 = BaseRunicTool.GetRandomSlayer();
                            }
                            mace.Slayer2 = slayer2;
                        }
                        mace.Name     = m_Artifact.PaganName;
                        mace.Hue      = m_Artifact.PaganColor;
                        mace.m_Owner  = from;
                        mace.m_Gifter = "Artifact from Pagan";
                        mace.m_How    = "Found by";
                        mace.m_Points = m_Artifact.PaganPoints;

                        from.AddToBackpack(mace);
                        from.SendMessage("You take possession of the Pagan artifact, " + m_Artifact.PaganName + "!");
                        LoggingFunctions.LogGeneric(from, "has found a Pagan weapon artifact.");
                    }
                    else if (m_Artifact.PaganItem == 0x2D2C)
                    {
                        BaseGiftKnife dagger = new GiftDagger();

                        dagger.ItemID   = m_Artifact.PaganItem;
                        dagger.Name     = m_Artifact.PaganName;
                        dagger.Hue      = m_Artifact.PaganColor;
                        dagger.m_Owner  = from;
                        dagger.m_Gifter = "Artifact from Pagan";
                        dagger.m_How    = "Found by";
                        dagger.m_Points = m_Artifact.PaganPoints;
                        dagger.SkillBonuses.SetValues(0, SkillName.Poisoning, Utility.RandomMinMax(15, 30));

                        from.AddToBackpack(dagger);
                        from.SendMessage("You take possession of the Pagan artifact, " + m_Artifact.PaganName + "!");
                        LoggingFunctions.LogGeneric(from, "has found a Pagan weapon artifact.");
                    }
                    else if (m_Artifact.PaganItem == 0x13FA)
                    {
                        BaseGiftAxe axe = new GiftLargeBattleAxe();

                        axe.ItemID   = m_Artifact.PaganItem;
                        axe.Name     = m_Artifact.PaganName;
                        axe.Hue      = m_Artifact.PaganColor;
                        axe.m_Owner  = from;
                        axe.m_Gifter = "Artifact from Pagan";
                        axe.m_How    = "Found by";
                        axe.m_Points = m_Artifact.PaganPoints;
                        axe.SkillBonuses.SetValues(0, SkillName.Swords, Utility.RandomMinMax(15, 30));

                        from.AddToBackpack(axe);
                        from.SendMessage("You take possession of the Pagan artifact, " + m_Artifact.PaganName + "!");
                        LoggingFunctions.LogGeneric(from, "has found a Pagan weapon artifact.");
                    }
                    else
                    {
                        BaseGiftSword sword = new GiftLongsword();
                        sword.Delete();

                        if (m_Artifact.PaganItem == 0x1400)
                        {
                            sword = new GiftKryss(); sword.Slayer = SlayerName.FlameDousing; if (Utility.RandomMinMax(1, 4) == 1)
                            {
                                sword.Slayer = SlayerName.Exorcism;
                            }
                        }
                        else if (m_Artifact.PaganItem == 0xF5F)
                        {
                            sword = new GiftBroadsword(); sword.SkillBonuses.SetValues(0, SkillName.MagicResist, Utility.RandomMinMax(15, 30));
                        }
                        else if (m_Artifact.PaganItem == 0xF60)
                        {
                            sword = new GiftLongsword(); sword.SkillBonuses.SetValues(0, SkillName.Tactics, Utility.RandomMinMax(15, 30));
                        }
                        else
                        {
                            sword = new GiftScimitar(); sword.Slayer = SlayerName.Silver;
                        }

                        sword.Name     = m_Artifact.PaganName;
                        sword.Hue      = m_Artifact.PaganColor;
                        sword.m_Owner  = from;
                        sword.m_Gifter = "Artifact from Pagan";
                        sword.m_How    = "Found by";
                        sword.m_Points = m_Artifact.PaganPoints;

                        from.AddToBackpack(sword);
                        from.SendMessage("You take possession of the Pagan artifact, " + m_Artifact.PaganName + "!");
                        LoggingFunctions.LogGeneric(from, "has found a Pagan weapon artifact.");
                    }

                    m_Artifact.Delete();
                }
            }
Пример #14
0
 public SlayerLongbow()
 {
     Slayer2 = BaseRunicTool.GetRandomSlayer();
 }
Пример #15
0
        public bool OnCraft(bool exceptional, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue)
        {
            int magery = from.Skills.Magery.BaseFixedPoint;

            if (magery >= 800)
            {
                int[] propertyCounts;
                int   minIntensity;
                int   maxIntensity;

                if (magery >= 1000)
                {
                    propertyCounts = m_GrandPropertyCounts;
                    minIntensity   = 55;
                    maxIntensity   = 75;
                }
                else if (magery >= 900)
                {
                    propertyCounts = m_MasterPropertyCounts;
                    minIntensity   = 25;
                    maxIntensity   = 45;
                }
                else
                {
                    propertyCounts = m_AdeptPropertyCounts;
                    minIntensity   = 0;
                    maxIntensity   = 15;
                }

                int propertyCount = propertyCounts[Utility.Random(propertyCounts.Length)];

                BaseRunicTool.ApplyAttributesTo(this, true, 0, propertyCount, minIntensity, maxIntensity);

                SlayerName slayer = SlayerName.None;

                if (0.05 > Utility.RandomDouble())
                {
                    slayer = BaseRunicTool.GetRandomSlayer();
                }

                m_Slayer = slayer;

                if (this is ScrappersCompendium)
                {
                    this.Attributes.SpellDamage = 25;

                    if (this.Attributes.CastRecovery > 3)
                    {
                        this.Attributes.CastRecovery = 3;
                    }

                    this.Attributes.CastSpeed = 1;

                    if (this.Attributes.LowerManaCost < 10)
                    {
                        this.Attributes.LowerManaCost = 10;
                    }
                }
            }

            if (makersMark)
            {
                Crafter = from;
            }

            Exceptional = exceptional;

            return(exceptional);
        }