Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,79 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "an ashen corpse" )]
public class AshenArcher : BaseCreature
{
[Constructable]
public AshenArcher() : base( AIType.AI_Archer, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ashen archer";
Body = 148;
BaseSoundID = 451;
Hue = 2021;
SetStr( 176, 180 );
SetDex( 56, 75 );
SetInt( 186, 210 );
SetHits( 96, 110 );
SetDamage( 4, 10 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 5, 10 );
SetResistance( ResistanceType.Fire, 50, 60 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 50, 60 );
SetResistance( ResistanceType.Energy, 30, 40 );
SetSkill( SkillName.Anatomy, 60.2, 100.0 );
SetSkill( SkillName.Archery, 80.1, 90.0 );
SetSkill( SkillName.MagicResist, 65.1, 90.0 );
SetSkill( SkillName.Tactics, 50.1, 75.0 );
SetSkill( SkillName.Wrestling, 50.1, 75.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 38;
AddItem( new Bow() );
PackItem( new Arrow( Utility.RandomMinMax( 150, 170 ) ) );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
}
public override bool BleedImmune{ get{ return true; } }
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public AshenArcher( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,81 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a charred corpse" )]
public class AshenCorpse : BaseCreature
{
[Constructable]
public AshenCorpse() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ashen corpse";
Body = 3;
BaseSoundID = 0x20F3;
Hue = 2021;
SetStr( 171, 200 );
SetDex( 126, 145 );
SetInt( 276, 305 );
SetHits( 103, 120 );
SetDamage( 24, 26 );
SetDamageType( ResistanceType.Physical, 80 );
SetDamageType( ResistanceType.Fire, 20 );
SetResistance( ResistanceType.Physical, 20, 30 );
SetResistance( ResistanceType.Fire, 65, 70 );
SetResistance( ResistanceType.Cold, 60, 70 );
SetResistance( ResistanceType.Poison, 65, 75 );
SetResistance( ResistanceType.Energy, 60, 70 );
SetSkill( SkillName.EvalInt, 100.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.Meditation, 85.1, 95.0 );
SetSkill( SkillName.MagicResist, 80.1, 100.0 );
SetSkill( SkillName.Tactics, 70.1, 90.0 );
Fame = 8000;
Karma = -8000;
VirtualArmor = 50;
PackItem( new GnarledStaff() );
PackNecroReg( 17, 24 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.MedScrolls, 2 );
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override bool CanRummageCorpses{ get{ return true; } }
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override int TreasureMapLevel{ get{ return 3; } }
public AshenCorpse( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,83 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "an ashen corpse" )]
public class AshenHorror : BaseCreature
{
[Constructable]
public AshenHorror() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ashen horror";
Body = Utility.RandomList( 50, 56 );
BaseSoundID = 0x48D;
Hue = 2021;
SetStr( 56, 80 );
SetDex( 56, 75 );
SetInt( 16, 40 );
SetHits( 34, 48 );
SetDamage( 3, 7 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 5, 10 );
SetResistance( ResistanceType.Fire, 55, 60 );
SetResistance( ResistanceType.Cold, 55, 60 );
SetResistance( ResistanceType.Poison, 55, 65 );
SetResistance( ResistanceType.Energy, 35, 45 );
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
SetSkill( SkillName.Tactics, 45.1, 60.0 );
SetSkill( SkillName.Wrestling, 45.1, 55.0 );
Fame = 450;
Karma = -450;
VirtualArmor = 16;
switch ( Utility.Random( 5 ))
{
case 0: PackItem( new BoneArms() ); break;
case 1: PackItem( new BoneChest() ); break;
case 2: PackItem( new BoneGloves() ); break;
case 3: PackItem( new BoneLegs() ); break;
case 4: PackItem( new BoneHelm() ); break;
}
}
public override void GenerateLoot()
{
AddLoot( LootPack.Poor );
}
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lesser; } }
public AshenHorror( Serial serial ) : base( serial )
{
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,88 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "an ashen corpse" )]
public class AshenKnight : BaseCreature
{
[Constructable]
public AshenKnight() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ashen knight";
Body = 147;
BaseSoundID = 451;
Hue = 2021;
SetStr( 146, 180 );
SetDex( 76, 95 );
SetInt( 86, 90 );
SetHits( 118, 130 );
SetDamage( 8, 18 );
SetDamageType( ResistanceType.Physical, 40 );
SetDamageType( ResistanceType.Cold, 60 );
SetResistance( ResistanceType.Physical, 15, 25 );
SetResistance( ResistanceType.Fire, 60, 70 );
SetResistance( ResistanceType.Cold, 60, 70 );
SetResistance( ResistanceType.Poison, 60, 70 );
SetResistance( ResistanceType.Energy, 50, 60 );
SetSkill( SkillName.MagicResist, 65.1, 80.0 );
SetSkill( SkillName.Tactics, 85.1, 100.0 );
SetSkill( SkillName.Wrestling, 85.1, 95.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 40;
switch ( Utility.Random( 6 ) )
{
case 0: PackItem( new PlateArms() ); break;
case 1: PackItem( new PlateChest() ); break;
case 2: PackItem( new PlateGloves() ); break;
case 3: PackItem( new PlateGorget() ); break;
case 4: PackItem( new PlateLegs() ); break;
case 5: PackItem( new PlateHelm() ); break;
}
PackItem( new Scimitar() );
PackItem( new WoodenShield() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
}
public override bool BleedImmune{ get{ return true; } }
public AshenKnight( Serial serial ) : base( serial )
{
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,80 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a burning skeletal corpse" )]
public class BurningArcher : BaseCreature
{
[Constructable]
public BurningArcher() : base( AIType.AI_Archer, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a burning archer";
Body = 148;
BaseSoundID = 451;
Hue = 1256;
SetStr( 176, 180 );
SetDex( 56, 75 );
SetInt( 186, 210 );
SetHits( 96, 110 );
SetDamage( 4, 10 );
SetDamageType( ResistanceType.Physical, 50 );
SetDamageType( ResistanceType.Fire, 50 );
SetResistance( ResistanceType.Physical, 35, 40 );
SetResistance( ResistanceType.Fire, 90, 100 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 20, 30 );
SetResistance( ResistanceType.Energy, 30, 40 );
SetSkill( SkillName.Anatomy, 60.2, 100.0 );
SetSkill( SkillName.Archery, 80.1, 90.0 );
SetSkill( SkillName.MagicResist, 65.1, 90.0 );
SetSkill( SkillName.Tactics, 50.1, 75.0 );
SetSkill( SkillName.Wrestling, 50.1, 75.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 38;
AddItem( new Bow() );
PackItem( new Arrow( Utility.RandomMinMax( 150, 170 ) ) );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
}
public override bool BleedImmune{ get{ return true; } }
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public BurningArcher( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a charred corpse" )]
public class BurningCorpse : BaseCreature
{
[Constructable]
public BurningCorpse() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a burning corpse";
Body = 3;
BaseSoundID = 0x20F3;
Hue = 1256;
SetStr( 171, 200 );
SetDex( 126, 145 );
SetInt( 276, 305 );
SetHits( 103, 120 );
SetDamage( 24, 26 );
SetDamageType( ResistanceType.Physical, 40 );
SetDamageType( ResistanceType.Fire, 50 );
SetDamageType( ResistanceType.Energy, 10 );
SetResistance( ResistanceType.Physical, 40, 60 );
SetResistance( ResistanceType.Fire, 85, 100 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 55, 65 );
SetResistance( ResistanceType.Energy, 40, 50 );
SetSkill( SkillName.EvalInt, 100.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.Meditation, 85.1, 95.0 );
SetSkill( SkillName.MagicResist, 80.1, 100.0 );
SetSkill( SkillName.Tactics, 70.1, 90.0 );
Fame = 8000;
Karma = -8000;
VirtualArmor = 50;
PackItem( new GnarledStaff() );
PackNecroReg( 17, 24 );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.MedScrolls, 2 );
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override bool CanRummageCorpses{ get{ return true; } }
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override int TreasureMapLevel{ get{ return 3; } }
public BurningCorpse( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,84 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a burning dead corpse" )]
public class BurningDead : BaseCreature
{
[Constructable]
public BurningDead() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a burning dead";
Body = Utility.RandomList( 50, 56 );
BaseSoundID = 0x48D;
Hue = 1256;
SetStr( 56, 80 );
SetDex( 56, 75 );
SetInt( 16, 40 );
SetHits( 34, 48 );
SetDamage( 3, 7 );
SetDamageType( ResistanceType.Physical, 40 );
SetDamageType( ResistanceType.Fire, 60 );
SetResistance( ResistanceType.Physical, 15, 20 );
SetResistance( ResistanceType.Fire, 90, 100 );
SetResistance( ResistanceType.Cold, 25, 40 );
SetResistance( ResistanceType.Poison, 25, 35 );
SetResistance( ResistanceType.Energy, 5, 15 );
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
SetSkill( SkillName.Tactics, 45.1, 60.0 );
SetSkill( SkillName.Wrestling, 45.1, 55.0 );
Fame = 450;
Karma = -450;
VirtualArmor = 16;
switch ( Utility.Random( 5 ))
{
case 0: PackItem( new BoneArms() ); break;
case 1: PackItem( new BoneChest() ); break;
case 2: PackItem( new BoneGloves() ); break;
case 3: PackItem( new BoneLegs() ); break;
case 4: PackItem( new BoneHelm() ); break;
}
}
public override void GenerateLoot()
{
AddLoot( LootPack.Poor );
}
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lesser; } }
public BurningDead( Serial serial ) : base( serial )
{
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,88 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "an ironclad burning corpse" )]
public class BurningKnight : BaseCreature
{
[Constructable]
public BurningKnight() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a burning knight";
Body = 147;
BaseSoundID = 451;
Hue = 1256;
SetStr( 196, 250 );
SetDex( 76, 95 );
SetInt( 36, 60 );
SetHits( 118, 150 );
SetDamage( 8, 18 );
SetDamageType( ResistanceType.Physical, 50 );
SetDamageType( ResistanceType.Fire, 50 );
SetResistance( ResistanceType.Physical, 35, 45 );
SetResistance( ResistanceType.Fire, 90, 100 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 20, 30 );
SetResistance( ResistanceType.Energy, 30, 40 );
SetSkill( SkillName.MagicResist, 65.1, 80.0 );
SetSkill( SkillName.Tactics, 85.1, 100.0 );
SetSkill( SkillName.Wrestling, 85.1, 95.0 );
Fame = 3000;
Karma = -3000;
VirtualArmor = 40;
switch ( Utility.Random( 6 ) )
{
case 0: PackItem( new PlateArms() ); break;
case 1: PackItem( new PlateChest() ); break;
case 2: PackItem( new PlateGloves() ); break;
case 3: PackItem( new PlateGorget() ); break;
case 4: PackItem( new PlateLegs() ); break;
case 5: PackItem( new PlateHelm() ); break;
}
PackItem( new Scimitar() );
PackItem( new WoodenShield() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Average );
AddLoot( LootPack.Meager );
}
public override bool BleedImmune{ get{ return true; } }
public BurningKnight( Serial serial ) : base( serial )
{
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,109 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "an othro's corpse" )]
public class Othro : BaseCreature
{
[Constructable]
public Othro() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an othro";
Body = 148;
BaseSoundID = 278;
Hue = 783;
SetStr( 206, 300 );
SetDex( 98, 118 );
SetInt( 966, 1045 );
SetHits( 500, 505 );
SetDamage( 16, 28 );
SetDamageType( ResistanceType.Physical, 20 );
SetDamageType( ResistanceType.Cold, 40 );
SetDamageType( ResistanceType.Energy, 40 );
SetResistance( ResistanceType.Physical, 55, 65 );
SetResistance( ResistanceType.Fire, 25, 30 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 50, 60 );
SetResistance( ResistanceType.Energy, 25, 30 );
SetSkill( SkillName.EvalInt, 120.1, 130.0 );
SetSkill( SkillName.Magery, 120.1, 130.0 );
SetSkill( SkillName.Meditation, 100.1, 101.0 );
SetSkill( SkillName.Poisoning, 100.1, 101.0 );
SetSkill( SkillName.MagicResist, 175.2, 200.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.Wrestling, 75.1, 100.0 );
Fame = 23000;
Karma = -23000;
VirtualArmor = 60;
PackNecroReg( 30, 275 );
}
public override OppositionGroup OppositionGroup
{
get{ return OppositionGroup.FeyAndUndead; }
}
public override int GetIdleSound()
{
return 0x19D;
}
public override int GetAngerSound()
{
return 0x175;
}
public override int GetDeathSound()
{
return 0x108;
}
public override int GetAttackSound()
{
return 0xE2;
}
public override int GetHurtSound()
{
return 0x28B;
}
public override void GenerateLoot()
{
AddLoot( LootPack.FilthyRich, 3 );
AddLoot( LootPack.MedScrolls, 2 );
}
public override bool Unprovokable{ get{ return true; } }
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override int TreasureMapLevel{ get{ return 5; } }
public Othro( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}