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
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