scriptName trapRockfallEffects extends objectReference
;
;
;====================================

bool property doOnce = true auto
{if true do this only once
	default == true}
	
bool property placeAll = true auto
{default == true
	if true place all things that have been set
	if false place the first thing that we find set}
	
explosion property placedExplosion auto	
objectReference property placedObjectRef auto
sound property rockfallSound Auto
objectReference objSelf
float ControllerShakeL = 0.5
float ControllerShakeR = 0.5
float ControllerShakeDuration = 1.5
bool property cannedHallwayDust = false auto
{used for precanned dust in hallways}
string anim01 = "playAnim01"
string animEndEvent = "endAnim"
	
auto state waiting

	event onActivate(objectReference triggerRef)
		goToState("DoNothing")
		objSelf = self as objectReference
		rockfallSound.play(objSelf)
		game.ShakeCamera(afStrength = 1.0)
		game.ShakeController(ControllerShakeL, ControllerShakeR, ControllerShakeDuration)
		if cannedHallwayDust
			playAnimationAndWait(anim01, animEndEvent)
		Else
			placeAllThings()	
		endif
	endEvent

endState

state DoNothing
	event onActivate(objectReference triggerRef)
	endEvent
endState

function placeAllThings()
	if placedExplosion
		self.placeAtMe(placedExplosion)
	endif
	
	if placedObjectRef
		self.placeAtMe(placedExplosion)
	endif
endFunction