public DarkTemplar() : base(AIType.AI_Stealth, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = "Krahnam The Leader of The Dark Templars"; Body = 318; BaseSoundID = 0x2A7; Hue = 32500; Hidden = true; AllowedStealthSteps = 24; RangeFight = 3; SetStr( 650, 900 ); SetDex( 150, 200 ); SetInt( 860, 1000 ); SetHits( 2400, 3000 ); SetDamage( 22, 25 ); SetDamageType( ResistanceType.Physical, 30 ); SetDamageType( ResistanceType.Cold, 40 ); SetDamageType( ResistanceType.Fire, 30 ); SetResistance( ResistanceType.Physical, 60, 70 ); SetResistance( ResistanceType.Fire, 60, 70 ); SetResistance( ResistanceType.Cold, 60, 70 ); SetResistance( ResistanceType.Poison, 60, 65 ); SetResistance( ResistanceType.Energy, 60, 70 ); SetSkill( SkillName.Anatomy, 110.2, 120.0 ); SetSkill( SkillName.Archery, 110.1, 120.0 ); SetSkill( SkillName.MagicResist, 90.1, 100.0 ); SetSkill( SkillName.Tactics, 110.1, 120.0 ); SetSkill( SkillName.Hiding, 100.0, 100.0 ); SetSkill( SkillName.Stealth, 120.0, 120.0 ); SetSkill( SkillName.SpiritSpeak, 100.1, 110.0 ); SetSkill( SkillName.Meditation, 100.1, 110.0 ); SetSkill( SkillName.EvalInt, 70.1, 80.0 ); Fame = 25000; Karma = -25000; VirtualArmor = 40; HeavyCrossbow weapon = new HeavyCrossbow(); weapon.Movable = false; weapon.Attributes.WeaponDamage = 35; weapon.Attributes.AttackChance = 40; weapon.Attributes.RegenHits = 40; weapon.WeaponAttributes.HitFireball = 100; weapon.WeaponAttributes.HitLightning = 100; weapon.WeaponAttributes.HitDispel = 100; weapon.Hue = 163; AddItem( weapon ); PackItem( new Bolt( Utility.RandomMinMax( 500, 700 ) ) ); }
public SoulboundPirateRaider() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = "a soulbound pirate raider"; Body = 0x190; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair(this); SetStr(150, 200); SetDex(125, 150); SetInt(95, 110); SetHits(200, 250); SetDamage(15, 25); SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 45, 55); SetResistance(ResistanceType.Fire, 45, 55); SetResistance(ResistanceType.Cold, 45, 55); SetResistance(ResistanceType.Poison, 45, 55); SetResistance(ResistanceType.Energy, 45, 55); SetSkill(SkillName.MagicResist, 50.0, 75.5); SetSkill(SkillName.Archery, 90.0, 105.5); SetSkill(SkillName.Tactics, 90.0, 105.5); SetSkill(SkillName.Anatomy, 90.0, 105.5); Fame = 2000; Karma = -2000; AddItem(new TricorneHat()); AddItem(new LeatherArms()); AddItem(new FancyShirt()); AddItem(new ShortPants()); AddItem(new Cutlass()); AddItem(new Boots(Utility.RandomNeutralHue())); AddItem(new GoldEarrings()); Item bow; switch (Utility.Random(4)) { default: case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break; case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break; case 2: bow = new Bow(); PackItem(new Arrow(25)); break; case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break; } AddItem(bow); }
public AmazonHuntress() : base( AIType.AI_Archer, FightMode.Closest, 5, 1, 0.45, 0.45 ) { Title = "an Amazon Huntress"; SetSkill( SkillName.Parry, 40.0, 60.0 ); SetSkill( SkillName.Archery, 40.0, 60.0 ); SetSkill( SkillName.Tactics, 50.0, 70.0 ); SetSkill( SkillName.MagicResist, 100.0 ); AddItem( MakeAmazonArmor( new FemaleLeatherChest() ) ); AddItem( MakeAmazonArmor( new LeatherGloves() ) ); AddItem( MakeAmazonArmor( new Boots() ) ); if ( Utility.Random( 350 ) == 0 ) AddItem( new JadeNecklace() ); if ( 0.10 > Utility.RandomDouble() ) { HeavyCrossbow weapon = new HeavyCrossbow(); double random = Utility.RandomDouble(); if ( 0.025 > random ) weapon.DamageLevel = PseudoSeerStone.Instance != null ? (WeaponDamageLevel)PseudoSeerStone.Instance._HighestDamageLevelSpawn : WeaponDamageLevel.Vanq; else if ( 0.075 > random ) weapon.DamageLevel = WeaponDamageLevel.Force; AddItem( MakeAmazonArmor( weapon ) ); } else AddItem( new Crossbow() ); Fame = 100; Karma = -3000; SetStr( 50, 65 ); SetDex( 50, 55 ); SetInt( 10, 13 ); SetHits( 180, 200 ); SetDamage( 6, 10 ); VirtualArmor = 30; }
public FemaleNecromancer() : base( AIType.AI_Mage, FightMode.Weakest, 10, 1, 0.1, 0.2 ) { Name = NameList.RandomName( "female" ); Title = "the necromancess"; Body = 401; Hue = 0x83EC; SetStr( 305, 425 ); SetDex( 82, 130 ); SetInt( 505, 750 ); SetHits( 2000, 3500 ); SetStam( 200, 300 ); SetDamage( 20, 30 ); SetDamageType( ResistanceType.Physical, 100 ); SetResistance( ResistanceType.Physical, 25, 30 ); SetResistance( ResistanceType.Fire, 35, 45 ); SetResistance( ResistanceType.Cold, 50, 60 ); SetResistance( ResistanceType.Poison, 30, 40 ); SetResistance( ResistanceType.Energy, 20, 30 ); SetSkill( SkillName.EvalInt, 105.0 ); SetSkill( SkillName.Magery, 100.0 ); SetSkill( SkillName.Meditation, 500.0 ); SetSkill( SkillName.MagicResist, 150.0 ); SetSkill( SkillName.Tactics, 100.0, 100.0 ); SetSkill( SkillName.Wrestling, 100.0, 100.0 ); Fame = 22500; Karma = -22500; VirtualArmor = 55; Female = true; Item shroud = new HoodedShroudOfShadows(); shroud.Movable = false; shroud.Hue = 1157; AddItem( shroud ); AddItem( new NecromaticMask() ); HeavyCrossbow weapon = new HeavyCrossbow(); weapon.Skill = SkillName.Wrestling; weapon.Hue = 38; weapon.Movable = false; AddItem( weapon ); new NecroMount().Rider = this; }
public PirateCrew() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, .2, .4) { Name = NameList.RandomName("orc"); Body = Utility.RandomList(17, 182, 7, 138, 140); bool mage = 0.33 > Utility.RandomDouble(); SetStr(100, 125); SetDex(125, 150); SetInt(250, 400); SetHits(250, 400); SetDamage(15, 25); if (mage) { ChangeAIType(AIType.AI_Mage); SetSkill(SkillName.Magery, 100.0, 120.0); SetSkill(SkillName.EvalInt, 100.0, 120.0); SetSkill(SkillName.Meditation, 100.0, 120.0); SetSkill(SkillName.MagicResist, 100.0, 120.0); } SetSkill(SkillName.Archery, 100.0, 120.0); SetSkill(SkillName.Tactics, 100.0, 120.0); SetSkill(SkillName.Wrestling, 100.0, 120.0); SetSkill(SkillName.Anatomy, 100.0, 120.0); SetDamageType(ResistanceType.Physical, 70); SetResistance(ResistanceType.Physical, 45, 55); SetResistance(ResistanceType.Fire, 45, 55); SetResistance(ResistanceType.Cold, 45, 55); SetResistance(ResistanceType.Poison, 45, 55); SetResistance(ResistanceType.Energy, 45, 55); Item bow; switch (Utility.Random(4)) { default: case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break; case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break; case 2: bow = new Bow(); PackItem(new Arrow(25)); break; case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break; } AddItem(bow); Fame = 8000; Karma = -8000; }
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 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 MerchantCrew() : base(AIType.AI_Paladin, FightMode.Aggressor, 10, 1, .2, .4) { Title = "the merchant"; Hue = Race.RandomSkinHue(); if (this.Female = Utility.RandomBool()) { Body = 0x191; Name = NameList.RandomName("female"); AddItem(new Skirt(Utility.RandomNeutralHue())); } else { Body = 0x190; Name = NameList.RandomName("male"); AddItem(new ShortPants(Utility.RandomNeutralHue())); } bool magery = 0.33 > Utility.RandomDouble(); SetStr(100, 125); SetDex(125, 150); SetInt(250, 400); SetHits(250, 400); SetDamage(15, 25); if (magery) { ChangeAIType(AIType.AI_Mage); SetSkill(SkillName.Magery, 100.0, 120.0); SetSkill(SkillName.EvalInt, 100.0, 120.0); SetSkill(SkillName.Meditation, 100.0, 120.0); SetSkill(SkillName.MagicResist, 100.0, 120.0); } SetSkill(SkillName.Archery, 100.0, 120.0); SetSkill(SkillName.Chivalry, 100.0, 120.0); SetSkill(SkillName.Focus, 100.0, 120.0); SetSkill(SkillName.Tactics, 100.0, 120.0); SetSkill(SkillName.Wrestling, 100.0, 120.0); SetSkill(SkillName.Anatomy, 100.0, 120.0); SetDamageType(ResistanceType.Physical, 70); SetResistance(ResistanceType.Physical, 45, 55); SetResistance(ResistanceType.Fire, 45, 55); SetResistance(ResistanceType.Cold, 45, 55); SetResistance(ResistanceType.Poison, 45, 55); SetResistance(ResistanceType.Energy, 45, 55); Item bow; switch (Utility.Random(4)) { default: case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break; case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break; case 2: bow = new Bow(); PackItem(new Arrow(25)); break; case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break; } AddItem(bow); AddItem(new TricorneHat()); AddItem(new FancyShirt()); AddItem(new ShortPants()); AddItem(new Boots(Utility.RandomNeutralHue())); AddItem(new GoldEarrings()); Fame = 8000; Karma = 8000; }
public Ghost() : base(AIType.AI_Stealth, FightMode.Closest, 10, 1, 0.1, 0.2) { switch ( Utility.Random( 31 ) ) { case 0: Name = "MUDDICK"; break; case 1: Name = "Mr Nonames"; break; case 2: Name = "Estraz"; break; case 3: Name = "Aurora"; break; case 4: Name = "Laputus"; break; case 5: Name = "Zapp"; break; case 6: Name = "El Diablo"; break; case 7: Name = "Killermage"; break; case 8: Name = "Lyuze"; break; case 9: Name = "El Lobo"; break; case 10: Name = "Raven Riley"; break; case 11: Name = "TIESTO"; break; case 12: Name = "HavoK"; break; case 13: Name = "Eager"; break; case 14: Name = "Julie"; break; case 15: Name = "Sexi Seppo"; break; case 16: Name = "Aurelka"; break; case 17: Name = "666"; break; case 18: Name = "Unas"; break; case 19: Name = "Hamul"; break; case 20: Name = "Asha Midori"; break; case 21: Name = "PLUMP"; break; case 22: Name = "FUCKOWN"; break; case 23: Name = "Puss-n-boots"; break; case 24: Name = "An energy vortex"; break; case 25: Name = "Rouche"; break; case 26: Name = "Marjatta"; break; case 27: Name = "Mayhem"; break; case 28: Name = "Toxic"; break; case 29: Name = "All Eyez On Me"; break; default: Name = "Bellatrix"; break; } Body = 970; Hue = 910; SetStr( 650, 900 ); SetDex( 150, 200 ); SetInt( 860, 1000 ); SetHits( 2500, 3000 ); SetDamage( 22, 25 ); SetDamageType( ResistanceType.Physical, 30 ); SetDamageType( ResistanceType.Cold, 40 ); SetDamageType( ResistanceType.Poison, 30 ); SetResistance( ResistanceType.Physical, 50, 60 ); SetResistance( ResistanceType.Fire, 50, 60 ); SetResistance( ResistanceType.Cold, 50, 60 ); SetResistance( ResistanceType.Poison, 50, 55 ); SetResistance( ResistanceType.Energy, 50, 60 ); SetSkill( SkillName.Anatomy, 110.2, 120.0 ); SetSkill( SkillName.Archery, 120.1, 130.0 ); SetSkill( SkillName.MagicResist, 90.1, 100.0 ); SetSkill( SkillName.Tactics, 110.1, 120.0 ); SetSkill( SkillName.Hiding, 100.0, 100.0 ); SetSkill( SkillName.Stealth, 120.0, 120.0 ); SetSkill( SkillName.SpiritSpeak, 100.1, 110.0 ); SetSkill( SkillName.Meditation, 100.1, 110.0 ); SetSkill( SkillName.EvalInt, 70.1, 80.0 ); Fame = 25000; Karma = -25000; VirtualArmor = 40; HeavyCrossbow weapon = new HeavyCrossbow(); weapon.Movable = false; weapon.Attributes.WeaponDamage = 35; weapon.Attributes.AttackChance = 40; weapon.Attributes.RegenHits = 30; weapon.WeaponAttributes.HitLightning = 100; weapon.WeaponAttributes.HitDispel = 100; AddItem( weapon ); }
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); } }
public static string MakeThisTask() { string task = null; switch (Utility.RandomMinMax(1, 10)) { case 1: task = "Repair"; break; case 2: task = "Fix"; break; case 3: task = "Enhance"; break; case 4: task = "Modify"; break; case 5: task = "Restring"; break; case 6: task = "Engrave"; break; case 7: task = "Adjust"; break; case 8: task = "Improve"; break; case 9: task = "Align"; break; case 10: task = "Balance"; break; } if (Utility.RandomMinMax(1, 5) == 1) { Item item = null; switch (Utility.RandomMinMax(1, 7)) { case 1: item = new Bow(); break; case 2: item = new Crossbow(); break; case 3: item = new HeavyCrossbow(); break; case 4: item = new RepeatingCrossbow(); break; case 5: item = new CompositeBow(); break; case 6: item = new MagicalShortbow(); break; case 7: item = new ElvenCompositeLongbow(); break; } bool evil = false; bool orient = false; switch (Utility.RandomMinMax(1, 8)) { case 1: evil = true; break; case 2: orient = true; break; } string sAdjective = "unusual"; string eAdjective = "might"; sAdjective = Server.LootPackEntry.MagicItemAdj("start", orient, evil, item.ItemID); eAdjective = Server.LootPackEntry.MagicItemAdj("end", orient, evil, item.ItemID); string name = "item"; string xName = ContainerFunctions.GetOwner("property"); if (item.Name != null && item.Name != "") { name = item.Name.ToLower(); } if (name == "item") { name = MorphingItem.AddSpacesToSentence((item.GetType()).Name).ToLower(); } switch (Utility.RandomMinMax(0, 5)) { case 0: name = sAdjective + " " + name + " of " + xName; break; case 1: name = name + " of " + xName; break; case 2: name = sAdjective + " " + name; break; case 3: name = sAdjective + " " + name + " of " + xName; break; case 4: name = name + " of " + xName; break; case 5: name = sAdjective + " " + name; break; } item.Delete(); task = task + " their " + name; } else { string[] sWoods = new string[] { " ", " ash wood ", " cherry wood ", " ebony wood ", " golden oak ", " hickory ", " mahogany ", " oak ", " pine ", " ghost wood ", " rosewood ", " walnut wood ", " petrified wood ", " diftwood ", " elven wood " }; string sWood = sWoods[Utility.RandomMinMax(0, (sWoods.Length - 1))]; task = task + " their" + sWood; switch (Utility.RandomMinMax(1, 8)) { case 1: task = task + "bow"; break; case 2: task = task + "crossbow"; break; case 3: task = task + "longbow"; break; case 4: task = task + "shortbow"; break; case 5: task = task + "repeating crossbow"; break; case 6: task = task + "heavy crossbow"; break; case 7: task = task + "composite longbow"; break; case 8: task = task + "composite shortbow"; break; } } return(task); }
public ArcherGuard( Mobile target ) : base( target ) { Summoned = true; InitStats(1000, 1000, 1000); SpeechHue = 0; Hue = Utility.RandomSkinHue(); #region Armor for (int i = 0; i < m_GuardArmor.Length; ++i) { m_GuardArmor[i].Resource = GuardTheme; AddItem(m_GuardArmor[i]); m_GuardArmor[i].Movable = false; } #endregion #region Cloth BaseClothing bC = null; switch (Utility.Random(3)) { case 0: bC = new Doublet(); break; case 1: bC = new Tunic(); break; case 2: bC = new BodySash(); bC.Layer = Layer.Earrings; break; } if (bC != null) { bC.Resource = GuardTheme; AddItem(bC); bC.Movable = false; } #endregion #region Male/Female if (Female = Utility.RandomBool()) { Body = 0x191; if (string.IsNullOrEmpty(Name)) { Name = NameList.RandomName("female"); Title = "the guard"; } FemalePlateChest ar = new FemalePlateChest(); ar.Resource = GuardTheme; AddItem(ar); ar.Movable = false; } else { Body = 0x190; if (string.IsNullOrEmpty(Name)) { Name = NameList.RandomName("male"); Title = "the guard"; } PlateChest ar = new PlateChest(); ar.Resource = GuardTheme; AddItem(ar); ar.Movable = false; } #endregion Utility.AssignRandomHair(this); if (Utility.RandomBool()) Utility.AssignRandomFacialHair(this, HairHue); Container pack = new Backpack(); pack.Movable = false; pack.DropItem(new Gold(10, 25)); AddItem(pack); #region Weapon BaseWeapon weapon; Item ammo; switch (Utility.Random(3)) { case 1: weapon = new Bow(); ammo = new Arrow(250); break; case 2: weapon = new Crossbow(); ammo = new Bolt(250); break; case 3: weapon = new HeavyCrossbow(); ammo = new Bolt(250); break; default: weapon = new Bow(); ammo = new Arrow(250); break; } weapon.Crafter = this; weapon.Resource = GuardTheme; weapon.Quality = WeaponQuality.Exceptional; weapon.Speed = 1; weapon.MinDamage = 10000; weapon.MaxDamage = 10000; AddItem(weapon); weapon.Movable = false; AddItem(ammo); ammo.LootType = LootType.Blessed; #endregion Skills[SkillName.Anatomy].Base = 120.0; Skills[SkillName.Tactics].Base = 125.0; Skills[SkillName.Archery].Base = 100.0; Skills[SkillName.MagicResist].Base = 120.0; Skills[SkillName.DetectHidden].Base = 100.0; if (Utility.RandomDouble() <= 0.1) new Horse().Rider = this; NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(1.0); Focus = target; }
public DragonKnightArcher() : base( AIType.AI_Melee, FightMode.Evil, 10, 1, 0.2, 0.4 ) { Title = "a DragonKnight Archer"; Name = NameList.RandomName( "male" ); Body = 0x191; Hue = 33805; Female = false; SetStr( 1025, 1425 ); SetDex( 81, 148 ); SetInt( 475, 675 ); Fame = 1000; Karma = 1000; SetHits( 1000, 2000 ); SetDamage( 24, 33 ); SetDamageType( ResistanceType.Physical, 100 ); SetResistance( ResistanceType.Physical, 60, 85 ); SetResistance(ResistanceType.Fire, 65, 90); SetResistance(ResistanceType.Cold, 40, 55); SetResistance( ResistanceType.Poison, 40, 60 ); SetResistance( ResistanceType.Energy, 50, 75 ); SetSkill( SkillName.Archery, 100, 140 ); SetSkill( SkillName.Tactics, 100, 140 ); SetSkill( SkillName.MagicResist, 100, 140 ); SetSkill( SkillName.Tactics, 100, 140 ); SetSkill( SkillName.Wrestling, 100, 140 ); SetSkill( SkillName.Swords, 100, 140 ); SetSkill( SkillName.Magery, 100, 140 ); SetSkill( SkillName.Focus, 100, 140 ); VirtualArmor = 80; HeavyCrossbow heavycrossbow = new HeavyCrossbow(); heavycrossbow.Movable = false; AddItem(heavycrossbow); //AddItem(new Bolt(100)); HumilityCloak cloak = new HumilityCloak(); cloak.Movable = false; AddItem(cloak); SpiritualityHelm spiritualityhelm = new SpiritualityHelm(); spiritualityhelm.Movable = false; AddItem(spiritualityhelm); HonestyGorget honestygorget = new HonestyGorget(); honestygorget.Movable = false; AddItem(honestygorget); JusticeBreastplate justicebreastplate = new JusticeBreastplate(); justicebreastplate.Movable = false; AddItem(justicebreastplate); BodySash bodysash = new BodySash(); bodysash.Movable = false; bodysash.Name = "Royal DragonKnight"; AddItem(bodysash); CompassionArms compassionarms = new CompassionArms(); compassionarms.Movable = false; AddItem(compassionarms); ValorGauntlets valorgauntlets = new ValorGauntlets(); valorgauntlets.Movable = false; AddItem(valorgauntlets); HonorLegs honorlegs = new HonorLegs(); honorlegs.Movable = false; AddItem(honorlegs); SacrificeSollerets sacrificesollerets = new SacrificeSollerets(); sacrificesollerets.Movable = false; AddItem(sacrificesollerets); // PlateChest chest = new PlateChest(); // chest.Movable = false; // chest.Hue = 137; // AddItem(chest); VampiriacSteed vampiriacsteed = new VampiriacSteed(); vampiriacsteed.Hue = 2219; //horse.Hits = 200; //horse.Karma = 500; vampiriacsteed.Rider = this; //new VampiriacSteed().Rider = this; heavycrossbow.Hue = 253; cloak.Hue = 253; spiritualityhelm.Hue = 2406; honestygorget.Hue = 2406; justicebreastplate.Hue = 2406; bodysash.Hue = 253; compassionarms.Hue = 2406; valorgauntlets.Hue = 2406; honorlegs.Hue = 2406; sacrificesollerets.Hue = 2406; }
public Raider() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Title = "the raider"; Hue = Utility.RandomSkinHue(); Utility.AssignRandomHair(this); SetStr(150, 200); SetDex(125, 150); SetInt(95, 110); SetHits(400, 650); SetDamage(21, 28); if (this.Female = Utility.RandomBool()) { Body = 0x191; Name = NameList.RandomName("female"); EquipItem(new Skirt(Utility.RandomNeutralHue())); } else { Body = 0x190; Name = NameList.RandomName("male"); EquipItem(new ShortPants(Utility.RandomNeutralHue())); } SetDamageType(ResistanceType.Physical, 100); SetResistance(ResistanceType.Physical, 45, 55); SetResistance(ResistanceType.Fire, 45, 55); SetResistance(ResistanceType.Cold, 45, 55); SetResistance(ResistanceType.Poison, 45, 55); SetResistance(ResistanceType.Energy, 45, 55); SetSkill(SkillName.MagicResist, 50.0, 75.5); SetSkill(SkillName.Archery, 90.0, 105.5); SetSkill(SkillName.Tactics, 90.0, 105.5); SetSkill(SkillName.Anatomy, 90.0, 105.5); Fame = 7500; Karma = -7500; SetWearable(new TricorneHat()); SetWearable(new LeatherArms()); SetWearable(new FancyShirt()); SetWearable(new Cutlass()); SetWearable(new Boots(Utility.RandomNeutralHue())); SetWearable(new GoldEarrings()); Item bow; switch (Utility.Random(4)) { default: case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break; case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break; case 2: bow = new Bow(); PackItem(new Arrow(25)); break; case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break; } SetWearable(bow); ControlSlots = 0; }
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 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 TownChestBowyer() : 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.15) { DropItem(new Bow()); } if (Utility.RandomDouble() < 0.15) { DropItem(new Crossbow()); } if (Utility.RandomDouble() < 0.08) { DropItem(new HeavyCrossbow()); } if (Utility.RandomDouble() < 0.08) { DropItem(new CompositeBow()); } if (Utility.RandomDouble() < 0.08) { DropItem(new RepeatingCrossbow()); } if (Utility.RandomDouble() < 0.08) { DropItem(new ElvenCompositeLongbow()); } if (Utility.RandomDouble() < 0.08) { DropItem(new MagicalShortbow()); } if (Utility.RandomDouble() < 0.25) { DropItem(new Arrow(Utility.Random(50, 100))); } if (Utility.RandomDouble() < 0.25) { DropItem(new Bolt(Utility.Random(50, 100))); } /////////////////////////////////////// Rare Items if (Utility.RandomDouble() < 0.25) { BaseWeapon weapon = Loot.RandomWeapon(true); switch (Utility.Random(4)) { case 0: weapon = new CompositeBow(); break; case 1: weapon = new ElvenCompositeLongbow(); break; case 2: weapon = new MagicalShortbow(); break; default: weapon = new Bow(); break; } BaseRunicTool.ApplyAttributesTo(weapon, 5, 10, 15); DropItem(weapon); } if (Utility.RandomDouble() < 0.25) { BaseWeapon crossbow = Loot.RandomWeapon(true); switch (Utility.Random(3)) { case 0: crossbow = new HeavyCrossbow(); break; case 1: crossbow = new RepeatingCrossbow(); break; default: crossbow = new Crossbow(); break; } BaseRunicTool.ApplyAttributesTo(crossbow, 5, 10, 15); DropItem(crossbow); } }