#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,86 @@
using System;
using Server;
using Server.Ethics;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "an evil corpse" )]
public class UnholyFamiliar : BaseCreature
{
public override bool IsDispellable { get { return false; } }
public override bool IsBondable { get { return false; } }
[Constructable]
public UnholyFamiliar()
: base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a dark wolf";
Body = 99;
BaseSoundID = 0xE5;
SetStr( 96, 120 );
SetDex( 81, 105 );
SetInt( 36, 60 );
SetHits( 58, 72 );
SetMana( 0 );
SetDamage( 11, 17 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 20, 25 );
SetResistance( ResistanceType.Fire, 10, 20 );
SetResistance( ResistanceType.Cold, 5, 10 );
SetResistance( ResistanceType.Poison, 5, 10 );
SetResistance( ResistanceType.Energy, 10, 15 );
SetSkill( SkillName.MagicResist, 57.6, 75.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
Fame = 2500;
Karma = 2500;
VirtualArmor = 22;
Tamable = false;
ControlSlots = 1;
}
public override int Meat { get { return 1; } }
public override int Hides { get { return 7; } }
public override FoodType FavoriteFood { get { return FoodType.Meat; } }
public override PackInstinct PackInstinct { get { return PackInstinct.Canine; } }
public UnholyFamiliar( Serial serial )
: base( serial )
{
}
public override string ApplyNameSuffix( string suffix )
{
if ( suffix.Length == 0 )
suffix = Ethic.Evil.Definition.Adjunct.String;
else
suffix = String.Concat( suffix, " ", Ethic.Evil.Definition.Adjunct.String );
return base.ApplyNameSuffix( suffix );
}
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,91 @@
using System;
using Server;
using Server.Mobiles;
using Server.Ethics;
namespace Server.Mobiles
{
[CorpseName( "an unholy corpse" )]
public class UnholySteed : BaseMount
{
public override bool IsDispellable { get { return false; } }
public override bool IsBondable { get { return false; } }
public override bool HasBreath { get { return true; } }
public override bool CanBreath { get { return true; } }
[Constructable]
public UnholySteed()
: base( "a dark steed", 0x74, 0x3EA7, AIType.AI_Melee, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
SetStr( 496, 525 );
SetDex( 86, 105 );
SetInt( 86, 125 );
SetHits( 298, 315 );
SetDamage( 16, 22 );
SetDamageType( ResistanceType.Physical, 40 );
SetDamageType( ResistanceType.Fire, 40 );
SetDamageType( ResistanceType.Energy, 20 );
SetResistance( ResistanceType.Physical, 55, 65 );
SetResistance( ResistanceType.Fire, 30, 40 );
SetResistance( ResistanceType.Cold, 30, 40 );
SetResistance( ResistanceType.Poison, 30, 40 );
SetResistance( ResistanceType.Energy, 20, 30 );
SetSkill( SkillName.MagicResist, 25.1, 30.0 );
SetSkill( SkillName.Tactics, 97.6, 100.0 );
SetSkill( SkillName.Wrestling, 80.5, 92.5 );
Fame = 14000;
Karma = -14000;
VirtualArmor = 60;
Tamable = false;
ControlSlots = 1;
}
public override FoodType FavoriteFood { get { return FoodType.FruitsAndVegies | FoodType.GrainsAndHay; } }
public UnholySteed( Serial serial )
: base( serial )
{
}
public override string ApplyNameSuffix( string suffix )
{
if ( suffix.Length == 0 )
suffix = Ethic.Evil.Definition.Adjunct.String;
else
suffix = String.Concat( suffix, " ", Ethic.Evil.Definition.Adjunct.String );
return base.ApplyNameSuffix( suffix );
}
public override void OnDoubleClick( Mobile from )
{
if ( Ethic.Find( from ) != Ethic.Evil )
from.SendMessage( "You may not ride this steed." );
else
base.OnDoubleClick( from );
}
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();
}
}
}