public Mercenary( string name ) : base( name, AIType.AI_Melee, 0.01 ) { SpeechHue = Utility.RandomDyedHue(); Hue = Utility.RandomSkinHue(); Item hair = new Item( Utility.RandomList( 0x203B, 0x2049, 0x2048, 0x204A ) ); hair.Hue = Utility.RandomNondyedHue(); hair.Layer = Layer.Hair; hair.Movable = false; AddItem( hair ); if ( Female = Utility.RandomBool() ) Body = 0x191; else { Body = 0x190; if ( Utility.RandomBool() ) { Item beard = new Item( Utility.RandomList( 0x203E, 0x203F, 0x2040, 0x2041, 0x204B, 0x204C, 0x204D ) ); beard.Hue = hair.Hue; beard.Layer = Layer.FacialHair; beard.Movable = false; AddItem( beard ); } } Item weapon; switch ( Utility.Random( 6 ) ) { case 0: weapon = new Kryss(); break; case 1: weapon = new Scimitar(); break; case 2: weapon = new WarAxe(); break; case 3: weapon = new Cutlass(); break; case 4: weapon = new HammerPick(); break; default: weapon = new WarFork(); break; } AddItem( weapon ); if ( null == Backpack ) { Container pack = new Backpack(); pack.Movable = false; AddItem( pack ); } AddItem( new Robe() ); }
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 bool DropWeapon( int minLevel, int maxLevel ) { if ( 1.0 <= Utility.RandomDouble() ) return false; if ( maxLevel > 2 ) maxLevel = 2; Cap( ref minLevel, 0, 2 ); Cap( ref maxLevel, 0, 2 ); BaseWeapon weapon = new Broadsword(); double random = Utility.RandomDouble(); if ( random >= .75 ) { weapon = new WarFork(); } else if ( random >= .50 ) { weapon = new WarMace(); } else if ( random >= .25 ) { weapon = new Bow(); Arrow arrows = new Arrow(); arrows.Amount = 25; DropItem( arrows ); } if ( weapon == null ) return false; weapon.DamageLevel = (WeaponDamageLevel)RandomMinMaxScaled( minLevel, maxLevel ); weapon.AccuracyLevel = (WeaponAccuracyLevel)RandomMinMaxScaled( 0, maxLevel ); weapon.DurabilityLevel = (WeaponDurabilityLevel)RandomMinMaxScaled( 0, maxLevel ); DropItem( weapon ); return true; }
public override void OnResponse( NetState state, RelayInfo info ) //Function for GumpButtonType.Reply Buttons { Mobile from = state.Mobile; PlayerMobile pm = from as PlayerMobile; PlayerModule module = pm.PlayerModule; m_cost = 50;//MOD COST OF WEAPON HERE!! Item wep = from.FindItemOnLayer( Layer.FirstValid ); Item weps = from.FindItemOnLayer( Layer.TwoHanded ); Container pack = from.Backpack; if ( wep !=null ) pack.TryDropItem( from, wep, false ); if ( weps !=null ) pack.TryDropItem( from, weps, false ); switch ( info.ButtonID ) { case 0: //Cancel { from.SendMessage( "You decide against spending your skill points." ); //from.SendGump( new LevelGump( from ) ); break; } case 1: //Katana { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Katana kat = new Katana(); ( ( Item )kat ).Name = "Katana [Level Item]"; kat.Identified = true;//Prevents others from being used in the upgrading! kat.LootType = LootType.Blessed; from.EquipItem( kat ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 2: //Broad Sword { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Broadsword bs = new Broadsword(); bs.Identified = true; bs.Name = "Broadsword"; bs.LootType = LootType.Blessed; from.EquipItem( bs ); from.SendMessage( 102, "You chose a Broadsword" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 3: //Scimitar { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Scimitar sc = new Scimitar(); sc.Identified = true; sc.Name = "Scimitar"; sc.LootType = LootType.Blessed; from.EquipItem( sc ); from.SendMessage( 102, "You chose a Scimitar" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 4: //Viking sword { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; VikingSword vs = new VikingSword(); vs.Identified = true; vs.Name = "Vikingsword"; vs.LootType = LootType.Blessed; from.EquipItem( vs ); from.SendMessage( 102, "You chose a Viking Sword" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 5: //Halberd { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Halberd hb = new Halberd(); hb.Identified = true; hb.Name = "Halberd"; hb.LootType = LootType.Blessed; from.EquipItem( hb ); from.SendMessage( 102, "You chose a Halberd" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 6: //Bardiche { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Bardiche bd = new Bardiche(); bd.Identified = true; bd.Name = "Bardiche"; bd.LootType = LootType.Blessed; from.EquipItem( bd ); from.SendMessage( 102, "You chose a Bardiche" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 7: //Double Axe { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; DoubleAxe da = new DoubleAxe(); da.Identified = true; da.Name = "Double Axe"; da.LootType = LootType.Blessed; from.EquipItem( da ); from.SendMessage( 102, "You chose a Double Axe" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 8: //Large Battle Axe { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; LargeBattleAxe lba = new LargeBattleAxe(); lba.Identified = true; lba.Name = "Large Battle Axe"; lba.LootType = LootType.Blessed; from.EquipItem( lba ); from.SendMessage( 102, "You chose a Large Battle Axe" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 9: //Axe { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Axe a = new Axe(); a.Identified = true; a.Name = "Axe"; a.LootType = LootType.Blessed; from.EquipItem( a ); from.SendMessage( 102, "You chose an Axe" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 10: //Kryss { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Kryss k = new Kryss(); k.Identified = true; k.Name = "Kryss"; k.LootType = LootType.Blessed; from.EquipItem( k ); from.SendMessage( 102, "You chose a Kryss" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 11: //War Fork { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; WarFork wf = new WarFork(); wf.Identified = true; wf.Name = "War Fork"; wf.LootType = LootType.Blessed; from.EquipItem( wf ); from.SendMessage( 102, "You chose a War Fork" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 12: //Dagger { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Dagger d = new Dagger(); d.Identified = true; d.Name = "Dagger"; d.LootType = LootType.Blessed; from.EquipItem( d ); from.SendMessage( 102, "You chose a Dagger" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 13: //Pike { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Pike p = new Pike(); p.Identified = true; p.Name = "Pike"; p.LootType = LootType.Blessed; from.EquipItem( p ); from.SendMessage( 102, "You chose a Pike" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 14: //Short Spear { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; ShortSpear ss = new ShortSpear(); ss.Identified = true; ss.Name = "Short Spear"; ss.LootType = LootType.Blessed; from.EquipItem( ss ); from.SendMessage( 102, "You chose a Short Spear" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 15: //Long Spear { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Spear ls = new Spear(); ls.Identified = true; ls.Name = "Long Spear"; ls.LootType = LootType.Blessed; from.EquipItem( ls ); from.SendMessage( 102, "You chose a Long Spear" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 16: //Pitchfork { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Pitchfork p = new Pitchfork(); p.Identified = true; p.Name = "Pitchfork"; p.LootType = LootType.Blessed; from.EquipItem( p ); from.SendMessage( 102, "You chose a Pitchfork" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 17: //lance { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Lance l = new Lance(); l.Identified = true; l.Name = "Lance"; l.LootType = LootType.Blessed; from.EquipItem( l ); from.SendMessage( 102, "You chose a Lance" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 18: //Sai's { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Sai s = new Sai(); s.Identified = true; s.Name = "Sai"; s.LootType = LootType.Blessed; from.EquipItem( s ); from.SendMessage( 102, "You chose Sai's" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 19: //War Mace { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; WarMace wm = new WarMace(); wm.Identified = true; wm.Name = "War Mace"; wm.LootType = LootType.Blessed; from.EquipItem( wm ); from.SendMessage( 102, "You chose a War Mace" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 20: //War Hammer { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; WarHammer wh = new WarHammer(); wh.Identified = true; wh.Name = "War Hammer"; wh.LootType = LootType.Blessed; from.EquipItem( wh ); from.SendMessage( 102, "You chose a War Hammer" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 21: //Maul { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Maul w = new Maul(); w.Identified = true; w.Name = "Maul"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Maul" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 22: //Club { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Club w = new Club(); w.Identified = true; w.Name = "Club"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Club" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 23: //Q Staff { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; QuarterStaff w = new QuarterStaff(); w.Identified = true; w.Name = "Quarter Staff"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Quarter Staff" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 24: //G Staff { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; GnarledStaff w = new GnarledStaff(); w.Identified = true; w.Name = "Gnarled Staff"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Gnarled Staff" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 25: //B Staff { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; BlackStaff w = new BlackStaff(); w.Identified = true; w.Name = "BlackStaff"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Black Staff" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 26: //Hammer Pick { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; HammerPick w = new HammerPick(); w.Identified = true; w.Name = "Hammer Pick"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Hammer Pick" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 27: //War Axe { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; WarAxe w = new WarAxe(); w.Identified = true; w.Name = "War Axe"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a War Axe" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 28: //Bow { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Bow w = new Bow(); w.Identified = true; w.Name = "Bow"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Bow" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 29: //Composite Bow { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; CompositeBow w = new CompositeBow(); w.Identified = true; w.Name = "Composite Bow"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Composite Bow" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 30: //Crossbow { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Crossbow w = new Crossbow(); w.Identified = true; w.Name = "Crossbow"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Crossbow" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 31: //Heavy Crossbow { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; HeavyCrossbow w = new HeavyCrossbow(); w.Identified = true; w.Name = "Heavy Crossbow"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Heavy Crossbow" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 32: //Repeating Crossbow { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; RepeatingCrossbow w = new RepeatingCrossbow(); w.Identified = true; w.Name = "Repeating Crossbow"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Repeating Crossbow" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } case 33: //Yumi { if ( module.SkillPts < m_cost ) from.SendMessage( 37, "Not enough skill points!" ); else { module.SkillPts -= m_cost; Yumi w = new Yumi(); w.Identified = true; w.Name = "Yumi"; w.LootType = LootType.Blessed; from.EquipItem( w ); from.SendMessage( 102, "You chose a Yumi" ); } from.SendGump( new WepUpgradeGump( from ) ); break; } } }
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); } }
/// <summary> /// This is the function gives weaponry to players. /// </summary> private static void ArmPlayer(CTFPlayerGameData pgd) { Mobile m = pgd.Mob; if (!m.Alive) m.Resurrect(); for (int i = m.Items.Count - 1; i >= 0; --i) { Item item = (Item)m.Items[i]; if (item.Layer == Layer.OuterTorso) { item.Delete(); break; } } List<Item> armthis = new List<Item>(); if(GiveRobe) armthis.Add(new CTFRobe(pgd.Team)); Item rankedCloth = null; CTFTeam team = pgd.Team; // 21 Ranks switch (CTFData.GetRank(m)) { default: case 0: rankedCloth = new JesterHat(team.Hue); break; case 1: rankedCloth = new TallStrawHat(team.Hue); break; case 2: rankedCloth = new FloppyHat(team.Hue); break; case 3: rankedCloth = new WideBrimHat(team.Hue); break; case 4: rankedCloth = new Cap(team.Hue); break; case 5: rankedCloth = new SkullCap(team.Hue); break; case 6: rankedCloth = new FlowerGarland(team.Hue); break; case 7: rankedCloth = new StrawHat(team.Hue); break; case 8: rankedCloth = new FeatheredHat(team.Hue); break; case 9: rankedCloth = new TricorneHat(team.Hue); break; case 10: rankedCloth = new TribalMask(team.Hue); break; case 11: rankedCloth = new HornedTribalMask(team.Hue); break; case 12: rankedCloth = new BearMask(team.Hue); break; case 13: rankedCloth = new DeerMask(team.Hue); break; case 14: rankedCloth = new OrcishKinMask(team.Hue); break; case 15: rankedCloth = new SavageMask(team.Hue); break; case 16: rankedCloth = new WizardsHat(team.Hue); break; case 17: rankedCloth = new Bandana(team.Hue); break; case 18: rankedCloth = new ClothNinjaHood(team.Hue); break; case 19: rankedCloth = new Kasa(team.Hue); break; case 20: rankedCloth = new BoneHelm(); rankedCloth.Hue = team.Hue; ((BaseArmor)rankedCloth).ArmorAttributes.MageArmor = 1; break; } if (rankedCloth != null) { rankedCloth.Movable = false; armthis.Add(rankedCloth); } //Alchemy removed by Blady /* if (m.Skills[SkillName.Alchemy].Value >= (m_MinSupplySkill + 15)) //80 Alchemy req - by Blady { for (int i = 0; i < 6; i++) //Amount reduced to 6 by Blady - used to be 10 { armthis.Add(new ExplosionPotion()); armthis.Add(new GreaterHealPotion()); armthis.Add(new GreaterCurePotion()); armthis.Add(new GreaterAgilityPotion()); armthis.Add(new RefreshPotion()); armthis.Add(new GreaterStrengthPotion()); } } */ if (m.Skills[SkillName.Chivalry].Value >= m_MinSupplySkill) { BookOfChivalry book = new BookOfChivalry(); book.Content = 1023;//all spells armthis.Add(book); } if (m.Skills[SkillName.Necromancy].Value >= m_MinSupplySkill) { NecromancerSpellbook book = new NecromancerSpellbook(); book.Content = 0x1FFFF; armthis.Add(book); } if (m.Skills[SkillName.Magery].Value >= m_MinSupplySkill) { GnarledStaff gs = new GnarledStaff(); gs.Attributes.SpellChanneling = 1; gs.WeaponAttributes.MageWeapon = 20; armthis.Add(gs); Spellbook book = new Spellbook(); book.Content = ulong.MaxValue; armthis.Add(book); } if (m.Skills[SkillName.Healing].Value >= m_MinSupplySkill) armthis.Add(new Bandage(1000)); if (m.Skills[SkillName.Fencing].Value >= m_MinSupplySkill) { Spear sp = new Spear(); sp.Attributes.SpellChanneling = 1; armthis.Add(sp); ShortSpear ssp = new ShortSpear(); ssp.Attributes.SpellChanneling = 1; armthis.Add(ssp); WarFork wf = new WarFork(); wf.Attributes.SpellChanneling = 1; armthis.Add(wf); Kryss k = new Kryss(); k.Attributes.SpellChanneling = 1; armthis.Add(k); } if (m.Skills[SkillName.Swords].Value >= m_MinSupplySkill) { if (m.Skills[SkillName.Lumberjacking].Value >= m_MinSupplySkill) { ExecutionersAxe ea = new ExecutionersAxe(); ea.Attributes.SpellChanneling = 1; armthis.Add(ea); } Katana k = new Katana(); k.Attributes.SpellChanneling = 1; armthis.Add(k); Longsword ls = new Longsword(); ls.Attributes.SpellChanneling = 1; armthis.Add(ls); Cleaver c = new Cleaver(); c.Attributes.SpellChanneling = 1; armthis.Add(c); BoneHarvester bh = new BoneHarvester(); bh.Attributes.SpellChanneling = 1; armthis.Add(bh); } if (m.Skills[SkillName.Macing].Value >= m_MinSupplySkill) { WarAxe wa = new WarAxe(); wa.Attributes.SpellChanneling = 1; armthis.Add(wa); HammerPick hp = new HammerPick(); hp.Attributes.SpellChanneling = 1; armthis.Add(hp); QuarterStaff qs = new QuarterStaff(); qs.Attributes.SpellChanneling = 1; armthis.Add(qs); } if (m.Skills[SkillName.Archery].Value >= m_MinSupplySkill) { Bow b = new Bow(); b.Attributes.SpellChanneling = 1; armthis.Add(b); Crossbow xb = new Crossbow(); xb.Attributes.SpellChanneling = 1; armthis.Add(xb); CompositeBow cb = new CompositeBow(); cb.Attributes.SpellChanneling = 1; armthis.Add(cb); armthis.Add(new Arrow(150)); armthis.Add(new Bolt(150)); } if (m.Skills[SkillName.Poisoning].Value >= m_MinSupplySkill) { for (int i = 0; i < 2; i++) armthis.Add(new GreaterPoisonPotion()); } if (m.Skills[SkillName.Parry].Value >= m_MinSupplySkill) { MetalKiteShield ks = new MetalKiteShield(); ks.Attributes.SpellChanneling = 1; armthis.Add(ks); } SunnySystem.ArmPlayer(m, armthis); }
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); } }
public VampireFighter() : base(AIType.AI_Stealth, FightMode.Closest, 10, 1, 0.2, 0.4) { if ( Female = Utility.RandomBool() ) { Body = 0x191; Name = NameList.RandomName( "female" ); } else { Body = 0x190; Name = NameList.RandomName( "male" ); } Hue = 1150; BaseSoundID = 0x4B0; SetStr( 100, 105 ); SetDex( 128, 131 ); SetInt( 60, 62 ); SetHits( 218, 225 ); SetDamage( 15, 22 ); SetDamageType( ResistanceType.Physical, 50 ); SetDamageType( ResistanceType.Cold, 50 ); SetResistance( ResistanceType.Physical, 40 ); SetResistance( ResistanceType.Fire, -10 ); SetResistance( ResistanceType.Cold, 35 ); SetResistance( ResistanceType.Poison, 35 ); SetResistance( ResistanceType.Energy, 35 ); SetSkill( SkillName.SpiritSpeak, 100.0 ); SetSkill( SkillName.Necromancy, 50.0 ); SetSkill( SkillName.Focus, 90.1, 100.0 ); SetSkill( SkillName.MagicResist, 100.1, 102.0 ); SetSkill( SkillName.Tactics, 100.0 ); SetSkill( SkillName.Anatomy, 100.0 ); SetSkill( SkillName.Swords, 100.1, 120.0 ); SetSkill( SkillName.Fencing, 100.1, 120.0 ); SetSkill( SkillName.Parry, 100.0 ); Fame = 9000; Karma = -14000; VirtualArmor = 5; AddItem( new LeatherChest() ); AddItem( new LeatherLegs() ); AddItem( new LeatherArms() ); AddItem( new LeatherCap() ); AddItem( new LeatherGloves() ); AddItem( new LeatherGorget() ); switch ( Utility.Random( 5 )) { case 0: { WarFork fork = new WarFork(); fork.Movable = false; fork.WeaponAttributes.HitLeechHits = 100; AddItem( fork ); AddItem( new WoodenKiteShield() ); break; } case 1: { Scythe kosa = new Scythe(); kosa.Movable = false; kosa.WeaponAttributes.HitLeechHits = 100; AddItem( kosa ); break; } case 2: { BoneHarvester surp = new BoneHarvester(); surp.Movable = false; surp.WeaponAttributes.HitLeechHits = 100; AddItem( surp ); AddItem( new WoodenKiteShield() ); break; } case 3: { Spear kopie = new Spear(); kopie.Movable = false; kopie.WeaponAttributes.HitLeechHits = 100; AddItem( kopie ); break; } case 4: { Pike pika = new Pike(); pika.Movable = false; pika.WeaponAttributes.HitLeechHits = 100; AddItem( pika ); break; } } Item hair = new Item( Utility.RandomList( 0x203B, 0x2049, 0x2048, 0x204A ) ); hair.Hue = Utility.RandomNondyedHue(); hair.Layer = Layer.Hair; AddItem( hair ); }
public Squire() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) { SpeechHue = Utility.RandomDyedHue(); Nickname = "Master"; SNickname = "Squire"; IsBonded = true; ControlSlots = 4; m_AutoUseHealthPotion = true; m_AutoUseCurePotion = true; m_AutoHealSelf = true; m_AutoHealMaster = true; m_AutoHealOther = true; m_AutoPickupAmmo = true; m_DesperateMasterRun = true; SetStr( 45, 55 ); SetDex( 15, 25 ); SetInt( 10, 15 ); SetSkill( SkillName.Wrestling, 20.0, 30.0 ); SetSkill( SkillName.Anatomy, 20.0, 30.0 ); SetSkill( SkillName.Tactics, 20.0, 30.0 ); SetSkill( SkillName.Swords, 20.0, 30.0 ); SetSkill( SkillName.Macing, 20.0, 30.0 ); SetSkill( SkillName.Fencing, 20.0, 30.0 ); SetSkill( SkillName.Archery, 20.0, 30.0 ); Skills.Cap = 12000; StatCap = 600; if ( Female = Utility.RandomBool() ) { switch ( Utility.Random( 5 ) ) { case 4 : Body = 0x191; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; case 3 : Body = 0x191; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; case 2 : Body = 0x191; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; case 1 : Body = 0x25E; Race = Race.Elf; Hue = Race.RandomSkinHue(); Utility.AssignRandomHair( this, true ); break; case 0 : Body = 0x191; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; } } else { switch ( Utility.Random( 5 ) ) { case 4 : Body = 0x190; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; case 3 : Body = 0x190; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; case 2 : Body = 0x190; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; case 1 : Body = 0x25D; Race = Race.Elf; Hue = Race.RandomSkinHue(); Utility.AssignRandomHair( this, true ); break; case 0 : Body = 0x190; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair( this ); break; } if ( Body == 0x190 ) { Utility.AssignRandomFacialHair( this, HairHue ); } } if ( Body == 0x191 ) { Name = NameList.RandomName( "female" ); } else if ( Body == 0x25E ) { Name = NameList.RandomName( "female elf brigand" ); } else if ( Body == 0x25D ) { Name = NameList.RandomName( "male elf brigand" ); } else { Name = NameList.RandomName( "male" ); } Item weapon; switch ( Utility.Random( 6 ) ) { case 0: weapon = new Kryss(); break; case 1: weapon = new Scimitar(); break; case 2: weapon = new WarAxe(); break; case 3: weapon = new Cutlass(); break; case 4: weapon = new HammerPick(); break; default: weapon = new WarFork(); break; } AddItem( weapon ); AddItem( new RingmailChest() ); AddItem( new RingmailLegs() ); AddItem( new RingmailArms() ); AddItem( new RingmailGloves() ); AddItem( new Boots() ); if ( null == Backpack ) { Container pack = new Backpack(); pack.Movable = false; AddItem( pack ); } }
public static void CreateItem(ItemInfo info, Mobile m) { if (m == null) return; Item item = null; BaseCreature bc = null; switch (info.IncrID) { case 0: item = new BlackPearl(999); break; case 1: item = new Bloodmoss(999); break; case 2: item = new MandrakeRoot(999); break; case 3: item = new Garlic(999); break; case 4: item = new Ginseng(999); break; case 5: item = new Nightshade(999); break; case 6: item = new SpidersSilk(999); break; case 7: item = new SulfurousAsh(999); break; case 8: item = new Bag(); ((Bag)item).DropItem( new BlackPearl(100) ); ((Bag)item).DropItem( new Bloodmoss(100) ); ((Bag)item).DropItem( new MandrakeRoot(100) ); ((Bag)item).DropItem( new Garlic(100) ); ((Bag)item).DropItem( new Ginseng(100) ); ((Bag)item).DropItem( new Nightshade(100) ); ((Bag)item).DropItem( new SpidersSilk(100) ); ((Bag)item).DropItem( new SulfurousAsh(100) ); break; case 9: item = new BatWing(999); break; case 10: item = new GraveDust(999); break; case 11: item = new DaemonBlood(999); break; case 12: item = new NoxCrystal(999); break; case 13: item = new PigIron(999); break; case 14: item = new Bag(); ((Bag)item).DropItem( new BatWing(100) ); ((Bag)item).DropItem( new GraveDust(100) ); ((Bag)item).DropItem( new DaemonBlood(100) ); ((Bag)item).DropItem( new NoxCrystal(100) ); ((Bag)item).DropItem( new PigIron(100) ); break; case 15: for (int i=0; i < 2; i++) //The last potion is dropped later { item = new RefreshPotion(); m.AddToBackpack(item); } item = new RefreshPotion(); break; case 16: for (int i=0; i < 2; i++) //The last potion is dropped later { item = new RefreshPotion(); m.AddToBackpack(item); } item = new LesserCurePotion(); break; case 17: for (int i=0; i < 2; i++) //The last potion is dropped later { item = new RefreshPotion(); m.AddToBackpack(item); } item = new LesserHealPotion(); break; case 18: for (int i=0; i < 2; i++) //The last potion is dropped later { item = new RefreshPotion(); m.AddToBackpack(item); } item = new NightSightPotion(); break; case 19: item = new Bandage(50); break; case 20: item = new Bandage(200); break; case 21: item = new Bandage(1000); break; case 22: item = new Arrow(100); break; case 23: item = new Arrow(1000); break; case 24: item = new Bolt(100); break; case 25: item = new Bolt(1000); break; case 26: bc = new Horse(); break; case 27: bc = new PackLlama(); break; case 28: item = new Club(); BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 29: item = new WarFork(); BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 30: item = new Katana(); BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 31: item = new Bow(); BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 32: item = new MetalKiteShield(); BaseRunicTool.ApplyAttributesTo((BaseShield)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 33: item = new WoodenShield(); BaseRunicTool.ApplyAttributesTo((BaseShield)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 34: item = new LeatherChest(); BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 35: item = new LeatherGloves(); BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 36: item = new LeatherGorget(); BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 37: item = new LeatherLegs(); BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 38: item = new LeatherCap(); BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 39: item = new LeatherArms(); BaseRunicTool.ApplyAttributesTo((BaseArmor)item, Utility.RandomMinMax(1, 4), 40, 80); break; case 40: item = new Gold(300); break; case 41: item = new Gold(3000); break; case 42: item = new Server.Engines.BulkOrders.BulkOrderBook(); break; case 43: item = new Drums(); ((BaseInstrument)item).Quality = InstrumentQuality.Exceptional; break; case 44: item = new TambourineTassel(); ((BaseInstrument)item).Quality = InstrumentQuality.Exceptional; break; case 45: item = new Server.Multis.SmallDragonBoatDeed(); break; case 46: item = new Server.Multis.LargeDragonBoatDeed(); break; } if (item != null) { m.AddToBackpack(item); m.SendMessage("Here are the goods you requested."); } else if (bc != null) { bc.Controlled = true; bc.ControlMaster = m; bc.MoveToWorld( m.Location, m.Map ); m.SendMessage("Here is the pet you requested."); } else { m.SendMessage("That item is not available. Please report the bug at the site that will open in your browser."); m.LaunchBrowser( "http://bug.casiopia.net/" ); m.AddToBackpack( new VeriteGem(info.Price) ); } }
private static void AddThemeLoot (LockableContainer cont, int level, ChestThemeType type) { MonsterStatuette mx = null; //switch to add in theme treasures switch ( type ) { case ChestThemeType.Solen: { //drop are special weapon QuarterStaff special = new QuarterStaff(); special.Name = "Chitanous Staff"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); //go into dropping normal loot int onlyonedrop = Utility.RandomMinMax(0,1); if(onlyonedrop ==0 )cont.DropItem(new Seed(PlantType.Hedge,0,false)); //new solen seed if(onlyonedrop ==1 )cont.DropItem(new WaterBucket() ); //new waterbucket if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0,1); if(whichone == 0)mx = new MonsterStatuette (m_Monster[0]); if(whichone == 1)mx = new MonsterStatuette (m_Monster[1]); mx.LootType = LootType.Regular; // not blessed cont.DropItem( mx ); // drop it baby! } break; } case ChestThemeType.Brigand: { //drop are special weapon Katana special = new Katana(); special.Name = "Bandit's Blade"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0,1); if(onlyonedrop ==0 )cont.DropItem(new Brazier(true)); //new movable brazier if(onlyonedrop ==1 )cont.DropItem(new DecorativeBow(Utility.RandomMinMax(0,3))); //random decorative bow type for ( int i = 0; i < level * 5; ++i ) { cont.DropItem (new PowderOfTranslocation() ); //drop powder of translocation } if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0,1); if(whichone == 0)mx = new MonsterStatuette (m_Monster[2]); if(whichone == 1)mx = new MonsterStatuette (m_Monster[3]); mx.LootType = LootType.Regular; // not blessed cont.DropItem( mx ); // drop it baby! } break; } case ChestThemeType.Savage: { //drop are special weapon ShortSpear special = new ShortSpear(); special.Name = "Ornate Ritual Spear"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int rug = Utility.RandomMinMax(0,1); int onlyonedrop = Utility.RandomMinMax(0,1); if(onlyonedrop ==0 )cont.DropItem(new SkullPole() ); //new skull pole if(onlyonedrop ==1 ) { if(rug == 0) cont.DropItem(new BrownBearRugEastDeed() ); //new rug east if(rug == 1) cont.DropItem(new BrownBearRugSouthDeed() ); //new rug south } if (Utility.RandomDouble() <= .30 ) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0,1); if(whichone == 0)mx = new MonsterStatuette (m_Monster[4]); if(whichone == 1)mx = new MonsterStatuette (m_Monster[5]); mx.LootType = LootType.Regular; // not blessed cont.DropItem( mx ); // drop it baby! } break; } case ChestThemeType.Undead: { Halberd special = new Halberd(); special.Name = "Soul Reaver"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0,1); if(onlyonedrop ==0 )cont.DropItem(new BoneContainer(Utility.RandomMinMax(0,2))); //new bone container 3 differnt types 0-2 int stone = Utility.RandomMinMax(0,3); // get random gravestone type to drop if(onlyonedrop ==1 ) { if(stone == 0) cont.DropItem(new GraveStone1()); if(stone == 1) cont.DropItem(new GraveStone2()); if(stone == 2) cont.DropItem(new GraveStone3()); if(stone == 3) cont.DropItem(new GraveStone4()); } for ( int i = 0; i < level * 5; ++i ) { cont.DropItem(new Moonstone()); //drop moonstones } if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0,1); if(whichone == 0)mx = new MonsterStatuette (m_Monster[6]); if(whichone == 1)mx = new MonsterStatuette (m_Monster[7]); mx.LootType = LootType.Regular; // not blessed cont.DropItem( mx ); // drop it baby! } break; } case ChestThemeType.Pirate: { Bow special = new Bow(); special.Name = "Bow of the Buccaneer"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0,1); PirateHat hat = new PirateHat(); hat.Hue = 0x1; int oars = Utility.RandomMinMax(0,1); //2 oar types if(onlyonedrop ==0 ) { if(oars == 0) cont.DropItem(new Oars1()); if(oars == 1) cont.DropItem(new Oars2()); } if(onlyonedrop == 1 )cont.DropItem(new GenieBottle(false) ); //lamp currently disabled genie not done if (Utility.RandomDouble() <= 0.50 )cont.DropItem(hat); // 50% chance at black piratehat if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0,1); if(whichone == 0)mx = new MonsterStatuette (m_Monster[8]); if(whichone == 1) mx = new MonsterStatuette (m_Monster[9]); mx.LootType = LootType.Regular; // not blessed cont.DropItem( mx ); // drop it baby! } break; } case ChestThemeType.Dragon: { WarFork special = new WarFork(); special.Name = "Claw of the Dragon"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0,1); //new dragonhead trophydeed type if(onlyonedrop ==0 ) cont.DropItem(new TrophyDeed(8757, 8756, "a dragon head trophy", "a dragon head trophy", 10 )); int armor = Utility.RandomMinMax(0,2); // drop 1 piece of dragonarmor if(onlyonedrop == 1 ) { if(armor == 0) cont.DropItem(new HangingDragonChest()); if(armor == 1) cont.DropItem(new HangingDragonLegs()); if(armor == 2) cont.DropItem(new HangingDragonArms()); } if (Utility.RandomDouble() <= 0.30 ) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0,1); if(whichone == 0)mx = new MonsterStatuette (m_Monster[10]); if(whichone == 1)mx = new MonsterStatuette (m_Monster[11]); mx.LootType = LootType.Regular; // not blessed cont.DropItem( mx ); // drop it baby! } break; } case ChestThemeType.Lizardmen: { if (Utility.RandomBool()) cont.DropItem( new LizardmansStaff() ); else cont.DropItem( new LizardmansMace() ); } break; case ChestThemeType.Ettin: { cont.DropItem( new EttinHammer() ); } break; case ChestThemeType.Ogre: { cont.DropItem( new OgresClub() ); } break; case ChestThemeType.Ophidian: { cont.DropItem( new OphidianBardiche() ); } break; case ChestThemeType.Skeleton: { switch (Utility.Random(3)) { case 0: cont.DropItem( new SkeletonScimitar() ); break; case 1: cont.DropItem( new SkeletonAxe() ); break; case 2: cont.DropItem( new BoneMageStaff() ); break; } } break; case ChestThemeType.Ratmen: { if (Utility.RandomBool()) cont.DropItem( new RatmanSword() ); else cont.DropItem( new RatmanAxe() ); } break; case ChestThemeType.Orc: { switch (Utility.Random(3)) { case 0: cont.DropItem( new OrcClub() ); break; case 1: cont.DropItem( new OrcMageStaff() ); break; case 2: cont.DropItem( new OrcLordBattleaxe() ); break; } } break; case ChestThemeType.Terathan: { switch (Utility.Random(3)) { case 0: cont.DropItem( new TerathanStaff() ); break; case 1: cont.DropItem( new TerathanSpear() ); break; case 2: cont.DropItem( new TerathanMace() ); break; } } break; case ChestThemeType.FrostTroll: { switch (Utility.Random(3)) { case 0: cont.DropItem( new FrostTrollClub() ); break; case 1: cont.DropItem( new TrollAxe() ); break; case 2: cont.DropItem( new TrollMaul() ); break; } } break; }//end switch }
public undying() : base(AIType.AI_Necro, FightMode.Closest, 10, 1, 0.1, 0.2) { Name = "a dark knight"; Body = 401; Female = true; Hue = 16800; SetStr( 201, 205 ); SetDex( 91, 100 ); SetInt( 1500, 1800 ); SetHits( 9000, 10000 ); SetDamage( 24, 25 ); SetDamageType( ResistanceType.Physical, 100 ); SetResistance( ResistanceType.Physical, 45, 50 ); SetResistance( ResistanceType.Fire, 45, 50 ); SetResistance( ResistanceType.Cold, 45, 50 ); SetResistance( ResistanceType.Poison, 45, 50 ); SetResistance( ResistanceType.Energy, 45, 50 ); SetSkill( SkillName.SpiritSpeak, 110.1, 125.0 ); SetSkill( SkillName.Necromancy, 115.1, 120.0 ); SetSkill( SkillName.EvalInt, 110.1, 120.0 ); SetSkill( SkillName.Meditation, 90.1, 100.0 ); SetSkill( SkillName.MagicResist, 95.0, 107.5 ); SetSkill( SkillName.Anatomy, 110.2, 120.0 ); SetSkill( SkillName.Tactics, 100.0, 110.5 ); SetSkill( SkillName.Parry, 100.0, 110.5 ); SetSkill( SkillName.Wrestling, 100.0, 110.5 ); SetSkill( SkillName.Fencing, 110.2, 120.0 ); Fame = 22000; Karma = -15000; VirtualArmor = 16; PackNecroReg( 8, 15 ); AddItem( new HoodedShroudOfShadows( Utility.RandomNeutralHue() ) ); AddItem( new Sandals() ); AddItem( new Shirt( Utility.RandomNeutralHue() ) ); AddItem( new Skirt( Utility.RandomNeutralHue() ) ); WarFork weapon = new WarFork(); weapon.Movable = false; weapon.Attributes.WeaponDamage = 45; weapon.Attributes.WeaponSpeed = 15; weapon.Attributes.AttackChance = 10; weapon.WeaponAttributes.HitHarm = 50; weapon.WeaponAttributes.HitFireball = 50; weapon.Hue = 163; AddItem( weapon ); ChaosShield shield = new ChaosShield(); shield.Movable = false; shield.Attributes.SpellChanneling = 1; shield.Attributes.DefendChance = 10; shield.Hue = 163; AddItem( shield ); BaseMount horse = new Horse(); horse.Rider = this; horse.Hue = 16800; horse.Tamable = false; }
private static void AddThemeLoot(LockableContainer cont, int level, ChestThemeType type) { MonsterStatuette mx = null; //switch to add in theme treasures switch (type) { case ChestThemeType.Solen: { //drop are special weapon QuarterStaff special = new QuarterStaff(); special.Name = "Chitanous Staff"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); //go into dropping normal loot int onlyonedrop = Utility.RandomMinMax(0, 1); if (onlyonedrop == 0) { cont.DropItem(new Seed(PlantType.Hedge, 0, false)); //new solen seed } if (onlyonedrop == 1) { cont.DropItem(new WaterBucket()); //new waterbucket } if (Utility.RandomDouble() <= 0.30) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0, 1); if (whichone == 0) { mx = new MonsterStatuette(m_Monster[0]); } if (whichone == 1) { mx = new MonsterStatuette(m_Monster[1]); } mx.LootType = LootType.Regular; // not blessed cont.DropItem(mx); // drop it baby! } break; } case ChestThemeType.Brigand: { //drop are special weapon Katana special = new Katana(); special.Name = "Bandit's Blade"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0, 1); if (onlyonedrop == 0) { cont.DropItem(new Brazier(true)); //new movable brazier } if (onlyonedrop == 1) { cont.DropItem(new DecorativeBow(Utility.RandomMinMax(0, 3))); //random decorative bow type } for (int i = 0; i < level * 5; ++i) { cont.DropItem(new PowderOfTranslocation()); //drop powder of translocation } if (Utility.RandomDouble() <= 0.30) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0, 1); if (whichone == 0) { mx = new MonsterStatuette(m_Monster[2]); } if (whichone == 1) { mx = new MonsterStatuette(m_Monster[3]); } mx.LootType = LootType.Regular; // not blessed cont.DropItem(mx); // drop it baby! } break; } case ChestThemeType.Savage: { //drop are special weapon ShortSpear special = new ShortSpear(); special.Name = "Ornate Ritual Spear"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int rug = Utility.RandomMinMax(0, 1); int onlyonedrop = Utility.RandomMinMax(0, 1); if (onlyonedrop == 0) { cont.DropItem(new SkullPole()); //new skull pole } if (onlyonedrop == 1) { if (rug == 0) { cont.DropItem(new BrownBearRugEastDeed()); //new rug east } if (rug == 1) { cont.DropItem(new BrownBearRugSouthDeed()); //new rug south } } if (Utility.RandomDouble() <= .30) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0, 1); if (whichone == 0) { mx = new MonsterStatuette(m_Monster[4]); } if (whichone == 1) { mx = new MonsterStatuette(m_Monster[5]); } mx.LootType = LootType.Regular; // not blessed cont.DropItem(mx); // drop it baby! } break; } case ChestThemeType.Undead: { Halberd special = new Halberd(); special.Name = "Soul Reaver"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0, 1); if (onlyonedrop == 0) { cont.DropItem(new BoneContainer(Utility.RandomMinMax(0, 2))); //new bone container 3 differnt types 0-2 } int stone = Utility.RandomMinMax(0, 3); // get random gravestone type to drop if (onlyonedrop == 1) { if (stone == 0) { cont.DropItem(new GraveStone1()); } if (stone == 1) { cont.DropItem(new GraveStone2()); } if (stone == 2) { cont.DropItem(new GraveStone3()); } if (stone == 3) { cont.DropItem(new GraveStone4()); } } for (int i = 0; i < level * 5; ++i) { cont.DropItem(new Moonstone()); //drop moonstones } if (Utility.RandomDouble() <= 0.30) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0, 1); if (whichone == 0) { mx = new MonsterStatuette(m_Monster[6]); } if (whichone == 1) { mx = new MonsterStatuette(m_Monster[7]); } mx.LootType = LootType.Regular; // not blessed cont.DropItem(mx); // drop it baby! } break; } case ChestThemeType.Pirate: { Bow special = new Bow(); special.Name = "Bow of the Buccaneer"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0, 1); PirateHat hat = new PirateHat(); hat.Hue = 0x1; int oars = Utility.RandomMinMax(0, 1); //2 oar types if (onlyonedrop == 0) { if (oars == 0) { cont.DropItem(new Oars1()); } if (oars == 1) { cont.DropItem(new Oars2()); } } if (onlyonedrop == 1) { cont.DropItem(new GenieBottle(false)); //lamp currently disabled genie not done } if (Utility.RandomDouble() <= 0.50) { cont.DropItem(hat); // 50% chance at black piratehat } if (Utility.RandomDouble() <= 0.30) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0, 1); if (whichone == 0) { mx = new MonsterStatuette(m_Monster[8]); } if (whichone == 1) { mx = new MonsterStatuette(m_Monster[9]); } mx.LootType = LootType.Regular; // not blessed cont.DropItem(mx); // drop it baby! } break; } case ChestThemeType.Dragon: { WarFork special = new WarFork(); special.Name = "Claw of the Dragon"; cont.DropItem(Loot.ImbueWeaponOrArmor(special, 6, 0, true)); int onlyonedrop = Utility.RandomMinMax(0, 1); //new dragonhead trophydeed type if (onlyonedrop == 0) { cont.DropItem(new TrophyDeed(8757, 8756, "a dragon head trophy", "a dragon head trophy", 10)); } int armor = Utility.RandomMinMax(0, 2); // drop 1 piece of dragonarmor if (onlyonedrop == 1) { if (armor == 0) { cont.DropItem(new HangingDragonChest()); } if (armor == 1) { cont.DropItem(new HangingDragonLegs()); } if (armor == 2) { cont.DropItem(new HangingDragonArms()); } } if (Utility.RandomDouble() <= 0.30) //30% chance to drop a statue { int whichone = Utility.RandomMinMax(0, 1); if (whichone == 0) { mx = new MonsterStatuette(m_Monster[10]); } if (whichone == 1) { mx = new MonsterStatuette(m_Monster[11]); } mx.LootType = LootType.Regular; // not blessed cont.DropItem(mx); // drop it baby! } break; } case ChestThemeType.Lizardmen: { if (Utility.RandomBool()) { cont.DropItem(new LizardmansStaff()); } else { cont.DropItem(new LizardmansMace()); } } break; case ChestThemeType.Ettin: { cont.DropItem(new EttinHammer()); } break; case ChestThemeType.Ogre: { cont.DropItem(new OgresClub()); } break; case ChestThemeType.Ophidian: { cont.DropItem(new OphidianBardiche()); } break; case ChestThemeType.Skeleton: { switch (Utility.Random(3)) { case 0: cont.DropItem(new SkeletonScimitar()); break; case 1: cont.DropItem(new SkeletonAxe()); break; case 2: cont.DropItem(new BoneMageStaff()); break; } } break; case ChestThemeType.Ratmen: { if (Utility.RandomBool()) { cont.DropItem(new RatmanSword()); } else { cont.DropItem(new RatmanAxe()); } } break; case ChestThemeType.Orc: { switch (Utility.Random(3)) { case 0: cont.DropItem(new OrcClub()); break; case 1: cont.DropItem(new OrcMageStaff()); break; case 2: cont.DropItem(new OrcLordBattleaxe()); break; } } break; case ChestThemeType.Terathan: { switch (Utility.Random(3)) { case 0: cont.DropItem(new TerathanStaff()); break; case 1: cont.DropItem(new TerathanSpear()); break; case 2: cont.DropItem(new TerathanMace()); break; } } break; case ChestThemeType.FrostTroll: { switch (Utility.Random(3)) { case 0: cont.DropItem(new FrostTrollClub()); break; case 1: cont.DropItem(new TrollAxe()); break; case 2: cont.DropItem(new TrollMaul()); break; } } break; } //end switch }
public TownChestWeaponsmith() : base(0xE43) { Name = "a metal chest -20-"; Movable = true; Weight = 1000.0; Hue = 83; TrapPower = 0; Locked = true; RequiredSkill = 20; LockLevel = 20; MaxLockLevel = 25; // Gold if (Utility.RandomDouble() < 0.25) { DropItem(new Gold(Utility.Random(1, 50))); } // Supplies if (Utility.RandomDouble() < 0.10) { DropItem(new Axe()); } if (Utility.RandomDouble() < 0.05) { DropItem(new DoubleAxe()); } if (Utility.RandomDouble() < 0.10) { DropItem(new LargeBattleAxe()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Mace()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Maul()); } if (Utility.RandomDouble() < 0.10) { DropItem(new WarMace()); } if (Utility.RandomDouble() < 0.10) { DropItem(new ShortSpear()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Spear()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Longsword()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Scimitar()); } if (Utility.RandomDouble() < 0.10) { DropItem(new Arrow(Utility.Random(25, 30))); } /////////////////////////////////////// Rare Items 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, 5, 15, 20); DropItem(weapon); } }