Scriptname FXSetBlendVariableScript extends ObjectReference  
{Sets the blend varaible for this fx on load}

float Property myfToggleBlend auto
{defaults to zero set from 0-1}
float Property myfToggleBlendRageMin = 0.0 auto
{Randomrange min for when makeRandom is used}
float Property myfToggleBlendRageMax = 1.0 auto
{Randomrange max for when makeRandom is used}
int Property makeRandom auto
{set to 1 to make the blend variable randomly set itself}
int Property updateRandomOverTime auto
{set to 1 to make the blend variable randomly change after the waitTime only matters if makeRandom is set to 1}
float Property waitTimeMin = 1.0 auto
{time to wait before changing myfToggleBlend randomly}
float Property waitTimeMax = 0.0 auto
{max amount to add to waitTime randomly}

float myRandom
float myWaitTime
int doWhileLoop 



	Event OnLoad()
	;See if we will set blend variable randomly, randomly over time, or once based on input
		if makeRandom > 0 && updateRandomOverTime == 0
			myRandom = utility.RandomFloat(myfToggleBlendRageMin,myfToggleBlendRageMax)
			SetAnimationVariableFloat("fToggleBlend", myRandom)
		elseif makeRandom > 0 && updateRandomOverTime > 0
			doWhileLoop = 1
		else
			SetAnimationVariableFloat("fToggleBlend", myfToggleBlend)
		endif
		;Loop to change variable over time
		while doWhileLoop == 1
			;USKP 1.3.3 - Bail out of this loop if 3D becomes unloaded.
			if( !Is3DLoaded() )
				doWhileLoop = 0
			EndIf
			
			myRandom = utility.RandomFloat(myfToggleBlendRageMin,myfToggleBlendRageMax)
			SetAnimationVariableFloat("fToggleBlend", myRandom)
			myWaitTime = utility.RandomFloat(waitTimeMin,waitTimeMax)
			utility.wait(myWaitTime)
		endWhile
	endEvent
	
	Event OnUnLoad()
		;Stop while loop for random over time when unloaded
		if doWhileLoop == 1
			doWhileLoop = 0
		endIf
	endEvent