Investigating Splintering is Proccing with Specials

Magus Zeal

Expert II
Client used - If not applicable put N/A
n/a
Player Name - If not applicable put N/A
n/a
Location In-game - If not applicable put N/A
n/a
So I was just testing, and noticed that Splintering Weapon is proccing on specials. Splintering is only supposed to proc on auto-attacks.

1673723073359.png

I delivered a parablow and immediatly applied splintering. That shouldn't happen.
 
OP
Magus Zeal

Magus Zeal

Expert II
Code:
 public class SplinteringWeaponContext : PropertyEffect
    {
        public static List<Mobile> BleedImmune { get; } = new List<Mobile>();

        public SplinteringWeaponContext(Mobile from, Mobile defender, Item weapon)
            : base(from, defender, weapon, TimeSpan.FromSeconds(4), TimeSpan.FromSeconds(4))
        {
            StartForceWalk(defender);

            if (!(defender is PlayerMobile) || !IsBleedImmune(defender))
            {
                BleedAttack.BeginBleed(defender, from, true);
                AddBleedImmunity(defender);
            }

            defender.SendLocalizedMessage(1112486); // A shard of the brittle weapon has become lodged in you!
            from.SendLocalizedMessage(1113077); // A shard of your blade breaks off and sticks in your opponent!

            Server.Effects.PlaySound(defender.Location, defender.Map, 0x1DF);

            BuffInfo.AddBuff(defender, new BuffInfo(BuffIcon.SplinteringEffect, 1154670, 1152144, TimeSpan.FromSeconds(4), defender));
        }

This code is missing a check to see if the attacker has activated a special.
 
OP
Magus Zeal

Magus Zeal

Expert II
You need something like this to validate:

For example, this code checks to see if an existing ability is active when you activate any ability, to prevent you from having to abilities active at the same time.

In our case, we want something like this that simply checks to see if an ability is active prior to applying splintering
1673723478855.png
 
OP
Magus Zeal

Magus Zeal

Expert II
"Splintering Weapon effect will not trigger when performing Disarm."
Firefly is correct. I thought it only worked with autoattacks but apparently not. I'll post the UO.com Wiki, which I believe is a more definitive source than uoguide.
1673889794410.png


People on OSI are still discussing it due to balance issues, but so far the only specials that are strictly removed are listed per above.

The discussion points to the facts that splintering is basically a mana-free bleed/slow proc with little/no drawbacks, and it stacks with other specials which makes it very strong. Also splintering weapons can be POF'd forever since you cant make them. There is also a considerable amount of complaining about splintering bokuto's.

In an aside, this very thread was on page 2 of my google research on this topic. Thought that was impressive :)

Thanks for the double check @FireFly
 
OP
Magus Zeal

Magus Zeal

Expert II
More to note here, there was another change that provided an immunity to the force walk in July 2020 - I saw the bleed immunity in the code but not the force walk. This should prevent it from being chained.

Ref:
 

FireFly

Journeyman II
Firefly is correct. I thought it only worked with autoattacks but apparently not. I'll post the UO.com Wiki, which I believe is a more definitive source than uoguide.
View attachment 4690


People on OSI are still discussing it due to balance issues, but so far the only specials that are strictly removed are listed per above.

The discussion points to the facts that splintering is basically a mana-free bleed/slow proc with little/no drawbacks, and it stacks with other specials which makes it very strong. Also splintering weapons can be POF'd forever since you cant make them. There is also a considerable amount of complaining about splintering bokuto's.

In an aside, this very thread was on page 2 of my google research on this topic. Thought that was impressive :)

Thanks for the double check @FireFly
Cant agree with pof forever bcs myself im mainly used imbued splint weapons tbh
 

Dan

Staff Member
Administrator
Game Master
Alright so what exactly is splintering not checking for at the moment?
 
OP
Magus Zeal

Magus Zeal

Expert II
It needs to apply and check for splinter immunity - it currently only applies/checks for bleed immunity. This prevents splintering from being chained over and over. The 15s delay Firefly is talking about is the timer that should be in effect. It currently only applies to bleed. We need splintering itself in there because it can currently be chained.

We need something like this in place for splintering:
1673979226023.png


It needs to not function with disarm, infectious or injected special moves. If those moves are active, splinter should never proc. There needs to be an "IsActive" check for those specials that will prevent the splinter. (or a Not active check)

That's it for now.
 

Dan

Staff Member
Administrator
Game Master

Code:
|| VictimIsUnderEffects<SplinteringWeaponContext>(defender)

or return false;

It looks like it should be doing a check here to not re-do if under that effect already and the effect lasts until the bleed timer ends. At first glance it looks okay but if it is not working then there is something wrong the current logic.
 

PLAY NOW

Heritage

Address
play.trueuo.com
Port
2593
Uptime
4 hours
Players Online
10
Houses
877
Vendors
276
Gold
5,511,564,728gp
Top Bottom