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; }
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; }
public GargishCaptainJohnesBlade() { Slayer2 = BaseRunicTool.GetRandomSlayer(); Attributes.AttackChance = 15; Attributes.DefendChance = 15; Attributes.WeaponSpeed = 30; Attributes.WeaponDamage = 60; ExtendedWeaponAttributes.Bane = 1; Hue = 2124; }
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; }
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; }
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; }
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); }
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; }
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; }
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."); } }
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(); } }
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(); } }
public SlayerLongbow() { Slayer2 = BaseRunicTool.GetRandomSlayer(); }
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); }