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,84 @@
/*Created by Hammerhand*/
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Gumps;
using Server.Misc;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a mutated reindeer corpse" )]
public class BaseMutatedReindeer : BaseCreature
{
public BaseMutatedReindeer() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Title = "the Mutated Reindeer";
Body = 0x313;
SetStr( 600, 750 );
SetDex( 800, 850 );
SetInt( 1000, 1500 );
SetHits( 1500, 2500 );
SetDamage( 25, 90 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 70, 95 );
SetResistance(ResistanceType.Cold, 100, 110);
SetResistance(ResistanceType.Poison, 75, 90);
SetResistance(ResistanceType.Energy, 60, 75);
SetSkill( SkillName.MagicResist, 86.8, 104.5 );
SetSkill( SkillName.Tactics, 99.8, 107.5 );
SetSkill( SkillName.Wrestling, 109.8, 117.5 );
Fame = 1000;
Karma = -1000;
VirtualArmor = 70;
Tamable = false;
}
public BaseMutatedReindeer(Serial serial)
: base(serial)
{
}
public override int GetAttackSound()
{
return 0x82;
}
public override int GetHurtSound()
{
return 0x83;
}
public override int GetDeathSound()
{
return 0x84;
}
public override bool AlwaysMurderer { get { return true; } }
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,117 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
using Server.Misc;
using Server.Mobiles;
namespace Server.Mobiles
{
public class MobileDeleteTime : Timer
{
private Item mob;
public MobileDeleteTime(Item m)
: base(TimeSpan.FromSeconds(15))
{
mob = m;
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
if (mob == null || mob.Deleted)
{
Stop();
return;
}
mob.Delete();
}
}
public class Blitzed : BaseMutatedReindeer
{
[Constructable]
public Blitzed()
{
Name = "Blitzed";
Hue = 1818;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment9());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Blitzed(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();
}
public override bool OnBeforeDeath()
{
// spawn the item
Item item = (Item)Activator.CreateInstance(typeof(Moongate));
Moongate moon = (Moongate)item;
moon.TargetMap = Map.Trammel; //or map
moon.Target = new Point3D(1422, 1697, 0); // Set map X,Y,Z location here
// Map map = Map.Trammel;
Point3D pnt = GetSpawnLocation();
moon.MoveToWorld(pnt, this.Map);
Timer m_timer = new MobileDeleteTime(item);
m_timer.Start();
return base.OnBeforeDeath();
}
//from champspawn.cs
public Point3D GetSpawnLocation()
{
int m_SpawnRange = 2;
Map map = Map;
if (map == null)
return Location;
// Try 20 times to find a spawnable location.
for (int i = 0; i < 20; i++)
{
int x = Location.X + (Utility.Random((m_SpawnRange * 2) + 1) - m_SpawnRange);
int y = Location.Y + (Utility.Random((m_SpawnRange * 2) + 1) - m_SpawnRange);
int z = Map.GetAverageZ(x, y);
if (Map.CanSpawnMobile(new Point2D(x, y), z))
return new Point3D(x, y, z);
}
return Location;
}
}
}

View File

@@ -0,0 +1,208 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Misc;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName("the Anti-Claus")]
public class KrassKringle : BaseCreature
{
public override bool IsScaredOfScaryThings { get { return false; } }
public override bool IsScaryToPets { get { return true; } }
public override bool BardImmune { get { return !Core.SE; } }
public override bool Unprovokable { get { return Core.SE; } }
public override bool Uncalmable { get { return Core.SE; } }
public override Poison PoisonImmune { get { return Poison.Lethal; } }
private static bool m_Talked; // flag to prevent spam
string[] kfcsay = new string[] // things to say while greeting
{
"HoHoHo??? Ha Ha HA!!!!",
"So you think you're GOOD huh?",
"I'm going to feed you to my reindeer!",
};
[Constructable]
public KrassKringle() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "Krass Kringle";
Title = "The Anti Claus";
Female = false;
Body = 0x190;
Hue = 1873;
NameHue = 1272;
FancyShirt shirt = new FancyShirt();
shirt.Hue = 1;
shirt.Movable = false;
AddItem(shirt);
Surcoat surcoat = new Surcoat();
surcoat.Hue = 1;
surcoat.Movable = false;
AddItem(surcoat);
LongPants longpants = new LongPants();
longpants.Hue = 1;
longpants.Movable = false;
AddItem(longpants);
Boots boots = new Boots();
boots.Hue = 1;
boots.Movable = false;
AddItem(boots);
WizardsHat hat = new WizardsHat();
hat.Hue = 1;
hat.Movable = false;
AddItem(hat);
LeatherGloves gloves = new LeatherGloves();
gloves.Hue = 1;
gloves.Movable = false;
AddItem(gloves);
HairItemID = 0x203C;
HairHue = 1153;
FacialHairItemID = 0x204B;
FacialHairHue = 1153;
{
}
SetStr( 410, 580 );
SetDex( 185, 210 );
SetInt( 300, 450 );
SetDamage(40, 75);
SetHits(5000, 10000);
SetMana(5000);
SetResistance(ResistanceType.Physical, 65, 75);
SetResistance(ResistanceType.Fire, 35, 45);
SetResistance(ResistanceType.Cold, 100, 110);
SetResistance(ResistanceType.Poison, 75, 90);
SetResistance(ResistanceType.Energy, 60, 75);
SetSkill( SkillName.Fencing, 96.0, 117.5 );
SetSkill( SkillName.Macing, 95.0, 107.5 );
SetSkill( SkillName.MagicResist, 85.0, 107.5 );
SetSkill( SkillName.Swords, 85.0, 119.5 );
SetSkill( SkillName.Tactics, 95.0, 119.5 );
SetSkill( SkillName.Wrestling, 75.0, 97.5 );
SetSkill(SkillName.Anatomy, 90.1, 100.0);
SetSkill(SkillName.MagicResist, 140.1, 150.0);
SetSkill(SkillName.Necromancy, 100.5, 110.9);
SetSkill(SkillName.Healing, 70.2, 79.4);
Fame = 1000;
Karma = -15000;
VirtualArmor = 72;
switch ( Utility.Random( 7 ))
{
case 0: AddItem( new Longsword() ); break;
case 1: AddItem( new Cutlass() ); break;
case 2: AddItem( new Broadsword() ); break;
case 3: AddItem( new Axe() ); break;
case 4: AddItem( new Club() ); break;
case 5: AddItem( new Dagger() ); break;
case 6: AddItem( new Spear() ); break;
}
}
public override void GenerateLoot()
{
AddLoot(LootPack.UltraRich, 2);
if (m_Spawning)
{
PackItem(new RecipeFragment10());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public override int GetIdleSound()
{
return 0x2F8;
}
public override int GetAttackSound()
{
return 0x2C8;
}
public override int GetHurtSound()
{
return 0x2D1;
}
public override int GetDeathSound()
{
return 0x2F7;
}
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (m_Talked == false)
{
if (m.InRange(this, 4))
{
m_Talked = true;
SayRandom(kfcsay, this);
this.Move(GetDirectionTo(m.Location));
// Start timer to prevent spam
SpamTimer t = new SpamTimer();
t.Start();
}
}
}
private class SpamTimer : Timer
{
public SpamTimer() : base( TimeSpan.FromSeconds( 8 ) )
{
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
m_Talked = false;
}
}
private static void SayRandom( string[] say, Mobile m )
{
m.Say( say[Utility.Random( say.Length )] );
}
public KrassKringle(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,126 @@
/* Created by Hammerhand*/
using System;
using System.Collections;
using System.Collections.Generic;
using Server.Items;
using Server.Targeting;
using Server.ContextMenus;
using Server.Gumps;
using Server.Misc;
using Server.Network;
using Server.Spells;
namespace Server.Mobiles
{
[CorpseName( "Mrs.Claus's Corpse" )]
public class MrsClaus : BaseCreature
{
public virtual bool IsInvulnerable { get { return true; } }
[Constructable]
public MrsClaus()
: base(AIType.AI_Animal, FightMode.None, 10, 1, 0.2, 0.4)
{
InitStats(31, 41, 51);
Name = "Mrs. Claus";
Body = 0x191;
Hue = 1016;
AddItem(new Server.Items.FancyDress(Utility.RandomRedHue()));
AddItem(new Server.Items.Sandals());
int hairHue = 1072;
HairItemID = 0x2046;
Blessed = true;
}
public MrsClaus( Serial serial ) : base( serial ){}
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
{ base.GetContextMenuEntries( from, list );
list.Add( new MrsClausEntry( from, this ) );
}
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();
}
public class MrsClausEntry : ContextMenuEntry
{
private Mobile m_Mobile;
private Mobile m_Giver;
public MrsClausEntry( Mobile from, Mobile giver ) : base( 6146, 3 )
{
m_Mobile = from;
m_Giver = giver;
}
public override void OnClick()
{
if( !( m_Mobile is PlayerMobile ) )return;
PlayerMobile mobile = (PlayerMobile) m_Mobile;
{
if ( ! mobile.HasGump( typeof( MrsClausGump ) ) )
{
mobile.SendGump(new MrsClausGump(mobile));
mobile.AddToBackpack(new RecipeBox());
}
}
}
}
public override bool OnDragDrop( Mobile from, Item dropped )
{
Mobile m = from;
PlayerMobile mobile = m as PlayerMobile;
if ( mobile != null){
if (dropped is SpecialGingerbreadRecipe)
{
if (dropped.Amount != 1)
{
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "This isnt the recipe!", mobile.NetState);
return false;
}
dropped.Delete();
mobile.AddToBackpack(new Gold(20000));
switch (Utility.Random(3))
{
case 0: mobile.AddToBackpack(new SpecialGingerbreadCookie1()); break;
case 1: mobile.AddToBackpack(new SpecialGingerbreadCookie2()); break;
case 2: mobile.AddToBackpack(new SpecialGingerbreadCookie3()); break;
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Thankyou for getting my recipe back! Merry Christmas!", mobile.NetState);
return true;
}
}
else if (dropped is Whip)
{
this.PrivateOverheadMessage(MessageType.Regular, 1153, 1054071, mobile.NetState);
return false;
}
else
{
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "I have no need for this...", mobile.NetState);
}
}
return false;
}
}
}

View File

@@ -0,0 +1,120 @@
/*Created by Hammerhand*/
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a mutated elf corpse" )]
public class MutatedElf : BaseCreature
{
private static bool m_Talked; // flag to prevent spam
string[] kfcsay = new string[] // things to say while greeting
{
"You sweet, me eat!",
"You good, be my food!",
"Fe Fi Fo Fum, you look yum yum!!!",
};
[Constructable]
public MutatedElf () : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "A Mutated Elf";
Body = 53;
BaseSoundID = 427;
Hue = 2001;
SetStr( 767, 945 );
SetDex( 206, 275 );
SetInt( 456, 470 );
SetHits( 1476, 1552 );
SetDamage( 20, 25 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 85, 95 );
SetResistance( ResistanceType.Fire, 30, 40 );
SetResistance( ResistanceType.Cold, 100, 105 );
SetResistance( ResistanceType.Poison, 80, 85 );
SetResistance( ResistanceType.Energy, 70, 75 );
SetSkill( SkillName.MagicResist, 125.1, 140.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.Wrestling, 90.1, 100.0 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override bool AlwaysMurderer { get { return true; } }
public override void OnMovement(Mobile m, Point3D oldLocation)
{
if (m_Talked == false)
{
if (m.InRange(this, 4))
{
m_Talked = true;
SayRandom(kfcsay, this);
this.Move(GetDirectionTo(m.Location));
// Start timer to prevent spam
SpamTimer t = new SpamTimer();
t.Start();
}
}
}
private class SpamTimer : Timer
{
public SpamTimer()
: base(TimeSpan.FromSeconds(8))
{
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
m_Talked = false;
}
}
private static void SayRandom(string[] say, Mobile m)
{
m.Say(say[Utility.Random(say.Length)]);
}
public MutatedElf(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,366 @@
/*Created by Hammerhand*/
using System;
using Server;
using Server.Items;
using Server.Misc;
using Server.Mobiles;
namespace Server.Mobiles
{
public class Adolph : BaseMutatedReindeer
{
[Constructable]
public Adolph()
{
Name = "Adolph";
Hue = 1810;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment1());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Adolph(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();
}
}
public class Masher : BaseMutatedReindeer
{
[Constructable]
public Masher()
{
Name = "Masher";
Hue = 1811;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment2());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Masher(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();
}
}
public class Slasher : BaseMutatedReindeer
{
[Constructable]
public Slasher()
{
Name = "Slasher";
Hue = 1812;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment3());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Slasher(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();
}
}
public class Smasher : BaseMutatedReindeer
{
[Constructable]
public Smasher()
{
Name = "Smasher";
Hue = 1813;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment4());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Smasher(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();
}
}
public class Nixon : BaseMutatedReindeer
{
[Constructable]
public Nixon()
{
Name = "Nixon";
Hue = 1814;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment5());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Nixon(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();
}
}
public class Gromet : BaseMutatedReindeer
{
[Constructable]
public Gromet()
{
Name = "Gromet";
Hue = 1815;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment6());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Gromet(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();
}
}
public class Stupid : BaseMutatedReindeer
{
[Constructable]
public Stupid()
{
Name = "Stupid";
Hue = 1816;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment7());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Stupid(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();
}
}
public class Slaughter : BaseMutatedReindeer
{
[Constructable]
public Slaughter()
{
Name = "Slaughter";
Hue = 1817;
}
public override void GenerateLoot()
{
AddLoot(LootPack.Meager);
if (m_Spawning)
{
PackItem(new RecipeFragment8());
}
}
public override bool AlwaysMurderer
{
get
{
return true;
}
}
public Slaughter(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();
}
}
}