mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 07:18:37 +00:00
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.
This commit is contained in:
+2
-2
@@ -843,8 +843,8 @@ typedef enum {
|
||||
//#define SE_Ff_FocusCastProcNoBypass 497 //
|
||||
//#define SE_AddExtraAttackPct_1h_Primary 498 //
|
||||
//#define SE_AddExtraAttackPct_1h_Secondary 499 //
|
||||
#define SE_Fc_CastTimeMod2 500 // implemented, @Fc, On Caster, cast time mod pct, base: pct
|
||||
#define SE_Fc_CastTimeAmt 501 // implemented, @Fc, On Caster, cast time mod flat amt, base: milliseconds
|
||||
#define SE_Fc_CastTimeMod2 500 // implemented, @Fc, On Caster, cast time mod pct, base: pct, Note: Can reduce to instant cast
|
||||
#define SE_Fc_CastTimeAmt 501 // implemented, @Fc, On Caster, cast time mod flat amt, base: milliseconds, Note: Can reduce to instant cast
|
||||
#define SE_Fearstun 502 // implemented - Stun with a max level limit. Normal stun restrictions don't apply.
|
||||
#define SE_Melee_Damage_Position_Mod 503 // implemented - modify melee damage by pct if done from Front or Behind
|
||||
//#define SE_Melee_Damage_Position_Amt 504 //
|
||||
|
||||
+7
-7
@@ -3120,8 +3120,8 @@ uint32 Mob::GetLevelHP(uint8 tlevel)
|
||||
int32 Mob::GetActSpellCasttime(uint16 spell_id, int32 casttime)
|
||||
{
|
||||
int32 cast_reducer = GetFocusEffect(focusSpellHaste, spell_id);
|
||||
cast_reducer += GetFocusEffect(focusFcCastTimeMod2, spell_id);
|
||||
auto min_cap = casttime / 2;
|
||||
int32 cast_reducer_amt = GetFocusEffect(focusFcCastTimeAmt, spell_id);
|
||||
int32 cast_reducer_no_limit = GetFocusEffect(focusFcCastTimeMod2, spell_id);
|
||||
|
||||
if (level > 50 && casttime >= 3000 && !spells[spell_id].goodEffect &&
|
||||
(GetClass() == RANGER || GetClass() == SHADOWKNIGHT || GetClass() == PALADIN || GetClass() == BEASTLORD)) {
|
||||
@@ -3129,13 +3129,13 @@ int32 Mob::GetActSpellCasttime(uint16 spell_id, int32 casttime)
|
||||
cast_reducer += level_mod * 3;
|
||||
}
|
||||
|
||||
cast_reducer = std::min(cast_reducer, 50); //Max cast time with focusSpellHaste and level reducer is 50% of cast time.
|
||||
cast_reducer += cast_reducer_no_limit;
|
||||
casttime = casttime * (100 - cast_reducer) / 100;
|
||||
|
||||
int32 cast_reducer_amt = GetFocusEffect(focusFcCastTimeAmt, spell_id);
|
||||
|
||||
casttime = std::max(casttime, min_cap) - cast_reducer_amt;
|
||||
|
||||
casttime -= cast_reducer_amt;
|
||||
|
||||
return std::max(casttime, 0);
|
||||
|
||||
}
|
||||
|
||||
void Mob::ExecWeaponProc(const EQ::ItemInstance *inst, uint16 spell_id, Mob *on, int level_override) {
|
||||
|
||||
Reference in New Issue
Block a user