144 lines
4.1 KiB
Plaintext
144 lines
4.1 KiB
Plaintext
|
scriptName TrapDweFlamePillarHit extends trapHitBase
|
||
|
;
|
||
|
;
|
||
|
;
|
||
|
;=========================================
|
||
|
|
||
|
import utility
|
||
|
|
||
|
keyword property flameKeyword auto
|
||
|
|
||
|
explosion property placedExplosion auto hidden
|
||
|
bool property weaponResolved = false auto hidden
|
||
|
int Property TrapLevel = 1 auto
|
||
|
{Used to determine the difficulty of the trap, currently only tied to damage
|
||
|
0 = Easy
|
||
|
1 = Medium (DEFAULT)
|
||
|
2 = Hard
|
||
|
3 = VeryHard}
|
||
|
|
||
|
;================================================================
|
||
|
|
||
|
state CanHitLocal
|
||
|
event onBeginState()
|
||
|
; debug.Trace(self + ": has entered CanHitState")
|
||
|
if !weaponResolved
|
||
|
ResolveLeveledExplosion ()
|
||
|
endif
|
||
|
endEvent
|
||
|
|
||
|
|
||
|
event OnTrapHitStart(ObjectReference triggerRef, float afXVel, float afYVel, float afZVel, float afXPos, float afYPos, float afZPos, int aeMaterial, bool abInitialHit, int aeMotionType)
|
||
|
; debug.Trace(self + " has hit " + triggerRef)
|
||
|
actor myTarget
|
||
|
myTarget = triggerRef as actor
|
||
|
|
||
|
if !myTarget.hasSpell(ghostAbility)
|
||
|
;if !myTarget.HasMagicEffectWithKeyword(flameKeyword)
|
||
|
; debug.Trace(self + " has applied gas to " + triggerRef)
|
||
|
;(triggerRef as actor).addSpell(gasSpell01)
|
||
|
triggerRef.placeAtMe(placedExplosion)
|
||
|
;endif
|
||
|
if rumble
|
||
|
game.ShakeController(rumbleAmount, rumbleAmount, rumbleDuration)
|
||
|
EndIf
|
||
|
if cameraShake
|
||
|
game.ShakeCamera(afStrength = cameraShakeAmount)
|
||
|
endif
|
||
|
endif
|
||
|
endEvent
|
||
|
|
||
|
;/
|
||
|
event OnTrapHit(ObjectReference triggerRef, float afXVel, float afYVel, float afZVel, float afXPos, float afYPos, float afZPos, int aeMaterial, bool abInitialHit, int aeMotionType)
|
||
|
; debug.Trace(self + " has hit " + triggerRef)
|
||
|
actor myTarget
|
||
|
myTarget = triggerRef as actor
|
||
|
|
||
|
if !myTarget.hasSpell(ghostAbility)
|
||
|
;if !myTarget.HasMagicEffectWithKeyword(flameKeyword)
|
||
|
; debug.Trace(self + " has applied gas to " + triggerRef)
|
||
|
;(triggerRef as actor).addSpell(gasSpell01)
|
||
|
triggerRef.placeAtMe(placedExplosion)
|
||
|
;endif
|
||
|
if rumble
|
||
|
game.ShakeController(rumbleAmount, rumbleAmount, rumbleDuration)
|
||
|
EndIf
|
||
|
if cameraShake
|
||
|
game.ShakeCamera(afStrength = cameraShakeAmount)
|
||
|
endif
|
||
|
endif
|
||
|
endEvent
|
||
|
/;
|
||
|
endState
|
||
|
|
||
|
event onCellAttach()
|
||
|
if !weaponResolved
|
||
|
ResolveLeveledExplosion ()
|
||
|
endif
|
||
|
endEvent
|
||
|
|
||
|
|
||
|
;================================================================
|
||
|
|
||
|
int property LvlThreshold1 auto
|
||
|
int property LvlThreshold2 auto
|
||
|
int property LvlThreshold3 auto
|
||
|
int property LvlThreshold4 auto
|
||
|
int property LvlThreshold5 auto
|
||
|
Explosion property TrapDweFlamePillarExplosion01 auto
|
||
|
Explosion property TrapDweFlamePillarExplosion02 auto
|
||
|
Explosion property TrapDweFlamePillarExplosion03 auto
|
||
|
Explosion property TrapDweFlamePillarExplosion04 auto
|
||
|
Explosion property TrapDweFlamePillarExplosion05 auto
|
||
|
Explosion property TrapDweFlamePillarExplosion06 auto
|
||
|
|
||
|
Function ResolveLeveledExplosion ()
|
||
|
;Trace("ResolveLeveledWeapon")
|
||
|
int damageLevel
|
||
|
damageLevel = CalculateEncounterLevel(TrapLevel)
|
||
|
|
||
|
; weapon lvlWeaponM = LvlWeaponM1
|
||
|
; weapon lvlWeaponL = LvlWeaponL1
|
||
|
; weapon lvlWeaponR = LvlWeaponR1
|
||
|
explosion LvlExplosion = TrapDweFlamePillarExplosion01
|
||
|
|
||
|
if (damageLevel > LvlThreshold1 && damageLevel <= LvlThreshold2)
|
||
|
; lvlWeaponM = LvlWeaponM2
|
||
|
; lvlWeaponL = LvlWeaponL2
|
||
|
; lvlWeaponR = LvlWeaponR2
|
||
|
LvlExplosion = TrapDweFlamePillarExplosion02
|
||
|
;Trace("damage threshold =")
|
||
|
;Trace("2")
|
||
|
endif
|
||
|
if (damageLevel > LvlThreshold2 && damageLevel <= LvlThreshold3)
|
||
|
;lvlWeaponM = LvlWeapon3
|
||
|
LvlExplosion = TrapDweFlamePillarExplosion03
|
||
|
;Trace("damage threshold =")
|
||
|
;Trace("3")
|
||
|
endif
|
||
|
if (damageLevel > LvlThreshold3 && damageLevel <= LvlThreshold4)
|
||
|
;lvlWeaponM = LvlWeapon4
|
||
|
LvlExplosion = TrapDweFlamePillarExplosion04
|
||
|
;Trace("damage threshold =")
|
||
|
;Trace("4")
|
||
|
endif
|
||
|
if (damageLevel > LvlThreshold4 && damageLevel <= LvlThreshold5)
|
||
|
;lvlWeaponM = LvlWeapon5
|
||
|
LvlExplosion = TrapDweFlamePillarExplosion05
|
||
|
;Trace("damage threshold =")
|
||
|
;Trace("5")
|
||
|
endif
|
||
|
if (damageLevel > LvlThreshold5)
|
||
|
;lvlWeaponM = LvlWeapon6
|
||
|
LvlExplosion = TrapDweFlamePillarExplosion06
|
||
|
;Trace("damage threshold =")
|
||
|
;Trace("6")
|
||
|
endif
|
||
|
|
||
|
; ballistaWeaponM = lvlWeaponM
|
||
|
; ballistaWeaponL = lvlWeaponL
|
||
|
; ballistaWeaponR = lvlWeaponR
|
||
|
placedExplosion = LvlExplosion
|
||
|
weaponResolved = True
|
||
|
EndFunction
|