UglyProduct

Used by

When a hideous Ugly ball hits a spike, it breaks into 16 of these UglyProducts. They are fairly indestructible and can help you by protecting your important balls.

<ball name="UglyProduct"
      shape="circle,34,0.25"
      mass="20"
      towermass="5"
      strands="0" 
      walkspeed="0.1"
      climbspeed="1.8"
      speedvariance="0.2" 
      draggable="false"
	  detachable="false" 
      jump="0.0,0.0"
      grumpy="true"
	  invulnerable="true"
 
	  wakedist="30"
	  autoboundsunattached="true"
 
      >
 
  <shadow image="IMAGE_BALL_GENERIC_SHADOW0"/>
 
  <splat image="IMAGE_BALL_UGLYPRODUCT_SPLAT1,IMAGE_BALL_UGLYPRODUCT_SPLAT2"/>
 
  <particles id="sleepyZzz" states="sleeping" overball="true" />
 
  <part name="body" layer="0" 
        x="0" y="0" 
        image="IMAGE_BALL_UGLYPRODUCT_BODY"
        stretch="16,2,0.5"
        scale="0.6"
        />
 
  <part name="lips" layer="1" 
       x="-3,-3" y="-8,-4"
       image="IMAGE_BALL_UGLYPRODUCT_LIPS"
       scale="0.5"
       rotate="true"
       state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching"
        />
 
  <sound event="bounce"    id="SOUND_BALL_GENERIC_BOUNCE1,SOUND_BALL_GENERIC_BOUNCE2,SOUND_BALL_GENERIC_BOUNCE3,SOUND_BALL_GENERIC_BOUNCE4"/>
  <sound event="land"      id="SOUND_BALL_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/>
  <sound event="death"     id="SOUND_BALL_GENERIC_DEATH1"/>
 
  <!-- walking animations -->
  <sinvariance freq="0.4" amp="0.1" shift="0.0">
    <sinanim part="body,lips"    state="walking" type="scale"     axis="x" freq="2.0" amp="0.1" shift="0"   />
    <sinanim part="body,lips"    state="walking" type="scale"     axis="y" freq="2.0" amp="0.1" shift="0.5" />
    <sinanim part="body"         state="walking" type="translate" axis="y" freq="2.0" amp="2"   shift="0"   />
    <sinanim part="lips"         state="walking" type="translate" axis="y" freq="2.0" amp="-3"  shift="0.5" />
  </sinvariance>
 
  <!-- falling animations -->
  <sinvariance freq="0.4" amp="0.1" shift="0.0">
    <sinanim part="body,lips"    state="falling" type="scale"     axis="x" freq="2.0" amp="0.1" shift="0"   />
    <sinanim part="body,lips"    state="falling" type="scale"     axis="y" freq="2.0" amp="0.1" shift="0.5" />
    <sinanim part="body"         state="falling" type="translate" axis="y" freq="2.0" amp="2"   shift="0"   />
    <sinanim part="lips"         state="falling" type="translate" axis="y" freq="2.0" amp="-3"  shift="0.5" />
  </sinvariance>
 
  <!-- climbing animations -->
  <sinvariance freq="0.4" amp="0.1" shift="0.0">
    <sinanim part="body,lips"    state="climbing" type="scale"     axis="x" freq="2.0" amp="0.1" shift="0"   />
    <sinanim part="body,lips"    state="climbing" type="scale"     axis="y" freq="2.0" amp="0.1" shift="0.5" />
    <sinanim part="body"         state="climbing" type="translate" axis="y" freq="2.0" amp="2"   shift="0"   />
    <sinanim part="lips"         state="climbing" type="translate" axis="y" freq="2.0" amp="-3"  shift="0.5" />
  </sinvariance>
 
 
</ball>