* Add optional rules for itembonuses HealAmt and SpellAmt to scale for DoTs/HoTs
* Fix typo
* Only 1 rulecheck
* Apply +healingitems and +dmgitems after focus effects so they scale properly
* Fix dots / hots to not always use PVPScaling for extra_dmg / extra_healing
Adjust +healamt and +spelldmg to scale over the full duration of the spell, Thanks Kayen
* update
* updates
* updates
* update
* update
* Update ruletypes.h
* Apply extra spell dmg
Mob with the reflect effect apply its Extra Spell Damage from item stat to the reflected spell.
Updated portion of formula for extra damage based on live parsing.
* correct formula
* Implemented SPA Duration Pct
Implemented new spell effects
SE_Duration_HP_Pct 524
SE_Duration_Mana_Pct 525
SE_Duration_Endurance_Pct 526
Consumes 'base1' % of your maximum health/mana/endurance every 6 seconds. 'max' is maximum amount that can be consumed per tic.
Additional Functionality
Can be used as a heal/gain % by setting the base1 value to a positive.
* Implemented SPA Instant Mana/End pct
Fixes for SPA 524-526
Implemented
SE_Instant_Mana_Pct 522
SE_Instant_Endurance_Pct 523
Extracts 'base1' percent of your maximum mana/endurance, or 'max', whichever is lower.
* Implemented: SPA 521 EndAbsorbPctDmg
Implemented
SE_Endurance_Absorb_Pct_Damage 521
Absorb Damage using Endurance: base1 % (base2 End per 1 HP)
Note: Both base1 and base2 need to be divided by 100 for actually value
* Implemented SE_HealthTransfer 509
Implemented
SE_Health_Transfer 509
'life burn'
Consume base2 % of Hit Points to Damage for base % of Hit Points
Can be used for heal
Act of Valor
* Implemented SPA 515,516,518,496
Implemented
SE_AC_Avoidance_Max_Percent 515
SE_AC_Mitigation_Max_Percent 516
SE_Attack_Accuracy_Max_Percent 518
Above are stackable defense and offensive mods
SE_Critical_Melee_Damage_Mod_Max 496 - This is a non stackable melee critical modifier
* Implemented SPA 503 , 505
SE_Melee_Damage_Position_Mod 503
define SE_Damage_Taken_Position_Mod 505
SPA 503 increase/decreases melee damage by percent base1 based on your position base2 0=back 1=front
SPA 504 increase/decreases melee damage taken by percent base1 based on your position base2 0=back 1=front
* Implemented 467,468
Implemented
SE_DS_Mitigation_Amount 467
SE_DS_Mitigation_Percentage 468
Reduce incoming DS by amt or percentage. base1 is value, if a reduction is desired it should be set to negative for both.
* Fixes
Formula fixes
* Update spdat.h
Added spa descriptions.
* Implemented SPA 469, 470
Implemented
SE_Chance_Best_in_Spell_Grp 469 Chance to cast highest scribed spell within a spell group. All base2 spells share roll chance, only 1 cast.
SE_Trigger_Best_in_Spell_Grp 470
Chance to cast highest scribed spell within a spell group. Each spell has own chance.
Additional Changes:
Rewrote TrySpellTrigger function used for SPA 340 since it incorporates SPA 469. Improved code so that chance of spell being triggered should be more accurate statistically.
* Implemented SPA 474, 494
Implemented
SE_Pet_Crit_Melee_Damage_Pct_Owner 474 - Gives pets a critical melee damage modifier from the owner
SE_Pet_Add_Atk 494 - Gives pet a ATK bonus from the owner
Fixed SE_PetMeleeMitigation 397 - The bonus was not being calculated
* Implemented SPA 465,477,478
Implemented
SE_PC_Pet_AE_Rampage 465
Chance for pet to AE rampage with a damage modifier
SE_Hatelist_To_Top_Index 477
Chance to be put on top of RAMPAGE list
SE_Hatelist_To_Tail_Index 478
Chance to be put on bottom of RAMPAGE list
* Implemented
Implemented
SE_Fearstun 502
Stun with a max level limit. Normal stun restrictions don't apply. Base1 duration, base2 PC duration, max is level limit
SE_TwinCastBlocker 39
Previously unused spell effect that is now used on live. Simply, if this effect is present in a spell then the spell can not be twin cast.
* Implemented SPA 483
Implemented
Fc_Spell_Damage_Pct_IncomingPC 483
- Focus effect that modifies iby percent incoming spell damage on the target.
Base1= min Base2= max. Final percent is random between max and min each time focus is applied from a spell cast.
Note: Written to stack with similar functioning focus SPA 269 SE_FcSpellVulnerability.
* Implemented SPA 484
Implemented
SE_Fc_Spell_Damage_Amt_IncomingPC 484 // focus effect that modifies incoming spell damage by flat amount. Consider it a debuff that adds damage to incoming spells. Positive value to add additional damage.
* Implemented SPA 481, 485,486,512
Implemented
SE_Fc_Cast_Spell_On_Land 481
Focus effect that is checked when a spell is cast on a target, if target has this focus effect and all limiting criteria are met, then the target will cast a spell as specified by the focus. Can be given a roll chance for success. Base1=Chance, Base2=Spellid
Note: This spell has a huge amount of potential applications. See 'Alliance' type spells on live. (ie live spell 50247)
Implemented associated focus limits seen in live spells.
SE_Ff_CasterClass 485
- Caster of spell on target with a focus effect that is checked by incoming spells must be specified class or classes.
SE_Ff_Same_Caster 486 -Caster of spell on target with a focus effect that is checked by incoming spells 0=Must be different caster 1=Must be same caster
The following is an associated effect seen with SPA 481
SE_Proc_Timer_Modifier 512
This provides a way to rate limit the amount of spell triggers generated by SPA 481. For example after 1 successful spell trigger no additional spells can be triggered for 1.5 seconds. Ie. Base=1 and Base2 1500.
Written in a flexible format to allow scaling of multiple different buffs with this effect at same time.
* Stacking fixes for new effects
Stacking fixes for new effects.
* merge with upstream master
merge and update up spdat.h
* Update spdat.h
* Fix for bolt spell targeting self if target zone/died while casting.
Fix for bolt spell targeting self if target zone/died while casting. Despite the name being "ST_TargetOptional", this target type is reserved for projectile spells which all require a target, thus should be treated like any other targeted spell.
* Implemented new focus and limits
SE_Fc_Amplify_Mod 507 @Fc, On Caster, damage-heal-dot mod pct, base: pct
SE_Fc_Amplify_Amt 508
@Fc, On Caster, damage-heal-dot mod flat amt, base: amt
SE_Fc_ResistIncoming 510 implemented, @Fc, On Target, resist modifier, base: amt
SE_Fc_CastTimeMod2 500
@Fc, On Caster, cast time mod pct, base: pct
SE_Fc_CastTimeAmt 501
@Fc, On Caster, cast time mod flat amt, base: milliseconds
SE_Ff_DurationMax 495
@Ff, Max duration of spell that can be focused, base: tics
SE_Ff_ReuseTimeMin 490
@Ff, Minimum recast time of a spell that can be focused, base: recast time
SE_Ff_ReuseTimeMax 491
@Ff, Max recast time of a spell that can be focused, base: recast time
SE_Ff_Endurance_Min 492
@Ff, Minimum endurance cost of a spell that can be focused, base: endurance cost
SE_Ff_Endurance_Max 493
@Ff, Max endurance cost of a spell that can be focused, base: endurance cost
SE_Ff_Value_Min 479
@Ff, Minimum base value of a spell that can be focused, base: spells to be focused base1 value
SE_Ff_Value_Max 480
@Ff, Max base value of a spell that can be focused, base: spells to be focused base1 value
SE_Ff_Override_NotFocusable 460 @Fc, Allow spell to be focused event if flagged with 'not_focusable' in spell table, base: 1
Added basic focus and limit descriptions to source.
* Update spell_effects.cpp
hotfix
* fix for SE_Ff_Override_Notfocusable
Fix for SE_Ff_Override_Notfocusable
Logic was not correct. Changed where spell field 'not_focusable' makes check to properly account for this effect.
* Update to SE_Fc_CastTimeMod2
Update to SE_Fc_CastTimeMod2
Found sources that show it can reduce cast time to instant. Rewrote formulas to account for such.
* fix
unintentional change, reverted back.
* fixed missing break statements
fixed missing break statements
* update to IsFocusLimit
missing limit cases added to IsFocusLimit
* Format CalcFocusEffect
* Revert "Format CalcFocusEffect"
This reverts commit e5b81791ee82e45a2c0b819bd15f2c9adc94cfd1.
* Revert "Revert "Format CalcFocusEffect""
This reverts commit a1ce29a8754704bbcce8f751fb9082383771d878.
* Post merge fixes
* More post merge adjustments
* Another post merge change
* Add LimitResist constants back
* Swap int16's for 32's
* int32 fix
Co-authored-by: Akkadius <akkadius1@gmail.com>
Remove the overloads that don't make sense (bots probably doesn't make
sense either, but too lazy)
Fix the formulas
Removed the Spells:MaxCastTimeReduction rule since this is HARDCODED in
the client so it doesn't really make sense to have it as a customization
point. If you want to hack the client, change the hardcode as well I
guess.
* [Bug Fix] EntityList::AESpell fix for Pacify / Mez
this fixes AE pacify / Mez spells only landing on 4 when it shouldn't have a cap
* Update effects.cpp
added constants
* Update effects.cpp
opmization thanks to @mackal
* Update effects.cpp
this fixes the unlimited issue
* added Spells:AOEMaxTargets to rules
incase a server doesn't want there to be a absolute unlimited AOE targeting for spells
* Update ruletypes.h