These are the various ball types in the World of Goo.
[Note to Editors: we are only interested in documenting the "official" ball types here]
General info about the balls.xml(.xml/.bin) files and their elements and attributes can be found and collected here.
A square block. Useful for building barriers or nudging balls around.
<ball name="BlockHead" shape="rectangle,100,100" walkforce="0" mass="600" towermass="200" dragmass="100" autodisable="true" strands="0" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" jump="0.0,0.0" collideattached="true" material="BlockBall" hingedrag="true" attenuationselect="0, 1" attenuationdeselect="0, 1" attenuationdrop="0, 1" attenuationdrag="0, 1" stacking="true" collidewithattached="true" suckable="false" > <marker drag="IMAGE_BALL_BLOCKHEAD_DRAGMARKER" detach="IMAGE_BALL_BLOCKHEAD_DRAGMARKER" rotspeed="-2"/> <shadow image="IMAGE_BALL_BLOCKHEAD_SHADOW"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <splat image="IMAGE_FX_SMOKEBLACK"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_BLOCKHEAD_BODY1,IMAGE_BALL_BLOCKHEAD_BODY2,IMAGE_BALL_BLOCKHEAD_BODY3" scale="0.82" /> <part name="bodydrag" layer="1" rotate="true" x="0" y="0" image="IMAGE_BALL_BLOCKHEAD_BODYDRAG" scale="0.82" state="dragging" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-30,-22" y="-30,22" xrange="-18,0" yrange="-12,12" image="IMAGE_BALL_BLOCKHEAD_EYE,IMAGE_BALL_BLOCKHEAD_EYE2" state="climbing,walking,falling,dragging,detaching,standing,tank" scale="0.75" /> <!-- 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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <sound event="drop" 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="throw" 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="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_BLOCKHEAD_BREAK01,SOUND_BALL_BLOCKHEAD_BREAK02,SOUND_BALL_BLOCKHEAD_BREAK03"/> <sound event="collidegeom" id="SOUND_BALL_BLOCKHEAD_BUMP01,SOUND_BALL_BLOCKHEAD_BUMP02,SOUND_BALL_BLOCKHEAD_BUMP03,SOUND_BALL_BLOCKHEAD_BUMP04,SOUND_BALL_BLOCKHEAD_BUMP05,SOUND_BALL_BLOCKHEAD_BUMP06"/> <sound event="collidesame" id="SOUND_BALL_BLOCKHEAD_BUMP01,SOUND_BALL_BLOCKHEAD_BUMP02,SOUND_BALL_BLOCKHEAD_BUMP03,SOUND_BALL_BLOCKHEAD_BUMP04,SOUND_BALL_BLOCKHEAD_BUMP05,SOUND_BALL_BLOCKHEAD_BUMP06"/> <sound event="collidediff" id="SOUND_BALL_BLOCKHEAD_BUMP01,SOUND_BALL_BLOCKHEAD_BUMP02,SOUND_BALL_BLOCKHEAD_BUMP03,SOUND_BALL_BLOCKHEAD_BUMP04,SOUND_BALL_BLOCKHEAD_BUMP05,SOUND_BALL_BLOCKHEAD_BUMP06"/> </ball>
A small, non-interactive bomb, only used in Burning Man.
<ball name="BombMini" shape="circle,60,0" walkforce="0" mass="40" towermass="40.0" strands="4" walkspeed="0" climbspeed="0.0" speedvariance="0" detachable="false" jump="0,0" collidewithattached="false" collideattached="false" suckable="false" climber="false" draggable="false" isbehindstrands="false" grumpy="true" invulnerable="true" stickyattached="false" stickyunattached="false" stuckattachment="false" burntime="3.0" detonateforce="500" detonateradius="500" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" explosionparticles="BallExplode_Bomb" > <strand type="spring" image="IMAGE_BALL_BOMBMINI_STRAND" inactiveimage="IMAGE_BALL_BOMBMINI_STRAND" springconstmin="10" springconstmax="10" dampfac="0.9" maxlen2="140" maxforce="800" minlen="130" thickness="40" walkable="false" ignitedelay="0" burnspeed="3" fireparticles="fireArmBurn" burntimage="IMAGE_BALL_BOMBMINI_STRAND_BURNT" /> <particles id="fireRobotHead" states="onfire" overball="true" /> <part name="body" layer="2" x="0" y="0" image="IMAGE_BALL_BOMBMINI_BODY" rotate="false" scale="0.5" /> <!-- 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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <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_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" id="SOUND_BALL_GENERIC_DEATH1,SOUND_BALL_GENERIC_DEATH2,SOUND_BALL_GENERIC_DEATH3,SOUND_BALL_GENERIC_DEATH4,SOUND_BALL_GENERIC_DEATH5"/> <sound event="ignite" id="SOUND_BALL_BOMBMINI_IGNITE01,SOUND_BALL_BOMBMINI_IGNITE02,SOUND_BALL_BOMBMINI_IGNITE03,SOUND_BALL_BOMBMINI_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_BOMBMINI_DETONATE1"/> </ball>
The huge, caged bomb in Upper Shaft.
<ball name="BombShaft" shape="circle,120,0" walkforce="0" mass="20" towermass="20.0" strands="4" walkspeed="0" climbspeed="0.0" speedvariance="0" detachable="false" jump="0,0" collidewithattached="false" collideattached="false" suckable="false" climber="false" draggable="false" isbehindstrands="false" grumpy="true" invulnerable="true" stickyattached="false" stickyunattached="false" stuckattachment="false" burntime="3.0" detonateforce="500" detonateradius="350" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" explosionparticles="BallExplode_Bomb" > <strand type="spring" image="IMAGE_BALL_BOMBSHAFT_STRAND" inactiveimage="IMAGE_BALL_BOMBSHAFT_STRAND" springconstmin="10" springconstmax="10" dampfac="0.9" maxlen2="140" maxforce="800" minlen="130" thickness="40" walkable="false" ignitedelay="0" burnspeed="3" fireparticles="fireArmBurn" burntimage="IMAGE_BALL_BOMBSHAFT_STRAND_BURNT" /> <particles id="fireRobotHead" states="onfire" overball="true" /> <part name="body" layer="2" x="0" y="0" image="IMAGE_BALL_BOMBSHAFT_BODY" rotate="false" scale="1" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="10" x="-30" y="0,0" image="IMAGE_BALL_GENERIC_EYE_GLASS_1" scale="1.1" /> <part name="righteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="10" x="30" y="0,0" image="IMAGE_BALL_GENERIC_EYE_GLASS_1" scale="1.1" /> <!-- 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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <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_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" id="SOUND_BALL_GENERIC_DEATH1,SOUND_BALL_GENERIC_DEATH2,SOUND_BALL_GENERIC_DEATH3,SOUND_BALL_GENERIC_DEATH4,SOUND_BALL_GENERIC_DEATH5"/> <sound event="ignite" id="SOUND_BALL_BOMBSHAFT_IGNITE01,SOUND_BALL_BOMBSHAFT_IGNITE02,SOUND_BALL_BOMBSHAFT_IGNITE03,SOUND_BALL_BOMBSHAFT_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_BOMBSHAFT_DETONATE1"/> </ball>
A sticky bomb that will attach to any surface you put it on.
<ball name="BombSticky" shape="circle,60,0" walkforce="0" mass="60" towermass="30.0" strands="4" walkspeed="0" climbspeed="0.0" speedvariance="0" detachable="true" jump="0,0" explosionparticles="BallExplode_Bomb" collidewithattached="false" collideattached="false" suckable="false" climber="false" draggable="true" material="rock" isbehindstrands="false" grumpy="false" invulnerable="true" stickyattached="true" stickyunattached="true" stuckattachment="false" burntime="3.0" detonateforce="500" detonateradius="350" attenuationselect="0.05, 1.0, 1.2" attenuationdeselect="0.05, 1.2, 1.0" attenuationdrop="0.05, 1.2, 1.0" attenuationdrag="0.05, 1.2, 1.0" statescales="attached,1.25" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" wakedist="30" > <marker drag="IMAGE_BALL_BOMBSTICKY_DRAGMARKER" detach="IMAGE_BALL_BOMBSTICKY_DETACHMARKER" rotspeed="2"/> <strand type="spring" image="IMAGE_BALL_BOMBSTICKY_STRAND" inactiveimage="IMAGE_BALL_BOMBSTICKY_STRAND" springconstmin="10" springconstmax="10" dampfac="0.9" maxlen2="140" maxforce="800" minlen="130" thickness="40" walkable="false" ignitedelay="0" burnspeed="3" fireparticles="fireArmBurn" burntimage="IMAGE_BALL_BOMBSTICKY_STRAND_BURNT" /> <detachstrand image="IMAGE_BALL_BOMBSTICKY_STRAND" maxlen="60" /> <shadow image="IMAGE_BALL_BOMBSTICKY_SHADOW"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <particles id="fireRobotHead" states="onfire" overball="true" /> <splat image="IMAGE_FX_SMOKEBLACK"/> <part name="spikes" layer="1" x="0" y="0" image="IMAGE_BALL_BOMBSTICKY_SPIKES" rotate="true" scale="0.62" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching" /> <part name="spikesStuck" layer="1" x="0" y="0" image="IMAGE_BALL_BOMBSTICKY_SPIKES" rotate="true" scale="0.69" state="attached" /> <part name="body" layer="2" x="0" y="0" image="IMAGE_BALL_BOMBSTICKY_BODY" rotate="false" scale="0.5" /> <part name="valve" layer="3" x="24" y="24" image="IMAGE_BALL_BOMBSTICKY_VALVE" rotate="true" scale="0.60" /> <part name="eyeLid1" layer="4" x="-19" y="-2.5" image="IMAGE_BALL_BOMBSTICKY_EYELID1" rotate="true" scale="0.50" state="sleeping" /> <part name="eyeLid2" layer="4" x="22" y="-7.5" image="IMAGE_BALL_BOMBSTICKY_EYELID2" rotate="true" scale="0.50" state="sleeping" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-18,-12" y="0,7" xrange="-20,-10" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="0.75" state="climbing,walking,falling,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="righteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="12,18" y="0,7" xrange="10,20" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="0.75" state="climbing,walking,falling,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="lefteyeStuck" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-32,-32" y="0,0" xrange="-32,-22" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="0.95" state="attached" /> <part name="righteyeStuck" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="32,32" y="0,0" xrange="22,32" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="0.95" state="attached" /> <!-- attached --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="attached" type="scale" axis="x" freq="1.0" amp="0.025" shift="0" /> <sinanim part="body" state="attached" type="scale" axis="y" freq="1.0" amp="0.025" shift="0" /> <sinanim part="spikesStuck" state="attached" type="scale" axis="x" freq="1.0" amp="0.05" shift="0.1" /> <sinanim part="spikesStuck" state="attached" type="scale" axis="y" freq="1.0" amp="0.05" shift="0.1" /> <sinanim part="valve" state="attached" type="translate" axis="x" freq="1.0" amp="1" shift="0" /> <sinanim part="valve" state="attached" type="translate" axis="y" freq="1.0" amp="-1" shift="0" /> <sinanim part="lefteyeStuck" state="attached" type="translate" axis="x" freq="1.0" amp="-0.75" shift="0" /> <sinanim part="righteyeStuck" state="attached" type="translate" axis="x" freq="1.0" amp="0.75" shift="0" /> </sinvariance> <!-- dragging --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="dragging" type="scale" axis="x" freq="2.0" amp="0.05" shift="0" /> <sinanim part="body" state="dragging" type="scale" axis="y" freq="2.0" amp="0.05" shift="0" /> <sinanim part="spikes" state="dragging" type="scale" axis="x" freq="2.0" amp="0.075" shift="0.1" /> <sinanim part="spikes" state="dragging" type="scale" axis="y" freq="2.0" amp="0.075" shift="0.1" /> <sinanim part="valve" state="dragging" type="translate" axis="x" freq="2.0" amp="2" shift="0" /> <sinanim part="valve" state="dragging" type="translate" axis="y" freq="2.0" amp="-2" shift="0" /> <sinanim part="lefteye" state="dragging" type="translate" axis="x" freq="2.0" amp="-0.5" shift="0" /> <sinanim part="righteye" state="dragging" type="translate" axis="x" freq="2.0" amp="0.5" shift="0" /> </sinvariance> <!-- falling --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="falling" type="scale" axis="x" freq="1.0" amp="0.075" shift="0" /> <sinanim part="body" state="falling" type="scale" axis="y" freq="1.0" amp="0.075" shift="0" /> <sinanim part="spikes" state="falling" type="scale" axis="x" freq="1.0" amp="0.1" shift="0.1" /> <sinanim part="spikes" state="falling" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.1" /> <sinanim part="lefteye" state="falling" type="translate" axis="x" freq="1.0" amp="-0.5" shift="0" /> <sinanim part="righteye" state="falling" type="translate" axis="x" freq="1.0" amp="0.5" shift="0" /> <sinanim part="valve" state="falling" type="translate" axis="x" freq="1.0" amp="2" shift="0" /> <sinanim part="valve" state="falling" type="translate" axis="y" freq="1.0" amp="-2" shift="0" /> </sinvariance> <!-- walking --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="walking" type="scale" axis="x" freq="1.0" amp="0.05" shift="0" /> <sinanim part="body" state="walking" type="scale" axis="y" freq="1.0" amp="0.05" shift="0" /> <sinanim part="spikes" state="walking" type="scale" axis="x" freq="1.0" amp="0.1" shift="0.1" /> <sinanim part="spikes" state="walking" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.1" /> <sinanim part="lefteye" state="walking" type="translate" axis="x" freq="1.0" amp="-0.5" shift="0" /> <sinanim part="righteye" state="walking" type="translate" axis="x" freq="1.0" amp="0.5" shift="0" /> <sinanim part="valve" state="walking" type="translate" axis="x" freq="1.0" amp="2" shift="0" /> <sinanim part="valve" state="walking" type="translate" axis="y" freq="1.0" amp="-2" 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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <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_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <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="deathfall" id="SOUND_BALL_GENERIC_DEATH1,SOUND_BALL_GENERIC_DEATH2,SOUND_BALL_GENERIC_DEATH3,SOUND_BALL_GENERIC_DEATH4,SOUND_BALL_GENERIC_DEATH5"/> <sound event="ignite" id="SOUND_BALL_BOMBSTICKY_IGNITE01,SOUND_BALL_BOMBSTICKY_IGNITE02,SOUND_BALL_BOMBSTICKY_IGNITE03,SOUND_BALL_BOMBSTICKY_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_BOMBSTICKY_DETONATE1"/> </ball>
The Bone Goo Ball is extremely resilient. It cannot be destroyed by spikes, so you can use it protect other balls.
<ball name="Bone" shape="rectangle,50,50" mass="60" towermass="4.0" strands="2" walkspeed="0.1" walkforce="3000" climbspeed="0.9" speedvariance="0.2" jump="0.0,0.3" sticky="false" blinkcolor="0,0,0" invulnerable="true" grumpy="false" hingedrag="false" attenuationselect="0.05, 1.0, 1.2" attenuationdeselect="0.05, 1.2, 1.0" attenuationdrop="0.05, 1.2, 1.0" attenuationdrag="0.05, 1.2, 1.0" maxattachspeed="1000" material="BoneBall" jumponwakeup="false" staticwhensleeping="true" > <marker drag="IMAGE_BALL_BONE_DRAGMARKER_P1" detach="IMAGE_BALL_BONE_DETACHMARKER_P1" rotspeed="2" /> <shadow image="IMAGE_BALL_BONE_SHAD"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="spring" image="IMAGE_BALL_BONE_STRAND" inactiveimage="IMAGE_BALL_BONE_STRAND" springconstmin="10" springconstmax="10" dampfac="0.9" maxlen2="120" maxforce="800" minlen="100" thickness="20" walkable="false" /> <detachstrand image="IMAGE_BALL_BONE_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_BONE_SPLAT1,IMAGE_BALL_BONE_SPLAT2"/> <part name="jaw" layer="0" rotate="true" x="0" y="-25" image="IMAGE_BALL_BONE_JAW" stretch="24,1.5,0.75" scale="0.76" state="climbing,attached,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching" /> <part name="body" layer="1" rotate="true" x="0" y="0" image="IMAGE_BALL_BONE_BODY1,IMAGE_BALL_BONE_BODY2" stretch="24,1.5,0.75" scale="0.75" /> <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="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_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <sound event="death" id="SOUND_BALL_GENERIC_DEATH1"/> <sound event="suction" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="exit" id=""/> <!-- climbing animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="jaw" state="climbing" type="translate" axis="y" freq="4.0" amp="3" shift="0" /> </sinvariance> <!-- dragging animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="jaw" state="dragging" type="translate" axis="y" freq="4.0" amp="10" shift="0" /> </sinvariance> <!-- dragging animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="jaw" state="attached" type="translate" axis="y" freq="4.0" amp="3" shift="0" /> </sinvariance> <!-- tank animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="jaw" state="tank" type="translate" axis="y" freq="4.0" amp="3" shift="0" /> </sinvariance> </ball>
Used by
The standard black ball used in many levels. Can't be detached once you use it in a structure.
<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>
Used by
The standard albino ball used in a few levels. Uniquely, it has four arms.
<ball name="common_albino" shape="circle,36,0.25" mass="40" towermass="7.5" strands="4" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="false" blinkcolor="0,0,0" jump="0,0.8" > <marker drag="IMAGE_BALL_COMMON_ALBINO_DRAGMARKER_P1" detach="IMAGE_BALL_COMMON_ALBINO_DRAGMARKER_P1" rotspeed="2"/> <shadow image="IMAGE_BALL_COMMON_ALBINO_SHADOWGLOW" additive="true"/> <strand type="spring" image="IMAGE_BALL_COMMON_ALBINO_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="6" springconstmax="6" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="75"/> <detachstrand image="IMAGE_BALL_COMMON_ALBINO_STRAND" maxlen="60" /> <particles id="sleepyZzz" states="sleeping" overball="true" /> <splat image="IMAGE_BALL_COMMON_ALBINO_SPLAT1,IMAGE_BALL_COMMON_ALBINO_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_COMMON_ALBINO_BODY" stretch="16,2,0.5" scale="0.65765625"/> <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" x="-12,-8" y="-3,3" xrange="-18,0" yrange="-12,12" image="IMAGE_BALL_COMMON_ALBINO_EYEBLACK1,IMAGE_BALL_COMMON_ALBINO_EYEBLACK2,IMAGE_BALL_COMMON_ALBINO_EYEBLACK3" state="climbing,walking,falling,dragging,detaching,standing,tank" scale="0.85" /> <part name="righteye" layer="2" rotate="true" x="8,12" y="-3,3" xrange="0,18" yrange="-12,12" image="IMAGE_BALL_COMMON_ALBINO_EYEBLACK1,IMAGE_BALL_COMMON_ALBINO_EYEBLACK2,IMAGE_BALL_COMMON_ALBINO_EYEBLACK3" state="climbing,walking,falling,dragging,detaching,standing,tank" scale="0.85" /> <!-- 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_ALBINO_SQUEAK01,SOUND_BALL_COMMON_ALBINO_SQUEAK02,SOUND_BALL_COMMON_ALBINO_SQUEAK03,SOUND_BALL_COMMON_ALBINO_SQUEAK04,SOUND_BALL_COMMON_ALBINO_SQUEAK05,SOUND_BALL_COMMON_ALBINO_SQUEAK06,SOUND_BALL_COMMON_ALBINO_SQUEAK07,SOUND_BALL_COMMON_ALBINO_SQUEAK08,SOUND_BALL_COMMON_ALBINO_SQUEAK09,SOUND_BALL_COMMON_ALBINO_SQUEAK10,SOUND_BALL_COMMON_ALBINO_SQUEAK11,SOUND_BALL_COMMON_ALBINO_SQUEAK12,SOUND_BALL_COMMON_ALBINO_SQUEAK13,SOUND_BALL_COMMON_ALBINO_SQUEAK14,SOUND_BALL_COMMON_ALBINO_SQUEAK15,SOUND_BALL_COMMON_ALBINO_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" 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"/> <sound event="exit" id=""/> </ball>
The standard black ball with a difference. This one is slightly less springy.
<ball name="common_black" shape="circle,35,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" jumponwakeup="true" staticwhensleeping="true" > <marker drag="IMAGE_BALL_COMMON_BLACK_DRAGMARKER_P1" detach="IMAGE_BALL_COMMON_BLACK_DRAGMARKER_P1" rotspeed="2"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="spring" image="IMAGE_BALL_COMMON_BLACK_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100"/> <detachstrand image="IMAGE_BALL_COMMON_BLACK_DSTRAND" maxlen="160" /> <splat image="IMAGE_BALL_COMMON_BLACK_SPLAT1,IMAGE_BALL_COMMON_BLACK_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_COMMON_BLACK_BODY" stretch="16,2,0.5" rotate="true" scale="0.646875" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-12,-6" y="2,7" 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="13" x="6,12" y="2,7" 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" /> </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_BLACK_SQUEAK01,SOUND_BALL_COMMON_BLACK_SQUEAK02,SOUND_BALL_COMMON_BLACK_SQUEAK03,SOUND_BALL_COMMON_BLACK_SQUEAK04,SOUND_BALL_COMMON_BLACK_SQUEAK05,SOUND_BALL_COMMON_BLACK_SQUEAK06,SOUND_BALL_COMMON_BLACK_SQUEAK07,SOUND_BALL_COMMON_BLACK_SQUEAK08,SOUND_BALL_COMMON_BLACK_SQUEAK09,SOUND_BALL_COMMON_BLACK_SQUEAK10,SOUND_BALL_COMMON_BLACK_SQUEAK11,SOUND_BALL_COMMON_BLACK_SQUEAK12,SOUND_BALL_COMMON_BLACK_SQUEAK13,SOUND_BALL_COMMON_BLACK_SQUEAK14,SOUND_BALL_COMMON_BLACK_SQUEAK15,SOUND_BALL_COMMON_BLACK_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" 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"/> <sound event="exit" id=""/> </ball>
Used by
These are the tiny balls that appear in the distance on the main title screen. You can pick them up and throw them around!
<ball name="Distant" shape="circle,10,0.25" mass="30" towermass="7.5" strands="2" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" jump="0.4,1.2" > <marker drag="IMAGE_BALL_DISTANT_DRAGMARKER" detach="IMAGE_BALL_DISTANT_DETACHMARKER" rotspeed="2"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="spring" image="IMAGE_BALL_DISTANT_STRAND" inactiveimage="IMAGE_BALL_DISTANT_STRAND" springconstmin="6" springconstmax="6" dampfac="1.9" maxlen2="50" maxlen1="80" maxforce="600" minlen="40"/> <detachstrand image="IMAGE_BALL_DISTANT_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_DISTANT_SPLAT1,IMAGE_BALL_DISTANT_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_DISTANT_BODY" rotate="true" scale="0.5625" stretch="12,2,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" /> </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" /> </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> <!-- 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" /> </sinvariance> <!-- Sound FX --> </ball>
Used by
These are the balls that you use in the World of Goo Corporation. They have been "drained" of all their power. You can attach and detach them. They have 2 arms.
<ball name="Drained" shape="circle,30,0.25" walkforce="500" mass="30" towermass="3.0" strands="2" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" blinkcolor="0,0,0" jump="0.3,0.9" burntime="5" detonateforce="300" detonateradius="200" autobounds="true" autoboundsunattached="true" > <marker drag="IMAGE_BALL_DRAINED_DRAGMARKER_P1" detach="IMAGE_BALL_DRAINED_DETACHMARKER_P1" rotspeed="-2"/> <strand type="spring" image="IMAGE_BALL_DRAINED_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" geom="false" /> <detachstrand image="IMAGE_BALL_DRAINED_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_DRAINED_SPLAT1,IMAGE_BALL_DRAINED_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_DRAINED_BODY" stretch="16,2,0.5" scale="1.031" /> <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 --> <!-- 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> <!-- 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_DRAINED_SQUEAK01,SOUND_BALL_DRAINED_SQUEAK02,SOUND_BALL_DRAINED_SQUEAK03,SOUND_BALL_DRAINED_SQUEAK04,SOUND_BALL_DRAINED_SQUEAK05,SOUND_BALL_DRAINED_SQUEAK06,SOUND_BALL_DRAINED_SQUEAK07,SOUND_BALL_DRAINED_SQUEAK08,SOUND_BALL_DRAINED_SQUEAK09,SOUND_BALL_DRAINED_SQUEAK10,SOUND_BALL_DRAINED_SQUEAK11,SOUND_BALL_DRAINED_SQUEAK12,SOUND_BALL_DRAINED_SQUEAK13,SOUND_BALL_DRAINED_SQUEAK14,SOUND_BALL_DRAINED_SQUEAK15,SOUND_BALL_DRAINED_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> </ball>
When a Beauty ball hits a spike, it produces 16 of these (plus 2 BeautyProductEyes).
<ball name="BeautyProduct" shape="circle,32,0.2" 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="false" wakedist="30" autoboundsunattached="true" burntime="2.0" detonateforce="0" detonateradius="0" jumponwakeup="true" staticwhensleeping="true" > <shadow image="IMAGE_BALL_GENERIC_SHADOW0"/> <splat image="IMAGE_BALL_BEAUTYPRODUCT_SPLAT1,IMAGE_BALL_BEAUTYPRODUCT_SPLAT2"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <particles id="poisonBallBurn" states="onfire" overball="false" /> <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_BEAUTYPRODUCT_BODY" stretch="16,2,0.5" scale="0.6" /> <part name="lips" layer="1" x="-3,-3" y="-8,-4" image="IMAGE_BALL_BEAUTYPRODUCT_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>
Used by
When a Beauty ball hits a spike, it produces 16 BeautyProducts, and 2 of these eyes.
<ball name="BeautyProductEye" shape="circle,32,0.125" 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" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" invulnerable="false" > <shadow image="IMAGE_BALL_GENERIC_SHADOW0"/> <splat image="IMAGE_BALL_BEAUTYPRODUCTEYE_SPLAT1,IMAGE_BALL_BEAUTYPRODUCTEYE_SPLAT2"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <particles id="poisonBallBurn" states="onfire" overball="false" /> <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_BEAUTYPRODUCTEYE_BODY" stretch="16,2,0.5" scale="0.7" rotate="true" eye="true" pupil="IMAGE_BALL_BEAUTYPRODUCTEYE_PUPIL" pupilinset="24" /> <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.05" shift="0" /> <sinanim part="body,lips" state="walking" type="scale" axis="y" freq="2.0" amp="0.05" shift="0.5" /> <sinanim part="body" state="walking" type="translate" axis="y" freq="2.0" amp="1" shift="0" /> <sinanim part="lips" state="walking" type="translate" axis="y" freq="2.0" amp="-2" 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.05" shift="0" /> <sinanim part="body,lips" state="falling" type="scale" axis="y" freq="2.0" amp="0.05" shift="0.5" /> <sinanim part="body" state="falling" type="translate" axis="y" freq="2.0" amp="1" shift="0" /> <sinanim part="lips" state="falling" type="translate" axis="y" freq="2.0" amp="-2" 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.05" shift="0" /> <sinanim part="body,lips" state="climbing" type="scale" axis="y" freq="2.0" amp="0.05" shift="0.5" /> <sinanim part="body" state="climbing" type="translate" axis="y" freq="2.0" amp="1" shift="0" /> <sinanim part="lips" state="climbing" type="translate" axis="y" freq="2.0" amp="-2" shift="0.5" /> </sinvariance> </ball>
The standard ball in the "3D" World. Under certain circumstances (e.g. poisoned water) can turn into Pilot balls.
<ball name="Bit" shape="circle,30,0.25" walkforce="500" mass="30" towermass="10.0" strands="2" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="false" blinkcolor="0,255,0" jump="0.0,0.3" wakedist="60" hideeyes="false" fling="200,2.5" burntime="2.0" detonateforce="1000" detonateradius="100" contains="1,Pilot" popduration="0.1" popparticles="ish_bitPop" popsound="SOUND_BALL_BIT_POP1" explosionparticles="BallExplode_ISH" > <!-- For the marker, we need to be able to specify images for each player --> <marker drag="IMAGE_BALL_BIT_DRAGMARKER_P1" detach="IMAGE_BALL_BIT_DRAGMARKER_P1" rotspeed="-2"/> <particles id="ish_sleepyZzz" states="sleeping" overball="true" /> <particles id="ish_smallfire" states="onfire" overball="true" /> <particles id="ish_FlingTrail" states="falling" overball="true" /> <detachstrand image="IMAGE_BALL_BIT_ARM" maxlen="60" /> <splat image="IMAGE_BALL_BIT_SPLAT1,IMAGE_BALL_BIT_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_BIT_BODY" stretch="16,3.0,0.5" scale="0.5" eye="true" pupil="IMAGE_BALL_BIT_PUPIL" pupilinset="22" /> <!-- 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> <!-- 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_BIT_CHIRP01,SOUND_BALL_BIT_CHIRP02,SOUND_BALL_BIT_CHIRP03,SOUND_BALL_BIT_CHIRP04,SOUND_BALL_BIT_CHIRP05,SOUND_BALL_BIT_CHIRP06,SOUND_BALL_BIT_CHIRP07,SOUND_BALL_BIT_CHIRP08,SOUND_BALL_BIT_CHIRP09,SOUND_BALL_BIT_CHIRP10,SOUND_BALL_BIT_CHIRP11,SOUND_BALL_BIT_CHIRP12" /> <sound event="bounce" id="SOUND_BALL_BIT_CHIRP01,SOUND_BALL_BIT_CHIRP02,SOUND_BALL_BIT_CHIRP03,SOUND_BALL_BIT_CHIRP04,SOUND_BALL_BIT_CHIRP05,SOUND_BALL_BIT_CHIRP06,SOUND_BALL_BIT_CHIRP07,SOUND_BALL_BIT_CHIRP08,SOUND_BALL_BIT_CHIRP09,SOUND_BALL_BIT_CHIRP10,SOUND_BALL_BIT_CHIRP11,SOUND_BALL_BIT_CHIRP12"/> <sound event="land" id="SOUND_BALL_BIT_CHIRP01,SOUND_BALL_BIT_CHIRP02,SOUND_BALL_BIT_CHIRP03,SOUND_BALL_BIT_CHIRP04,SOUND_BALL_BIT_CHIRP05,SOUND_BALL_BIT_CHIRP06,SOUND_BALL_BIT_CHIRP07,SOUND_BALL_BIT_CHIRP08,SOUND_BALL_BIT_CHIRP09,SOUND_BALL_BIT_CHIRP10,SOUND_BALL_BIT_CHIRP11,SOUND_BALL_BIT_CHIRP12"/> <sound event="attach" 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="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="snap" id="SOUND_BALL_BIT_LAUNCH01,SOUND_BALL_BIT_LAUNCH02,SOUND_BALL_BIT_LAUNCH03,SOUND_BALL_BIT_LAUNCH04,SOUND_BALL_BIT_LAUNCH05,SOUND_BALL_BIT_LAUNCH06,SOUND_BALL_BIT_LAUNCH07"/> <sound event="death" id="SOUND_BALL_BIT_PAIN01,SOUND_BALL_BIT_PAIN02,SOUND_BALL_BIT_PAIN03,SOUND_BALL_BIT_PAIN04"/> <sound event="deathfall" id="SOUND_BALL_BIT_PAIN01,SOUND_BALL_BIT_PAIN02,SOUND_BALL_BIT_PAIN03,SOUND_BALL_BIT_PAIN04"/> <sound event="exit" id=""/> <sound event="ignite" id="SOUND_BALL_BIT_IGNITE01,SOUND_BALL_BIT_IGNITE02,SOUND_BALL_BIT_IGNITE03,SOUND_BALL_BIT_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_BIT_POP01,SOUND_BALL_BIT_POP02,SOUND_BALL_BIT_POP03,SOUND_BALL_BIT_POP04,SOUND_BALL_BIT_POP05,SOUND_BALL_BIT_POP06,SOUND_BALL_BIT_POP07"/> </ball>
Used by
These are the balls that you use in the World of Goo Corporation 3D. They have been "drained" of all their power. You can attach and detach them. They have 2 arms.
<ball name="DrainedIsh" shape="circle,30,0.25" walkforce="500" mass="30" towermass="3.0" strands="2" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" blinkcolor="0,0,0" jump="0.3,0.9" burntime="5" detonateforce="300" detonateradius="200" autobounds="true" autoboundsunattached="true" > <marker drag="IMAGE_BALL_DRAINEDISH_DRAGMARKER_P1" detach="IMAGE_BALL_DRAINEDISH_DETACHMARKER_P1" rotspeed="-2"/> <strand type="spring" image="IMAGE_BALL_DRAINEDISH_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" geom="false" /> <detachstrand image="IMAGE_BALL_DRAINEDISH_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_DRAINEDISH_SPLAT1,IMAGE_BALL_DRAINEDISH_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_DRAINEDISH_BODY" stretch="16,2,0.5" scale="1.19" /> <!-- 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 --> <!-- 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> <!-- Sound FX --> <sound event="marker" id="SOUND_BALL_DRAINEDISH_CHIRP01,SOUND_BALL_DRAINEDISH_CHIRP02,SOUND_BALL_DRAINEDISH_CHIRP03,SOUND_BALL_DRAINEDISH_CHIRP04,SOUND_BALL_DRAINEDISH_CHIRP05,SOUND_BALL_DRAINEDISH_CHIRP06,SOUND_BALL_DRAINEDISH_CHIRP07,SOUND_BALL_DRAINEDISH_CHIRP08,SOUND_BALL_DRAINEDISH_CHIRP09,SOUND_BALL_DRAINEDISH_CHIRP10,SOUND_BALL_DRAINEDISH_CHIRP11,SOUND_BALL_DRAINEDISH_CHIRP12"/> <sound event="pickup" id="SOUND_BALL_DRAINEDISH_SINCHIRP01,SOUND_BALL_DRAINEDISH_SINCHIRP02,SOUND_BALL_DRAINEDISH_SINCHIRP03,SOUND_BALL_DRAINEDISH_SINCHIRP04"/> <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="attach" id="SOUND_BALL_DRAINEDISH_SINCHIRPUP01,SOUND_BALL_DRAINEDISH_SINCHIRPUP02,SOUND_BALL_DRAINEDISH_SINCHIRPUP03,SOUND_BALL_DRAINEDISH_SINCHIRPUP04"/> <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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> </ball>
These balls are used in Regurgitation Pumping Station at the end of Chapter 1. They are lighter than air and will helpfully lift your ivy structure into the air, so you can see the the world around you.
They also make a brief appearance in the end-game movie, carrying an ivy structure through space.
<ball name="EvilEye" shape="circle,70,0.25" mass="30" strands="1" walkspeed="0" climbspeed="0" speedvariance="0" antigrav="3" dampening="0.1" grumpy="true" collideattached="true" invulnerable="true" autobounds="false" attenuationselect="0.1, 1.0, 1.1" attenuationdeselect="0.1, 1.1, 1.0" attenuationdrop="0.1, 1.1, 1.0" attenuationdrag="0.1, 1.1, 1.0" maxattachspeed="1000" hideeyes="false" > <marker drag="IMAGE_BALL_EVILEYE_DRAGMARKER" detach="IMAGE_BALL_EVILEYE_DETACHMARKER" rotspeed="2"/> <shadow image="IMAGE_BALL_GENERIC_SHADOW1"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="rope" image="IMAGE_BALL_EVILEYE_ARM" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="2" springconstmax="2" dampfac="0.002" maxlen2="300" maxlen1="300" maxforce="2000" minlen="120" walkable="false" thickness="20"/> <detachstrand maxlen="70" /> <splat image="IMAGE_BALL_EVILEYE_SPLAT1,IMAGE_BALL_EVILEYE_SPLAT2"/> <part name="body" layer="0" rotate="false" x="0" y="0" image="IMAGE_BALL_EVILEYE_BODY" stretch="24,1.1,0.9" scale="0.35" eye="true" pupil="IMAGE_BALL_EVILEYE_PUPIL" pupilinset="116" /> <!-- <part name="pupil" layer="1" rotate="false" x="0" y="0" image="IMAGE_BALL_EVILEYE_PUPIL" scale="0.35" /> --> <part name="shine" layer="2" rotate="false" x="0" y="0" image="IMAGE_BALL_EVILEYE_SHINE" stretch="24,1.1,0.9" scale="0.35" /> <!-- attached animations --> <sinvariance freq="0.3" amp="0.02" shift="0.8"> <sinanim part="body,shine" state="attached" type="scale" axis="x" freq="1.0" amp="0.2" shift="0" /> <sinanim part="body,shine" state="attached" type="scale" axis="y" freq="1.0" amp="0.2" shift="0.1" /> </sinvariance> <!-- walking animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body,shine" state="walking" type="scale" axis="x" freq=".20" amp="0.03" shift="0" /> <sinanim part="body,shine" state="walking" type="scale" axis="y" freq=".20" amp="0.03" shift="0.5" /> <sinanim part="body,shine" state="walking" type="translate" axis="y" freq=".20" amp="2" shift="0" /> </sinvariance> <!-- falling animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body,shine" state="falling" type="scale" axis="x" freq=".20" amp="0.03" shift="0" /> <sinanim part="body,shine" state="falling" type="scale" axis="y" freq=".20" amp="0.03" shift="0.5" /> <sinanim part="body,shine" state="falling" type="translate" axis="y" freq=".20" amp="2" shift="0" /> </sinvariance> <!-- dragging animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body,shine" state="dragging" type="scale" axis="x" freq=".20" amp="0.03" shift="0" /> <sinanim part="body,shine" state="dragging" type="scale" axis="y" freq=".20" amp="0.03" shift="0.5" /> <sinanim part="body,shine" state="dragging" type="translate" axis="y" freq=".20" amp="2" 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_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <sound event="drop" id="SOUND_BALL_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <sound event="throw" id="SOUND_BALL_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <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_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <sound event="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <sound event="death" id="SOUND_BALL_GENERIC_DEATH1"/> <sound event="deathfall" 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"/> <sound event="exit" id=""/> </ball>
This rather unique ball is used in the final chapter of the epilogue. It is lighter than air, and is used to lift the telescope into space.
<ball name="Fish" shape="circle,80,0.25" mass="20" towermass="5" strands="1" walkspeed="0" climbspeed="0" speedvariance="0.2" antigrav="14" dampening="0.115" grumpy="true" collideattached="true" statescales="attached,1.65, detaching,1.3" suckable="false" jump="0.0,0.4" maxattachspeed="1000" climber="false" jumponwakeup="true" staticwhensleeping="true" invulnerable="true" hideeyes="false" blinkcolor="0,0,0" detachable="false" > <marker drag="IMAGE_BALL_FISH_DRAGMARKER_P1" detach="IMAGE_BALL_FISH_DRAGMARKER_P1" rotspeed="2"/> <strand type="rope" image="IMAGE_BALL_FISH_STRING3" inactiveimage="IMAGE_BALL_FISH_INACTIVE" springconstmin="2" springconstmax="2" dampfac="0.002" maxlen2="380" maxlen1="500" shrinklen="160" maxforce="800" minlen="150" walkable="false" thickness="10"/> <splat image="IMAGE_BALL_FISH_SPLAT1,IMAGE_BALL_FISH_SPLAT2"/> <part name="wingLeft" layer="0" x="-64" y="0,0" image="IMAGE_BALL_TIMEBUG_WINGLEFT" scale="1" rotate="false" state="attached" /> <part name="wingRight" layer="0" x="64" y="0,0" image="IMAGE_BALL_TIMEBUG_WINGRIGHT" scale="1" rotate="false" state="attached" /> <part name="body" layer="1" rotate="true" x="0" y="0" image="IMAGE_BALL_FISH_BODY" stretch="32,2,0.5" scale="1.15" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-18,-12" y="0,7" xrange="-20,-10" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3" scale="0.6" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching" /> <part name="righteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="12,18" y="0,7" xrange="10,20" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3" scale="0.6" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching" /> <part name="lefteyeStuck" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-54,-54" y="0,0" xrange="-64,-22" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="1.0" state="attached" /> <part name="righteyeStuck" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="54,54" y="0,0" xrange="22,64" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="1.0" state="attached" /> <!-- attached animations --> <sinvariance freq="0.3" amp="0.02" shift="0.8"> <sinanim part="body" state="attached" type="scale" axis="x" freq="1.2" amp="0.1" shift="0" /> <sinanim part="body" state="attached" type="scale" axis="y" freq=".8" amp="0.1" shift="0.5" /> <sinanim part="body" state="attached" type="translate" axis="y" freq="1.4" amp="2" shift="0" /> <sinanim part="wingLeft" state="attached" type="translate" axis="y" freq="20.0" amp="12" shift="0" /> <sinanim part="wingRight" state="attached" type="translate" axis="y" freq="22.0" amp="12" shift="0" /> <sinanim part="lefteyeStuck,righteyeStuck" state="walking" type="translate" axis="y" freq="1.2" amp="4" shift="0" /> <sinanim part="righteyeStuck" state="walking" type="translate" axis="x" freq="1.2" amp="1" shift="0" /> <sinanim part="lefteyeStuck" state="walking" type="translate" axis="x" freq="1.2" amp="1" shift="0.5" /> </sinvariance> <!-- 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" /> </sinvariance> <!-- falling animations --> <sinvariance freq="1" amp="0.02" shift="0.5"> <sinanim part="body" state="falling" type="scale" axis="x" freq="2.0" amp="0.2" shift="0.5" /> <sinanim part="body" state="falling" type="scale" axis="y" freq="2.0" amp="0.2" shift="0.5" /> </sinvariance> <!-- dragging animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="dragging" type="scale" axis="x" freq="1.0" amp="0.05" shift="0" /> <sinanim part="body" state="dragging" type="scale" axis="y" freq="1.0" amp="0.05" 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_FISH_SQUAK1,SOUND_BALL_FISH_SQUAK2,SOUND_BALL_FISH_SQUAK3,SOUND_BALL_FISH_SQUAK4"/> <sound event="drop" id="SOUND_BALL_FISH_SQUAK1,SOUND_BALL_FISH_SQUAK2,SOUND_BALL_FISH_SQUAK3,SOUND_BALL_FISH_SQUAK4"/> <sound event="throw" id="SOUND_BALL_FISH_SQUAK1,SOUND_BALL_FISH_SQUAK2,SOUND_BALL_FISH_SQUAK3,SOUND_BALL_FISH_SQUAK4"/> <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_FISH_WINGFLAP1,SOUND_BALL_FISH_WINGFLAP2,SOUND_BALL_FISH_WINGFLAP3"/> <sound event="attachcloser" id="SOUND_BALL_FISH_WINGFLAP1,SOUND_BALL_FISH_WINGFLAP2,SOUND_BALL_FISH_WINGFLAP3"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <sound event="suction" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="exit" id=""/> </ball>
Used by
These balls catch fire - and ignite any adjacent flammable balls. They are useful for building fuses towards a bomb.
<ball name="Fuse" shape="circle,30,0.0" 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" burntime="2.0" detonateforce="0.01" detonateradius="100" explosionparticles="BallExplode_Fuse" > <marker drag="IMAGE_BALL_FUSE_DRAGMARKER_P1" detach="IMAGE_BALL_FUSE_DRAGMARKER_P1" rotspeed="-2"/> <shadow image="IMAGE_BALL_GENERIC_SHADOW1"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <particles id="fireBallBurn" states="onfire" overball="true" /> <strand type="spring" image="IMAGE_BALL_FUSE_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" burntimage="IMAGE_BALL_FUSE_STRAND_BURNT" ignitedelay="0" burnspeed="2" fireparticles="fireArmBurn" /> <detachstrand image="IMAGE_BALL_FUSE_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_FUSE_SPLAT1,IMAGE_BALL_FUSE_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_FUSE_BODY" stretch="16,2,0.5" scale="0.51" rotate="true" /> <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_FUSE_SIZZLE01,SOUND_BALL_FUSE_SIZZLE02,SOUND_BALL_FUSE_SIZZLE03"/> <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_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="ignite" id="SOUND_BALL_FUSE_IGNITE01,SOUND_BALL_FUSE_IGNITE02,SOUND_BALL_FUSE_IGNITE03,SOUND_BALL_FUSE_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_FUSE_POP01,SOUND_BALL_FUSE_POP02,SOUND_BALL_FUSE_POP03,SOUND_BALL_FUSE_POP04,SOUND_BALL_FUSE_POP05,SOUND_BALL_FUSE_POP06,SOUND_BALL_FUSE_POP07"/> <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>
Used by
This is the standard black ball. Once you attach it, you can't detach it.
<ball name="GooProduct" shape="circle,24,0.25" mass="20" towermass="5" strands="2" walkspeed="0.05" climbspeed="1.8" speedvariance="0.2" draggable="false" detachable="false" jump="0,0" grumpy="true" wakedist="30" autoboundsunattached="true" > <shadow image="IMAGE_BALL_GENERIC_SHADOW0"/> <splat image="IMAGE_BALL_GOOPRODUCT_SPLAT1,IMAGE_BALL_GOOPRODUCT_SPLAT2"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="spring" image="IMAGE_BALL_GOOPRODUCT_STRAND" inactiveimage="IMAGE_BALL_GOOPRODUCT_STRAND" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" /> <part name="goop1" layer="0" rotate="true" x="-4,4" y="-4,4" xrange="-6,6" yrange="-6,6" image="IMAGE_BALL_GOOPRODUCT_BODY" stretch="16,2,0.5" scale="0.5390625" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="goop2" layer="0" rotate="true" x="-4,4" y="-4,4" xrange="-6,6" yrange="-6,6" image="IMAGE_BALL_GOOPRODUCT_BODY" stretch="16,2,0.5" scale="0.5390625" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_GOOPRODUCT_BODY" stretch="16,2,0.5" scale="0.5390625" /> <part name="hilite1" layer="2" x="-5,0" y="6,10" image="IMAGE_BALL_GENERIC_HILITE1" scale="0.5" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="hilite2" layer="2" x="-10,-6" y="0,5" image="IMAGE_BALL_GENERIC_HILITE2" scale="0.5" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <sound event="throw" 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="drop" 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="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="pickup" id="SOUND_BALL_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <sound event="attach" 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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <sound event="death" id="SOUND_BALL_GENERIC_DEATH1"/> <sound event="suction" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="exit" id=""/> <!-- walking animations --> <sinvariance freq="0.2" amp="0.1" shift="0.0"> <sinanim part="body,hilite1,hilite2" state="walking" type="scale" axis="x" freq="1.0" amp="0.1" shift="0" /> <sinanim part="body,hilite1,hilite2" state="walking" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.5" /> <sinanim part="body" state="walking" type="translate" axis="y" freq="1.0" amp="2" shift="0" /> <sinanim part="hilite1,hilite2" state="walking" type="translate" axis="y" freq="1.0" amp="-2" shift="0.5" /> <sinanim part="goop1,goop2" state="walking" type="scale" axis="x" freq="1.0" amp="0.1" shift="0.3" /> <sinanim part="goop1,goop2" state="walking" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.8" /> </sinvariance> <!-- climbing animations --> <sinvariance freq="0.8" amp="0.1" shift="0.0"> <sinanim part="body,hilite1,hilite2" state="climbing" type="scale" axis="x" freq="2.0" amp="0.1" shift="0" /> <sinanim part="body,hilite1,hilite2" 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="hilite1,hilite2" state="climbing" type="translate" axis="y" freq="2.0" amp="-2" shift="0.5" /> <sinanim part="goop1,goop2" state="climbing" type="scale" axis="x" freq="2.0" amp="0.1" shift="0.3" /> <sinanim part="goop1,goop2" state="climbing" type="scale" axis="y" freq="2.0" amp="0.1" shift="0.8" /> </sinvariance> </ball>
This is the green "3D" ball used only in Alice and Bob and the Third Party.
FIXME: It appears to have more sound and animation, but is there a functional difference?
<ball name="Hex" shape="circle,24,0.25" mass="8" towermass="3" strands="0" walkspeed="0.05" climbspeed="2.8" speedvariance="0.2" draggable="false" detachable="false" jump="0,0" grumpy="false" autoboundsunattached="false" fallingattachment="false" invulnerable="true" > <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_HEX_BODY" stretch="16,2,0.5" scale="0.6" /> <!-- walking animations --> <sinvariance freq="0.2" amp="0.1" shift="0.0"> <sinanim part="body" state="walking" type="scale" axis="x" freq="1.0" amp="0.1" shift="0" /> <sinanim part="body" state="walking" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.5" /> <sinanim part="body" state="walking" type="translate" axis="y" freq="1.0" amp="2" shift="0" /> </sinvariance> <!-- climbing animations --> <sinvariance freq="0.8" 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" /> </sinvariance> </ball>
When you click on this, it produces a rectangular WindowRect Games icon. Used in the MOM level.
<ball name="IconWindowRect" static="true" shape="rectangle,50,50" mass="20" towermass="20" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" detachable="false" autobounds="false" autoboundsunattached="false" grumpy="true" suckable="false" spawn="WindowRect" stacking="true" > <part name="label" layer="0" x="0" y="-40" image="IMAGE_BALL_ICONWINDOWRECT_LABEL" scale="1"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_ICONWINDOWRECT_BODY" scale="1"/> </ball>
When you click on this, it produces a square WindowSquare Application icon. Used in the MOM level.
<ball name="IconWindowSquare" static="true" shape="rectangle,50,50" mass="20" towermass="20" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" detachable="false" autobounds="false" autoboundsunattached="false" grumpy="true" suckable="false" spawn="WindowSquare" stacking="true" > <part name="label" layer="0" x="0" y="-40" image="IMAGE_BALL_ICONWINDOWSQUARE_LABEL" scale="1"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_ICONWINDOWSQUARE_BODY" scale="1"/> </ball>
Used by
The fan's favourite Goo Ball. It has three arms and can be detached from a structure. Useful for taking all the Goo Balls to the pipe.
<ball name="Ivy" shape="circle,26,0.25" mass="20" towermass="5" strands="3" walkspeed="0.1" climbspeed="2.5" speedvariance="0.2" blinkcolor="0,0,0" jump="0.4,1.2" burntime="2.0" detonateforce="0" detonateradius="0" > <marker drag="IMAGE_BALL_IVY_DRAGMARKER_P1" detach="IMAGE_BALL_IVY_DETACHMARKER_P1" rotspeed="2" /> <shadow image="IMAGE_BALL_GENERIC_SHADOW0"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <particles id="poisonBallBurn" states="onfire" overball="false" /> <strand type="spring" image="IMAGE_BALL_IVY_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="7" springconstmax="7" dampfac="0.2" maxlen2="140" maxlen1="180" maxforce="300" minlen="110" shrinklen="130" burntimage="IMAGE_BALL_IVY_STRAND" ignitedelay="0" burnspeed="2" fireparticles="poisonArmBurn" /> <detachstrand image="IMAGE_BALL_IVY_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_IVY_SPLAT1,IMAGE_BALL_IVY_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_IVY_BODY" stretch="16,2,0.5" scale="0.51" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching,pipe" /> <part name="bodyAttached" layer="1" x="0" y="0" image="IMAGE_BALL_IVY_BODYATTACHED" stretch="16,2,0.5" scale="0.51" state="attached" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="14" x="-16,-10" y="0,7" xrange="-14,-8" yrange="-8,8" image="IMAGE_BALL_GENERIC_EYE_FEM_L1,IMAGE_BALL_GENERIC_EYE_FEM_L2" scale="0.5" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="righteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="14" x="10,16" y="0,7" xrange="8,14" yrange="-8,8" image="IMAGE_BALL_GENERIC_EYE_FEM_R1,IMAGE_BALL_GENERIC_EYE_FEM_R2" scale="0.5" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <part name="leaves" layer="3" rotate="true" x="-12,12" y="12,17" xrange="-12,12" yrange="12,18" image="IMAGE_BALL_IVY_LEAVES1,IMAGE_BALL_IVY_LEAVES2" scale="0.71875" state="climbing,walking,falling,attached,dragging,detaching,standing,tank,stuck,stuck_attached,stuck_detaching" /> <!-- walking animations --> <sinvariance freq="0.8" 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> <!-- climbing animations --> <sinvariance freq="0.8" 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> <!-- dragging animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="dragging" type="scale" axis="x" freq="1.0" amp="0.05" shift="0" /> <sinanim part="body" state="dragging" type="scale" axis="y" freq="1.0" amp="0.05" 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_IVY_CHIRP01,SOUND_BALL_IVY_CHIRP02,SOUND_BALL_IVY_CHIRP03,SOUND_BALL_IVY_CHIRP04,SOUND_BALL_IVY_CHIRP05"/> <sound event="drop" id="SOUND_BALL_IVY_CHIRP01,SOUND_BALL_IVY_CHIRP02,SOUND_BALL_IVY_CHIRP03,SOUND_BALL_IVY_CHIRP04,SOUND_BALL_IVY_CHIRP05"/> <sound event="throw" id="SOUND_BALL_IVY_CHIRP01,SOUND_BALL_IVY_CHIRP02,SOUND_BALL_IVY_CHIRP03,SOUND_BALL_IVY_CHIRP04,SOUND_BALL_IVY_CHIRP05"/> <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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" 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"/> <sound event="exit" id=""/> </ball>
A radioactive "3D" Goo Ball. Makes links with other Pilot balls. In certain levels (specifically Grape Vine Virus), you can turn green Bit bals into red Pilot balls.
Pilot balls will attach to other Pilot balls if given the chance. But note that if you shoot them directly at the exit pipe, they can happily exit the level and get you an extra ball!
<ball name="Pilot" shape="circle,36,0.25" walkforce="500" mass="30" towermass="4.0" strands="1" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="false" blinkcolor="0,255,0" jump="0.0,0.3" wakedist="60" hideeyes="true" fling="200,2.5" autoattach="true" collideattached="true" statescales="attached,1.25" suckable="true" autobounds="false" autoboundsunattached="true" > <marker drag="IMAGE_BALL_PILOT_DRAGMARKER_P1" detach="IMAGE_BALL_PILOT_DRAGMARKER_P1" rotspeed="2" /> <particles id="ishr_sleepyZzz" states="sleeping" overball="true" /> <particles id="ishr_FlingTrail" states="falling" overball="true" /> <particles id="ish_smallfire" states="onfire" overball="true" /> <strand type="rope" image="IMAGE_BALL_PILOT_ARM" inactiveimage="IMAGE_BALL_PILOT_ARM" springconstmin="7" springconstmax="7" dampfac="0.9" maxlen2="70" maxlen1="120" maxforce="1000" minlen="90" shrinklen="100" /> <detachstrand image="IMAGE_BALL_PILOT_ARROW" maxlen="60" /> <splat image="IMAGE_BALL_PILOT_SPLAT1,IMAGE_BALL_PILOT_SPLAT2"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_PILOT_BODY" stretch="16,2,0.5" scale="0.51" /> <part name="lefteye" layer="2" rotate="true" xrange="-18,0" yrange="-12,12" x="-12,-8" y="-5,5" image="IMAGE_BALL_PILOT_EYE1,IMAGE_BALL_PILOT_EYE2" state="climbing,walking,falling,dragging,detaching,standing,tank" scale="0.6" /> <part name="righteye" layer="2" rotate="true" xrange="0,18" yrange="-12,12" x="8,12" y="-5,5" image="IMAGE_BALL_PILOT_EYE1,IMAGE_BALL_PILOT_EYE2" state="climbing,walking,falling,dragging,detaching,standing,tank" scale="0.6" /> <!-- walking animations --> <sinvariance freq="0.8" 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> <!-- climbing animations --> <sinvariance freq="0.8" 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> <!-- Sound FX --> <sound event="marker" id="SOUND_BALL_PILOT_CHIRP01,SOUND_BALL_PILOT_CHIRP02,SOUND_BALL_PILOT_CHIRP03,SOUND_BALL_PILOT_CHIRP04,SOUND_BALL_PILOT_CHIRP05,SOUND_BALL_PILOT_CHIRP06,SOUND_BALL_PILOT_CHIRP07,SOUND_BALL_PILOT_CHIRP08,SOUND_BALL_PILOT_CHIRP09,SOUND_BALL_PILOT_CHIRP10,SOUND_BALL_PILOT_CHIRP11,SOUND_BALL_PILOT_CHIRP12"/> <sound event="pickup" id="SOUND_BALL_PILOT_CHIRP01,SOUND_BALL_PILOT_CHIRP02,SOUND_BALL_PILOT_CHIRP03,SOUND_BALL_PILOT_CHIRP04,SOUND_BALL_PILOT_CHIRP05,SOUND_BALL_PILOT_CHIRP06,SOUND_BALL_PILOT_CHIRP07,SOUND_BALL_PILOT_CHIRP08,SOUND_BALL_PILOT_CHIRP09,SOUND_BALL_PILOT_CHIRP10,SOUND_BALL_PILOT_CHIRP11,SOUND_BALL_PILOT_CHIRP12"/> <sound event="drop" id="SOUND_BALL_PILOT_CHIRP01,SOUND_BALL_PILOT_CHIRP02,SOUND_BALL_PILOT_CHIRP03,SOUND_BALL_PILOT_CHIRP04,SOUND_BALL_PILOT_CHIRP05,SOUND_BALL_PILOT_CHIRP06,SOUND_BALL_PILOT_CHIRP07,SOUND_BALL_PILOT_CHIRP08,SOUND_BALL_PILOT_CHIRP09,SOUND_BALL_PILOT_CHIRP10,SOUND_BALL_PILOT_CHIRP11,SOUND_BALL_PILOT_CHIRP12"/> <sound event="throw" id="SOUND_BALL_PILOT_CHIRP01,SOUND_BALL_PILOT_CHIRP02,SOUND_BALL_PILOT_CHIRP03,SOUND_BALL_PILOT_CHIRP04,SOUND_BALL_PILOT_CHIRP05,SOUND_BALL_PILOT_CHIRP06,SOUND_BALL_PILOT_CHIRP07,SOUND_BALL_PILOT_CHIRP08,SOUND_BALL_PILOT_CHIRP09,SOUND_BALL_PILOT_CHIRP10,SOUND_BALL_PILOT_CHIRP11,SOUND_BALL_PILOT_CHIRP12"/> <sound event="bounce" id="SOUND_BALL_PILOT_CHIRP01,SOUND_BALL_PILOT_CHIRP02,SOUND_BALL_PILOT_CHIRP03,SOUND_BALL_PILOT_CHIRP04,SOUND_BALL_PILOT_CHIRP05,SOUND_BALL_PILOT_CHIRP06,SOUND_BALL_PILOT_CHIRP07,SOUND_BALL_PILOT_CHIRP08,SOUND_BALL_PILOT_CHIRP09,SOUND_BALL_PILOT_CHIRP10,SOUND_BALL_PILOT_CHIRP11,SOUND_BALL_PILOT_CHIRP12"/> <sound event="land" id="SOUND_BALL_PILOT_CHIRP01,SOUND_BALL_PILOT_CHIRP02,SOUND_BALL_PILOT_CHIRP03,SOUND_BALL_PILOT_CHIRP04,SOUND_BALL_PILOT_CHIRP05,SOUND_BALL_PILOT_CHIRP06,SOUND_BALL_PILOT_CHIRP07,SOUND_BALL_PILOT_CHIRP08,SOUND_BALL_PILOT_CHIRP09,SOUND_BALL_PILOT_CHIRP10,SOUND_BALL_PILOT_CHIRP11,SOUND_BALL_PILOT_CHIRP12"/> <sound event="attach" id="SOUND_BALL_GENERIC_ATTACH01"/> <sound event="attachcloser" id="SOUND_BALL_GENERIC_ATTACH01"/> <sound event="snap" id="SOUND_BALL_PILOT_LAUNCH01,SOUND_BALL_PILOT_LAUNCH02,SOUND_BALL_PILOT_LAUNCH03,SOUND_BALL_PILOT_LAUNCH04,SOUND_BALL_PILOT_LAUNCH05,SOUND_BALL_PILOT_LAUNCH06,SOUND_BALL_PILOT_LAUNCH07"/> <sound event="death" id="SOUND_BALL_PILOT_PAIN01,SOUND_BALL_PILOT_PAIN02,SOUND_BALL_PILOT_PAIN03,SOUND_BALL_PILOT_PAIN04"/> <sound event="deathfall" id="SOUND_BALL_PILOT_PAIN01,SOUND_BALL_PILOT_PAIN02,SOUND_BALL_PILOT_PAIN03,SOUND_BALL_PILOT_PAIN04"/> <sound event="exit" id=""/> </ball>
These square "3D" balls can't be shot, but you can drag them around. You use them to build structures in the "3D" levels.
<ball name="Pixel" shape="rectangle,32,32" 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" burntime="0.1" detonateforce="0.01" detonateradius="10" explosionparticles="BallExplode_ISH" > <!-- For the marker, we need to be able to specify images for each player --> <marker drag="IMAGE_BALL_PIXEL_DRAGMARKER_P1" detach="IMAGE_BALL_PIXEL_DRAGMARKER_P1" rotspeed="-2"/> <particles id="ish_sleepyZzz" states="sleeping" overball="true" /> <particles id="ish_smallfire" states="onfire" overball="true" /> <strand type="spring" image="IMAGE_BALL_PIXEL_ARM" inactiveimage="IMAGE_BALL_PIXEL_ARM" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" burntimage="IMAGE_BALL_PIXEL_ARM" ignitedelay="0" burnspeed="3" fireparticles="ish_smallfire" /> <splat image="IMAGE_BALL_PIXEL_SPLAT1,IMAGE_BALL_PIXEL_SPLAT2"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_PIXEL_BODY" stretch="24,1.75,0.65" scale="0.5" /> <!-- walking animations --> <sinvariance freq="1.2" amp="0.1" shift="0.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> <!-- standing animations --> <!-- dragging animations --> <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> <!-- tank state animations --> <sinvariance freq="0.3" amp="0.02" shift="0.0"> <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="lefteye,righteye" state="tank" type="translate" axis="y" freq="0.4" amp="3" shift="0" /> </sinvariance> <!-- Sound FX --> <sound event="marker" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="pickup" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="drop" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="throw" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="bounce" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="land" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="attach" id="SOUND_BALL_PIXEL_CHIRPUP01,SOUND_BALL_PIXEL_CHIRPUP02,SOUND_BALL_PIXEL_CHIRPUP03,SOUND_BALL_PIXEL_CHIRPUP04"/> <sound event="attachcloser" id="SOUND_BALL_PIXEL_CHIRPUP01,SOUND_BALL_PIXEL_CHIRPUP02,SOUND_BALL_PIXEL_CHIRPUP03,SOUND_BALL_PIXEL_CHIRPUP04"/> <sound event="death" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="deathfall" id="SOUND_BALL_PIXEL_CHIRP01,SOUND_BALL_PIXEL_CHIRP02,SOUND_BALL_PIXEL_CHIRP03,SOUND_BALL_PIXEL_CHIRP04"/> <sound event="ignite" id="SOUND_BALL_PIXEL_IGNITE01,SOUND_BALL_PIXEL_IGNITE02,SOUND_BALL_PIXEL_IGNITE03,SOUND_BALL_PIXEL_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_PIXEL_POP01,SOUND_BALL_PIXEL_POP02,SOUND_BALL_PIXEL_POP03,SOUND_BALL_PIXEL_POP04,SOUND_BALL_PIXEL_POP05,SOUND_BALL_PIXEL_POP06,SOUND_BALL_PIXEL_POP07"/> </ball>
These are like Pixel balls, except they can't be moved around, and detonate rather more violently.
<ball name="PixelProduct" shape="rectangle,32,32" 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" burntime="2.0" detonateforce="500" detonateradius="100" draggable="false" grumpy="true" explosionparticles="BallExplode_ISH" > <particles id="ish_sleepyZzz" states="sleeping" overball="true" /> <particles id="ish_smallfire" states="onfire" overball="true" /> <strand type="spring" image="IMAGE_BALL_PIXELPRODUCT_ARM" inactiveimage="IMAGE_BALL_PIXELPRODUCT_ARM" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" burntimage="IMAGE_BALL_PIXELPRODUCT_ARM" ignitedelay="0" burnspeed="3" fireparticles="ish_smallfire" /> <splat image="IMAGE_BALL_PIXELPRODUCT_SPLAT1,IMAGE_BALL_PIXELPRODUCT_SPLAT2"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_PIXELPRODUCT_BODY" stretch="24,1.75,0.65" scale="0.5" /> <!-- walking animations --> <sinvariance freq="1.2" amp="0.1" shift="0.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> <!-- standing animations --> <!-- dragging animations --> <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> <!-- tank state animations --> <sinvariance freq="0.3" amp="0.02" shift="0.0"> <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="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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <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_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" 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"/> <sound event="exit" id=""/> <sound event="ignite" id="SOUND_BALL_PIXELPRODUCT_IGNITE01,SOUND_BALL_PIXELPRODUCT_IGNITE02,SOUND_BALL_PIXELPRODUCT_IGNITE03,SOUND_BALL_PIXELPRODUCT_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_PIXELPRODUCT_POP01,SOUND_BALL_PIXELPRODUCT_POP02,SOUND_BALL_PIXELPRODUCT_POP03,SOUND_BALL_PIXELPRODUCT_POP04,SOUND_BALL_PIXELPRODUCT_POP05,SOUND_BALL_PIXELPRODUCT_POP06,SOUND_BALL_PIXELPRODUCT_POP07"/> </ball>
Pokey is a friendlier than he looks. He has four arms, and will grapple to any surface you attach him to. You can use him to lift a structure off the ground.
According to legend, during World of Goo development, the game would crash if two Pokeys were present in a level. This no longer appears to be the case in production, however!
<ball name="Pokey" shape="circle,40" mass="60" towermass="6" strands="4" walkspeed="0.1" climbspeed="0.9" speedvariance="0.2" detachable="true" stickyattached="true" stickyunattached="false" blinkcolor="0,0,0" stuckattachment="false" grumpy="false" statescales="attached,1.25" attenuationselect="0.05, 1.0, 1.2" attenuationdeselect="0.05, 1.2, 1.0" attenuationdrop="0.05, 1.2, 1.0" attenuationdrag="0.05, 1.2, 1.0" maxattachspeed="1000" hideeyes="false" suckable="false" > <marker drag="IMAGE_BALL_POKEY_DRAGMARKER_P1" detach="IMAGE_BALL_POKEY_DETACHMARKER_P1" rotspeed="2" /> <shadow image="IMAGE_BALL_GENERIC_SHADOW1"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="spring" image="IMAGE_BALL_POKEY_STRAND" inactiveimage="IMAGE_BALL_POKEY_STRAND" springconstmin="6" springconstmax="6" dampfac="0.5" maxlen2="140" maxforce="1600" minlen="130" shrinklen="80" walkable="false" /> <detachstrand image="IMAGE_BALL_POKEY_DSTRAND" maxlen="60" /> <splat image="IMAGE_BALL_POKEY_SPLAT1,IMAGE_BALL_POKEY_SPLAT2"/> <part name="body" layer="0" x="0" y="0" stretch="16,2,0.5" image="IMAGE_BALL_POKEY_BODY" scale="0.65" rotate="true" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching,pipe" /> <part name="bodyStuck" layer="0" x="0" y="0" stretch="16,2,0.5" image="IMAGE_BALL_POKEY_BODYSTUCK" scale="0.65" rotate="true" state="attached" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-18,-12" y="0,7" xrange="-20,-10" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3" scale="0.5" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching" /> <part name="righteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="12,18" y="0,7" xrange="10,20" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3" scale="0.5" state="climbing,walking,falling,dragging,detaching,standing,tank,sleeping,stuck,stuck_attached,stuck_detaching" /> <part name="lefteyeStuck" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-32,-32" y="0,0" xrange="-32,-22" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="0.65" state="attached" /> <part name="righteyeStuck" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="32,32" y="0,0" xrange="22,32" yrange="-12,12" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2" scale="0.65" state="attached" /> <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="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_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <sound event="death" id="SOUND_BALL_GENERIC_DEATH1"/> <sound event="suction" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="exit" id=""/> <!-- walking animations --> <sinvariance freq="0.8" 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> <!-- falling animations --> <sinvariance freq="1" amp="0.02" shift="0.5"> <sinanim part="body" state="falling" type="scale" axis="x" freq="1.0" amp="0.07" shift="0.5" /> <sinanim part="body" state="falling" type="scale" axis="y" freq="1.0" amp="0.07" shift="0.5" /> </sinvariance> <sinvariance freq="2" amp="0.5" shift="0.5"> <sinanim part="righteye" state="falling" type="translate" axis="x" freq="1.0" amp="0.7" shift="0.5" /> <sinanim part="lefteye" state="falling" type="translate" axis="x" freq="1.0" amp="0.7" shift="0.5" /> </sinvariance> <!-- dragging animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="dragging" type="scale" axis="x" freq="1.0" amp="0.05" shift="0" /> <sinanim part="body" state="dragging" type="scale" axis="y" freq="1.0" amp="0.05" shift="0" /> </sinvariance> </ball>
A rectangular block. Useful for building barriers or nudging balls around.
<ball name="RectHead" shape="rectangle,200,50" walkforce="0" mass="600" towermass="200" dragmass="100" autodisable="true" strands="0" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" jump="0.0,0.0" collideattached="true" material="BlockBall" hingedrag="true" attenuationselect="0, 1" attenuationdeselect="0, 1" attenuationdrop="0, 1" attenuationdrag="0, 1" stacking="true" collidewithattached="true" suckable="false" > <marker drag="IMAGE_BALL_RECTHEAD_DRAGMARKER" detach="IMAGE_BALL_RECTHEAD_DRAGMARKER" rotspeed="-2"/> <shadow image="IMAGE_BALL_RECTHEAD_SHADOW"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <splat image="IMAGE_FX_SMOKEBLACK"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_RECTHEAD_BODY1,IMAGE_BALL_RECTHEAD_BODY2" scale="0.82" /> <part name="lefteye" layer="2" rotate="true" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" x="-40,-30" y="-5,5" xrange="-18,0" yrange="-12,12" image="IMAGE_BALL_RECTHEAD_EYE,IMAGE_BALL_RECTHEAD_EYE2" state="climbing,walking,falling,dragging,detaching,standing,tank" scale="0.75" /> <!-- 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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <sound event="drop" 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="throw" 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="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_RECTHEAD_BREAK01,SOUND_BALL_RECTHEAD_BREAK02,SOUND_BALL_RECTHEAD_BREAK03"/> <sound event="collidegeom" id="SOUND_BALL_RECTHEAD_BUMP01,SOUND_BALL_RECTHEAD_BUMP02,SOUND_BALL_RECTHEAD_BUMP03,SOUND_BALL_RECTHEAD_BUMP04,SOUND_BALL_RECTHEAD_BUMP05,SOUND_BALL_RECTHEAD_BUMP06"/> <sound event="collidesame" id="SOUND_BALL_RECTHEAD_BUMP01,SOUND_BALL_RECTHEAD_BUMP02,SOUND_BALL_RECTHEAD_BUMP03,SOUND_BALL_RECTHEAD_BUMP04,SOUND_BALL_RECTHEAD_BUMP05,SOUND_BALL_RECTHEAD_BUMP06"/> <sound event="collidediff" id="SOUND_BALL_RECTHEAD_BUMP01,SOUND_BALL_RECTHEAD_BUMP02,SOUND_BALL_RECTHEAD_BUMP03,SOUND_BALL_RECTHEAD_BUMP04,SOUND_BALL_RECTHEAD_BUMP05,SOUND_BALL_RECTHEAD_BUMP06"/> </ball>
This little ball is used only for the mini-game in the MOM level. It has no purpose except FUN!
<ball name="SimCommon" shape="circle,12,0.125" mass="10" towermass="3.5" strands="2" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="false" jump="0.4,1.2" autobounds="true" > <marker drag="IMAGE_BALL_SIMCOMMON_DRAGMARKER" detach="IMAGE_BALL_SIMCOMMON_DRAGMARKER" rotspeed="2"/> <strand type="spring" image="IMAGE_BALL_SIMCOMMON_STRAND" inactiveimage="IMAGE_BALL_SIMCOMMON_STRAND" springconstmin="2" springconstmax="3" dampfac="1.9" maxlen2="50" maxlen1="80" maxforce="600" minlen="40"/> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_SIMCOMMON_BODY" rotate="true" scale="0.5" stretch="12,2,0.5"/> <!-- walking animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body" state="walking" type="scale" axis="x" freq="1.0" amp="0.1" shift="0" /> <sinanim part="body" state="walking" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.5" /> <sinanim part="body" state="walking" type="translate" axis="y" freq="1.0" amp="2" shift="0" /> </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" /> </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> <!-- climbing animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body" state="climbing" type="scale" axis="x" freq="1.0" amp="0.1" shift="0" /> <sinanim part="body" state="climbing" type="scale" axis="y" freq="1.0" amp="0.1" shift="0.5" /> <sinanim part="body" state="climbing" type="translate" axis="y" freq="1.0" amp="2" shift="0" /> </sinvariance> <!-- Sound FX --> </ball>
The counterpart to Beauty, this ball is very ugly. It produces 16 UglyProducts that can protect you (along with 2 BeautyProductEyes).
<ball name="Ugly" shape="circle,230" mass="200" towermass="200" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" collidewithattached="true" statescales="tank,0.12" suckable="false" jump="0.0,0.0" climber="false" draggable="false" material="UglyBall" contains="16,UglyProduct,2,BeautyProductEye" popsound="SOUND_BALL_UGLY_POP" popduration="0.25" popparticles="beautypop" isbehindstrands="true" wakedist="200" invulnerable="true" blinkcolor="0,0,0" hideeyes="false" alwayslookatmouse="true" autoboundsunattached="true" antigrav="1.0" isantigravunattached="true" > <shadow image="IMAGE_BALL_UGLY_SHADOW"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_UGLY_BODY" stretch="24,1.2,0.9" scale="1.08" /> <part name="lips" layer="1" rotate="true" x="0" y="-55" xrange="-60,60" yrange="-115,-35" image="IMAGE_BALL_UGLY_LIPS" stretch="24,1.2,0.9" scale="1" /> <part name="eyel" layer="1" rotate="true" x="-80" y="40" xrange="-90,-70," yrange="20,40" image="IMAGE_BALL_UGLY_EYEL" stretch="24,1.2,0.9" scale="1" eye="true" pupil="IMAGE_BALL_UGLY_PUPIL" pupilinset="50" /> <part name="eyer" layer="1" rotate="true" x="95" y="30" xrange="85,105," yrange="20,40" image="IMAGE_BALL_UGLY_EYER" stretch="24,1.2,0.9" scale="1" eye="true" pupil="IMAGE_BALL_UGLY_PUPIL" pupilinset="40" /> <!-- walking animations --> <sinvariance freq="0" amp="0" shift="0.5"> <sinanim part="lips" state="walking" type="scale" axis="x" freq="0.25" amp="0.06" shift="0" /> <sinanim part="lips" state="walking" type="scale" axis="y" freq="0.25" amp="0.06" shift="0.5" /> <sinanim part="eyel" state="walking" type="scale" axis="x" freq="0.25" amp="0.06" shift="0.33" /> <sinanim part="eyel" state="walking" type="scale" axis="y" freq="0.25" amp="0.06" shift="0.33" /> <sinanim part="eyer" state="walking" type="scale" axis="x" freq="0.25" amp="0.06" shift="0.66" /> <sinanim part="eyer" state="walking" type="scale" axis="y" freq="0.25" amp="0.06" shift="0.66" /> </sinvariance> <!-- falling animations --> <sinvariance freq="0" amp="0" shift="0.5"> <sinanim part="lips" state="falling" type="scale" axis="x" freq="0.25" amp="0.06" shift="0" /> <sinanim part="lips" state="falling" type="scale" axis="y" freq="0.25" amp="0.06" shift="0.5" /> <sinanim part="eyel" state="falling" type="scale" axis="x" freq="0.25" amp="0.06" shift="0.33" /> <sinanim part="eyel" state="falling" type="scale" axis="y" freq="0.25" amp="0.06" shift="0.33" /> <sinanim part="eyer" state="falling" type="scale" axis="x" freq="0.25" amp="0.06" shift="0.66" /> <sinanim part="eyer" state="falling" type="scale" axis="y" freq="0.25" amp="0.06" shift="0.66" /> </sinvariance> <!-- Sound FX --> <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,SOUND_BALL_GENERIC_DEATH2,SOUND_BALL_GENERIC_DEATH3,SOUND_BALL_GENERIC_DEATH4,SOUND_BALL_GENERIC_DEATH5"/> </ball>
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>
This undelete "pill" needs to reach the bottom in the level "Deliverance", to trigger the end of the level.
<ball name="UndeletePill" shape="circle,80" mass="30" towermass="30" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" collidewithattached="true" suckable="false" jump="0.0,0.0" climber="false" draggable="false" material="rock" contains="80,UndeletePillFizz" popsound="SOUND_BALL_UNDELETEPILL_POP" popdelay="2,2" popduration="1.0" popparticles="beautypop" isbehindstrands="true" wakedist="600" invulnerable="true" autoboundsunattached="true" dampening="0.1" > <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_UNDELETEPILL_BODY" stretch="18,1.25,0.9" scale="1.0" /> </ball>
These balls aren't visible in the game; they're mostly to make other things work.
Used by
<ball name="Anchor" static="true" shape="circle,30" mass="20" towermass="20" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" detachable="false" autobounds="false" grumpy="true" suckable="false" > <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_ANCHOR_BODY" scale="0.6"/> </ball>
<ball name="AnchorFriendly" static="true" shape="circle,30" mass="20" towermass="20" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" detachable="false" autobounds="false" grumpy="false" suckable="false" > <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_ANCHORFRIENDLY_BODY" scale="0.6"/> </ball>
<ball name="AnchorSticky" static="false" shape="circle,10" mass="10" towermass="10" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" sticky="true" stuckattachment="true" detachable="false" invulnerable="true" > <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_ANCHORSTICKY_BODY" scale="0.5" /> </ball>
<ball name="AnchorStickyInvisible" static="false" shape="circle,30" mass="10" towermass="10" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" sticky="true" stuckattachment="true" detachable="false" grumpy="false" > </ball>
<ball name="UtilAttachUnwalkable" shape="circle,24,0.1" mass="30" towermass="5" strands="2" walkspeed="0" climbspeed="1" speedvariance="0" draggable="false" jump="0,0" grumpy="false" detachable="false" invulnerable="true" > <strand type="spring" image="IMAGE_BALL_UTILATTACHUNWALKABLE_STRAND" inactiveimage="IMAGE_BALL_UTILATTACHUNWALKABLE_STRAND" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" shrinklen="90" walkable="false" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_UTILATTACHUNWALKABLE_BODY" stretch="16,2,0.5" scale="0.5390625" /> </ball>
<ball name="UtilAttachWalkable" shape="circle,24,0.1" mass="20" towermass="3" strands="1" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" draggable="true" jump="0,0" grumpy="false" detachable="false" invulnerable="true" > <marker drag="IMAGE_BALL_UTILATTACHWALKABLE_DRAGMARKER_P1" detach="IMAGE_BALL_UTILATTACHWALKABLE_DRAGMARKER_P1" rotspeed="-2"/> <strand type="spring" image="IMAGE_BALL_UTILATTACHWALKABLE_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" shrinklen="90" walkable="true" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_UTILATTACHWALKABLE_BODY" stretch="16,2,0.5" scale="0.5390625" /> <!-- 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_UTILATTACHWALKABLE_SQUEAK01,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK02,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK03,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK04,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK05,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK06,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK07,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK08,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK09,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK10,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK11,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK12,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK13,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK14,SOUND_BALL_UTILATTACHWALKABLE_SQUEAK15,SOUND_BALL_UTILATTACHWALKABLE_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_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_ATTACH01,SOUND_BALL_GENERIC_ATTACH02,SOUND_BALL_GENERIC_ATTACH03,SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" 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"/> <sound event="exit" id=""/> </ball>
Used by
<ball name="UtilChapter2" shape="circle,16,0.1" mass="20" towermass="5" strands="2" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" invulnerable="true" > <strand type="spring" image="IMAGE_BALL_UTILCHAPTER2_STRAND" inactiveimage="IMAGE_BALL_UTILCHAPTER2_STRAND" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" shrinklen="90" walkable="false" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_UTILCHAPTER2_BODY" scale="0.3" /> </ball>
Used by
<ball name="UtilGooGlobber" shape="circle,100,0.25" mass="10" towermass="10" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" sticky="false" stuckattachment="false" invulnerable="true" > <particles id="OOS_gooGlobs" states="falling" overball="true" /> </ball>
<ball name="UtilGooGlobberMom" shape="circle,50,0" mass="10" towermass="10" strands="1" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" sticky="false" stuckattachment="false" invulnerable="true" contains="10,UtilGooGlobber" popsound="SOUND_BALL_UTILGOOGLOBBERMOM_POP" popduration="1.0" popparticles="OOS_gooGlobs" > <strand type="spring" image="IMAGE_BALL_UTILGOOGLOBBERMOM_STRAND" inactiveimage="IMAGE_BALL_UTILGOOGLOBBERMOM_STRAND" springconstmin="1" springconstmax="1" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="10" shrinklen="100" walkable="false" rope="true" /> </ball>
<ball name="UtilGooGlobberMomQuiet" shape="circle,50,0" mass="10" towermass="10" strands="1" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" sticky="false" stuckattachment="false" invulnerable="true" contains="10,UtilGooGlobber" popsound="SOUND_GLOBAL_EARTHQUAKE" popduration="1.0" popparticles="OOS_gooGlobs" > <strand type="spring" image="IMAGE_BALL_UTILGOOGLOBBERMOMQUIET_STRAND" inactiveimage="IMAGE_BALL_UTILGOOGLOBBERMOMQUIET_STRAND" springconstmin="1" springconstmax="1" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="10" shrinklen="100" walkable="false" rope="true" /> </ball>
<ball name="UtilNoAttachUnwalkable" shape="circle,24,0.1" mass="20" towermass="5" strands="2" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" invulnerable="true" > <strand type="spring" image="IMAGE_BALL_UTILNOATTACHUNWALKABLE_STRAND" inactiveimage="IMAGE_BALL_UTILNOATTACHUNWALKABLE_STRAND" springconstmin="9" springconstmax="9" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="100" shrinklen="90" walkable="false" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_UTILNOATTACHUNWALKABLE_BODY" stretch="16,2,0.5" scale="0.5390625" /> </ball>
<ball name="UtilNoAttachWalkableSmall" shape="circle,16,0.1" mass="10" towermass="10" strands="2" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" invulnerable="true" > <strand type="spring" image="IMAGE_BALL_UTILNOATTACHWALKABLESMALL_STRAND" inactiveimage="IMAGE_BALL_UTILNOATTACHWALKABLESMALL_STRAND" springconstmin="1" springconstmax="1" dampfac="0.9" maxlen2="140" maxlen1="200" maxforce="600" minlen="10" shrinklen="120" walkable="true" rope="true" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_UTILNOATTACHWALKABLESMALL_BODY" stretch="16,2,0.5" scale="0.25" /> </ball>
<ball name="UtilProductLauncherScreamer" shape="circle,50,0" mass="10" towermass="10" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" draggable="false" jump="0,0" grumpy="true" detachable="false" distantsounds="false" sticky="false" stuckattachment="false" invulnerable="false" antigrav="1.0" isantigravunattached="true" > <sound event="death" id="SOUND_BALL_UTILPRODUCTLAUNCHERSCREAMER_DEATH"/> <sound event="deathfall" id="SOUND_BALL_UTILPRODUCTLAUNCHERSCREAMER_DEATH"/> </ball>
Used by
This pseudo-ball surfaces and spams your screen upon completion of Deliverance.
<ball name="Spam" shape="rectangle,90,60,0.3" mass="20" towermass="5" strands="0" walkspeed="0.0" climber="false" speedvariance="0.2" draggable="false" detachable="false" jump="0.0,0.0" grumpy="true" antigrav="0.5" isantigravunattached="true" invulnerable="true" dampening="0.005" > <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_SPAM_B1,IMAGE_BALL_SPAM_B2,IMAGE_BALL_SPAM_B3,IMAGE_BALL_SPAM_B4,IMAGE_BALL_SPAM_B5,IMAGE_BALL_SPAM_B6" stretch="26,1.25,0.85" scale="1.45" rotate="true" /> </ball>
Used by
This "ball" represents the Time Bugs you can click on certain levels, where undo is available.
<ball name="TimeBug" shape="circle,20" walkforce="0" mass="10" towermass="0" strands="0" walkspeed="0.0" climbspeed="0" speedvariance="0" detachable="false" blinkcolor="0,0,0" jump="0.0,0.0" static="true" hideeyes="false" > <shadow image="IMAGE_BALL_TIMEBUG_GLOW" additive="true" /> <splat image="IMAGE_BALL_TIMEBUG_SPLAT1,IMAGE_BALL_TIMEBUG_SPLAT2"/> <part name="wingLeft" layer="0" x="-7" y="0,0" image="IMAGE_BALL_TIMEBUG_WINGLEFT" scale="0.634375" rotate="false" /> <part name="wingRight" layer="0" x="7" y="0,0" image="IMAGE_BALL_TIMEBUG_WINGRIGHT" scale="0.634375" rotate="false" /> <part name="body0" layer="1" x="0" y="0" image="IMAGE_BALL_TIMEBUG_BODY" stretch="12,3,0.4" scale="0.403125" state="falling" /> <part name="body1" layer="1" x="0" y="0" image="IMAGE_BALL_TIMEBUG_BODY" stretch="12,3,0.4" scale="0.671875" state="standing" /> <part name="lefteye" layer="2" rotate="false" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="12" x="-12,-8" y="-5,5" image="IMAGE_BALL_GENERIC_EYE_GLASS_1" scale="0.35" /> <part name="righteye" layer="2" rotate="false" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="12" x="8,12" y="-5,5" image="IMAGE_BALL_GENERIC_EYE_GLASS_1" scale="0.35" /> <!--particles id="sleepyZzz" states="falling" overball="true" /--> <!-- floating animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body0" state="falling" type="scale" axis="x" freq="2.0" amp="0.1" shift="0" /> <sinanim part="body0" state="falling" type="scale" axis="y" freq="2.0" amp="0.1" shift="0.5" /> <sinanim part="body0" state="falling" type="translate" axis="y" freq="2.0" amp="2" shift="0" /> <sinanim part="wingLeft" state="falling" type="translate" axis="y" freq="20.0" amp="6" shift="0" /> <sinanim part="wingRight" state="falling" type="translate" axis="y" freq="22.0" amp="6" shift="0" /> </sinvariance> <!-- selected animations --> <sinvariance freq="1.5" amp="0.05" shift="0"> <sinanim part="body0" state="standing" type="scale" axis="x" freq="1.0" amp="0.2" shift="0" /> <sinanim part="body0" state="standing" type="scale" axis="y" freq="1.0" amp="0.2" shift="0.33" /> <sinanim part="wingLeft" state="standing" type="translate" axis="y" freq="8.0" amp="5" shift="0" /> <sinanim part="wingRight" state="standing" type="translate" axis="y" freq="9.0" amp="5" 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_GENERIC_STICK1,SOUND_BALL_GENERIC_STICK2,SOUND_BALL_GENERIC_STICK3,SOUND_BALL_GENERIC_STICK4,SOUND_BALL_GENERIC_STICK5,SOUND_BALL_GENERIC_STICK6"/> <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_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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <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="deathfall" 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"/> <sound event="exit" id=""/> </ball>
Used by
Nobody knows for sure what this is. It's probably hardcoded into the game code, and has something to do with the animation at the end of Deliverance.
<ball name="UndeletePillFizz" shape="circle,20" mass="10" towermass="10" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" collidewithattached="false" suckable="false" jump="0.0,0.0" climber="false" draggable="false" contains="4,Spam" popsound="SOUND_BALL_UNDELETEPILLFIZZ_POP4" popdelay="2,12" popduration="4" popparticles="ISH_undeleteFizz" invulnerable="true" autoboundsunattached="true" > <particles id="ISH_undeleteFizz" states="falling" overball="true" /> </ball>
Used by
This rectangular window is produced in MOM's Computer when you click on an IconWindowRect icon.
<ball name="WindowRect" shape="rectangle,200,50" walkforce="0" mass="100" towermass="100" dragmass="40" strands="0" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" blinkcolor="0,0,0" hideeyes="true" alwayslookatmouse="true" jump="0.0,0.0" collideattached="true" material="BlockBall" autoboundsunattached="true" attenuationselect="0, 1" attenuationdeselect="0, 1" attenuationdrop="0, 1" attenuationdrag="0, 1" hingedrag="true" autodisable="true" stacking="true" collidewithattached="true" suckable="false" > <marker drag="IMAGE_BALL_WINDOWRECT_MARKER" detach="IMAGE_BALL_WINDOWRECT_MARKER" rotspeed="0"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <splat image="IMAGE_FX_SMOKEBLACK"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_WINDOWRECT_B1,IMAGE_BALL_WINDOWRECT_B2,IMAGE_BALL_WINDOWRECT_B3,IMAGE_BALL_WINDOWRECT_B4" scale="0.95" /> <!-- Sound FX --> <sound event="marker" id="SOUND_BALL_WINDOWRECT_BUMP01,SOUND_BALL_WINDOWRECT_BUMP02,SOUND_BALL_WINDOWRECT_BUMP03,SOUND_BALL_WINDOWRECT_BUMP04"/> <sound event="pickup" id="SOUND_BALL_WINDOWRECT_BUMP01,SOUND_BALL_WINDOWRECT_BUMP02,SOUND_BALL_WINDOWRECT_BUMP03,SOUND_BALL_WINDOWRECT_BUMP04"/> <sound event="collidegeom" id="SOUND_BALL_WINDOWRECT_BUMP01,SOUND_BALL_WINDOWRECT_BUMP02,SOUND_BALL_WINDOWRECT_BUMP03,SOUND_BALL_WINDOWRECT_BUMP04"/> <sound event="collidesame" id="SOUND_BALL_WINDOWRECT_BUMP01,SOUND_BALL_WINDOWRECT_BUMP02,SOUND_BALL_WINDOWRECT_BUMP03,SOUND_BALL_WINDOWRECT_BUMP04"/> <sound event="collidediff" id="SOUND_BALL_WINDOWRECT_BUMP01,SOUND_BALL_WINDOWRECT_BUMP02,SOUND_BALL_WINDOWRECT_BUMP03,SOUND_BALL_WINDOWRECT_BUMP04"/> <sound event="death" id="SOUND_BALL_WINDOWRECT_PAIN01,SOUND_BALL_WINDOWRECT_PAIN02,SOUND_BALL_WINDOWRECT_PAIN03,SOUND_BALL_WINDOWRECT_PAIN04"/> </ball>
Used by
This rectangular window is produced in MOM's Computer when you click on an IconWindowSquare icon.
<ball name="WindowSquare" shape="rectangle,100,100" walkforce="0" mass="100" towermass="100" dragmass="40" strands="0" walkspeed="0.1" climbspeed="2.0" speedvariance="0.2" detachable="true" blinkcolor="0,0,0" hideeyes="true" alwayslookatmouse="true" jump="0.0,0.0" collideattached="true" material="BlockBall" autoboundsunattached="true" attenuationselect="0, 1" attenuationdeselect="0, 1" attenuationdrop="0, 1" attenuationdrag="0, 1" hingedrag="true" autodisable="true" stacking="true" collidewithattached="true" suckable="false" > <marker drag="IMAGE_BALL_WINDOWSQUARE_MARKER" detach="IMAGE_BALL_WINDOWSQUARE_MARKER" rotspeed="0"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <splat image="IMAGE_FX_SMOKEBLACK"/> <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_WINDOWSQUARE_BODY_CLC,IMAGE_BALL_WINDOWSQUARE_BODY_CNSL,IMAGE_BALL_WINDOWSQUARE_BODY_NTPD" scale="0.95" /> <!-- Sound FX --> <sound event="marker" id="SOUND_BALL_WINDOWSQUARE_BUMP01,SOUND_BALL_WINDOWSQUARE_BUMP02,SOUND_BALL_WINDOWSQUARE_BUMP03,SOUND_BALL_WINDOWSQUARE_BUMP04"/> <sound event="pickup" id="SOUND_BALL_WINDOWSQUARE_BUMP01,SOUND_BALL_WINDOWSQUARE_BUMP02,SOUND_BALL_WINDOWSQUARE_BUMP03,SOUND_BALL_WINDOWSQUARE_BUMP04"/> <sound event="collidegeom" id="SOUND_BALL_WINDOWSQUARE_BUMP01,SOUND_BALL_WINDOWSQUARE_BUMP02,SOUND_BALL_WINDOWSQUARE_BUMP03,SOUND_BALL_WINDOWSQUARE_BUMP04"/> <sound event="collidesame" id="SOUND_BALL_WINDOWSQUARE_BUMP01,SOUND_BALL_WINDOWSQUARE_BUMP02,SOUND_BALL_WINDOWSQUARE_BUMP03,SOUND_BALL_WINDOWSQUARE_BUMP04"/> <sound event="collidediff" id="SOUND_BALL_WINDOWSQUARE_BUMP01,SOUND_BALL_WINDOWSQUARE_BUMP02,SOUND_BALL_WINDOWSQUARE_BUMP03,SOUND_BALL_WINDOWSQUARE_BUMP04"/> <sound event="death" id="SOUND_BALL_WINDOWSQUARE_PAIN01,SOUND_BALL_WINDOWSQUARE_PAIN02,SOUND_BALL_WINDOWSQUARE_PAIN03,SOUND_BALL_WINDOWSQUARE_PAIN04"/> </ball>
Used by
ZBombMOM contains 42 of these!
<ball name="ZBomb" shape="circle,35,0.125" walkforce="0" mass="30" towermass="3.0" strands="0" walkspeed="0.0" climbspeed="0.0" climber="false" speedvariance="0.0" detachable="false" draggable="false" blinkcolor="0,0,0" jump="0.0,0.0" wakedist="30" invulnerable="true" autoboundsunattached="true" burntime="7.0" detonateforce="2" detonateradius="300" antigrav="1.0" isantigravunattached="true" > <particles id="fireBallBurn" states="onfire" overball="true" /> <part name="body" layer="1" x="0" y="0" image="IMAGE_BALL_ZBOMB_BODY" stretch="16,2,0.5" scale="0.68" rotate="true" /> <part name="eye" 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.75" /> <!-- falling animations --> <sinvariance freq="1.2" amp="0.1" shift="0.0"> <sinanim part="body" state="falling" type="scale" axis="x" freq="2.0" amp="0.1" shift="0" /> <sinanim part="body" 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="eye" state="falling" type="translate" axis="x" freq="2.0" amp="0.5" shift="0.5" /> </sinvariance> <!-- Sound FX --> <sound event="ignite" id="SOUND_BALL_ZBOMB_IGNITE01,SOUND_BALL_ZBOMB_IGNITE02,SOUND_BALL_ZBOMB_IGNITE03,SOUND_BALL_ZBOMB_IGNITE04"/> <sound event="detonate" id="SOUND_BALL_ZBOMB_POP01,SOUND_BALL_ZBOMB_POP02,SOUND_BALL_ZBOMB_POP03,SOUND_BALL_ZBOMB_POP04,SOUND_BALL_ZBOMB_POP05,SOUND_BALL_ZBOMB_POP06,SOUND_BALL_ZBOMB_POP07"/> </ball>
Appears in ProductLauncher and contains 42 ZBomb products!
<ball name="ZBombMom" shape="circle,200" mass="60" towermass="60" strands="0" walkspeed="0" climbspeed="0" speedvariance="0" collidewithattached="true" statescales="tank,0.12" suckable="false" jump="0.0,0.0" climber="false" draggable="false" invulnerable="true" material="rock" contains="42,ZBomb" popsound="SOUND_BALL_ZBOMBMOM_POP" popduration="0.25" popparticles="beautypop" > <part name="body" layer="0" rotate="true" x="0" y="0" image="IMAGE_BALL_ZBOMBMOM_BODY" stretch="24,1.2,0.9" scale="1.08" /> <!-- animations --> <sinvariance freq="0.2" amp="0.0045" shift="0.0"> <sinanim part="body" state="falling" type="scale" axis="x" freq="1" amp="0.02" shift="0" /> <sinanim part="body" state="falling" type="scale" axis="y" freq="1" amp="0.02" shift="0.5" /> </sinvariance> </ball>
The water ball is a little drip. It only has one arm, so it can only attach below another ball.
<ball name="water" shape="circle,30" mass="30" towermass="3.0" strands="1" walkspeed="0.15" climbspeed="2.4" speedvariance="0.3" jump="0.0,0.1" detachable="false" flammable="false" > <marker drag="IMAGE_BALL_WATER_DRAGMARKER_P1" detach="IMAGE_BALL_WATER_DRAGMARKER_P1" rotspeed="2"/> <shadow image="IMAGE_BALL_WATER_SHADOW"/> <particles id="sleepyZzz" states="sleeping" overball="true" /> <strand type="rope" image="IMAGE_BALL_WATER_STRAND" inactiveimage="IMAGE_BALL_GENERIC_ARM_INACTIVE" springconstmin="4" springconstmax="4" dampfac="0.1" maxlen2="130" maxlen1="130" maxforce="800" minlen="120" rope="true"/> <detachstrand image="IMAGE_BALL_WATER_DSTRAND" maxlen="160" /> <splat image="IMAGE_BALL_WATER_SPLAT1,IMAGE_BALL_WATER_SPLAT2"/> <part name="body" layer="0" x="0" y="0" image="IMAGE_BALL_WATER_BODY" stretch="10,2.5,0.7" scale="0.5" /> <part name="lefteye" layer="1" rotate="true" x="-16,-11" y="-4,4" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3" scale="0.5" state="climbing,walking,falling,dragging,detaching,standing,tank" /> <part name="righteye" layer="1" rotate="true" x="11,16" y="-4,4" eye="true" pupil="IMAGE_BALL_GENERIC_PUPIL1" pupilinset="13" image="IMAGE_BALL_GENERIC_EYE_GLASS_1,IMAGE_BALL_GENERIC_EYE_GLASS_2,IMAGE_BALL_GENERIC_EYE_GLASS_3" scale="0.5" state="climbing,walking,falling,dragging,detaching,standing,tank" /> <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="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_GENERIC_PICKUP1,SOUND_BALL_GENERIC_PICKUP2,SOUND_BALL_GENERIC_PICKUP3,SOUND_BALL_GENERIC_PICKUP4,SOUND_BALL_GENERIC_PICKUP5,SOUND_BALL_GENERIC_PICKUP6,SOUND_BALL_GENERIC_PICKUP7,SOUND_BALL_GENERIC_PICKUP8,SOUND_BALL_GENERIC_PICKUP9,SOUND_BALL_GENERIC_PICKUP10"/> <sound event="attach" 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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="snap" id="SOUND_BALL_GENERIC_SNAP1"/> <sound event="death" id="SOUND_BALL_GENERIC_DEATH1"/> <sound event="suction" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="exit" id=""/> <!-- attached animations --> <sinvariance freq="0.3" amp="0.02" shift="0.8"> <sinanim part="body" state="attached" type="scale" axis="x" freq="1.2" amp="0.1" shift="0" /> <sinanim part="body" state="attached" type="scale" axis="y" freq="0.8" amp="0.1" shift="0.5" /> <sinanim part="body" state="attached" type="translate" axis="y" freq="1.4" amp="2" shift="0" /> <sinanim part="lefteye,righteye" state="attached" type="translate" axis="y" freq="0.9" amp="2" shift="0" /> <sinanim part="righteye" state="attached" type="translate" axis="x" freq="1.2" amp="0.5" shift="0" /> <sinanim part="lefteye" state="attached" type="translate" axis="x" freq="1.2" amp="0.5" shift="0.5" /> </sinvariance> <!-- 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> <!-- dragging animations --> <sinvariance freq="0.3" amp="0.03" shift="0"> <sinanim part="body" state="dragging" type="scale" axis="x" freq="1.0" amp="0.05" shift="0" /> <sinanim part="body" state="dragging" type="scale" axis="y" freq="1.0" amp="0.05" 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_WATER_DRIP01,SOUND_BALL_WATER_DRIP02,SOUND_BALL_WATER_DRIP03,SOUND_BALL_WATER_DRIP04,SOUND_BALL_WATER_DRIP05,SOUND_BALL_WATER_DRIP06,SOUND_BALL_WATER_DRIP07,SOUND_BALL_WATER_DRIP08,SOUND_BALL_WATER_DRIP09,SOUND_BALL_WATER_DRIP10"/> <sound event="drop" id="SOUND_BALL_WATER_DRIP01,SOUND_BALL_WATER_DRIP02,SOUND_BALL_WATER_DRIP03,SOUND_BALL_WATER_DRIP04,SOUND_BALL_WATER_DRIP05,SOUND_BALL_WATER_DRIP06,SOUND_BALL_WATER_DRIP07,SOUND_BALL_WATER_DRIP08,SOUND_BALL_WATER_DRIP09,SOUND_BALL_WATER_DRIP10"/> <sound event="throw" id="SOUND_BALL_WATER_DRIP01,SOUND_BALL_WATER_DRIP02,SOUND_BALL_WATER_DRIP03,SOUND_BALL_WATER_DRIP04,SOUND_BALL_WATER_DRIP05,SOUND_BALL_WATER_DRIP06,SOUND_BALL_WATER_DRIP07,SOUND_BALL_WATER_DRIP08,SOUND_BALL_WATER_DRIP09,SOUND_BALL_WATER_DRIP10"/> <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_WATER_DRIP01,SOUND_BALL_WATER_DRIP02,SOUND_BALL_WATER_DRIP03,SOUND_BALL_WATER_DRIP04,SOUND_BALL_WATER_DRIP05,SOUND_BALL_WATER_DRIP06,SOUND_BALL_WATER_DRIP07,SOUND_BALL_WATER_DRIP08,SOUND_BALL_WATER_DRIP09,SOUND_BALL_WATER_DRIP10"/> <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="detaching" id="SOUND_BALL_GENERIC_DETACHING1"/> <sound event="detached" id="SOUND_BALL_WATER_DRIP01,SOUND_BALL_WATER_DRIP02,SOUND_BALL_WATER_DRIP03,SOUND_BALL_WATER_DRIP04,SOUND_BALL_WATER_DRIP05,SOUND_BALL_WATER_DRIP06,SOUND_BALL_WATER_DRIP07,SOUND_BALL_WATER_DRIP08,SOUND_BALL_WATER_DRIP09,SOUND_BALL_WATER_DRIP10"/> <sound event="snap" id="SOUND_BALL_WATER_DRIP01,SOUND_BALL_WATER_DRIP02,SOUND_BALL_WATER_DRIP03,SOUND_BALL_WATER_DRIP04,SOUND_BALL_WATER_DRIP05,SOUND_BALL_WATER_DRIP06,SOUND_BALL_WATER_DRIP07,SOUND_BALL_WATER_DRIP08,SOUND_BALL_WATER_DRIP09,SOUND_BALL_WATER_DRIP10"/> <sound event="death" id="SOUND_BALL_WATER_SPLASH01,SOUND_BALL_WATER_SPLASH02,SOUND_BALL_WATER_SPLASH03,SOUND_BALL_WATER_SPLASH04"/> <sound event="deathfall" id="SOUND_BALL_WATER_SPLASH01,SOUND_BALL_WATER_SPLASH02,SOUND_BALL_WATER_SPLASH03,SOUND_BALL_WATER_SPLASH04"/> <sound event="suction" id="SOUND_BALL_GENERIC_DETACHED1"/> <sound event="exit" id=""/> </ball>