Reorganizes Project (#41)
This commit is contained in:
parent
08bf44af9a
commit
3614a66aee
3499 changed files with 79 additions and 55 deletions
56
Projects/Scripts/Items/Weapons/Knives/BaseKnife.cs
Normal file
56
Projects/Scripts/Items/Weapons/Knives/BaseKnife.cs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
using Server.Targets;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseKnife : BaseMeleeWeapon
|
||||
{
|
||||
public BaseKnife(int itemID) : base(itemID)
|
||||
{
|
||||
}
|
||||
|
||||
public BaseKnife(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int DefHitSound => 0x23B;
|
||||
public override int DefMissSound => 0x238;
|
||||
|
||||
public override SkillName DefSkill => SkillName.Swords;
|
||||
public override WeaponType DefType => WeaponType.Slashing;
|
||||
public override WeaponAnimation DefAnimation => WeaponAnimation.Slash1H;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
from.SendLocalizedMessage(1010018); // What do you want to use this item on?
|
||||
|
||||
from.Target = new BladedItemTarget(this);
|
||||
}
|
||||
|
||||
public override void OnHit(Mobile attacker, Mobile defender, double damageBonus = 1)
|
||||
{
|
||||
base.OnHit(attacker, defender, damageBonus);
|
||||
|
||||
if (!Core.AOS && Poison != null && PoisonCharges > 0)
|
||||
{
|
||||
--PoisonCharges;
|
||||
|
||||
if (Utility.RandomDouble() >= 0.5) // 50% chance to poison
|
||||
defender.ApplyPoison(attacker, Poison);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
47
Projects/Scripts/Items/Weapons/Knives/ButcherKnife.cs
Normal file
47
Projects/Scripts/Items/Weapons/Knives/ButcherKnife.cs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x13F6, 0x13F7)]
|
||||
public class ButcherKnife : BaseKnife
|
||||
{
|
||||
[Constructible]
|
||||
public ButcherKnife() : base(0x13F6)
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public ButcherKnife(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.InfectiousStrike;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
|
||||
|
||||
public override int AosStrengthReq => 5;
|
||||
public override int AosMinDamage => 9;
|
||||
public override int AosMaxDamage => 11;
|
||||
public override int AosSpeed => 49;
|
||||
public override float MlSpeed => 2.25f;
|
||||
|
||||
public override int OldStrengthReq => 5;
|
||||
public override int OldMinDamage => 2;
|
||||
public override int OldMaxDamage => 14;
|
||||
public override int OldSpeed => 40;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 40;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
50
Projects/Scripts/Items/Weapons/Knives/Cleaver.cs
Normal file
50
Projects/Scripts/Items/Weapons/Knives/Cleaver.cs
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0xEC3, 0xEC2)]
|
||||
public class Cleaver : BaseKnife
|
||||
{
|
||||
[Constructible]
|
||||
public Cleaver() : base(0xEC3)
|
||||
{
|
||||
Weight = 2.0;
|
||||
}
|
||||
|
||||
public Cleaver(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.InfectiousStrike;
|
||||
|
||||
public override int AosStrengthReq => 10;
|
||||
public override int AosMinDamage => 11;
|
||||
public override int AosMaxDamage => 13;
|
||||
public override int AosSpeed => 46;
|
||||
public override float MlSpeed => 2.50f;
|
||||
|
||||
public override int OldStrengthReq => 10;
|
||||
public override int OldMinDamage => 2;
|
||||
public override int OldMaxDamage => 13;
|
||||
public override int OldSpeed => 40;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (Weight == 1.0)
|
||||
Weight = 2.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
51
Projects/Scripts/Items/Weapons/Knives/Dagger.cs
Normal file
51
Projects/Scripts/Items/Weapons/Knives/Dagger.cs
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0xF52, 0xF51)]
|
||||
public class Dagger : BaseKnife
|
||||
{
|
||||
[Constructible]
|
||||
public Dagger() : base(0xF52)
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public Dagger(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.InfectiousStrike;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.ShadowStrike;
|
||||
|
||||
public override int AosStrengthReq => 10;
|
||||
public override int AosMinDamage => 10;
|
||||
public override int AosMaxDamage => 11;
|
||||
public override int AosSpeed => 56;
|
||||
public override float MlSpeed => 2.00f;
|
||||
|
||||
public override int OldStrengthReq => 1;
|
||||
public override int OldMinDamage => 3;
|
||||
public override int OldMaxDamage => 15;
|
||||
public override int OldSpeed => 55;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 40;
|
||||
|
||||
public override SkillName DefSkill => SkillName.Fencing;
|
||||
public override WeaponType DefType => WeaponType.Piercing;
|
||||
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
47
Projects/Scripts/Items/Weapons/Knives/SkinningKnife.cs
Normal file
47
Projects/Scripts/Items/Weapons/Knives/SkinningKnife.cs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0xEC4, 0xEC5)]
|
||||
public class SkinningKnife : BaseKnife
|
||||
{
|
||||
[Constructible]
|
||||
public SkinningKnife() : base(0xEC4)
|
||||
{
|
||||
Weight = 1.0;
|
||||
}
|
||||
|
||||
public SkinningKnife(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.ShadowStrike;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
|
||||
|
||||
public override int AosStrengthReq => 5;
|
||||
public override int AosMinDamage => 9;
|
||||
public override int AosMaxDamage => 11;
|
||||
public override int AosSpeed => 49;
|
||||
public override float MlSpeed => 2.25f;
|
||||
|
||||
public override int OldStrengthReq => 5;
|
||||
public override int OldMinDamage => 1;
|
||||
public override int OldMaxDamage => 10;
|
||||
public override int OldSpeed => 40;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 40;
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
133
Projects/Scripts/Items/Weapons/Knives/ThrowingDagger.cs
Normal file
133
Projects/Scripts/Items/Weapons/Knives/ThrowingDagger.cs
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
using System;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0xF52, 0xF51)]
|
||||
public class ThrowingDagger : Item
|
||||
{
|
||||
[Constructible]
|
||||
public ThrowingDagger() : base(0xF52)
|
||||
{
|
||||
Weight = 1.0;
|
||||
Layer = Layer.OneHanded;
|
||||
}
|
||||
|
||||
public ThrowingDagger(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string DefaultName => "a throwing dagger";
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (from.Items.Contains(this))
|
||||
{
|
||||
InternalTarget t = new InternalTarget(this);
|
||||
from.Target = t;
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendMessage("You must be holding that weapon to use it.");
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private ThrowingDagger m_Dagger;
|
||||
|
||||
public InternalTarget(ThrowingDagger dagger) : base(10, false, TargetFlags.Harmful)
|
||||
{
|
||||
m_Dagger = dagger;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (m_Dagger.Deleted) return;
|
||||
|
||||
if (!from.Items.Contains(m_Dagger))
|
||||
from.SendMessage("You must be holding that weapon to use it.");
|
||||
else if (targeted is Mobile m)
|
||||
if (m != from && from.HarmfulCheck(m))
|
||||
{
|
||||
Direction to = from.GetDirectionTo(m);
|
||||
|
||||
from.Direction = to;
|
||||
|
||||
from.Animate(from.Mounted ? 26 : 9, 7, 1, true, false, 0);
|
||||
|
||||
if (Utility.RandomDouble() >= Math.Sqrt(m.Dex / 100.0) * 0.8)
|
||||
{
|
||||
from.MovingEffect(m, 0x1BFE, 7, 1, false, false, 0x481, 0);
|
||||
|
||||
AOS.Damage(m, from, Utility.Random(5, from.Str / 10), 100, 0, 0, 0, 0);
|
||||
|
||||
m_Dagger.MoveToWorld(m.Location, m.Map);
|
||||
}
|
||||
else
|
||||
{
|
||||
int x = 0, y = 0;
|
||||
|
||||
switch (to & Direction.Mask)
|
||||
{
|
||||
case Direction.North:
|
||||
--y;
|
||||
break;
|
||||
case Direction.South:
|
||||
++y;
|
||||
break;
|
||||
case Direction.West:
|
||||
--x;
|
||||
break;
|
||||
case Direction.East:
|
||||
++x;
|
||||
break;
|
||||
case Direction.Up:
|
||||
--x;
|
||||
--y;
|
||||
break;
|
||||
case Direction.Down:
|
||||
++x;
|
||||
++y;
|
||||
break;
|
||||
case Direction.Left:
|
||||
--x;
|
||||
++y;
|
||||
break;
|
||||
case Direction.Right:
|
||||
++x;
|
||||
--y;
|
||||
break;
|
||||
}
|
||||
|
||||
x += Utility.Random(-1, 3);
|
||||
y += Utility.Random(-1, 3);
|
||||
|
||||
x += m.X;
|
||||
y += m.Y;
|
||||
|
||||
m_Dagger.MoveToWorld(new Point3D(x, y, m.Z), m.Map);
|
||||
|
||||
from.MovingEffect(m_Dagger, 0x1BFE, 7, 1, false, false, 0x481, 0);
|
||||
|
||||
from.SendMessage("You miss.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue