UOGamers Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • To obtain new Razor updates, please reinstall Razor from our new website.

Spell damage increase from SW spells.

Behavior on Demise:
The Spell damage increase from Arcane empowerment and Reaper form only work with magery spells. The reasoning for this is because magery is the only one that calls multiple sources for the spell damage calculations, while all of the other skills only call
Code:
AosAttributes.GetValue( Caster, AosAttribute.SpellDamage )
which only includes items.

Also the sdi from Reaper form is factored in after the PvP sdi cap for magery.

Behavior on osi:
The sdi from skill abilities should work on all abilities that is effected by SDI.

Supporting Documentation (URLs):
This is what it checks for SDI right now.

Code:
                public static int GetValue( Mobile m, AosAttribute attribute )
                {
                        if( !Core.AOS )
                                return 0;
 
                        List<Item> items = m.Items;
                        int value = 0;
 
                        for( int i = 0; i < items.Count; ++i )
                        {
                                Item obj = items[i];
 
                                if( obj is BaseWeapon )
                                {
                                        AosAttributes attrs = ((BaseWeapon)obj).Attributes;
 
                                        if( attrs != null )
                                                value += attrs[attribute];
 
                                        if( attribute == AosAttribute.Luck )
                                                value += ((BaseWeapon)obj).GetLuckBonus();
                                }
                                else if( obj is BaseArmor )
                                {
                                        AosAttributes attrs = ((BaseArmor)obj).Attributes;
 
                                        if( attrs != null )
                                                value += attrs[attribute];
 
                                        if( attribute == AosAttribute.Luck )
                                                value += ((BaseArmor)obj).GetLuckBonus();
                                }
                                else if( obj is BaseJewel )
                                {
                                        AosAttributes attrs = ((BaseJewel)obj).Attributes;
 
                                        if( attrs != null )
                                                value += attrs[attribute];
                                }
                                else if( obj is BaseClothing )
                                {
                                        AosAttributes attrs = ((BaseClothing)obj).Attributes;
 
                                        if( attrs != null )
                                                value += attrs[attribute];
                                }
                                else if( obj is Spellbook )
                                {
                                        AosAttributes attrs = ((Spellbook)obj).Attributes;
 
                                        if( attrs != null )
                                                value += attrs[attribute];
                                }
                                else if( obj is BaseQuiver )
                                {
                                        AosAttributes attrs = ((BaseQuiver)obj).Attributes;
 
                                        if( attrs != null )
                                                value += attrs[attribute];
                                }
                                else if ( obj is BaseTalisman )
                                {
                                        AosAttributes attrs = ((BaseTalisman)obj).Attributes;
 
                                        if (attrs != null)
                                                value += attrs[attribute];
                                }
                        }
 
                        return value;
                }
 
Here is the code for the Reaper form issue.

Spell.cs lines 130 to 164

Code:
                public virtual int GetNewAosDamage( int bonus, int dice, int sides, bool playerVsPlayer, double scalar )
                {
                        int damage = Utility.Dice( dice, sides, bonus ) * 100;
                        int damageBonus = 0;
 
                        int inscribeSkill = GetInscribeFixed( m_Caster );
                        int inscribeBonus = (inscribeSkill + (1000 * (inscribeSkill / 1000))) / 200;
                        damageBonus += inscribeBonus;
 
                        int intBonus = Caster.Int / 10;
                        damageBonus += intBonus;
 
                        int sdiBonus = AosAttributes.GetValue( m_Caster, AosAttribute.SpellDamage );
                        // PvP spell damage increase cap of 15% from an item’s magic property
                        if ( playerVsPlayer && sdiBonus > 15 )
                                sdiBonus = 15;
 
                        damageBonus += sdiBonus;
 
                        TransformContext context = TransformationSpellHelper.GetContext( Caster );
 
                        if( context != null && context.Spell is ReaperFormSpell )
                                damageBonus += ((ReaperFormSpell)context.Spell).SpellDamageBonus;
 
                        damage = AOS.Scale( damage, 100 + damageBonus );
 
                        int evalSkill = GetDamageFixed( m_Caster );
                        int evalScale = 30 + ((9 * evalSkill) / 100);
 
                        damage = AOS.Scale( damage, evalScale );
 
                        damage = AOS.Scale( damage, (int)(scalar*100) );
 
                        return damage / 100;
                }
 
Top