126 lines
3.7 KiB
Plaintext
126 lines
3.7 KiB
Plaintext
Scriptname _00E_A2_WellOfLifeScript extends activemagiceffect
|
|
{Once the player would die, his life is automatically restored to a set percentage of his base life.}
|
|
|
|
Import _00E_TalentLibrary
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnEnterBleedout()
|
|
|
|
Game.ForceThirdPerson()
|
|
RestoreHealth()
|
|
Self.Dispel()
|
|
|
|
EndEvent
|
|
|
|
Event OnEffectStart(Actor akTarget, Actor akCaster)
|
|
|
|
KillMove.SetValue(0)
|
|
MAGPowerRacialHitskinM.Play(PlayerREF)
|
|
AudioCategorySFXDeath.Mute()
|
|
PlayerREF.GetActorBase().SetEssential(True)
|
|
iTriggerHealthPercentage = (_00E_A2_WellOfLifeSP.GetNthEffectMagnitude(3)/100)
|
|
|
|
EndEvent
|
|
|
|
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
|
|
|
AudioCategorySFXDeath.UnMute()
|
|
PlayerREF.GetActorBase().SetEssential(False)
|
|
UnregisterForUpdate()
|
|
|
|
EndEvent
|
|
|
|
Event OnUpdate()
|
|
|
|
|
|
EndEvent
|
|
|
|
;=====================================================================================
|
|
; FUNCTIONS
|
|
;=====================================================================================
|
|
|
|
Function RestoreHealth()
|
|
|
|
_00E_A2_WellOfLifeAttachEffect.Play(PlayerREF)
|
|
_00E_A2_WellOfLifeExplosionIMOD.Apply()
|
|
_00E_MagicCharge02M.Play(PlayerREF)
|
|
_00E_A2_ChaosruneImplosionSoundM.Play(PlayerREF)
|
|
|
|
Utility.Wait(4)
|
|
|
|
int iIndex = (GetPlayerTalentLevel(_00E_Class_Espionage_P09b_Talent_Ghostwalk, _00E_Class_Espionage_P09b_Talent_Ghostwalk2, _00E_Class_Espionage_P09b_Talent_Ghostwalk3) - 1)
|
|
float iHealAmount = (PlayerREF.GetBaseActorValue("Health")*(_00E_A2_WellOfLifeSP.GetNthEffectMagnitude(iIndex)/100))
|
|
ObjectReference EffectExplosion = PlayerREF.PlaceAtMe(_00E_A2_WellOfLifeExplosionVisual, 1)
|
|
EffectExplosion.MoveTo(PlayerREF, 0.0, 0.0, - 50.0)
|
|
MAGPowerRacialPacifyFire.Play(PlayerREF)
|
|
PlayerREF.KnockAreaEffect(1.0, 1024)
|
|
PlayerREF.RestoreActorValue("Health", iHealAmount+30)
|
|
|
|
If PlayerREF.HasMagicEffect(_50E_MSet_5Pieces_ME)
|
|
ScanForEnemy(iHealAmount)
|
|
EndIf
|
|
|
|
Utility.Wait(1)
|
|
_00E_A2_WellOfLifeAttachEffect.Stop(PlayerREF)
|
|
|
|
EndFunction
|
|
|
|
Function ScanForEnemy(float fDamage)
|
|
|
|
int iIndexScan = 0
|
|
Actor[] nearbyenemies = new Actor[10]
|
|
|
|
while iIndexScan < 10
|
|
Actor RandomActor = Game.FindRandomActorFromRef(PlayerREF, 1000)
|
|
If RandomActor.GetFactionReaction(PlayerREF) == 1
|
|
nearbyenemies[iIndexScan] = RandomActor
|
|
Else
|
|
nearbyenemies[iIndexScan] = None
|
|
EndIf
|
|
iIndexScan += 1
|
|
EndWhile
|
|
|
|
While iIndexScan > 0
|
|
If nearbyenemies[iIndexScan] == None
|
|
iIndexScan -= 1
|
|
Else
|
|
Actor RandomEnemy = nearbyenemies[iIndexScan]
|
|
RandomEnemy.DamageActorValue("Health", fDamage)
|
|
iIndexScan = 0
|
|
EndIf
|
|
EndWhile
|
|
|
|
EndFunction
|
|
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
float iTriggerHealthPercentage
|
|
|
|
Explosion Property _00E_A2_WellOfLifeExplosionVisual Auto
|
|
VisualEffect Property _00E_A2_WellOfLifeAttachEffect Auto
|
|
ImageSpaceModifier Property _00E_A2_WellOfLifeExplosionIMOD Auto
|
|
|
|
GlobalVariable Property KillMove Auto
|
|
|
|
Actor Property PlayerREF Auto
|
|
|
|
SoundCategory Property AudioCategorySFXDeath Auto
|
|
|
|
Sound Property MAGPowerRacialPacifyFire Auto
|
|
Sound Property _00E_A2_ChaosruneImplosionSoundM Auto
|
|
Sound Property MAGPowerRacialHitskinM Auto
|
|
Sound Property _00E_MagicCharge02M Auto
|
|
|
|
Spell Property _00E_A2_WellOfLifeSP Auto
|
|
|
|
Perk Property _00E_Class_Espionage_P09b_Talent_Ghostwalk Auto
|
|
Perk Property _00E_Class_Espionage_P09b_Talent_Ghostwalk2 Auto
|
|
Perk Property _00E_Class_Espionage_P09b_Talent_Ghostwalk3 Auto
|
|
|
|
MagicEffect Property _50E_MSet_5Pieces_ME Auto |