├── AIO Vendor Stone ├── AIO Vendors │ ├── AIOAlchemist.CS │ ├── AIOAnimalTrainer.cs │ ├── AIOArchitect.cs │ ├── AIOArmorer.cs │ ├── AIOBaker.cs │ ├── AIOBard.cs │ ├── AIOBarkeeper.cs │ ├── AIOBarkeeper.cs.bak │ ├── AIOBeekeeper.cs │ ├── AIOBlacksmith.cs │ ├── AIOBowyer.cs │ ├── AIOButcher.cs │ ├── AIOCarpenter.cs │ ├── AIOCobbler.cs │ ├── AIOCook.cs │ ├── AIOFisherman.cs │ ├── AIOFurtrader.cs │ ├── AIOGlassblower.cs │ ├── AIOHerbalist.cs │ ├── AIOInnKeeper.cs │ ├── AIOJeweler.cs │ ├── AIOLeatherWorker.cs │ ├── AIOMage.cs │ ├── AIOMapmaker.cs │ ├── AIOProvisioner.cs │ ├── AIORealEstateBroker.cs │ ├── AIOScribe.cs │ ├── AIOShipwright.cs │ ├── AIOTailor.cs │ ├── AIOTanner.cs │ ├── AIOTinker.cs │ ├── AIOVeterinarian.cs │ ├── AIOWeaponsmith.cs │ └── AIOWeaver.cs ├── AIOVendor Gump.cs ├── AIOVendor Stone.cs └── BaseAIOVendor.cs ├── Addon Editor ├── AddOn Editor.cs └── AddOnEditor_Att.cs ├── AnimationLocator └── AnimationLocator.cs ├── Arcane Focus Vending Machine └── ArcaneFocus Buyer.cs ├── Carousel.cs ├── CrystalPortals ├── CorruptedCrystalPortal.cs ├── CorruptedCrystalPortalGump.cs ├── CrystalPortal.cs └── CrystalPortalGump.cs ├── Custom Item ├── CustomBracelet ├── CustomEarrings ├── CustomFancyShirt ├── CustomFeatheredHat ├── CustomFemaleLeatherChest ├── CustomLeatherChest ├── CustomLeatherGloves ├── CustomLeatherLegs ├── CustomLongPants ├── CustomLongSword ├── CustomNecklace ├── CustomNinjaHood ├── CustomNinjaJacket ├── CustomNinjaPants ├── CustomObi ├── CustomPlateArms ├── CustomPlateChest ├── CustomPlateGloves ├── CustomPlateLegs ├── CustomRing ├── CustomScimitar ├── CustomSkullCap ├── CustomSurcoat ├── CustomTabi ├── CustomWarHammer ├── CustomerLeatherGorget ├── customcloak ├── customheatershield ├── custommaul ├── customplategorget ├── customplatehelm ├── customsash └── list ├── Elevator.cs ├── FreezeTile.cs ├── GuardianKnight.cs ├── ItemOfLight ├── BaseArmor_ItemOfLight.cs ├── BaseClothing_ItemOfLight.cs ├── BaseShield_ItemOfLight.cs ├── BaseWeapon_ItemOfLight.cs ├── Example Items │ ├── DaggerOfLight.cs │ ├── HalberdOfLight.cs │ ├── PlateChestOfLight.cs │ ├── RobeOfLight.cs │ └── ShieldOfLight.cs └── WearableLight.cs ├── LivingStatue ├── LivingStatue.cs └── LivingStatue_BaseDes.cs ├── Map Charter └── MapCharter.cs ├── MapDecoder.cs ├── Mobile Statues ├── BaseCreatureStatue.cs ├── OgreStatue.cs └── SkeletonStatue.cs ├── Monster In A Box ├── BodyValueDictionary.cs ├── BodyValues.ods ├── BoxedMobileGump.gump ├── Miab_Gump.cs ├── MonsterInABox_Item.cs ├── MonsterInABox_Mobile.cs ├── PreFabGump.cs ├── bodyvalues.JPG ├── mobile body value list from shrink.txt └── mobile prop list.txt ├── MovingTrap.cs ├── README.md ├── RuneChisel ├── RuneChisel.cs └── RuneChisel_Item.cs ├── SBSellAll.cs ├── SOS Decoder └── SOSDecoder.cs ├── ShameRevamp ├── Altar │ ├── ShameAltarAddon.cs │ ├── ShameAltarAddon.cs.bak │ ├── Wagon_AddOnType.cs │ └── Wagon_AddOnType.cs.bak ├── CountDownTimer1.cs ├── Mobiles │ ├── CaveTrolls │ │ ├── CaveTroll.cs │ │ ├── CaveTroll.cs.bak │ │ ├── CaveTroll2.cs │ │ ├── CaveTroll2.cs.bak │ │ ├── CaveTroll3.cs │ │ ├── CaveTroll3.cs.bak │ │ ├── PKLGate1.cs │ │ ├── PKLGate2.cs │ │ ├── PKLGate3.cs │ │ ├── ShameWall_1.cs │ │ ├── ShameWall_1.cs.bak │ │ ├── ShameWall_2.cs │ │ ├── ShameWall_2.cs.bak │ │ ├── ShameWall_3.cs │ │ └── ShameWall_3.cs.bak │ ├── Chaos Vortex.cs │ ├── ClayGolem.cs │ ├── ClayGolem.cs.bak │ ├── CorruptedMage.cs │ ├── DiseasedBloodElemental.cs │ ├── EternalGazer.cs │ ├── FlameElemental.cs │ ├── GreaterEarthElemental.cs │ ├── Guardians │ │ ├── FlameElementalGuardian.cs │ │ ├── FlameElementalGuardian.cs.bak │ │ ├── QuartzElementalGuardian.cs │ │ ├── QuartzElementalGuardian.cs.bak │ │ ├── WindElementalGuardian.cs │ │ └── WindElementalGuardian.cs.bak │ ├── MoltenEarthElemental.cs │ ├── MoltenEarthElemental.cs.bak │ ├── MudElemental.cs │ ├── MudPie.cs │ ├── ShameAirElemental.cs │ ├── ShameAirElementalGuardian.cs │ ├── ShameBloodElemental.cs │ ├── ShameEarthElemental.cs │ ├── ShameKraken.cs │ ├── ShamePoisonElemental.cs │ ├── ShameScorpion.cs │ ├── ShameSeaSerpent.cs │ ├── ShameWaterElemental.cs │ ├── StoneElemental.cs │ ├── TheBurning.cs │ ├── TheCrazed.cs │ ├── UnboundEnergyVortex.cs │ ├── VileMage.cs │ └── WindElemental.cs ├── ShameCrystal1.cs └── ShameCrystal1.cs.bak ├── SimpleChat ├── SmartItem.cs ├── SpeakingSign.cs ├── Spellbar ├── PositionGump.cs ├── PositionGump.cs.bak ├── SpellBarGump.cs ├── SpellBarGump.cs.bak ├── SpellBarScroll_XML.cs └── SpellBarScroll_XML.cs.bak ├── StealableSigns ├── BaseStealableSign.cs └── StealableSign.cs ├── Treasure Map Decoder └── TreasureMapDecoder.cs ├── WayStone_DungeonVersion.cs └── pause ├── Pause.cs └── Pause.cs.bak /AIO Vendor Stone/AIO Vendors/AIOAlchemist.CS: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOAlchemist : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.MagesGuild; } } 13 | 14 | [Constructable] 15 | public AIOAlchemist() : base( "the alchemist" ) 16 | { 17 | CantWalk = true; 18 | SetSkill( SkillName.Alchemy, 85.0, 100.0 ); 19 | SetSkill( SkillName.TasteID, 65.0, 88.0 ); 20 | 21 | } 22 | 23 | public override void InitSBInfo() 24 | { 25 | m_SBInfos.Add( new SBAlchemist() ); 26 | //m_SBInfos.Add( new SBSellAll() ); 27 | } 28 | 29 | 30 | public override VendorShoeType ShoeType 31 | { 32 | get{ return Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals; } 33 | } 34 | 35 | public override void InitOutfit() 36 | { 37 | base.InitOutfit(); 38 | 39 | AddItem( new Server.Items.Robe( Utility.RandomPinkHue() ) ); 40 | } 41 | 42 | public AIOAlchemist( Serial serial ) : base( serial ) 43 | { 44 | } 45 | 46 | public override void Serialize( GenericWriter writer ) 47 | { 48 | base.Serialize( writer ); 49 | 50 | writer.Write( (int) 0 ); // version 51 | 52 | } 53 | 54 | public override void Deserialize( GenericReader reader ) 55 | { 56 | base.Deserialize( reader ); 57 | 58 | int version = reader.ReadInt(); 59 | 60 | } 61 | 62 | } 63 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOArchitect.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOArchitect : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.TinkersGuild; } } 13 | 14 | [Constructable] 15 | public AIOArchitect() : base( "the architect" ) 16 | { 17 | 18 | CantWalk = true; 19 | } 20 | 21 | public override void InitSBInfo() 22 | { 23 | if ( !Core.AOS ) 24 | m_SBInfos.Add( new SBHouseDeed() ); 25 | 26 | m_SBInfos.Add( new SBArchitect() ); 27 | //m_SBInfos.Add( new SBSellAll() ); 28 | } 29 | 30 | public AIOArchitect( Serial serial ) : base( serial ) 31 | { 32 | } 33 | 34 | public override void Serialize( GenericWriter writer ) 35 | { 36 | base.Serialize( writer ); 37 | 38 | writer.Write( (int) 0 ); // version 39 | } 40 | 41 | public override void Deserialize( GenericReader reader ) 42 | { 43 | base.Deserialize( reader ); 44 | 45 | int version = reader.ReadInt(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOArmorer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOArmorer : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOArmorer() : base( "the armorer" ) 14 | { 15 | CantWalk = true; 16 | SetSkill( SkillName.ArmsLore, 64.0, 100.0 ); 17 | SetSkill( SkillName.Blacksmith, 60.0, 83.0 ); 18 | } 19 | 20 | public override void InitSBInfo() 21 | { 22 | switch ( Utility.Random( 4 )) 23 | { 24 | case 0: 25 | { 26 | m_SBInfos.Add( new SBLeatherArmor() ); 27 | m_SBInfos.Add( new SBStuddedArmor() ); 28 | m_SBInfos.Add( new SBMetalShields() ); 29 | m_SBInfos.Add( new SBPlateArmor() ); 30 | m_SBInfos.Add( new SBHelmetArmor() ); 31 | m_SBInfos.Add( new SBChainmailArmor() ); 32 | m_SBInfos.Add( new SBRingmailArmor() ); 33 | //m_SBInfos.Add( new SBSellAll() ); 34 | break; 35 | } 36 | case 1: 37 | { 38 | m_SBInfos.Add( new SBStuddedArmor() ); 39 | m_SBInfos.Add( new SBLeatherArmor() ); 40 | m_SBInfos.Add( new SBMetalShields() ); 41 | m_SBInfos.Add( new SBHelmetArmor() ); 42 | //m_SBInfos.Add( new SBSellAll() ); 43 | break; 44 | } 45 | case 2: 46 | { 47 | m_SBInfos.Add( new SBMetalShields() ); 48 | m_SBInfos.Add( new SBPlateArmor() ); 49 | m_SBInfos.Add( new SBHelmetArmor() ); 50 | m_SBInfos.Add( new SBChainmailArmor() ); 51 | m_SBInfos.Add( new SBRingmailArmor() ); 52 | //m_SBInfos.Add( new SBSellAll() ); 53 | break; 54 | } 55 | case 3: 56 | { 57 | m_SBInfos.Add( new SBMetalShields() ); 58 | m_SBInfos.Add( new SBHelmetArmor() ); 59 | //m_SBInfos.Add( new SBSellAll() ); 60 | break; 61 | } 62 | } 63 | if ( IsTokunoVendor ) 64 | { 65 | m_SBInfos.Add( new SBSELeatherArmor() ); 66 | m_SBInfos.Add( new SBSEArmor() ); 67 | 68 | } 69 | } 70 | 71 | public override VendorShoeType ShoeType 72 | { 73 | get{ return VendorShoeType.Boots; } 74 | } 75 | 76 | public override void InitOutfit() 77 | { 78 | base.InitOutfit(); 79 | 80 | AddItem( new Server.Items.HalfApron( Utility.RandomYellowHue() ) ); 81 | AddItem( new Server.Items.Bascinet() ); 82 | } 83 | 84 | public AIOArmorer( Serial serial ) : base( serial ) 85 | { 86 | } 87 | 88 | public override void Serialize( GenericWriter writer ) 89 | { 90 | base.Serialize( writer ); 91 | 92 | writer.Write( (int) 0 ); // version 93 | } 94 | 95 | public override void Deserialize( GenericReader reader ) 96 | { 97 | base.Deserialize( reader ); 98 | 99 | int version = reader.ReadInt(); 100 | } 101 | } 102 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOBaker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOBaker : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOBaker() : base( "the baker" ) 14 | { 15 | CantWalk = true; 16 | SetSkill( SkillName.Cooking, 75.0, 98.0 ); 17 | SetSkill( SkillName.TasteID, 36.0, 68.0 ); 18 | } 19 | 20 | 21 | public override void InitSBInfo() 22 | { 23 | m_SBInfos.Add( new SBBaker() ); 24 | //m_SBInfos.Add( new SBSellAll() ); 25 | } 26 | 27 | public AIOBaker( Serial serial ) : base( serial ) 28 | { 29 | } 30 | 31 | public override void Serialize( GenericWriter writer ) 32 | { 33 | base.Serialize( writer ); 34 | 35 | writer.Write( (int) 0 ); // version 36 | } 37 | 38 | public override void Deserialize( GenericReader reader ) 39 | { 40 | base.Deserialize( reader ); 41 | 42 | int version = reader.ReadInt(); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOBard.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOBard : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.BardsGuild; } } 13 | 14 | [Constructable] 15 | public AIOBard() : base( "the bard" ) 16 | { 17 | CantWalk = true; 18 | SetSkill( SkillName.Discordance, 64.0, 100.0 ); 19 | SetSkill( SkillName.Musicianship, 64.0, 100.0 ); 20 | SetSkill( SkillName.Peacemaking, 65.0, 88.0 ); 21 | SetSkill( SkillName.Provocation, 60.0, 83.0 ); 22 | SetSkill( SkillName.Archery, 36.0, 68.0 ); 23 | SetSkill( SkillName.Swords, 36.0, 68.0 ); 24 | } 25 | 26 | 27 | public override void InitSBInfo() 28 | { 29 | m_SBInfos.Add( new SBBard() ); 30 | //m_SBInfos.Add( new SBSellAll() ); 31 | } 32 | 33 | public AIOBard( Serial serial ) : base( serial ) 34 | { 35 | } 36 | 37 | public override void Serialize( GenericWriter writer ) 38 | { 39 | base.Serialize( writer ); 40 | 41 | writer.Write( (int) 0 ); // version 42 | } 43 | 44 | public override void Deserialize( GenericReader reader ) 45 | { 46 | base.Deserialize( reader ); 47 | 48 | int version = reader.ReadInt(); 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOBarkeeper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | using Server.Items; 5 | using Server.Gumps; 6 | using Server.Prompts; 7 | using Server.Network; 8 | using Server.ContextMenus; 9 | 10 | namespace Server.Mobiles 11 | { 12 | public class AIOBarkeeper : BaseAIOVendor 13 | { 14 | private List m_SBInfos = new List(); 15 | protected override List SBInfos{ get { return m_SBInfos; } } 16 | 17 | public override void InitSBInfo() 18 | { 19 | m_SBInfos.Add( new SBBarkeeper() ); 20 | //m_SBInfos.Add( new SBSellAll() ); 21 | } 22 | 23 | public override VendorShoeType ShoeType{ get{ return Utility.RandomBool() ? VendorShoeType.ThighBoots : VendorShoeType.Boots; } } 24 | 25 | public override void InitOutfit() 26 | { 27 | base.InitOutfit(); 28 | 29 | AddItem( new HalfApron( Utility.RandomBrightHue() ) ); 30 | } 31 | 32 | [Constructable] 33 | public AIOBarkeeper() : base( "the barkeeper" ) 34 | { 35 | CantWalk = true; 36 | } 37 | 38 | public AIOBarkeeper( Serial serial ) : base( serial ) 39 | { 40 | } 41 | 42 | public override void Serialize( GenericWriter writer ) 43 | { 44 | base.Serialize( writer ); 45 | 46 | writer.Write( (int) 0 ); // version 47 | } 48 | 49 | public override void Deserialize( GenericReader reader ) 50 | { 51 | base.Deserialize( reader ); 52 | 53 | int version = reader.ReadInt(); 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOBarkeeper.cs.bak: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | using Server.Items; 5 | using Server.Gumps; 6 | using Server.Prompts; 7 | using Server.Network; 8 | using Server.ContextMenus; 9 | 10 | namespace Server.Mobiles 11 | { 12 | public class AIOBarkeeper : BaseAIOVendor 13 | { 14 | private List m_SBInfos = new List(); 15 | protected override List SBInfos{ get { return m_SBInfos; } } 16 | 17 | public override void InitSBInfo() 18 | { 19 | m_SBInfos.Add( new SBBarkeeper() ); 20 | //m_SBInfos.Add( new SBSellAll() ); 21 | } 22 | 23 | public override VendorShoeType ShoeType{ get{ return Utility.RandomBool() ? VendorShoeType.ThighBoots : VendorShoeType.Boots; } } 24 | 25 | public override void InitOutfit() 26 | { 27 | base.InitOutfit(); 28 | 29 | AddItem( new HalfApron( RandomBrightHue() ) ); 30 | } 31 | 32 | [Constructable] 33 | public AIOBarkeeper() : base( "the barkeeper" ) 34 | { 35 | CantWalk = true; 36 | } 37 | 38 | public AIOBarkeeper( Serial serial ) : base( serial ) 39 | { 40 | } 41 | 42 | public override void Serialize( GenericWriter writer ) 43 | { 44 | base.Serialize( writer ); 45 | 46 | writer.Write( (int) 0 ); // version 47 | } 48 | 49 | public override void Deserialize( GenericReader reader ) 50 | { 51 | base.Deserialize( reader ); 52 | 53 | int version = reader.ReadInt(); 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOBeekeeper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOBeekeeper : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOBeekeeper() : base( "the beekeeper" ) 14 | { 15 | 16 | CantWalk = true; 17 | } 18 | 19 | public override void InitSBInfo() 20 | { 21 | m_SBInfos.Add( new SBBeekeeper() ); 22 | //m_SBInfos.Add( new SBSellAll() ); 23 | } 24 | 25 | public override VendorShoeType ShoeType{ get{ return VendorShoeType.Boots; } } 26 | 27 | public AIOBeekeeper( Serial serial ) : base( serial ) 28 | { 29 | } 30 | 31 | public override void Serialize( GenericWriter writer ) 32 | { 33 | base.Serialize( writer ); 34 | 35 | writer.Write( (int) 0 ); // version 36 | } 37 | 38 | public override void Deserialize( GenericReader reader ) 39 | { 40 | base.Deserialize( reader ); 41 | 42 | int version = reader.ReadInt(); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOBowyer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [TypeAlias( "Server.Mobiles.Bower" )] 8 | public class AIOBowyer : BaseAIOVendor 9 | { 10 | private List m_SBInfos = new List(); 11 | protected override List SBInfos{ get { return m_SBInfos; } } 12 | 13 | [Constructable] 14 | public AIOBowyer() : base( "the bowyer" ) 15 | { 16 | 17 | CantWalk = true; 18 | SetSkill( SkillName.Fletching, 80.0, 100.0 ); 19 | SetSkill( SkillName.Archery, 80.0, 100.0 ); 20 | } 21 | 22 | public override VendorShoeType ShoeType 23 | { 24 | get{ return Female ? VendorShoeType.ThighBoots : VendorShoeType.Boots; } 25 | } 26 | 27 | public override int GetShoeHue() 28 | { 29 | return 0; 30 | } 31 | 32 | public override void InitOutfit() 33 | { 34 | base.InitOutfit(); 35 | 36 | AddItem( new Server.Items.Bow() ); 37 | AddItem( new Server.Items.LeatherGorget() ); 38 | } 39 | 40 | public override void InitSBInfo() 41 | { 42 | m_SBInfos.Add( new SBBowyer() ); 43 | m_SBInfos.Add( new SBRangedWeapon() ); 44 | //m_SBInfos.Add( new SBSellAll() ); 45 | 46 | if ( IsTokunoVendor ) 47 | m_SBInfos.Add( new SBSEBowyer() ); 48 | } 49 | 50 | public AIOBowyer( Serial serial ) : base( serial ) 51 | { 52 | } 53 | 54 | public override void Serialize( GenericWriter writer ) 55 | { 56 | base.Serialize( writer ); 57 | 58 | writer.Write( (int) 0 ); // version 59 | } 60 | 61 | public override void Deserialize( GenericReader reader ) 62 | { 63 | base.Deserialize( reader ); 64 | 65 | int version = reader.ReadInt(); 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOButcher.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOButcher : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOButcher() : base( "the butcher" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.Anatomy, 45.0, 68.0 ); 18 | } 19 | 20 | public override void InitSBInfo() 21 | { 22 | m_SBInfos.Add( new SBButcher() ); 23 | // m_SBInfos.Add( new SBSellAll() ); 24 | } 25 | 26 | public override void InitOutfit() 27 | { 28 | base.InitOutfit(); 29 | 30 | AddItem( new Server.Items.HalfApron() ); 31 | AddItem( new Server.Items.Cleaver() ); 32 | } 33 | 34 | public AIOButcher( Serial serial ) : base( serial ) 35 | { 36 | } 37 | 38 | public override void Serialize( GenericWriter writer ) 39 | { 40 | base.Serialize( writer ); 41 | 42 | writer.Write( (int) 0 ); // version 43 | } 44 | 45 | public override void Deserialize( GenericReader reader ) 46 | { 47 | base.Deserialize( reader ); 48 | 49 | int version = reader.ReadInt(); 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOCarpenter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOCarpenter : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.TinkersGuild; } } 13 | 14 | [Constructable] 15 | public AIOCarpenter() : base( "the carpenter" ) 16 | { 17 | CantWalk = true; 18 | SetSkill( SkillName.Carpentry, 85.0, 100.0 ); 19 | SetSkill( SkillName.Lumberjacking, 60.0, 83.0 ); 20 | } 21 | 22 | public override void InitSBInfo() 23 | { 24 | m_SBInfos.Add( new SBStavesWeapon() ); 25 | m_SBInfos.Add( new SBCarpenter() ); 26 | m_SBInfos.Add( new SBWoodenShields() ); 27 | //m_SBInfos.Add( new SBSellAll() ); 28 | 29 | if ( IsTokunoVendor ) 30 | m_SBInfos.Add( new SBSECarpenter() ); 31 | } 32 | 33 | public override void InitOutfit() 34 | { 35 | base.InitOutfit(); 36 | 37 | AddItem( new Server.Items.HalfApron() ); 38 | } 39 | 40 | public AIOCarpenter( Serial serial ) : base( serial ) 41 | { 42 | } 43 | 44 | public override void Serialize( GenericWriter writer ) 45 | { 46 | base.Serialize( writer ); 47 | 48 | writer.Write( (int) 0 ); // version 49 | } 50 | 51 | public override void Deserialize( GenericReader reader ) 52 | { 53 | base.Deserialize( reader ); 54 | 55 | int version = reader.ReadInt(); 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOCobbler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOCobbler : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOCobbler() : base( "the cobbler" ) 14 | { 15 | CantWalk = true; 16 | SetSkill( SkillName.Tailoring, 60.0, 83.0 ); 17 | } 18 | 19 | public override void InitSBInfo() 20 | { 21 | m_SBInfos.Add( new SBCobbler() ); 22 | //m_SBInfos.Add( new SBSellAll() ); 23 | } 24 | 25 | public override VendorShoeType ShoeType 26 | { 27 | get{ return Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes; } 28 | } 29 | 30 | public AIOCobbler( Serial serial ) : base( serial ) 31 | { 32 | } 33 | 34 | public override void Serialize( GenericWriter writer ) 35 | { 36 | base.Serialize( writer ); 37 | 38 | writer.Write( (int) 0 ); // version 39 | } 40 | 41 | public override void Deserialize( GenericReader reader ) 42 | { 43 | base.Deserialize( reader ); 44 | 45 | int version = reader.ReadInt(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOCook.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOCook : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOCook() : base( "the cook" ) 14 | { 15 | CantWalk = true; 16 | SetSkill( SkillName.Cooking, 90.0, 100.0 ); 17 | SetSkill( SkillName.TasteID, 75.0, 98.0 ); 18 | } 19 | 20 | public override void InitSBInfo() 21 | { 22 | m_SBInfos.Add( new SBCook() ); 23 | //m_SBInfos.Add( new SBSellAll() ); 24 | 25 | if ( IsTokunoVendor ) 26 | m_SBInfos.Add( new SBSECook() ); 27 | } 28 | 29 | public override VendorShoeType ShoeType 30 | { 31 | get{ return Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes; } 32 | } 33 | 34 | public override void InitOutfit() 35 | { 36 | base.InitOutfit(); 37 | 38 | AddItem( new Server.Items.HalfApron() ); 39 | } 40 | 41 | public AIOCook( Serial serial ) : base( serial ) 42 | { 43 | } 44 | 45 | public override void Serialize( GenericWriter writer ) 46 | { 47 | base.Serialize( writer ); 48 | 49 | writer.Write( (int) 0 ); // version 50 | } 51 | 52 | public override void Deserialize( GenericReader reader ) 53 | { 54 | base.Deserialize( reader ); 55 | 56 | int version = reader.ReadInt(); 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOFisherman.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOFisherman : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.FishermensGuild; } } 13 | 14 | [Constructable] 15 | public AIOFisherman() : base( "the fisher" ) 16 | { 17 | CantWalk = true; 18 | SetSkill( SkillName.Fishing, 75.0, 98.0 ); 19 | } 20 | 21 | public override void InitSBInfo() 22 | { 23 | m_SBInfos.Add( new SBFisherman() ); 24 | //m_SBInfos.Add( new SBSellAll() ); 25 | } 26 | 27 | public override void InitOutfit() 28 | { 29 | base.InitOutfit(); 30 | 31 | AddItem( new Server.Items.FishingPole() ); 32 | } 33 | 34 | public AIOFisherman( Serial serial ) : base( serial ) 35 | { 36 | } 37 | 38 | public override void Serialize( GenericWriter writer ) 39 | { 40 | base.Serialize( writer ); 41 | 42 | writer.Write( (int) 0 ); // version 43 | } 44 | 45 | public override void Deserialize( GenericReader reader ) 46 | { 47 | base.Deserialize( reader ); 48 | 49 | int version = reader.ReadInt(); 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOFurtrader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOFurtrader : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOFurtrader() : base( "the furtrader" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.Camping, 55.0, 78.0 ); 18 | //SetSkill( SkillName.Alchemy, 60.0, 83.0 ); 19 | SetSkill( SkillName.AnimalLore, 85.0, 100.0 ); 20 | SetSkill( SkillName.Cooking, 45.0, 68.0 ); 21 | SetSkill( SkillName.Tracking, 36.0, 68.0 ); 22 | } 23 | 24 | public override void InitSBInfo() 25 | { 26 | m_SBInfos.Add( new SBFurtrader() ); 27 | //m_SBInfos.Add( new SBSellAll() ); 28 | } 29 | 30 | public AIOFurtrader( Serial serial ) : base( serial ) 31 | { 32 | } 33 | 34 | public override void Serialize( GenericWriter writer ) 35 | { 36 | base.Serialize( writer ); 37 | 38 | writer.Write( (int) 0 ); // version 39 | } 40 | 41 | public override void Deserialize( GenericReader reader ) 42 | { 43 | base.Deserialize( reader ); 44 | 45 | int version = reader.ReadInt(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOGlassblower.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [TypeAlias( "Server.Mobiles.GargoyleAlchemist" )] 8 | public class AIOGlassblower : BaseAIOVendor 9 | { 10 | private List m_SBInfos = new List(); 11 | protected override List SBInfos{ get { return m_SBInfos; } } 12 | 13 | public override NpcGuild NpcGuild{ get{ return NpcGuild.MagesGuild; } } 14 | 15 | [Constructable] 16 | public AIOGlassblower() : base( "the alchemist" ) 17 | { 18 | 19 | CantWalk = true; 20 | SetSkill( SkillName.Alchemy, 85.0, 100.0 ); 21 | SetSkill( SkillName.TasteID, 85.0, 100.0 ); 22 | } 23 | 24 | public override void InitSBInfo() 25 | { 26 | m_SBInfos.Add( new SBGlassblower() ); 27 | m_SBInfos.Add( new SBAlchemist() ); 28 | //sm_SBInfos.Add( new SBSellAll() ); 29 | } 30 | 31 | public AIOGlassblower( Serial serial ) : base( serial ) 32 | { 33 | } 34 | 35 | public override void Serialize( GenericWriter writer ) 36 | { 37 | base.Serialize( writer ); 38 | 39 | writer.Write( (int) 0 ); // version 40 | } 41 | 42 | public override void Deserialize( GenericReader reader ) 43 | { 44 | base.Deserialize( reader ); 45 | 46 | int version = reader.ReadInt(); 47 | 48 | if ( Body == 0x2F2 ) 49 | Body = 0x2F6; 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOHerbalist.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOHerbalist : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.MagesGuild; } } 13 | 14 | [Constructable] 15 | public AIOHerbalist() : base( "the herbalist" ) 16 | { 17 | 18 | CantWalk = true; 19 | SetSkill( SkillName.Alchemy, 80.0, 100.0 ); 20 | SetSkill( SkillName.Cooking, 80.0, 100.0 ); 21 | SetSkill( SkillName.TasteID, 80.0, 100.0 ); 22 | } 23 | 24 | public override void InitSBInfo() 25 | { 26 | m_SBInfos.Add( new SBHerbalist() ); 27 | //m_SBInfos.Add( new SBSellAll() ); 28 | } 29 | 30 | public override VendorShoeType ShoeType 31 | { 32 | get{ return Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals; } 33 | } 34 | 35 | public AIOHerbalist( Serial serial ) : base( serial ) 36 | { 37 | } 38 | 39 | public override void Serialize( GenericWriter writer ) 40 | { 41 | base.Serialize( writer ); 42 | 43 | writer.Write( (int) 0 ); // version 44 | } 45 | 46 | public override void Deserialize( GenericReader reader ) 47 | { 48 | base.Deserialize( reader ); 49 | 50 | int version = reader.ReadInt(); 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOInnKeeper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOInnKeeper : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOInnKeeper() : base( "the innkeeper" ) 14 | { 15 | CantWalk = true; 16 | } 17 | 18 | public override void InitSBInfo() 19 | { 20 | m_SBInfos.Add( new SBInnKeeper() ); 21 | //m_SBInfos.Add( new SBSellAll() ); 22 | 23 | if ( IsTokunoVendor ) 24 | m_SBInfos.Add( new SBSEFood() ); 25 | } 26 | 27 | public override VendorShoeType ShoeType 28 | { 29 | get{ return Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes; } 30 | } 31 | 32 | public AIOInnKeeper( Serial serial ) : base( serial ) 33 | { 34 | } 35 | 36 | public override void Serialize( GenericWriter writer ) 37 | { 38 | base.Serialize( writer ); 39 | 40 | writer.Write( (int) 0 ); // version 41 | } 42 | 43 | public override void Deserialize( GenericReader reader ) 44 | { 45 | base.Deserialize( reader ); 46 | 47 | int version = reader.ReadInt(); 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOJeweler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOJeweler : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOJeweler() : base( "the jeweler" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.ItemID, 64.0, 100.0 ); 18 | } 19 | 20 | public override void InitSBInfo() 21 | { 22 | m_SBInfos.Add( new SBJewel() ); 23 | //m_SBInfos.Add( new SBSellAll() ); 24 | } 25 | 26 | public AIOJeweler( Serial serial ) : base( serial ) 27 | { 28 | } 29 | 30 | public override void Serialize( GenericWriter writer ) 31 | { 32 | base.Serialize( writer ); 33 | 34 | writer.Write( (int) 0 ); // version 35 | } 36 | 37 | public override void Deserialize( GenericReader reader ) 38 | { 39 | base.Deserialize( reader ); 40 | 41 | int version = reader.ReadInt(); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOLeatherWorker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOLeatherWorker : BaseVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOLeatherWorker() : base( "the leather worker" ) 14 | { 15 | //Start Int Timer---> 16 | new InternalTimer( this ).Start();//Special Timer makes it auto delete after time period 17 | //End Int Timer<--- 18 | CantWalk = true; 19 | } 20 | 21 | //Start Int Timer---> 22 | private class InternalTimer : Timer 23 | { 24 | private Mobile m_Mobile; 25 | 26 | public InternalTimer( Mobile mobile ) : base( TimeSpan.FromMinutes( 2.0 ) ) 27 | { 28 | m_Mobile = mobile; 29 | Priority = TimerPriority.OneSecond; 30 | } 31 | 32 | protected override void OnTick() 33 | { 34 | m_Mobile.Delete(); 35 | } 36 | } 37 | //End Int Timer<---- 38 | 39 | public override void OnDoubleClick( Mobile from ) 40 | { 41 | Delete(); 42 | } 43 | 44 | public bool HandlesOnMovement{ get{ return true; } } 45 | 46 | public override void OnMovement( Mobile m, Point3D oldLocation ) 47 | { 48 | if ( InRange( m.Location, 8 ) && !InRange( oldLocation, 7 ) ) 49 | { 50 | Delete(); 51 | } 52 | 53 | base.OnMovement( m, oldLocation ); 54 | } 55 | 56 | public override void InitSBInfo() 57 | { 58 | m_SBInfos.Add( new SBLeatherArmor() ); 59 | m_SBInfos.Add( new SBStuddedArmor() ); 60 | m_SBInfos.Add( new SBLeatherWorker() ); 61 | m_SBInfos.Add( new SBSellAll() ); 62 | } 63 | public AIOLeatherWorker( Serial serial ) : base( serial ) 64 | { 65 | } 66 | 67 | public override void Serialize( GenericWriter writer ) 68 | { 69 | base.Serialize( writer ); 70 | 71 | writer.Write( (int) 0 ); // version 72 | } 73 | 74 | public override void Deserialize( GenericReader reader ) 75 | { 76 | base.Deserialize( reader ); 77 | 78 | int version = reader.ReadInt(); 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOMage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOMage : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.MagesGuild; } } 13 | 14 | [Constructable] 15 | public AIOMage() : base( "the mage" ) 16 | { 17 | 18 | CantWalk = true; 19 | SetSkill( SkillName.EvalInt, 65.0, 88.0 ); 20 | SetSkill( SkillName.Inscribe, 60.0, 83.0 ); 21 | SetSkill( SkillName.Magery, 64.0, 100.0 ); 22 | SetSkill( SkillName.Meditation, 60.0, 83.0 ); 23 | SetSkill( SkillName.MagicResist, 65.0, 88.0 ); 24 | SetSkill( SkillName.Wrestling, 36.0, 68.0 ); 25 | } 26 | 27 | public override void InitSBInfo() 28 | { 29 | m_SBInfos.Add( new SBMage() ); 30 | //m_SBInfos.Add( new SBSellAll() ); 31 | } 32 | 33 | public override VendorShoeType ShoeType 34 | { 35 | get{ return Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals; } 36 | } 37 | 38 | public override void InitOutfit() 39 | { 40 | base.InitOutfit(); 41 | 42 | AddItem( new Server.Items.Robe( Utility.RandomBlueHue() ) ); 43 | } 44 | 45 | public AIOMage( Serial serial ) : base( serial ) 46 | { 47 | } 48 | 49 | public override void Serialize( GenericWriter writer ) 50 | { 51 | base.Serialize( writer ); 52 | 53 | writer.Write( (int) 0 ); // version 54 | } 55 | 56 | public override void Deserialize( GenericReader reader ) 57 | { 58 | base.Deserialize( reader ); 59 | 60 | int version = reader.ReadInt(); 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOMapmaker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOMapmaker : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOMapmaker() : base( "the mapmaker" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.Cartography, 90.0, 100.0 ); 18 | } 19 | 20 | public override void InitSBInfo() 21 | { 22 | m_SBInfos.Add( new SBMapmaker() ); 23 | //m_SBInfos.Add( new SBSellAll() ); 24 | } 25 | 26 | public AIOMapmaker( Serial serial ) : base( serial ) 27 | { 28 | } 29 | 30 | public override void Serialize( GenericWriter writer ) 31 | { 32 | base.Serialize( writer ); 33 | 34 | writer.Write( (int) 0 ); // version 35 | } 36 | 37 | public override void Deserialize( GenericReader reader ) 38 | { 39 | base.Deserialize( reader ); 40 | 41 | int version = reader.ReadInt(); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOProvisioner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOProvisioner : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOProvisioner() : base( "the provisioner" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.Camping, 45.0, 68.0 ); 18 | SetSkill( SkillName.Tactics, 45.0, 68.0 ); 19 | } 20 | 21 | public override void InitSBInfo() 22 | { 23 | m_SBInfos.Add( new SBProvisioner() ); 24 | //m_SBInfos.Add( new SBSellAll() ); 25 | 26 | if ( IsTokunoVendor ) 27 | m_SBInfos.Add( new SBSEHats() ); 28 | } 29 | 30 | public AIOProvisioner( Serial serial ) : base( serial ) 31 | { 32 | } 33 | 34 | public override void Serialize( GenericWriter writer ) 35 | { 36 | base.Serialize( writer ); 37 | 38 | writer.Write( (int) 0 ); // version 39 | } 40 | 41 | public override void Deserialize( GenericReader reader ) 42 | { 43 | base.Deserialize( reader ); 44 | 45 | int version = reader.ReadInt(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOScribe.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOScribe : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.MagesGuild; } } 13 | 14 | [Constructable] 15 | public AIOScribe() : base( "the scribe" ) 16 | { 17 | 18 | CantWalk = true; 19 | SetSkill( SkillName.EvalInt, 60.0, 83.0 ); 20 | SetSkill( SkillName.Inscribe, 90.0, 100.0 ); 21 | } 22 | 23 | public override void InitSBInfo() 24 | { 25 | m_SBInfos.Add( new SBScribe() ); 26 | //m_SBInfos.Add( new SBSellAll() ); 27 | } 28 | 29 | public override VendorShoeType ShoeType 30 | { 31 | get{ return Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals; } 32 | } 33 | 34 | public override void InitOutfit() 35 | { 36 | base.InitOutfit(); 37 | 38 | AddItem( new Server.Items.Robe( Utility.RandomNeutralHue() ) ); 39 | } 40 | 41 | public AIOScribe( Serial serial ) : base( serial ) 42 | { 43 | } 44 | 45 | public override void Serialize( GenericWriter writer ) 46 | { 47 | base.Serialize( writer ); 48 | 49 | writer.Write( (int) 0 ); // version 50 | } 51 | 52 | public override void Deserialize( GenericReader reader ) 53 | { 54 | base.Deserialize( reader ); 55 | 56 | int version = reader.ReadInt(); 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOShipwright.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOShipwright : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOShipwright() : base( "the shipwright" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.Carpentry, 60.0, 83.0 ); 18 | SetSkill( SkillName.Macing, 36.0, 68.0 ); 19 | } 20 | 21 | public override void InitSBInfo() 22 | { 23 | m_SBInfos.Add( new SBShipwright() ); 24 | m_SBInfos.Add( new SBSellAll() ); 25 | } 26 | 27 | public override void InitOutfit() 28 | { 29 | base.InitOutfit(); 30 | 31 | AddItem( new Server.Items.SmithHammer() ); 32 | } 33 | 34 | public AIOShipwright( Serial serial ) : base( serial ) 35 | { 36 | } 37 | 38 | public override void Serialize( GenericWriter writer ) 39 | { 40 | base.Serialize( writer ); 41 | 42 | writer.Write( (int) 0 ); // version 43 | } 44 | 45 | public override void Deserialize( GenericReader reader ) 46 | { 47 | base.Deserialize( reader ); 48 | 49 | int version = reader.ReadInt(); 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOTailor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | using Server.Engines.BulkOrders; 5 | 6 | namespace Server.Mobiles 7 | { 8 | public class AIOTailor : BaseAIOVendor 9 | { 10 | private List m_SBInfos = new List(); 11 | protected override List SBInfos{ get { return m_SBInfos; } } 12 | 13 | public override NpcGuild NpcGuild{ get{ return NpcGuild.TailorsGuild; } } 14 | 15 | [Constructable] 16 | public AIOTailor() : base( "the tailor" ) 17 | { 18 | 19 | CantWalk = true; 20 | SetSkill( SkillName.Tailoring, 64.0, 100.0 ); 21 | } 22 | 23 | public override void InitSBInfo() 24 | { 25 | m_SBInfos.Add( new SBTailor() ); 26 | //m_SBInfos.Add( new SBSellAll() ); 27 | } 28 | 29 | public override VendorShoeType ShoeType 30 | { 31 | get{ return Utility.RandomBool() ? VendorShoeType.Sandals : VendorShoeType.Shoes; } 32 | } 33 | 34 | #region Bulk Orders 35 | public override Item CreateBulkOrder( Mobile from, bool fromContextMenu ) 36 | { 37 | PlayerMobile pm = from as PlayerMobile; 38 | 39 | if ( pm != null && pm.NextTailorBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) ) 40 | { 41 | double theirSkill = pm.Skills[SkillName.Tailoring].Base; 42 | 43 | if ( theirSkill >= 70.1 ) 44 | pm.NextTailorBulkOrder = TimeSpan.FromHours( 6.0 ); 45 | else if ( theirSkill >= 50.1 ) 46 | pm.NextTailorBulkOrder = TimeSpan.FromHours( 2.0 ); 47 | else 48 | pm.NextTailorBulkOrder = TimeSpan.FromHours( 1.0 ); 49 | 50 | if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() ) 51 | return new LargeTailorBOD(); 52 | 53 | return SmallTailorBOD.CreateRandomFor( from ); 54 | } 55 | 56 | return null; 57 | } 58 | 59 | public override bool IsValidBulkOrder( Item item ) 60 | { 61 | return ( item is SmallTailorBOD || item is LargeTailorBOD ); 62 | } 63 | 64 | public override bool SupportsBulkOrders( Mobile from ) 65 | { 66 | return ( from is PlayerMobile && from.Skills[SkillName.Tailoring].Base > 0 ); 67 | } 68 | 69 | public override TimeSpan GetNextBulkOrder( Mobile from ) 70 | { 71 | if ( from is PlayerMobile ) 72 | return ((PlayerMobile)from).NextTailorBulkOrder; 73 | 74 | return TimeSpan.Zero; 75 | } 76 | 77 | public override void OnSuccessfulBulkOrderReceive( Mobile from ) 78 | { 79 | if( Core.SE && from is PlayerMobile ) 80 | ((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero; 81 | } 82 | #endregion 83 | 84 | public AIOTailor( Serial serial ) : base( serial ) 85 | { 86 | } 87 | 88 | public override void Serialize( GenericWriter writer ) 89 | { 90 | base.Serialize( writer ); 91 | 92 | writer.Write( (int) 0 ); // version 93 | } 94 | 95 | public override void Deserialize( GenericReader reader ) 96 | { 97 | base.Deserialize( reader ); 98 | 99 | int version = reader.ReadInt(); 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOTanner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOTanner : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | [Constructable] 13 | public AIOTanner() : base( "the tanner" ) 14 | { 15 | 16 | CantWalk = true; 17 | SetSkill( SkillName.Tailoring, 36.0, 68.0 ); 18 | } 19 | 20 | public override void InitSBInfo() 21 | { 22 | m_SBInfos.Add( new SBTanner() ); 23 | //m_SBInfos.Add( new SBSellAll() ); 24 | } 25 | 26 | public AIOTanner( Serial serial ) : base( serial ) 27 | { 28 | } 29 | 30 | public override void Serialize( GenericWriter writer ) 31 | { 32 | base.Serialize( writer ); 33 | 34 | writer.Write( (int) 0 ); // version 35 | } 36 | 37 | public override void Deserialize( GenericReader reader ) 38 | { 39 | base.Deserialize( reader ); 40 | 41 | int version = reader.ReadInt(); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOTinker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class AIOTinker : BaseAIOVendor 8 | { 9 | private List m_SBInfos = new List(); 10 | protected override List SBInfos{ get { return m_SBInfos; } } 11 | 12 | public override NpcGuild NpcGuild{ get{ return NpcGuild.TinkersGuild; } } 13 | 14 | [Constructable] 15 | public AIOTinker() : base( "the tinker" ) 16 | { 17 | 18 | CantWalk = true; 19 | SetSkill( SkillName.Lockpicking, 60.0, 83.0 ); 20 | SetSkill( SkillName.RemoveTrap, 75.0, 98.0 ); 21 | SetSkill( SkillName.Tinkering, 64.0, 100.0 ); 22 | } 23 | 24 | public override void InitSBInfo() 25 | { 26 | m_SBInfos.Add( new SBTinker() ); 27 | //m_SBInfos.Add( new SBSellAll() ); 28 | } 29 | 30 | public AIOTinker( Serial serial ) : base( serial ) 31 | { 32 | } 33 | 34 | public override void Serialize( GenericWriter writer ) 35 | { 36 | base.Serialize( writer ); 37 | 38 | writer.Write( (int) 0 ); // version 39 | } 40 | 41 | public override void Deserialize( GenericReader reader ) 42 | { 43 | base.Deserialize( reader ); 44 | 45 | int version = reader.ReadInt(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOVeterinarian.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | using Server.Gumps; 5 | using Server.Items; 6 | using Server.Network; 7 | using Server.Targeting; 8 | using Server.ContextMenus; 9 | 10 | namespace Server.Mobiles 11 | { 12 | public class AIOVeterinarian : BaseAIOVendor 13 | { 14 | private List m_SBInfos = new List(); 15 | protected override List SBInfos{ get { return m_SBInfos; } } 16 | 17 | [Constructable] 18 | public AIOVeterinarian() : base( "the vet" ) 19 | { 20 | 21 | CantWalk = true; 22 | SetSkill( SkillName.AnimalLore, 85.0, 100.0 ); 23 | SetSkill( SkillName.Veterinary, 90.0, 100.0 ); 24 | } 25 | 26 | public override void InitSBInfo() 27 | { 28 | m_SBInfos.Add( new SBVeterinarian() ); 29 | //m_SBInfos.Add( new SBSellAll() ); 30 | } 31 | 32 | public AIOVeterinarian( Serial serial ) : base( serial ) 33 | { 34 | } 35 | 36 | public override void Serialize( GenericWriter writer ) 37 | { 38 | base.Serialize( writer ); 39 | 40 | writer.Write( (int) 0 ); // version 41 | } 42 | 43 | public override void Deserialize( GenericReader reader ) 44 | { 45 | base.Deserialize( reader ); 46 | 47 | int version = reader.ReadInt(); 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/AIO Vendors/AIOWeaver.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Server; 4 | using Server.Engines.BulkOrders; 5 | 6 | namespace Server.Mobiles 7 | { 8 | public class AIOWeaver : BaseAIOVendor 9 | { 10 | private List m_SBInfos = new List(); 11 | protected override List SBInfos{ get { return m_SBInfos; } } 12 | 13 | public override NpcGuild NpcGuild{ get{ return NpcGuild.TailorsGuild; } } 14 | 15 | [Constructable] 16 | public AIOWeaver() : base( "the weaver" ) 17 | { 18 | 19 | CantWalk = true; 20 | SetSkill( SkillName.Tailoring, 65.0, 88.0 ); 21 | } 22 | 23 | public override void InitSBInfo() 24 | { 25 | m_SBInfos.Add( new SBWeaver() ); 26 | //m_SBInfos.Add( new SBSellAll() ); 27 | } 28 | 29 | public override VendorShoeType ShoeType 30 | { 31 | get{ return VendorShoeType.Sandals; } 32 | } 33 | 34 | #region Bulk Orders 35 | public override Item CreateBulkOrder( Mobile from, bool fromContextMenu ) 36 | { 37 | PlayerMobile pm = from as PlayerMobile; 38 | 39 | if ( pm != null && pm.NextTailorBulkOrder == TimeSpan.Zero && (fromContextMenu || 0.2 > Utility.RandomDouble()) ) 40 | { 41 | double theirSkill = pm.Skills[SkillName.Tailoring].Base; 42 | 43 | if ( theirSkill >= 70.1 ) 44 | pm.NextTailorBulkOrder = TimeSpan.FromHours( 6.0 ); 45 | else if ( theirSkill >= 50.1 ) 46 | pm.NextTailorBulkOrder = TimeSpan.FromHours( 2.0 ); 47 | else 48 | pm.NextTailorBulkOrder = TimeSpan.FromHours( 1.0 ); 49 | 50 | if ( theirSkill >= 70.1 && ((theirSkill - 40.0) / 300.0) > Utility.RandomDouble() ) 51 | return new LargeTailorBOD(); 52 | 53 | return SmallTailorBOD.CreateRandomFor( from ); 54 | } 55 | 56 | return null; 57 | } 58 | 59 | public override bool IsValidBulkOrder( Item item ) 60 | { 61 | return ( item is SmallTailorBOD || item is LargeTailorBOD ); 62 | } 63 | 64 | public override bool SupportsBulkOrders( Mobile from ) 65 | { 66 | return ( from is PlayerMobile && from.Skills[SkillName.Tailoring].Base > 0 ); 67 | } 68 | 69 | public override TimeSpan GetNextBulkOrder( Mobile from ) 70 | { 71 | if ( from is PlayerMobile ) 72 | return ((PlayerMobile)from).NextTailorBulkOrder; 73 | 74 | return TimeSpan.Zero; 75 | } 76 | 77 | public override void OnSuccessfulBulkOrderReceive( Mobile from ) 78 | { 79 | if( Core.SE && from is PlayerMobile ) 80 | ((PlayerMobile)from).NextTailorBulkOrder = TimeSpan.Zero; 81 | } 82 | #endregion 83 | 84 | public AIOWeaver( Serial serial ) : base( serial ) 85 | { 86 | } 87 | 88 | public override void Serialize( GenericWriter writer ) 89 | { 90 | base.Serialize( writer ); 91 | 92 | writer.Write( (int) 0 ); // version 93 | } 94 | 95 | public override void Deserialize( GenericReader reader ) 96 | { 97 | base.Deserialize( reader ); 98 | 99 | int version = reader.ReadInt(); 100 | } 101 | } 102 | } -------------------------------------------------------------------------------- /AIO Vendor Stone/BaseAIOVendor.cs: -------------------------------------------------------------------------------- 1 | //Created by Peoharen for the Mobile Abilities Package. 2 | //Edited by zerodowned for the All In One NPC Vendor stone. I used Peoharen's script as a template. 3 | using System; 4 | using System.Collections; 5 | using System.Collections.Generic; 6 | using Server.Items; 7 | using Server.Network; 8 | using Server.ContextMenus; 9 | using Server.Mobiles; 10 | using Server.Misc; 11 | using Server.Engines.BulkOrders; 12 | using Server.Regions; 13 | using Server.Factions; 14 | using Server; 15 | 16 | namespace Server.Mobiles 17 | { 18 | 19 | public class BaseAIOVendor : BaseVendor 20 | { 21 | //protected override List SBInfos { get; } 22 | //protected abstract List SBInfos { get; } 23 | 24 | private List m_SBInfos = new List(); 25 | protected override List SBInfos{ get { return m_SBInfos; } } 26 | 27 | private DateTime m_DecayTime; 28 | public virtual TimeSpan m_Delay{ get{ return TimeSpan.FromMinutes( 2.0 ); } } 29 | 30 | public BaseAIOVendor( string title ) : base( title ) 31 | { 32 | this.Title = title; 33 | m_DecayTime = DateTime.Now + m_Delay; 34 | 35 | } 36 | 37 | //private List m_SBInfos = new List(); 38 | //protected override List SBInfos{ get { return m_SBInfos; } } 39 | 40 | public override void InitSBInfo() 41 | { 42 | } 43 | 44 | public override void OnDoubleClick( Mobile from ) 45 | { 46 | Delete(); 47 | } 48 | 49 | public bool HandlesOnMovement{ get{ return true; } } 50 | 51 | public override void OnMovement( Mobile m, Point3D oldLocation ) 52 | { 53 | if ( InRange( m.Location, 2 ) && !InRange( oldLocation, 1 ) ) 54 | { 55 | Delete(); 56 | } 57 | 58 | base.OnMovement( m, oldLocation ); 59 | } 60 | 61 | public override void OnThink() 62 | { 63 | if ( DateTime.Now > m_DecayTime ) 64 | { 65 | this.FixedParticles( 14120, 10, 15, 5012, EffectLayer.Waist ); 66 | //this.PlaySound( 510 ); 67 | this.Delete(); 68 | } 69 | } 70 | 71 | public BaseAIOVendor(Serial serial) : base(serial) 72 | { 73 | } 74 | 75 | public override void Serialize(GenericWriter writer) 76 | { 77 | base.Serialize(writer); 78 | 79 | writer.Write((int) 0); 80 | } 81 | 82 | public override void Deserialize(GenericReader reader) 83 | { 84 | base.Deserialize(reader); 85 | 86 | int version = reader.ReadInt(); 87 | 88 | m_DecayTime = DateTime.Now + TimeSpan.FromMinutes( 2.0 ); 89 | } 90 | } 91 | } -------------------------------------------------------------------------------- /Addon Editor/AddOnEditor_Att.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Commands; 4 | using Server.Gumps; 5 | using Server.Engines.XmlSpawner2; 6 | using Server.Items; 7 | 8 | namespace Server.Engines.XmlSpawner2 9 | { 10 | 11 | public class AddOnEditor_Att : XmlAttachment 12 | { 13 | [CommandProperty(AccessLevel.GameMaster)] 14 | public BaseAddon SelectedAddon 15 | { get; set; } 16 | 17 | 18 | public static void Initialize() { 19 | CommandSystem.Register( "AddonEdit", AccessLevel.Player, new CommandEventHandler( AddonEdit_OnCommand ) ); 20 | } 21 | 22 | [Usage("AddonEdit")] 23 | [Description("Allows you to edit AddOns")] 24 | public static void AddonEdit_OnCommand( CommandEventArgs e ) 25 | { 26 | AddOnEditor_Att addoneditor = (AddOnEditor_Att)XmlAttach.FindAttachment(e.Mobile, typeof(AddOnEditor_Att)); 27 | 28 | if( addoneditor == null ) { 29 | XmlAttach.AttachTo(e.Mobile, new AddOnEditor_Att()); 30 | AddonEdit_OnCommand(e); 31 | } 32 | else 33 | { 34 | if( e.Mobile.HasGump(typeof(AddOnEditor)) ) { 35 | e.Mobile.CloseGump(typeof(AddOnEditor)); 36 | } 37 | e.Mobile.SendGump( new AddOnEditor( e.Mobile, addoneditor) ); 38 | } 39 | } 40 | 41 | public void Resend( Mobile from ) 42 | { 43 | AddOnEditor_Att addoneditor = (AddOnEditor_Att)XmlAttach.FindAttachment(from, typeof(AddOnEditor_Att)); 44 | 45 | if( from.HasGump(typeof(AddOnEditor)) ) { 46 | from.CloseGump(typeof(AddOnEditor)); 47 | } 48 | from.SendGump( new AddOnEditor( from, addoneditor) ); 49 | } 50 | 51 | public AddOnEditor_Att( ASerial serial ) : base( serial ) 52 | {} 53 | 54 | [Attachable] 55 | public AddOnEditor_Att() 56 | {} 57 | 58 | public override void Serialize( GenericWriter writer ) 59 | { 60 | base.Serialize( writer ); 61 | writer.Write( (int) 0 ); // version 62 | 63 | writer.Write( (BaseAddon) SelectedAddon); 64 | } 65 | 66 | public override void Deserialize( GenericReader reader ) 67 | { 68 | base.Deserialize( reader ); 69 | int version = reader.ReadInt(); 70 | 71 | SelectedAddon = ( BaseAddon )reader.ReadItem(); 72 | 73 | } 74 | 75 | } 76 | } 77 | 78 | -------------------------------------------------------------------------------- /CrystalPortals/CorruptedCrystalPortalGump.cs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | using System; 5 | using Server; 6 | using Server.Gumps; 7 | using Server.Network; 8 | using Server.Items; 9 | using Server.Mobiles; 10 | using Server.Multis; 11 | using Server.Regions; 12 | 13 | namespace Server.Gumps 14 | { 15 | public class CorruptedCrystalPortalGump : Gump 16 | { 17 | private Mobile m_From; 18 | 19 | public CorruptedCrystalPortalGump( Mobile from ) : base( 25,25 ) 20 | { 21 | m_From = from; 22 | m_From.CloseGump( typeof( CorruptedCrystalPortalGump ) ); 23 | 24 | this.Closable=true; 25 | this.Disposable=false; 26 | this.Dragable=true; 27 | this.Resizable=false; 28 | 29 | AddPage(0); 30 | AddBackground(0, 2, 373, 515, 9200); 31 | AddHtml( 14, 15, 346, 484, @"

This corrupted portal allows you to teleport directly to a dungeon.

For Trammel ruleset, say 'dungeon' followed by the name of the dungeon (e.g. 'dungeon shame'). For Felucca, say 'fel' then same rules as above. So 'fel dungeon shame'.

DUNGEON NAMES:
covetous, deceit, despise, destard, ice, fire, hythloth, orc, shame, wrong, wind, doom, citadel, fandancer, mines, bedlam, labyrinth, underworld, abyss.

FEL DUNGEON NAMES
covetous, deceit, despise, destard, fire, hythloth, ice, orc, shame, wrong, wind

The same teleportation rules apply regarding criminal flagging, weight, etc.

", (bool)true, (bool)true); 32 | } 33 | 34 | 35 | 36 | public override void OnResponse(NetState sender, RelayInfo info) 37 | { 38 | Mobile from = sender.Mobile; 39 | 40 | switch(info.ButtonID) 41 | { 42 | case 0: 43 | { 44 | 45 | break; 46 | } 47 | 48 | } 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /CrystalPortals/CrystalPortalGump.cs: -------------------------------------------------------------------------------- 1 | /* 2 | [cliloc(s) 1113946 - 1113950] 3 | 4 | This crystal portal allows you to teleport directly to a bank or a moongate.

5 | 6 | For Trammel ruleset, say the city's name followed by "mint" (e.g. "minoc mint"). For a moongate, say the gate's name and "moongate" (eg. "minoc moongate").

7 | 8 | For Felucca, say "fel" then same rules as above. So "fel minoc mint" or "fel minoc moongate". 9 | CITY NAMES:
10 | britain, bucs, cove, delucia, haven, jhelom, magincia, minoc, moonglow, nujelm, ocllo, papua, serpent, skara, trinsic, vesper, wind, yew, luna, umbra, zento, termur, ilshenar 11 | MOONGATE NAMES
12 | moonglow, britain, jhelom, yew, minoc, trinsic, skara, magincia, haven, bucs, vesper, compassion, honesty, honor, humility, justice, sacrifice, spirituality, valor, chaos, luna, umbra, isamu, makoto, homare, termur


13 | 14 | 15 | The same teleportation rules apply regarding criminal flagging, weight, etc. 16 | */ 17 | 18 | 19 | using System; 20 | using Server; 21 | using Server.Gumps; 22 | using Server.Network; 23 | using Server.Items; 24 | using Server.Mobiles; 25 | using Server.Multis; 26 | using Server.Regions; 27 | 28 | namespace Server.Gumps 29 | { 30 | public class CrystalPortalGump : Gump 31 | { 32 | private Mobile m_From; 33 | 34 | public CrystalPortalGump( Mobile from ) : base( 25,25 ) 35 | { 36 | m_From = from; 37 | m_From.CloseGump( typeof( CrystalPortalGump ) ); 38 | 39 | this.Closable=true; 40 | this.Disposable=false; 41 | this.Dragable=true; 42 | this.Resizable=false; 43 | 44 | AddPage(0); 45 | AddBackground(0, 2, 373, 515, 9200); 46 | AddHtml( 14, 15, 346, 484, @"

This crystal portal allows you to teleport directly to a bank or a moongate.

For Trammel ruleset, say the city's name followed by 'mint' (e.g. 'minoc mint'). For a moongate, say the gate's name and 'moongate' (eg. 'minoc moongate').

For Felucca, say 'fel' then same rules as above. So 'fel minoc mint' or 'fel minoc moongate'.

CITY NAMES:
britain, bucs, cove, delucia, haven, jhelom, magincia, minoc, moonglow, nujelm, papua, serpent, skara, trinsic, vesper, wind, luna, umbra, zento, ilshenar

FEL CITY NAMES:
britain, bucs, cove, ocllo, jhelom, magincia, minoc, moonglow, nujelm, serpent, skara, trinsic, vesper, wind

MOONGATE NAMES
moonglow, britain, jhelom, yew, minoc, trinsic, skara, magincia, haven, bucs, vesper, compassion, honesty, honor, humility, justice, sacrifice, spirituality, valor, chaos, luna, umbra, isamu, makoto, homare, termur

FEL MOONGATE NAMES
britain, bucs, jhelom, magincia, minoc, moonglow, skara, trinsic, vesper

The same teleportation rules apply regarding criminal flagging, weight, etc.

", (bool)true, (bool)true); 47 | } 48 | 49 | 50 | 51 | public override void OnResponse(NetState sender, RelayInfo info) 52 | { 53 | Mobile from = sender.Mobile; 54 | 55 | switch(info.ButtonID) 56 | { 57 | case 0: 58 | { 59 | 60 | break; 61 | } 62 | 63 | } 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Custom Item/CustomBracelet: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomBracelet : GoldBracelet 6 | { 7 | [Constructable] 8 | public CustomBracelet() 9 | { 10 | this.LootType = LootType.Blessed; 11 | 12 | this.Attributes.DefendChance = 5; 13 | this.Resistances.Fire = 5; 14 | this.Resistances.Cold = 5; 15 | this.Resistances.Poison = 5; 16 | this.Resistances.Energy = 5; 17 | } 18 | 19 | public CustomBracelet(Serial serial) 20 | : base(serial) 21 | { 22 | } 23 | public override void Serialize(GenericWriter writer) 24 | { 25 | base.Serialize(writer); 26 | 27 | writer.WriteEncodedInt(0); // version 28 | } 29 | 30 | public override void Deserialize(GenericReader reader) 31 | { 32 | base.Deserialize(reader); 33 | 34 | int version = reader.ReadEncodedInt(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Custom Item/CustomEarrings: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomEarrings : GoldEarrings 6 | { 7 | [Constructable] 8 | public CustomEarrings() 9 | : base() 10 | 11 | { 12 | //this.Name = ("Dragon Jade Earrings"); 13 | 14 | this.Hue = 2129; 15 | 16 | this.Attributes.BonusDex = 5; 17 | this.Attributes.BonusStr = 5; 18 | this.Attributes.RegenHits = 2; 19 | this.Attributes.RegenStam = 3; 20 | this.Attributes.LowerManaCost = 5; 21 | this.Resistances.Physical = 9; 22 | this.Resistances.Fire = 16; 23 | this.Resistances.Cold = 5; 24 | this.Resistances.Poison = 13; 25 | this.Resistances.Energy = 3; 26 | //AbsorptionAttribute.EaterFire = 10; 27 | } 28 | 29 | public CustomEarrings(Serial serial) 30 | : base(serial) 31 | { 32 | } 33 | 34 | public override int InitMinHits 35 | { 36 | get 37 | { 38 | return 255; 39 | } 40 | } 41 | public override int InitMaxHits 42 | { 43 | get 44 | { 45 | return 255; 46 | } 47 | } 48 | 49 | 50 | public override void Serialize(GenericWriter writer) 51 | { 52 | base.Serialize(writer); 53 | 54 | writer.Write((int)0); // version 55 | } 56 | 57 | public override void Deserialize(GenericReader reader) 58 | { 59 | base.Deserialize(reader); 60 | 61 | int version = reader.ReadInt(); 62 | } 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /Custom Item/CustomFancyShirt: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomFancyShirt : FancyShirt 6 | { 7 | 8 | [Constructable] 9 | public CustomFancyShirt() 10 | { 11 | } 12 | 13 | public CustomFancyShirt(Serial serial) 14 | : base(serial) 15 | { 16 | } 17 | 18 | public override void Serialize(GenericWriter writer) 19 | { 20 | base.Serialize(writer); 21 | 22 | writer.Write((int)0); // version 23 | } 24 | 25 | public override void Deserialize(GenericReader reader) 26 | { 27 | base.Deserialize(reader); 28 | 29 | int version = reader.ReadInt(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Custom Item/CustomFeatheredHat: -------------------------------------------------------------------------------- 1 | using Server; 2 | using System; 3 | 4 | namespace Server.Items 5 | { 6 | public class CustomFeatheredHat : FeatheredHat 7 | { 8 | 9 | [Constructable] 10 | public CustomFeatheredHat() 11 | : base() 12 | { 13 | 14 | Attributes.NightSight = 1; 15 | Attributes.BonusStr = 8; 16 | Attributes.DefendChance = 15; 17 | StrRequirement = 45; 18 | Hue = 1150; 19 | } 20 | 21 | public CustomFeatheredHat(Serial serial) : base(serial) { } 22 | 23 | public override int BasePhysicalResistance { get { return 20; } } 24 | public override int BaseFireResistance { get { return 10; } } 25 | public override int BaseColdResistance { get { return 10; } } 26 | public override int BasePoisonResistance { get { return 10; } } 27 | public override int BaseEnergyResistance { get { return 10; } } 28 | public override int InitMinHits { get { return 255; } } 29 | public override int InitMaxHits { get { return 255; } } 30 | 31 | 32 | 33 | public override void Serialize(GenericWriter writer) 34 | { 35 | base.Serialize(writer); 36 | writer.Write(0); 37 | } 38 | 39 | public override void Deserialize(GenericReader reader) 40 | { 41 | base.Deserialize(reader); 42 | int version = reader.ReadInt(); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Custom Item/CustomFemaleLeatherChest: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomFemaleLeatherChest : FemaleLeatherChest 6 | { 7 | [Constructable] 8 | public CustomFemaleLeatherChest() 9 | { 10 | this.Attributes.BonusHits = 5; 11 | this.Attributes.BonusStr = 5; 12 | this.Attributes.BonusDex = 5; 13 | this.Attributes.BonusStam = 5; 14 | this.Attributes.RegenStam = 3; 15 | this.Attributes.LowerManaCost = 10; 16 | this.Hue = 1863; // Hue not exact 17 | //this.Name = ("Bronzed Armor of the Valkyrie"); 18 | } 19 | 20 | public CustomFemaleLeatherChest(Serial serial) 21 | : base(serial) 22 | { 23 | } 24 | 25 | public override int BasePhysicalResistance 26 | { 27 | get 28 | { 29 | return 11; 30 | } 31 | } 32 | public override int BaseFireResistance 33 | { 34 | get 35 | { 36 | return 14; 37 | } 38 | } 39 | public override int BaseColdResistance 40 | { 41 | get 42 | { 43 | return 8; 44 | } 45 | } 46 | public override int BasePoisonResistance 47 | { 48 | get 49 | { 50 | return 11; 51 | } 52 | } 53 | public override int BaseEnergyResistance 54 | { 55 | get 56 | { 57 | return 8; 58 | } 59 | } 60 | public override int InitMinHits 61 | { 62 | get 63 | { 64 | return 255; 65 | } 66 | } 67 | public override int InitMaxHits 68 | { 69 | get 70 | { 71 | return 255; 72 | } 73 | } 74 | public override void Serialize(GenericWriter writer) 75 | { 76 | base.Serialize(writer); 77 | writer.Write((int)0); 78 | } 79 | 80 | public override void Deserialize(GenericReader reader) 81 | { 82 | base.Deserialize(reader); 83 | int version = reader.ReadInt(); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /Custom Item/CustomLeatherChest: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomLeatherChest : LeatherChest 6 | { 7 | 8 | [Constructable] 9 | public CustomLeatherChest() 10 | : base() 11 | { 12 | //this.Name = ("Protector of the Battle Mage"); 13 | 14 | this.Hue = 1159; 15 | 16 | this.Attributes.LowerManaCost = 8; 17 | this.Attributes.RegenMana = 2; 18 | this.Attributes.LowerRegCost = 10; 19 | this.Attributes.SpellDamage = 5; 20 | this.AbsorptionAttributes.CastingFocus = 3; 21 | } 22 | 23 | public CustomLeatherChest(Serial serial) 24 | : base(serial) 25 | { 26 | } 27 | 28 | public override int InitMinHits 29 | { 30 | get 31 | { 32 | return 255; 33 | } 34 | } 35 | public override int InitMaxHits 36 | { 37 | get 38 | { 39 | return 255; 40 | } 41 | } 42 | public override int BasePhysicalResistance 43 | { 44 | get 45 | { 46 | return 10; 47 | } 48 | } 49 | public override int BaseFireResistance 50 | { 51 | get 52 | { 53 | return 16; 54 | } 55 | } 56 | public override int BaseColdResistance 57 | { 58 | get 59 | { 60 | return 10; 61 | } 62 | } 63 | public override int BasePoisonResistance 64 | { 65 | get 66 | { 67 | return 8; 68 | } 69 | } 70 | public override int BaseEnergyResistance 71 | { 72 | get 73 | { 74 | return 8; 75 | } 76 | } 77 | public override void Serialize(GenericWriter writer) 78 | { 79 | base.Serialize(writer); 80 | 81 | writer.WriteEncodedInt(0); // version 82 | } 83 | 84 | public override void Deserialize(GenericReader reader) 85 | { 86 | base.Deserialize(reader); 87 | 88 | int version = reader.ReadEncodedInt(); 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /Custom Item/CustomLeatherGloves: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomLeatherGloves : LeatherGloves 6 | { 7 | [Constructable] 8 | public CustomLeatherGloves() 9 | : base() 10 | { 11 | this.SetHue = 0x455; 12 | 13 | this.Attributes.RegenHits = 1; 14 | this.Attributes.RegenMana = 1; 15 | 16 | this.SetAttributes.LowerManaCost = 10; 17 | 18 | this.SetSkillBonuses.SetValues(0, SkillName.Necromancy, 10); 19 | 20 | this.SetSelfRepair = 3; 21 | 22 | this.SetPhysicalBonus = 4; 23 | this.SetFireBonus = 5; 24 | this.SetColdBonus = 3; 25 | this.SetPoisonBonus = 4; 26 | this.SetEnergyBonus = 4; 27 | } 28 | 29 | public CustomLeatherGloves(Serial serial) 30 | : base(serial) 31 | { 32 | } 33 | 34 | 35 | public override int BasePhysicalResistance 36 | { 37 | get 38 | { 39 | return 4; 40 | } 41 | } 42 | public override int BaseFireResistance 43 | { 44 | get 45 | { 46 | return 9; 47 | } 48 | } 49 | public override int BaseColdResistance 50 | { 51 | get 52 | { 53 | return 3; 54 | } 55 | } 56 | public override int BasePoisonResistance 57 | { 58 | get 59 | { 60 | return 6; 61 | } 62 | } 63 | public override int BaseEnergyResistance 64 | { 65 | get 66 | { 67 | return 8; 68 | } 69 | } 70 | public override void Serialize(GenericWriter writer) 71 | { 72 | base.Serialize(writer); 73 | 74 | writer.Write((int)0); // version 75 | } 76 | 77 | public override void Deserialize(GenericReader reader) 78 | { 79 | base.Deserialize(reader); 80 | 81 | int version = reader.ReadInt(); 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /Custom Item/CustomLeatherLegs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomLeatherLegs : LeatherLegs 6 | { 7 | [Constructable] 8 | public CustomLeatherLegs() 9 | : base() 10 | { 11 | 12 | 13 | this.Attributes.RegenHits = 1; 14 | this.Attributes.RegenMana = 1; 15 | 16 | this.SetAttributes.LowerManaCost = 10; 17 | 18 | this.SetSkillBonuses.SetValues(0, SkillName.Necromancy, 10); 19 | 20 | this.SetSelfRepair = 3; 21 | 22 | this.SetPhysicalBonus = 4; 23 | this.SetFireBonus = 5; 24 | this.SetColdBonus = 3; 25 | this.SetPoisonBonus = 4; 26 | this.SetEnergyBonus = 4; 27 | } 28 | 29 | public CustomLeatherLegs(Serial serial) 30 | : base(serial) 31 | { 32 | } 33 | 34 | 35 | public override int BasePhysicalResistance 36 | { 37 | get 38 | { 39 | return 4; 40 | } 41 | } 42 | public override int BaseFireResistance 43 | { 44 | get 45 | { 46 | return 9; 47 | } 48 | } 49 | public override int BaseColdResistance 50 | { 51 | get 52 | { 53 | return 3; 54 | } 55 | } 56 | public override int BasePoisonResistance 57 | { 58 | get 59 | { 60 | return 6; 61 | } 62 | } 63 | public override int BaseEnergyResistance 64 | { 65 | get 66 | { 67 | return 8; 68 | } 69 | } 70 | public override void Serialize(GenericWriter writer) 71 | { 72 | base.Serialize(writer); 73 | 74 | writer.Write((int)0); // version 75 | } 76 | 77 | public override void Deserialize(GenericReader reader) 78 | { 79 | base.Deserialize(reader); 80 | 81 | int version = reader.ReadInt(); 82 | } 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /Custom Item/CustomLongPants: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomLongPants : LongPants 6 | { 7 | 8 | [Constructable] 9 | public CustomLongPants() 10 | { 11 | } 12 | 13 | public CustomLongPants(Serial serial) 14 | : base(serial) 15 | { 16 | } 17 | 18 | public override void Serialize(GenericWriter writer) 19 | { 20 | base.Serialize(writer); 21 | 22 | writer.Write((int)0); // version 23 | } 24 | 25 | public override void Deserialize(GenericReader reader) 26 | { 27 | base.Deserialize(reader); 28 | 29 | int version = reader.ReadInt(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Custom Item/CustomLongSword: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomLongSword : Longsword 6 | { 7 | [Constructable] 8 | public CustomLongSword() 9 | { 10 | //this.LootType = LootType.Blessed; 11 | 12 | this.Attributes.AttackChance = 5; 13 | this.Attributes.WeaponSpeed = 10; 14 | this.Attributes.WeaponDamage = 25; 15 | } 16 | 17 | public CustomLongSword(Serial serial) 18 | : base(serial) 19 | { 20 | } 21 | 22 | 23 | public override void Serialize(GenericWriter writer) 24 | { 25 | base.Serialize(writer); 26 | 27 | writer.WriteEncodedInt(0); // version 28 | } 29 | 30 | public override void Deserialize(GenericReader reader) 31 | { 32 | base.Deserialize(reader); 33 | 34 | int version = reader.ReadEncodedInt(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Custom Item/CustomNecklace: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomNecklace : SilverNecklace 6 | { 7 | [Constructable] 8 | public CustomNecklace() 9 | { 10 | this.Weight = 1.0; 11 | this.Hue = 221; 12 | 13 | this.Attributes.RegenMana = 1; 14 | this.Attributes.BonusInt = 5; 15 | } 16 | 17 | public CustomNecklace(Serial serial) 18 | : base(serial) 19 | { 20 | } 21 | 22 | 23 | public override int InitMinHits 24 | { 25 | get 26 | { 27 | return 255; 28 | } 29 | } 30 | public override int InitMaxHits 31 | { 32 | get 33 | { 34 | return 255; 35 | } 36 | } 37 | public override void Serialize(GenericWriter writer) 38 | { 39 | base.Serialize(writer); 40 | 41 | writer.Write((int)0); 42 | } 43 | 44 | public override void Deserialize(GenericReader reader) 45 | { 46 | base.Deserialize(reader); 47 | 48 | int version = reader.ReadInt(); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Custom Item/CustomNinjaHood: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomNinjaHood : ClothNinjaHood //LeatherNinjaHood 6 | { 7 | [Constructable] 8 | public CustomNinjaHood() 9 | : base() 10 | { 11 | this.Attributes.LowerManaCost = 6; 12 | this.Attributes.AttackChance = 6; 13 | this.ClothingAttributes.SelfRepair = 5; 14 | } 15 | 16 | public CustomNinjaHood(Serial serial) 17 | : base(serial) 18 | { 19 | } 20 | 21 | 22 | public override int BasePhysicalResistance 23 | { 24 | get 25 | { 26 | return 0; 27 | } 28 | } 29 | public override int BaseFireResistance 30 | { 31 | get 32 | { 33 | return 11; 34 | } 35 | } 36 | public override int BaseColdResistance 37 | { 38 | get 39 | { 40 | return 15; 41 | } 42 | } 43 | public override int BasePoisonResistance 44 | { 45 | get 46 | { 47 | return 11; 48 | } 49 | } 50 | public override int BaseEnergyResistance 51 | { 52 | get 53 | { 54 | return 11; 55 | } 56 | } 57 | public override int InitMinHits 58 | { 59 | get 60 | { 61 | return 255; 62 | } 63 | } 64 | public override int InitMaxHits 65 | { 66 | get 67 | { 68 | return 255; 69 | } 70 | } 71 | public override void Serialize(GenericWriter writer) 72 | { 73 | base.Serialize(writer); 74 | 75 | writer.Write((int)1); 76 | } 77 | 78 | public override void Deserialize(GenericReader reader) 79 | { 80 | base.Deserialize(reader); 81 | 82 | int version = reader.ReadInt(); 83 | 84 | 85 | } 86 | } 87 | 88 | } 89 | -------------------------------------------------------------------------------- /Custom Item/CustomNinjaJacket: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomNinjaJacket : LeatherNinjaJacket 6 | { 7 | [Constructable] 8 | public CustomNinjaJacket() 9 | { 10 | 11 | } 12 | 13 | public CustomNinjaJacket(Serial serial) 14 | : base(serial) 15 | { 16 | } 17 | 18 | 19 | public override int BasePhysicalResistance 20 | { 21 | get 22 | { 23 | return 6; 24 | } 25 | } 26 | public override int BaseFireResistance 27 | { 28 | get 29 | { 30 | return 12; 31 | } 32 | } 33 | public override int BaseColdResistance 34 | { 35 | get 36 | { 37 | return 3; 38 | } 39 | } 40 | public override int BasePoisonResistance 41 | { 42 | get 43 | { 44 | return 3; 45 | } 46 | } 47 | public override int BaseEnergyResistance 48 | { 49 | get 50 | { 51 | return 3; 52 | } 53 | } 54 | public override void Serialize(GenericWriter writer) 55 | { 56 | base.Serialize(writer); 57 | 58 | writer.WriteEncodedInt(0); // version 59 | } 60 | 61 | public override void Deserialize(GenericReader reader) 62 | { 63 | base.Deserialize(reader); 64 | 65 | int version = reader.ReadEncodedInt(); 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /Custom Item/CustomNinjaPants: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomNinjaPants : LeatherNinjaPants 6 | { 7 | [Constructable] 8 | public CustomNinjaPants() 9 | { 10 | //this.LootType = LootType.Blessed; 11 | } 12 | 13 | public CustomNinjaPants(Serial serial) 14 | : base(serial) 15 | { 16 | } 17 | 18 | 19 | public override int BasePhysicalResistance 20 | { 21 | get 22 | { 23 | return 10; 24 | } 25 | } 26 | public override int BaseFireResistance 27 | { 28 | get 29 | { 30 | return 6; 31 | } 32 | } 33 | public override int BaseColdResistance 34 | { 35 | get 36 | { 37 | return 6; 38 | } 39 | } 40 | public override int BasePoisonResistance 41 | { 42 | get 43 | { 44 | return 3; 45 | } 46 | } 47 | public override int BaseEnergyResistance 48 | { 49 | get 50 | { 51 | return 3; 52 | } 53 | } 54 | public override void Serialize(GenericWriter writer) 55 | { 56 | base.Serialize(writer); 57 | 58 | writer.WriteEncodedInt(0); // version 59 | } 60 | 61 | public override void Deserialize(GenericReader reader) 62 | { 63 | base.Deserialize(reader); 64 | 65 | int version = reader.ReadEncodedInt(); 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /Custom Item/CustomObi: -------------------------------------------------------------------------------- 1 | using Server; 2 | using System; 3 | 4 | namespace Server.Items 5 | { 6 | public class CustomObi : Obi 7 | { 8 | public override bool IsArtifact { get { return true; } } 9 | 10 | [Constructable] 11 | public CustomObi() 12 | : base() 13 | { 14 | Attributes.BonusDex = 5; 15 | Attributes.BonusHits = 10; 16 | Attributes.RegenHits = 2; 17 | StrRequirement = 10; 18 | Hue = 1157; 19 | } 20 | 21 | public CustomObi(Serial serial) 22 | : base(serial) 23 | { 24 | } 25 | 26 | public override void Serialize(GenericWriter writer) 27 | { 28 | base.Serialize(writer); 29 | writer.Write(0); 30 | } 31 | 32 | public override void Deserialize(GenericReader reader) 33 | { 34 | base.Deserialize(reader); 35 | int version = reader.ReadInt(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Custom Item/CustomPlateArms: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomPlateArms : PlateArms 6 | { 7 | [Constructable] 8 | public CustomPlateArms() 9 | : base() 10 | { 11 | this.SetHue = 0x47E; 12 | 13 | this.Attributes.RegenHits = 1; 14 | this.Attributes.AttackChance = 5; 15 | 16 | this.SetAttributes.ReflectPhysical = 25; 17 | this.SetAttributes.NightSight = 1; 18 | 19 | this.SetSkillBonuses.SetValues(0, SkillName.Chivalry, 10); 20 | 21 | this.SetSelfRepair = 3; 22 | 23 | this.SetPhysicalBonus = 2; 24 | this.SetFireBonus = 5; 25 | this.SetColdBonus = 5; 26 | this.SetPoisonBonus = 3; 27 | this.SetEnergyBonus = 5; 28 | } 29 | 30 | public CustomPlateArms(Serial serial) 31 | : base(serial) 32 | { 33 | } 34 | 35 | 36 | 37 | public override int BasePhysicalResistance 38 | { 39 | get 40 | { 41 | return 8; 42 | } 43 | } 44 | public override int BaseFireResistance 45 | { 46 | get 47 | { 48 | return 5; 49 | } 50 | } 51 | public override int BaseColdResistance 52 | { 53 | get 54 | { 55 | return 5; 56 | } 57 | } 58 | public override int BasePoisonResistance 59 | { 60 | get 61 | { 62 | return 7; 63 | } 64 | } 65 | public override int BaseEnergyResistance 66 | { 67 | get 68 | { 69 | return 5; 70 | } 71 | } 72 | public override void Serialize(GenericWriter writer) 73 | { 74 | base.Serialize(writer); 75 | 76 | writer.Write((int)0); // version 77 | } 78 | 79 | public override void Deserialize(GenericReader reader) 80 | { 81 | base.Deserialize(reader); 82 | 83 | int version = reader.ReadInt(); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /Custom Item/CustomPlateChest: -------------------------------------------------------------------------------- 1 | using Server; 2 | using System; 3 | 4 | namespace Server.Items 5 | { 6 | public class CustomPlateChest : PlateChest 7 | { 8 | public override bool IsArtifact { get { return true; } } 9 | 10 | [Constructable] 11 | public CustomPlateChest() 12 | { 13 | this.Hue = 1773; 14 | this.Attributes.BonusMana = 10; 15 | this.Attributes.RegenMana = 3; 16 | this.Attributes.LowerManaCost = 15; 17 | this.ArmorAttributes.LowerStatReq = 100; 18 | this.ArmorAttributes.MageArmor = 1; 19 | } 20 | 21 | public override int BasePhysicalResistance 22 | { 23 | get 24 | { 25 | return 5; 26 | } 27 | } 28 | public override int BaseFireResistance 29 | { 30 | get 31 | { 32 | return 4; 33 | } 34 | } 35 | public override int BaseColdResistance 36 | { 37 | get 38 | { 39 | return 14; 40 | } 41 | } 42 | public override int BasePoisonResistance 43 | { 44 | get 45 | { 46 | return 3; 47 | } 48 | } 49 | public override int BaseEnergyResistance 50 | { 51 | get 52 | { 53 | return 14; 54 | } 55 | } 56 | public override int InitMinHits 57 | { 58 | get 59 | { 60 | return 255; 61 | } 62 | } 63 | public override int InitMaxHits 64 | { 65 | get 66 | { 67 | return 255; 68 | } 69 | } 70 | 71 | public CustomPlateChest(Serial serial) 72 | : base(serial) 73 | { 74 | } 75 | 76 | public override void Serialize(GenericWriter writer) 77 | { 78 | base.Serialize(writer); 79 | writer.Write(0); 80 | } 81 | 82 | public override void Deserialize(GenericReader reader) 83 | { 84 | base.Deserialize(reader); 85 | int version = reader.ReadInt(); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Custom Item/CustomPlateGloves: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomPlateGloves : PlateGloves 6 | { 7 | [Constructable] 8 | public CustomPlateGloves() 9 | { 10 | this.Hue = 0x29b; 11 | 12 | this.Attributes.BonusHits = 8; 13 | this.Attributes.RegenHits = 2; 14 | this.Attributes.DefendChance = 10; 15 | } 16 | 17 | public CustomPlateGloves(Serial serial) 18 | : base(serial) 19 | { 20 | } 21 | 22 | 23 | public override int BasePhysicalResistance 24 | { 25 | get 26 | { 27 | return 4; 28 | } 29 | } 30 | public override int BaseFireResistance 31 | { 32 | get 33 | { 34 | return 4; 35 | } 36 | } 37 | public override int BaseColdResistance 38 | { 39 | get 40 | { 41 | return 5; 42 | } 43 | } 44 | public override int BasePoisonResistance 45 | { 46 | get 47 | { 48 | return 6; 49 | } 50 | } 51 | public override int BaseEnergyResistance 52 | { 53 | get 54 | { 55 | return 5; 56 | } 57 | } 58 | public override int InitMinHits 59 | { 60 | get 61 | { 62 | return 150; 63 | } 64 | } 65 | public override int InitMaxHits 66 | { 67 | get 68 | { 69 | return 150; 70 | } 71 | } 72 | 73 | public override void Serialize(GenericWriter writer) 74 | { 75 | base.Serialize(writer); 76 | 77 | writer.Write((int)0); 78 | } 79 | 80 | public override void Deserialize(GenericReader reader) 81 | { 82 | base.Deserialize(reader); 83 | 84 | int version = reader.ReadInt(); 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /Custom Item/CustomPlateLegs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomPlateLegs : PlateLegs 6 | { 7 | [Constructable] 8 | public CustomPlateLegs() 9 | : base() 10 | { 11 | this.Hue = 2310; 12 | this.Attributes.BonusDex = 5; 13 | this.Attributes.RegenStam = 2; 14 | this.Attributes.WeaponDamage = 10; 15 | this.Attributes.WeaponSpeed = 10; 16 | } 17 | 18 | public CustomPlateLegs(Serial serial) 19 | : base(serial) 20 | { 21 | } 22 | 23 | public override int BasePhysicalResistance 24 | { 25 | get 26 | { 27 | return 17; 28 | } 29 | } 30 | public override int BaseFireResistance 31 | { 32 | get 33 | { 34 | return 15; 35 | } 36 | } 37 | public override int BaseColdResistance 38 | { 39 | get 40 | { 41 | return 7; 42 | } 43 | } 44 | public override int BasePoisonResistance 45 | { 46 | get 47 | { 48 | return 15; 49 | } 50 | } 51 | public override int BaseEnergyResistance 52 | { 53 | get 54 | { 55 | return 2; 56 | } 57 | } 58 | public override int InitMinHits 59 | { 60 | get 61 | { 62 | return 255; 63 | } 64 | } 65 | public override int InitMaxHits 66 | { 67 | get 68 | { 69 | return 255; 70 | } 71 | } 72 | public override int AosStrReq 73 | { 74 | get 75 | { 76 | return 45; 77 | } 78 | } 79 | public override int OldStrReq 80 | { 81 | get 82 | { 83 | return 45; 84 | } 85 | } 86 | public override void Deserialize(GenericReader reader) 87 | { 88 | base.Deserialize(reader); 89 | int version = reader.ReadInt(); 90 | } 91 | 92 | public override void Serialize(GenericWriter writer) 93 | { 94 | base.Serialize(writer); 95 | writer.Write((int)0); //version 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Custom Item/CustomRing: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomRing : GoldRing 6 | { 7 | [Constructable] 8 | public CustomRing() 9 | { 10 | this.Hue = 0x4F7; 11 | this.Attributes.BonusDex = 8; 12 | this.Attributes.RegenStam = 6; 13 | this.Attributes.AttackChance = 15; 14 | this.Resistances.Poison = 20; 15 | } 16 | 17 | public CustomRing(Serial serial) 18 | : base(serial) 19 | { 20 | } 21 | 22 | 23 | public override void Serialize(GenericWriter writer) 24 | { 25 | base.Serialize(writer); 26 | 27 | writer.Write((int)0); 28 | } 29 | 30 | public override void Deserialize(GenericReader reader) 31 | { 32 | base.Deserialize(reader); 33 | 34 | int version = reader.ReadInt(); 35 | 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Custom Item/CustomScimitar: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomScimitar : Scimitar 6 | 7 | 8 | [Constructable] 9 | public CustomScimitar() 10 | { 11 | this.Attributes.AttackChance = 15; 12 | this.Attributes.DefendChance = 15; 13 | this.Attributes.WeaponSpeed = 30; 14 | this.Attributes.WeaponDamage = 60; 15 | // TODO attributes Bane 16 | 17 | this.Hue = 2124; 18 | } 19 | 20 | public override void GetDamageTypes(Mobile wielder, out int phys, out int fire, out int cold, out int pois, out int nrgy, out int chaos, out int direct) 21 | { 22 | pois = 75; cold = 25; 23 | phys = nrgy = chaos = direct = fire = 0; 24 | } 25 | 26 | public override int InitMinHits { get { return 190; } } 27 | public override int InitMaxHits { get { return 190; } } 28 | 29 | public CustomScimitar(Serial serial) 30 | : base(serial) 31 | { 32 | } 33 | 34 | public override void Serialize(GenericWriter writer) 35 | { 36 | base.Serialize(writer); 37 | writer.Write((int)0); 38 | } 39 | 40 | public override void Deserialize(GenericReader reader) 41 | { 42 | base.Deserialize(reader); 43 | int version = reader.ReadInt(); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Custom Item/CustomSkullCap: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomSkullCap : SkullCap 6 | { 7 | 8 | [Constructable] 9 | public CustomSkullCap() 10 | { 11 | } 12 | 13 | public CustomSkullCap(Serial serial) 14 | : base(serial) 15 | { 16 | } 17 | 18 | public override void Serialize(GenericWriter writer) 19 | { 20 | base.Serialize(writer); 21 | 22 | writer.Write((int)0); // version 23 | } 24 | 25 | public override void Deserialize(GenericReader reader) 26 | { 27 | base.Deserialize(reader); 28 | 29 | int version = reader.ReadInt(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Custom Item/CustomSurcoat: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomSurcoat : Surcoat 6 | { 7 | 8 | [Constructable] 9 | public CustomSurcoat() 10 | { 11 | } 12 | 13 | public CustomSurcoat(Serial serial) 14 | : base(serial) 15 | { 16 | } 17 | 18 | public override void Serialize(GenericWriter writer) 19 | { 20 | base.Serialize(writer); 21 | 22 | writer.Write((int)0); // version 23 | } 24 | 25 | public override void Deserialize(GenericReader reader) 26 | { 27 | base.Deserialize(reader); 28 | 29 | int version = reader.ReadInt(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Custom Item/CustomTabi: -------------------------------------------------------------------------------- 1 | using Server; 2 | using System; 3 | 4 | namespace Server.Items 5 | { 6 | 7 | public class CustomNinjaTabi : NinjaTabi 8 | { 9 | [Constructable] 10 | public CustomNinjaTabi() 11 | { 12 | Hue = 1154; 13 | Attributes.NightSight = 1; 14 | } 15 | 16 | public CustomNinjaTabi(Serial serial) : base(serial) 17 | { 18 | } 19 | 20 | public override void Serialize(GenericWriter writer) 21 | { 22 | base.Serialize(writer); 23 | writer.Write((int)0); 24 | } 25 | 26 | public override void Deserialize(GenericReader reader) 27 | { 28 | base.Deserialize(reader); 29 | int v = reader.ReadInt(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Custom Item/CustomWarHammer: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomWarHammer : WarHammer 6 | { 7 | [Constructable] 8 | public CustomWarHammer() 9 | { 10 | this.Hue = 0x482; 11 | this.WeaponAttributes.HitEnergyArea = 100; 12 | this.Attributes.BonusStr = 15; 13 | this.Attributes.AttackChance = 15; 14 | this.Attributes.WeaponDamage = 50; 15 | } 16 | 17 | public CustomWarHammer(Serial serial) 18 | : base(serial) 19 | { 20 | } 21 | 22 | 23 | public override int InitMinHits 24 | { 25 | get 26 | { 27 | return 255; 28 | } 29 | } 30 | public override int InitMaxHits 31 | { 32 | get 33 | { 34 | return 255; 35 | } 36 | } 37 | public override void Serialize(GenericWriter writer) 38 | { 39 | base.Serialize(writer); 40 | 41 | writer.Write((int)0); 42 | } 43 | 44 | public override void Deserialize(GenericReader reader) 45 | { 46 | base.Deserialize(reader); 47 | 48 | int version = reader.ReadInt(); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Custom Item/CustomerLeatherGorget: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomerLeatherGorget : LeatherGorget 6 | { 7 | [Constructable] 8 | public CustomerLeatherGorget() 9 | { 10 | this.Hue = 0x76D; 11 | this.Attributes.BonusStr = 8; 12 | this.Attributes.RegenHits = 5; 13 | this.Attributes.RegenStam = 3; 14 | } 15 | 16 | public CustomerLeatherGorget(Serial serial) 17 | : base(serial) 18 | { 19 | } 20 | 21 | 22 | public override int BaseColdResistance 23 | { 24 | get 25 | { 26 | return 18; 27 | } 28 | } 29 | public override int BaseEnergyResistance 30 | { 31 | get 32 | { 33 | return 18; 34 | } 35 | } 36 | public override int InitMinHits 37 | { 38 | get 39 | { 40 | return 255; 41 | } 42 | } 43 | public override int InitMaxHits 44 | { 45 | get 46 | { 47 | return 255; 48 | } 49 | } 50 | public override void Serialize(GenericWriter writer) 51 | { 52 | base.Serialize(writer); 53 | 54 | writer.Write((int)1); 55 | } 56 | 57 | public override void Deserialize(GenericReader reader) 58 | { 59 | base.Deserialize(reader); 60 | 61 | int version = reader.ReadInt(); 62 | 63 | 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Custom Item/customcloak: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Engines.Craft; 4 | 5 | namespace Server.Items 6 | { 7 | public class CustomCloak : Cloak 8 | { 9 | 10 | [Constructable] 11 | public CustomCloak() 12 | { 13 | this.Hue = 0x54A; 14 | 15 | this.SAAbsorptionAttributes.EaterKinetic = 5; 16 | this.Attributes.SpellDamage = 3; 17 | this.Attributes.LowerManaCost = 1; 18 | this.Attributes.WeaponSpeed = 5; 19 | } 20 | 21 | public CustomCloak(Serial serial) 22 | : base(serial) 23 | { 24 | } 25 | 26 | public override void Serialize(GenericWriter writer) 27 | { 28 | base.Serialize(writer); 29 | 30 | writer.Write((int)0); 31 | } 32 | 33 | public override void Deserialize(GenericReader reader) 34 | { 35 | base.Deserialize(reader); 36 | 37 | int version = reader.ReadInt(); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Custom Item/customheatershield: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomHeaterShield : HeaterShield 6 | { 7 | [Constructable] 8 | public CustomHeaterShield() 9 | : base(0x1B76) 10 | { 11 | this.Weight = 8.0; 12 | this.Hue = 1845; 13 | 14 | this.AbsorptionAttributes.EaterEnergy = 20; 15 | this.AbsorptionAttributes.EaterPoison = 20; 16 | this.AbsorptionAttributes.EaterCold = 20; 17 | this.AbsorptionAttributes.EaterFire = 20; 18 | } 19 | 20 | public CustomHeaterShield(Serial serial) 21 | : base(serial) 22 | { 23 | } 24 | 25 | 26 | public override int BasePhysicalResistance 27 | { 28 | get 29 | { 30 | return 5; 31 | } 32 | } 33 | public override int BaseFireResistance 34 | { 35 | get 36 | { 37 | return 1; 38 | } 39 | } 40 | public override int BaseColdResistance 41 | { 42 | get 43 | { 44 | return 0; 45 | } 46 | } 47 | public override int BasePoisonResistance 48 | { 49 | get 50 | { 51 | return 0; 52 | } 53 | } 54 | public override int BaseEnergyResistance 55 | { 56 | get 57 | { 58 | return 0; 59 | } 60 | } 61 | public override int InitMinHits 62 | { 63 | get 64 | { 65 | return 255; 66 | } 67 | } 68 | public override int InitMaxHits 69 | { 70 | get 71 | { 72 | return 255; 73 | } 74 | } 75 | public override int AosStrReq 76 | { 77 | get 78 | { 79 | return 90; 80 | } 81 | } 82 | public override int ArmorBase 83 | { 84 | get 85 | { 86 | return 23; 87 | } 88 | } 89 | public override void Deserialize(GenericReader reader) 90 | { 91 | base.Deserialize(reader); 92 | 93 | int version = reader.ReadInt(); 94 | } 95 | 96 | public override void Serialize(GenericWriter writer) 97 | { 98 | base.Serialize(writer); 99 | 100 | writer.Write((int)0);//version 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Custom Item/custommaul: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomMaul : Maul 6 | { 7 | [Constructable] 8 | public CustomMaul() 9 | { 10 | this.Hue = 0x21; 11 | this.Attributes.WeaponSpeed = 75; 12 | this.Attributes.WeaponDamage = 50; 13 | } 14 | 15 | public CustomMaul(Serial serial) 16 | : base(serial) 17 | { 18 | } 19 | 20 | 21 | 22 | public override int InitMinHits 23 | { 24 | get 25 | { 26 | return 255; 27 | } 28 | } 29 | public override int InitMaxHits 30 | { 31 | get 32 | { 33 | return 255; 34 | } 35 | } 36 | public override void Serialize(GenericWriter writer) 37 | { 38 | base.Serialize(writer); 39 | 40 | writer.Write((int)0); 41 | } 42 | 43 | public override void Deserialize(GenericReader reader) 44 | { 45 | base.Deserialize(reader); 46 | 47 | int version = reader.ReadInt(); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Custom Item/customplategorget: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomPlateGorget : PlateGorget 6 | { 7 | [Constructable] 8 | public CustomPlateGorget() 9 | { 10 | this.Hue = 0x6D1; 11 | this.Attributes.BonusDex = 15; 12 | this.Attributes.RegenHits = 2; 13 | } 14 | 15 | public CustomPlateGorget(Serial serial) 16 | : base(serial) 17 | { 18 | } 19 | 20 | 21 | 22 | public override int BaseFireResistance 23 | { 24 | get 25 | { 26 | return 23; 27 | } 28 | } 29 | public override int BaseColdResistance 30 | { 31 | get 32 | { 33 | return 17; 34 | } 35 | } 36 | public override int InitMinHits 37 | { 38 | get 39 | { 40 | return 255; 41 | } 42 | } 43 | public override int InitMaxHits 44 | { 45 | get 46 | { 47 | return 255; 48 | } 49 | } 50 | public override void Serialize(GenericWriter writer) 51 | { 52 | base.Serialize(writer); 53 | 54 | writer.Write((int)1); 55 | } 56 | 57 | public override void Deserialize(GenericReader reader) 58 | { 59 | base.Deserialize(reader); 60 | 61 | int version = reader.ReadInt(); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Custom Item/customplatehelm: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class CustomPlateHelm : PlateHelm 6 | { 7 | [Constructable] 8 | public CustomPlateHelm() 9 | { 10 | this.Hue = 0x554; 11 | this.Attributes.BonusInt = 8; 12 | this.Attributes.BonusMana = 15; 13 | this.Attributes.RegenMana = 2; 14 | this.Attributes.LowerManaCost = 8; 15 | } 16 | 17 | public CustomPlateHelm(Serial serial) 18 | : base(serial) 19 | { 20 | } 21 | 22 | 23 | public override int BaseEnergyResistance 24 | { 25 | get 26 | { 27 | return 17; 28 | } 29 | } 30 | public override int InitMinHits 31 | { 32 | get 33 | { 34 | return 255; 35 | } 36 | } 37 | public override int InitMaxHits 38 | { 39 | get 40 | { 41 | return 255; 42 | } 43 | } 44 | public override void Serialize(GenericWriter writer) 45 | { 46 | base.Serialize(writer); 47 | 48 | writer.Write((int)1); 49 | } 50 | 51 | public override void Deserialize(GenericReader reader) 52 | { 53 | base.Deserialize(reader); 54 | 55 | int version = reader.ReadInt(); 56 | 57 | 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Custom Item/customsash: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | 4 | namespace Server.Items 5 | { 6 | public class CustomSash : BodySash 7 | { 8 | 9 | [Constructable] 10 | public CustomSash() 11 | { 12 | } 13 | 14 | public CustomSash(Serial serial) 15 | : base(serial) 16 | { 17 | } 18 | 19 | public override void Serialize(GenericWriter writer) 20 | { 21 | base.Serialize(writer); 22 | 23 | writer.Write((int)0); // version 24 | } 25 | 26 | public override void Deserialize(GenericReader reader) 27 | { 28 | base.Deserialize(reader); 29 | 30 | int version = reader.ReadInt(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Custom Item/list: -------------------------------------------------------------------------------- 1 | //// 2 | platearms- 3 | platehelm- 4 | plategloves- 5 | plategorget- 6 | platechest- 7 | shield- 8 | holy crest deco 9 | cloak- 10 | sash- 11 | maul- 12 | hammer/mace- 13 | 14 | 15 | ///// 16 | ninjahood- 17 | ninjatabi- 18 | leathergloves- 19 | bracelet- 20 | spike - elven dagger? 21 | true spike 22 | magekiller spike 23 | charged spike 24 | leatherlegs- 25 | obi- 26 | ninjajacket- 27 | earrings- 28 | 29 | // 30 | cloak- 31 | leatherchest- 32 | leatherlegs- 33 | leathergorget- 34 | heatershield 35 | leatherfemalechest- 36 | featherhat- 37 | longsword- 38 | scimitar- 39 | leathergloves- 40 | 41 | // 42 | necklace- 43 | ring- 44 | obi- 45 | surcoat- 46 | ninjatabi- 47 | dagger 48 | spear 49 | earrings- 50 | short spear 51 | fancyshirt- 52 | skullcap- 53 | longpants- 54 | 55 | ------------- 56 | ---------------------- 57 | https://www.servuo.com/archive/scripting-attributes-a-guide-created-by-hammerhand-scripting-attributes.159/ 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /FreezeTile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Mobiles; 3 | 4 | namespace Server.Items 5 | { 6 | public class FreezeTile : Item 7 | { 8 | 9 | [Constructable] 10 | public FreezeTile() : base( 1313 ) 11 | {} 12 | 13 | public FreezeTile(Serial serial) : base(serial) 14 | { 15 | } 16 | 17 | public override bool OnMoveOver(Mobile m) 18 | { 19 | m.Paralyze( TimeSpan.FromSeconds( 5.0 ) ); 20 | 21 | return true; 22 | } 23 | 24 | public override void Serialize(GenericWriter writer) 25 | { 26 | base.Serialize(writer); 27 | 28 | writer.Write((int)0); // version 29 | 30 | } 31 | 32 | public override void Deserialize(GenericReader reader) 33 | { 34 | base.Deserialize(reader); 35 | 36 | int version = reader.ReadInt(); 37 | 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /ItemOfLight/BaseArmor_ItemOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class BaseArmor_ItemOfLight : BaseArmor 6 | { 7 | private Item mLight; 8 | bool mIsLit = false; 9 | 10 | [CommandProperty( AccessLevel.GameMaster )] 11 | public Item Link 12 | { 13 | get { return mLight; } 14 | set { mLight = value; } 15 | } 16 | 17 | [CommandProperty( AccessLevel.GameMaster )] 18 | public bool IsLit 19 | { 20 | get { return mIsLit; } 21 | set { mIsLit = value; } 22 | } 23 | 24 | public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Plate; } } 25 | 26 | [Constructable] 27 | public BaseArmor_ItemOfLight() : base( 0x1415 ) 28 | { 29 | Layer = Layer.InnerTorso; 30 | } 31 | 32 | public override void OnDoubleClick(Mobile from) 33 | { 34 | if(from == null ) { return; } 35 | 36 | if( Parent != from ) { 37 | from.SendMessage("You must equip the item for it to light your way."); 38 | return; 39 | } 40 | 41 | if( from.FindItemOnLayer(Layer.Unused_xF) != mLight ) { 42 | from.SendMessage("You cannot do that at this time."); 43 | return; 44 | } 45 | 46 | if( IsLit == false & from.FindItemOnLayer(Layer.Unused_xF) == null ) { 47 | IsLit = true; 48 | CreateLight(from); 49 | } 50 | else{ Nullify(); } 51 | } 52 | 53 | public void Nullify() 54 | { 55 | if( mLight != null ) { 56 | mLight.Delete(); 57 | mLight = null; 58 | IsLit = false; 59 | } 60 | } 61 | 62 | public bool OnEquip(Item item, Mobile parent) 63 | { 64 | if( this.mLight != null && !mLight.Deleted ) { 65 | mLight.Delete(); 66 | CreateLight(parent); 67 | 68 | } 69 | return true; 70 | } 71 | 72 | public override bool OnDragLift( Mobile from ) 73 | { 74 | if( mLight != null) { 75 | mLight.Delete(); 76 | mLight = null; 77 | IsLit = false; 78 | } 79 | return true; 80 | } 81 | 82 | 83 | public void CreateLight(Mobile from) 84 | { 85 | WearableLight light = new WearableLight(); 86 | mLight = light; 87 | from.EquipItem( mLight ); 88 | } 89 | 90 | public override void OnAfterDelete() 91 | { 92 | base.OnAfterDelete(); 93 | if(mLight != null){ 94 | mLight.Delete(); 95 | } 96 | } 97 | 98 | public BaseArmor_ItemOfLight(Serial serial) : base(serial) 99 | { } 100 | 101 | public override void Serialize(GenericWriter writer) 102 | { 103 | base.Serialize(writer); 104 | writer.Write((int)0); 105 | 106 | writer.Write( ( Item )mLight ); 107 | writer.Write( ( bool )IsLit ); 108 | } 109 | 110 | public override void Deserialize(GenericReader reader) 111 | { 112 | base.Deserialize(reader); 113 | int version = reader.ReadInt(); 114 | 115 | mLight = ( WearableLight )reader.ReadItem( ); 116 | IsLit = (bool) reader.ReadBool(); 117 | } 118 | } 119 | } -------------------------------------------------------------------------------- /ItemOfLight/BaseClothing_ItemOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class BaseClothing_ItemOfLight : BaseClothing 6 | { 7 | private Item mLight; 8 | bool mIsLit = false; 9 | 10 | [CommandProperty( AccessLevel.GameMaster )] 11 | public Item Link 12 | { 13 | get { return mLight; } 14 | set { mLight = value; } 15 | } 16 | 17 | [CommandProperty( AccessLevel.GameMaster )] 18 | public bool IsLit 19 | { 20 | get { return mIsLit; } 21 | set { mIsLit = value; } 22 | } 23 | 24 | [Constructable] 25 | public BaseClothing_ItemOfLight(int itemID, Layer layer) : base(0x1F03, Layer.OuterTorso) 26 | {} 27 | 28 | public override void OnDoubleClick(Mobile from) 29 | { 30 | if(from == null ) { return; } 31 | 32 | if( Parent != from ) { 33 | from.SendMessage("You must equip the item for it to light your way."); 34 | return; 35 | } 36 | 37 | if( from.FindItemOnLayer(Layer.Unused_xF) != mLight ) { 38 | from.SendMessage("You cannot do that at this time."); 39 | return; 40 | } 41 | 42 | if( IsLit == false & from.FindItemOnLayer(Layer.Unused_xF) == null ) { 43 | IsLit = true; 44 | CreateLight(from); 45 | } 46 | else{ Nullify(); } 47 | } 48 | 49 | public void Nullify() 50 | { 51 | if( mLight != null ) { 52 | mLight.Delete(); 53 | mLight = null; 54 | IsLit = false; 55 | } 56 | } 57 | 58 | public bool OnEquip(Item item, Mobile parent) 59 | { 60 | if( this.mLight != null && !mLight.Deleted ) { 61 | mLight.Delete(); 62 | CreateLight(parent); 63 | 64 | } 65 | return true; 66 | } 67 | 68 | public override bool OnDragLift( Mobile from ) 69 | { 70 | if( mLight != null) { 71 | mLight.Delete(); 72 | mLight = null; 73 | IsLit = false; 74 | } 75 | return true; 76 | } 77 | 78 | 79 | public void CreateLight(Mobile from) 80 | { 81 | WearableLight light = new WearableLight(); 82 | mLight = light; 83 | from.EquipItem( mLight ); 84 | } 85 | 86 | public override void OnAfterDelete() 87 | { 88 | base.OnAfterDelete(); 89 | if(mLight != null){ 90 | mLight.Delete(); 91 | } 92 | } 93 | 94 | public BaseClothing_ItemOfLight(Serial serial) : base(serial) 95 | {} 96 | 97 | public override void Serialize(GenericWriter writer) 98 | { 99 | base.Serialize(writer); 100 | writer.Write((int)0); 101 | 102 | writer.Write( ( Item )mLight ); 103 | writer.Write( ( bool )IsLit ); 104 | } 105 | 106 | public override void Deserialize(GenericReader reader) 107 | { 108 | base.Deserialize(reader); 109 | int version = reader.ReadInt(); 110 | 111 | mLight = ( WearableLight )reader.ReadItem( ); 112 | IsLit = (bool) reader.ReadBool(); 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /ItemOfLight/BaseShield_ItemOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Mobiles; 3 | 4 | namespace Server.Items 5 | { 6 | public class BaseShield_ItemOfLight : BaseShield 7 | { 8 | private Item mLight; 9 | bool mIsLit = false; 10 | 11 | [CommandProperty( AccessLevel.GameMaster )] 12 | public Item Link 13 | { 14 | get { return mLight; } 15 | set { mLight = value; } 16 | } 17 | 18 | [CommandProperty( AccessLevel.GameMaster )] 19 | public bool IsLit 20 | { 21 | get { return mIsLit; } 22 | set { mIsLit = value; } 23 | } 24 | 25 | public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Plate; } } 26 | 27 | 28 | [Constructable] 29 | public BaseShield_ItemOfLight() : base(0x1B78) 30 | { 31 | Layer = Layer.TwoHanded; 32 | } 33 | 34 | public override void OnDoubleClick(Mobile from) 35 | { 36 | if(from == null ) { return; } 37 | 38 | if( Parent != from ) { 39 | from.SendMessage("You must equip the item for it to light your way."); 40 | return; 41 | } 42 | 43 | if( from.FindItemOnLayer(Layer.Unused_xF) != mLight ) { 44 | from.SendMessage("You cannot do that at this time."); 45 | return; 46 | } 47 | 48 | if( IsLit == false & from.FindItemOnLayer(Layer.Unused_xF) == null ) { 49 | IsLit = true; 50 | CreateLight(from); 51 | } 52 | else{ Nullify(); } 53 | } 54 | 55 | public void Nullify() 56 | { 57 | if( mLight != null ) { 58 | mLight.Delete(); 59 | mLight = null; 60 | IsLit = false; 61 | } 62 | } 63 | 64 | public bool OnEquip(Item item, Mobile parent) 65 | { 66 | if( this.mLight != null && !mLight.Deleted ) { 67 | mLight.Delete(); 68 | CreateLight(parent); 69 | 70 | } 71 | return true; 72 | } 73 | 74 | public override bool OnDragLift( Mobile from ) 75 | { 76 | if( mLight != null) { 77 | mLight.Delete(); 78 | mLight = null; 79 | IsLit = false; 80 | } 81 | return true; 82 | } 83 | 84 | 85 | public void CreateLight(Mobile from) 86 | { 87 | WearableLight light = new WearableLight(); 88 | mLight = light; 89 | from.EquipItem( mLight ); 90 | } 91 | 92 | public override void OnAfterDelete() 93 | { 94 | base.OnAfterDelete(); 95 | if(mLight != null){ 96 | mLight.Delete(); 97 | } 98 | } 99 | 100 | public BaseShield_ItemOfLight(Serial serial) : base(serial) 101 | { } 102 | 103 | public override void Serialize(GenericWriter writer) 104 | { 105 | base.Serialize(writer); 106 | writer.Write((int)0); 107 | 108 | writer.Write( ( Item )mLight ); 109 | writer.Write( ( bool )IsLit ); 110 | } 111 | 112 | public override void Deserialize(GenericReader reader) 113 | { 114 | base.Deserialize(reader); 115 | int version = reader.ReadInt(); 116 | 117 | mLight = ( WearableLight )reader.ReadItem( ); 118 | IsLit = (bool) reader.ReadBool(); 119 | } 120 | } 121 | } -------------------------------------------------------------------------------- /ItemOfLight/BaseWeapon_ItemOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class BaseWeapon_ItemOfLight : BaseWeapon 6 | { 7 | private Item mLight; 8 | bool mIsLit = false; 9 | 10 | [CommandProperty( AccessLevel.GameMaster )] 11 | public Item Link 12 | { 13 | get { return mLight; } 14 | set { mLight = value; } 15 | } 16 | 17 | [CommandProperty( AccessLevel.GameMaster )] 18 | public bool IsLit 19 | { 20 | get { return mIsLit; } 21 | set { mIsLit = value; } 22 | } 23 | 24 | [Constructable] 25 | public BaseWeapon_ItemOfLight() : base( 0xF52 ) 26 | { 27 | Layer = Layer.FirstValid; 28 | } 29 | 30 | public override void OnDoubleClick(Mobile from) 31 | { 32 | if(from == null ) { return; } 33 | 34 | if( Parent != from ) { 35 | from.SendMessage("You must equip the item for it to light your way."); 36 | return; 37 | } 38 | 39 | if( from.FindItemOnLayer(Layer.Unused_xF) != mLight ) { 40 | from.SendMessage("You cannot do that at this time."); 41 | return; 42 | } 43 | 44 | if( IsLit == false & from.FindItemOnLayer(Layer.Unused_xF) == null ) { 45 | IsLit = true; 46 | CreateLight(from); 47 | } 48 | else{ Nullify(); } 49 | } 50 | 51 | public void Nullify() 52 | { 53 | if( mLight != null ) { 54 | mLight.Delete(); 55 | mLight = null; 56 | IsLit = false; 57 | } 58 | } 59 | 60 | public bool OnEquip(Item item, Mobile parent) 61 | { 62 | if( this.mLight != null && !mLight.Deleted ) { 63 | mLight.Delete(); 64 | CreateLight(parent); 65 | 66 | } 67 | return true; 68 | } 69 | 70 | public override bool OnDragLift( Mobile from ) 71 | { 72 | if( mLight != null) { 73 | mLight.Delete(); 74 | mLight = null; 75 | IsLit = false; 76 | } 77 | return true; 78 | } 79 | 80 | 81 | public void CreateLight(Mobile from) 82 | { 83 | WearableLight light = new WearableLight(); 84 | mLight = light; 85 | from.EquipItem( mLight ); 86 | } 87 | 88 | public override void OnAfterDelete() 89 | { 90 | base.OnAfterDelete(); 91 | if(mLight != null){ 92 | mLight.Delete(); 93 | } 94 | } 95 | 96 | public BaseWeapon_ItemOfLight(Serial serial) : base(serial) 97 | { } 98 | 99 | public override void Serialize(GenericWriter writer) 100 | { 101 | base.Serialize(writer); 102 | writer.Write((int)0); 103 | 104 | writer.Write( ( Item )mLight ); 105 | writer.Write( ( bool )IsLit ); 106 | } 107 | 108 | public override void Deserialize(GenericReader reader) 109 | { 110 | base.Deserialize(reader); 111 | int version = reader.ReadInt(); 112 | 113 | mLight = ( WearableLight )reader.ReadItem( ); 114 | IsLit = (bool) reader.ReadBool(); 115 | } 116 | } 117 | } -------------------------------------------------------------------------------- /ItemOfLight/Example Items/DaggerOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class DaggerOfLight : BaseWeapon_ItemOfLight 6 | { 7 | [Constructable] 8 | public DaggerOfLight() : base() 9 | { 10 | ItemID = 0xF52; 11 | Layer = Layer.FirstValid; 12 | Weight = 1.0; 13 | } 14 | 15 | public DaggerOfLight(Serial serial) : base(serial) 16 | { 17 | } 18 | 19 | public override int InitMinHits 20 | { get { return 31; } } 21 | 22 | public override int InitMaxHits 23 | { get { return 40; } } 24 | 25 | public override void Serialize(GenericWriter writer) 26 | { 27 | base.Serialize(writer); 28 | 29 | writer.Write((int)0); // version 30 | } 31 | 32 | public override void Deserialize(GenericReader reader) 33 | { 34 | base.Deserialize(reader); 35 | 36 | int version = reader.ReadInt(); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /ItemOfLight/Example Items/HalberdOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class HalberdOfLight : BaseWeapon_ItemOfLight 6 | { 7 | [Constructable] 8 | public HalberdOfLight() : base() 9 | { 10 | Layer = Layer.TwoHanded; 11 | ItemID = 0x143E; 12 | this.Weight = 16.0; 13 | } 14 | 15 | public HalberdOfLight(Serial serial) 16 | : base(serial) 17 | { 18 | } 19 | 20 | public override int InitMinHits 21 | { 22 | get 23 | { 24 | return 31; 25 | } 26 | } 27 | public override int InitMaxHits 28 | { 29 | get 30 | { 31 | return 80; 32 | } 33 | } 34 | public override void Serialize(GenericWriter writer) 35 | { 36 | base.Serialize(writer); 37 | 38 | writer.Write((int)0); // version 39 | } 40 | 41 | public override void Deserialize(GenericReader reader) 42 | { 43 | base.Deserialize(reader); 44 | 45 | int version = reader.ReadInt(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /ItemOfLight/Example Items/PlateChestOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | [FlipableAttribute(0x1415, 0x1416)] 6 | public class PlateChestOfLight : BaseArmor_ItemOfLight 7 | { 8 | [Constructable] 9 | public PlateChestOfLight() : base() 10 | { 11 | ItemID = 0x1415; 12 | this.Weight = 10.0; 13 | } 14 | 15 | public PlateChestOfLight(Serial serial) : base(serial) 16 | { 17 | } 18 | 19 | 20 | public override int InitMinHits 21 | { 22 | get 23 | { 24 | return 50; 25 | } 26 | } 27 | public override int InitMaxHits 28 | { 29 | get 30 | { 31 | return 65; 32 | } 33 | } 34 | 35 | 36 | public override void Serialize(GenericWriter writer) 37 | { 38 | base.Serialize(writer); 39 | writer.Write((int)0); 40 | } 41 | 42 | public override void Deserialize(GenericReader reader) 43 | { 44 | base.Deserialize(reader); 45 | int version = reader.ReadInt(); 46 | 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /ItemOfLight/Example Items/RobeOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Server.Items 4 | { 5 | public class RobeOfLight : BaseClothing_ItemOfLight 6 | { 7 | [Constructable] 8 | public RobeOfLight() : base( 0x1F03, Layer.OuterTorso ) 9 | { 10 | Name = "Robe of Light"; 11 | //ItemID = 0x1F03; 12 | //Layer = Layer.OuterTorso; 13 | Weight = 1.0; 14 | } 15 | 16 | 17 | 18 | public RobeOfLight(Serial serial) : base(serial) 19 | { 20 | } 21 | 22 | public override void Serialize(GenericWriter writer) 23 | { 24 | base.Serialize(writer); 25 | 26 | writer.Write((int)0); // version 27 | } 28 | 29 | public override void Deserialize(GenericReader reader) 30 | { 31 | base.Deserialize(reader); 32 | 33 | int version = reader.ReadInt(); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /ItemOfLight/Example Items/ShieldOfLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Items; 3 | 4 | namespace Server.Items 5 | { 6 | public class ShieldOfLight : BaseShield_ItemOfLight 7 | { 8 | [Constructable] 9 | public ShieldOfLight() : base() 10 | { 11 | ItemID = 0x1B78; 12 | Layer = Layer.TwoHanded; 13 | Weight = 1.0; 14 | } 15 | 16 | public override int InitMinHits 17 | { get { return 255; } } 18 | 19 | public override int InitMaxHits 20 | { get { return 255; } } 21 | 22 | public ShieldOfLight(Serial serial) : base(serial) 23 | { } 24 | 25 | public override void Serialize(GenericWriter writer) 26 | { 27 | base.Serialize(writer); 28 | writer.Write((int)0); 29 | } 30 | 31 | public override void Deserialize(GenericReader reader) 32 | { 33 | base.Deserialize(reader); 34 | int version = reader.ReadInt(); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /ItemOfLight/WearableLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Mobiles; 3 | 4 | namespace Server.Items 5 | { 6 | public class WearableLight : BaseArmor 7 | { 8 | public override ArmorMaterialType MaterialType{ get{ return ArmorMaterialType.Plate; } } 9 | 10 | [Constructable] 11 | public WearableLight() : base( 0x1647 ) 12 | { 13 | Light = LightType.Circle225; 14 | Layer = Layer.Unused_xF; 15 | Movable = true; 16 | Visible = true; 17 | } 18 | 19 | public override bool OnDragLift( Mobile from ) 20 | { 21 | return false; 22 | } 23 | 24 | public WearableLight(Serial serial) : base(serial) 25 | { 26 | } 27 | 28 | public override void Serialize(GenericWriter writer) 29 | { 30 | base.Serialize(writer); 31 | writer.Write((int)0); 32 | } 33 | 34 | public override void Deserialize(GenericReader reader) 35 | { 36 | base.Deserialize(reader); 37 | int version = reader.ReadInt(); 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /LivingStatue/LivingStatue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Mobiles; 4 | using System.IO; 5 | using System.Text; 6 | using System.Collections; 7 | using System.Collections.Generic; 8 | 9 | namespace Server.Items 10 | { 11 | public class LivingStatue : DamageableItem2 12 | { 13 | [Constructable] 14 | public LivingStatue( ) 15 | : base( 4825, 4825 ) 16 | { 17 | Name = "Living Statue"; 18 | 19 | Level = ItemLevel.Easy; 20 | Movable = false; 21 | } 22 | 23 | 24 | /* 25 | //http://www.runuo.com/community/threads/items-drop-oin-death.78203/ 26 | //public override void OnDeath( ) 27 | public bool Destroy( ) 28 | { 29 | //base.OnDeath( c ); 30 | 31 | Item MegatonRock = new MegatonRock(); 32 | MegatonRock.MoveToWorld( new Point3D( this.X + Utility.RandomMinMax( -1, 1 ), this.Y + Utility.RandomMinMax( -1, 1 ), this.Z ), this.Map ); 33 | return true; 34 | } 35 | */ 36 | public LivingStatue( Serial serial ) 37 | : base( serial ) 38 | { 39 | } 40 | 41 | 42 | public override void Serialize( GenericWriter writer ) 43 | { 44 | base.Serialize( writer ); 45 | 46 | writer.Write( ( int )0 ); //version 47 | } 48 | 49 | public override void Deserialize( GenericReader reader ) 50 | { 51 | base.Deserialize( reader ); 52 | 53 | int version = reader.ReadInt( ); 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /MapDecoder.cs: -------------------------------------------------------------------------------- 1 | // item that decodes a treasure map 2 | // attaches xml using AddProperties to treasure map to display the location of the treasure chest within the treasure map hover-over props 3 | 4 | using System; 5 | using Server; 6 | using Server.Commands; 7 | using Server.Gumps; 8 | using Server.Engines.XmlSpawner2; 9 | using Server.Items; 10 | 11 | namespace Server.Engines.XmlSpawner2 12 | { 13 | 14 | public class MapDecoderXML : XmlAttachment 15 | { 16 | 17 | public override void AddProperties(ObjectPropertyList list) 18 | { 19 | if (AttachedTo != null) 20 | { 21 | // new property 22 | } 23 | 24 | } 25 | 26 | [Attachable] 27 | public AddOnEditor_Att() {} 28 | 29 | public override void Serialize( GenericWriter writer ) 30 | { 31 | base.Serialize( writer ); 32 | writer.Write( (int) 0 ); // version 33 | } 34 | 35 | public override void Deserialize( GenericReader reader ) 36 | { 37 | base.Deserialize( reader ); 38 | int version = reader.ReadInt(); 39 | } 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Mobile Statues/OgreStatue.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | using Server.Items; 4 | using Server.Mobiles; 5 | using Server.Network; 6 | using System.Collections; 7 | using System.Collections.Generic; 8 | 9 | namespace Server.Mobiles 10 | { 11 | [CorpseName("an OgreStatue corpse")] 12 | public class OgreStatue : BaseCreatureStatue 13 | { 14 | 15 | [Constructable] 16 | public OgreStatue() : base(1, ResType.Iron, Direction.Down, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) 17 | { 18 | Name = "an OgreStatue"; 19 | BaseSoundID = 427; 20 | 21 | SetStr(166, 195); 22 | SetDex(46, 65); 23 | SetInt(46, 70); 24 | 25 | SetHits(100, 117); 26 | SetMana(0); 27 | 28 | SetDamage(9, 11); 29 | 30 | SetDamageType(ResistanceType.Physical, 100); 31 | 32 | SetResistance(ResistanceType.Physical, 30, 35); 33 | SetResistance(ResistanceType.Fire, 15, 25); 34 | SetResistance(ResistanceType.Cold, 15, 25); 35 | SetResistance(ResistanceType.Poison, 15, 25); 36 | SetResistance(ResistanceType.Energy, 25); 37 | 38 | SetSkill(SkillName.MagicResist, 55.1, 70.0); 39 | SetSkill(SkillName.Tactics, 60.1, 70.0); 40 | SetSkill(SkillName.Wrestling, 70.1, 80.0); 41 | 42 | Fame = 3000; 43 | Karma = -3000; 44 | 45 | VirtualArmor = 32; 46 | 47 | 48 | } 49 | 50 | 51 | public override void Freeze() 52 | { 53 | base.Freeze(); 54 | Animate( 5, 5, 1, false, false, 255 ); 55 | } 56 | 57 | public OgreStatue(Serial serial) : base(serial) 58 | { } 59 | 60 | public override bool CanRummageCorpses { get { return true; } } 61 | public override int TreasureMapLevel { get { return 1; } } 62 | public override int Meat { get { return 2; } } 63 | 64 | public override void Serialize(GenericWriter writer) 65 | { 66 | base.Serialize(writer); 67 | writer.Write((int)0); 68 | } 69 | 70 | public override void Deserialize(GenericReader reader) 71 | { 72 | base.Deserialize(reader); 73 | int version = reader.ReadInt(); 74 | 75 | } 76 | } 77 | } -------------------------------------------------------------------------------- /Mobile Statues/SkeletonStatue.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | using Server.Items; 4 | using Server.Mobiles; 5 | using Server.Network; 6 | using System.Collections; 7 | using System.Collections.Generic; 8 | 9 | namespace Server.Mobiles 10 | { 11 | [CorpseName("an SkeletonStatue corpse")] 12 | public class SkeletonStatue : BaseCreatureStatue 13 | { 14 | 15 | [Constructable] 16 | public SkeletonStatue() : base(56, ResType.Iron, Direction.South, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) 17 | { 18 | Name = "an SkeletonStatue"; 19 | BaseSoundID = 427; 20 | 21 | SetStr(166, 195); 22 | SetDex(46, 65); 23 | SetInt(46, 70); 24 | 25 | SetHits(100, 117); 26 | SetMana(0); 27 | 28 | SetDamage(9, 11); 29 | 30 | SetDamageType(ResistanceType.Physical, 100); 31 | 32 | SetResistance(ResistanceType.Physical, 30, 35); 33 | SetResistance(ResistanceType.Fire, 15, 25); 34 | SetResistance(ResistanceType.Cold, 15, 25); 35 | SetResistance(ResistanceType.Poison, 15, 25); 36 | SetResistance(ResistanceType.Energy, 25); 37 | 38 | SetSkill(SkillName.MagicResist, 55.1, 70.0); 39 | SetSkill(SkillName.Tactics, 60.1, 70.0); 40 | SetSkill(SkillName.Wrestling, 70.1, 80.0); 41 | 42 | Fame = 3000; 43 | Karma = -3000; 44 | 45 | VirtualArmor = 32; 46 | } 47 | 48 | 49 | public override void Freeze() 50 | { 51 | base.Freeze(); 52 | Animate( 4, 3, 1, false, false, 255 ); 53 | } 54 | 55 | public SkeletonStatue(Serial serial) : base(serial) 56 | { } 57 | 58 | public override bool CanRummageCorpses { get { return true; } } 59 | public override int TreasureMapLevel { get { return 1; } } 60 | public override int Meat { get { return 2; } } 61 | 62 | public override void Serialize(GenericWriter writer) 63 | { 64 | base.Serialize(writer); 65 | writer.Write((int)0); 66 | } 67 | 68 | public override void Deserialize(GenericReader reader) 69 | { 70 | base.Deserialize(reader); 71 | int version = reader.ReadInt(); 72 | 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /Monster In A Box/BodyValues.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerodowned/Custom-Scripts-for-ServUO/b8065e7e157abb20424d9b220fa3d56b4b9fc6f0/Monster In A Box/BodyValues.ods -------------------------------------------------------------------------------- /Monster In A Box/BoxedMobileGump.gump: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerodowned/Custom-Scripts-for-ServUO/b8065e7e157abb20424d9b220fa3d56b4b9fc6f0/Monster In A Box/BoxedMobileGump.gump -------------------------------------------------------------------------------- /Monster In A Box/MonsterInABox_Mobile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | 4 | 5 | namespace Server.Mobiles 6 | { 7 | public class MonsterInABox_Mobile : BaseCreature 8 | { 9 | [Constructable] 10 | public MonsterInABox_Mobile( 11 | string name, 12 | int BodyValue, 13 | int Hue, 14 | int StrMin, int StrMax, 15 | int DexMin, int DexMax, 16 | int IntMin, int IntMax, 17 | int Hits, 18 | int Stam, 19 | int Mana, 20 | int Fame, 21 | int Karma, 22 | int Damage, 23 | int DmgPhy, int DmgFire, int DmgCold, int DmgPoison, int DmgEnergy, 24 | int ResPhy, int ResFire, int ResCold, int ResPoison, int ResEnergy, 25 | AIType ai, 26 | int VirtualArmor, 27 | 28 | //AIType ai, 29 | FightMode mode, 30 | int RangePerception, 31 | int RangeFight, 32 | double ActiveSpeed, 33 | double PassiveSpeed 34 | ) 35 | : base( AIType.AI_Melee,FightMode.Closest, 10, 1, 0.2, 0.4 ) 36 | { 37 | AI = ai; 38 | FightMode = mode; 39 | RangePerception = RangePerception; 40 | RangeFight = RangeFight; 41 | ActiveSpeed = ActiveSpeed; 42 | PassiveSpeed = PassiveSpeed; 43 | 44 | Body = BodyValue; 45 | Name = name; 46 | Hue = Hue; 47 | 48 | SetStr( StrMin, StrMax ); 49 | SetDex( DexMin, DexMax ); 50 | SetInt( IntMin, IntMax ); 51 | SetHits( Hits ); 52 | SetStam( Stam ); 53 | SetMana( Mana ); 54 | 55 | SetDamage( Damage ); 56 | 57 | SetDamageType(ResistanceType.Physical, DmgPhy); 58 | SetDamageType(ResistanceType.Fire, DmgFire); 59 | SetDamageType(ResistanceType.Cold, DmgCold); 60 | SetDamageType(ResistanceType.Poison, DmgPoison); 61 | SetDamageType(ResistanceType.Energy, DmgEnergy); 62 | 63 | SetResistance(ResistanceType.Physical, ResPhy); 64 | SetResistance(ResistanceType.Fire, ResFire); 65 | SetResistance(ResistanceType.Cold, ResCold); 66 | SetResistance(ResistanceType.Poison, ResPoison); 67 | SetResistance(ResistanceType.Energy, ResEnergy); 68 | 69 | VirtualArmor = VirtualArmor; 70 | CorpseNameOverride = "test"; 71 | } 72 | 73 | 74 | public MonsterInABox_Mobile(Serial serial) : base(serial){} 75 | 76 | public override void Serialize(GenericWriter writer) 77 | { 78 | base.Serialize(writer); 79 | writer.Write((int)0); 80 | } 81 | 82 | public override void Deserialize(GenericReader reader) 83 | { 84 | base.Deserialize(reader); 85 | } 86 | } 87 | } -------------------------------------------------------------------------------- /Monster In A Box/bodyvalues.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerodowned/Custom-Scripts-for-ServUO/b8065e7e157abb20424d9b220fa3d56b4b9fc6f0/Monster In A Box/bodyvalues.JPG -------------------------------------------------------------------------------- /ShameRevamp/CountDownTimer1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Mobiles; 4 | 5 | 6 | namespace Server.Items 7 | { 8 | public class CountDownTimer1 : Item 9 | { 10 | 11 | public virtual int Lifespan{ get{ return 60; } } 12 | 13 | private int m_Lifespan; 14 | 15 | [CommandProperty( AccessLevel.GameMaster )] 16 | public int TimeLeft 17 | { 18 | get{ return m_Lifespan; } 19 | set{ m_Lifespan = value; InvalidateProperties(); } 20 | } 21 | 22 | 23 | 24 | [Constructable] 25 | public CountDownTimer1() : base( 0x1870 ) 26 | { 27 | Name = "CountDownTimer1"; 28 | Movable = false; 29 | Visible = false; 30 | 31 | if ( Lifespan > 0 ) 32 | { 33 | m_Lifespan = Lifespan; 34 | StartTimer(); 35 | } 36 | } 37 | /* 38 | private void Expire() 39 | { 40 | 41 | if (Deleted) 42 | return; 43 | 44 | Delete(); 45 | if (m is Mobile) m.SendMessage("You failed to defeat the Champion"); 46 | 47 | } 48 | */ 49 | 50 | 51 | 52 | public CountDownTimer1(Serial serial) : base(serial) 53 | { 54 | } 55 | /* 56 | public override void GetProperties( ObjectPropertyList list ) 57 | { 58 | base.GetProperties( list ); 59 | 60 | if ( Lifespan > 0 ) 61 | string lisths = String.Format("{0} Minutes.", m_Lifespan.ToString()); 62 | list.Add("Half Life Remaining: {0}", lisths); //FFFFFF 63 | 64 | 65 | //list.Add( 1072517, m_Lifespan.ToString() ); // Lifespan: ~1_val~ seconds 66 | } 67 | */ 68 | private Timer m_Timer; 69 | 70 | public virtual void StartTimer() 71 | { 72 | if ( m_Timer != null ) 73 | return; 74 | 75 | m_Timer = Timer.DelayCall( TimeSpan.FromSeconds( 10 ), TimeSpan.FromSeconds( 10 ), new TimerCallback( Slice ) ); 76 | m_Timer.Priority = TimerPriority.OneMinute; 77 | } 78 | 79 | public virtual void StopTimer() 80 | { 81 | if ( m_Timer != null ) 82 | m_Timer.Stop(); 83 | 84 | m_Timer = null; 85 | } 86 | 87 | public virtual void Slice() 88 | { 89 | m_Lifespan -= 10; 90 | 91 | InvalidateProperties(); 92 | 93 | if ( m_Lifespan <= 0 ) 94 | Decay(); 95 | } 96 | 97 | public virtual void Decay() 98 | { 99 | if ( RootParent is Mobile ) 100 | { 101 | Mobile parent = (Mobile) RootParent; 102 | parent.SendMessage("You failed to defeat the Champion"); 103 | } 104 | StopTimer(); 105 | Delete(); 106 | } 107 | 108 | public override void Serialize(GenericWriter writer) 109 | { 110 | base.Serialize(writer); 111 | 112 | writer.Write((int) 0); 113 | writer.Write( (int) m_Lifespan ); 114 | } 115 | 116 | public override void Deserialize(GenericReader reader) 117 | { 118 | base.Deserialize(reader); 119 | 120 | int version = reader.ReadInt(); 121 | 122 | m_Lifespan = reader.ReadInt(); 123 | 124 | StartTimer(); 125 | } 126 | } 127 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/CaveTrolls/PKLGate1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | 4 | namespace Server.Items 5 | { 6 | public class PKLGate : Moongate 7 | { 8 | private bool m_Decays; 9 | private DateTime m_DecayTime; 10 | private Timer m_Timer; 11 | 12 | // public override int LabelNumber{ get{ return 1049498; } } // dark moongate 13 | 14 | [Constructable] 15 | public PKLGate() : this( false ) 16 | { 17 | } 18 | 19 | [Constructable] 20 | public PKLGate( bool decays, Point3D loc, Map map ) : this( decays ) 21 | { 22 | MoveToWorld( loc, map ); 23 | Effects.PlaySound( loc, map, 0x20E ); 24 | } 25 | 26 | [Constructable] 27 | public PKLGate( bool decays ) : base( new Point3D( 5404, 80, 10 ), Map.Trammel ) 28 | { 29 | Dispellable = false; 30 | ItemID = 0x4BCB; 31 | Hue = 1895; 32 | 33 | //if ( decays ) 34 | //{ 35 | m_Decays = true; 36 | m_DecayTime = DateTime.UtcNow + TimeSpan.FromMinutes( 3.0 ); 37 | 38 | m_Timer = new InternalTimer( this, m_DecayTime ); 39 | m_Timer.Start(); 40 | //} 41 | } 42 | 43 | public PKLGate( Serial serial ) : base( serial ) 44 | { 45 | } 46 | 47 | public override void OnAfterDelete() 48 | { 49 | if ( m_Timer != null ) 50 | m_Timer.Stop(); 51 | 52 | base.OnAfterDelete(); 53 | } 54 | 55 | public override void Serialize( GenericWriter writer ) 56 | { 57 | base.Serialize( writer ); 58 | 59 | writer.Write( (int) 0 ); // version 60 | 61 | writer.Write( m_Decays ); 62 | 63 | if ( m_Decays ) 64 | writer.WriteDeltaTime( m_DecayTime ); 65 | } 66 | 67 | public override void Deserialize( GenericReader reader ) 68 | { 69 | base.Deserialize( reader ); 70 | 71 | int version = reader.ReadInt(); 72 | 73 | switch ( version ) 74 | { 75 | case 0: 76 | { 77 | m_Decays = reader.ReadBool(); 78 | 79 | if ( m_Decays ) 80 | { 81 | m_DecayTime = reader.ReadDeltaTime(); 82 | 83 | m_Timer = new InternalTimer( this, m_DecayTime ); 84 | m_Timer.Start(); 85 | } 86 | 87 | break; 88 | } 89 | } 90 | } 91 | 92 | private class InternalTimer : Timer 93 | { 94 | private Item m_Item; 95 | 96 | public InternalTimer( Item item, DateTime end ) : base( end - DateTime.UtcNow ) 97 | { 98 | m_Item = item; 99 | } 100 | 101 | protected override void OnTick() 102 | { 103 | m_Item.Delete(); 104 | } 105 | } 106 | } 107 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/CaveTrolls/PKLGate2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | 4 | namespace Server.Items 5 | { 6 | public class PKLGate2 : Moongate 7 | { 8 | private bool m_Decays; 9 | private DateTime m_DecayTime; 10 | private Timer m_Timer; 11 | 12 | // public override int LabelNumber{ get{ return 1049498; } } // dark moongate 13 | 14 | [Constructable] 15 | public PKLGate2() : this( false ) 16 | { 17 | } 18 | 19 | [Constructable] 20 | public PKLGate2( bool decays, Point3D loc, Map map ) : this( decays ) 21 | { 22 | MoveToWorld( loc, map ); 23 | Effects.PlaySound( loc, map, 0x20E ); 24 | } 25 | 26 | [Constructable] 27 | public PKLGate2( bool decays ) : base( new Point3D( 5462, 26, -10 ), Map.Trammel ) 28 | { 29 | Dispellable = false; 30 | ItemID = 0x4BCB; 31 | Hue = 1895; 32 | 33 | //if ( decays ) 34 | //{ 35 | m_Decays = true; 36 | m_DecayTime = DateTime.UtcNow + TimeSpan.FromMinutes( 3.0 ); 37 | 38 | m_Timer = new InternalTimer( this, m_DecayTime ); 39 | m_Timer.Start(); 40 | //} 41 | } 42 | 43 | public PKLGate2( Serial serial ) : base( serial ) 44 | { 45 | } 46 | 47 | public override void OnAfterDelete() 48 | { 49 | if ( m_Timer != null ) 50 | m_Timer.Stop(); 51 | 52 | base.OnAfterDelete(); 53 | } 54 | 55 | public override void Serialize( GenericWriter writer ) 56 | { 57 | base.Serialize( writer ); 58 | 59 | writer.Write( (int) 0 ); // version 60 | 61 | writer.Write( m_Decays ); 62 | 63 | if ( m_Decays ) 64 | writer.WriteDeltaTime( m_DecayTime ); 65 | } 66 | 67 | public override void Deserialize( GenericReader reader ) 68 | { 69 | base.Deserialize( reader ); 70 | 71 | int version = reader.ReadInt(); 72 | 73 | switch ( version ) 74 | { 75 | case 0: 76 | { 77 | m_Decays = reader.ReadBool(); 78 | 79 | if ( m_Decays ) 80 | { 81 | m_DecayTime = reader.ReadDeltaTime(); 82 | 83 | m_Timer = new InternalTimer( this, m_DecayTime ); 84 | m_Timer.Start(); 85 | } 86 | 87 | break; 88 | } 89 | } 90 | } 91 | 92 | private class InternalTimer : Timer 93 | { 94 | private Item m_Item; 95 | 96 | public InternalTimer( Item item, DateTime end ) : base( end - DateTime.UtcNow ) 97 | { 98 | m_Item = item; 99 | } 100 | 101 | protected override void OnTick() 102 | { 103 | m_Item.Delete(); 104 | } 105 | } 106 | } 107 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/CaveTrolls/PKLGate3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | 4 | namespace Server.Items 5 | { 6 | public class PKLGate3 : Moongate 7 | { 8 | private bool m_Decays; 9 | private DateTime m_DecayTime; 10 | private Timer m_Timer; 11 | 12 | // public override int LabelNumber{ get{ return 1049498; } } // dark moongate 13 | 14 | [Constructable] 15 | public PKLGate3() : this( false ) 16 | { 17 | } 18 | 19 | [Constructable] 20 | public PKLGate3( bool decays, Point3D loc, Map map ) : this( decays ) 21 | { 22 | MoveToWorld( loc, map ); 23 | Effects.PlaySound( loc, map, 0x20E ); 24 | } 25 | 26 | [Constructable] 27 | public PKLGate3( bool decays ) : base( new Point3D( 5619, 46, 0 ), Map.Trammel ) 28 | { 29 | Dispellable = false; 30 | ItemID = 0x4BCB; 31 | Hue = 1895; 32 | 33 | //if ( decays ) 34 | //{ 35 | m_Decays = true; 36 | m_DecayTime = DateTime.UtcNow + TimeSpan.FromMinutes( 3.0 ); 37 | 38 | m_Timer = new InternalTimer( this, m_DecayTime ); 39 | m_Timer.Start(); 40 | //} 41 | } 42 | 43 | public PKLGate3( Serial serial ) : base( serial ) 44 | { 45 | } 46 | 47 | public override void OnAfterDelete() 48 | { 49 | if ( m_Timer != null ) 50 | m_Timer.Stop(); 51 | 52 | base.OnAfterDelete(); 53 | } 54 | 55 | public override void Serialize( GenericWriter writer ) 56 | { 57 | base.Serialize( writer ); 58 | 59 | writer.Write( (int) 0 ); // version 60 | 61 | writer.Write( m_Decays ); 62 | 63 | if ( m_Decays ) 64 | writer.WriteDeltaTime( m_DecayTime ); 65 | } 66 | 67 | public override void Deserialize( GenericReader reader ) 68 | { 69 | base.Deserialize( reader ); 70 | 71 | int version = reader.ReadInt(); 72 | 73 | switch ( version ) 74 | { 75 | case 0: 76 | { 77 | m_Decays = reader.ReadBool(); 78 | 79 | if ( m_Decays ) 80 | { 81 | m_DecayTime = reader.ReadDeltaTime(); 82 | 83 | m_Timer = new InternalTimer( this, m_DecayTime ); 84 | m_Timer.Start(); 85 | } 86 | 87 | break; 88 | } 89 | } 90 | } 91 | 92 | private class InternalTimer : Timer 93 | { 94 | private Item m_Item; 95 | 96 | public InternalTimer( Item item, DateTime end ) : base( end - DateTime.UtcNow ) 97 | { 98 | m_Item = item; 99 | } 100 | 101 | protected override void OnTick() 102 | { 103 | m_Item.Delete(); 104 | } 105 | } 106 | } 107 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/Chaos Vortex.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | /* 6 | Detect Hidden, teleports targets to itself, receives half damage from the summons and pets. Taints your mana, causing any mana damaging ability to do damage to you relative to how much mana the ability cost. 7 | 8 | 4 Crystal of Shame, Undying Flesh, Chaga Mushroom, Faery Dust 9 | 10 | 11 | */ 12 | 13 | 14 | namespace Server.Mobiles 15 | { 16 | [CorpseName( "a chaos vortex corpse" )] 17 | public class ChaosVortex : BaseCreature 18 | { 19 | [Constructable] 20 | public ChaosVortex () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 21 | { 22 | Name = "a chaos vortex"; 23 | Body = 131; 24 | BaseSoundID = 768; 25 | 26 | SetStr( 400, 450 ); 27 | SetDex( 180, 220 ); 28 | SetInt( 90, 110 ); 29 | 30 | SetHits( 26800, 27200 ); 31 | 32 | SetDamage( 21, 23 ); 33 | 34 | SetDamageType( ResistanceType.Physical, 20 ); 35 | SetDamageType( ResistanceType.Fire, 20 ); 36 | SetDamageType( ResistanceType.Energy, 20 ); 37 | SetDamageType( ResistanceType.Poison, 20 ); 38 | SetDamageType( ResistanceType.Cold, 20 ); 39 | 40 | 41 | 42 | SetResistance( ResistanceType.Physical, 65, 75 ); 43 | SetResistance( ResistanceType.Fire, 65, 75 ); 44 | SetResistance( ResistanceType.Poison, 65, 75 ); 45 | SetResistance( ResistanceType.Energy, 65, 75 ); 46 | SetResistance( ResistanceType.Cold, 65, 75 ); 47 | 48 | //SetSkill( SkillName.EvalInt, 60.1, 75.0 ); 49 | //SetSkill( SkillName.Magery, 60.1, 75.0 ); 50 | SetSkill( SkillName.MagicResist, 100.0, 110.0 ); 51 | SetSkill( SkillName.Tactics, 110.0, 125.0 ); 52 | SetSkill( SkillName.Wrestling, 125.0, 133.0 ); 53 | 54 | Fame = 10000; 55 | Karma = -10000; 56 | 57 | VirtualArmor = 56; 58 | } 59 | 60 | public override void GenerateLoot() 61 | { 62 | AddLoot( LootPack.Rich ); 63 | AddLoot( LootPack.Average ); 64 | AddLoot( LootPack.Gems ); 65 | //shame crystal 66 | } 67 | 68 | public override int TreasureMapLevel{ get{ return Core.AOS ? 4 : 5; } } 69 | 70 | public ChaosVortex ( Serial serial ) : base( serial ) 71 | { 72 | } 73 | 74 | public override void Serialize( GenericWriter writer ) 75 | { 76 | base.Serialize( writer ); 77 | writer.Write( (int) 0 ); 78 | } 79 | 80 | public override void Deserialize( GenericReader reader ) 81 | { 82 | base.Deserialize( reader ); 83 | int version = reader.ReadInt(); 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ClayGolem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Items; 3 | using Server.Items.MusicBox; 4 | using Server.Network; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a clay golem corpse" )] 9 | public class ClayGolem : BaseCreature 10 | { 11 | //private bool m_Stunning; 12 | 13 | public override bool IsScaredOfScaryThings{ get{ return false; } } 14 | 15 | 16 | [Constructable] 17 | public ClayGolem( ) : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.4, 0.8 ) 18 | { 19 | Name = "a clay golem"; 20 | Body = 752; 21 | Hue= 2207; 22 | 23 | 24 | SetStr( 390, 600 ); 25 | SetDex( 100, 135 ); 26 | SetInt( 110, 150 ); 27 | 28 | SetHits( 750, 850 ); 29 | 30 | SetDamage( 13, 24 ); 31 | 32 | SetDamageType( ResistanceType.Physical, 100 ); 33 | 34 | SetResistance( ResistanceType.Physical, 45, 55 ); 35 | 36 | SetResistance( ResistanceType.Fire, 50, 60 ); 37 | 38 | SetResistance( ResistanceType.Cold, 45, 55 ); 39 | SetResistance( ResistanceType.Poison, 99 ); 40 | SetResistance( ResistanceType.Energy, 35, 45 ); 41 | 42 | SetSkill( SkillName.MagicResist, 160.0, 190.0 ); 43 | SetSkill( SkillName.Tactics, 85.0, 120.0 ); 44 | SetSkill( SkillName.Wrestling, 85.0, 120.0 ); 45 | 46 | 47 | Fame = 4000; 48 | Karma = -4000; 49 | 50 | VirtualArmor = 40; 51 | 52 | } 53 | 54 | 55 | public override void GenerateLoot() 56 | { 57 | AddLoot( LootPack.Average ); 58 | //shame crystal 59 | } 60 | 61 | 62 | public override int GetAngerSound() 63 | { 64 | return 541; 65 | } 66 | 67 | public override int GetIdleSound() 68 | { 69 | 70 | return 542; 71 | 72 | } 73 | 74 | public override int GetDeathSound() 75 | { 76 | 77 | return 545; 78 | 79 | 80 | } 81 | 82 | public override int GetAttackSound() 83 | { 84 | return 562; 85 | } 86 | 87 | public override int GetHurtSound() 88 | { 89 | 90 | return 320; 91 | 92 | } 93 | 94 | 95 | public override bool BleedImmune{ get{ return true; } } 96 | 97 | 98 | //public override bool BardImmune{ get{ return !Core.AOS || Controlled; } } 99 | public override Poison PoisonImmune{ get{ return Poison.Greater; } } 100 | 101 | public ClayGolem( Serial serial ) : base( serial ) 102 | { 103 | } 104 | 105 | public override void Serialize( GenericWriter writer ) 106 | { 107 | base.Serialize( writer ); 108 | writer.Write( (int) 0 ); 109 | } 110 | 111 | public override void Deserialize( GenericReader reader ) 112 | { 113 | base.Deserialize( reader ); 114 | int version = reader.ReadInt(); 115 | } 116 | } 117 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ClayGolem.cs.bak: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Items; 3 | using Server.Items.MusicBox; 4 | using Server.Network; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a clay golem corpse" )] 9 | public class ClayGolem : BaseCreature 10 | { 11 | //private bool m_Stunning; 12 | 13 | public override bool IsScaredOfScaryThings{ get{ return false; } } 14 | 15 | 16 | [Constructable] 17 | public ClayGolem( ) : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.4, 0.8 ) 18 | { 19 | Name = "a clay golem"; 20 | Body = 752; 21 | Hue= 2207; 22 | 23 | 24 | SetStr( 390, 600 ); 25 | SetDex( 100, 135 ); 26 | SetInt( 110, 150 ); 27 | 28 | SetHits( 750, 850 ); 29 | 30 | SetDamage( 13, 24 ); 31 | 32 | SetDamageType( ResistanceType.Physical, 100 ); 33 | 34 | SetResistance( ResistanceType.Physical, 45, 55 ); 35 | 36 | SetResistance( ResistanceType.Fire, 50, 60 ); 37 | 38 | SetResistance( ResistanceType.Cold, 45, 55 ); 39 | SetResistance( ResistanceType.Poison, 99 ); 40 | SetResistance( ResistanceType.Energy, 35, 45 ); 41 | 42 | SetSkill( SkillName.MagicResist, 160.0, 190.0 ); 43 | SetSkill( SkillName.Tactics, 85.0, 120.0 ); 44 | SetSkill( SkillName.Wrestling, 85.0, 120.0 ); 45 | 46 | 47 | Fame = 4000; 48 | Karma = -4000; 49 | 50 | VirtualArmor = 40; 51 | 52 | if(Map == Map.Insane) { Str = Str * 2; } 53 | 54 | 55 | } 56 | 57 | 58 | public override void GenerateLoot() 59 | { 60 | AddLoot( LootPack.Average ); 61 | //shame crystal 62 | } 63 | 64 | 65 | public override int GetAngerSound() 66 | { 67 | return 541; 68 | } 69 | 70 | public override int GetIdleSound() 71 | { 72 | 73 | return 542; 74 | 75 | } 76 | 77 | public override int GetDeathSound() 78 | { 79 | 80 | return 545; 81 | 82 | 83 | } 84 | 85 | public override int GetAttackSound() 86 | { 87 | return 562; 88 | } 89 | 90 | public override int GetHurtSound() 91 | { 92 | 93 | return 320; 94 | 95 | } 96 | 97 | 98 | public override bool BleedImmune{ get{ return true; } } 99 | 100 | 101 | //public override bool BardImmune{ get{ return !Core.AOS || Controlled; } } 102 | public override Poison PoisonImmune{ get{ return Poison.Greater; } } 103 | 104 | public ClayGolem( Serial serial ) : base( serial ) 105 | { 106 | } 107 | 108 | public override void Serialize( GenericWriter writer ) 109 | { 110 | base.Serialize( writer ); 111 | writer.Write( (int) 0 ); 112 | } 113 | 114 | public override void Deserialize( GenericReader reader ) 115 | { 116 | base.Deserialize( reader ); 117 | int version = reader.ReadInt(); 118 | } 119 | } 120 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/DiseasedBloodElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | /* 6 | Bleed, Dispel 7 | */ 8 | 9 | namespace Server.Mobiles 10 | { 11 | [CorpseName( "a diseased blood elemental corpse" )] 12 | public class DiseasedBloodElemental : BaseCreature 13 | { 14 | [Constructable] 15 | public DiseasedBloodElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 16 | { 17 | Name = "a diseased blood elemental"; 18 | Body = 159; 19 | BaseSoundID = 278; 20 | 21 | SetStr( 660, 705 ); 22 | SetDex( 70, 75 ); 23 | SetInt( 300, 375 ); 24 | 25 | SetHits( 2570, 2625 ); 26 | 27 | SetDamage( 19, 27 ); 28 | 29 | SetDamageType( ResistanceType.Physical, 0 ); 30 | SetDamageType( ResistanceType.Poison, 50 ); 31 | SetDamageType( ResistanceType.Energy, 50 ); 32 | 33 | SetResistance( ResistanceType.Physical, 65, 75 ); 34 | SetResistance( ResistanceType.Fire, 55, 65 ); 35 | SetResistance( ResistanceType.Cold, 50, 60 ); 36 | SetResistance( ResistanceType.Poison, 60, 70 ); 37 | SetResistance( ResistanceType.Energy, 50, 60 ); 38 | 39 | SetSkill( SkillName.EvalInt, 115.0, 130.0 ); 40 | SetSkill( SkillName.Magery, 110.0, 120.0 ); 41 | SetSkill( SkillName.Meditation, 130.0, 155.0 ); 42 | SetSkill( SkillName.MagicResist, 115.0, 125.0 ); 43 | SetSkill( SkillName.Tactics, 130.0, 140.0 ); 44 | SetSkill( SkillName.Wrestling, 120.0, 140.0 ); 45 | SetSkill( SkillName.Poisoning, 100.0 ); 46 | 47 | Fame = 8500; 48 | Karma = -8500; 49 | 50 | VirtualArmor = 60; 51 | } 52 | 53 | public override void GenerateLoot() 54 | { 55 | AddLoot( LootPack.FilthyRich ); 56 | AddLoot( LootPack.Rich ); 57 | //shame crystal 58 | } 59 | 60 | public override int TreasureMapLevel{ get{ return 5; } } 61 | 62 | public DiseasedBloodElemental ( Serial serial ) : base( serial ) 63 | { 64 | } 65 | 66 | public override void Serialize( GenericWriter writer ) 67 | { 68 | base.Serialize( writer ); 69 | writer.Write( (int) 0 ); 70 | } 71 | 72 | public override void Deserialize( GenericReader reader ) 73 | { 74 | base.Deserialize( reader ); 75 | int version = reader.ReadInt(); 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/EternalGazer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | /*to do 6 | Receives half damage from summons and pets. 7 | */ 8 | 9 | namespace Server.Mobiles 10 | { 11 | [CorpseName( "an eternal gazer corpse" )] 12 | public class EternalGazer : BaseCreature 13 | { 14 | [Constructable] 15 | public EternalGazer () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.3, 0.6 ) 16 | { 17 | Name = "an eternal gazer"; 18 | Body = 22; 19 | BaseSoundID = 377; 20 | 21 | SetStr( 500, 515 ); 22 | SetDex( 130, 140 ); 23 | SetInt( 405, 460 ); 24 | 25 | SetHits( 7421, 7483 ); 26 | 27 | SetDamage( 18, 21 ); 28 | 29 | SetDamageType( ResistanceType.Physical, 50 ); 30 | SetDamageType( ResistanceType.Energy, 50 ); 31 | 32 | SetResistance( ResistanceType.Physical, 65, 75 ); 33 | SetResistance( ResistanceType.Fire, 60, 70 ); 34 | SetResistance( ResistanceType.Cold, 70, 75 ); 35 | SetResistance( ResistanceType.Poison, 65, 75 ); 36 | SetResistance( ResistanceType.Energy, 65, 75 ); 37 | 38 | SetSkill( SkillName.EvalInt, 120.0, 130.0 ); 39 | SetSkill( SkillName.Magery, 120.0, 130.0 ); 40 | SetSkill( SkillName.MagicResist, 125.0, 140.0 ); 41 | SetSkill( SkillName.Tactics, 115.0, 127.0 ); 42 | SetSkill( SkillName.Wrestling, 110.0, 126.0 ); 43 | SetSkill( SkillName.Anatomy, 75.0, 90.0 ); 44 | 45 | Fame = 12500; 46 | Karma = -12500; 47 | 48 | VirtualArmor = 36; 49 | 50 | PackItem( new Nightshade( 4 ) ); 51 | } 52 | 53 | public override void GenerateLoot() 54 | { 55 | AddLoot( LootPack.Average ); 56 | AddLoot( LootPack.Potions ); 57 | } 58 | 59 | public override int TreasureMapLevel{ get{ return 1; } } 60 | public override int Meat{ get{ return 1; } } 61 | 62 | public EternalGazer ( Serial serial ) : base( serial ) 63 | { 64 | } 65 | 66 | public override void Serialize( GenericWriter writer ) 67 | { 68 | base.Serialize( writer ); 69 | writer.Write( (int) 0 ); 70 | } 71 | 72 | public override void Deserialize( GenericReader reader ) 73 | { 74 | base.Deserialize( reader ); 75 | int version = reader.ReadInt(); 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/FlameElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "a flame elemental corpse" )] 8 | public class FlameElemental : AuraCreature 9 | { 10 | //public override double DispelDifficulty{ get{ return 117.5; } } 11 | //public override double DispelFocus{ get{ return 45.0; } } 12 | 13 | [Constructable] 14 | public FlameElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 15 | { 16 | Name = "a flame elemental"; 17 | Body = 15; 18 | BaseSoundID = 838; 19 | 20 | SetStr( 435, 450 ); 21 | SetDex( 166, 185 ); 22 | SetInt( 130, 165 ); 23 | 24 | SetMana( 1020, 1285 ); 25 | SetStam( 165, 205 ); 26 | SetHits( 720, 780 ); 27 | 28 | SetDamage( 18, 20 ); 29 | 30 | SetDamageType( ResistanceType.Physical, 25 ); 31 | SetDamageType( ResistanceType.Fire, 75 ); 32 | 33 | SetResistance( ResistanceType.Physical, 45, 55 ); 34 | SetResistance( ResistanceType.Fire, 100 ); 35 | SetResistance( ResistanceType.Cold, 30, 40 ); 36 | SetResistance( ResistanceType.Poison, 60, 70 ); 37 | SetResistance( ResistanceType.Energy, 60, 70 ); 38 | 39 | SetSkill( SkillName.EvalInt, 97.0, 134.0 ); 40 | SetSkill( SkillName.Meditation, 80.0, 115.0 ); 41 | SetSkill( SkillName.Magery, 104.0, 142.0 ); 42 | SetSkill( SkillName.MagicResist, 96.0, 140.0 ); 43 | SetSkill( SkillName.Tactics, 90.0, 122.0 ); 44 | SetSkill( SkillName.Wrestling, 90.0, 116.0 ); 45 | 46 | Fame = 4500; 47 | Karma = -4500; 48 | 49 | VirtualArmor = 40; 50 | ControlSlots = 4; 51 | 52 | PackItem( new SulfurousAsh( 3 ) ); 53 | 54 | AddItem( new LightSource() ); 55 | 56 | AuraMessage = "The intense heat is damaging you!"; // // TODO Cliloc support: 1008112 57 | AuraType = ResistanceType.Fire; 58 | MinAuraDelay = 1; 59 | MaxAuraDelay = 3; 60 | MinAuraDamage = 2; 61 | MaxAuraDamage = 4; 62 | AuraRange = 5; 63 | 64 | } 65 | 66 | public override void GenerateLoot() 67 | { 68 | AddLoot( LootPack.Average ); 69 | AddLoot( LootPack.Meager ); 70 | AddLoot( LootPack.Gems ); 71 | } 72 | 73 | public override bool BleedImmune{ get{ return true; } } 74 | // public override int TreasureMapLevel{ get{ return 3; } } 75 | public override bool AlwaysMurderer{ get{ return true; } } 76 | public override bool HasBreath{ get{ return true; } } // fire breath enabled 77 | public override bool AutoDispel{ get{ return !Controlled; } } 78 | 79 | public FlameElemental( Serial serial ) : base( serial ) 80 | { 81 | } 82 | 83 | public override void Serialize( GenericWriter writer ) 84 | { 85 | base.Serialize( writer ); 86 | writer.Write( (int) 0 ); 87 | } 88 | 89 | public override void Deserialize( GenericReader reader ) 90 | { 91 | base.Deserialize( reader ); 92 | int version = reader.ReadInt(); 93 | 94 | if ( BaseSoundID == 274 ) 95 | BaseSoundID = 838; 96 | } 97 | } 98 | } 99 | 100 | -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/GreaterEarthElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | /* to do 7 | At about 35% health it goes into a rage, at which point it has a good chance of dealing out hits with "stunning force" which leave the player paralyzed and unable to move, attack or cast for about 5 seconds. 8 | */ 9 | 10 | namespace Server.Mobiles 11 | { 12 | [CorpseName( "a greater earth elemental corpse" )] 13 | public class GreaterEarthElemental : BaseCreature 14 | { 15 | 16 | [Constructable] 17 | public GreaterEarthElemental () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 18 | { 19 | Name = "a greater earth elemental"; 20 | Body = 14; 21 | BaseSoundID = 268; 22 | 23 | SetStr( 129, 154 ); 24 | SetDex( 76, 95 ); 25 | SetInt( 91, 108 ); 26 | 27 | SetHits( 537, 582 ); 28 | 29 | SetDamage( 9, 16 ); 30 | 31 | SetDamageType( ResistanceType.Physical, 100 ); 32 | 33 | SetResistance( ResistanceType.Physical, 50, 65 ); 34 | SetResistance( ResistanceType.Fire, 35, 45 ); 35 | SetResistance( ResistanceType.Cold, 35, 40 ); 36 | SetResistance( ResistanceType.Poison, 45, 55 ); 37 | SetResistance( ResistanceType.Energy, 25, 35 ); 38 | 39 | SetSkill( SkillName.MagicResist, 49.7, 60.7 ); 40 | SetSkill( SkillName.Tactics, 71.4, 84.1 ); 41 | SetSkill( SkillName.Wrestling, 82.4, 91.1 ); 42 | 43 | Fame = 2500; 44 | Karma = -2500; 45 | 46 | VirtualArmor = 34; 47 | //ControlSlots = 2; 48 | 49 | //PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); 50 | //PackItem( new IronOre( 3 ) ); // TODO: Five small iron ore 51 | //PackItem( new MandrakeRoot() ); 52 | 53 | ////shamecrystal 54 | } 55 | 56 | public override void GenerateLoot() 57 | { 58 | AddLoot( LootPack.Average ); 59 | AddLoot( LootPack.Meager ); 60 | AddLoot( LootPack.Gems ); 61 | } 62 | 63 | public override bool BleedImmune{ get{ return true; } } 64 | public override int TreasureMapLevel{ get{ return 1; } } 65 | 66 | public GreaterEarthElemental ( Serial serial ) : base( serial ) 67 | { 68 | } 69 | 70 | public override void Serialize( GenericWriter writer ) 71 | { 72 | base.Serialize( writer ); 73 | writer.Write( (int) 0 ); 74 | } 75 | 76 | public override void Deserialize( GenericReader reader ) 77 | { 78 | base.Deserialize( reader ); 79 | int version = reader.ReadInt(); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/MoltenEarthElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | /* to do 7 | Stun, At about 35% health it goes into a rage, at which point it has a good chance of dealing out hits with "stunning force" which leave the player paralyzed and unable to move, attack or cast for about 5 seconds. 8 | */ 9 | 10 | 11 | namespace Server.Mobiles 12 | { 13 | [CorpseName( "a molten elemental corpse" )] 14 | public class MoltenEarthElemental : BaseCreature 15 | { 16 | 17 | [Constructable] 18 | public MoltenEarthElemental () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 19 | { 20 | Name = "a molten earth elemental"; 21 | Body = 14; 22 | Hue = Utility.RandomOrangeHue(); 23 | BaseSoundID = 268; 24 | SetStr( 460, 498 ); 25 | SetDex( 79, 95 ); 26 | SetInt( 92, 107 ); 27 | SetHits( 1276, 1351 ); 28 | SetDamage( 17, 19 ); 29 | 30 | SetDamageType( ResistanceType.Physical, 50 ); 31 | SetDamageType( ResistanceType.Fire, 50 ); 32 | 33 | SetResistance( ResistanceType.Physical, 50, 65 ); 34 | SetResistance( ResistanceType.Fire, 50, 60 ); 35 | SetResistance( ResistanceType.Cold, 40, 50 ); 36 | SetResistance( ResistanceType.Poison, 55, 65 ); 37 | SetResistance( ResistanceType.Energy, 50, 60 ); 38 | 39 | SetSkill( SkillName.MagicResist, 95.0, 100.0 ); 40 | SetSkill( SkillName.Tactics, 90.0, 100.0 ); 41 | SetSkill( SkillName.Wrestling, 110.0, 120.0 ); 42 | 43 | Fame = 2500; 44 | Karma = -2500; 45 | 46 | VirtualArmor = 34; 47 | 48 | //ControlSlots = 2; 49 | //PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); 50 | //PackItem( new IronOre( 3 ) ); // TODO: Five small iron ore 51 | //PackItem( new MandrakeRoot() ); 52 | ////shamecrystal 53 | } 54 | 55 | public override void GenerateLoot() 56 | { 57 | AddLoot( LootPack.Average ); 58 | AddLoot( LootPack.Meager ); 59 | AddLoot( LootPack.Gems ); 60 | } 61 | 62 | public override bool HasBreath{ get{ return true; } } // fire breath 63 | public override bool BleedImmune{ get{ return true; } } 64 | public override int TreasureMapLevel{ get{ return 1; } } 65 | 66 | public MoltenEarthElemental ( Serial serial ) : base( serial ) 67 | { 68 | } 69 | 70 | public override void Serialize( GenericWriter writer ) 71 | { 72 | base.Serialize( writer ); 73 | writer.Write( (int) 0 ); 74 | } 75 | 76 | public override void Deserialize( GenericReader reader ) 77 | { 78 | base.Deserialize( reader ); 79 | int version = reader.ReadInt(); 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/MoltenEarthElemental.cs.bak: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | /* to do 7 | Stun, At about 35% health it goes into a rage, at which point it has a good chance of dealing out hits with "stunning force" which leave the player paralyzed and unable to move, attack or cast for about 5 seconds. 8 | */ 9 | 10 | 11 | namespace Server.Mobiles 12 | { 13 | [CorpseName( "a molten elemental corpse" )] 14 | public class MoltenEarthElemental : BaseCreature 15 | { 16 | 17 | [Constructable] 18 | public MoltenEarthElemental () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 19 | { 20 | Name = "a molten earth elemental"; 21 | Body = 14; 22 | Hue = Utility.RandomOrangeHue(); 23 | BaseSoundID = 268; 24 | SetStr( 460, 498 ); 25 | SetDex( 79, 95 ); 26 | SetInt( 92, 107 ); 27 | SetHits( 1276, 1351 ); 28 | SetDamage( 17, 19 ); 29 | 30 | SetDamageType( ResistanceType.Physical, 50 ); 31 | SetDamageType( ResistanceType.Fire, 50 ); 32 | 33 | SetResistance( ResistanceType.Physical, 50, 65 ); 34 | SetResistance( ResistanceType.Fire, 50, 60 ); 35 | SetResistance( ResistanceType.Cold, 40, 50 ); 36 | SetResistance( ResistanceType.Poison, 55, 65 ); 37 | SetResistance( ResistanceType.Energy, 50, 60 ); 38 | 39 | SetSkill( SkillName.MagicResist, 95.0, 100.0 ); 40 | SetSkill( SkillName.Tactics, 90.0, 100.0 ); 41 | SetSkill( SkillName.Wrestling, 110.0, 120.0 ); 42 | 43 | Fame = 2500; 44 | Karma = -2500; 45 | 46 | VirtualArmor = 34; 47 | 48 | //ControlSlots = 2; 49 | //PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); 50 | //PackItem( new IronOre( 3 ) ); // TODO: Five small iron ore 51 | //PackItem( new MandrakeRoot() ); 52 | ////shamecrystal 53 | } 54 | public override void GenerateLoot() 55 | { 56 | AddLoot( LootPack.Average ); 57 | AddLoot( LootPack.Meager ); 58 | AddLoot( LootPack.Gems ); 59 | } 60 | public override bool HasBreath{ get{ return true; } } // fire breath 61 | public override bool BleedImmune{ get{ return true; } } 62 | public override int TreasureMapLevel{ get{ return 1; } } 63 | public MoltenEarthElemental ( Serial serial ) : base( serial ) 64 | { 65 | } 66 | public override void Serialize( GenericWriter writer ) 67 | { 68 | base.Serialize( writer ); 69 | writer.Write( (int) 0 ); 70 | } 71 | public override void Deserialize( GenericReader reader ) 72 | { 73 | base.Deserialize( reader ); 74 | int version = reader.ReadInt(); 75 | } 76 | } 77 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/MudElemental.cs: -------------------------------------------------------------------------------- 1 | 2 | 3 | using System; 4 | using System.Collections; 5 | using Server.Items; 6 | using Server.Targeting; 7 | namespace Server.Mobiles 8 | { 9 | [CorpseName( "a mud elemental corpse" )] 10 | public class MudElemental : BaseCreature 11 | { 12 | 13 | public override double DispelDifficulty{ get{ return 117.5; } } 14 | public override double DispelFocus{ get{ return 45.0; } } 15 | 16 | [Constructable] 17 | public MudElemental () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 18 | { 19 | Name = "a mud elemental"; 20 | Body = 14; 21 | Hue= 2418; 22 | BaseSoundID = 268; 23 | SetStr( 448, 523 ); 24 | SetDex( 76, 94 ); 25 | SetInt( 92, 111 ); 26 | SetHits( 690, 828 ); 27 | SetDamage( 17, 19 ); 28 | 29 | SetDamageType( ResistanceType.Physical, 50 ); 30 | SetDamageType( ResistanceType.Fire, 50 ); 31 | 32 | SetResistance( ResistanceType.Physical, 60, 65 ); 33 | SetResistance( ResistanceType.Fire, 45, 50 ); 34 | SetResistance( ResistanceType.Cold, 45, 50 ); 35 | SetResistance( ResistanceType.Poison, 55, 60 ); 36 | SetResistance( ResistanceType.Energy, 40, 45 ); 37 | 38 | SetSkill( SkillName.MagicResist, 90.0, 100.0 ); 39 | SetSkill( SkillName.Tactics, 85.0, 100.0 ); 40 | SetSkill( SkillName.Wrestling, 90.0, 120.0 ); 41 | 42 | Fame = 4000; 43 | Karma = -4000; 44 | 45 | VirtualArmor = 34; 46 | 47 | 48 | 49 | //PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); 50 | //PackItem( new IronOre( 3 ) ); // TODO: Five small iron ore 51 | //PackItem( new MandrakeRoot() ); 52 | // shamecrystal 53 | } 54 | 55 | public override void GenerateLoot() 56 | { 57 | AddLoot( LootPack.Average ); 58 | AddLoot( LootPack.Meager ); 59 | AddLoot( LootPack.Gems ); 60 | } 61 | 62 | public override bool BleedImmune{ get{ return true; } } 63 | public override int TreasureMapLevel{ get{ return 1; } } 64 | 65 | public MudElemental ( Serial serial ) : base( serial ) 66 | { 67 | } 68 | 69 | public override void Serialize( GenericWriter writer ) 70 | { 71 | base.Serialize( writer ); 72 | writer.Write( (int) 0 ); 73 | } 74 | 75 | public override void Deserialize( GenericReader reader ) 76 | { 77 | base.Deserialize( reader ); 78 | int version = reader.ReadInt(); 79 | } 80 | 81 | } 82 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/MudPie.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Items; 3 | 4 | namespace Server.Mobiles 5 | { 6 | [CorpseName( "a mud pie corpse" )] 7 | public class MudPie: BaseCreature 8 | { 9 | [Constructable] 10 | public MudPie() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 11 | { 12 | Name = "a mud pie"; 13 | Body = 779; 14 | BaseSoundID = 422; 15 | 16 | SetStr( 145, 204 ); 17 | SetDex( 75, 93 ); 18 | SetInt( 97, 110 ); 19 | 20 | SetHits( 284, 336 ); 21 | 22 | SetDamage( 9, 12 ); 23 | 24 | SetDamageType( ResistanceType.Physical, 80 ); 25 | SetDamageType( ResistanceType.Poison, 20 ); 26 | 27 | SetResistance( ResistanceType.Physical, 30, 45 ); 28 | SetResistance( ResistanceType.Fire, 35, 40 ); 29 | SetResistance( ResistanceType.Cold, 30, 40 ); 30 | SetResistance( ResistanceType.Poison, 35, 45 ); 31 | SetResistance( ResistanceType.Energy, 40 ); 32 | 33 | SetSkill( SkillName.MagicResist, 64.6, 85.0 ); 34 | SetSkill( SkillName.Tactics, 66.2, 85.0 ); 35 | SetSkill( SkillName.Wrestling, 65.0, 81.8 ); 36 | 37 | Fame = 3500; 38 | Karma = -3500; 39 | 40 | VirtualArmor = 28; 41 | 42 | //PackItem( new Log( 4 ) ); 43 | //PackItem( new Engines.Plants.Seed() ); 44 | //SHAME CRYSTAL 45 | } 46 | 47 | public override void GenerateLoot() 48 | { 49 | AddLoot( LootPack.Meager ); 50 | } 51 | 52 | /* public override void OnDeath(Container c) 53 | { 54 | base.OnDeath(c); 55 | 56 | if (Utility.RandomDouble() < 0.30) 57 | { 58 | switch (Utility.Random(1)) 59 | { 60 | case 0: c.DropItem(new ShameCrystal()); break; 61 | 62 | } 63 | } 64 | } 65 | */ 66 | //public override int Hides{ get{ return 6; } } 67 | //public override int Meat{ get{ return 1; } } 68 | 69 | public MudPie( Serial serial ) : base( serial ) 70 | { 71 | } 72 | 73 | public override void Serialize( GenericWriter writer ) 74 | { 75 | base.Serialize( writer ); 76 | writer.Write( (int) 0 ); 77 | } 78 | 79 | public override void Deserialize( GenericReader reader ) 80 | { 81 | base.Deserialize( reader ); 82 | int version = reader.ReadInt(); 83 | } 84 | } 85 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameAirElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "an air elemental corpse" )] 8 | public class ShameAirElemental : BaseCreature 9 | { 10 | // public override double DispelDifficulty{ get{ return 117.5; } } 11 | //public override double DispelFocus{ get{ return 45.0; } } 12 | 13 | [Constructable] 14 | public ShameAirElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 15 | { 16 | Name = "an air elemental"; 17 | Body = 13; 18 | Hue = 0x4001; 19 | BaseSoundID = 655; 20 | 21 | SetStr( 275, 315 ); 22 | SetDex( 190, 200 ); 23 | SetInt( 150, 160 ); 24 | 25 | SetHits( 750, 770 ); 26 | SetStam( 195, 200 ); 27 | SetMana( 730, 780 ); 28 | 29 | SetDamage( 8, 10 ); 30 | 31 | SetDamageType( ResistanceType.Physical, 20 ); 32 | SetDamageType( ResistanceType.Cold, 40 ); 33 | SetDamageType( ResistanceType.Energy, 40 ); 34 | 35 | SetResistance( ResistanceType.Physical, 85, 90 ); 36 | SetResistance( ResistanceType.Fire, 55, 65 ); 37 | SetResistance( ResistanceType.Cold, 55, 65 ); 38 | SetResistance( ResistanceType.Poison, 55, 60 ); 39 | SetResistance( ResistanceType.Energy, 50, 55 ); 40 | 41 | SetSkill( SkillName.EvalInt, 100.0, 106.0 ); 42 | SetSkill( SkillName.Magery, 102.0, 110.0 ); 43 | SetSkill( SkillName.MagicResist, 95.0, 100.0 ); 44 | SetSkill( SkillName.Tactics, 98.0, 105.0 ); 45 | SetSkill( SkillName.Wrestling, 100.0, 102.0 ); 46 | 47 | Fame = 4500; 48 | Karma = -4500; 49 | 50 | VirtualArmor = 40; 51 | //ControlSlots = 2; 52 | } 53 | 54 | public override void GenerateLoot() 55 | { 56 | AddLoot( LootPack.Average ); 57 | AddLoot( LootPack.Meager ); 58 | AddLoot( LootPack.LowScrolls ); 59 | AddLoot( LootPack.MedScrolls ); 60 | } 61 | 62 | public override bool BleedImmune{ get{ return true; } } 63 | public override int TreasureMapLevel{ get{ return 2; } } 64 | 65 | public ShameAirElemental ( Serial serial ) : base( serial ) 66 | { 67 | } 68 | 69 | public override void Serialize( GenericWriter writer ) 70 | { 71 | base.Serialize( writer ); 72 | writer.Write( (int) 0 ); 73 | } 74 | 75 | public override void Deserialize( GenericReader reader ) 76 | { 77 | base.Deserialize( reader ); 78 | int version = reader.ReadInt(); 79 | 80 | if ( BaseSoundID == 263 ) 81 | BaseSoundID = 655; 82 | } 83 | } 84 | } 85 | 86 | -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameAirElementalGuardian.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "an air elemental corpse" )] 8 | public class ShameAirElementalGuardian : BaseCreature 9 | { 10 | //public override double DispelDifficulty{ get{ return 117.5; } } 11 | //public override double DispelFocus{ get{ return 45.0; } } 12 | 13 | [Constructable] 14 | public ShameAirElementalGuardian () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 15 | { 16 | Name = "an air elemental"; 17 | Body = 13; 18 | Hue = 0x4001; 19 | BaseSoundID = 655; 20 | 21 | SetStr( 270, 295 ); 22 | SetDex( 180, 200 ); 23 | SetInt( 130, 160 ); 24 | 25 | SetHits( 790, 850 ); 26 | 27 | SetDamage( 13, 18 ); 28 | 29 | SetDamageType( ResistanceType.Physical, 20 ); 30 | SetDamageType( ResistanceType.Cold, 40 ); 31 | SetDamageType( ResistanceType.Energy, 40 ); 32 | 33 | SetResistance( ResistanceType.Physical, 75, 85); 34 | SetResistance( ResistanceType.Fire, 45, 60 ); 35 | SetResistance( ResistanceType.Cold, 50, 60 ); 36 | SetResistance( ResistanceType.Poison, 50, 60 ); 37 | SetResistance( ResistanceType.Energy, 40, 55 ); 38 | 39 | SetSkill( SkillName.EvalInt, 90.0, 103.0 ); 40 | SetSkill( SkillName.Magery, 85.0, 105.0 ); 41 | SetSkill( SkillName.MagicResist, 90.0, 105.0 ); 42 | SetSkill( SkillName.Tactics, 90.0, 105.0 ); 43 | SetSkill( SkillName.Wrestling, 90.0, 115.0 ); 44 | 45 | Fame = 4500; 46 | Karma = -4500; 47 | 48 | VirtualArmor = 40; 49 | //ControlSlots = 2; 50 | } 51 | 52 | public override void GenerateLoot() 53 | { 54 | AddLoot( LootPack.Average ); 55 | AddLoot( LootPack.Meager ); 56 | AddLoot( LootPack.LowScrolls ); 57 | AddLoot( LootPack.MedScrolls ); 58 | } 59 | 60 | public override bool BleedImmune{ get{ return true; } } 61 | public override int TreasureMapLevel{ get{ return 2; } } 62 | 63 | public ShameAirElementalGuardian ( Serial serial ) : base( serial ) 64 | { 65 | } 66 | 67 | public override void Serialize( GenericWriter writer ) 68 | { 69 | base.Serialize( writer ); 70 | writer.Write( (int) 0 ); 71 | } 72 | 73 | public override void Deserialize( GenericReader reader ) 74 | { 75 | base.Deserialize( reader ); 76 | int version = reader.ReadInt(); 77 | 78 | if ( BaseSoundID == 263 ) 79 | BaseSoundID = 655; 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameBloodElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "a blood elemental corpse" )] 8 | public class ShameBloodElemental : BaseCreature 9 | { 10 | [Constructable] 11 | public ShameBloodElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 12 | { 13 | Name = "a blood elemental"; 14 | Body = 159; 15 | BaseSoundID = 278; 16 | 17 | SetStr( 526, 615 ); 18 | SetDex( 66, 85 ); 19 | SetInt( 226, 350 ); 20 | 21 | SetHits( 1390, 1450 ); 22 | 23 | SetDamage( 17, 27 ); 24 | 25 | SetDamageType( ResistanceType.Physical, 0 ); 26 | SetDamageType( ResistanceType.Poison, 50 ); 27 | SetDamageType( ResistanceType.Energy, 50 ); 28 | 29 | 30 | 31 | SetResistance( ResistanceType.Physical, 55, 65 ); 32 | SetResistance( ResistanceType.Fire, 35, 45 ); 33 | SetResistance( ResistanceType.Cold, 40, 50 ); 34 | SetResistance( ResistanceType.Poison, 50, 60 ); 35 | SetResistance( ResistanceType.Energy, 30, 40 ); 36 | 37 | SetSkill( SkillName.EvalInt, 90.0, 120.0 ); 38 | SetSkill( SkillName.Magery, 85.1, 100.0 ); 39 | SetSkill( SkillName.Meditation, 100.0, 135.0 ); 40 | SetSkill( SkillName.MagicResist, 100.0, 115.0 ); 41 | SetSkill( SkillName.Tactics, 100.0, 120.0 ); 42 | SetSkill( SkillName.Wrestling, 95.0, 120.0 ); 43 | 44 | Fame = 12500; 45 | Karma = -12500; 46 | 47 | VirtualArmor = 60; 48 | } 49 | 50 | public override void GenerateLoot() 51 | { 52 | AddLoot( LootPack.FilthyRich ); 53 | AddLoot( LootPack.Rich ); 54 | } 55 | 56 | public override int TreasureMapLevel{ get{ return 5; } } 57 | 58 | public ShameBloodElemental ( Serial serial ) : base( serial ) 59 | { 60 | } 61 | 62 | public override void Serialize( GenericWriter writer ) 63 | { 64 | base.Serialize( writer ); 65 | writer.Write( (int) 0 ); 66 | } 67 | 68 | public override void Deserialize( GenericReader reader ) 69 | { 70 | base.Deserialize( reader ); 71 | int version = reader.ReadInt(); 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameEarthElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "an earth elemental corpse" )] 9 | public class ShameEarthElemental : BaseCreature 10 | { 11 | //public override double DispelDifficulty{ get{ return 117.5; } } 12 | //public override double DispelFocus{ get{ return 45.0; } } 13 | 14 | [Constructable] 15 | public ShameEarthElemental () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 16 | { 17 | Name = "an earth elemental"; 18 | Body = 14; 19 | BaseSoundID = 268; 20 | 21 | SetStr( 130, 155 ); 22 | SetDex( 65, 75 ); 23 | SetInt( 75, 95 ); 24 | 25 | SetHits( 330, 350 ); 26 | 27 | SetDamage( 11, 13 ); 28 | 29 | SetDamageType( ResistanceType.Physical, 100 ); 30 | 31 | SetResistance( ResistanceType.Physical, 30, 35 ); 32 | SetResistance( ResistanceType.Fire, 25, 30 ); 33 | SetResistance( ResistanceType.Cold, 25, 30 ); 34 | SetResistance( ResistanceType.Poison, 25, 30 ); 35 | SetResistance( ResistanceType.Energy, 20, 25 ); 36 | 37 | SetSkill( SkillName.MagicResist, 65.0, 85.0 ); 38 | SetSkill( SkillName.Tactics, 65.0, 90.0 ); 39 | SetSkill( SkillName.Wrestling, 80.0, 85.0 ); 40 | 41 | Fame = 3500; 42 | Karma = -3500; 43 | 44 | VirtualArmor = 34; 45 | //ControlSlots = 2; 46 | 47 | //PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); 48 | //PackItem( new IronOre( 3 ) ); // TODO: Five small iron ore 49 | //PackItem( new MandrakeRoot() ); 50 | // shame crystal 51 | } 52 | 53 | public override void GenerateLoot() 54 | { 55 | AddLoot( LootPack.Average ); 56 | AddLoot( LootPack.Meager ); 57 | AddLoot( LootPack.Gems ); 58 | } 59 | 60 | /* public override void OnDeath(Container c) 61 | { 62 | base.OnDeath(c); 63 | 64 | if (Utility.RandomDouble() < 0.30) 65 | { 66 | switch (Utility.Random(1)) 67 | { 68 | case 0: c.DropItem(new ShameCrystal()); break; 69 | 70 | } 71 | } 72 | } 73 | */ 74 | public override bool BleedImmune{ get{ return true; } } 75 | public override int TreasureMapLevel{ get{ return 1; } } 76 | 77 | public ShameEarthElemental ( Serial serial ) : base( serial ) 78 | { 79 | } 80 | 81 | public override void Serialize( GenericWriter writer ) 82 | { 83 | base.Serialize( writer ); 84 | writer.Write( (int) 0 ); 85 | } 86 | 87 | public override void Deserialize( GenericReader reader ) 88 | { 89 | base.Deserialize( reader ); 90 | int version = reader.ReadInt(); 91 | } 92 | } 93 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameKraken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a krakens corpse" )] 9 | public class ShameKraken : BaseCreature 10 | { 11 | [Constructable] 12 | public ShameKraken () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 13 | { 14 | Name = "a kraken"; 15 | Body = 77; 16 | BaseSoundID = 353; 17 | 18 | SetStr( 756, 780 ); 19 | SetDex( 226, 245 ); 20 | SetInt( 26, 40 ); 21 | 22 | SetHits( 454, 468 ); 23 | SetMana( 0 ); 24 | 25 | SetDamage( 19, 33 ); 26 | 27 | SetDamageType( ResistanceType.Physical, 70 ); 28 | SetDamageType( ResistanceType.Cold, 30 ); 29 | 30 | SetResistance( ResistanceType.Physical, 45, 55 ); 31 | SetResistance( ResistanceType.Fire, 30, 40 ); 32 | SetResistance( ResistanceType.Cold, 30, 40 ); 33 | SetResistance( ResistanceType.Poison, 20, 30 ); 34 | SetResistance( ResistanceType.Energy, 10, 20 ); 35 | 36 | SetSkill( SkillName.MagicResist, 15.1, 20.0 ); 37 | SetSkill( SkillName.Tactics, 45.1, 60.0 ); 38 | SetSkill( SkillName.Wrestling, 45.1, 60.0 ); 39 | 40 | Fame = 11000; 41 | Karma = -11000; 42 | 43 | VirtualArmor = 50; 44 | 45 | CanSwim = true; 46 | CantWalk = true; 47 | 48 | Rope rope = new Rope(); 49 | rope.ItemID = 0x14F8; 50 | PackItem( rope ); 51 | 52 | if( Utility.RandomDouble() < .05 ) 53 | PackItem( new MessageInABottle() ); 54 | 55 | PackItem( new SpecialFishingNet() ); //Confirm? 56 | } 57 | 58 | public override void GenerateLoot() 59 | { 60 | AddLoot( LootPack.Rich ); 61 | } 62 | 63 | public override int TreasureMapLevel{ get{ return 4; } } 64 | 65 | public ShameKraken( Serial serial ) : base( serial ) 66 | { 67 | } 68 | 69 | public override void Serialize( GenericWriter writer ) 70 | { 71 | base.Serialize( writer ); 72 | writer.Write( (int) 0 ); 73 | } 74 | 75 | public override void Deserialize( GenericReader reader ) 76 | { 77 | base.Deserialize( reader ); 78 | int version = reader.ReadInt(); 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShamePoisonElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "a poison elementals corpse" )] 8 | public class ShamePoisonElemental : BaseCreature 9 | { 10 | [Constructable] 11 | public ShamePoisonElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 12 | { 13 | Name = "a poison elemental"; 14 | Body = 162; 15 | BaseSoundID = 263; 16 | 17 | SetStr( 445, 475 ); 18 | SetDex( 170, 175 ); 19 | SetInt( 405, 435 ); 20 | 21 | SetHits( 980, 1020 ); 22 | 23 | SetDamage( 16, 19 ); 24 | 25 | SetDamageType( ResistanceType.Physical, 10 ); 26 | SetDamageType( ResistanceType.Poison, 90 ); 27 | 28 | 29 | 30 | SetResistance( ResistanceType.Physical, 65, 75 ); 31 | SetResistance( ResistanceType.Fire, 50, 55 ); 32 | SetResistance( ResistanceType.Cold, 50, 55 ); 33 | SetResistance( ResistanceType.Poison, 100 ); 34 | SetResistance( ResistanceType.Energy, 40, 50 ); 35 | 36 | SetSkill( SkillName.EvalInt, 90.0, 100.0 ); 37 | SetSkill( SkillName.Magery, 95.0, 105.0 ); 38 | SetSkill( SkillName.Meditation, 105.0, 120.0 ); 39 | SetSkill( SkillName.Poisoning, 90.1, 100.0 ); 40 | SetSkill( SkillName.MagicResist, 110.0, 120.0 ); 41 | SetSkill( SkillName.Tactics, 95.0, 115.0 ); 42 | SetSkill( SkillName.Wrestling, 100.0, 115.0 ); 43 | 44 | Fame = 12500; 45 | Karma = -12500; 46 | 47 | VirtualArmor = 70; 48 | 49 | PackItem( new Nightshade( 4 ) ); 50 | PackItem( new LesserPoisonPotion() ); 51 | } 52 | 53 | public override void GenerateLoot() 54 | { 55 | AddLoot( LootPack.FilthyRich ); 56 | AddLoot( LootPack.Rich ); 57 | AddLoot( LootPack.MedScrolls ); 58 | } 59 | 60 | public override bool BleedImmune{ get{ return true; } } 61 | public override Poison PoisonImmune{ get{ return Poison.Lethal; } } 62 | 63 | public override Poison HitPoison{ get{ return Poison.Lethal; } } 64 | public override double HitPoisonChance{ get{ return 0.75; } } 65 | 66 | public override int TreasureMapLevel{ get{ return 5; } } 67 | 68 | public ShamePoisonElemental ( Serial serial ) : base( serial ) 69 | { 70 | } 71 | 72 | public override void Serialize( GenericWriter writer ) 73 | { 74 | base.Serialize( writer ); 75 | writer.Write( (int) 0 ); 76 | } 77 | 78 | public override void Deserialize( GenericReader reader ) 79 | { 80 | base.Deserialize( reader ); 81 | int version = reader.ReadInt(); 82 | } 83 | } 84 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameScorpion.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a scorpion corpse" )] 9 | public class ShameScorpion : BaseCreature 10 | { 11 | [Constructable] 12 | public ShameScorpion () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 13 | { 14 | Name = "a scorpion"; 15 | Body = 48; 16 | BaseSoundID = 397; 17 | 18 | SetStr( 73, 115 ); 19 | SetDex( 76, 95 ); 20 | SetInt( 16, 30 ); 21 | 22 | SetHits( 50, 63 ); 23 | SetMana( 0 ); 24 | 25 | SetDamage( 5, 10 ); 26 | 27 | SetDamageType( ResistanceType.Physical, 60 ); 28 | SetDamageType( ResistanceType.Poison, 40 ); 29 | 30 | SetResistance( ResistanceType.Physical, 20, 25 ); 31 | SetResistance( ResistanceType.Fire, 10, 15 ); 32 | SetResistance( ResistanceType.Cold, 20, 25 ); 33 | SetResistance( ResistanceType.Poison, 40, 50 ); 34 | SetResistance( ResistanceType.Energy, 10, 15 ); 35 | 36 | SetSkill( SkillName.Poisoning, 80.1, 100.0 ); 37 | SetSkill( SkillName.MagicResist, 30.1, 35.0 ); 38 | SetSkill( SkillName.Tactics, 60.3, 75.0 ); 39 | SetSkill( SkillName.Wrestling, 50.3, 65.0 ); 40 | 41 | Fame = 2000; 42 | Karma = -2000; 43 | 44 | VirtualArmor = 28; 45 | 46 | Tamable = true; 47 | ControlSlots = 1; 48 | MinTameSkill = 47.1; 49 | 50 | PackItem( new LesserPoisonPotion() ); 51 | } 52 | 53 | public override void GenerateLoot() 54 | { 55 | AddLoot( LootPack.Meager ); 56 | } 57 | 58 | public override int Meat{ get{ return 1; } } 59 | public override FoodType FavoriteFood{ get{ return FoodType.Meat; } } 60 | public override PackInstinct PackInstinct{ get{ return PackInstinct.Arachnid; } } 61 | public override Poison PoisonImmune{ get{ return Poison.Greater; } } 62 | public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } } 63 | 64 | public ShameScorpion ( Serial serial ) : base( serial ) 65 | { 66 | } 67 | 68 | public override void Serialize( GenericWriter writer ) 69 | { 70 | base.Serialize( writer ); 71 | writer.Write( (int) 0 ); 72 | } 73 | 74 | public override void Deserialize( GenericReader reader ) 75 | { 76 | base.Deserialize( reader ); 77 | int version = reader.ReadInt(); 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameSeaSerpent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "a sea serpents corpse" )] 8 | [TypeAlias( "Server.Mobiles.Seaserpant" )] 9 | public class ShameSeaSerpent : BaseCreature 10 | { 11 | [Constructable] 12 | public ShameSeaSerpent () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 13 | { 14 | Name = "a sea serpent"; 15 | Body = 150; 16 | BaseSoundID = 447; 17 | 18 | Hue = Utility.Random( 0x530, 9 ); 19 | 20 | SetStr( 168, 225 ); 21 | SetDex( 58, 85 ); 22 | SetInt( 53, 95 ); 23 | 24 | SetHits( 110, 127 ); 25 | 26 | SetDamage( 7, 13 ); 27 | 28 | SetDamageType( ResistanceType.Physical, 100 ); 29 | 30 | SetResistance( ResistanceType.Physical, 25, 35 ); 31 | SetResistance( ResistanceType.Fire, 50, 60 ); 32 | SetResistance( ResistanceType.Cold, 30, 40 ); 33 | SetResistance( ResistanceType.Poison, 30, 40 ); 34 | SetResistance( ResistanceType.Energy, 15, 20 ); 35 | 36 | SetSkill( SkillName.MagicResist, 60.1, 75.0 ); 37 | SetSkill( SkillName.Tactics, 60.1, 70.0 ); 38 | SetSkill( SkillName.Wrestling, 60.1, 70.0 ); 39 | 40 | Fame = 6000; 41 | Karma = -6000; 42 | 43 | VirtualArmor = 30; 44 | CanSwim = true; 45 | CantWalk = true; 46 | 47 | if ( Utility.RandomBool() ) 48 | PackItem( new SulfurousAsh( 4 ) ); 49 | else 50 | PackItem( new BlackPearl( 4 ) ); 51 | 52 | PackItem( new RawFishSteak() ); 53 | 54 | //PackItem( new SpecialFishingNet() ); 55 | } 56 | 57 | public override void GenerateLoot() 58 | { 59 | AddLoot( LootPack.Meager ); 60 | } 61 | 62 | public override bool HasBreath{ get{ return true; } } 63 | public override int TreasureMapLevel{ get{ return 2; } } 64 | 65 | public override int Hides{ get{ return 10; } } 66 | public override HideType HideType{ get{ return HideType.Horned; } } 67 | public override int Scales{ get{ return 8; } } 68 | public override ScaleType ScaleType{ get{ return ScaleType.Blue; } } 69 | 70 | public ShameSeaSerpent ( Serial serial ) : base( serial ) 71 | { 72 | } 73 | 74 | public override void Serialize( GenericWriter writer ) 75 | { 76 | base.Serialize( writer ); 77 | writer.Write( (int) 0 ); 78 | } 79 | 80 | public override void Deserialize( GenericReader reader ) 81 | { 82 | base.Deserialize( reader ); 83 | int version = reader.ReadInt(); 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/ShameWaterElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | namespace Server.Mobiles 6 | { 7 | [CorpseName( "a water elemental corpse" )] 8 | public class ShameWaterElemental : BaseCreature 9 | { 10 | //public override double DispelDifficulty{ get{ return 117.5; } } 11 | //public override double DispelFocus{ get{ return 45.0; } } 12 | 13 | [Constructable] 14 | public ShameWaterElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 15 | { 16 | Name = "a water elemental"; 17 | Body = 16; 18 | BaseSoundID = 278; 19 | 20 | SetStr( 126, 155 ); 21 | SetDex( 66, 85 ); 22 | SetInt( 101, 125 ); 23 | 24 | SetHits( 570, 595 ); 25 | 26 | SetDamage( 14, 16 ); 27 | 28 | SetDamageType( ResistanceType.Physical, 50); 29 | SetDamageType( ResistanceType.Cold, 50 ); 30 | 31 | SetResistance( ResistanceType.Physical, 35, 45 ); 32 | SetResistance( ResistanceType.Fire, 45, 50 ); 33 | SetResistance( ResistanceType.Cold, 53, 58 ); 34 | SetResistance( ResistanceType.Poison, 70, 75 ); 35 | SetResistance( ResistanceType.Energy, 40, 50 ); 36 | 37 | SetSkill( SkillName.EvalInt, 91.0, 95.0 ); 38 | SetSkill( SkillName.Magery, 96.0, 105.0 ); 39 | SetSkill( SkillName.MagicResist, 100.0, 105.0 ); 40 | SetSkill( SkillName.Tactics, 99.0, 110.0 ); 41 | SetSkill( SkillName.Wrestling, 95.0, 103.1 ); 42 | 43 | Fame = 4500; 44 | Karma = -4500; 45 | 46 | VirtualArmor = 40; 47 | //ControlSlots = 3; 48 | CanSwim = true; 49 | 50 | PackItem( new BlackPearl( 3 ) ); 51 | } 52 | 53 | public override void GenerateLoot() 54 | { 55 | AddLoot( LootPack.Average ); 56 | AddLoot( LootPack.Meager ); 57 | AddLoot( LootPack.Potions ); 58 | } 59 | 60 | public override bool BleedImmune{ get{ return true; } } 61 | public override int TreasureMapLevel{ get{ return 2; } } 62 | 63 | public ShameWaterElemental ( Serial serial ) : base( serial ) 64 | { 65 | } 66 | 67 | public override void Serialize( GenericWriter writer ) 68 | { 69 | base.Serialize( writer ); 70 | writer.Write( (int) 0 ); 71 | } 72 | 73 | public override void Deserialize( GenericReader reader ) 74 | { 75 | base.Deserialize( reader ); 76 | int version = reader.ReadInt(); 77 | } 78 | } 79 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/StoneElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server.Items; 4 | using Server.Targeting; 5 | 6 | /* to do 7 | Stunning Blow, at about 35% health it goes into a rage, at which point it has a good chance of dealing out hits with "stunning force" which leave the player paralyzed and unable to move, attack or cast for about 5 seconds. 8 | */ 9 | 10 | 11 | namespace Server.Mobiles 12 | { 13 | [CorpseName( "a stone elemental corpse" )] 14 | public class StoneElemental : BaseCreature 15 | { 16 | public override double DispelDifficulty{ get{ return 117.5; } } 17 | public override double DispelFocus{ get{ return 45.0; } } 18 | 19 | [Constructable] 20 | public StoneElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 21 | { 22 | Name = "a stone elemental"; 23 | Body = 14; 24 | BaseSoundID = 268; 25 | Hue= 741; 26 | 27 | SetStr( 163, 184 ); 28 | SetDex( 85, 105 ); 29 | SetInt( 97, 115 ); 30 | 31 | SetHits( 925, 975 ); 32 | 33 | SetDamage( 15, 17 ); 34 | 35 | SetDamageType( ResistanceType.Physical, 100 ); 36 | 37 | SetResistance( ResistanceType.Physical, 60, 65 ); 38 | SetResistance( ResistanceType.Fire, 45, 50 ); 39 | SetResistance( ResistanceType.Cold, 45, 50 ); 40 | SetResistance( ResistanceType.Poison, 55, 60 ); 41 | SetResistance( ResistanceType.Energy, 40, 45 ); 42 | 43 | SetSkill( SkillName.MagicResist, 100.0 ); 44 | SetSkill( SkillName.Tactics, 85.9, 95.0 ); 45 | SetSkill( SkillName.Wrestling, 85.0, 95.3 ); 46 | 47 | Fame = 4000; 48 | Karma = -4000; 49 | 50 | VirtualArmor = 34; 51 | ControlSlots = 2; 52 | 53 | //PackItem( new FertileDirt( Utility.RandomMinMax( 1, 4 ) ) ); 54 | //PackItem( new IronOre( 3 ) ); // TODO: Five small iron ore 55 | //PackItem( new MandrakeRoot() ); 56 | 57 | //shamecrystal 58 | } 59 | 60 | public override void GenerateLoot() 61 | { 62 | AddLoot( LootPack.Average ); 63 | AddLoot( LootPack.Meager ); 64 | AddLoot( LootPack.Gems ); 65 | } 66 | 67 | public override bool BleedImmune{ get{ return true; } } 68 | public override int TreasureMapLevel{ get{ return 1; } } 69 | 70 | public StoneElemental( Serial serial ) : base( serial ) 71 | { 72 | } 73 | 74 | public override void Serialize( GenericWriter writer ) 75 | { 76 | base.Serialize( writer ); 77 | writer.Write( (int) 0 ); 78 | } 79 | 80 | public override void Deserialize( GenericReader reader ) 81 | { 82 | base.Deserialize( reader ); 83 | int version = reader.ReadInt(); 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/TheBurning.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Misc; 4 | using Server.Items; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a burnt corpse" )] 9 | public class TheBurning : AuraCreature 10 | { 11 | [Constructable] 12 | public TheBurning() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 13 | { 14 | 15 | AuraMessage = "The intense heat is damaging you!"; // // TODO Cliloc support: 1008112 16 | AuraType = ResistanceType.Fire; 17 | MinAuraDelay = 1; 18 | MaxAuraDelay = 3; 19 | MinAuraDamage = 2; 20 | MaxAuraDamage = 4; 21 | AuraRange = 5; 22 | 23 | Title = "the Burning"; 24 | Name = NameList.RandomName( "male" ); 25 | //Title = "Burning"; 26 | Body = 400; 27 | Hue = 1255; 28 | 29 | AddItem( new Robe( Utility.RandomNeutralHue() ) ); 30 | AddItem( new Sandals( Utility.RandomNeutralHue() ) ); 31 | Utility.AssignRandomHair( this ); 32 | Utility.AssignRandomFacialHair( this ); 33 | /* 34 | public virtual int GetHairHue() 35 | { 36 | return Utility.RandomHairHue(); 37 | } 38 | */ 39 | SetStr( 100, 125 ); 40 | SetDex( 91, 115 ); 41 | SetInt( 96, 120 ); 42 | 43 | SetHits( 150, 250 ); 44 | 45 | SetDamage( 8, 15 ); 46 | 47 | SetDamageType( ResistanceType.Physical, 30 ); 48 | SetDamageType( ResistanceType.Fire, 70 ); 49 | 50 | SetResistance( ResistanceType.Physical, 15, 20 ); 51 | SetResistance( ResistanceType.Fire, 100 ); 52 | SetResistance( ResistanceType.Poison, 5, 10 ); 53 | SetResistance( ResistanceType.Energy, 5, 10 ); 54 | 55 | SetSkill( SkillName.EvalInt, 75.1, 100.0 ); 56 | SetSkill( SkillName.Magery, 75.1, 100.0 ); 57 | SetSkill( SkillName.MagicResist, 75.0, 97.5 ); 58 | SetSkill( SkillName.Tactics, 65.0, 87.5 ); 59 | SetSkill( SkillName.Wrestling, 20.2, 60.0 ); 60 | 61 | Fame = 5000; 62 | Karma = -5000; 63 | 64 | VirtualArmor = 36; 65 | PackReg( 6 ); 66 | //PackItem( new Robe( Utility.RandomNeutralHue() ) ); // TODO: Proper hue 67 | //PackItem( new Sandals() ); 68 | } 69 | 70 | public override void GenerateLoot() 71 | { 72 | AddLoot( LootPack.Average ); 73 | AddLoot( LootPack.MedScrolls ); 74 | } 75 | 76 | public override bool CanRummageCorpses{ get{ return true; } } 77 | public override bool AlwaysMurderer{ get{ return true; } } 78 | public override int Meat{ get{ return 1; } } 79 | public override int TreasureMapLevel{ get{ return Core.AOS ? 1 : 0; } } 80 | public override bool HasBreath{ get{ return true; } } // fire breath enabled 81 | 82 | public TheBurning( Serial serial ) : base( serial ) 83 | { 84 | } 85 | 86 | public override void Serialize( GenericWriter writer ) 87 | { 88 | base.Serialize( writer ); 89 | writer.Write( (int) 0 ); 90 | } 91 | 92 | public override void Deserialize( GenericReader reader ) 93 | { 94 | base.Deserialize( reader ); 95 | int version = reader.ReadInt(); 96 | } 97 | } 98 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/TheCrazed.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Misc; 4 | using Server.Items; 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a corpse" )] 9 | public class TheCrazed : BaseCreature 10 | { 11 | 12 | public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Orc; } } 13 | 14 | [Constructable] 15 | public TheCrazed () : base( AIType.AI_Berserk, FightMode.Closest, 15, 5, 0.4, 0.5 ) 16 | { 17 | 18 | 19 | SpeechHue = Utility.RandomDyedHue(); 20 | Name = NameList.RandomName("male"); 21 | Title = "the Crazed"; 22 | Body = 400; 23 | Hue = Utility.RandomNeutralHue(); 24 | AddItem( new Robe( Utility.RandomNeutralHue() ) ); 25 | AddItem( new Sandals( Utility.RandomNeutralHue() ) ); 26 | Utility.AssignRandomHair( this ); 27 | Utility.AssignRandomFacialHair( this ); 28 | //Hue = ; 29 | 30 | SetStr( 100, 125 ); 31 | SetDex( 100, 130 ); 32 | SetInt( 40, 75 ); 33 | 34 | SetHits( 150, 250 ); 35 | 36 | SetDamage( 10, 12 ); 37 | 38 | SetDamageType( ResistanceType.Physical, 100 ); 39 | 40 | 41 | SetResistance( ResistanceType.Physical, 15, 20 ); 42 | SetResistance( ResistanceType.Fire, 100 ); 43 | SetResistance( ResistanceType.Poison, 5, 10 ); 44 | SetResistance( ResistanceType.Energy, 5, 10 ); 45 | 46 | //SetSkill( SkillName.EvalInt, 75.1, 100.0 ); 47 | //SetSkill( SkillName.Magery, 75.1, 100.0 ); 48 | SetSkill( SkillName.MagicResist, 75.0, 97.5 ); 49 | SetSkill( SkillName.Tactics, 65.0, 87.5 ); 50 | SetSkill( SkillName.Wrestling, 20.2, 60.0 ); 51 | 52 | Fame = 5000; 53 | Karma = -5000; 54 | 55 | VirtualArmor = 16; 56 | //PackReg( 6 ); 57 | PackItem( new Robe( Utility.RandomNeutralHue() ) ); // TODO: Proper hue 58 | PackItem( new Sandals() ); 59 | } 60 | 61 | public override void GenerateLoot() 62 | { 63 | AddLoot( LootPack.Average ); 64 | AddLoot( LootPack.MedScrolls ); 65 | } 66 | 67 | public override bool CanRummageCorpses{ get{ return true; } } 68 | public override bool AlwaysMurderer{ get{ return true; } } 69 | public override int Meat{ get{ return 1; } } 70 | public override int TreasureMapLevel{ get{ return Core.AOS ? 1 : 0; } } 71 | 72 | public TheCrazed( Serial serial ) : base( serial ) 73 | { 74 | } 75 | 76 | public override void Serialize( GenericWriter writer ) 77 | { 78 | base.Serialize( writer ); 79 | writer.Write( (int) 0 ); 80 | } 81 | 82 | public override void Deserialize( GenericReader reader ) 83 | { 84 | base.Deserialize( reader ); 85 | int version = reader.ReadInt(); 86 | } 87 | } 88 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/UnboundEnergyVortex.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | using System.Collections; 5 | 6 | /* 7 | Detect Hidden, teleports targets to itself, receives half damage from the summons and pets. 8 | 9 | */ 10 | 11 | namespace Server.Mobiles 12 | { 13 | [CorpseName( "an unbound energy vortex corpse" )] 14 | public class UnboundEnergyVortex : BaseCreature 15 | { 16 | 17 | 18 | [Constructable] 19 | public UnboundEnergyVortex () 20 | : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) 21 | { 22 | Name = "an unbound energy vortex"; 23 | 24 | Body = 164; 25 | 26 | 27 | SetStr( 450 ); 28 | SetDex( 200 ); 29 | SetInt( 100 ); 30 | 31 | SetHits( 20000); 32 | SetStam( 250 ); 33 | SetMana( 0 ); 34 | 35 | SetDamage( 21, 23 ); 36 | 37 | SetDamageType( ResistanceType.Physical, 0 ); 38 | SetDamageType( ResistanceType.Energy, 100 ); 39 | 40 | SetResistance( ResistanceType.Physical, 60, 70 ); 41 | SetResistance( ResistanceType.Fire, 65, 75 ); 42 | SetResistance( ResistanceType.Cold, 65, 75 ); 43 | SetResistance( ResistanceType.Poison, 55, 65 ); 44 | SetResistance( ResistanceType.Energy, 100 ); 45 | 46 | SetSkill( SkillName.MagicResist, 100.0, 105.0 ); 47 | SetSkill( SkillName.Tactics, 115.0, 130.0 ); 48 | SetSkill( SkillName.Wrestling, 125.0, 135.0 ); 49 | 50 | Fame = 22500; 51 | Karma = -22500; 52 | 53 | VirtualArmor = 40; 54 | 55 | } 56 | 57 | public override void GenerateLoot() 58 | { 59 | AddLoot( LootPack.FilthyRich ); 60 | AddLoot( LootPack.Rich ); 61 | //5 Crystal of Shame, 4 Void Core, 1 Imbuing Ingredient, Gold 891 62 | } 63 | 64 | 65 | public override bool BleedImmune{ get{ return true; } } 66 | public override Poison PoisonImmune { get { return Poison.Lethal; } } 67 | 68 | public override int GetAngerSound() 69 | { 70 | return 0x15; 71 | } 72 | 73 | public override int GetAttackSound() 74 | { 75 | return 0x28; 76 | } 77 | 78 | 79 | 80 | 81 | public UnboundEnergyVortex ( Serial serial ) 82 | : base( serial ) 83 | { 84 | } 85 | 86 | public override void Serialize( GenericWriter writer ) 87 | { 88 | base.Serialize( writer ); 89 | 90 | writer.Write( (int) 0 ); // version 91 | } 92 | 93 | public override void Deserialize( GenericReader reader ) 94 | { 95 | base.Deserialize( reader ); 96 | 97 | int version = reader.ReadInt(); 98 | 99 | if ( BaseSoundID == 263 ) 100 | BaseSoundID = 0; 101 | } 102 | } 103 | } -------------------------------------------------------------------------------- /ShameRevamp/Mobiles/WindElemental.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | using Server.Items; 4 | 5 | 6 | namespace Server.Mobiles 7 | { 8 | [CorpseName( "a wind elemental corpse" )] 9 | public class WindElemental : BaseCreature 10 | { 11 | [Constructable] 12 | public WindElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 ) 13 | { 14 | Name = "a wind elemental"; 15 | Body = 131; 16 | BaseSoundID = 768; 17 | SetStr( 376, 403 ); 18 | SetDex( 183, 230 ); 19 | SetInt( 164, 213 ); 20 | SetHits( 2500, 2600 ); 21 | SetDamage( 15, 17 ); 22 | SetDamageType( ResistanceType.Physical, 20 ); 23 | SetDamageType( ResistanceType.Cold, 40 ); 24 | SetDamageType( ResistanceType.Energy, 40 ); 25 | SetResistance( ResistanceType.Physical, 65, 75 ); 26 | SetResistance( ResistanceType.Fire, 55, 65 ); 27 | SetResistance( ResistanceType.Cold, 55, 65 ); 28 | SetResistance( ResistanceType.Poison, 100 ); 29 | SetResistance( ResistanceType.Energy, 60, 75 ); 30 | SetSkill( SkillName.EvalInt, 60.1, 75.0 ); 31 | SetSkill( SkillName.Magery, 60.1, 75.0 ); 32 | SetSkill( SkillName.MagicResist, 60.1, 75.0 ); 33 | SetSkill( SkillName.Tactics, 60.1, 75.0 ); 34 | SetSkill( SkillName.Wrestling, 60.1, 80.0 ); 35 | Fame = 4500; 36 | Karma = -4500; 37 | VirtualArmor = 56; 38 | } 39 | public override void GenerateLoot() 40 | { 41 | AddLoot( LootPack.Rich ); 42 | AddLoot( LootPack.Average ); 43 | AddLoot( LootPack.Gems ); 44 | if ( 0.02 > Utility.RandomDouble() ) 45 | { 46 | switch ( Utility.Random( 5 ) ) 47 | { 48 | case 0: PackItem( new DaemonArms() ); break; 49 | case 1: PackItem( new DaemonChest() ); break; 50 | case 2: PackItem( new DaemonGloves() ); break; 51 | case 3: PackItem( new DaemonLegs() ); break; 52 | case 4: PackItem( new DaemonHelm() ); break; 53 | } 54 | } 55 | } 56 | public override int TreasureMapLevel{ get{ return Core.AOS ? 4 : 5; } } 57 | public WindElemental ( Serial serial ) : base( serial ) 58 | { 59 | } 60 | public override void Serialize( GenericWriter writer ) 61 | { 62 | base.Serialize( writer ); 63 | writer.Write( (int) 0 ); 64 | } 65 | public override void Deserialize( GenericReader reader ) 66 | { 67 | base.Deserialize( reader ); 68 | int version = reader.ReadInt(); 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /ShameRevamp/ShameCrystal1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | 4 | namespace Server.Items 5 | { 6 | public class ShameCrystal : Item 7 | { 8 | [Constructable] 9 | public ShameCrystal() : this( 1 ) {} 10 | 11 | [Constructable] 12 | public ShameCrystal(int amount) : this( amount, 0x0F89 ) {} 13 | 14 | [Constructable] 15 | public ShameCrystal( int amount, int itemID ) : base( 0x0F89 ) 16 | { 17 | Name = "Crystal fragments of Shame"; 18 | Weight = 1; 19 | Hue = 1278; 20 | Stackable = true; 21 | ItemID = itemID; 22 | Amount = amount; 23 | } 24 | 25 | public ShameCrystal( Serial serial ) : base( serial ) 26 | { 27 | } 28 | 29 | public override void Serialize( GenericWriter writer ) 30 | { 31 | base.Serialize( writer ); 32 | 33 | writer.Write( (int) 0 ); // version 34 | } 35 | 36 | public override void Deserialize( GenericReader reader ) 37 | { 38 | base.Deserialize( reader ); 39 | 40 | int version = reader.ReadInt(); 41 | } 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /ShameRevamp/ShameCrystal1.cs.bak: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server; 3 | 4 | namespace Server.Items 5 | { 6 | public class ShameCrystal : Item 7 | { 8 | [Constructable] 9 | public ShameCrystal() : this( 1 ) {} 10 | 11 | //[Constructable] 12 | //public ShameCrystal(int amount) : this( amount, 0x0F89 ) {} 13 | 14 | [Constructable] 15 | public ShameCrystal( int amount, int itemID ) : base( 0x0F89 ) 16 | { 17 | Name = "Crystal fragments of Shame"; 18 | Weight = 1; 19 | Hue = 1278; 20 | Stackable = true; 21 | ItemID = itemID; 22 | Amount = amount; 23 | } 24 | 25 | public ShameCrystal( Serial serial ) : base( serial ) 26 | { 27 | } 28 | 29 | public override void Serialize( GenericWriter writer ) 30 | { 31 | base.Serialize( writer ); 32 | 33 | writer.Write( (int) 0 ); // version 34 | } 35 | 36 | public override void Deserialize( GenericReader reader ) 37 | { 38 | base.Deserialize( reader ); 39 | 40 | int version = reader.ReadInt(); 41 | } 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /SimpleChat: -------------------------------------------------------------------------------- 1 | //https://raw.githubusercontent.com/felladrin/runuo-custom-scripts/master/Unique%20Character%20Names/UniqueCharacterNames.cs 2 | static bool HasValidName(Mobile m) 3 | { 4 | if (m.AccessLevel != AccessLevel.Player) 5 | return true; 6 | 7 | if (m.RawName == null || m.RawName.Trim() == String.Empty || m.RawName == "Generic Player" || !NameVerification.Validate(m.RawName, 2, 16, true, false, true, 1, NameVerification.SpaceDashPeriodQuote)) 8 | return false; 9 | 10 | foreach (Mobile otherPlayer in World.Mobiles.Values) 11 | if (otherPlayer is PlayerMobile && otherPlayer != m && otherPlayer.RawName != null && m.RawName != null && otherPlayer.RawName.ToLower() == m.RawName.ToLower() && m.CreationTime > otherPlayer.CreationTime) 12 | return false; 13 | 14 | return true; 15 | } 16 | 17 | //https://github.com/ggobbe/vivre-uo/tree/50c68c7a81d01b789bea7a12dfd3de07a0367531/Scripts/Customs/KniveChat 18 | 19 | //World.Broadcast(0x35, true, "The world will save in {0} minute{1}.", m, m != 1 ? "s" : ""); 20 | 21 | /* 22 | [Usage("SMsg ")] 23 | [Aliases("S", "SM")] 24 | [Description("Broadcasts a message to all online staff.")] 25 | public static void StaffMessage_OnCommand(CommandEventArgs e) 26 | { 27 | BroadcastMessage(AccessLevel.Counselor, e.Mobile.SpeechHue, String.Format("[{0}] {1}", e.Mobile.Name, e.ArgString)); 28 | } 29 | 30 | [Usage("BCast ")] 31 | [Aliases("B", "BC")] 32 | [Description("Broadcasts a message to everyone online.")] 33 | public static void BroadcastMessage_OnCommand(CommandEventArgs e) 34 | { 35 | BroadcastMessage(AccessLevel.Player, 0x482, String.Format("Staff message from {0}:", e.Mobile.Name)); 36 | BroadcastMessage(AccessLevel.Player, 0x482, e.ArgString); 37 | } 38 | 39 | public static void BroadcastMessage(AccessLevel ac, int hue, string message) 40 | { 41 | foreach (NetState state in NetState.Instances) 42 | { 43 | Mobile m = state.Mobile; 44 | 45 | if (m != null && m.AccessLevel >= ac) 46 | m.SendMessage(hue, message); 47 | } 48 | } 49 | 50 | */ 51 | 52 | PmRead( PlayerMobile from, string msg ) 53 | -------------------------------------------------------------------------------- /SmartItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Server.Items; 3 | 4 | namespace Server.Items 5 | { 6 | public abstract class SmartItem : Item 7 | { 8 | public double mDelay; 9 | private Timer mUpdateTimer; 10 | 11 | [Constructable] 12 | public SmartItem(int itemID, double delay ) : base ( itemID ) 13 | { 14 | mDelay = delay; 15 | Timer.DelayCall(TimeSpan.Zero, OnCreate); 16 | 17 | this.mUpdateTimer = new UpdateTimer(this, mDelay ); 18 | this.mUpdateTimer.Start(); 19 | 20 | } 21 | 22 | public virtual void OnThink(){} 23 | 24 | public abstract void OnThink(Mobile m); 25 | 26 | public abstract void OnCreate(); 27 | 28 | 29 | public SmartItem(Serial serial) : base(serial) {} 30 | 31 | public override void Serialize(GenericWriter writer) 32 | { 33 | base.Serialize(writer); 34 | writer.Write((int)0); 35 | 36 | writer.Write( ( double )mDelay ); 37 | } 38 | 39 | public override void Deserialize(GenericReader reader) 40 | { 41 | base.Deserialize(reader); 42 | int version = reader.ReadInt(); 43 | 44 | mDelay = (double) reader.ReadDouble(); 45 | } 46 | 47 | 48 | private class UpdateTimer : Timer 49 | { 50 | private SmartItem mSmartItem; 51 | private double mTimerDelay; 52 | 53 | public UpdateTimer( SmartItem smartitem, double timerdelay ) : base( TimeSpan.FromSeconds( timerdelay ) ) 54 | { 55 | Priority = TimerPriority.FiftyMS; 56 | mSmartItem = smartitem; 57 | mTimerDelay = timerdelay; 58 | } 59 | 60 | protected override void OnTick() { 61 | if( mSmartItem == null || mSmartItem.Deleted ) { Stop(); } 62 | 63 | mSmartItem.OnThink(); 64 | Start(); 65 | } 66 | } 67 | 68 | 69 | } 70 | } -------------------------------------------------------------------------------- /SpeakingSign.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using Server; 4 | using Server.Mobiles; 5 | using Server.Network; 6 | 7 | 8 | /* 9 | Use < [add SpeakingSign "enter custom name" > command to set name of item when creating it. 10 | This allows you to set name with spaces between words, 11 | 12 | */ 13 | 14 | namespace Server.Items 15 | { 16 | [FlipableAttribute( 0x0BCF, 0x0BD0, 0x0BD1, 0x0BD2, 0x1F28, 0x1F29 , 0x1297, 0x1298, 0x1299, 0x129A, 0x129B, 0x129C, 0x129D, 0x129E )] 17 | 18 | public class SpeakingSign : Item 19 | { 20 | private DateTime LastUse; 21 | public virtual TimeSpan Delay{ get{ return TimeSpan.FromMinutes( 2.0 ); } } 22 | public string Message { get; set; } 23 | 24 | [Constructable] 25 | public SpeakingSign( string message ) : base( 0x0BCF ) 26 | { 27 | Movable = false; 28 | Name = "a sign"; 29 | Message = message; 30 | } 31 | 32 | public virtual void HeedWarning() 33 | { 34 | //PublicOverheadMessage( type, hue, number, "" ); 35 | PublicOverheadMessage( MessageType.Regular, 0x3B2, false, String.Format( "{0}", Message) ); 36 | } 37 | 38 | public override bool HandlesOnMovement { get { return true; } } 39 | 40 | public override void OnMovement( Mobile m, Point3D oldLocation ) 41 | { 42 | if ( m.AccessLevel > AccessLevel.Player && m.Hidden ) 43 | return; 44 | 45 | if ( m is PlayerMobile && m.InRange( this, 10 ) ) 46 | { 47 | if ( LastUse + Delay > DateTime.Now ) 48 | { 49 | return; 50 | } 51 | else 52 | { 53 | HeedWarning(); 54 | LastUse = DateTime.Now; 55 | } 56 | } 57 | 58 | } 59 | 60 | public SpeakingSign( Serial serial ) : base( serial ) 61 | { 62 | } 63 | 64 | public override void Serialize( GenericWriter writer ) 65 | { 66 | base.Serialize( writer ); 67 | writer.Write( (int) 0 ); 68 | } 69 | 70 | public override void Deserialize( GenericReader reader ) 71 | { 72 | base.Deserialize( reader ); 73 | int version = reader.ReadInt(); 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /StealableSigns/StealableSign.cs: -------------------------------------------------------------------------------- 1 | using Server.Engines.Craft; 2 | using Server.Mobiles; 3 | using Server.Targeting; 4 | 5 | namespace Server.Items 6 | { 7 | [Flipable(0x1297, 0x1298, 0x1299, 0x129a, 0x129b, 0x129c, 0x129d, 0x129e)] 8 | public class StealableSign : BaseStealableSign 9 | { 10 | [Constructable] 11 | public StealableSign() : base(Utility.RandomList(0x1297, 0x1298, 0x1299, 0x129a, 0x129b, 0x129c, 0x129d, 0x129e)) 12 | { 13 | Name = "to MuMu's Soul"; 14 | Hue = 0; 15 | Weight = 0; 16 | } 17 | 18 | public StealableSign(Serial serial) : base(serial) 19 | { 20 | } 21 | 22 | public override void Serialize(GenericWriter writer) 23 | { 24 | base.Serialize(writer); 25 | 26 | writer.Write(0); // version 27 | } 28 | 29 | public override void Deserialize(GenericReader reader) 30 | { 31 | base.Deserialize(reader); 32 | 33 | int version = reader.ReadInt(); 34 | } 35 | } 36 | } --------------------------------------------------------------------------------