#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,60 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public abstract class BaseSpear : BaseMeleeWeapon
{
public override int DefHitSound{ get{ return 0x23C; } }
public override int DefMissSound{ get{ return 0x238; } }
public override SkillName DefSkill{ get{ return SkillName.Fencing; } }
public override WeaponType DefType{ get{ return WeaponType.Piercing; } }
public override WeaponAnimation DefAnimation{ get{ return WeaponAnimation.Pierce2H; } }
public BaseSpear( int itemID ) : base( itemID )
{
}
public BaseSpear( 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();
}
public override void OnHit( Mobile attacker, Mobile defender, double damageBonus )
{
base.OnHit( attacker, defender, damageBonus );
if ( !Core.AOS && Layer == Layer.TwoHanded && (attacker.Skills[SkillName.Anatomy].Value / 400.0) >= Utility.RandomDouble() && Engines.ConPVP.DuelContext.AllowSpecialAbility( attacker, "Paralyzing Blow", false ) )
{
defender.SendMessage( "You receive a paralyzing blow!" ); // Is this not localized?
defender.Freeze( TimeSpan.FromSeconds( 2.0 ) );
attacker.SendMessage( "You deliver a paralyzing blow!" ); // Is this not localized?
attacker.PlaySound( 0x11C );
}
if ( !Core.AOS && Poison != null && PoisonCharges > 0 )
{
--PoisonCharges;
if ( Utility.RandomDouble() >= 0.5 ) // 50% chance to poison
defender.ApplyPoison( attacker, Poison );
}
}
}
}

View file

@ -0,0 +1,53 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0x26BD, 0x26C7 )]
public class BladedStaff : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.ArmorIgnore; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.Dismount; } }
public override int AosStrengthReq{ get{ return 40; } }
public override int AosMinDamage{ get{ return 14; } }
public override int AosMaxDamage{ get{ return 16; } }
public override int AosSpeed{ get{ return 37; } }
public override float MlSpeed{ get{ return 3.00f; } }
public override int OldStrengthReq{ get{ return 40; } }
public override int OldMinDamage{ get{ return 14; } }
public override int OldMaxDamage{ get{ return 16; } }
public override int OldSpeed{ get{ return 37; } }
public override int InitMinHits{ get{ return 21; } }
public override int InitMaxHits{ get{ return 110; } }
public override SkillName DefSkill{ get{ return SkillName.Swords; } }
[Constructable]
public BladedStaff() : base( 0x26BD )
{
Weight = 4.0;
}
public BladedStaff( 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,51 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0x26BF, 0x26C9 )]
public class DoubleBladedStaff : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.DoubleStrike; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.InfectiousStrike; } }
public override int AosStrengthReq{ get{ return 50; } }
public override int AosMinDamage{ get{ return 12; } }
public override int AosMaxDamage{ get{ return 13; } }
public override int AosSpeed{ get{ return 49; } }
public override float MlSpeed{ get{ return 2.25f; } }
public override int OldStrengthReq{ get{ return 50; } }
public override int OldMinDamage{ get{ return 12; } }
public override int OldMaxDamage{ get{ return 13; } }
public override int OldSpeed{ get{ return 49; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 80; } }
[Constructable]
public DoubleBladedStaff() : base( 0x26BF )
{
Weight = 2.0;
}
public DoubleBladedStaff( 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,51 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0x26BE, 0x26C8 )]
public class Pike : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.ParalyzingBlow; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.InfectiousStrike; } }
public override int AosStrengthReq{ get{ return 50; } }
public override int AosMinDamage{ get{ return 14; } }
public override int AosMaxDamage{ get{ return 16; } }
public override int AosSpeed{ get{ return 37; } }
public override float MlSpeed{ get{ return 3.00f; } }
public override int OldStrengthReq{ get{ return 50; } }
public override int OldMinDamage{ get{ return 14; } }
public override int OldMaxDamage{ get{ return 16; } }
public override int OldSpeed{ get{ return 37; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 110; } }
[Constructable]
public Pike() : base( 0x26BE )
{
Weight = 8.0;
}
public Pike( 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,54 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0xE87, 0xE88 )]
public class Pitchfork : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.BleedAttack; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.Dismount; } }
public override int AosStrengthReq{ get{ return 55; } }
public override int AosMinDamage{ get{ return 13; } }
public override int AosMaxDamage{ get{ return 14; } }
public override int AosSpeed{ get{ return 43; } }
public override float MlSpeed{ get{ return 2.50f; } }
public override int OldStrengthReq{ get{ return 15; } }
public override int OldMinDamage{ get{ return 4; } }
public override int OldMaxDamage{ get{ return 16; } }
public override int OldSpeed{ get{ return 45; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 60; } }
[Constructable]
public Pitchfork() : base( 0xE87 )
{
Weight = 11.0;
}
public Pitchfork( 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();
if ( Weight == 10.0 )
Weight = 11.0;
}
}
}

View file

@ -0,0 +1,53 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0x1403, 0x1402 )]
public class ShortSpear : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.ShadowStrike; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.MortalStrike; } }
public override int AosStrengthReq{ get{ return 40; } }
public override int AosMinDamage{ get{ return 10; } }
public override int AosMaxDamage{ get{ return 13; } }
public override int AosSpeed{ get{ return 55; } }
public override float MlSpeed{ get{ return 2.00f; } }
public override int OldStrengthReq{ get{ return 15; } }
public override int OldMinDamage{ get{ return 4; } }
public override int OldMaxDamage{ get{ return 32; } }
public override int OldSpeed{ get{ return 50; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 70; } }
public override WeaponAnimation DefAnimation{ get{ return WeaponAnimation.Pierce1H; } }
[Constructable]
public ShortSpear() : base( 0x1403 )
{
Weight = 4.0;
}
public ShortSpear( 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,51 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0xF62, 0xF63 )]
public class Spear : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.ArmorIgnore; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.ParalyzingBlow; } }
public override int AosStrengthReq{ get{ return 50; } }
public override int AosMinDamage{ get{ return 13; } }
public override int AosMaxDamage{ get{ return 15; } }
public override int AosSpeed{ get{ return 42; } }
public override float MlSpeed{ get{ return 2.75f; } }
public override int OldStrengthReq{ get{ return 30; } }
public override int OldMinDamage{ get{ return 2; } }
public override int OldMaxDamage{ get{ return 36; } }
public override int OldSpeed{ get{ return 46; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 80; } }
[Constructable]
public Spear() : base( 0xF62 )
{
Weight = 7.0;
}
public Spear( 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,59 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0xF62, 0xF63 )]
public class TribalSpear : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.ArmorIgnore; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.ParalyzingBlow; } }
public override int AosStrengthReq{ get{ return 50; } }
public override int AosMinDamage{ get{ return 13; } }
public override int AosMaxDamage{ get{ return 15; } }
public override int AosSpeed{ get{ return 42; } }
public override float MlSpeed{ get{ return 2.75f; } }
public override int OldStrengthReq{ get{ return 30; } }
public override int OldMinDamage{ get{ return 2; } }
public override int OldMaxDamage{ get{ return 36; } }
public override int OldSpeed{ get{ return 46; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 80; } }
public override int VirtualDamageBonus{ get{ return 25; } }
public override string DefaultName
{
get { return "a tribal spear"; }
}
[Constructable]
public TribalSpear() : base( 0xF62 )
{
Weight = 7.0;
Hue = 837;
}
public TribalSpear( 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,56 @@
using System;
using Server.Network;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0x1405, 0x1404 )]
public class WarFork : BaseSpear
{
public override WeaponAbility PrimaryAbility{ get{ return WeaponAbility.BleedAttack; } }
public override WeaponAbility SecondaryAbility{ get{ return WeaponAbility.Disarm; } }
public override int AosStrengthReq{ get{ return 45; } }
public override int AosMinDamage{ get{ return 12; } }
public override int AosMaxDamage{ get{ return 13; } }
public override int AosSpeed{ get{ return 43; } }
public override float MlSpeed{ get{ return 2.50f; } }
public override int OldStrengthReq{ get{ return 35; } }
public override int OldMinDamage{ get{ return 4; } }
public override int OldMaxDamage{ get{ return 32; } }
public override int OldSpeed{ get{ return 45; } }
public override int DefHitSound{ get{ return 0x236; } }
public override int DefMissSound{ get{ return 0x238; } }
public override int InitMinHits{ get{ return 31; } }
public override int InitMaxHits{ get{ return 110; } }
public override WeaponAnimation DefAnimation{ get{ return WeaponAnimation.Pierce1H; } }
[Constructable]
public WarFork() : base( 0x1405 )
{
Weight = 9.0;
}
public WarFork( 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();
}
}
}