While in wraith form, players are suppose to get mana from their enemy's mana pool and place it into their own. if there is no mana to take, no mana is suppose to be received.
Also, spell are completely missing true leech.
Currently on demise, weapons do take mana from defender while attacker is in wraith form, however, they also take mana when there is no mana to be taken.
Also, currently on demise, spells do not take mana from the target/defender, mana is simply given to the attacker while in wraith form.
On OSI, wraith form has true leech, it deals exclusively with the defenders mana pool, it takes it if it's there.
supporting documents:
http://www.uoguide.com/Wraith_Form
http://uo2.stratics.com/skill-guides/skills-and-professions/necromancy
respective fix's are attached.
Changed from Spellhelper.cs
to this:
Changed from Baseweapon.cs:
to this
During testing, spell leeched mana, and stoped when enemy's mana pool went dry. as did weapons.
Also, spell are completely missing true leech.
Currently on demise, weapons do take mana from defender while attacker is in wraith form, however, they also take mana when there is no mana to be taken.
Also, currently on demise, spells do not take mana from the target/defender, mana is simply given to the attacker while in wraith form.
On OSI, wraith form has true leech, it deals exclusively with the defenders mana pool, it takes it if it's there.
supporting documents:
http://www.uoguide.com/Wraith_Form
http://uo2.stratics.com/skill-guides/skills-and-professions/necromancy
respective fix's are attached.
Changed from Spellhelper.cs
Code:
if ( context.Type == typeof( WraithFormSpell ) )
{
int wraithLeech = ( 5 + (int)( ( 15 * from.Skills.SpiritSpeak.Value ) / 100 ) ); // Wraith form gives 5-20% mana leech
int manaLeech = AOS.Scale( damageGiven, wraithLeech );
if ( manaLeech != 0 )
{
from.Mana += manaLeech;
from.PlaySound( 0x44D );
target.Mana -= manaLeech;
}
}
to this:
Code:
if ( context.Type == typeof( WraithFormSpell ) )
{
int wraithLeech = ( 5 + (int)( ( 15 * from.Skills.SpiritSpeak.Value ) / 100 ) ); // Wraith form gives 5-20% mana leech
int manaLeech = AOS.Scale( damageGiven, wraithLeech );
if ( target.Mana < manaLeech )
{
target.Mana -= target.Mana;
from.Mana += target.Mana;
}
else if ( manaLeech != 0 )
{
from.Mana += manaLeech;
from.PlaySound( 0x44D );
target.Mana -= manaLeech;
}
}
Changed from Baseweapon.cs:
Code:
{
wraithLeech = (5 + (int)((15 * attacker.Skills.SpiritSpeak.Value) / 100)); // Wraith form gives an additional 5-20% mana leech
// Mana leeched by the Wraith Form spell is actually stolen, not just leeched.
defender.Mana -= AOS.Scale( damageGiven, wraithLeech );
manaLeech += wraithLeech;
}
to this
Code:
{
wraithLeech = (5 + (int)((15 * attacker.Skills.SpiritSpeak.Value) / 100)); // Wraith form gives an additional 5-20% mana leech
// Mana leeched by the Wraith Form spell is actually stolen, not just leeched.
if (defender.Mana < AOS.Scale(damageGiven, wraithLeech))
{
defender.Mana -= defender.Mana;
attacker.Mana += defender.Mana;
}
else
{
defender.Mana -= AOS.Scale(damageGiven, wraithLeech);
manaLeech += wraithLeech;
}
}
During testing, spell leeched mana, and stoped when enemy's mana pool went dry. as did weapons.