Vous êtes sur la page 1sur 2

scriptName BatteringTrap extends MovingTrap

;
;
;This is the script for the blade trap
;Activating the trap causes it to toggle on and off
;If activated while in the process of stopping, it should be able to handle that.
;================================================================

import debug
import utility

;If Loop is true, it swings until activated again.


;If Loop is false, it swings once when activated.
bool restartLooping = false
bool finishedPlaying = false
float property initialDelay = 0.25 auto
bool property resetEventRecieved = False auto hidden

;-----------------------------------

Function fireTrap()

;Basic wind up and fire once checking


; ;debug.TRACE("fireTrap called")
WindupSound.play( self as ObjectReference) ;play windup sound
ResolveLeveledDamage()
wait( initialDelay ) ;wait for windup
; ;debug.TRACE("Initial Delay complete")
registerForAnimationEvent(self, "reset")
if (fireOnlyOnce == True) ;If this can be fired only once then disarm
trapDisarmed = True
endif

; ;debug.TRACE("Looping =")
; ;debug.TRACE(Loop)

;Trap Guts
while(finishedPlaying == False) && isloaded
;TRACE("playing anim Trigger")
hitBase.goToState("CanHit")
PlayAnimationAndWait("Trigger", "BackSwing")
hitBase.goToState("CannotHit")

while !resetEventRecieved && isLoaded


; ;debug.Trace(self + " is waiting for animationEvent")
utility.wait(0.5)
endWhile
finishedPlaying = True
resetEventRecieved = False
if (loop == TRUE) ;Reset Limiter
resetLimiter()
endif
; debug.Trace(self + " finished main while loop")
endWhile

unregisterForAnimationEvent(self, "reset")
goToState("Reset")
; ;debug.TRACE("fireTrap has finished")
PlayAnimationAndWait( "reset", "off" )

endFunction

Function ResetLimiter()
finishedPlaying = False
;TrapHitBase hitBase = (self as objectReference) as TrapHitBase
;hitBase.goToState("CanHit")
EndFunction

Event onLoad()
hitBase = (self as objectReference) as TrapHitBase
endEvent

Event OnAnimationEvent(ObjectReference akSource, string asEventName)


; ;debug.Trace(self + " has recieved animation event = " + asEventName)
if akSource == (self as objectReference) && asEventName == "reset"
resetEventRecieved = TRUE
endif

endEvent

Vous aimerez peut-être aussi