enderalse/scripts/source/macetrap.psc

50 lines
1.2 KiB
Plaintext
Raw Normal View History

2021-10-05 22:22:24 +00:00
scriptName MaceTrap extends PhysicsTrap
;
;
;This is the script for the swinging mace trap
;It's like a regular moving trap, but activating it causes a push force to be applied to the trap.
;This breaks the havok constraint, causing it to swing.
;================================================================
import utility
import debug
int doOnce
float property initialDelay = 0.2 auto
float property hitTime = 3.0 auto
{this controls how long the trap has to hit before it sets itself to not do damage
default = 3.0
if set to a negative value, this is ignored}
Function fireTrap()
if doOnce == 0
doOnce = 1
hitBase.goToState("CanHit")
SetMotionType(1)
WindupSound.play( self as ObjectReference) ;play windup sound
ResolveLeveledDamage()
wait( initialDelay ) ;wait for windup
ApplyHavokImpulse(0.0, 0.0, -1.0, 15.0)
ApplyHavokImpulse(0.0, 0.0, -1.0, 50.0)
if hitTime > 0
wait(hitTime)
hitBase.goToState("CannotHit")
endif
endif
endFunction
Event OnLoad()
if doOnce == 0
SetMotionType(4)
hitBase = (self as objectReference) as TrapHitBase
endif
EndEvent
Event OnCellDetach()
;USLEEP 3.0.8 Bug #13598
if doOnce == 0 && Is3DLoaded()
SetMotionType(1)
endif
EndEvent