<?xml version="1.0"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_capeBack" fileName="game/particles_large13.rttex" textureSize="64"/>
    <Sprite name="s_capeFront" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="16,17" />
    <Sprite name="s_capeBackTemp" fileName="game/particles_large13.rttex" textureSize="64"/>
    <Animations>
      <SpriteAnimation name="a_cape" sprite="s_capeBack" isLoop="true" animTime="800" autoPlay="false" playOnState="Motion.Idle">
        <Frame>0,11</Frame>
        <Frame>1,11</Frame>
        <Frame>2,11</Frame>
        <Frame>3,11</Frame>
        <Frame>4,11</Frame>
        <Frame>5,11</Frame>
        <Frame>6,11</Frame>
        <Frame>7,11</Frame>
      </SpriteAnimation>       
		<SpriteAnimation name="temp_a_cape" sprite="s_capeBackTemp" isLoop="true" animTime="800" autoPlay="true">
        <Frame>0,11</Frame>
        <Frame>1,11</Frame>
        <Frame>2,11</Frame>
        <Frame>3,11</Frame>
        <Frame>4,11</Frame>
        <Frame>5,11</Frame>
        <Frame>6,11</Frame>
        <Frame>7,11</Frame>
      </SpriteAnimation>      
		<SpriteAnimation name="moving" sprite="s_capeBack" isLoop="true" animTime="800" autoPlay="false" playOnState="Motion.Move">
        <Frame>0,12</Frame>
        <Frame>1,12</Frame>
        <Frame>2,12</Frame>
        <Frame>3,12</Frame>
        <Frame>4,12</Frame>
        <Frame>5,12</Frame>
        <Frame>6,12</Frame>
        <Frame>7,12</Frame>
      </SpriteAnimation>
		
	    <InterpolationVec3Animation name="fishMove" variableName="fishPositionVariable" offsetVariableName="baloonOffset" targetVariableName="playerPositionVariable" isLoop="false" animTime="15000" playOnState="Motion.Move" />
	    <InterpolationVec3Animation name="i_fishSnapped" variableName="fishPositionVariable" offsetVariableName="sittingOffset" targetVariableName="playerPositionVariable" isLoop="false" animTime="250" playOnState="Motion.Idle" />
    </Animations>

    <StateMachines>
      <StateMachine name="Motion">
        <States>
          <State name="Idle" />
          <State name="Move" />
        </States>
        <Transitions>
          <Transition to="Idle" from="Move">
            <Condition type="or">
              <IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
	            <IsVariableBool name="isMannequin">true</IsVariableBool>
            </Condition>
          </Transition>
          <Transition to="Move" from="Idle">
            <Condition type="and">
              <IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
	            <IsVariableBool name="isMannequin">false</IsVariableBool>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
	    <StateMachine name="Facing">
		    <States>
			    <State name="Left" />
			    <State name="Right" />
		    </States>
		    <Transitions>
			    <Transition to="Left" from="Right">
				    <Condition>
					    <IsFacingLeft>true</IsFacingLeft>
				    </Condition>
			    </Transition>
			    <Transition to="Right" from="Left">
				    <Condition type="or">
					    <IsVariableBool name="isMannequin">true</IsVariableBool>
					    <IsFacingLeft>false</IsFacingLeft>
				    </Condition>
			    </Transition>
		    </Transitions>
	    </StateMachine>
    </StateMachines>
	  
    <VariableMap>
	    <Set name="baloonOffsetEmpty">0, 0, 0</Set>
	    <Set name="baloonOffsetIdle">0, 0, 0</Set>
	    <Set name="baloonOffset">0, 0, 0</Set>
	    <Set name="baloonOffsetRight">-32, 0, 0</Set>
	    <Set name="baloonOffsetLeft">32, 0, 0</Set>
	    <Set name="playerPositionVariable">0, 0, 0</Set>
	    <Set name="fishPositionVariable">0, 0, 0</Set>
	    <Set name="fishPositionVariableTemp">0, 0, 0</Set>
	    <Set name="facingVariable">1, 1, 1</Set>
	    <Set name="sittingOffset">0, 0, 0</Set>
	    <Set name="localScale">1, 1, 1</Set>
    </VariableMap>
  </Data>
  <RenderRules>
	  <OnEnteredToWorld>
		  <ArithmethicOperation LeftHandVariableName="fishPositionVariable" RightHandVariableName="playerPositionVariable" OperationType="Set" />
		  <ArithmethicOperation LeftHandVariableName="fishPositionVariableTemp" RightHandVariableName="playerPositionVariable" OperationType="Set" />
	  </OnEnteredToWorld>		
	  <OnRespawned>
		  <ArithmethicOperation LeftHandVariableName="fishPositionVariable" RightHandVariableName="playerPositionVariable" OperationType="Set" />
		  <ArithmethicOperation LeftHandVariableName="fishPositionVariableTemp" RightHandVariableName="playerPositionVariable" OperationType="Set" />
	  </OnRespawned>
	  <OnItemEquipped>
		  <ArithmethicOperation LeftHandVariableName="fishPositionVariable" RightHandVariableName="playerPositionVariable" OperationType="Set" />
		  <ArithmethicOperation LeftHandVariableName="fishPositionVariableTemp" RightHandVariableName="playerPositionVariable" OperationType="Set" />
	  </OnItemEquipped>
    <RenderBackpack>
	    <StopIf>
		    <IsVariableBool name="isMannequin">true</IsVariableBool>
	    </StopIf>
	    <StopIf type="or">
		    <IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
		    <IsRenderMod>RENDER_MOD_SPIRIT_GUIDE</IsRenderMod>
		    <IsRenderMod>RENDER_MOD_RAINBOW_GUY</IsRenderMod>
	    </StopIf>
	    <Group>
		    <StopIf>
			    <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
		    </StopIf>
		    <ArithmethicOperation LeftHandVariableName="baloonOffset" RightHandVariableName="baloonOffsetRight" OperationType="Set" onState="Facing.Right" />
		    <ArithmethicOperation LeftHandVariableName="baloonOffset" RightHandVariableName="baloonOffsetLeft" OperationType="Set" onState="Facing.Left" />
			
		    <ArithmethicOperation LeftHandVariableName="fishPositionVariableTemp" RightHandVariableName="fishPositionVariable" OperationType="Set" />
		    <ArithmethicOperation LeftHandVariableName="fishPositionVariableTemp" RightHandVariableName="playerPositionVariable" OperationType="Substract" />
		    <ArithmethicOperation LeftHandVariableName="fishPositionVariableTemp" RightHandVariableName="facingVariable" OperationType="Multiply"/>
			
		    <ArithmethicOperation LeftHandVariableName="baloonOffsetIdle" RightHandVariableName="sittingOffset" OperationType="Set" />
		    <ArithmethicOperation LeftHandVariableName="baloonOffsetIdle" RightHandVariableName="-1,-1,-1" OperationType="Multiply" />
			
		    <ArithmethicOperation LeftHandVariableName="playerPositionVariable" RightHandVariableName="baloonOffsetIdle" OperationType="Substract" />

			
			<Translate>fishPositionVariableTemp</Translate>
			<Translate>baloonOffsetIdle</Translate>
		    <SpriteRender name="s_capeBack" offset="0,-1" alignment="DOWN_CENTER"/>
	    </Group>
    </RenderBackpack>
    <RenderFrontpack>
      <SpriteRender name="s_capeFront" offset="0,0" alignment="DOWN_CENTER" onState="Motion.Idle"/>
    </RenderFrontpack>
	 <RenderBehind>
		  <StopIf>
			  <IsVariableBool name="isMannequin">false</IsVariableBool>
		  </StopIf>
		  <SpriteRender name="s_capeBackTemp" offset="0,-8"/>
	 </RenderBehind>
  </RenderRules>
</ItemRenderer>
