common

The standard black ball used in many levels. Can't be detached once you use it in a structure.

Ball ID: 
common
<ball name="common"
      shape="circle,30,0.25"
      walkforce="500" 
      mass="30"
      towermass="3.0" 
      strands="2" 
      walkspeed="0.1"
      climbspeed="2.0"
      speedvariance="0.2" 
      detachable="false" 
      blinkcolor="0,0,0"
      jump="0.0,0.3"
      >
 
	<!-- For the marker, we need to be able to specify images for each player -->
  <marker	drag="IMAGE_BALL_COMMON_DRAGMARKER_P1"
			detach="IMAGE_BALL_COMMON_DRAGMARKER_P1"
			rotspeed="-2"/>
 
  <shadow image="IMAGE_BALL_GENERIC_SHADOW1"/>
 
  <particles id="sleepyZzz" states="sleeping" overball="true" />
 
  <strand type="spring" 
          image="IMAGE_BALL_COMMON_STRAND" 
          inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" 
          springconstmin="9" springconstmax="9" 
          dampfac="0.9" 
          maxlen2="140" maxlen1="200" 
          maxforce="1000"
          minlen="100"
          />
 
  <detachstrand image="IMAGE_BALL_COMMON_STRAND" maxlen="60" />
 
  <splat image="IMAGE_BALL_COMMON_SPLAT1,IMAGE_BALL_COMMON_SPLAT2"/>
 
  <part name="body"
        layer="1" 
        x="0" y="0" 
        image="IMAGE_BALL_COMMON_BODY" 
        stretch="16,2,0.5"
        scale="0.54984375"
        />
  <part name="hilite1" layer="2" 
        x="-5,0" y="6,10"
        image="IMAGE_BALL_GENERIC_HILITE1"
        state="attached"
        scale="0.5"
        />
  <part name="hilite2" layer="2" 
        x="-10,-6" y="0,5"
        image="IMAGE_BALL_GENERIC_HILITE2"
        state="attached"
        scale="0.5"
        />
 
  <part name="lefteye"
        layer="2"
        rotate="true" 
        eye="true"
        pupil="IMAGE_BALL_GENERIC_PUPIL1"
        pupilinset="12" 
        x="-12,-8" y="-5,5"
        xrange="-18,0" yrange="-12,12"
        image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3"
        state="climbing,walking,falling,dragging,detaching,standing,tank"
        scale="0.5"
        />
  <part name="righteye"
        layer="2"
        rotate="true"
        eye="true" 
        pupil="IMAGE_BALL_GENERIC_PUPIL1" 
        pupilinset="12" 
        x="8,12" y="-5,5"
        xrange="0,18" yrange="-12,12"
        image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3"
        state="climbing,walking,falling,dragging,detaching,standing,tank"
        scale="0.5"
        />
 
 
  <!-- walking animations -->
  <sinvariance freq="1.2" amp="0.1" shift="0.0">
    <sinanim part="body"             state="walking" type="scale"     axis="x" freq="2.0" amp="0.1" shift="0"   />
    <sinanim part="body"             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="lefteye,righteye" state="walking" type="translate" axis="y" freq="2.0" amp="2"   shift="0" />
    <sinanim part="righteye"         state="walking" type="translate" axis="x" freq="2.0" amp="0.5" shift="0" />
    <sinanim part="lefteye"          state="walking" type="translate" axis="x" freq="2.0" amp="0.5" shift="0.5" />
  </sinvariance>
 
  <!-- attached animations -->
  <sinvariance freq=".6" amp="0.025" shift="0.0">
    <sinanim part="body"             state="attached" type="scale"     axis="x" freq="1.0" amp="0.07" shift="0"   />
    <sinanim part="body"             state="attached" type="scale"     axis="y" freq="1.0" amp="0.07" shift="0.5" />
    <sinanim part="hilite1,hilite2"  state="attached" type="scale"     axis="x" freq="1.0" amp="0.07" shift="0"   />
    <sinanim part="hilite1,hilite2"  state="attached" type="scale"     axis="y" freq="1.0" amp="0.07" shift="0.5"   />
  </sinvariance>
 
  <!-- dragging animations -->
  <sinvariance freq="1.5" amp="0.05" shift="0">
    <sinanim part="body" state="dragging" type="scale" axis="x" freq="1.0" amp="0.2" shift="0" />
    <sinanim part="body" state="dragging" type="scale" axis="y" freq="1.0" amp="0.2" shift="0.33" />
  </sinvariance>
  <sinvariance freq="1.5" amp="0.5" shift="0">
    <sinanim part="righteye" state="dragging" type="translate" axis="x" freq="1.0" amp="-1" shift="0" />
    <sinanim part="lefteye"  state="dragging" type="translate" axis="x" freq="1.0" amp="1" shift="0" />
  </sinvariance>
 
  <!-- climbing animations -->
  <sinvariance freq="1.2" amp="0.1" shift="0.0">
    <sinanim part="body"             state="climbing" type="scale"     axis="x" freq="2.0" amp="0.1" shift="0"   />
    <sinanim part="body"             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="lefteye,righteye" state="climbing" type="translate" axis="y" freq="2.0" amp="2"   shift="0" />
    <sinanim part="righteye"         state="climbing" type="translate" axis="x" freq="2.0" amp="0.5" shift="0" />
    <sinanim part="lefteye"          state="climbing" type="translate" axis="x" freq="2.0" amp="0.5" shift="0.5" />
  </sinvariance>
 
  <!-- tank state animations -->
  <sinvariance freq="0.3" amp="0.02" shift="0.0">
    <sinanim part="body"             state="tank" type="scale"     axis="x" freq="1.0" amp="0.06" shift="0"   />
    <sinanim part="body"             state="tank" type="scale"     axis="y" freq="1.0" amp="0.06" shift="0.5" />
    <sinanim part="righteye"         state="tank" type="translate" axis="x" freq="1.0" amp="0.2" shift="0" />
    <sinanim part="lefteye"          state="tank" type="translate" axis="x" freq="1.0" amp="0.2" shift="0.5" />
  </sinvariance>
  <sinvariance freq="0.1" amp="1" shift="0.0">
    <sinanim part="body,lefteye,righteye" state="tank" type="translate" axis="y" freq="0.4" amp="3" shift="0"   />
  </sinvariance>
 
 
  <!-- Sound FX -->
 
  <sound event="marker"       id="SOUND_BALL_GENERIC_ROLLOVER1,SOUND_BALL_GENERIC_ROLLOVER2,SOUND_BALL_GENERIC_ROLLOVER3,SOUND_BALL_GENERIC_ROLLOVER4,SOUND_BALL_GENERIC_ROLLOVER5,SOUND_BALL_GENERIC_ROLLOVER6,SOUND_BALL_GENERIC_ROLLOVER7,SOUND_BALL_GENERIC_ROLLOVER8"/>
  <sound event="pickup"       id="SOUND_BALL_COMMON_SQUEAK01,SOUND_BALL_COMMON_SQUEAK02,SOUND_BALL_COMMON_SQUEAK03,SOUND_BALL_COMMON_SQUEAK04,SOUND_BALL_COMMON_SQUEAK05,SOUND_BALL_COMMON_SQUEAK06,SOUND_BALL_COMMON_SQUEAK07,SOUND_BALL_COMMON_SQUEAK08,SOUND_BALL_COMMON_SQUEAK09,SOUND_BALL_COMMON_SQUEAK10,SOUND_BALL_COMMON_SQUEAK11,SOUND_BALL_COMMON_SQUEAK12,SOUND_BALL_COMMON_SQUEAK13,SOUND_BALL_COMMON_SQUEAK14,SOUND_BALL_COMMON_SQUEAK15,SOUND_BALL_COMMON_SQUEAK16"/>
 
  <sound event="drop"         id="SOUND_BALL_GENERIC_MUMBLE1,SOUND_BALL_GENERIC_MUMBLE2,SOUND_BALL_GENERIC_MUMBLE3,SOUND_BALL_GENERIC_MUMBLE4,SOUND_BALL_GENERIC_MUMBLE5,SOUND_BALL_GENERIC_MUMBLE6,SOUND_BALL_GENERIC_MUMBLE7"/>
  <sound event="throw"        id="SOUND_BALL_GENERIC_MUMBLE1,SOUND_BALL_GENERIC_MUMBLE2,SOUND_BALL_GENERIC_MUMBLE3,SOUND_BALL_GENERIC_MUMBLE4,SOUND_BALL_GENERIC_MUMBLE5,SOUND_BALL_GENERIC_MUMBLE6,SOUND_BALL_GENERIC_MUMBLE7"/>
 
  <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="attach"       id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,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="attachcloser" id="SOUND_BALL_GENERIC_GLEE1,SOUND_BALL_GENERIC_GLEE2,SOUND_BALL_GENERIC_GLEE3,SOUND_BALL_GENERIC_GLEE4,SOUND_BALL_GENERIC_GLEE5,SOUND_BALL_GENERIC_GLEE6,SOUND_BALL_GENERIC_GLEE7,SOUND_BALL_GENERIC_GLEE8,SOUND_BALL_GENERIC_GLEE9,SOUND_BALL_GENERIC_GLEE10,SOUND_BALL_GENERIC_GLEE11"/>
 
  <sound event="death"        id="SOUND_BALL_GENERIC_DEATH1,SOUND_BALL_GENERIC_DEATH2,SOUND_BALL_GENERIC_DEATH3,SOUND_BALL_GENERIC_DEATH4,SOUND_BALL_GENERIC_DEATH5"/>
 
  <sound event="suction"      id="SOUND_BALL_GENERIC_DETACHED1"/>
 
</ball>