public static void ApplyAttributesTo(BaseHat hat, bool isRunicTool, int luckChance, int attributeCount, int min, int max) { m_IsRunicTool = isRunicTool; m_LuckChance = luckChance; AosAttributes primary = hat.Attributes; AosArmorAttributes secondary = hat.ClothingAttributes; AosElementAttributes resists = hat.Resistances; m_Props.SetAll(false); for (int i = 0; i < attributeCount; ++i) { int random = GetUniqueRandom(19); if (random == -1) { break; } switch (random) { case 0: ApplyAttribute(primary, min, max, AosAttribute.ReflectPhysical, 1, 15); break; case 1: ApplyAttribute(primary, min, max, AosAttribute.RegenHits, 1, 5); break; case 2: ApplyAttribute(primary, min, max, AosAttribute.RegenStam, 1, 5); break; case 3: ApplyAttribute(primary, min, max, AosAttribute.RegenMana, 1, 5); break; case 4: ApplyAttribute(primary, min, max, AosAttribute.NightSight, 1, 1); break; case 5: ApplyAttribute(primary, min, max, AosAttribute.BonusHits, 1, 50); break; case 6: ApplyAttribute(primary, min, max, AosAttribute.BonusStam, 1, 50); break; case 7: ApplyAttribute(primary, min, max, AosAttribute.BonusMana, 1, 50); break; case 8: ApplyAttribute(primary, min, max, AosAttribute.LowerManaCost, 1, 8); break; case 9: ApplyAttribute(primary, min, max, AosAttribute.LowerRegCost, 1, 20); break; case 10: ApplyAttribute(primary, min, max, AosAttribute.Luck, 1, 100); break; // case 11: ApplyAttribute( secondary, min, max, AosArmorAttribute.LowerStatReq, 10, 100, 10 ); break; // case 12: ApplyAttribute( secondary, min, max, AosArmorAttribute.SelfRepair, 1, 5 ); break; // case 13: ApplyAttribute( secondary, min, max, AosArmorAttribute.DurabilityBonus, 10, 100, 10 ); break; case 14: ApplyAttribute(resists, min, max, AosElementAttribute.Physical, 1, 50); break; case 15: ApplyAttribute(resists, min, max, AosElementAttribute.Fire, 1, 50); break; case 16: ApplyAttribute(resists, min, max, AosElementAttribute.Cold, 1, 50); break; case 17: ApplyAttribute(resists, min, max, AosElementAttribute.Poison, 1, 50); break; case 18: ApplyAttribute(resists, min, max, AosElementAttribute.Energy, 1, 50); break; } } }
public static void ApplyAttributesTo( BaseHat hat, int attributeCount, int min, int max ) { ApplyAttributesTo( hat, false, 0, attributeCount, min, max ); }
private void Fill(int level) { TrapType = TrapType.ExplosionTrap; TrapPower = level * 25; TrapLevel = level; Locked = true; switch (level) { case 1: RequiredSkill = 36; break; case 2: RequiredSkill = 76; break; case 3: RequiredSkill = 84; break; case 4: RequiredSkill = 92; break; case 5: RequiredSkill = 100; break; case 6: RequiredSkill = 100; break; } LockLevel = RequiredSkill - 10; MaxLockLevel = RequiredSkill + 40; DropItem(new Gold(level * 200)); for (int i = 0; i < level; ++i) { DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } for (int i = 0; i < level * 2; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item != null && Core.HS && RandomItemGenerator.Enabled) { int min, max; TreasureMapChest.GetRandomItemStat(out min, out max); RunicReforging.GenerateRandomItem(item, 0, min, max); DropItem(item); continue; } if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); DropItem(item); } } for (int i = 0; i < level; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); DropItem(item); } for (int i = 0; i < level; i++) { Item item = Loot.RandomGem(); DropItem(item); } DropItem(new TreasureMap(level + 1, (Siege.SiegeShard ? Map.Felucca : Utility.RandomBool() ? Map.Felucca : Map.Trammel))); }
public static void ApplyAttributesTo(BaseHat hat, bool playerMade, int luckChance, int attributeCount, int min, int max) { int delta; if (min > max) { delta = min; min = max; max = delta; } if (!playerMade && RandomItemGenerator.Enabled) { RandomItemGenerator.GenerateRandomItem(hat, luckChance, attributeCount, min, max); return; } m_PlayerMade = playerMade; m_LuckChance = luckChance; AosAttributes primary = hat.Attributes; AosArmorAttributes secondary = hat.ClothingAttributes; AosElementAttributes resists = hat.Resistances; m_Props.SetAll(false); for (int i = 0; i < attributeCount; ++i) { int random = GetUniqueRandom(19); if (random == -1) { break; } switch (random) { case 0: ApplyAttribute(primary, min, max, AosAttribute.ReflectPhysical, 1, 15); break; case 1: ApplyAttribute(primary, min, max, AosAttribute.RegenHits, 1, 2); break; case 2: ApplyAttribute(primary, min, max, AosAttribute.RegenStam, 1, 3); break; case 3: ApplyAttribute(primary, min, max, AosAttribute.RegenMana, 1, 2); break; case 4: ApplyAttribute(primary, min, max, AosAttribute.NightSight, 1, 1); break; case 5: ApplyAttribute(primary, min, max, AosAttribute.BonusHits, 1, 5); break; case 6: ApplyAttribute(primary, min, max, AosAttribute.BonusStam, 1, 8); break; case 7: ApplyAttribute(primary, min, max, AosAttribute.BonusMana, 1, 8); break; case 8: ApplyAttribute(primary, min, max, AosAttribute.LowerManaCost, 1, 8); break; case 9: ApplyAttribute(primary, min, max, AosAttribute.LowerRegCost, 1, 20); break; case 10: ApplyAttribute(primary, min, max, AosAttribute.Luck, 1, 100); break; case 11: ApplyAttribute(secondary, min, max, AosArmorAttribute.LowerStatReq, 10, 100, 10); break; case 12: ApplyAttribute(secondary, min, max, AosArmorAttribute.SelfRepair, 1, 5); break; case 13: ApplyAttribute(secondary, min, max, AosArmorAttribute.DurabilityBonus, 10, 100, 10); break; case 14: ApplyAttribute(resists, min, max, AosElementAttribute.Physical, 1, 15); break; case 15: ApplyAttribute(resists, min, max, AosElementAttribute.Fire, 1, 15); break; case 16: ApplyAttribute(resists, min, max, AosElementAttribute.Cold, 1, 15); break; case 17: ApplyAttribute(resists, min, max, AosElementAttribute.Poison, 1, 15); break; case 18: ApplyAttribute(resists, min, max, AosElementAttribute.Energy, 1, 15); break; } } }
public IguanaCoveBossChest() : base(0xE43) { Name = "a treasure chest -50-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 50; LockLevel = 50; MaxLockLevel = 80; /////////////////////////////////// Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(250, 400))); } /////////////////////////////////////// Jewelry if (Utility.RandomDouble() < 0.04) { DropItem(new Agate()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Beryl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new ChromeDiopside()); } if (Utility.RandomDouble() < 0.04) { DropItem(new FireOpal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new MoonstoneCustom()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Onyx()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Opal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Pearl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new TurquoiseCustom()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Bloodstone()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Citrine()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Demantoid()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Jasper()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lolite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lupis()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Peridot()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Tsavorite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Zircon()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Amber()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Amethyst()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Andalusite()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Chrysoberyl()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Garnet()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Jade()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Mandarin()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Morganite()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Paraiba()); } if (Utility.RandomDouble() < 0.02) { DropItem(new TigerEye()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Tourmaline()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Alexandrite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Ametrine()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Kunzite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Ruby()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Sapphire()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Tanzanite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Topaz()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Zultanite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Diamond()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Emerald()); } if (Utility.RandomDouble() < 0.01) { DropItem(new PinkQuartz()); } if (Utility.RandomDouble() < 0.01) { DropItem(new StarSapphire()); } /////////////////////////////////////// Supplies switch (Utility.Random(18)) { case 0: DropItem(new Board(80)); break; case 1: DropItem(new BoltOfCloth(80)); break; case 2: DropItem(new Bottle(80)); break; case 3: DropItem(new CopperWire(80)); break; case 4: DropItem(new Cotton(80)); break; case 5: DropItem(new DarkYarn(80)); break; case 6: DropItem(new Feather(80)); break; case 7: DropItem(new Flax(80)); break; case 8: DropItem(new Gears(80)); break; case 9: DropItem(new GoldWire(80)); break; case 10: DropItem(new IronIngot(80)); break; case 11: DropItem(new IronWire(80)); break; case 12: DropItem(new Leather(80)); break; case 13: DropItem(new LightYarn(80)); break; case 14: DropItem(new Shaft(80)); break; case 15: DropItem(new SilverWire(80)); break; case 16: DropItem(new SpoolOfThread(80)); break; case 17: DropItem(new Springs(80)); break; case 18: DropItem(new Wool(80)); break; } switch (Utility.Random(5)) { case 0: DropItem(new ArcaneStone(25)); break; case 1: DropItem(new BeetleEgg(25)); break; case 2: DropItem(new DragonScale(25)); break; case 3: DropItem(new FishScale(25)); break; case 4: DropItem(new SerpentScale(25)); break; } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.RandomMinMax(50, 100); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.05) { DropItem(new SackFlour()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } /////////////////////////////////////// LV 20-30 if (Utility.RandomDouble() < 0.10) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(31)) { case 0: weapon = new DoubleAxe(); break; // Lv20 case 1: weapon = new TwoHandedAxe(); break; // Lv25 case 2: weapon = new WarAxe(); break; // Lv30 case 3: weapon = new CompositeBow(); break; // Lv20 case 4: weapon = new EbonyCrossbow(); break; // Lv20 case 5: weapon = new FireBow(); break; // Lv25 case 6: weapon = new GrassBow(); break; // Lv25 case 7: weapon = new IceBow(); break; // Lv25 case 8: weapon = new LightningBow(); break; // Lv25 case 9: weapon = new EbonyWarBow(); break; // Lv30 case 10: weapon = new PistolCrossbow(); break; // Lv30 case 11: weapon = new EbonyDualDaggers(); break; // Lv20 case 12: weapon = new Tekagi(); break; // Lv25 case 13: weapon = new ElvenSpellblade(); break; // Lv30 case 14: weapon = new WarMace(); break; // Lv20 case 15: weapon = new Tessen(); break; // Lv25 case 16: weapon = new HammerPick(); break; // Lv30 case 17: weapon = new Spear(); break; // Lv20 case 18: weapon = new BoneSpear(); break; // Lv25 case 19: weapon = new BubbleStaff(); break; // Lv25 case 20: weapon = new CrystalStaff(); break; // Lv25 case 21: weapon = new EnergyStaff(); break; // Lv25 case 22: weapon = new FireStaff(); break; // Lv25 case 23: weapon = new VineStaff(); break; // Lv25 case 24: weapon = new BlackStaff(); break; // Lv30 case 25: weapon = new VikingSword(); break; // Lv20 case 26: weapon = new Wakizashi(); break; // Lv20 case 27: weapon = new Daisho(); break; // Lv30 case 28: weapon = new EbonyScimitar(); break; // Lv30 case 29: weapon = new RuneBlade(); break; // Lv30 default: weapon = new Longsword(); break; // Lv20 } BaseRunicTool.ApplyAttributesTo(weapon, 2, 5, 50); DropItem(weapon); } /////////////////////////////////////// LV 18-27 if (Utility.RandomDouble() < 0.10) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(18)) { case 0: armor = new HideFemaleChest(); break; // Lv18 case 1: armor = new HideGloves(); break; // Lv18 case 2: armor = new HideGorget(); break; // Lv18 case 3: armor = new HidePants(); break; // Lv18 case 4: armor = new HidePauldrons(); break; // Lv18 case 5: armor = new StuddedDo(); break; // Lv21 case 6: armor = new StuddedHaidate(); break; // Lv21 case 7: armor = new StuddedHiroSode(); break; // Lv21 case 8: armor = new StuddedMempo(); break; // Lv21 case 9: armor = new StuddedSuneate(); break; // Lv21 case 10: armor = new VikingStuddedArms(); break; // Lv24 case 11: armor = new VikingStuddedCap(); break; // Lv24 case 12: armor = new VikingStuddedChest(); break; // Lv24 case 13: armor = new VikingStuddedLegs(); break; // Lv24 case 14: armor = new ChainChest(); break; // Lv27 case 15: armor = new ChainCoif(); break; // Lv27 case 16: armor = new ChainLegs(); break; // Lv27 default: armor = new HideChest(); break; // Lv18 } BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50); DropItem(armor); } if (Utility.RandomDouble() < 0.10) { BaseHat hat = Loot.RandomHat(true); BaseRunicTool.ApplyAttributesTo(hat, 3, 12, 15); DropItem(hat); } if (Utility.RandomDouble() < 0.10) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 3, 12, 15); DropItem(clothing); } if (Utility.RandomDouble() < 0.05) { BaseShield shield1 = new MetalShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50); } DropItem(shield1); } if (Utility.RandomDouble() < 0.05) { BaseShield shield2 = new WoodenKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50); } DropItem(shield2); } if (Utility.RandomDouble() < 0.05) { BaseShield shield3 = new MetalKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50); } DropItem(shield3); } if (Utility.RandomDouble() < 0.10) { BaseJewel bracelet = new SilverBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 3, 12, 15); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.10) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 3, 12, 15); } DropItem(earrings); } if (Utility.RandomDouble() < 0.10) { BaseJewel necklace = new SilverNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 3, 12, 15); } DropItem(necklace); } if (Utility.RandomDouble() < 0.10) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 3, 12, 15); } DropItem(ring); } }
public MongbatHideoutTreasureChest2() : base(0xE43) { Name = "a treasure chest -50-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 50; LockLevel = 50; MaxLockLevel = 80; /////////////////////////////////// Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(20, 300))); } /////////////////////////////////////// Supplies switch (Utility.Random(18)) { case 0: DropItem(new Board(70)); break; case 1: DropItem(new BoltOfCloth(70)); break; case 2: DropItem(new Bottle(70)); break; case 3: DropItem(new CopperWire(70)); break; case 4: DropItem(new Cotton(70)); break; case 5: DropItem(new DarkYarn(70)); break; case 6: DropItem(new Feather(70)); break; case 7: DropItem(new Flax(70)); break; case 8: DropItem(new Gears(70)); break; case 9: DropItem(new GoldWire(70)); break; case 10: DropItem(new IronIngot(70)); break; case 11: DropItem(new IronWire(70)); break; case 12: DropItem(new Leather(70)); break; case 13: DropItem(new LightYarn(70)); break; case 14: DropItem(new Shaft(70)); break; case 15: DropItem(new SilverWire(70)); break; case 16: DropItem(new SpoolOfThread(70)); break; case 17: DropItem(new Springs(70)); break; case 18: DropItem(new Wool(70)); break; } switch (Utility.Random(5)) { case 0: DropItem(new BeetleEgg(25)); break; case 1: DropItem(new FishScale(25)); break; case 2: DropItem(new Nirnroot(25)); break; case 3: DropItem(new SerpentScale(25)); break; case 4: DropItem(new ThunderStone(25)); break; } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.RandomMinMax(10, 15); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.05) { DropItem(new SackFlour()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } /////////////////////////////////////// LV 10-20 /////////////////////////////////////// LV 10-25 for staves if (Utility.RandomDouble() < 0.10) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(28)) { case 0: weapon = new BattleAxe(); break; // Lv10 case 1: weapon = new DoubleAxe(); break; // Lv20 case 2: weapon = new MagicalShortbow(); break; // Lv10 case 3: weapon = new RepeatingCrossbow(); break; // Lv10 case 4: weapon = new ButcherKnife(); break; // Lv10 case 5: weapon = new CompositeBow(); break; // Lv20 case 6: weapon = new EbonyCrossbow(); break; // Lv20 case 7: weapon = new EbonyDagger(); break; // Lv10 case 8: weapon = new Sai(); break; // Lv15 case 9: weapon = new EbonyDualDaggers(); break; // Lv20 case 10: weapon = new Maul(); break; // Lv10 case 11: weapon = new Scepter(); break; // Lv15 case 12: weapon = new WarMace(); break; // Lv20 case 13: weapon = new Pilum(); break; // Lv10 case 14: weapon = new Pike(); break; // Lv15 case 15: weapon = new Spear(); break; // Lv20 case 16: weapon = new QuarterStaff(); break; // Lv10 case 17: weapon = new ReptilianStaff(); break; // Lv15 case 18: weapon = new BubbleStaff(); break; // Lv25 case 19: weapon = new CrystalStaff(); break; // Lv25 case 20: weapon = new EnergyStaff(); break; // Lv25 case 21: weapon = new FireStaff(); break; // Lv25 case 22: weapon = new VineStaff(); break; // Lv25 case 23: weapon = new EbonyRapier(); break; // Lv10 case 24: weapon = new Scimitar(); break; // Lv10 case 25: weapon = new Longsword(); break; // Lv20 case 26: weapon = new VikingSword(); break; // Lv20 default: weapon = new Wakizashi(); break; // Lv20 } switch (Utility.Random(14)) { case 0: weapon.Attributes.AttackChance = Utility.RandomMinMax(1, 5); break; case 1: weapon.Attributes.DefendChance = Utility.RandomMinMax(1, 5); break; case 2: weapon.Attributes.Luck = Utility.RandomMinMax(1, 10); break; case 3: weapon.Attributes.WeaponSpeed = Utility.RandomMinMax(1, 25); break; case 4: weapon.WeaponAttributes.HitDispel = Utility.RandomMinMax(2, 10); break; case 5: weapon.WeaponAttributes.HitFireball = Utility.RandomMinMax(2, 10); break; case 6: weapon.WeaponAttributes.HitHarm = Utility.RandomMinMax(2, 10); break; case 7: weapon.WeaponAttributes.HitLeechHits = Utility.RandomMinMax(2, 10); break; case 8: weapon.WeaponAttributes.HitLeechMana = Utility.RandomMinMax(2, 10); break; case 9: weapon.WeaponAttributes.HitLeechStam = Utility.RandomMinMax(2, 10); break; case 10: weapon.WeaponAttributes.HitLightning = Utility.RandomMinMax(2, 10); break; case 11: weapon.WeaponAttributes.HitLowerAttack = Utility.RandomMinMax(2, 10); break; case 12: weapon.WeaponAttributes.HitLowerDefend = Utility.RandomMinMax(2, 10); break; default: weapon.Attributes.WeaponDamage = Utility.RandomMinMax(1, 10); break; } switch (Utility.Random(14)) { case 0: weapon.Attributes.AttackChance = Utility.RandomMinMax(1, 5); break; case 1: weapon.Attributes.DefendChance = Utility.RandomMinMax(1, 5); break; case 2: weapon.Attributes.Luck = Utility.RandomMinMax(1, 10); break; case 3: weapon.Attributes.WeaponSpeed = Utility.RandomMinMax(1, 25); break; case 4: weapon.WeaponAttributes.HitDispel = Utility.RandomMinMax(2, 10); break; case 5: weapon.WeaponAttributes.HitFireball = Utility.RandomMinMax(2, 10); break; case 6: weapon.WeaponAttributes.HitHarm = Utility.RandomMinMax(2, 10); break; case 7: weapon.WeaponAttributes.HitLeechHits = Utility.RandomMinMax(2, 10); break; case 8: weapon.WeaponAttributes.HitLeechMana = Utility.RandomMinMax(2, 10); break; case 9: weapon.WeaponAttributes.HitLeechStam = Utility.RandomMinMax(2, 10); break; case 10: weapon.WeaponAttributes.HitLightning = Utility.RandomMinMax(2, 10); break; case 11: weapon.WeaponAttributes.HitLowerAttack = Utility.RandomMinMax(2, 10); break; case 12: weapon.WeaponAttributes.HitLowerDefend = Utility.RandomMinMax(2, 10); break; default: weapon.Attributes.WeaponDamage = Utility.RandomMinMax(1, 10); break; } DropItem(weapon); } /////////////////////////////////////// LV 12-18 if (Utility.RandomDouble() < 0.10) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(19)) { case 0: armor = new ChitinArms(); break; // Lv12 case 1: armor = new ChitinChest(); break; // Lv12 case 2: armor = new ChitinGloves(); break; // Lv12 case 3: armor = new ChitinGorget(); break; // Lv12 case 4: armor = new ChitinHelmet(); break; // Lv12 case 5: armor = new ChitinLegs(); break; // Lv12 case 6: armor = new FemaleStuddedChest(); break; // Lv15 case 7: armor = new StuddedArms(); break; // Lv15 case 8: armor = new StuddedBustierArms(); break; // Lv15 case 9: armor = new StuddedChest(); break; // Lv15 case 10: armor = new StuddedGloves(); break; // Lv15 case 11: armor = new StuddedGorget(); break; // Lv15 case 12: armor = new StuddedLegs(); break; // Lv15 case 13: armor = new HideFemaleChest(); break; // Lv18 case 14: armor = new HideGloves(); break; // Lv18 case 15: armor = new HideGorget(); break; // Lv18 case 16: armor = new HidePants(); break; // Lv18 case 17: armor = new HidePauldrons(); break; // Lv18 default: armor = new HideChest(); break; // Lv18 } BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50); DropItem(armor); } if (Utility.RandomDouble() < 0.10) { BaseHat hat = Loot.RandomHat(true); BaseRunicTool.ApplyAttributesTo(hat, 3, 5, 10); DropItem(hat); } if (Utility.RandomDouble() < 0.10) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 3, 5, 10); DropItem(clothing); } if (Utility.RandomDouble() < 0.05) { BaseShield shield1 = new MetalShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50); } DropItem(shield1); } if (Utility.RandomDouble() < 0.05) { BaseShield shield2 = new WoodenKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50); } DropItem(shield2); } if (Utility.RandomDouble() < 0.05) { BaseShield shield3 = new MetalKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50); } DropItem(shield3); } if (Utility.RandomDouble() < 0.10) { BaseJewel bracelet = new SilverBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 3, 5, 10); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.10) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 3, 5, 10); } DropItem(earrings); } if (Utility.RandomDouble() < 0.10) { BaseJewel necklace = new SilverNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 3, 5, 10); } DropItem(necklace); } if (Utility.RandomDouble() < 0.10) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 3, 5, 10); } DropItem(ring); } }
public BleakWindTunnelsChest1() : base(0xE43) { Name = "a treasure chest -50-"; Hue = 1151; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 50; LockLevel = 50; MaxLockLevel = 80; /////////////////////////////////// Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(20, 300))); } if (Utility.RandomDouble() < 0.15) { DropItem(new TurquoiseCustom()); } Item GemLoot = Loot.RandomGem(); DropItem(GemLoot); /////////////////////////////////////// Recipe Scrolls /////////////////////////////////// Ingredients if (Utility.RandomDouble() < 0.10) { DropItem(new BagOfSugarRecipe(5001)); } if (Utility.RandomDouble() < 0.10) { DropItem(new CocoaButterRecipe(5004)); } if (Utility.RandomDouble() < 0.10) { DropItem(new CocoaLiquorRecipe(5005)); } if (Utility.RandomDouble() < 0.10) { DropItem(new DoughRecipe(5002)); } if (Utility.RandomDouble() < 0.10) { DropItem(new SackFlourRecipe(5000)); } if (Utility.RandomDouble() < 0.10) { DropItem(new SweetDoughRecipe(5003)); } /////////////////////////////////// Random if (Utility.RandomDouble() < 0.10) { DropItem(new RandomBakingRecipe(Utility.RandomMinMax(5501, 5550))); } if (Utility.RandomDouble() < 0.10) { DropItem(new RandomBoilingRecipe(Utility.RandomMinMax(5601, 5626))); } if (Utility.RandomDouble() < 0.10) { DropItem(new RandomIngredientsRecipe(Utility.RandomMinMax(5000, 5005))); } if (Utility.RandomDouble() < 0.10) { DropItem(new RandomOilsRecipe(Utility.RandomMinMax(5101, 5105))); } if (Utility.RandomDouble() < 0.10) { DropItem(new RandomPreparationsRecipe(Utility.RandomMinMax(5401, 5435))); } if (Utility.RandomDouble() < 0.10) { DropItem(new RandomRawMeatPrepRecipe(Utility.RandomMinMax(5301, 5342))); } if (Utility.RandomDouble() < 0.10) { DropItem(new RandomSaucesRecipe(Utility.RandomMinMax(5201, 5208))); } /////////////////////////////////// Misc if (Utility.RandomDouble() < 0.10) { DropItem(new HarpyEggSoupRecipe(5019)); } if (Utility.RandomDouble() < 0.10) { DropItem(new UnbakedQuicheRecipe(5019)); } /////////////////////////////////////// Supplies switch (Utility.Random(19)) { case 0: DropItem(new Board(90)); break; case 1: DropItem(new BoltOfCloth(90)); break; case 2: DropItem(new Bottle(90)); break; case 3: DropItem(new CopperWire(90)); break; case 4: DropItem(new Cotton(90)); break; case 5: DropItem(new DarkYarn(90)); break; case 6: DropItem(new Feather(90)); break; case 7: DropItem(new Flax(90)); break; case 8: DropItem(new Gears(90)); break; case 9: DropItem(new GoldWire(90)); break; case 10: DropItem(new IronIngot(90)); break; case 11: DropItem(new IronWire(90)); break; case 12: DropItem(new Leather(90)); break; case 13: DropItem(new LightYarn(90)); break; case 14: DropItem(new Shaft(90)); break; case 15: DropItem(new SilverWire(90)); break; case 16: DropItem(new SpoolOfThread(90)); break; case 17: DropItem(new Springs(90)); break; case 18: DropItem(new Wool(90)); break; } switch (Utility.Random(5)) { case 0: DropItem(new ArcaneStone(25)); break; case 1: DropItem(new DiamondDust(25)); break; case 2: DropItem(new ElementalDust(25)); break; case 3: DropItem(new SpiderEgg(25)); break; case 4: DropItem(new ThunderStone(25)); break; } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = 50; DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.05) { DropItem(new SackFlour()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } if (Utility.RandomDouble() < 0.05) { BaseWeapon weapon = Loot.RandomWeapon(true); BaseRunicTool.ApplyAttributesTo(weapon, 2, 5, 10); weapon.Hue = 1151; weapon.WeaponAttributes.HitHarm = 5; DropItem(weapon); } if (Utility.RandomDouble() < 0.05) { BaseArmor armor = Loot.RandomArmor(true); BaseRunicTool.ApplyAttributesTo(armor, 2, 5, 10); armor.Hue = 1151; armor.ColdBonus = 10; DropItem(armor); } if (Utility.RandomDouble() < 0.05) { BaseHat hat = Loot.RandomHat(true); BaseRunicTool.ApplyAttributesTo(hat, 2, 5, 10); hat.Hue = 1151; hat.Resistances.Cold = 10; DropItem(hat); } if (Utility.RandomDouble() < 0.05) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 2, 5, 10); clothing.Hue = 1151; clothing.Resistances.Cold = 10; DropItem(clothing); } if (Utility.RandomDouble() < 0.05) { BaseShield shield = new MercenaryShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield, 2, 5, 10); } shield.Hue = 1151; shield.ColdBonus = 10; DropItem(shield); } if (Utility.RandomDouble() < 0.05) { BaseJewel bracelet = new SilverBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 2, 5, 10); } bracelet.Hue = 1151; bracelet.Resistances.Cold = 10; DropItem(bracelet); } if (Utility.RandomDouble() < 0.05) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 2, 5, 10); } earrings.Hue = 1151; earrings.Resistances.Cold = 10; DropItem(earrings); } if (Utility.RandomDouble() < 0.05) { BaseJewel necklace = new SilverNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 2, 5, 10); } necklace.Hue = 1151; necklace.Resistances.Cold = 10; DropItem(necklace); } if (Utility.RandomDouble() < 0.05) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 2, 5, 10); } ring.Hue = 1151; ring.Resistances.Cold = 10; DropItem(ring); } }
protected override void OnTarget(Mobile from, object target) { Item item = target as Item; Type type = item.GetType(); if (item is BaseArmor || item is BaseWeapon || item is BaseHat || item is BaseJewel || item is BaseTalisman || item is BaseQuiver || item is Spellbook) { if (Runescribing.GetProps(item) >= 7) { from.SendMessage("This item cannot be enhanced any further"); } else if (item.ChantSlots >= 3) { from.SendMessage("This item cannot handle any more enhancments."); } else if (Runescribing.CheckBlacklist(type) == true) { from.SendMessage("This item cannot be enhanced."); } else { int value = m_Rune.BaseAmount; int max = m_Rune.MaxAmount; if (item is BaseArmor) { BaseArmor i = item as BaseArmor; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } if (item is BaseWeapon) { BaseWeapon i = item as BaseWeapon; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } if (item is BaseHat) { BaseHat i = item as BaseHat; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } if (item is BaseJewel) { BaseJewel i = item as BaseJewel; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } if (item is BaseTalisman) { BaseTalisman i = item as BaseTalisman; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } if (item is BaseQuiver) { BaseQuiver i = item as BaseQuiver; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } if (item is Spellbook) { Spellbook i = item as Spellbook; if (i.Attributes.CastRecovery + value <= max) { i.Attributes.CastRecovery += value; } else { i.Attributes.CastRecovery = max; } } item.ChantSlots += 1; m_Rune.Delete(); } } else { from.SendMessage("You cannot use this enhancement on that."); } }
public AmazonTreeSettlementTreasureChest() : base(0xE43) { Name = "a treasure chest -10-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 10; LockLevel = 10; MaxLockLevel = 15; // Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(15, 200))); } /////////////////////////////////////// Supplies if (Utility.RandomDouble() < 0.10) { DropItem(new Arrow(Utility.Random(2, 6))); } if (Utility.RandomDouble() < 0.10) { DropItem(new Bolt(Utility.Random(2, 6))); } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.Random(2, 6); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.10) { DropItem(new Bandage(Utility.Random(2, 6))); } if (Utility.RandomDouble() < 0.10) { DropItem(new Bedroll()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Bottle(Utility.Random(2, 6))); } if (Utility.RandomDouble() < 0.10) { DropItem(new Lockpick(Utility.Random(2, 6))); } Item PotionLoot = Loot.RandomPotion(); DropItem(PotionLoot); /////////////////////////////////////// Tools if (Utility.RandomDouble() < 0.10) { DropItem(new FishingPole()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Shovel()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Skillet()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } if (Utility.RandomDouble() < 0.05) { DropItem(new AmazonianFighterBelt()); } if (Utility.RandomDouble() < 0.05) { DropItem(new AmazonianFighterBoots()); } if (Utility.RandomDouble() < 0.05) { DropItem(new AmazonianFighterBustier()); } if (Utility.RandomDouble() < 0.05) { DropItem(new AmazonianFighterGloves()); } if (Utility.RandomDouble() < 0.05) { DropItem(new AmazonianFighterHelmet()); } if (Utility.RandomDouble() < 0.10) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(21)) { case 0: weapon = new Hatchet(); break; case 1: weapon = new Bow(); break; case 2: weapon = new Crossbow(); break; case 3: weapon = new Club(); break; case 4: weapon = new Mace(); break; case 5: weapon = new Maul(); break; case 6: weapon = new Pitchfork(); break; case 7: weapon = new ShortSpear(); break; case 8: weapon = new GnarledStaff(); break; case 9: weapon = new ShepherdsCrook(); break; case 10: weapon = new Cutlass(); break; case 11: weapon = new Katana(); break; case 12: weapon = new Kryss(); break; case 13: weapon = new Scimitar(); break; case 14: weapon = new AssassinSpike(); break; case 15: weapon = new DiamondMace(); break; case 16: weapon = new Leafblade(); break; case 17: weapon = new MagicalShortbow(); break; case 18: weapon = new RadiantScimitar(); break; case 19: weapon = new WildStaff(); break; default: weapon = new Dagger(); break; } BaseRunicTool.ApplyAttributesTo(weapon, 2, 10, 15); weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(2); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(2); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(2); weapon.Quality = WeaponQuality.Regular; DropItem(weapon); } if (Utility.RandomDouble() < 0.10) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(10)) { case 0: armor = new FemaleLeatherChest(); break; case 1: armor = new LeatherBustierArms(); break; case 2: armor = new LeatherArms(); break; case 3: armor = new LeatherCap(); break; case 4: armor = new LeatherGloves(); break; case 5: armor = new LeatherGorget(); break; case 6: armor = new LeatherLegs(); break; case 7: armor = new LeatherShorts(); break; case 8: armor = new LeatherSkirt(); break; default: armor = new LeatherChest(); break; } BaseRunicTool.ApplyAttributesTo(armor, 3, 10, 15); armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(3); armor.Durability = (ArmorDurabilityLevel)Utility.Random(3); armor.Quality = ArmorQuality.Regular; DropItem(armor); } if (Utility.RandomDouble() < 0.10) { BaseHat hat = Loot.RandomHat(true); switch (Utility.Random(5)) { case 0: hat = new BearMask(); break; case 1: hat = new DeerMask(); break; case 2: hat = new FeatheredHat(); break; case 3: hat = new WizardsHat(); break; default: hat = new TribalMask(); break; } BaseRunicTool.ApplyAttributesTo(hat, 3, 10, 15); DropItem(hat); } if (Utility.RandomDouble() < 0.10) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 3, 10, 15); DropItem(clothing); } if (Utility.RandomDouble() < 0.10) { BaseShield shield = new MetalShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield, 3, 10, 15); } DropItem(shield); } if (Utility.RandomDouble() < 0.10) { BaseJewel bracelet = new GoldBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 3, 10, 15); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.10) { BaseJewel earrings = new GoldEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 3, 10, 15); } DropItem(earrings); } if (Utility.RandomDouble() < 0.10) { BaseJewel necklace = new GoldNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 3, 10, 15); } DropItem(necklace); } if (Utility.RandomDouble() < 0.10) { BaseJewel ring = new GoldRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 3, 10, 15); } DropItem(ring); } }
private static void ApplyResistance( BaseHat hat, int min, int max, ResistanceType res, int low, int high ) { switch ( res ) { case ResistanceType.Physical: hat.Resistances.Physical += Scale( min, max, low, high ); break; case ResistanceType.Fire: hat.Resistances.Fire += Scale( min, max, low, high ); break; case ResistanceType.Cold: hat.Resistances.Cold += Scale( min, max, low, high ); break; case ResistanceType.Poison: hat.Resistances.Poison += Scale( min, max, low, high ); break; case ResistanceType.Energy: hat.Resistances.Energy += Scale( min, max, low, high ); break; } }
public ArenaTreasureChest() : base(0xE41) { Name = "Arena Champion"; Hue = 1161; DropItem(new ChampionStatue()); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); DropItem(new Gold(Utility.RandomMinMax(1000, 2000))); { int chance = Utility.Random(5); switch (chance) { case 0: { Map map = this.Map; BaseWeapon weapon = Loot.RandomWeapon(); BaseRunicTool.ApplyAttributesTo(weapon, 4, 10, 50); DropItem(weapon); break; } case 1: { Map map = this.Map; BaseArmor armor = Loot.RandomArmor(); BaseRunicTool.ApplyAttributesTo(armor, 4, 10, 50); DropItem(armor); break; } case 2: { BaseJewel jewel = Loot.RandomJewelry(); BaseRunicTool.ApplyAttributesTo(jewel, 4, 10, 50); DropItem(jewel); break; } case 3: { Map map = this.Map; BaseHat hat = Loot.RandomHat(); BaseRunicTool.ApplyAttributesTo(hat, 4, 10, 50); DropItem(hat); break; } case 4: { BaseWand wand = Loot.RandomWand(); DropItem(wand); break; } } switch (Utility.Random(32)) { default: case 0: DropItem(new VoiceOfTheFallenKing()); break; case 1: DropItem(new TunicOfFire()); break; case 2: DropItem(new SpiritOfTheTotem()); break; case 3: DropItem(new ShadowDancerLeggings()); break; case 4: DropItem(new OrnateCrownOfTheHarrower()); break; case 5: DropItem(new LeggingsOfBane()); break; case 6: DropItem(new JackalsCollar()); break; case 7: DropItem(new InquisitorsResolution()); break; case 8: DropItem(new HuntersHeaddress()); break; case 9: DropItem(new HelmOfInsight()); break; case 10: DropItem(new HatOfTheMagi()); break; case 11: DropItem(new GauntletsOfNobility()); break; case 12: DropItem(new DivineCountenance()); break; case 13: DropItem(new ArmorOfFortune()); break; case 14: DropItem(new ArcaneShield()); break; case 15: DropItem(new Aegis()); break; case 16: DropItem(new ZyronicClaw()); break; case 17: DropItem(new TitansHammer()); break; case 18: DropItem(new TheTaskmaster()); break; case 19: DropItem(new TheDragonSlayer()); break; case 20: DropItem(new StaffOfTheMagi()); break; case 21: DropItem(new SerpentsFang()); break; case 22: DropItem(new LegacyOfTheDreadLord()); break; case 23: DropItem(new BreathOfTheDead()); break; case 24: DropItem(new BoneCrusher()); break; case 25: DropItem(new BladeOfTheRighteous()); break; case 26: DropItem(new BladeOfInsanity()); break; case 27: DropItem(new AxeOfTheHeavens()); break; case 28: DropItem(new RingOfTheVile()); break; case 29: DropItem(new RingOfTheElements()); break; case 30: DropItem(new OrnamentOfTheMagician()); break; case 31: DropItem(new BraceletOfHealth()); break; } switch (Utility.Random(32)) { default: case 0: DropItem(new VoiceOfTheFallenKing()); break; case 1: DropItem(new TunicOfFire()); break; case 2: DropItem(new SpiritOfTheTotem()); break; case 3: DropItem(new ShadowDancerLeggings()); break; case 4: DropItem(new OrnateCrownOfTheHarrower()); break; case 5: DropItem(new LeggingsOfBane()); break; case 6: DropItem(new JackalsCollar()); break; case 7: DropItem(new InquisitorsResolution()); break; case 8: DropItem(new HuntersHeaddress()); break; case 9: DropItem(new HelmOfInsight()); break; case 10: DropItem(new HatOfTheMagi()); break; case 11: DropItem(new GauntletsOfNobility()); break; case 12: DropItem(new DivineCountenance()); break; case 13: DropItem(new ArmorOfFortune()); break; case 14: DropItem(new ArcaneShield()); break; case 15: DropItem(new Aegis()); break; case 16: DropItem(new ZyronicClaw()); break; case 17: DropItem(new TitansHammer()); break; case 18: DropItem(new TheTaskmaster()); break; case 19: DropItem(new TheDragonSlayer()); break; case 20: DropItem(new StaffOfTheMagi()); break; case 21: DropItem(new SerpentsFang()); break; case 22: DropItem(new LegacyOfTheDreadLord()); break; case 23: DropItem(new BreathOfTheDead()); break; case 24: DropItem(new BoneCrusher()); break; case 25: DropItem(new BladeOfTheRighteous()); break; case 26: DropItem(new BladeOfInsanity()); break; case 27: DropItem(new AxeOfTheHeavens()); break; case 28: DropItem(new RingOfTheVile()); break; case 29: DropItem(new RingOfTheElements()); break; case 30: DropItem(new OrnamentOfTheMagician()); break; case 31: DropItem(new BraceletOfHealth()); break; } switch (Utility.Random(32)) { default: case 0: DropItem(new VoiceOfTheFallenKing()); break; case 1: DropItem(new TunicOfFire()); break; case 2: DropItem(new SpiritOfTheTotem()); break; case 3: DropItem(new ShadowDancerLeggings()); break; case 4: DropItem(new OrnateCrownOfTheHarrower()); break; case 5: DropItem(new LeggingsOfBane()); break; case 6: DropItem(new JackalsCollar()); break; case 7: DropItem(new InquisitorsResolution()); break; case 8: DropItem(new HuntersHeaddress()); break; case 9: DropItem(new HelmOfInsight()); break; case 10: DropItem(new HatOfTheMagi()); break; case 11: DropItem(new GauntletsOfNobility()); break; case 12: DropItem(new DivineCountenance()); break; case 13: DropItem(new ArmorOfFortune()); break; case 14: DropItem(new ArcaneShield()); break; case 15: DropItem(new Aegis()); break; case 16: DropItem(new ZyronicClaw()); break; case 17: DropItem(new TitansHammer()); break; case 18: DropItem(new TheTaskmaster()); break; case 19: DropItem(new TheDragonSlayer()); break; case 20: DropItem(new StaffOfTheMagi()); break; case 21: DropItem(new SerpentsFang()); break; case 22: DropItem(new LegacyOfTheDreadLord()); break; case 23: DropItem(new BreathOfTheDead()); break; case 24: DropItem(new BoneCrusher()); break; case 25: DropItem(new BladeOfTheRighteous()); break; case 26: DropItem(new BladeOfInsanity()); break; case 27: DropItem(new AxeOfTheHeavens()); break; case 28: DropItem(new RingOfTheVile()); break; case 29: DropItem(new RingOfTheElements()); break; case 30: DropItem(new OrnamentOfTheMagician()); break; case 31: DropItem(new BraceletOfHealth()); break; } } }
public void ApplyAttributesTo( BaseHat hat ) { CraftResourceInfo resInfo = CraftResources.GetInfo( m_Resource ); if (resInfo == null) return; CraftAttributeInfo attrs = resInfo.AttributeInfo; if (attrs == null) return; int attributeCount = Utility.RandomMinMax( attrs.RunicMinAttributes, attrs.RunicMaxAttributes ); int min = attrs.RunicMinIntensity; int max = attrs.RunicMaxIntensity; ApplyAttributesTo( hat, true, 0, attributeCount, min, max); }
private static void CheckMaxAttributes( BaseHat hat ) { int props = 0; foreach( int i in Enum.GetValues(typeof( AosAttribute ) ) ) if ( hat.Attributes[ (AosAttribute)i ] > 0 ) ++props; foreach( int i in Enum.GetValues(typeof( AosArmorAttribute ) ) ) if ( (AosArmorAttribute)i != AosArmorAttribute.LowerStatReq && hat.ClothingAttributes[ (AosArmorAttribute)i ] > 0 ) ++props; if ( props >= SpellCraftConfig.MaxPropsAllowed ) throw new SpellCraftException( MsgNums.MaxProperties ); }
private static void CheckItem( Mobile m, BaseHat hat, bool addingAttribute ) { if ( !((Item)hat).IsChildOf( m ) ) throw new SpellCraftException( MsgNums.BackPack ); if ( !SpellCraftConfig.ArtifactCraftable && hat.ArtifactRarity > 0 ) throw new SpellCraftException( MsgNums.Artifact ); if ( addingAttribute ) CheckMaxAttributes( hat ); }
protected override void GenerateTreasure() { DropItem(new Gold(600, 900)); List <Item> gems = new List <Item>(); for (int i = 0; i < 9; i++) { Item gem = Loot.RandomGem(); Type gemType = gem.GetType(); foreach (Item listGem in gems) { if (listGem.GetType() == gemType) { listGem.Amount++; gem.Delete(); break; } } if (!gem.Deleted) { gems.Add(gem); } } foreach (Item gem in gems) { DropItem(gem); } if (0.2 > Utility.RandomDouble()) { DropItem(new BagOfReagents(50)); } for (int i = 0; i < 2; i++) { Item item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); DropItem(item); } } Solution = new PuzzleChestSolution(); }
public static void Fill(LockableContainer cont, int level) { cont.Movable = false; cont.Locked = true; if (level == 0) { cont.DropItem(new Gold(Utility.RandomMinMax(50, 100))); if (Utility.RandomDouble() < 0.75) { cont.DropItem(new TreasureMap(0, Map.Trammel)); } } else { cont.TrapType = TrapType.ExplosionTrap; cont.TrapPower = level * 25; cont.TrapLevel = level; switch (level) { case 1: cont.Serrure = SerrureQuality.Simple; break; case 2: cont.Serrure = SerrureQuality.Moyenne; break; case 3: cont.Serrure = SerrureQuality.Bonne; break; case 4: cont.Serrure = SerrureQuality.TresBonne; break; case 5: cont.Serrure = SerrureQuality.Excellente; break; case 6: cont.Serrure = SerrureQuality.Impossible; break; } cont.DropItem(new Gold(level * 1000)); for (int i = 0; i < level * 5; ++i) { cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } for (int i = 0; i < level * 6; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } cont.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } cont.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } cont.DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); cont.DropItem(item); } } } int reagents; if (level == 0) { reagents = 12; } else { reagents = level * 3; } for (int i = 0; i < reagents; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); cont.DropItem(item); } int gems; if (level == 0) { gems = 2; } else { gems = level * 3; } for (int i = 0; i < gems; i++) { Item item = Loot.RandomGem(); cont.DropItem(item); } if (level == 6 && Core.AOS) { cont.DropItem((Item)Activator.CreateInstance(m_Artifacts[Utility.Random(m_Artifacts.Length)])); } }
public TerathanIslandTreasureChest() : base(0x2DF1) { Name = "a treasure chest -30-"; Movable = true; Hue = 285; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 30; LockLevel = 30; MaxLockLevel = 35; // Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(45, 450))); } /////////////////////////////////////// Books if (Utility.RandomDouble() < 0.10) { DropItem(new TamersHandbookVol1()); } if (Utility.RandomDouble() < 0.10) { DropItem(new TamersHandbookVol2()); } if (Utility.RandomDouble() < 0.10) { DropItem(new TamersHandbookVol3()); } if (Utility.RandomDouble() < 0.10) { DropItem(new TamersHandbookVol4()); } if (Utility.RandomDouble() < 0.10) { DropItem(new TamersHandbookVol5()); } /////////////////////////////////////// Meats if (Utility.RandomDouble() < 0.15) { DropItem(new Bacon()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Sausage()); } /////////////////////////////////////// Eating Utensils if (Utility.RandomDouble() < 0.08) { DropItem(new KnifeLeft()); } if (Utility.RandomDouble() < 0.08) { DropItem(new KnifeRight()); } if (Utility.RandomDouble() < 0.08) { DropItem(new PewterMug()); } if (Utility.RandomDouble() < 0.08) { DropItem(new Plate()); } if (Utility.RandomDouble() < 0.08) { DropItem(new SpoonLeft()); } if (Utility.RandomDouble() < 0.08) { DropItem(new SpoonRight()); } /////////////////////////////////////// Jewelry if (Utility.RandomDouble() < 0.04) { DropItem(new Agate()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Beryl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new ChromeDiopside()); } if (Utility.RandomDouble() < 0.04) { DropItem(new FireOpal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new MoonstoneCustom()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Onyx()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Opal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Pearl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new TurquoiseCustom()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Bloodstone()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Citrine()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Demantoid()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Jasper()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lolite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lupis()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Peridot()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Tsavorite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Zircon()); } /////////////////////////////////////// Supplies if (Utility.RandomDouble() < 0.15) { DropItem(new Arrow(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bolt(Utility.Random(17, 22))); } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.Random(17, 22); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.15) { DropItem(new Bandage(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bedroll()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bottle(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Lockpick(Utility.Random(17, 22))); } Item PotionLoot = Loot.RandomPotion(); DropItem(PotionLoot); if (Utility.RandomDouble() < 0.20) { DropItem(new LesserPoisonPotion()); } if (Utility.RandomDouble() < 0.15) { DropItem(new PoisonPotion()); } /////////////////////////////////////// Tools if (Utility.RandomDouble() < 0.15) { DropItem(new FishingPole()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Shovel()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Skillet()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } if (Utility.RandomDouble() < 0.15) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(38)) { case 0: weapon = new Hatchet(); break; case 1: weapon = new Bow(); break; case 2: weapon = new Crossbow(); break; case 3: weapon = new Club(); break; case 4: weapon = new Mace(); break; case 5: weapon = new Maul(); break; case 6: weapon = new Pitchfork(); break; case 7: weapon = new ShortSpear(); break; case 8: weapon = new GnarledStaff(); break; case 9: weapon = new ShepherdsCrook(); break; case 10: weapon = new Cutlass(); break; case 11: weapon = new Katana(); break; case 12: weapon = new Kryss(); break; case 13: weapon = new Scimitar(); break; case 14: weapon = new AssassinSpike(); break; case 15: weapon = new DiamondMace(); break; case 16: weapon = new Leafblade(); break; case 17: weapon = new MagicalShortbow(); break; case 18: weapon = new RadiantScimitar(); break; case 19: weapon = new WildStaff(); break; case 20: weapon = new Axe(); break; case 21: weapon = new ExecutionersAxe(); break; case 22: weapon = new Pickaxe(); break; case 23: weapon = new TwoHandedAxe(); break; case 24: weapon = new WarAxe(); break; case 25: weapon = new HeavyCrossbow(); break; case 26: weapon = new HammerPick(); break; case 27: weapon = new WarMace(); break; case 28: weapon = new Spear(); break; case 29: weapon = new WarFork(); break; case 30: weapon = new BlackStaff(); break; case 31: weapon = new QuarterStaff(); break; case 32: weapon = new Longsword(); break; case 33: weapon = new ElvenCompositeLongbow(); break; case 34: weapon = new ElvenMachete(); break; case 35: weapon = new ElvenSpellblade(); break; case 36: weapon = new RuneBlade(); break; default: weapon = new Dagger(); break; } BaseRunicTool.ApplyAttributesTo(weapon, 2, 22, 25); weapon.Hue = 285; weapon.WeaponAttributes.HitLeechStam = 5; weapon.Attributes.BonusHits = 10; DropItem(weapon); } if (Utility.RandomDouble() < 0.15) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(13)) { case 0: armor = new FemaleStuddedChest(); break; case 1: armor = new StuddedArms(); break; case 2: armor = new StuddedBustierArms(); break; case 3: armor = new StuddedGloves(); break; case 4: armor = new StuddedGorget(); break; case 5: armor = new ChainCoif(); break; case 6: armor = new ChainChest(); break; case 7: armor = new ChainLegs(); break; case 8: armor = new RingmailArms(); break; case 9: armor = new RingmailChest(); break; case 10: armor = new RingmailGloves(); break; case 11: armor = new RingmailLegs(); break; default: armor = new StuddedChest(); break; } BaseRunicTool.ApplyAttributesTo(armor, 3, 22, 25); armor.Hue = 285; armor.Attributes.WeaponDamage = 3; DropItem(armor); } if (Utility.RandomDouble() < 0.15) { BaseHat hat = Loot.RandomHat(true); switch (Utility.Random(5)) { case 0: hat = new BearMask(); break; case 1: hat = new DeerMask(); break; case 2: hat = new FeatheredHat(); break; case 3: hat = new WizardsHat(); break; default: hat = new TribalMask(); break; } BaseRunicTool.ApplyAttributesTo(hat, 3, 22, 25); hat.Hue = 285; hat.Attributes.BonusHits = 10; hat.Attributes.SpellDamage = 5; hat.Resistances.Energy = 10; DropItem(hat); } if (Utility.RandomDouble() < 0.15) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 3, 22, 25); clothing.Hue = 285; clothing.Attributes.BonusHits = 5; clothing.Attributes.DefendChance = 3; clothing.Resistances.Physical = 5; DropItem(clothing); } if (Utility.RandomDouble() < 0.15) { BaseShield shield = new WoodenKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield, 3, 22, 25); } shield.Hue = 285; shield.Attributes.BonusHits = 10; DropItem(shield); } if (Utility.RandomDouble() < 0.15) { BaseJewel bracelet = new GoldBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 3, 22, 25); } bracelet.Hue = 285; bracelet.Attributes.WeaponDamage = 5; bracelet.Attributes.DefendChance = 2; bracelet.Resistances.Fire = 5; DropItem(bracelet); } if (Utility.RandomDouble() < 0.15) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 3, 22, 25); } earrings.Hue = 285; earrings.Attributes.WeaponDamage = 5; earrings.Attributes.DefendChance = 3; earrings.Resistances.Cold = 5; DropItem(earrings); } if (Utility.RandomDouble() < 0.15) { BaseJewel necklace = new GoldNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 3, 22, 25); } necklace.Hue = 285; necklace.Attributes.WeaponDamage = 5; necklace.Attributes.DefendChance = 5; necklace.Resistances.Energy = 5; DropItem(necklace); } if (Utility.RandomDouble() < 0.15) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 3, 22, 25); } ring.Hue = 285; ring.Attributes.WeaponDamage = 5; ring.Attributes.DefendChance = 2; ring.Resistances.Poison = 5; DropItem(ring); } }
public OphidianPalaceChest() : base(0x2DF1) { Name = "a treasure chest -45-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 45; LockLevel = 45; MaxLockLevel = 50; // Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(125, 450))); } /////////////////////////////////////// Jewelry Item GemLoot = Loot.RandomGem(); DropItem(GemLoot); if (Utility.RandomDouble() < 0.04) { DropItem(new Agate()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Beryl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new ChromeDiopside()); } if (Utility.RandomDouble() < 0.04) { DropItem(new FireOpal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new MoonstoneCustom()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Onyx()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Opal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Pearl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new TurquoiseCustom()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Bloodstone()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Citrine()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Demantoid()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Jasper()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lolite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lupis()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Peridot()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Tsavorite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Zircon()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Amber()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Amethyst()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Andalusite()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Chrysoberyl()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Garnet()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Jade()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Mandarin()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Morganite()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Paraiba()); } if (Utility.RandomDouble() < 0.02) { DropItem(new TigerEye()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Tourmaline()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Alexandrite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Ametrine()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Kunzite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Ruby()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Sapphire()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Tanzanite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Topaz()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Zultanite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Diamond()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Emerald()); } if (Utility.RandomDouble() < 0.01) { DropItem(new PinkQuartz()); } if (Utility.RandomDouble() < 0.01) { DropItem(new StarSapphire()); } /////////////////////////////////////// Supplies Item ReagentLoot1 = Loot.RandomReagent(); ReagentLoot1.Amount = Utility.Random(25, 35); DropItem(ReagentLoot1); Item ReagentLoot2 = Loot.RandomReagent(); ReagentLoot2.Amount = Utility.Random(25, 35); DropItem(ReagentLoot2); Item ReagentLoot3 = Loot.RandomReagent(); ReagentLoot3.Amount = Utility.Random(25, 35); DropItem(ReagentLoot3); if (Utility.RandomDouble() < 0.15) { DropItem(new Arrow(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bolt(Utility.Random(17, 22))); } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.Random(17, 22); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.15) { DropItem(new Bandage(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bedroll()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bottle(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Lockpick(Utility.Random(17, 22))); } if (Utility.RandomDouble() < 0.20) { DropItem(new GreaterCurePotion()); } if (Utility.RandomDouble() < 0.15) { DropItem(new GreaterHealPotion()); } Item PotionLoot1 = Loot.RandomPotion(); DropItem(PotionLoot1); Item PotionLoot2 = Loot.RandomPotion(); DropItem(PotionLoot2); Item PotionLoot3 = Loot.RandomPotion(); DropItem(PotionLoot3); /////////////////////////////////////// Tools if (Utility.RandomDouble() < 0.15) { DropItem(new FishingPole()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Shovel()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Skillet()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } if (Utility.RandomDouble() < 0.01) { DropItem(new SuperRod()); } if (Utility.RandomDouble() < 0.15) { BaseWeapon weapon1 = Loot.RandomWeapon(true); BaseRunicTool.ApplyAttributesTo(weapon1, 5, 30, 35); DropItem(weapon1); } if (Utility.RandomDouble() < 0.15) { BaseWeapon weapon2 = Loot.RandomWeapon(true); BaseRunicTool.ApplyAttributesTo(weapon2, 5, 30, 35); DropItem(weapon2); } if (Utility.RandomDouble() < 0.15) { BaseWeapon weapon3 = Loot.RandomWeapon(true); BaseRunicTool.ApplyAttributesTo(weapon3, 5, 30, 35); DropItem(weapon3); } if (Utility.RandomDouble() < 0.15) { BaseArmor armor1 = Loot.RandomArmor(true); BaseRunicTool.ApplyAttributesTo(armor1, 5, 30, 35); DropItem(armor1); } if (Utility.RandomDouble() < 0.15) { BaseArmor armor2 = Loot.RandomArmor(true); BaseRunicTool.ApplyAttributesTo(armor2, 5, 30, 35); DropItem(armor2); } if (Utility.RandomDouble() < 0.15) { BaseArmor armor3 = Loot.RandomArmor(true); BaseRunicTool.ApplyAttributesTo(armor3, 5, 30, 35); DropItem(armor3); } if (Utility.RandomDouble() < 0.15) { BaseHat hat = Loot.RandomHat(true); switch (Utility.Random(5)) { case 0: hat = new BearMask(); break; case 1: hat = new DeerMask(); break; case 2: hat = new FeatheredHat(); break; case 3: hat = new WizardsHat(); break; default: hat = new TribalMask(); break; } BaseRunicTool.ApplyAttributesTo(hat, 5, 30, 35); DropItem(hat); } if (Utility.RandomDouble() < 0.15) { BaseClothing clothing1 = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing1, 5, 30, 35); DropItem(clothing1); } if (Utility.RandomDouble() < 0.15) { BaseClothing clothing2 = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing2, 5, 30, 35); DropItem(clothing2); } if (Utility.RandomDouble() < 0.15) { BaseShield shield1 = new JewelShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield1, 5, 30, 35); } DropItem(shield1); } if (Utility.RandomDouble() < 0.15) { BaseShield shield2 = new ScarabShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield2, 4, 25, 35); } DropItem(shield2); } if (Utility.RandomDouble() < 0.15) { BaseJewel bracelet = new GoldBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 5, 30, 35); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.15) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 5, 30, 35); } DropItem(earrings); } if (Utility.RandomDouble() < 0.15) { BaseJewel necklace = new GoldNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 5, 30, 35); } DropItem(necklace); } if (Utility.RandomDouble() < 0.15) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 5, 30, 35); } DropItem(ring); } }
public static void MarkHat( Mobile crafter, BaseHat hat ) { if ( false == hat.PlayerConstructed && (crafter.Skills[SkillName.Inscribe]).Value == SpellCraftConfig.MaximumSkillValue && (crafter.Skills[SkillName.Alchemy]).Value == SpellCraftConfig.MaximumSkillValue && Utility.RandomDouble() < SpellCraftConfig.CraftersMarkChance ) { hat.PlayerConstructed = true; hat.Crafter = crafter; } }
private void Fill(int level) { TrapType = TrapType.ExplosionTrap; TrapPower = level * 25; TrapLevel = level; Locked = true; switch (level) { case 1: RequiredSkill = 36; break; case 2: RequiredSkill = 76; break; case 3: RequiredSkill = 84; break; case 4: RequiredSkill = 92; break; case 5: RequiredSkill = 100; break; } LockLevel = RequiredSkill - 10; MaxLockLevel = RequiredSkill + 40; DropItem(new Gold(level * 200)); for (int i = 0; i < level; ++i) { DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } for (int i = 0; i < level * 2; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); } DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); } DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); DropItem(item); } } for (int i = 0; i < level; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); DropItem(item); } for (int i = 0; i < level; i++) { Item item = Loot.RandomGem(); DropItem(item); } DropItem(new TreasureMap(level + 1, (Utility.RandomBool() ? Map.Felucca : Map.Trammel))); }
public MongbatHideoutTreasureChest1() : base(0xE43) { Name = "a treasure chest -40-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 40; LockLevel = 40; MaxLockLevel = 80; /////////////////////////////////// Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(20, 300))); } /////////////////////////////////////// Supplies switch (Utility.Random(19)) { case 0: DropItem(new Board(60)); break; case 1: DropItem(new BoltOfCloth(60)); break; case 2: DropItem(new Bottle(60)); break; case 3: DropItem(new CopperWire(60)); break; case 4: DropItem(new Cotton(60)); break; case 5: DropItem(new DarkYarn(60)); break; case 6: DropItem(new Feather(60)); break; case 7: DropItem(new Flax(60)); break; case 8: DropItem(new Gears(60)); break; case 9: DropItem(new GoldWire(60)); break; case 10: DropItem(new IronIngot(60)); break; case 11: DropItem(new IronWire(60)); break; case 12: DropItem(new Leather(60)); break; case 13: DropItem(new LightYarn(60)); break; case 14: DropItem(new Shaft(60)); break; case 15: DropItem(new SilverWire(60)); break; case 16: DropItem(new SpoolOfThread(60)); break; case 17: DropItem(new Springs(60)); break; case 18: DropItem(new Wool(60)); break; } switch (Utility.Random(5)) { case 0: DropItem(new BeetleEgg(15)); break; case 1: DropItem(new FishScale(15)); break; case 2: DropItem(new Nirnroot(15)); break; case 3: DropItem(new SerpentScale(15)); break; case 4: DropItem(new ThunderStone(15)); break; } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.RandomMinMax(5, 10); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.05) { DropItem(new SackFlour()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } /////////////////////////////////////// LV 1-15 if (Utility.RandomDouble() < 0.10) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(36)) { case 0: weapon = new Hatchet(); break; // Lv1 case 1: weapon = new Axe(); break; // Lv5 case 2: weapon = new BattleAxe(); break; // Lv10 case 3: weapon = new Bow(); break; // Lv1 case 4: weapon = new Crossbow(); break; // Lv1 case 5: weapon = new Balestra(); break; // Lv5 case 6: weapon = new ElvenLeafBow(); break; // Lv5 case 7: weapon = new MagicalShortbow(); break; // Lv10 case 8: weapon = new RepeatingCrossbow(); break; // Lv10 case 9: weapon = new SkinningKnife(); break; // Lv1 case 10: weapon = new Cleaver(); break; // Lv5 case 11: weapon = new Dagger(); break; // Lv5 case 12: weapon = new ButcherKnife(); break; // Lv10 case 13: weapon = new EbonyDagger(); break; // Lv10 case 14: weapon = new Sai(); break; // Lv15 case 15: weapon = new Club(); break; // Lv1 case 16: weapon = new Nunchaku(); break; // Lv1 case 17: weapon = new Mace(); break; // Lv5 case 18: weapon = new Maul(); break; // Lv10 case 19: weapon = new Scepter(); break; // Lv15 case 20: weapon = new Pitchfork(); break; // Lv1 case 21: weapon = new ShortSpear(); break; // Lv5 case 22: weapon = new Pilum(); break; // Lv10 case 23: weapon = new Pike(); break; // Lv15 case 24: weapon = new GnarledStaff(); break; // Lv1 case 25: weapon = new ShepherdsCrook(); break; // Lv1 case 26: weapon = new QuarterStaff(); break; // Lv10 case 27: weapon = new ReptilianStaff(); break; // Lv15 case 28: weapon = new Bokuto(); break; // Lv1 case 29: weapon = new BoneHarvester(); break; // Lv1 case 30: weapon = new Cutlass(); break; // Lv1 case 31: weapon = new ElvenMachete(); break; // Lv1 case 32: weapon = new Kryss(); break; // Lv1 case 33: weapon = new EbonyRapier(); break; // Lv10 case 34: weapon = new Scimitar(); break; // Lv10 default: weapon = new Leafblade(); break; // Lv1 } switch (Utility.Random(14)) { case 0: weapon.Attributes.AttackChance = Utility.RandomMinMax(1, 5); break; case 1: weapon.Attributes.DefendChance = Utility.RandomMinMax(1, 5); break; case 2: weapon.Attributes.Luck = Utility.RandomMinMax(1, 10); break; case 3: weapon.Attributes.WeaponSpeed = Utility.RandomMinMax(1, 25); break; case 4: weapon.WeaponAttributes.HitDispel = Utility.RandomMinMax(2, 10); break; case 5: weapon.WeaponAttributes.HitFireball = Utility.RandomMinMax(2, 10); break; case 6: weapon.WeaponAttributes.HitHarm = Utility.RandomMinMax(2, 10); break; case 7: weapon.WeaponAttributes.HitLeechHits = Utility.RandomMinMax(2, 10); break; case 8: weapon.WeaponAttributes.HitLeechMana = Utility.RandomMinMax(2, 10); break; case 9: weapon.WeaponAttributes.HitLeechStam = Utility.RandomMinMax(2, 10); break; case 10: weapon.WeaponAttributes.HitLightning = Utility.RandomMinMax(2, 10); break; case 11: weapon.WeaponAttributes.HitLowerAttack = Utility.RandomMinMax(2, 10); break; case 12: weapon.WeaponAttributes.HitLowerDefend = Utility.RandomMinMax(2, 10); break; default: weapon.Attributes.WeaponDamage = Utility.RandomMinMax(1, 10); break; } DropItem(weapon); } /////////////////////////////////////// LV 1-15 if (Utility.RandomDouble() < 0.10) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(39)) { case 0: armor = new LeatherArms(); break; // Lv1 case 1: armor = new LeatherBustierArms(); break; // Lv1 case 2: armor = new LeatherCap(); break; // Lv1 case 3: armor = new LeatherChest(); break; // Lv1 case 4: armor = new LeatherGloves(); break; // Lv1 case 5: armor = new LeatherGorget(); break; // Lv1 case 6: armor = new LeatherLegs(); break; // Lv1 case 7: armor = new LeatherShorts(); break; // Lv1 case 8: armor = new LeatherSkirt(); break; // Lv1 case 9: armor = new FemaleLeafChest(); break; // Lv1 case 10: armor = new LeafArms(); break; // Lv3 case 11: armor = new LeafChest(); break; // Lv3 case 12: armor = new LeafGloves(); break; // Lv3 case 13: armor = new LeafGorget(); break; // Lv3 case 14: armor = new LeafLegs(); break; // Lv3 case 15: armor = new LeafTonlet(); break; // Lv3 case 16: armor = new LeatherDo(); break; // Lv6 case 17: armor = new LeatherHaidate(); break; // Lv6 case 18: armor = new LeatherHiroSode(); break; // Lv6 case 19: armor = new LeatherJingasa(); break; // Lv6 case 20: armor = new LeatherMempo(); break; // Lv6 case 21: armor = new LeatherNinjaHood(); break; // Lv6 case 22: armor = new LeatherNinjaJacket(); break; // Lv6 case 23: armor = new LeatherNinjaMitts(); break; // Lv6 case 24: armor = new LeatherNinjaPants(); break; // Lv6 case 25: armor = new LeatherSuneate(); break; // Lv6 case 26: armor = new EbonsilkArms(); break; // Lv9 case 27: armor = new EbonsilkChest(); break; // Lv9 case 28: armor = new EbonsilkGloves(); break; // Lv9 case 29: armor = new EbonsilkGorget(); break; // Lv9 case 30: armor = new EbonsilkLegs(); break; // Lv9 case 31: armor = new EbonsilkTiara(); break; // Lv9 case 32: armor = new ChitinArms(); break; // Lv12 case 33: armor = new ChitinChest(); break; // Lv12 case 34: armor = new ChitinGloves(); break; // Lv12 case 35: armor = new ChitinGorget(); break; // Lv12 case 36: armor = new ChitinHelmet(); break; // Lv12 case 37: armor = new ChitinLegs(); break; // Lv12 default: armor = new FemaleLeatherChest(); break; // Lv1 } BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50); DropItem(armor); } if (Utility.RandomDouble() < 0.05) { BaseHat hat = Loot.RandomHat(true); BaseRunicTool.ApplyAttributesTo(hat, 3, 5, 10); DropItem(hat); } if (Utility.RandomDouble() < 0.05) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 3, 5, 10); DropItem(clothing); } if (Utility.RandomDouble() < 0.05) { BaseShield shield1 = new Buckler(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50); } DropItem(shield1); } if (Utility.RandomDouble() < 0.05) { BaseShield shield2 = new WoodenShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50); } DropItem(shield2); } if (Utility.RandomDouble() < 0.05) { BaseShield shield3 = new AmmoniteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50); } DropItem(shield3); } if (Utility.RandomDouble() < 0.05) { BaseShield shield4 = new BronzeShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield4, 3, 5, 50); } DropItem(shield4); } if (Utility.RandomDouble() < 0.05) { BaseShield shield5 = new MetalShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield5, 3, 5, 50); } DropItem(shield5); } if (Utility.RandomDouble() < 0.05) { BaseShield shield6 = new WoodenKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield6, 3, 5, 50); } DropItem(shield6); } if (Utility.RandomDouble() < 0.05) { BaseJewel bracelet = new SilverBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 3, 5, 10); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.05) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 3, 5, 10); } DropItem(earrings); } if (Utility.RandomDouble() < 0.05) { BaseJewel necklace = new SilverNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 3, 5, 10); } DropItem(necklace); } if (Utility.RandomDouble() < 0.05) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 3, 5, 10); } DropItem(ring); } }
public static void Fill(LockableContainer cont, int luck, int level, bool isSos) { cont.Movable = false; cont.Locked = true; int numberItems; if (level == 0) { cont.LockLevel = 0; // Can't be unlocked cont.DropItem(new Gold(Utility.RandomMinMax(50, 100))); if (Utility.RandomDouble() < 0.75) { cont.DropItem(new TreasureMap(0, Map.Trammel)); } } else { cont.TrapType = TrapType.ExplosionTrap; cont.TrapPower = level * 25; cont.TrapLevel = level; switch (level) { case 1: cont.RequiredSkill = 5; break; case 2: cont.RequiredSkill = 45; break; case 3: cont.RequiredSkill = 65; break; case 4: cont.RequiredSkill = 75; break; case 5: cont.RequiredSkill = 75; break; case 6: cont.RequiredSkill = 80; break; case 7: cont.RequiredSkill = 80; break; } cont.LockLevel = cont.RequiredSkill - 10; cont.MaxLockLevel = cont.RequiredSkill + 40; cont.DropItem(new Gold(level * 5000)); for (int i = 0; i < level * 5; ++i) { cont.DropItem(Loot.RandomScroll(0, 63)); } double propsScale = 1.0; if (Core.SE) { switch (level) { case 1: numberItems = 32; propsScale = 0.5625; break; case 2: numberItems = 40; propsScale = 0.6875; break; case 3: numberItems = 48; propsScale = 0.875; break; case 4: numberItems = 56; break; case 5: numberItems = 64; break; case 6: numberItems = 72; break; case 7: numberItems = 80; break; default: numberItems = 0; break; } } else { numberItems = level * 6; } for (int i = 0; i < numberItems; ++i) { Item item; item = Loot.RandomArmorOrShieldOrWeapon(); if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); cont.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); cont.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; cont.DropItem(item); } else if (item is BaseJewel) { cont.DropItem(item); } } } int reagents; if (level == 0) { reagents = 12; } else { reagents = level + 1; } for (int i = 0; i < reagents; i++) { Item item = Loot.RandomReagent(); item.Amount = Utility.RandomMinMax(40, 60); cont.DropItem(item); } int gems; if (level == 0) { gems = 2; } else { gems = (level * 3) + 1; } for (int i = 0; i < gems; i++) { Item item = Loot.RandomGem(); cont.DropItem(item); } Item arty = null; Item special = null; if (isSos) { if (0.009 * level > Utility.RandomDouble()) { special = new TreasureMap(Utility.RandomMinMax(level, Math.Min(7, level + 1)), cont.Map); } } else { if (level >= 7) { if (0.25 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } else if (level >= 6) { if (0.10 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } else if (level >= 5) { if (0.25 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } else if (.10 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } if (special != null) { cont.DropItem(special); } }
public IguanaCoveTreasureChest1() : base(0xE43) { Name = "a treasure chest -40-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 40; LockLevel = 40; MaxLockLevel = 80; /////////////////////////////////// Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(20, 300))); } /////////////////////////////////////// Supplies switch (Utility.Random(19)) { case 0: DropItem(new Board(70)); break; case 1: DropItem(new BoltOfCloth(70)); break; case 2: DropItem(new Bottle(70)); break; case 3: DropItem(new CopperWire(70)); break; case 4: DropItem(new Cotton(70)); break; case 5: DropItem(new DarkYarn(70)); break; case 6: DropItem(new Feather(70)); break; case 7: DropItem(new Flax(70)); break; case 8: DropItem(new Gears(70)); break; case 9: DropItem(new GoldWire(70)); break; case 10: DropItem(new IronIngot(70)); break; case 11: DropItem(new IronWire(70)); break; case 12: DropItem(new Leather(70)); break; case 13: DropItem(new LightYarn(70)); break; case 14: DropItem(new Shaft(70)); break; case 15: DropItem(new SilverWire(70)); break; case 16: DropItem(new SpoolOfThread(70)); break; case 17: DropItem(new Springs(70)); break; case 18: DropItem(new Wool(70)); break; } switch (Utility.Random(5)) { case 0: DropItem(new ArcaneStone(15)); break; case 1: DropItem(new BeetleEgg(15)); break; case 2: DropItem(new DragonScale(15)); break; case 3: DropItem(new FishScale(15)); break; case 4: DropItem(new SerpentScale(15)); break; } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.RandomMinMax(5, 10); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.05) { DropItem(new SackFlour()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } /////////////////////////////////////// LV 20-30 if (Utility.RandomDouble() < 0.10) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(31)) { case 0: weapon = new DoubleAxe(); break; // Lv20 case 1: weapon = new TwoHandedAxe(); break; // Lv25 case 2: weapon = new WarAxe(); break; // Lv30 case 3: weapon = new CompositeBow(); break; // Lv20 case 4: weapon = new EbonyCrossbow(); break; // Lv20 case 5: weapon = new FireBow(); break; // Lv25 case 6: weapon = new GrassBow(); break; // Lv25 case 7: weapon = new IceBow(); break; // Lv25 case 8: weapon = new LightningBow(); break; // Lv25 case 9: weapon = new EbonyWarBow(); break; // Lv30 case 10: weapon = new PistolCrossbow(); break; // Lv30 case 11: weapon = new EbonyDualDaggers(); break; // Lv20 case 12: weapon = new Tekagi(); break; // Lv25 case 13: weapon = new ElvenSpellblade(); break; // Lv30 case 14: weapon = new WarMace(); break; // Lv20 case 15: weapon = new Tessen(); break; // Lv25 case 16: weapon = new HammerPick(); break; // Lv30 case 17: weapon = new Spear(); break; // Lv20 case 18: weapon = new BoneSpear(); break; // Lv25 case 19: weapon = new BubbleStaff(); break; // Lv25 case 20: weapon = new CrystalStaff(); break; // Lv25 case 21: weapon = new EnergyStaff(); break; // Lv25 case 22: weapon = new FireStaff(); break; // Lv25 case 23: weapon = new VineStaff(); break; // Lv25 case 24: weapon = new BlackStaff(); break; // Lv30 case 25: weapon = new VikingSword(); break; // Lv20 case 26: weapon = new Wakizashi(); break; // Lv20 case 27: weapon = new Daisho(); break; // Lv30 case 28: weapon = new EbonyScimitar(); break; // Lv30 case 29: weapon = new RuneBlade(); break; // Lv30 default: weapon = new Longsword(); break; // Lv20 } BaseRunicTool.ApplyAttributesTo(weapon, 2, 5, 50); DropItem(weapon); } /////////////////////////////////////// LV 18-27 if (Utility.RandomDouble() < 0.10) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(18)) { case 0: armor = new HideFemaleChest(); break; // Lv18 case 1: armor = new HideGloves(); break; // Lv18 case 2: armor = new HideGorget(); break; // Lv18 case 3: armor = new HidePants(); break; // Lv18 case 4: armor = new HidePauldrons(); break; // Lv18 case 5: armor = new StuddedDo(); break; // Lv21 case 6: armor = new StuddedHaidate(); break; // Lv21 case 7: armor = new StuddedHiroSode(); break; // Lv21 case 8: armor = new StuddedMempo(); break; // Lv21 case 9: armor = new StuddedSuneate(); break; // Lv21 case 10: armor = new VikingStuddedArms(); break; // Lv24 case 11: armor = new VikingStuddedCap(); break; // Lv24 case 12: armor = new VikingStuddedChest(); break; // Lv24 case 13: armor = new VikingStuddedLegs(); break; // Lv24 case 14: armor = new ChainChest(); break; // Lv27 case 15: armor = new ChainCoif(); break; // Lv27 case 16: armor = new ChainLegs(); break; // Lv27 default: armor = new HideChest(); break; // Lv18 } BaseRunicTool.ApplyAttributesTo(armor, 3, 5, 50); DropItem(armor); } if (Utility.RandomDouble() < 0.05) { BaseHat hat = Loot.RandomHat(true); BaseRunicTool.ApplyAttributesTo(hat, 3, 12, 15); DropItem(hat); } if (Utility.RandomDouble() < 0.05) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 3, 12, 15); DropItem(clothing); } if (Utility.RandomDouble() < 0.05) { BaseShield shield1 = new Buckler(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield1, 3, 5, 50); } DropItem(shield1); } if (Utility.RandomDouble() < 0.05) { BaseShield shield2 = new WoodenShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield2, 3, 5, 50); } DropItem(shield2); } if (Utility.RandomDouble() < 0.05) { BaseShield shield3 = new AmmoniteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield3, 3, 5, 50); } DropItem(shield3); } if (Utility.RandomDouble() < 0.05) { BaseShield shield4 = new BronzeShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield4, 3, 5, 50); } DropItem(shield4); } if (Utility.RandomDouble() < 0.05) { BaseShield shield5 = new MetalShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield5, 3, 5, 50); } DropItem(shield5); } if (Utility.RandomDouble() < 0.05) { BaseShield shield6 = new WoodenKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield6, 3, 5, 50); } DropItem(shield6); } if (Utility.RandomDouble() < 0.05) { BaseJewel bracelet = new SilverBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 3, 12, 15); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.05) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 3, 12, 15); } DropItem(earrings); } if (Utility.RandomDouble() < 0.05) { BaseJewel necklace = new SilverNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 3, 12, 15); } DropItem(necklace); } if (Utility.RandomDouble() < 0.05) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 3, 12, 15); } DropItem(ring); } }
protected override void OnTarget(Mobile from, object targeted) { if (this.m_Powder.Deleted || this.m_Powder.UsesRemaining <= 0) { from.SendLocalizedMessage(1049086); // You have used up your powder of temperament. return; } if (targeted is IDurability && targeted is Item) { IDurability wearable = (IDurability)targeted; Item item = (Item)targeted; if (!wearable.CanFortify) { from.SendLocalizedMessage(1049083); // You cannot use the powder on that item. return; } #region SF Imbuing if (item is BaseArmor) { BaseArmor Ti = (BaseArmor)item as BaseArmor; if (Ti.Attributes.Brittle > 0) { from.SendLocalizedMessage(1149799); // That cannot be used on brittle items. return; } } else if (item is BaseJewel) { BaseJewel Ti = (BaseJewel)item as BaseJewel; if (Ti.Attributes.Brittle > 0) { from.SendLocalizedMessage(1149799); // That cannot be used on brittle items. return; } } else if (item is BaseHat) { BaseHat Ti = (BaseHat)item as BaseHat; if (Ti.Attributes.Brittle > 0) { from.SendLocalizedMessage(1149799); // That cannot be used on brittle items. return; } } else if (item is BaseWeapon) { BaseWeapon Ti = (BaseWeapon)item as BaseWeapon; if (Ti.Attributes.Brittle > 0) { from.SendLocalizedMessage(1149799); // That cannot be used on brittle items. return; } } #endregion if ((item.IsChildOf(from.Backpack) || (Core.ML && item.Parent == from)) && this.m_Powder.IsChildOf(from.Backpack)) { int origMaxHP = wearable.MaxHitPoints; int origCurHP = wearable.HitPoints; if (origMaxHP > 0) { int initMaxHP = Core.AOS ? 255 : wearable.InitMaxHits; wearable.UnscaleDurability(); if (wearable.MaxHitPoints < initMaxHP) { int bonus = initMaxHP - wearable.MaxHitPoints; if (bonus > 10) { bonus = 10; } wearable.MaxHitPoints += bonus; wearable.HitPoints += bonus; wearable.ScaleDurability(); if (wearable.MaxHitPoints > 255) { wearable.MaxHitPoints = 255; } if (wearable.HitPoints > 255) { wearable.HitPoints = 255; } if (wearable.MaxHitPoints > origMaxHP) { from.SendLocalizedMessage(1049084); // You successfully use the powder on the item. from.PlaySound(0x247); --this.m_Powder.UsesRemaining; if (this.m_Powder.UsesRemaining <= 0) { from.SendLocalizedMessage(1049086); // You have used up your powder of fortifying. this.m_Powder.Delete(); } } else { wearable.MaxHitPoints = origMaxHP; wearable.HitPoints = origCurHP; from.SendLocalizedMessage(1049085); // The item cannot be improved any further. } } else { from.SendLocalizedMessage(1049085); // The item cannot be improved any further. wearable.ScaleDurability(); } } else { from.SendLocalizedMessage(1049083); // You cannot use the powder on that item. } } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } } else { from.SendLocalizedMessage(1049083); // You cannot use the powder on that item. } }
public ChestOfHeirlooms() : base(0x2811) { Locked = true; LockLevel = 95; MaxLockLevel = 140; RequiredSkill = 95; TrapType = TrapType.ExplosionTrap; TrapLevel = 10; TrapPower = 100; GumpID = 0x10B; for (int i = 0; i < 10; ++i) { Item item = Loot.ChestOfHeirloomsContains(); if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount = Utility.RandomMinMax(1, 5); int min = 20; int max = 80; BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount = Utility.RandomMinMax(1, 5); int min = 20; int max = 80; BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount = Utility.RandomMinMax(1, 5); int min = 20; int max = 80; BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } DropItem(item); } else if (item is BaseJewel) { int attributeCount = Utility.RandomMinMax(1, 5); int min = 20; int max = 80; BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); DropItem(item); } } }
private void Fill(int level) { this.TrapType = TrapType.ExplosionTrap; this.TrapPower = level * 25; this.TrapLevel = level; this.Locked = true; switch (level) { case 1: this.RequiredSkill = 36; break; case 2: this.RequiredSkill = 76; break; case 3: this.RequiredSkill = 84; break; case 4: this.RequiredSkill = 92; break; case 5: this.RequiredSkill = 100; break; } this.LockLevel = this.RequiredSkill - 10; this.MaxLockLevel = this.RequiredSkill + 40; this.DropItem(new Gold(level * 200)); for (int i = 0; i < level; ++i) { this.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } for (int i = 0; i < level * 2; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } this.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } this.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } this.DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); this.DropItem(item); } } for (int i = 0; i < level; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); this.DropItem(item); } for (int i = 0; i < level; i++) { Item item = Loot.RandomGem(); this.DropItem(item); } this.DropItem(new TreasureMap(level + 1, (Utility.RandomBool() ? Map.Felucca : Map.Trammel))); // this.DropItem(new PowerScroll(), 120); switch (Utility.Random(2)) { case 0: break; case 1: switch (Utility.Random(38)) { case 0: DropItem(new PowerScroll(SkillName.Swords, 120)); break; case 1: DropItem(new PowerScroll(SkillName.Fencing, 120)); break; case 2: DropItem(new PowerScroll(SkillName.Archery, 120)); break; case 3: DropItem(new PowerScroll(SkillName.Parry, 120)); break; case 4: DropItem(new PowerScroll(SkillName.Tactics, 120)); break; case 5: DropItem(new PowerScroll(SkillName.Anatomy, 120)); break; case 6: DropItem(new PowerScroll(SkillName.Healing, 120)); break; case 7: DropItem(new PowerScroll(SkillName.Magery, 120)); break; case 8: DropItem(new PowerScroll(SkillName.Meditation, 120)); break; case 9: DropItem(new PowerScroll(SkillName.EvalInt, 120)); break; case 10: DropItem(new PowerScroll(SkillName.MagicResist, 120)); break; case 11: DropItem(new PowerScroll(SkillName.AnimalTaming, 120)); break; case 12: DropItem(new PowerScroll(SkillName.AnimalLore, 120)); break; case 13: DropItem(new PowerScroll(SkillName.Veterinary, 120)); break; case 14: DropItem(new PowerScroll(SkillName.Musicianship, 120)); break; case 15: DropItem(new PowerScroll(SkillName.Provocation, 120)); break; case 16: DropItem(new PowerScroll(SkillName.Discordance, 120)); break; case 17: DropItem(new PowerScroll(SkillName.Peacemaking, 120)); break; case 18: DropItem(new PowerScroll(SkillName.Chivalry, 120)); break; case 19: DropItem(new PowerScroll(SkillName.Focus, 120)); break; case 20: DropItem(new PowerScroll(SkillName.Necromancy, 120)); break; case 21: DropItem(new PowerScroll(SkillName.Stealing, 120)); break; case 22: DropItem(new PowerScroll(SkillName.Stealth, 120)); break; case 23: DropItem(new PowerScroll(SkillName.Macing, 120)); break; case 24: DropItem(new PowerScroll(SkillName.Wrestling, 120)); break; case 25: DropItem(new PowerScroll(SkillName.Blacksmith, 120)); break; case 26: DropItem(new PowerScroll(SkillName.Tailoring, 120)); break; case 27: DropItem(new PowerScroll(SkillName.Tinkering, 120)); break; case 28: DropItem(new PowerScroll(SkillName.Mining, 120)); break; case 29: DropItem(new PowerScroll(SkillName.Carpentry, 120)); break; case 30: DropItem(new PowerScroll(SkillName.Alchemy, 120)); break; case 31: DropItem(new PowerScroll(SkillName.Fletching, 120)); break; case 32: DropItem(new PowerScroll(SkillName.Inscribe, 120)); break; case 33: DropItem(new PowerScroll(SkillName.Cooking, 120)); break; case 34: DropItem(new PowerScroll(SkillName.Cartography, 120)); break; case 35: DropItem(new PowerScroll(SkillName.Lumberjacking, 120)); break; case 36: DropItem(new PowerScroll(SkillName.Lockpicking, 120)); break; case 37: DropItem(new PowerScroll(SkillName.Fishing, 120)); break; } break; } }
public static void Fill(Mobile from, LockableContainer cont, int level, bool isSos) { var map = from.Map; var luck = from is PlayerMobile ? ((PlayerMobile)from).RealLuck : from.Luck; cont.Movable = false; cont.Locked = true; int count; if (level == 0) { cont.LockLevel = 0; // Can't be unlocked cont.DropItem(new Gold(Utility.RandomMinMax(50, 100))); if (Utility.RandomDouble() < 0.75) { cont.DropItem(new TreasureMap(0, Map.Trammel)); } } else { cont.TrapType = TrapType.ExplosionTrap; cont.TrapPower = level * 25; cont.TrapLevel = level; switch (level) { case 1: cont.RequiredSkill = 5; break; case 2: cont.RequiredSkill = 45; break; case 3: cont.RequiredSkill = 65; break; case 4: cont.RequiredSkill = 75; break; case 5: cont.RequiredSkill = 75; break; case 6: cont.RequiredSkill = 80; break; case 7: cont.RequiredSkill = 80; break; } cont.LockLevel = cont.RequiredSkill - 10; cont.MaxLockLevel = cont.RequiredSkill + 40; #region Gold cont.DropItem(new Gold(isSos ? level * 10000 : level * 5000)); #endregion #region Scrolls if (isSos) { switch (level) { default: count = 20; break; case 0: case 1: count = Utility.RandomMinMax(2, 5); break; case 2: count = Utility.RandomMinMax(10, 15); break; } } else { count = level * 5; } for (int i = 0; i < count; ++i) { cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } #endregion #region Magical Items double propsScale = 1.0; switch (level) { case 1: count = isSos ? Utility.RandomMinMax(2, 6) : 32; propsScale = 0.5625; break; case 2: count = isSos ? Utility.RandomMinMax(10, 15) : 40; propsScale = 0.6875; break; case 3: count = isSos ? Utility.RandomMinMax(15, 20) : 48; propsScale = 0.875; break; case 4: count = isSos ? Utility.RandomMinMax(15, 20) : 56; break; case 5: count = isSos ? Utility.RandomMinMax(15, 20) : 64; break; case 6: count = isSos ? Utility.RandomMinMax(15, 20) : 72; break; case 7: count = isSos ? Utility.RandomMinMax(15, 20) : 80; break; default: count = 0; break; } for (int i = 0; i < count; ++i) { Item item; item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); if (item != null && RandomItemGenerator.Enabled) { int min, max; GetRandomItemStat(out min, out max, propsScale); RunicReforging.GenerateRandomItem(item, luck, min, max, map); cont.DropItem(item); } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); cont.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); cont.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); cont.DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); cont.DropItem(item); } } } #endregion #region Reagents if (isSos) { switch (level) { default: count = Utility.RandomMinMax(45, 60); break; case 0: case 1: count = Utility.RandomMinMax(15, 20); break; case 2: count = Utility.RandomMinMax(25, 40); break; } } else { count = level == 0 ? 12 : Utility.RandomMinMax(40, 60) * (level + 1); } for (int i = 0; i < count; i++) { cont.DropItemStacked(Loot.RandomPossibleReagent()); } #endregion #region Gems if (level == 0) { count = 2; } else { count = (level * 3) + 1; } for (int i = 0; i < count; i++) { cont.DropItem(Loot.RandomGem()); } #endregion #region Imbuing Ingreds if (level > 1) { Item item = Loot.Construct(m_ImbuingIngreds[Utility.Random(m_ImbuingIngreds.Length)]); item.Amount = level; cont.DropItem(item); } #endregion Item arty = null; Item special = null; if (isSos) { if (0.004 * level > Utility.RandomDouble()) { arty = Loot.Construct(m_SOSArtifacts); } if (0.006 * level > Utility.RandomDouble()) { special = Loot.Construct(m_SOSDecor); } else if (0.009 * level > Utility.RandomDouble()) { special = new TreasureMap(Utility.RandomMinMax(level, Math.Min(7, level + 1)), cont.Map); } } else { if (level >= 7) { if (0.025 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelSevenOnly); } else if (0.10 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelFiveToSeven); } else if (0.25 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } arty = Loot.Construct(m_Artifacts); } else if (level >= 6) { if (0.025 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelFiveToSeven); } else if (0.20 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } arty = Loot.Construct(m_Artifacts); } else if (level >= 5) { if (0.005 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelFiveToSeven); } else if (0.15 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } else if (.10 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } if (arty != null) { Container pack = new Backpack(); pack.Hue = 1278; pack.DropItem(arty); cont.DropItem(pack); } if (special != null) { cont.DropItem(special); } int rolls = 2; if (level >= 5) { rolls += level - 2; } RefinementComponent.Roll(cont, rolls, 0.10); }
public RatmenFortressBossChest() : base(0x2DF2) { Name = "a boss treasure chest -25-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 25; LockLevel = 25; MaxLockLevel = 30; // Gold if (Utility.RandomDouble() < 0.50) { DropItem(new Gold(Utility.Random(250, 400))); } /////////////////////////////////////// Jewelry if (Utility.RandomDouble() < 0.04) { DropItem(new Agate()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Beryl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new ChromeDiopside()); } if (Utility.RandomDouble() < 0.04) { DropItem(new FireOpal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new MoonstoneCustom()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Onyx()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Opal()); } if (Utility.RandomDouble() < 0.04) { DropItem(new Pearl()); } if (Utility.RandomDouble() < 0.04) { DropItem(new TurquoiseCustom()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Bloodstone()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Citrine()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Demantoid()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Jasper()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lolite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Lupis()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Peridot()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Tsavorite()); } if (Utility.RandomDouble() < 0.03) { DropItem(new Zircon()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Amber()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Amethyst()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Andalusite()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Chrysoberyl()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Garnet()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Jade()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Mandarin()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Morganite()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Paraiba()); } if (Utility.RandomDouble() < 0.02) { DropItem(new TigerEye()); } if (Utility.RandomDouble() < 0.02) { DropItem(new Tourmaline()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Alexandrite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Ametrine()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Kunzite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Ruby()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Sapphire()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Tanzanite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Topaz()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Zultanite()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Diamond()); } if (Utility.RandomDouble() < 0.01) { DropItem(new Emerald()); } if (Utility.RandomDouble() < 0.01) { DropItem(new PinkQuartz()); } if (Utility.RandomDouble() < 0.01) { DropItem(new StarSapphire()); } /////////////////////////////////////// Supplies if (Utility.RandomDouble() < 0.15) { DropItem(new Arrow(Utility.Random(35, 50))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bolt(Utility.Random(35, 50))); } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.Random(35, 40); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.15) { DropItem(new Bandage(Utility.Random(25, 40))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bedroll()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bottle(Utility.Random(15, 25))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Lockpick(Utility.Random(15, 25))); } Item PotionLoot1 = Loot.RandomPotion(); DropItem(PotionLoot1); Item PotionLoot2 = Loot.RandomPotion(); DropItem(PotionLoot2); Item PotionLoot3 = Loot.RandomPotion(); DropItem(PotionLoot3); /////////////////////////////////////// Tools if (Utility.RandomDouble() < 0.15) { DropItem(new FishingPole()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Shovel()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Skillet()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } if (Utility.RandomDouble() < 0.20) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(38)) { case 0: weapon = new Hatchet(); break; case 1: weapon = new Bow(); break; case 2: weapon = new Crossbow(); break; case 3: weapon = new Club(); break; case 4: weapon = new Mace(); break; case 5: weapon = new Maul(); break; case 6: weapon = new Pitchfork(); break; case 7: weapon = new ShortSpear(); break; case 8: weapon = new GnarledStaff(); break; case 9: weapon = new ShepherdsCrook(); break; case 10: weapon = new Cutlass(); break; case 11: weapon = new Katana(); break; case 12: weapon = new Kryss(); break; case 13: weapon = new Scimitar(); break; case 14: weapon = new AssassinSpike(); break; case 15: weapon = new DiamondMace(); break; case 16: weapon = new Leafblade(); break; case 17: weapon = new MagicalShortbow(); break; case 18: weapon = new RadiantScimitar(); break; case 19: weapon = new WildStaff(); break; case 20: weapon = new Axe(); break; case 21: weapon = new ExecutionersAxe(); break; case 22: weapon = new Pickaxe(); break; case 23: weapon = new TwoHandedAxe(); break; case 24: weapon = new WarAxe(); break; case 25: weapon = new HeavyCrossbow(); break; case 26: weapon = new HammerPick(); break; case 27: weapon = new WarMace(); break; case 28: weapon = new Spear(); break; case 29: weapon = new WarFork(); break; case 30: weapon = new BlackStaff(); break; case 31: weapon = new QuarterStaff(); break; case 32: weapon = new Longsword(); break; case 33: weapon = new ElvenCompositeLongbow(); break; case 34: weapon = new ElvenMachete(); break; case 35: weapon = new ElvenSpellblade(); break; case 36: weapon = new RuneBlade(); break; default: weapon = new Dagger(); break; } BaseRunicTool.ApplyAttributesTo(weapon, 5, 15, 20); DropItem(weapon); } if (Utility.RandomDouble() < 0.20) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(13)) { case 0: armor = new FemaleStuddedChest(); break; case 1: armor = new StuddedArms(); break; case 2: armor = new StuddedBustierArms(); break; case 3: armor = new StuddedGloves(); break; case 4: armor = new StuddedGorget(); break; case 5: armor = new ChainCoif(); break; case 6: armor = new ChainChest(); break; case 7: armor = new ChainLegs(); break; case 8: armor = new RingmailArms(); break; case 9: armor = new RingmailChest(); break; case 10: armor = new RingmailGloves(); break; case 11: armor = new RingmailLegs(); break; default: armor = new StuddedChest(); break; } BaseRunicTool.ApplyAttributesTo(armor, 5, 15, 20); DropItem(armor); } if (Utility.RandomDouble() < 0.20) { BaseHat hat = Loot.RandomHat(true); switch (Utility.Random(5)) { case 0: hat = new BearMask(); break; case 1: hat = new DeerMask(); break; case 2: hat = new FeatheredHat(); break; case 3: hat = new WizardsHat(); break; default: hat = new TribalMask(); break; } BaseRunicTool.ApplyAttributesTo(hat, 5, 15, 20); DropItem(hat); } if (Utility.RandomDouble() < 0.20) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 5, 15, 20); DropItem(clothing); } if (Utility.RandomDouble() < 0.20) { BaseShield shield = new HeaterShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield, 5, 15, 20); } DropItem(shield); } if (Utility.RandomDouble() < 0.20) { BaseJewel bracelet = new SilverBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 5, 15, 20); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.20) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 5, 15, 20); } DropItem(earrings); } if (Utility.RandomDouble() < 0.20) { BaseJewel necklace = new SilverNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 5, 15, 20); } DropItem(necklace); } if (Utility.RandomDouble() < 0.20) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 5, 15, 20); } DropItem(ring); } }
private void Fill(int level) { TrapType = TrapType.ExplosionTrap; TrapPower = level * 25; TrapLevel = level; Locked = true; switch (level) { case 1: Serrure = SerrureQuality.Simple; break; case 2: Serrure = SerrureQuality.Moyenne; break; case 3: Serrure = SerrureQuality.Bonne; break; case 4: Serrure = SerrureQuality.TresBonne; break; case 5: Serrure = SerrureQuality.Excellente; break; } DropItem(new Gold(level * 200)); for (int i = 0; i < level; ++i) { DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } for (int i = 0; i < level * 2; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); DropItem(item); } } for (int i = 0; i < level; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); DropItem(item); } for (int i = 0; i < level; i++) { Item item = Loot.RandomGem(); DropItem(item); } DropItem(new TreasureMap(level + 1, (Utility.RandomBool() ? Map.Felucca : Map.Trammel))); }
public static void Fill(LockableContainer cont, int level) { cont.Movable = false; cont.Locked = true; int numberItems; if (level == 0) { cont.LockLevel = 0; // Can't be unlocked cont.DropItem(new Gold(Utility.RandomMinMax(50, 100))); if (Utility.RandomDouble() < 0.75) { cont.DropItem(new TreasureMap(0, Map.Trammel)); } } else { cont.TrapType = TrapType.ExplosionTrap; cont.TrapPower = level * 25; cont.TrapLevel = level; switch (level) { case 1: cont.RequiredSkill = 36; break; case 2: cont.RequiredSkill = 76; break; case 3: cont.RequiredSkill = 84; break; case 4: cont.RequiredSkill = 92; break; case 5: cont.RequiredSkill = 100; break; case 6: cont.RequiredSkill = 100; break; } cont.LockLevel = cont.RequiredSkill - 10; cont.MaxLockLevel = cont.RequiredSkill + 40; //Publish 67 gold change //if ( Core.SA ) // cont.DropItem( new Gold( level * 5000 ) ); //else cont.DropItem(new Gold(level * 1000)); for (int i = 0; i < level * 5; ++i) { cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } if (Core.SE) { switch (level) { case 1: numberItems = 5; break; case 2: numberItems = 10; break; case 3: numberItems = 15; break; case 4: numberItems = 38; break; case 5: numberItems = 50; break; case 6: numberItems = 60; break; default: numberItems = 0; break; } ; } else { numberItems = level * 6; } for (int i = 0; i < numberItems; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } item.ItemValue = GearScore.GetItemValue(item); cont.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } item.ItemValue = GearScore.GetItemValue(item); cont.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } item.ItemValue = GearScore.GetItemValue(item); cont.DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); item.ItemValue = GearScore.GetItemValue(item); cont.DropItem(item); } } } int reagents; if (level == 0) { reagents = 12; } else { reagents = level * 3; } for (int i = 0; i < reagents; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); cont.DropItem(item); } int gems; if (level == 0) { gems = 2; } else { gems = level * 3; } for (int i = 0; i < gems; i++) { Item item = Loot.RandomGem(); cont.DropItem(item); } int bonus = level * 2; if (level > 0 && Utility.Random(100) < 15 + bonus) { switch (Utility.Random(6)) { case 1: cont.DropItem(BaseReward.FletcherRecipe()); break; case 2: cont.DropItem(BaseReward.TailorRecipe()); break; case 3: cont.DropItem(BaseReward.SmithRecipe()); break; case 4: cont.DropItem(BaseReward.TinkerRecipe()); break; case 5: cont.DropItem(BaseReward.CarpRecipe()); break; case 6: cont.DropItem(new RecipeScroll(Utility.RandomMinMax(10001, 10001))); break; } } if (level == 6 && Core.AOS) { cont.DropItem((Item)Activator.CreateInstance(m_Artifacts[Utility.Random(m_Artifacts.Length)])); } }
public static void ApplyAttributesTo( BaseHat hat, bool isRunicTool, int luckChance, int attributeCount, int min, int max ) { m_IsRunicTool = isRunicTool; m_LuckChance = luckChance; AosAttributes primary = hat.Attributes; AosArmorAttributes secondary = hat.ClothingAttributes; AosElementAttributes resists = hat.Resistances; m_Props.SetAll( false ); for ( int i = 0; i < attributeCount; ++i ) { int random = GetUniqueRandom( 19 ); if ( random == -1 ) break; switch ( random ) { case 0: ApplyAttribute( primary, min, max, AosAttribute.ReflectPhysical, 1, 15 ); break; case 1: ApplyAttribute( primary, min, max, AosAttribute.RegenHits, 1, 2 ); break; case 2: ApplyAttribute( primary, min, max, AosAttribute.RegenStam, 1, 3 ); break; case 3: ApplyAttribute( primary, min, max, AosAttribute.RegenMana, 1, 2 ); break; case 4: ApplyAttribute( primary, min, max, AosAttribute.NightSight, 1, 1 ); break; case 5: ApplyAttribute( primary, min, max, AosAttribute.BonusHits, 1, 5 ); break; case 6: ApplyAttribute( primary, min, max, AosAttribute.BonusStam, 1, 8 ); break; case 7: ApplyAttribute( primary, min, max, AosAttribute.BonusMana, 1, 8 ); break; case 8: ApplyAttribute( primary, min, max, AosAttribute.LowerManaCost, 1, 8 ); break; case 9: ApplyAttribute( primary, min, max, AosAttribute.LowerRegCost, 1, 20 ); break; case 10: ApplyAttribute( primary, min, max, AosAttribute.Luck, 1, 100 ); break; case 11: ApplyAttribute( secondary, min, max, AosArmorAttribute.LowerStatReq, 10, 100, 10 ); break; case 12: ApplyAttribute( secondary, min, max, AosArmorAttribute.SelfRepair, 1, 5 ); break; case 13: ApplyAttribute( secondary, min, max, AosArmorAttribute.DurabilityBonus, 10, 100, 10 ); break; case 14: ApplyAttribute( resists, min, max, AosElementAttribute.Physical, 1, 15 ); break; case 15: ApplyAttribute( resists, min, max, AosElementAttribute.Fire, 1, 15 ); break; case 16: ApplyAttribute( resists, min, max, AosElementAttribute.Cold, 1, 15 ); break; case 17: ApplyAttribute( resists, min, max, AosElementAttribute.Poison, 1, 15 ); break; case 18: ApplyAttribute( resists, min, max, AosElementAttribute.Energy, 1, 15 ); break; } } }
private void Fill(int level) { TrapType = TrapType.ExplosionTrap; TrapPower = level * 25; TrapLevel = level; Locked = true; switch (level) { case 1: RequiredSkill = 36; break; case 2: RequiredSkill = 76; break; case 3: RequiredSkill = 84; break; case 4: RequiredSkill = 92; break; case 5: RequiredSkill = 100; break; case 6: RequiredSkill = 100; break; } LockLevel = RequiredSkill - 10; MaxLockLevel = RequiredSkill + 40; DropItem(new Gold(level * 200)); for (int i = 0; i < level; ++i) { DropItem(Loot.RandomScroll(0, 63)); } for (int i = 0; i < level * 2; ++i) { Item item; item = Loot.RandomArmorOrShieldOrWeapon(); if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; DropItem(item); } else if (item is BaseJewel) { DropItem(item); } } for (int i = 0; i < level; i++) { Item item = Loot.RandomReagent(); item.Amount = Utility.RandomMinMax(40, 60); DropItem(item); } for (int i = 0; i < level; i++) { Item item = Loot.RandomGem(); DropItem(item); } DropItem(new TreasureMap(level + 1, (Utility.RandomBool() ? Map.Felucca : Map.Trammel))); }
public static void Fill(LockableContainer cont, int level) { cont.Movable = false; cont.Locked = true; int numberItems; if (level == 0) { cont.LockLevel = 0; // Can't be unlocked cont.DropItem(new Gold(Utility.RandomMinMax(50, 100))); if (Utility.RandomDouble() < 0.75) { cont.DropItem(new TreasureMap(0, Map.Felucca)); } } else { cont.TrapType = TrapType.ExplosionTrap; cont.TrapPower = level * 25; cont.TrapLevel = level; switch (level) { case 1: cont.RequiredSkill = 36; break; case 2: cont.RequiredSkill = 76; break; case 3: cont.RequiredSkill = 84; break; case 4: cont.RequiredSkill = 92; break; case 5: cont.RequiredSkill = 100; break; case 6: cont.RequiredSkill = 100; break; } cont.LockLevel = cont.RequiredSkill - 10; cont.MaxLockLevel = cont.RequiredSkill + 40; //Publish 67 gold change //if ( Core.SA ) // cont.DropItem( new Gold( level * 5000 ) ); //else cont.DropItem(new Gold(level * 1000)); for (int i = 0; i < level * 5; ++i) { cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } numberItems = level * 6; for (int i = 0; i < numberItems; ++i) { Item item = Loot.RandomArmorOrShieldOrWeapon(); if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); cont.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); cont.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; cont.DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(attributeCount); cont.DropItem(item); } } } int reagents; if (level == 0) { reagents = 12; } else { reagents = level * 3; } for (int i = 0; i < reagents; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); cont.DropItem(item); } int gems; if (level == 0) { gems = 2; } else { gems = level * 3; } for (int i = 0; i < gems; i++) { Item item = Loot.RandomGem(); cont.DropItem(item); } }
public FortressCalcifinaTreasureChest1() : base(0xE43) { Name = "a treasure chest -25-"; Movable = true; Weight = 1000.0; TrapPower = 0; Locked = true; RequiredSkill = 25; LockLevel = 25; MaxLockLevel = 30; // Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(40, 400))); } /////////////////////////////////////// Supplies if (Utility.RandomDouble() < 0.15) { DropItem(new Arrow(Utility.Random(15, 20))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bolt(Utility.Random(15, 20))); } Item ReagentLoot = Loot.RandomReagent(); ReagentLoot.Amount = Utility.Random(15, 20); DropItem(ReagentLoot); if (Utility.RandomDouble() < 0.15) { DropItem(new Bandage(Utility.Random(15, 20))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bedroll()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Bottle(Utility.Random(15, 20))); } if (Utility.RandomDouble() < 0.15) { DropItem(new Lockpick(Utility.Random(15, 20))); } Item PotionLoot = Loot.RandomPotion(); DropItem(PotionLoot); /////////////////////////////////////// Tools if (Utility.RandomDouble() < 0.15) { DropItem(new FishingPole()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Shovel()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Skillet()); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.01) { DropItem(new DyeTub()); } if (Utility.RandomDouble() < 0.15) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(38)) { case 0: weapon = new Hatchet(); break; case 1: weapon = new Bow(); break; case 2: weapon = new Crossbow(); break; case 3: weapon = new Club(); break; case 4: weapon = new Mace(); break; case 5: weapon = new Maul(); break; case 6: weapon = new Pitchfork(); break; case 7: weapon = new ShortSpear(); break; case 8: weapon = new GnarledStaff(); break; case 9: weapon = new ShepherdsCrook(); break; case 10: weapon = new Cutlass(); break; case 11: weapon = new Katana(); break; case 12: weapon = new Kryss(); break; case 13: weapon = new Scimitar(); break; case 14: weapon = new AssassinSpike(); break; case 15: weapon = new DiamondMace(); break; case 16: weapon = new Leafblade(); break; case 17: weapon = new MagicalShortbow(); break; case 18: weapon = new RadiantScimitar(); break; case 19: weapon = new WildStaff(); break; case 20: weapon = new Axe(); break; case 21: weapon = new ExecutionersAxe(); break; case 22: weapon = new Pickaxe(); break; case 23: weapon = new TwoHandedAxe(); break; case 24: weapon = new WarAxe(); break; case 25: weapon = new HeavyCrossbow(); break; case 26: weapon = new HammerPick(); break; case 27: weapon = new WarMace(); break; case 28: weapon = new Spear(); break; case 29: weapon = new WarFork(); break; case 30: weapon = new BlackStaff(); break; case 31: weapon = new QuarterStaff(); break; case 32: weapon = new Longsword(); break; case 33: weapon = new ElvenCompositeLongbow(); break; case 34: weapon = new ElvenMachete(); break; case 35: weapon = new ElvenSpellblade(); break; case 36: weapon = new RuneBlade(); break; default: weapon = new Dagger(); break; } BaseRunicTool.ApplyAttributesTo(weapon, 4, 18, 22); DropItem(weapon); } if (Utility.RandomDouble() < 0.15) { BaseArmor armor = Loot.RandomArmor(true); switch (Utility.Random(13)) { case 0: armor = new FemaleStuddedChest(); break; case 1: armor = new StuddedArms(); break; case 2: armor = new StuddedBustierArms(); break; case 3: armor = new StuddedGloves(); break; case 4: armor = new StuddedGorget(); break; case 5: armor = new ChainCoif(); break; case 6: armor = new ChainChest(); break; case 7: armor = new ChainLegs(); break; case 8: armor = new RingmailArms(); break; case 9: armor = new RingmailChest(); break; case 10: armor = new RingmailGloves(); break; case 11: armor = new RingmailLegs(); break; default: armor = new StuddedChest(); break; } BaseRunicTool.ApplyAttributesTo(armor, 4, 18, 22); DropItem(armor); } if (Utility.RandomDouble() < 0.15) { BaseHat hat = Loot.RandomHat(true); switch (Utility.Random(5)) { case 0: hat = new BearMask(); break; case 1: hat = new DeerMask(); break; case 2: hat = new FeatheredHat(); break; case 3: hat = new WizardsHat(); break; default: hat = new TribalMask(); break; } BaseRunicTool.ApplyAttributesTo(hat, 4, 18, 22); DropItem(hat); } if (Utility.RandomDouble() < 0.15) { BaseClothing clothing = Loot.RandomClothing(true); BaseRunicTool.ApplyAttributesTo(clothing, 4, 18, 22); DropItem(clothing); } if (Utility.RandomDouble() < 0.15) { BaseShield shield = new MetalKiteShield(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(shield, 4, 18, 22); } DropItem(shield); } if (Utility.RandomDouble() < 0.15) { BaseJewel bracelet = new GoldBracelet(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(bracelet, 4, 18, 22); } DropItem(bracelet); } if (Utility.RandomDouble() < 0.15) { BaseJewel earrings = new SilverEarrings(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(earrings, 4, 18, 22); } DropItem(earrings); } if (Utility.RandomDouble() < 0.15) { BaseJewel necklace = new GoldNecklace(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(necklace, 4, 18, 22); } DropItem(necklace); } if (Utility.RandomDouble() < 0.15) { BaseJewel ring = new SilverRing(); if (Core.AOS) { BaseRunicTool.ApplyAttributesTo(ring, 4, 18, 22); } DropItem(ring); } }
public static void Fill(LockableContainer cont, int luck, int level, bool isSos, Map map) { cont.Movable = false; cont.Locked = true; int numberItems; if (level == 0) { cont.LockLevel = 0; // Can't be unlocked cont.DropItem(new Gold(Utility.RandomMinMax(50, 100))); if (Utility.RandomDouble() < 0.75) { cont.DropItem(new TreasureMap(0, Map.Trammel)); } } else { cont.TrapType = TrapType.ExplosionTrap; cont.TrapPower = level * 25; cont.TrapLevel = level; switch (level) { case 1: cont.RequiredSkill = 5; break; case 2: cont.RequiredSkill = 45; break; case 3: cont.RequiredSkill = 65; break; case 4: cont.RequiredSkill = 75; break; case 5: cont.RequiredSkill = 75; break; case 6: cont.RequiredSkill = 80; break; case 7: cont.RequiredSkill = 80; break; } cont.LockLevel = cont.RequiredSkill - 10; cont.MaxLockLevel = cont.RequiredSkill + 40; cont.DropItem(new Gold(level * 5000)); for (int i = 0; i < level * 5; ++i) { cont.DropItem(Loot.RandomScroll(0, 63, SpellbookType.Regular)); } double propsScale = 1.0; if (Core.SE) { switch (level) { case 1: numberItems = 32; propsScale = 0.5625; break; case 2: numberItems = 40; propsScale = 0.6875; break; case 3: numberItems = 48; propsScale = 0.875; break; case 4: numberItems = 56; break; case 5: numberItems = 64; break; case 6: numberItems = 72; break; case 7: numberItems = 80; break; default: numberItems = 0; break; } } else { numberItems = level * 6; } for (int i = 0; i < numberItems; ++i) { Item item; if (Core.AOS) { item = Loot.RandomArmorOrShieldOrWeaponOrJewelry(); } else { item = Loot.RandomArmorOrShieldOrWeapon(); } if (item != null && Core.HS && RandomItemGenerator.Enabled) { int min, max; GetRandomItemStat(out min, out max, propsScale); RunicReforging.GenerateRandomItem(item, luck, min, max, map); cont.DropItem(item); } else if (item is BaseWeapon) { BaseWeapon weapon = (BaseWeapon)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(weapon, attributeCount, min, max); } else { weapon.DamageLevel = (WeaponDamageLevel)Utility.Random(6); weapon.AccuracyLevel = (WeaponAccuracyLevel)Utility.Random(6); weapon.DurabilityLevel = (WeaponDurabilityLevel)Utility.Random(6); } cont.DropItem(item); } else if (item is BaseArmor) { BaseArmor armor = (BaseArmor)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(armor, attributeCount, min, max); } else { armor.ProtectionLevel = (ArmorProtectionLevel)Utility.Random(6); armor.Durability = (ArmorDurabilityLevel)Utility.Random(6); } cont.DropItem(item); } else if (item is BaseHat) { BaseHat hat = (BaseHat)item; if (Core.AOS) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo(hat, attributeCount, min, max); } cont.DropItem(item); } else if (item is BaseJewel) { int attributeCount; int min, max; GetRandomAOSStats(out attributeCount, out min, out max); BaseRunicTool.ApplyAttributesTo((BaseJewel)item, attributeCount, min, max); cont.DropItem(item); } } } int reagents; if (level == 0) { reagents = 12; } else { reagents = level + 1; } for (int i = 0; i < reagents; i++) { Item item = Loot.RandomPossibleReagent(); item.Amount = Utility.RandomMinMax(40, 60); cont.DropItem(item); } int gems; if (level == 0) { gems = 2; } else { gems = (level * 3) + 1; } for (int i = 0; i < gems; i++) { Item item = Loot.RandomGem(); cont.DropItem(item); } if (level > 1) { Item item = Loot.Construct(m_ImbuingIngreds[Utility.Random(m_ImbuingIngreds.Length)]); item.Amount = level; cont.DropItem(item); } Item arty = null; Item special = null; if (isSos) { if (0.004 * level > Utility.RandomDouble()) { arty = Loot.Construct(m_SOSArtifacts); } if (0.006 * level > Utility.RandomDouble()) { special = Loot.Construct(m_SOSDecor); } else if (0.009 * level > Utility.RandomDouble()) { special = new TreasureMap(Utility.RandomMinMax(level, Math.Min(7, level + 1)), cont.Map); } } else { if (level >= 7) { if (0.025 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelSevenOnly); } else if (0.10 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelFiveToSeven); } else if (0.25 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } arty = Loot.Construct(m_Artifacts); } else if (level >= 6) { if (0.025 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelFiveToSeven); } else if (0.10 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } arty = Loot.Construct(m_Artifacts); } else if (level >= 5) { if (0.05 > Utility.RandomDouble()) { special = Loot.Construct(m_LevelFiveToSeven); } else if (0.25 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } else if (.10 > Utility.RandomDouble()) { special = GetRandomSpecial(level, cont.Map); } } if (arty != null) { Container pack = new Backpack(); pack.Hue = 1278; pack.DropItem(arty); cont.DropItem(pack); } if (special != null) { cont.DropItem(special); } if (Core.SA) { int rolls = 2; if (level >= 5) { rolls += level - 2; } RefinementComponent.Roll(cont, rolls, 0.10); } }
protected override void OnTarget(Mobile from, object target) { Item item = target as Item; Type type = item.GetType(); if (item is BaseArmor || item is BaseHat || item is BaseWeapon) { if (Runescribing.GetProps(item) >= 7) { from.SendMessage("This item cannot be enhanced any further"); } else if (item.ChantSlots >= 3) { from.SendMessage("This item cannot handle any more enhancments."); } else if (Runescribing.CheckBlacklist(type) == true) { from.SendMessage("This item cannot be enhanced."); } else { int value = m_Rune.BaseAmount; int max = m_Rune.MaxAmount; if (item is BaseArmor) { BaseArmor i = item as BaseArmor; if (i.ArmorAttributes.DurabilityBonus + value <= max) { i.ArmorAttributes.DurabilityBonus += value; } else { i.ArmorAttributes.DurabilityBonus = max; } } if (item is BaseHat) { BaseHat i = item as BaseHat; if (i.ClothingAttributes.DurabilityBonus + value <= max) { i.ClothingAttributes.DurabilityBonus += value; } else { i.ClothingAttributes.DurabilityBonus = max; } } if (item is BaseWeapon) { BaseWeapon i = item as BaseWeapon; if (i.WeaponAttributes.DurabilityBonus + value <= max) { i.WeaponAttributes.DurabilityBonus += value; } else { i.WeaponAttributes.DurabilityBonus = max; } } item.ChantSlots += 1; m_Rune.Delete(); } } else { from.SendMessage("You cannot use this enhancement on that."); } }
public static void ApplyAttributesTo(BaseHat hat, int attributeCount, int min, int max) { ApplyAttributesTo(hat, false, 0, attributeCount, min, max); }
public static void ApplyAttribute( Mobile from, BookOfSpellCrafts book, int craftId, BaseHat hat, AosElementAttribute attribute, int minimum, int maximum ) { CheckItem( from, hat, ( hat.Resistances[ attribute ] == 0 ) ); UseMagicJewels( from, book, hat, SpellCraftConfig.MagicJewelRequirements[craftId] ); int scalar = ComputeSkillScalar( from ); ApplyAttribute( hat.Resistances, SpellCraftConfig.MinimumIntensity * scalar, SpellCraftConfig.MaximumIntensity * scalar, attribute, minimum, maximum ); MarkHat( from, hat ); }