feat(throwing): add remaining SA throwing artifacts (add-only)
Add the four remaining named Stygian Abyss throwing artifacts — Abyss Reaver, Storm Caller, Banshee's Call, and Wind of Corruption — as item definitions, stat-for-stat from ServUO. They are [add-only for now: their in-world sources (the Into the Void quest for Abyss Reaver; the renowned/boss creatures for the others) are deferred to future efforts, but the items themselves are useful to have defined. Storm Caller's ServUO BattleLust attribute is left as a TODO — BattleLust is not yet implemented in ModernUO's AosWeaponAttribute set. (The human Bow variant WindOfCorruptionHuman is out of throwing scope and not included.) Co-Authored-By: Joe Valentine <jwvalentine@outlook.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8c6eab5fca
commit
6e486fa4e2
8 changed files with 112 additions and 0 deletions
17
Projects/UOContent/Items/Weapons/Throwing/AbyssReaver.cs
Normal file
17
Projects/UOContent/Items/Weapons/Throwing/AbyssReaver.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0)]
|
||||
public partial class AbyssReaver : Cyclone
|
||||
{
|
||||
[Constructible]
|
||||
public AbyssReaver()
|
||||
{
|
||||
SkillBonuses.SetValues(0, SkillName.Throwing, Utility.RandomMinMax(5, 10));
|
||||
Attributes.WeaponDamage = Utility.RandomMinMax(25, 35);
|
||||
Slayer = SlayerName.Exorcism;
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1112694; // Abyss Reaver
|
||||
}
|
||||
25
Projects/UOContent/Items/Weapons/Throwing/BansheesCall.cs
Normal file
25
Projects/UOContent/Items/Weapons/Throwing/BansheesCall.cs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0)]
|
||||
public partial class BansheesCall : Cyclone
|
||||
{
|
||||
[Constructible]
|
||||
public BansheesCall()
|
||||
{
|
||||
Hue = 1266;
|
||||
WeaponAttributes.HitHarm = 40;
|
||||
WeaponAttributes.HitLeechHits = 45;
|
||||
Attributes.BonusStr = 5;
|
||||
Attributes.WeaponSpeed = 30;
|
||||
Attributes.WeaponDamage = 50;
|
||||
Velocity = 35;
|
||||
AosElementDamages.Cold = 100;
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1113529; // Banshee's Call
|
||||
|
||||
public override int InitMinHits => 255;
|
||||
public override int InitMaxHits => 255;
|
||||
}
|
||||
30
Projects/UOContent/Items/Weapons/Throwing/StormCaller.cs
Normal file
30
Projects/UOContent/Items/Weapons/Throwing/StormCaller.cs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0)]
|
||||
public partial class StormCaller : Boomerang
|
||||
{
|
||||
[Constructible]
|
||||
public StormCaller()
|
||||
{
|
||||
Hue = 456;
|
||||
//TODO Implement BattleLust
|
||||
//WeaponAttributes.BattleLust = 1;
|
||||
WeaponAttributes.HitLightning = 40;
|
||||
WeaponAttributes.HitLowerDefend = 30;
|
||||
Attributes.BonusStr = 5;
|
||||
Attributes.WeaponSpeed = 30;
|
||||
Attributes.WeaponDamage = 40;
|
||||
AosElementDamages.Physical = 20;
|
||||
AosElementDamages.Fire = 20;
|
||||
AosElementDamages.Cold = 20;
|
||||
AosElementDamages.Poison = 20;
|
||||
AosElementDamages.Energy = 20;
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1113530; // Storm Caller
|
||||
|
||||
public override int InitMinHits => 255;
|
||||
public override int InitMaxHits => 255;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Items;
|
||||
|
||||
[SerializationGenerator(0)]
|
||||
public partial class WindOfCorruption : Cyclone
|
||||
{
|
||||
[Constructible]
|
||||
public WindOfCorruption()
|
||||
{
|
||||
Hue = 1171;
|
||||
WeaponAttributes.HitLeechStam = 40;
|
||||
WeaponAttributes.HitLowerDefend = 40;
|
||||
Attributes.WeaponSpeed = 30;
|
||||
Attributes.WeaponDamage = 50;
|
||||
Slayer = SlayerName.Fey;
|
||||
AosElementDamages.Chaos = 100;
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1150358; // Wind of Corruption
|
||||
|
||||
public override int InitMinHits => 255;
|
||||
public override int InitMaxHits => 255;
|
||||
}
|
||||
4
Projects/UOContent/Migrations/Server.Items.AbyssReaver.v0.json
generated
Normal file
4
Projects/UOContent/Migrations/Server.Items.AbyssReaver.v0.json
generated
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.AbyssReaver"
|
||||
}
|
||||
4
Projects/UOContent/Migrations/Server.Items.BansheesCall.v0.json
generated
Normal file
4
Projects/UOContent/Migrations/Server.Items.BansheesCall.v0.json
generated
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.BansheesCall"
|
||||
}
|
||||
4
Projects/UOContent/Migrations/Server.Items.StormCaller.v0.json
generated
Normal file
4
Projects/UOContent/Migrations/Server.Items.StormCaller.v0.json
generated
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.StormCaller"
|
||||
}
|
||||
4
Projects/UOContent/Migrations/Server.Items.WindOfCorruption.v0.json
generated
Normal file
4
Projects/UOContent/Migrations/Server.Items.WindOfCorruption.v0.json
generated
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": 0,
|
||||
"type": "Server.Items.WindOfCorruption"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue