<?xml version="1.0" ?>
<ItemRenderer>
	<Data>
		<Sprite name="item_Sprite" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="4,11"/>
		<Sprite name="s_Sparkles" fileName="game/particles.rttex" textureSize="32" frame="1,1" />
		<Sprite name="s_hitFlash" fileName="game/particles4.rttex" textureSize="32" frame="4,10" />
		<Animations>
			<InterpolationFloatAnimation name="saturationValueTo" variableName="saturationValue" playOnState="SelfieTake.Max" targetVariableName="saturationValueMax" animTime="0"/>
			<InterpolationFloatAnimation name="saturationValueFrom" variableName="saturationValue" playOnState="SelfieTake.Default" targetVariableName="saturationValueDefault" animTime="100"/>

			<InterpolationFloatAnimation name="contrastValueTo" variableName="contrastValue" playOnState="SelfieTake.Max" targetVariableName="contrastValueMax" animTime="0"/>
			<InterpolationFloatAnimation name="contrastValueFrom" variableName="contrastValue" playOnState="SelfieTake.Default" targetVariableName="contrastValueDefault" animTime="100"/>

			<InterpolationFloatAnimation name="brightnessValueTo" variableName="brightnessValue" playOnState="SelfieTake.Max" targetVariableName="brightnessValueMax" animTime="0"/>
			<InterpolationFloatAnimation name="brightnessValueFrom" variableName="brightnessValue" playOnState="SelfieTake.Default" targetVariableName="brightnessValueDefault" animTime="100"/>

		</Animations>
		<ParticleSystems>
			<ParticleSystem name="pshitFlash">
				<Emitter>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
					<Set name="offsetFacing">false</Set>
				</Emitter>
				<Particle >
					<Set name="relativeToEmitter">true</Set>

					<Set name="offset">3, 0</Set>
					<Set name="sprite">s_hitFlash</Set>
					<Set name="inSpecificOrder">true</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Set name="interpolateScale">true</Set>
					<Set name="initialScale">0.1, 0.1</Set>
					<Set name="flipY">1</Set>
					<Set name="finalScale">2, 2</Set>
					<Set name="initalRGB">0, 0, 0</Set>
					<Set name="finalRGB">1, 1, 1</Set>
					<Set name="interpolateRGB">true</Set>
					<Set name="initialAlpha">0</Set>
					<Set name="finalAlpha">1</Set>
					<Set name="interpolateAlpha">true</Set>
					<Set name="lifeTime">0.1</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="psSparkles">
				<Emitter>
					<Set name="lifeTime">1</Set>
					<Set name="offset">-6, 8</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="infParticles">true</Set>
					<Set name="offsetFacing">false</Set>
				</Emitter>
				<Particle usePlayerFacing="true">
					<Set name="inSpecificOrder">true</Set>
					<Random name="offset" min="-1, -3" max="13, 5" />
					<Set name="relativeToEmitter">true</Set>
					<Set name="sprite">s_Sparkles</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="initialAlpha">0</Set>
					<Set name="finalAlpha">1</Set>
					<Set name="interpolateAlpha">true</Set>
					<Set name="lifeTime">0.5</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 0, 0</KeyFrame>
						<KeyFrame>0.5, 1, 1</KeyFrame>
						<KeyFrame>1, 0, 0</KeyFrame>
					</Curve>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<StateMachines>
			<StateMachine name="Moving">
				<States>
					<State name="No" />
					<State name="Yes" />
				</States>
				<Transitions>
					<Transition to="No" from="Yes">
						<Condition>
							<IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
						</Condition>
					</Transition>
					<Transition to="Yes" from="No">
						<Condition>
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
			<StateMachine name="SelfieTake">
				<States>
					<State name="Default" />
					<State name="Max"/>
				</States>
				<Transitions>
					<Transition to="Default" from="Max">
						<Condition>
							<CompareCustomVariable operatorType="Greater" VariableNameToCompare="flashTimer">0</CompareCustomVariable>
						</Condition>
					</Transition>
					<Transition to="Max" from="Default">
						<Condition  type="and">
							<IsSitting ItemID="ITEM_ID_THEATER_SEAT">false</IsSitting>
							<IsSleepingOnaBed>false</IsSleepingOnaBed>
							<IsVariableBool name="isMannequin">false</IsVariableBool>
							<CompareCustomVariable operatorType="LessOrEqual" VariableNameToCompare="flashTimer">0</CompareCustomVariable>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
			<StateMachine name="ResetCounter">
				<States>
					<State name="Idle"/>
					<State name="DecreaseCounter"/>
					<State name="Reset"/>
				</States>
				<Transitions>
					<Transition to="Idle" from="Reset|DecreaseCounter"/>
					<Transition to="DecreaseCounter" from="Idle">
						<Condition type="and">
							<CompareCustomVariable operatorType="Greater" ForceFloats="false" VariableNameToCompare="flashCount">1</CompareCustomVariable>
							<CompareCustomVariable operatorType="Less" VariableNameToCompare="flashTimer">0</CompareCustomVariable>
						</Condition>
					</Transition>
					<Transition to="Reset" from="Idle">
						<Condition type="and">
							<CompareCustomVariable operatorType="LessOrEqual" ForceFloats="false" VariableNameToCompare="flashCount">1</CompareCustomVariable>
							<CompareCustomVariable operatorType="Less" VariableNameToCompare="flashTimer">0</CompareCustomVariable>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
		<RenderOptions>
			<Default>
				<Set name="DefaultRenderMannequinHandItem">false</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="RenderFrontArmInTheFront">true</Set>
				<Set name="IgnorePunchTypeCheck">true</Set>
			</Default>
		</RenderOptions>
		<VariableMap>
			<Set name="saturationValue">1</Set>
			<Set name="saturationValueMax">0.5</Set>
			<Set name="brightnessValue">1</Set>
			<Set name="brightnessValueMax">4</Set>
			<Set name="contrastValue">0</Set>
			<Set name="contrastValueMax">-0.75</Set>

			<Set name="saturationValueDefault">1</Set>
			<Set name="contrastValueDefault">0</Set>
			<Set name="brightnessValueDefault">1</Set>

			<Set name="flashCount" ForceFloats="false">0</Set>

			<Set name="flashTimer">0</Set>
			
			<Set name="DeltaTime">0</Set>
		</VariableMap>
	</Data>
	<RenderRules>
		<RenderHandItem>
			<StopIf>
				<IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
			</StopIf>
			
			<ParticleSystemRender name="pshitFlash"/>
			<ParticleSystemRender name="psSparkles"/>
	
			<SpriteRender name="item_Sprite" offset="20, 9" rotationPoint="0,1" alignment="CENTER" rotateOffset="true" blend="PREMULTIPLIED_ALPHA" />

			<StopIf type="or">
				<IsRenderMod>RENDER_MOD_SPIRIT_GUIDE</IsRenderMod>
				<IsRenderMod>RENDER_MOD_RAINBOW_GUY</IsRenderMod>
				<IsRenderMod>RENDER_MOD_PLAYER_SHADOW</IsRenderMod>
				<IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
			</StopIf>
			<Translate>46,0, 0</Translate>
			<ParticleSystemUpdate name="pshitFlash" onState="SelfieTake.Max"/>
			<ParticleSystemUpdate name="psSparkles" onState="SelfieTake.Max"/>

			<AvatarTransform class="RenderData">
				<Set name="saturation">saturationValue</Set>
				<Set name="brightness">brightnessValue</Set>
				<Set name="contrast">contrastValue</Set>
			</AvatarTransform>
		</RenderHandItem>
		<Update>
			<StopIf>
				<IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
			</StopIf>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm2Angle</Set>
				<Set name="armAngle">-45</Set>
			</AvatarTransform>
			<StopIf type="or">
				<IsRenderMod>RENDER_MOD_SPIRIT_GUIDE</IsRenderMod>
				<IsRenderMod>RENDER_MOD_RAINBOW_GUY</IsRenderMod>
				<IsRenderMod>RENDER_MOD_PLAYER_SHADOW</IsRenderMod>
				<IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
			</StopIf>
			<RandomValueOperation LeftHandVariableName="flashTimer" MinVariableName="0" MaxVariableName="0.5" onState="ResetCounter.DecreaseCounter" />
			<ArithmethicOperation LeftHandVariableName="flashCount" RightHandVariableName="1" OperationType="Substract" onState="ResetCounter.DecreaseCounter" />

			<RandomValueOperation LeftHandVariableName="flashCount" MinVariableName="0" MaxVariableName="5" onState="ResetCounter.Reset" />
			<RandomValueOperation LeftHandVariableName="flashTimer" MinVariableName="1" MaxVariableName="5" onState="ResetCounter.Reset" />

			<ArithmethicOperation LeftHandVariableName="flashTimer" RightHandVariableName="DeltaTime" OperationType="Substract"/>
		</Update>

	</RenderRules>
</ItemRenderer>
