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.
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
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.
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.
Move the newer stuff added that was recently to the same place all of
our previous spell IDs were defined.
Either of these solutions were good, but I went with defines since it
was less changes
I also added a bunch of stuff the client has hardcoded behavior for, but
not currently implemented by us.
The removed stuff from the command_castspell were reused on live, so I
figured it was best to remove them from the restrictions since they are
no longer test spells
* Added a check to stop Bard song for Mezz/Stun
* Cleaned Song stun / mezz stop
* Update client_process.cpp
* removed bard check & added else where
* code clean up
Co-authored-by: ProducerZekServer <go@away.com>
This isn't the exactly the right way, but it's behavior is much closer
to live than current for Solon's Song of the Sirens (725), the other
bard charms don't repulse due to mana cost
* Bards song with a mana cost shouldn't repulse
* Bard songs with SE_TemporaryPets shouldn't repulse
This is mostly just an issue with Vet AAs, the actually songs have a
recast, so are already handled
* SE_Familiar should be prevented as well
Added a new questAPI GetSpellIDByBookSlot to allow for sorting spellbooks by various attributes (level, type, etc). Allows to determine which spell is in what book slot.
* Addresses #1036
* Cleaned up if statement formatting
* Using Mob::GetOwnerOrSelf() now, which accounts for the edge case
NB: The Mob::SpellOnTarget() and Mob::CommonDamage() methods really
should be looked at and spell logic combined somehow. Both have if
statements that dodge around the other's conditions to decide which
method sends the CombatDamage_Struct packet