Brought back Dreameater's sneak attack bonus, since it's mentioned in the description, will be addressed later

This commit is contained in:
Eddoursul 2024-02-19 10:32:03 +01:00
parent ccd3c0c262
commit d4cd1b4f0e
3 changed files with 34 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View File

@ -27,6 +27,19 @@ Event OnEffectFinish(Actor akTarget, Actor akCaster)
fBonusDamage = fMagnitude
EndIf
; Sneak bonus
If IsExtraDamageApplicable(akTarget, akCaster)
Float fStealthModifier = Game.GetGameSettingFloat("fCombatSneakBowMult")
If akCaster.HasPerk(_00E_Class_Infiltrator_P03_B_HeartShot)
fStealthModifier = fStealthModifier * _00E_Class_Infiltrator_P03_B_HeartShot.GetNthEntryValue(0, 0)
EndIf
If akCaster == PlayerREF
_00E_FS_FakeStealthMsg.Show(fStealthModifier)
UISneakAttackM.Play(akCaster)
EndIf
fBonusDamage = fBonusDamage * fStealthModifier
EndIf
; Target's magic resistance
Float fMagicResist = akTarget.GetActorValue("MagicResist")
If fMagicResist > 0
@ -41,6 +54,21 @@ Event OnEffectFinish(Actor akTarget, Actor akCaster)
EndIf
EndEvent
Bool Function IsExtraDamageApplicable(Actor akTarget, Actor akCaster)
If akTarget.HasMagicEffect(_00E_FS_PsychosisWeaknessVisualME)
Return True
EndIf
If akCaster.IsDetectedBy(akTarget) == False
akTarget.GetCombatState()
If akTarget.GetCombatState() != 1
Return True
EndIf
EndIf
Return False
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
@ -54,3 +82,9 @@ MagicEffect Property _00E_FS_PsychosisWeaknessVisualME Auto
Spell Property _00E_FS_PsychosisWeaknessSP Auto
Spell Property _00E_FS_PsychosisWeaknessSP_NoSlow Auto
Perk Property _00E_Class_Infiltrator_P03_B_HeartShot Auto ; 2.5
Message Property _00E_FS_FakeStealthMsg Auto
Sound Property UISneakAttackM Auto