scriptName FXdustDropTrigSCRIPT extends objectReference 
{this Script controls randomized dustfalls} 
;===============================================

import debug				; import debug.psc for acces to trace()
import game				; game.psc for access to getPlayer()
import utility				; utility.psc for access to wait()
import sound				; sound.psc for access to play()

;===============================================
Explosion property FallingDustExplosion01 auto
sound property mySFX auto			; specify SFX to play
int chooser				; random FX choice integer
float rndWaitTimer			; we'll randomize how long we wait between FX
;===============================================

;function playFX(int chooser)
;	if chooser == 1
		; MARK - there's a playgroup forward in your script here but not in the others.  Hur?
;		self.PlayGamebryoAnimation("Forward")
;		weapLg.fire(self, myAmmoMed)
;	elseif chooser == 2
;		self.PlayGamebryoAnimation("Backward")
;		weapMd.fire(self, myAmmoSm)
;	elseif chooser == 3
;		self.PlayGamebryoAnimation("Left")	
;		weapSm.fire(self, myAmmoTiny)
;	endif
;	mySFX.play(self)							; same sound no matter what vizFX we choose. 
;	rndWaitTimer = RandomInt(1,5)
;	wait(rndWaitTimer)							; sit around for 1-5 seconds		
;	gotoState("latent")
;endFunction

;===============================================

auto STATE latent								; by default, just sit still and wait for a trigger event
	EVENT onTriggerENTER(objectReference trigRef)
		if trigRef == getPlayer()
; 			Debug.Trace("Triggered")
			chooser = RandomInt(1,3)		; generate a random number between one and three
			gotoState("active")
			;playFX(chooser)
			
		endif
	endEVENT
endSTATE

;===============================================

STATE active		
		EVENT onBeginState()
								; Been triggered.  Do stuff.
; 			Debug.Trace("Entered active state - picked: " + chooser)
			if chooser == 1
				self.PlayAnimation("PlayAnim01")
				mySFX.play(self)
				wait(0.5)
				placeAtMe(FallingDustExplosion01)
				wait(3.5)
				self.PlayAnimation("PlayAnim02")
			elseif chooser == 2
				self.PlayAnimation("PlayAnim02")
				mySFX.play(self)
			elseif chooser == 3
				self.PlayAnimation("PlayAnim03")		
				mySFX.play(self)
			endif
			gotoState("waiting")

		endEVENT
endSTATE


STATE waiting
		EVENT onBeginState()
			rndWaitTimer = RandomInt(10,30)
; 			Debug.Trace("Entered wating state - waiting for " + rndWaitTimer + " seconds")
			wait(rndWaitTimer)							; sit around for 1-5 seconds		
			gotoState("latent")
; 			Debug.Trace("Should be ready to trigger")
		endEVENT			
endSTATE