fix: Updates professions & new player gargish equipment (#819)
* Now reads Prof.txt to get the professions * The templated professions are based on profession `TrueName` * Adds missing starting equipment * Implements gargish starting equipment * Consolidates some of the code * Moves TC stuff to the TC file. * Fixes some starting equipment that was wrong. Note: * Implementing the original T2A professions is possible on the client side, but requires moving the old clilocs to the current clilocs file. In the current file the entries are blank. * Using the original LBR professions (they match AOS but without necromancy/chivalry) is kind of confusing because the profession indexes are ripped out of the UOTD/UOR ones and have non-sequential indexes. This will probably cause confusion and people will get no templated items when they select the wrong profession.
This commit is contained in:
parent
7361c9158b
commit
bfbe2a6512
80 changed files with 2654 additions and 1409 deletions
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.GargishClothArms", "Server.Items.GargishClothArmsArmor")]
|
||||
public partial class GargishClothArmsType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothArmsType1() : base(0x404) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.FemaleGargishClothArms", "Server.Items.FemaleGargishClothArmsArmor")]
|
||||
public partial class GargishClothArmsType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothArmsType2() : base(0x403) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.GargishClothChest", "Server.Items.GargishClothChestArmor")]
|
||||
public partial class GargishClothChestType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothChestType1() : base(0x406) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 25;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.FemaleGargishClothChest", "Server.Items.FemaleGargishClothChestArmor")]
|
||||
public partial class GargishClothChestType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothChestType2() : base(0x405) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 25;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.GargishClothKilt", "Server.Items.GargishClothKiltArmor")]
|
||||
public partial class GargishClothKiltType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothKiltType1() : base(0x408) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.GargishClothKilt", "Server.Items.GargishClothKiltArmor")]
|
||||
public partial class GargishClothKiltType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothKiltType2() : base(0x407) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.GargishClothLegs", "Server.Items.GargishClothLegsArmor")]
|
||||
public partial class GargishClothLegsType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothLegsType1() : base(0x40A) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0)]
|
||||
[TypeAlias("Server.Items.FemaleGargishClothLegs", "Server.Items.FemaleGargishClothLegsArmor")]
|
||||
public partial class GargishClothLegsType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishClothLegsType2() : base(0x409) => Weight = 2.0;
|
||||
|
||||
public override int BasePhysicalResistance => 5;
|
||||
public override int BaseFireResistance => 7;
|
||||
public override int BaseColdResistance => 6;
|
||||
public override int BasePoisonResistance => 6;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Cloth;
|
||||
public override CraftResource DefaultResource => CraftResource.None;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.GargishStoneArms")]
|
||||
public partial class GargishStoneArmsType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneArmsType1() : base(0x284) => Weight = 10.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.FemaleGargishStoneArms")]
|
||||
public partial class GargishStoneArmsType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneArmsType2() : base(0x283) => Weight = 10.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.GargishStoneChest")]
|
||||
public partial class GargishStoneChestType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneChestType1() : base(0x286) => Weight = 15.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.FemaleGargishStoneChest")]
|
||||
public partial class GargishStoneChestType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneChestType2() : base(0x285) => Weight = 15.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.GargishStoneKilt")]
|
||||
public partial class GargishStoneKiltType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneKiltType1() : base(0x288) => Weight = 10.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.FemaleGargishStoneKilt")]
|
||||
public partial class GargishStoneKiltType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneKiltType2() : base(0x287) => Weight = 10.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.GargishStoneLegs")]
|
||||
public partial class GargishStoneLegsType1 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneLegsType1() : base(0x28A) => Weight = 15.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Serializable(0, false)]
|
||||
[TypeAlias("Server.Items.FemaleGargishStoneLegs")]
|
||||
public partial class GargishStoneLegsType2 : BaseArmor
|
||||
{
|
||||
[Constructible]
|
||||
public GargishStoneLegsType2() : base(0x289) => Weight = 15.0;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
public override int BasePhysicalResistance => 6;
|
||||
public override int BaseFireResistance => 6;
|
||||
public override int BaseColdResistance => 4;
|
||||
public override int BasePoisonResistance => 8;
|
||||
public override int BaseEnergyResistance => 6;
|
||||
|
||||
public override int InitMinHits => 40;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int AosStrReq => 40;
|
||||
public override int OldStrReq => 40;
|
||||
|
||||
public override int ArmorBase => 40;
|
||||
|
||||
public override ArmorMaterialType MaterialType => ArmorMaterialType.Stone;
|
||||
}
|
||||
}
|
||||
|
|
@ -624,7 +624,7 @@ namespace Server.Items
|
|||
|
||||
public override void OnAfterDuped(Item newItem)
|
||||
{
|
||||
if (!(newItem is BaseClothing clothing))
|
||||
if (newItem is not BaseClothing clothing)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
21
Projects/UOContent/Items/Shields/GargishWoodenShield.cs
Normal file
21
Projects/UOContent/Items/Shields/GargishWoodenShield.cs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x4200, 0x4207)]
|
||||
[Serializable(0)]
|
||||
public partial class GargishWoodenShield : BaseShield
|
||||
{
|
||||
[Constructible]
|
||||
public GargishWoodenShield() : base(0x4200) => Weight = 5.0;
|
||||
|
||||
public override int BasePhysicalResistance => 0;
|
||||
public override int BaseFireResistance => 0;
|
||||
public override int BaseColdResistance => 0;
|
||||
public override int BasePoisonResistance => 0;
|
||||
public override int BaseEnergyResistance => 1;
|
||||
public override int InitMinHits => 20;
|
||||
public override int InitMaxHits => 25;
|
||||
public override int AosStrReq => 20;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,8 @@ using Server.Engines.Craft;
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x1EB8, 0x1EB9)]
|
||||
public class TinkerTools : BaseTool
|
||||
[Serializable(0, false)]
|
||||
public partial class TinkerTools : BaseTool
|
||||
{
|
||||
[Constructible]
|
||||
public TinkerTools() : base(0x1EB8) => Weight = 1.0;
|
||||
|
|
@ -11,58 +12,18 @@ namespace Server.Items
|
|||
[Constructible]
|
||||
public TinkerTools(int uses) : base(uses, 0x1EB8) => Weight = 1.0;
|
||||
|
||||
public TinkerTools(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override CraftSystem CraftSystem => DefTinkering.CraftSystem;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class TinkersTools : BaseTool
|
||||
[Serializable(0, false)]
|
||||
public partial class TinkersTools : BaseTool
|
||||
{
|
||||
[Constructible]
|
||||
public TinkersTools()
|
||||
: base(0x1EBC) =>
|
||||
Weight = 1.0;
|
||||
public TinkersTools() : base(0x1EBC) => Weight = 1.0;
|
||||
|
||||
[Constructible]
|
||||
public TinkersTools(int uses)
|
||||
: base(uses, 0x1EBC) =>
|
||||
Weight = 1.0;
|
||||
|
||||
public TinkersTools(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
public TinkersTools(int uses) : base(uses, 0x1EBC) => Weight = 1.0;
|
||||
|
||||
public override CraftSystem CraftSystem => DefTinkering.CraftSystem;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
24
Projects/UOContent/Items/Weapons/Axes/DualShortAxes.cs
Normal file
24
Projects/UOContent/Items/Weapons/Axes/DualShortAxes.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x8FD, 0x4068)]
|
||||
[Serializable(0)]
|
||||
public partial class DualShortAxes : BaseAxe
|
||||
{
|
||||
[Constructible]
|
||||
public DualShortAxes() : base(0x8FD)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.InfectiousStrike;
|
||||
public override int AosStrengthReq => 35;
|
||||
public override int AosMinDamage => 14;
|
||||
public override int AosMaxDamage => 17;
|
||||
public override float MlSpeed => 3.00f;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 110;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
24
Projects/UOContent/Items/Weapons/Maces/DiscMace.cs
Normal file
24
Projects/UOContent/Items/Weapons/Maces/DiscMace.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x903, 0x406E)]
|
||||
[Serializable(0)]
|
||||
public partial class DiscMace : BaseBashing
|
||||
{
|
||||
[Constructible]
|
||||
public DiscMace() : base(0x903)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.ArmorIgnore;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
|
||||
public override int AosStrengthReq => 45;
|
||||
public override int AosMinDamage => 11;
|
||||
public override int AosMaxDamage => 15;
|
||||
public override float MlSpeed => 2.75f;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 110;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x904, 0x406D)]
|
||||
[Serializable(0)]
|
||||
public partial class DualPointedSpear : BaseSpear
|
||||
{
|
||||
[Constructible]
|
||||
public DualPointedSpear() : base(0x904)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.Disarm;
|
||||
public override int AosStrengthReq => 50;
|
||||
public override int AosMinDamage => 11;
|
||||
public override int AosMaxDamage => 14;
|
||||
public override float MlSpeed => 2.25f;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 80;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
23
Projects/UOContent/Items/Weapons/Staves/GlassStaff.cs
Normal file
23
Projects/UOContent/Items/Weapons/Staves/GlassStaff.cs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x905, 0x4070)]
|
||||
[Serializable(0)]
|
||||
public partial class GlassStaff : BaseStaff
|
||||
{
|
||||
[Constructible]
|
||||
public GlassStaff() : base(0x905) =>
|
||||
Weight = 4.0;
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.DoubleStrike;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
|
||||
public override int AosStrengthReq => 20;
|
||||
public override int AosMinDamage => 11;
|
||||
public override int AosMaxDamage => 14;
|
||||
public override float MlSpeed => 2.25f;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 70;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
25
Projects/UOContent/Items/Weapons/Staves/SerpentstoneStaff.cs
Normal file
25
Projects/UOContent/Items/Weapons/Staves/SerpentstoneStaff.cs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x906, 0x406F)]
|
||||
[TypeAlias("Server.Items.SerpentStoneStaff")]
|
||||
[Serializable(0)]
|
||||
public partial class SerpentstoneStaff : BaseStaff
|
||||
{
|
||||
[Constructible]
|
||||
public SerpentstoneStaff() : base(0x906)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
|
||||
public override int AosStrengthReq => 35;
|
||||
public override int AosMinDamage => 16;
|
||||
public override int AosMaxDamage => 19;
|
||||
public override float MlSpeed => 3.50f;
|
||||
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 50;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
|
|
@ -53,33 +53,31 @@ namespace Server.Items
|
|||
|
||||
protected override void OnTarget(Mobile from, object targ)
|
||||
{
|
||||
if (targ is BaseCreature bc)
|
||||
if (targ is not BaseCreature bc)
|
||||
{
|
||||
if (IsHerdable(bc))
|
||||
{
|
||||
if (bc.Controlled)
|
||||
{
|
||||
bc.PrivateOverheadMessage(
|
||||
MessageType.Regular,
|
||||
0x3B2,
|
||||
502467,
|
||||
from.NetState
|
||||
); // That animal looks tame already.
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(502475); // Click where you wish the animal to go.
|
||||
from.Target = new InternalTarget(bc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(502468); // That is not a herdable animal.
|
||||
}
|
||||
from.SendLocalizedMessage(502472); // You don't seem to be able to persuade that to move.
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsHerdable(bc))
|
||||
{
|
||||
from.SendLocalizedMessage(502468); // That is not a herdable animal.
|
||||
return;
|
||||
}
|
||||
|
||||
if (bc.Controlled)
|
||||
{
|
||||
bc.PrivateOverheadMessage(
|
||||
MessageType.Regular,
|
||||
0x3B2,
|
||||
502467, // That animal looks tame already.
|
||||
from.NetState
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(502472); // You don't seem to be able to persuade that to move.
|
||||
from.SendLocalizedMessage(502475); // Click where you wish the animal to go.
|
||||
from.Target = new InternalTarget(bc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -136,9 +134,9 @@ namespace Server.Items
|
|||
m_Creature.PrivateOverheadMessage(
|
||||
MessageType.Regular,
|
||||
0x3B2,
|
||||
502471,
|
||||
502471, // That wasn't even challenging.
|
||||
from.NetState
|
||||
); // That wasn't even challenging.
|
||||
);
|
||||
}
|
||||
|
||||
if (from.CheckTargetSkill(SkillName.Herding, m_Creature, min, max))
|
||||
|
|
|
|||
29
Projects/UOContent/Items/Weapons/Swords/BloodBlade.cs
Normal file
29
Projects/UOContent/Items/Weapons/Swords/BloodBlade.cs
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x8FE, 0x4072)]
|
||||
[Serializable(0)]
|
||||
public partial class BloodBlade : BaseSword
|
||||
{
|
||||
[Constructible]
|
||||
public BloodBlade() : base(0x8FE)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.ParalyzingBlow;
|
||||
public override int AosStrengthReq => 10;
|
||||
public override int AosMinDamage => 10;
|
||||
public override int AosMaxDamage => 12;
|
||||
public override float MlSpeed => 2.00f;
|
||||
|
||||
public override int DefHitSound => 0x23C;
|
||||
public override int DefMissSound => 0x238;
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 90;
|
||||
public override SkillName DefSkill => SkillName.Fencing;
|
||||
public override WeaponType DefType => WeaponType.Piercing;
|
||||
public override WeaponAnimation DefAnimation => WeaponAnimation.Pierce1H;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
26
Projects/UOContent/Items/Weapons/Swords/DreadSword.cs
Normal file
26
Projects/UOContent/Items/Weapons/Swords/DreadSword.cs
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x90B, 0x4074)]
|
||||
[Serializable(0)]
|
||||
public partial class DreadSword : BaseSword
|
||||
{
|
||||
[Constructible]
|
||||
public DreadSword() : base(0x90B)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.CrushingBlow;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.ConcussionBlow;
|
||||
public override int AosStrengthReq => 35;
|
||||
public override int AosMinDamage => 14;
|
||||
public override int AosMaxDamage => 18;
|
||||
public override float MlSpeed => 3.50f;
|
||||
|
||||
public override int DefHitSound => 0x237;
|
||||
public override int DefMissSound => 0x23A;
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 110;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
26
Projects/UOContent/Items/Weapons/Swords/GargishTalwar.cs
Normal file
26
Projects/UOContent/Items/Weapons/Swords/GargishTalwar.cs
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x908, 0x4075)]
|
||||
[Serializable(0)]
|
||||
public partial class GargishTalwar : BaseSword
|
||||
{
|
||||
[Constructible]
|
||||
public GargishTalwar() : base(0x908)
|
||||
{
|
||||
}
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.WhirlwindAttack;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.Dismount;
|
||||
public override int AosStrengthReq => 40;
|
||||
public override int AosMinDamage => 16;
|
||||
public override int AosMaxDamage => 19;
|
||||
public override float MlSpeed => 3.50f;
|
||||
|
||||
public override int DefHitSound => 0x237;
|
||||
public override int DefMissSound => 0x238;
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 80;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
24
Projects/UOContent/Items/Weapons/Swords/GlassSword.cs
Normal file
24
Projects/UOContent/Items/Weapons/Swords/GlassSword.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
namespace Server.Items
|
||||
{
|
||||
[Flippable(0x90C, 0x4073)]
|
||||
[Serializable(0)]
|
||||
public partial class GlassSword : BaseSword
|
||||
{
|
||||
[Constructible]
|
||||
public GlassSword() : base(0x90C) => Weight = 6.0;
|
||||
|
||||
public override WeaponAbility PrimaryAbility => WeaponAbility.BleedAttack;
|
||||
public override WeaponAbility SecondaryAbility => WeaponAbility.MortalStrike;
|
||||
public override int AosStrengthReq => 20;
|
||||
public override int AosMinDamage => 11;
|
||||
public override int AosMaxDamage => 15;
|
||||
public override float MlSpeed => 2.75f;
|
||||
|
||||
public override int DefHitSound => 0x23B;
|
||||
public override int DefMissSound => 0x23A;
|
||||
public override int InitMinHits => 31;
|
||||
public override int InitMaxHits => 90;
|
||||
|
||||
public override int RequiredRaces => Race.AllowGargoylesOnly;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue