the cutting room mirror

Jelly Battle

This game is defunct.
Do note the game no longer works at all without modifications. This is most likely due to the game's servers being shut down. As a result, further official developments with the game are unlikely to happen.

A follow-up to 20:20's previous advergame Jelly Jumper, all hell breaks loose when a couple of jelly babies fight to the death on a Logitech™ branded keyboard in a surprisingly fun strategy game.

Due to the way the game's files were hosted (the site hosted a base "shell.swf" which would download the actual game data from 20:20's servers), it effectively became lost media when the game's servers shut down sometime around 2014, long before the discontinuation of Adobe Flash. Its files were later rediscovered and can now be played on the Flashpoint Archive, albeit only in single player.

Rocket Item#

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Is there a way to get this item to work in-game?

Hidden in the game's SWF file is what appears to be an unused rocket weapon which is implied to launch in either one of the eight directions from the player. The rocket graphic was used in the final game for the Air Strike item, just only turned at an angle. Its icon makes an appearance as well, and coding exists for this particular item.

class arena.Rocket extends MovieClip
{
   var dampK = 0.99;
   var slowK = 0.96;
   var dampCollision = 0.85;
   var gravK = 0.03;
   var displayscale = 34.2;
   var displaceY = -2;
   var rad = 0.017453292519943295;
   var xs = 0;
   var zs = 0;
   var fCount = 0;
   var pC = 0;
   var pCLimit = 10;
   var isEndCall = false;
   function Rocket(xRef, yRef, zRef, dir, aX, aZ, shad, sourcePlayer, targetPlayer, frameCount, e)
   {
      super();
      trace("Rocket");
      trace("---xRef:" + xRef);
      trace("---yRef:" + yRef);
      trace("---zRef:" + zRef);
      trace("---dir:" + dir);
      trace("---aX:" + aX);
      trace("---aZ:" + aZ);
      this.dir = dir;
      this.shad = shad;
      this.sourcePlayer = sourcePlayer;
      this.targetPlayer = targetPlayer;
      this.frameCount = frameCount;
      this.e = e;
      this.arenaRef = this._parent;
      trace("---arenaRef:" + this.arenaRef);
      this.sp = this.arenaRef.sp;
      this.myloc = new vector.Vector(xRef,yRef,zRef);
      this.xs = (xRef - aX) / 3;
      this.zs = (0 - (zRef - aZ)) / 3;
      this.onEnterFrame = this.proc;
      this.proc();
      this.proc();
   }
   function proc()
   {
      this.fCount = this.fCount + 1;
      this.myloc._x += this.xs;
      this.myloc._z += this.zs;
      var _loc2_ = this.sp.getPosition(this.myloc);
      this._yscale = _loc2_.myScale * this.displayscale * 0.2;
      this._xscale = _loc2_.myScale * this.displayscale * 0.2;
      this._x = _loc2_._x;
      this._y = _loc2_._y - this.displaceY * _loc2_.myScale * this.displayscale;
      this.swapDepths(Math.round(10000 - this.myloc._z * 2000 + 32));
      _loc2_ = this.sp.getPosition(new vector.Vector(this.myloc._x,0 - this.myloc._y,this.myloc._z));
      this.shad._yscale = _loc2_.myScale * this.displayscale * 0.2;
      this.shad._xscale = _loc2_.myScale * this.displayscale * 0.2;
      this.shad._x = _loc2_._x;
      this.shad._y = _loc2_._y - this.displaceY * _loc2_.myScale * this.displayscale;
      if(this._x < -20)
      {
         this.clear();
      }
      else if(this._x > 770)
      {
         this.clear();
      }
      else if(this._y < -10)
      {
         this.clear();
      }
      else if(this._y > 450)
      {
         this.clear();
      }
      if(this.targetPlayer != undefined)
      {
         if(this.fCount >= this.frameCount)
         {
            this.explode();
         }
      }
   }
   function explode()
   {
      this._parent.bonusSystem.rocketHit(this.targetPlayer,this.dir);
      this.clear();
   }
   function clear()
   {
      this.e.eventFinished("rocket");
      this.sourcePlayer.endRocket();
      this.shad.removeMovieClip();
      this.removeMovieClip();
   }
}

Unused Victory Animation#

A leftover from Jelly Jumper, previously developed by 20:20. The clear version of the character implies a "winning" animation would have been implemented depending on which opponent won in a round.