#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.

This commit is contained in:
WarrentyExpired 2026-08-06 11:06:05 -04:00
parent b51c58f514
commit 3045c83799
3512 changed files with 627673 additions and 0 deletions

View file

@ -0,0 +1,131 @@
using System;
using Server.Items;
namespace Server.Mobiles
{
public class GrimmochDrummel : BaseCreature
{
public override bool ClickTitle{ get{ return false; } }
public override bool ShowFameTitle{ get{ return false; } }
public override bool DeleteCorpseOnDeath{ get{ return true; } }
[Constructable]
public GrimmochDrummel() : base( AIType.AI_Archer, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Title = "the Cursed";
Hue = 0x8596;
Body = 0x190;
Name = "Grimmoch Drummel";
HairItemID = 0x204A; //Krisna
Bow bow = new Bow();
bow.Movable = false;
AddItem( bow );
AddItem( new Boots( 0x8A4 ) );
AddItem( new BodySash( 0x8A4 ) );
Backpack backpack = new Backpack();
backpack.Movable = false;
AddItem( backpack );
LeatherGloves gloves = new LeatherGloves();
LeatherChest chest = new LeatherChest();
gloves.Hue = 0x96F;
chest.Hue = 0x96F;
AddItem( gloves );
AddItem( chest );
SetStr( 111, 120 );
SetDex( 151, 160 );
SetInt( 41, 50 );
SetHits( 180, 207 );
SetMana( 0 );
SetDamage( 13, 16 );
SetResistance( ResistanceType.Physical, 35, 45 );
SetResistance( ResistanceType.Fire, 25, 30 );
SetResistance( ResistanceType.Cold, 45, 55 );
SetResistance( ResistanceType.Poison, 30, 40 );
SetResistance( ResistanceType.Energy, 20, 25 );
SetSkill( SkillName.Archery, 90.1, 110.0 );
SetSkill( SkillName.Swords, 60.1, 70.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 60.1, 70.0 );
SetSkill( SkillName.Anatomy, 90.1, 100.0 );
Fame = 5000;
Karma = -1000;
PackItem( new Arrow( 40 ) );
if ( 3 > Utility.Random( 100 ) )
PackItem( new FireHorn() );
if ( 1 > Utility.Random( 3 ) )
PackItem( Loot.RandomGrimmochJournal() );
}
public override int GetIdleSound()
{
return 0x178;
}
public override int GetAngerSound()
{
return 0x1AC;
}
public override int GetDeathSound()
{
return 0x27E;
}
public override int GetHurtSound()
{
return 0x177;
}
public override bool OnBeforeDeath()
{
Gold gold = new Gold( Utility.RandomMinMax( 190, 230 ) );
gold.MoveToWorld( Location, Map );
Container pack = this.Backpack;
if ( pack != null )
{
pack.Movable = true;
pack.MoveToWorld( Location, Map );
}
Effects.SendLocationEffect( Location, Map, 0x376A, 10, 1 );
return true;
}
public override bool AlwaysMurderer{ get{ return true; } }
public GrimmochDrummel( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,132 @@
using System;
using Server.Items;
namespace Server.Mobiles
{
public class LysanderGathenwale : BaseCreature
{
public override bool ClickTitle{ get{ return false; } }
public override bool ShowFameTitle{ get{ return false; } }
public override bool DeleteCorpseOnDeath{ get{ return true; } }
[Constructable]
public LysanderGathenwale() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Title = "the Cursed";
Hue = 0x8838;
Body = 0x190;
Name = "Lysander Gathenwale";
AddItem( new Boots( 0x599 ) );
AddItem( new Cloak( 0x96F ) );
Spellbook spellbook = new Spellbook();
RingmailGloves gloves = new RingmailGloves();
StuddedChest chest = new StuddedChest();
PlateArms arms = new PlateArms();
spellbook.Hue = 0x599;
gloves.Hue = 0x599;
chest.Hue = 0x96F;
arms.Hue = 0x599;
AddItem( spellbook );
AddItem( gloves );
AddItem( chest );
AddItem( arms );
SetStr( 111, 120 );
SetDex( 71, 80 );
SetInt( 121, 130 );
SetHits( 180, 207 );
SetMana( 227, 265 );
SetDamage( 5, 13 );
SetResistance( ResistanceType.Physical, 35, 45 );
SetResistance( ResistanceType.Fire, 25, 30 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 25, 35 );
SetResistance( ResistanceType.Energy, 25, 35 );
SetSkill( SkillName.Wrestling, 80.1, 90.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 80.1, 90.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.EvalInt, 95.1, 100.0 );
SetSkill( SkillName.Meditation, 90.1, 100.0 );
Fame = 5000;
Karma = -10000;
Item reags = Loot.RandomReagent();
reags.Amount = 30;
PackItem( reags );
}
public override int GetIdleSound()
{
return 0x1CE;
}
public override int GetAngerSound()
{
return 0x1AC;
}
public override int GetDeathSound()
{
return 0x182;
}
public override int GetHurtSound()
{
return 0x28D;
}
public override void GenerateLoot()
{
AddLoot( LootPack.MedScrolls, 2 );
}
public override bool OnBeforeDeath()
{
if ( !base.OnBeforeDeath() )
return false;
if ( Backpack != null )
Backpack.Destroy();
if ( Utility.Random( 3 ) == 0 )
{
BaseBook notebook = Loot.RandomLysanderNotebook();
notebook.MoveToWorld( Location, Map );
}
Effects.SendLocationEffect( Location, Map, 0x376A, 10, 1 );
return true;
}
public override bool AlwaysMurderer{ get{ return true; } }
public LysanderGathenwale( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,111 @@
using System;
using Server.Items;
namespace Server.Mobiles
{
public class MorgBergen : BaseCreature
{
public override bool ClickTitle{ get{ return false; } }
public override bool ShowFameTitle{ get{ return false; } }
public override bool DeleteCorpseOnDeath{ get{ return true; } }
[Constructable]
public MorgBergen() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Title = "the Cursed";
Hue = 0x8596;
Body = 0x190;
Name = "Morg Bergen";
AddItem( new ShortPants( 0x59C ) );
Bardiche bardiche = new Bardiche();
LeatherGloves gloves = new LeatherGloves();
LeatherArms arms = new LeatherArms();
bardiche.Hue = 0x96F; bardiche.Movable = false;
gloves.Hue = 0x96F;
arms.Hue = 0x96F;
AddItem( bardiche );
AddItem( gloves );
AddItem( arms );
SetStr( 111, 120 );
SetDex( 111, 120 );
SetInt( 51, 60 );
SetHits( 180, 207 );
SetMana( 0 );
SetDamage( 9, 17 );
SetDamageType( ResistanceType.Physical, 40 );
SetDamageType( ResistanceType.Cold, 60 );
SetResistance( ResistanceType.Physical, 35, 45 );
SetResistance( ResistanceType.Fire, 25, 30 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 25, 35 );
SetResistance( ResistanceType.Energy, 25, 35 );
SetSkill( SkillName.Swords, 90.1, 100.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 80.1, 90.0 );
SetSkill( SkillName.Anatomy, 90.1, 100.0 );
Fame = 5000;
Karma = -1000;
}
public override int GetIdleSound()
{
return 0x1CE;
}
public override int GetAngerSound()
{
return 0x263;
}
public override int GetDeathSound()
{
return 0x1D1;
}
public override int GetHurtSound()
{
return 0x25E;
}
public override bool OnBeforeDeath()
{
Gold gold = new Gold( Utility.RandomMinMax( 190, 230 ) );
gold.MoveToWorld( Location, Map );
Effects.SendLocationEffect( Location, Map, 0x376A, 10, 1 );
return true;
}
public override bool AlwaysMurderer{ get{ return true; } }
public MorgBergen( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,120 @@
using System;
using Server.Items;
namespace Server.Mobiles
{
public class TavaraSewel : BaseCreature
{
public override bool ClickTitle{ get{ return false; } }
public override bool ShowFameTitle{ get{ return false; } }
public override bool DeleteCorpseOnDeath{ get{ return true; } }
[Constructable]
public TavaraSewel () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Title = "the Cursed";
Hue = 0x8838;
Female = true;
Body = 0x191;
Name = "Tavara Sewel";
AddItem( new Kilt( 0x59C ) );
AddItem( new Sandals( 0x599 ) );
Kryss kryss = new Kryss();
Buckler buckler = new Buckler();
RingmailGloves gloves = new RingmailGloves();
FemalePlateChest chest = new FemalePlateChest();
kryss.Hue = 0x96F; kryss.Movable = false;
buckler.Hue = 0x96F; buckler.Movable = false;
gloves.Hue = 0x599;
chest.Hue = 0x96F;
AddItem( kryss );
AddItem( buckler );
AddItem( gloves );
AddItem( chest );
SetStr( 111, 120 );
SetDex( 111, 120 );
SetInt( 111, 120 );
SetHits( 180, 207 );
SetStam( 126, 150 );
SetMana( 0 );
SetDamage( 13, 16 );
SetResistance( ResistanceType.Physical, 25, 30 );
SetResistance( ResistanceType.Fire, 25, 30 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Poison, 25, 35 );
SetResistance( ResistanceType.Energy, 25, 35 );
SetSkill( SkillName.Fencing, 90.1, 100.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 80.1, 90.0 );
SetSkill( SkillName.Anatomy, 90.1, 100.0 );
Fame = 5000;
Karma = -1000;
}
public override int GetIdleSound()
{
return 0x27F;
}
public override int GetAngerSound()
{
return 0x258;
}
public override int GetDeathSound()
{
return 0x25B;
}
public override int GetHurtSound()
{
return 0x257;
}
public override bool OnBeforeDeath()
{
Gold gold = new Gold( Utility.RandomMinMax( 190, 230 ) );
gold.MoveToWorld( Location, Map );
if ( Utility.Random( 3 ) == 0 )
{
BaseBook journal = Loot.RandomTavarasJournal();
journal.MoveToWorld( Location, Map );
}
Effects.SendLocationEffect( Location, Map, 0x376A, 10, 1 );
return true;
}
public override bool AlwaysMurderer{ get{ return true; } }
public TavaraSewel( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}