home *** CD-ROM | disk | FTP | other *** search
Text File | 2007-10-01 | 38.8 KB | 1,067 lines |
- class com.neodelight.r2d.R2d
- {
- var lvl;
- var worldTileX;
- var worldTileY;
- var worldX;
- var worldY;
- var mc;
- var fx;
- var springs;
- var timeStart;
- var xtras;
- var player;
- var map;
- var lines;
- var linesLen;
- var cameraX;
- var cameraY;
- var freeze;
- var hopSustain;
- var hopLock;
- var hopSoundLock;
- var accTilt;
- var idleTimer;
- var matrix;
- var texture;
- var sndDrive;
- var engine;
- var pushCount;
- var timeSpeed = 400;
- function R2d()
- {
- _root.engine = this;
- var _loc0_ = null;
- var _loc12_ = this.lvl = _global.lib.lvls[_global.game.actLevel];
- this.worldTileX = -Infinity;
- this.worldTileY = -Infinity;
- this.worldX = this.lvl.startX - 275;
- this.worldY = this.lvl.startY - 250;
- _root.createEmptyMovieClip("gameMc",0);
- this.mc = _root.gameMc;
- this.fx = new com.neodelight.std.ColorFader(this.mc);
- this.mc.attachMovie("background","backgroundMc",0);
- this.mc.createEmptyMovieClip("bg",2);
- this.mc.attachMovie("wheel","wheel1",12,{_x:179,_y:230,_rotation:random(360)});
- this.mc.attachMovie("wheel","wheel2",13,{_x:371,_y:230,_rotation:random(360)});
- this.mc.attachMovie("body","body",14,{_x:275,_y:250});
- this.mc.createEmptyMovieClip("driver",15);
- this.mc.driver._visible = false;
- this.mc.createEmptyMovieClip("xtrasMc",1);
- this.mc.attachMovie("leg1","leg1b",8);
- this.mc.leg1b.col = new Color(this.mc.leg1b);
- this.mc.leg1b.col.setTransform({ra:80,rb:0,ga:80,gb:0,ba:80,bb:0,aa:100,ab:0});
- this.mc.attachMovie("leg2","leg2b",9);
- this.mc.leg2b.col = new Color(this.mc.leg2b);
- this.mc.leg2b.col.setTransform({ra:80,rb:0,ga:80,gb:0,ba:80,bb:0,aa:100,ab:0});
- this.mc.driver.attachMovie("torso","torso",10);
- this.mc.driver.attachMovie("leg1","leg1",11);
- this.mc.driver.attachMovie("leg2","leg2",12);
- this.mc.driver.attachMovie("arm1","arm1",14);
- this.mc.driver.attachMovie("arm2","arm2",15);
- this.newForce(this.mc.wheel1,235,230);
- this.newForce(this.mc.wheel2,315,230);
- var _loc6_ = undefined;
- this.mc.anchor0 = {};
- _loc6_ = {x:this.mc.body.a0._x,y:this.mc.body.a0._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.anchor0,_loc6_.x,_loc6_.y,true);
- this.mc.anchor1 = {};
- _loc6_ = {x:this.mc.body.a1._x,y:this.mc.body.a1._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.anchor1,_loc6_.x,_loc6_.y);
- this.mc.anchor2 = {};
- _loc6_ = {x:this.mc.body.a2._x,y:this.mc.body.a2._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.anchor2,_loc6_.x,_loc6_.y,true);
- this.mc.anchor2b = {};
- _loc6_ = {x:this.mc.body.a2b._x,y:this.mc.body.a2b._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.anchor2b,_loc6_.x,_loc6_.y,true);
- this.mc.driver0 = {};
- _loc6_ = {x:this.mc.body.r0._x,y:this.mc.body.r0._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.driver0,_loc6_.x,_loc6_.y);
- this.mc.driver1 = {};
- _loc6_ = {x:this.mc.body.r1._x,y:this.mc.body.r1._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.driver1,_loc6_.x,_loc6_.y);
- this.mc.driver2 = {};
- _loc6_ = {x:this.mc.body.r2._x,y:this.mc.body.r2._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.driver2,_loc6_.x,_loc6_.y);
- this.mc.driver2b = {};
- _loc6_ = {x:this.mc.body.r2b._x,y:this.mc.body.r2b._y};
- this.mc.body.localToGlobal(_loc6_);
- this.newForce(this.mc.driver2b,_loc6_.x,_loc6_.y);
- this.mc.driver2b;
- this.springs = [[this.mc.wheel1,this.mc.wheel2],[this.mc.driver0,this.mc.anchor0],[this.mc.driver1,this.mc.anchor0],[this.mc.driver0,this.mc.driver1],[this.mc.anchor1,this.mc.driver1],[this.mc.driver0,this.mc.anchor1],[this.mc.anchor1,this.mc.driver2],[this.mc.anchor1,this.mc.driver2b],[this.mc.driver2,this.mc.anchor2][this.mc.anchor2b]];
- for(var _loc7_ in this.springs)
- {
- var _loc4_ = this.springs[_loc7_];
- var _loc9_ = _loc4_[0].x - _loc4_[1].x;
- var _loc8_ = _loc4_[0].y - _loc4_[1].y;
- _loc4_[2] = int(Math.sqrt(_loc9_ * _loc9_ + _loc8_ * _loc8_) * 100) / 100;
- }
- this.mc.attachMovie("hud","hud",18);
- this.mc.hud._x = 0;
- this.mc.hud._y = 0;
- this.timeStart = getTimer();
- _global.tagCount = 0;
- _global.numberOfTags = 0;
- this.xtras = new Array(this.lvl.xtras.length);
- _loc7_ = this.lvl.xtras.length;
- while(true)
- {
- _loc7_;
- if(!_loc7_--)
- {
- break;
- }
- var _loc5_ = this.lvl.xtras[_loc7_];
- if(_loc5_[2] == 2)
- {
- _global.numberOfTags = _global.numberOfTags + 1;
- }
- this.xtras[_loc7_] = [_loc5_[0],_loc5_[1],_loc5_[2],null,false,false];
- }
- var _loc0_ = null;
- var _loc11_ = this.player = {};
- _loc11_.vel = 0;
- _loc11_.dir = 1;
- _loc11_.pedalPos = 0;
- _loc11_.tilt = 0;
- _loc11_.dead = 0;
- _loc11_.ducking = 0;
- var _loc10_ = _root.shared;
- this.mc.driver.torso.head.gotoAndStop(_loc10_.data.bikeProperties[0]);
- this.mc.driver.torso.gotoAndStop(_loc10_.data.bikeProperties[1]);
- this.mc.driver.arm1.gotoAndStop(_loc10_.data.bikeProperties[1]);
- this.mc.driver.arm2.gotoAndStop(_loc10_.data.bikeProperties[1]);
- this.mc.driver.torso.pants.gotoAndStop(_loc10_.data.bikeProperties[2]);
- this.mc.driver.leg1.gotoAndStop(_loc10_.data.bikeProperties[2]);
- this.mc.driver.leg2.gotoAndStop(_loc10_.data.bikeProperties[2]);
- this.mc.leg1b.gotoAndStop(_loc10_.data.bikeProperties[2]);
- this.mc.leg2b.gotoAndStop(_loc10_.data.bikeProperties[2]);
- this.mc.wheel1.gotoAndStop(_loc10_.data.bikeProperties[3]);
- this.mc.wheel2.gotoAndStop(_loc10_.data.bikeProperties[3]);
- this.mc.body.gotoAndStop(_loc10_.data.bikeProperties[4]);
- if(_loc10_.data.bikeProperties[4] === 1)
- {
- _loc11_.maxVel = (1 - _loc12_.ice) * 10 + _loc12_.ice * 5;
- _loc11_.acc1 = (1 - _loc12_.ice) * 1.6 + _loc12_.ice * 0.8;
- _loc11_.acc2 = 0.4;
- _loc11_.minVel = (1 - _loc12_.ice) * -8 + _loc12_.ice * -4;
- }
- this.map = [];
- this.lines = new Array(200);
- _loc7_ = 0;
- while(_loc7_ < 200)
- {
- this.lines[_loc7_] = [0,0,0,0];
- _loc7_ = _loc7_ + 1;
- }
- this.linesLen = 0;
- this.cameraX = 0;
- this.cameraY = 0;
- this.freeze = 0;
- this.hopSustain = 0;
- this.hopLock = 0;
- this.hopSoundLock = 0;
- this.accTilt = 0.023;
- _root.keySpace = true;
- this.mc.backgroundMc.gotoAndStop(this.lvl.skin + 1);
- this.idleTimer = -1;
- _root.inGame = true;
- this.matrix = new flash.geom.Matrix();
- this.texture = flash.display.BitmapData.loadBitmap("texture" + this.lvl.skin);
- this.sndDrive = _global.snd.channelsById.drive;
- _global.snd.playEvent("sndLevelStart",1);
- this.mc.engine = this;
- this.mc.i = 0;
- this.mc.onEnterFrame = function()
- {
- _root.a.startCount();
- this.engine.move();
- _root.a.stopCount();
- };
- this.fx.fadeTo(com.neodelight.std.ColorFader.FX_BLACK,0);
- this.fx.fadeTo(com.neodelight.std.ColorFader.FX_NONE,10);
- _root.attachMovie("go","goMc",_root.getNextHighestDepth());
- }
- function debug()
- {
- this.mc.attachMovie("light","light",50,{_x:0,_y:20});
- }
- function verlet(v)
- {
- var _loc3_ = v.ox;
- var _loc2_ = v.oy;
- v.ox = v.x;
- v.oy = v.y;
- if(v.f > 0)
- {
- v.fx /= v.f;
- }
- if(v.f > 0)
- {
- v.fy /= v.f;
- }
- v.x += 0.99 * (v.x - _loc3_) + v.fx;
- v.y += 0.99 * (v.y - _loc2_) + v.fy + 1.5;
- v.fx = v.fy = v.f = 0;
- }
- function zero(n)
- {
- if(n < 10)
- {
- return "0" + n;
- }
- return n.toString();
- }
- function newForce(o, x, y, isAnchor)
- {
- o.x = o.ox = x;
- o.y = o.oy = y;
- o.fx = o.fy = o.f = 0;
- if(isAnchor)
- {
- o.a = true;
- }
- }
- function drawMap()
- {
- var _loc9_ = this.mc;
- var _loc14_ = _loc9_.bg;
- var _loc17_ = this.lvl;
- var _loc18_ = _loc17_.colFill;
- var _loc16_ = this.map;
- var _loc11_ = this.worldX;
- var _loc10_ = this.worldY;
- _loc14_.clear();
- _loc14_.lineStyle(0,0,0);
- var _loc12_ = this.lines;
- var _loc3_ = null;
- var _loc7_ = 0;
- var _loc6_ = 0;
- var _loc5_ = 0;
- var _loc13_ = 0;
- var _loc8_ = 0;
- var _loc4_ = undefined;
- var _loc15_ = _loc16_.length;
- while(true)
- {
- _loc15_;
- if(!_loc15_--)
- {
- break;
- }
- _loc3_ = _loc16_[_loc15_];
- if(!(_loc3_[0][0] > _loc11_ + 550 || _loc3_[0][2] < _loc11_ || _loc3_[0][1] > _loc10_ + 400 || _loc3_[0][3] < _loc10_))
- {
- _loc7_ = _loc3_[0][4] - _loc11_;
- _loc6_ = _loc3_[0][5] - _loc10_;
- this.matrix.tx = - _loc11_;
- this.matrix.ty = - _loc10_;
- _loc14_.beginBitmapFill(this.texture,this.matrix);
- _loc14_.moveTo(_loc3_[1][0] + _loc7_,_loc3_[1][1] + _loc6_);
- _loc5_ = 2;
- _loc13_ = _loc3_.length;
- _root.a1.startCount();
- while(_loc5_ < _loc13_)
- {
- _loc4_ = _loc12_[_loc8_];
- _loc4_[0] = _loc3_[_loc5_ - 1][0] + _loc7_;
- _loc4_[1] = _loc3_[_loc5_ - 1][1] + _loc6_;
- _loc4_[2] = _loc3_[_loc5_][0] + _loc7_;
- _loc4_[3] = _loc3_[_loc5_][1] + _loc6_;
- _loc8_ = _loc8_ + 1;
- _loc9_.bg.lineTo(_loc4_[2],_loc4_[3]);
- _loc5_ = _loc5_ + 1;
- }
- _loc4_ = _loc12_[_loc8_];
- _loc4_[0] = _loc3_[_loc5_ - 1][0] + _loc7_;
- _loc4_[1] = _loc3_[_loc5_ - 1][1] + _loc6_;
- _loc4_[2] = _loc3_[1][0] + _loc7_;
- _loc4_[3] = _loc3_[1][1] + _loc6_;
- _loc8_ = _loc8_ + 1;
- _loc9_.bg.lineTo(_loc4_[2],_loc4_[3]);
- _loc9_.bg.endFill();
- _root.a1.stopCount();
- }
- }
- this.linesLen = _loc8_;
- }
- function refreshMap()
- {
- var _loc8_ = int(this.worldX / 550);
- var _loc7_ = int(this.worldY / 400);
- if(_loc8_ != this.worldTileX || _loc7_ != this.worldTileY)
- {
- var _loc4_ = this.lvl.map;
- this.worldTileX = _loc8_;
- this.worldTileY = _loc7_;
- delete this.map;
- this.map = new Array();
- var _loc6_ = _loc8_ * 550;
- var _loc5_ = _loc7_ * 400;
- var _loc2_ = null;
- var _loc3_ = _loc4_.length;
- while(true)
- {
- _loc3_;
- if(!_loc3_--)
- {
- break;
- }
- _loc2_ = _loc4_[_loc3_][0];
- if(!(_loc2_[0] > _loc6_ + 1100 || _loc2_[1] > _loc5_ + 800 || _loc2_[2] < _loc6_ || _loc2_[3] < _loc5_))
- {
- this.map.push(_loc4_[_loc3_]);
- }
- }
- }
- }
- function constraints(v, acc)
- {
- var _loc18_ = this.player;
- var _loc35_ = this.lvl;
- var _loc40_ = this.mc;
- var _loc37_ = _loc40_.bg;
- var _loc17_ = Math.sqrt;
- var _loc22_ = undefined;
- var _loc20_ = undefined;
- var _loc12_ = undefined;
- var _loc21_ = undefined;
- var _loc19_ = undefined;
- var _loc29_ = undefined;
- var _loc26_ = undefined;
- var _loc14_ = undefined;
- var _loc13_ = undefined;
- var _loc7_ = undefined;
- v.ground = false;
- var _loc24_ = v == _loc40_.driver0;
- var _loc15_ = undefined;
- var _loc25_ = undefined;
- if(_loc24_)
- {
- _loc15_ = 11;
- _loc25_ = 100;
- }
- else
- {
- _loc15_ = 25;
- _loc25_ = 576;
- }
- if(_loc37_.hitTest(v.x,v.y,true))
- {
- if(_loc24_)
- {
- return true;
- }
- _loc14_ = v.ox - v.x;
- _loc13_ = v.oy - v.y;
- _loc7_ = _loc17_(_loc14_ * _loc14_ + _loc13_ * _loc13_);
- _loc14_ /= _loc7_;
- _loc13_ /= _loc7_;
- do
- {
- v.x += _loc14_ * 20;
- v.y += _loc13_ * 20;
- }
- while(_loc37_.hitTest(v.x,v.y,true));
-
- v.ox = v.x;
- v.oy = v.y;
- trace("SND cheap collision");
- _global.snd.playEvent("sndBump",1);
- }
- var _loc33_ = undefined;
- var _loc30_ = undefined;
- var _loc31_ = undefined;
- var _loc27_ = undefined;
- var _loc9_ = undefined;
- var _loc11_ = undefined;
- var _loc8_ = undefined;
- var _loc10_ = undefined;
- var _loc6_ = undefined;
- var _loc5_ = undefined;
- var _loc4_ = undefined;
- var _loc23_ = undefined;
- var _loc36_ = undefined;
- var _loc16_ = undefined;
- var _loc41_ = undefined;
- var _loc34_ = this.linesLen;
- var _loc38_ = this.lines;
- var _loc32_ = undefined;
- var _loc28_ = undefined;
- while(true)
- {
- _loc34_;
- if(!_loc34_--)
- {
- break;
- }
- _loc16_ = _loc38_[_loc34_];
- _loc9_ = _loc16_[0];
- _loc11_ = _loc16_[1];
- _loc8_ = _loc16_[2];
- _loc10_ = _loc16_[3];
- if(_loc9_ < _loc8_)
- {
- _loc33_ = _loc9_;
- _loc30_ = _loc8_;
- }
- else
- {
- _loc33_ = _loc8_;
- _loc30_ = _loc9_;
- }
- if(_loc11_ < _loc10_)
- {
- _loc31_ = _loc11_;
- _loc27_ = _loc10_;
- }
- else
- {
- _loc31_ = _loc10_;
- _loc27_ = _loc11_;
- }
- if(!(v.x + 30 < _loc33_ || v.x - 30 > _loc30_ || v.y + 30 < _loc31_ || v.y - 30 > _loc27_))
- {
- _loc6_ = _loc8_ - _loc9_;
- _loc5_ = _loc10_ - _loc11_;
- _loc23_ = _loc6_ * _loc6_ + _loc5_ * _loc5_;
- _loc4_ = _loc17_(_loc23_);
- _loc6_ /= _loc4_;
- _loc5_ /= _loc4_;
- _loc36_ = _loc6_;
- _loc6_ = _loc5_;
- _loc5_ = - _loc36_;
- _loc22_ = _loc9_ - v.x;
- _loc20_ = _loc11_ - v.y;
- _loc12_ = _loc22_ * _loc6_ + _loc20_ * _loc5_;
- _loc14_ = _loc6_ * _loc12_;
- _loc13_ = _loc5_ * _loc12_;
- _loc7_ = _loc14_ * _loc14_ + _loc13_ * _loc13_;
- if(_loc7_ < _loc25_)
- {
- _loc21_ = _loc9_ - v.x - _loc14_;
- _loc19_ = _loc11_ - v.y - _loc13_;
- _loc29_ = _loc8_ - v.x - _loc14_;
- _loc26_ = _loc10_ - v.y - _loc13_;
- if(_loc21_ * _loc21_ + _loc19_ * _loc19_ < _loc23_ && _loc29_ * _loc29_ + _loc26_ * _loc26_ < _loc23_)
- {
- _loc7_ = _loc17_(_loc7_);
- _loc14_ /= _loc7_;
- _loc13_ /= _loc7_;
- _loc32_ = _loc14_ * (_loc15_ - _loc7_);
- _loc28_ = _loc13_ * (_loc15_ - _loc7_);
- v.x -= _loc32_;
- v.y -= _loc28_;
- this.pushCount += _loc32_ + _loc28_;
- if(_loc24_)
- {
- return true;
- }
- v.ox += (1 - _loc35_.ice) * (v.x - v.ox) / (56 - _loc7_);
- v.oy += (1 - _loc35_.ice) * (v.y - v.oy) / (56 - _loc7_);
- _loc6_ = _loc8_ - _loc9_;
- _loc5_ = _loc10_ - _loc11_;
- _loc6_ /= _loc4_;
- _loc5_ /= _loc4_;
- if(_loc8_ < _loc9_)
- {
- _loc22_ = _loc8_ - v.x;
- _loc20_ = _loc10_ - v.y;
- }
- _loc12_ = _loc22_ * _loc21_ + _loc20_ * _loc19_;
- if(_loc12_ > 1)
- {
- _loc12_ = 1;
- }
- else
- {
- _loc12_ = -1;
- }
- v.ground = true;
- if(acc)
- {
- v.f = v.f + 1;
- v.fx += _loc12_ * _loc6_ * _loc18_.dir * _loc18_.vel / (25 - _loc7_);
- v.fy += _loc12_ * _loc5_ * _loc18_.dir * _loc18_.vel / (25 - _loc7_);
- v.fy *= 0.5;
- }
- }
- else
- {
- _loc6_ = v.x - _loc9_;
- _loc5_ = v.y - _loc11_;
- _loc4_ = _loc6_ * _loc6_ + _loc5_ * _loc5_;
- if(_loc4_ < _loc25_)
- {
- if(_loc24_)
- {
- return true;
- }
- _loc4_ = _loc17_(_loc4_);
- _loc6_ /= _loc4_;
- _loc5_ /= _loc4_;
- v.x += _loc6_ * (_loc15_ - _loc4_);
- v.y += _loc5_ * (_loc15_ - _loc4_);
- v.ox += (v.x - v.ox) * 1 / (56 - _loc4_);
- v.oy += (v.y - v.oy) * 1 / (56 - _loc4_);
- }
- _loc6_ = v.x - _loc8_;
- _loc5_ = v.y - _loc10_;
- _loc4_ = _loc6_ * _loc6_ + _loc5_ * _loc5_;
- if(_loc4_ < _loc25_)
- {
- if(_loc24_)
- {
- return true;
- }
- _loc4_ = _loc17_(_loc4_);
- _loc6_ /= _loc4_;
- _loc5_ /= _loc4_;
- v.x += _loc6_ * (_loc15_ - _loc4_);
- v.y += _loc5_ * (_loc15_ - _loc4_);
- v.ox += (v.x - v.ox) * 1 / (56 - _loc4_);
- v.oy += (v.y - v.oy) * 1 / (56 - _loc4_);
- }
- }
- }
- }
- }
- if(_loc24_)
- {
- return false;
- }
- }
- function quit(win, reason)
- {
- var _loc6_ = this.mc;
- var _loc4_ = _root.shared;
- _loc6_.removeMovieClip();
- _root.onEnterFrame = function()
- {
- };
- _root.inGame = false;
- var _loc0_ = null;
- var _loc5_ = _root.lastMapTime = getTimer() - this.timeStart;
- _loc4_.data.totalTime += _loc5_;
- var _loc9_ = !win;
- var _loc8_ = _root.mapId;
- if(reason == "quit")
- {
- _root.gotoAndStop("level");
- }
- else if(reason == "win")
- {
- _root.resultTime = Math.max(0,Math.floor(333.99 - (getTimer() - this.timeStart) / this.timeSpeed));
- _root.resultUnlock = _global.game.actLevel + 1 < _global.lib.lvls.length && _global.game.actLevel + 1 > _global.game.maxLevel;
- _global.game.actLevel = Math.min(_global.game.actLevel + 1,_global.lib.lvls.length - 1);
- _global.game.maxLevel = _loc4_.data.maxLevel = Math.max(_global.game.maxLevel,_global.game.actLevel);
- _loc4_.flush();
- _root.gotoAndStop("levelOver");
- }
- else
- {
- _root.reasonOfDeath = reason;
- _root.gotoAndPlay("newGame");
- }
- }
- function move()
- {
- if(this.freeze)
- {
- this.freeze = this.freeze - 1;
- if(this.freeze == 0)
- {
- this.fx.fadeTo({ra:100,rb:0,ga:33,gb:0,ba:0,bb:0,aa:100,ab:0},0);
- this.fx.fadeTo(com.neodelight.std.ColorFader.FX_BLACK,this.player.deathCount);
- }
- else if(this.freeze % 2)
- {
- this.fx.fadeTo({ra:100,rb:0,ga:66,gb:0,ba:0,bb:0,aa:100,ab:0},0);
- }
- else
- {
- this.fx.fadeTo({ra:100,rb:0,ga:33,gb:0,ba:0,bb:0,aa:100,ab:0},0);
- }
- return undefined;
- }
- var _loc42_ = Math.sin;
- var _loc34_ = Math.cos;
- var _loc19_ = Math.atan2;
- var _loc16_ = 0.017453292519943295;
- var _loc20_ = Math.sqrt;
- var _loc4_ = this.mc;
- var _loc46_ = _root.shared;
- var _loc31_ = this.lvl;
- var player = this.player;
- var _loc35_ = Math.max(0,333.99 - (getTimer() - this.timeStart) / this.timeSpeed);
- if(_loc35_ == 0)
- {
- this.timeStart = getTimer() - 333.99 * this.timeSpeed;
- }
- var _loc38_ = Math.floor(_loc35_);
- var _loc39_ = Math.floor((_loc35_ - _loc38_) * 100);
- _loc4_.hud.t.text = _loc4_.hud.t1.text = _loc38_;
- _loc4_.hud.h.text = _loc4_.hud.h1.text = this.zero(_loc39_);
- if(!player.dead)
- {
- if(_loc4_.wheel1.y + this.worldY > _loc31_.groundY)
- {
- _global.snd.playEvent("sndAbyss",1);
- this.death();
- }
- }
- var _loc30_ = this.worldX;
- var worldY = this.worldY;
- var _loc55_ = undefined;
- var _loc53_ = undefined;
- var _loc27_ = _loc30_ - 100;
- var _loc25_ = _loc30_ + 650;
- var _loc26_ = worldY - 100;
- var _loc24_ = worldY + 500;
- var _loc11_ = null;
- var _loc45_ = _loc4_.wheel1.x + _loc30_;
- var _loc58_ = _loc4_.wheel1.y + worldY;
- var _loc59_ = _loc4_.wheel2.x + _loc30_;
- var _loc56_ = _loc4_.wheel2.y + worldY;
- var _loc12_ = {x:0,y:0};
- _loc12_.x = _loc4_.body.c._x;
- _loc12_.y = _loc4_.body.c._y;
- _loc4_.body.localToGlobal(_loc12_);
- var _loc22_ = this.xtras;
- var _loc13_ = _loc22_.length;
- var _loc5_ = undefined;
- while(true)
- {
- _loc13_;
- if(!_loc13_--)
- {
- break;
- }
- _loc5_ = _loc22_[_loc13_];
- if(!_loc5_[4])
- {
- _loc55_ = _loc5_[0];
- _loc53_ = _loc5_[1];
- if(!(_loc55_ < _loc27_ || _loc55_ > _loc25_ || _loc53_ < _loc26_ || _loc53_ > _loc24_))
- {
- if(!_loc5_[3])
- {
- var _loc6_ = _loc4_.xtrasMc.getNextHighestDepth();
- var _loc0_ = null;
- _loc11_ = _loc5_[3] = _loc4_.xtrasMc.attachMovie("xtra","f" + _loc6_,_loc6_);
- _loc11_.gotoAndStop(_loc5_[2]);
- }
- _loc11_ = _loc5_[3];
- _loc11_._x = _loc55_ - this.worldX;
- _loc11_._y = _loc53_ - this.worldY;
- if(_loc5_[2] < 4 && Math.sqrt(Math.pow(_loc11_._x - _loc12_.x,2) + Math.pow(_loc11_._y - _loc12_.y,2)) < 55)
- {
- var _loc14_ = false;
- switch(_loc5_[2])
- {
- case 1:
- this.timeStart += 17600;
- _root.attachMovie("titleBonusTime",com.neodelight.std.Unique.getKey(),_root.getNextHighestDepth());
- _global.snd.playEvent("sndTime",1);
- _root.mapRedraw();
- _loc14_ = true;
- break;
- case 2:
- _global.tagCount = _global.tagCount + 1;
- _root.attachMovie("titleExitUnlocked",com.neodelight.std.Unique.getKey(),_root.getNextHighestDepth());
- _global.snd.playEvent("sndKey",1);
- _loc14_ = true;
- break;
- case 3:
- if(_global.tagCount == _global.numberOfTags)
- {
- _global.snd.playEvent("sndPortal",1);
- this.quit(true,"win");
- _loc14_ = true;
- }
- break;
- default:
- trace("error: unknown tag type: " + _loc5_[2]);
- }
- if(_loc14_)
- {
- _loc5_[4] = true;
- _loc5_[3].removeMovieClip();
- _loc5_[3] = null;
- }
- }
- }
- else if(_loc5_[3])
- {
- _loc5_[3].removeMovieClip();
- _loc5_[3] = null;
- }
- }
- }
- if(Key.isDown(45))
- {
- trace(_root._xmouse + this.worldX + "," + (_root._ymouse + this.worldY));
- }
- var _loc7_ = undefined;
- var _loc8_ = undefined;
- var _loc21_ = undefined;
- var _loc18_ = undefined;
- var _loc17_ = false;
- if(!player.dead)
- {
- if(Key.isDown(27))
- {
- _global.snd.fadeChannel("athmo",-1,10);
- _global.snd.playLoop("sndMusic",1,undefined,"music");
- this.sndDrive.stop();
- this.quit(false,"quit");
- return undefined;
- }
- if(Key.isDown(38))
- {
- player.vel += player.acc1;
- player.vel = Math.min(player.maxVel,player.vel);
- }
- else if(Key.isDown(40))
- {
- player.vel -= player.acc2;
- player.vel = Math.max(player.minVel,player.vel);
- }
- else
- {
- player.vel *= 0.5;
- }
- if(this.idleTimer > -1)
- {
- this.idleTimer = this.idleTimer + 1;
- if(this.idleTimer > 80)
- {
- this.idleTimer = -1;
- }
- }
- if(Key.isDown(32))
- {
- if(!_root.keySpace)
- {
- _root.keySpace = true;
- player.dir *= -1;
- _loc4_.leg2b._yscale = _loc0_ = player.dir * 100;
- _loc4_.leg1b._yscale = _loc0_;
- _loc4_.driver.leg2._yscale = _loc0_;
- _loc4_.driver.leg1._yscale = _loc0_;
- _loc4_.driver.arm2._yscale = _loc0_;
- _loc4_.driver.arm1._yscale = _loc0_;
- _loc4_.driver.torso._yscale = _loc0_;
- _loc4_.body._xscale = _loc0_;
- _global.snd.playEvent("sndFlip",0.1);
- _loc17_ = true;
- }
- }
- else
- {
- _root.keySpace = false;
- }
- if(Key.isDown(37))
- {
- _loc7_ = _loc4_.wheel2.x - _loc4_.wheel1.x;
- _loc8_ = _loc4_.wheel2.y - _loc4_.wheel1.y;
- var _loc41_ = Math.max(0.5,Math.abs(_loc34_(4.71238898038469 - com.neodelight.std.XMath.vAngle(_loc7_,_loc8_))));
- var _loc37_ = com.neodelight.std.XMath.vRotate(new com.neodelight.std.Vector(_loc7_,_loc8_),(- this.accTilt) * _loc41_);
- var fx = _loc37_.x - _loc7_;
- var _loc40_ = _loc37_.y - _loc8_;
- _loc4_.wheel2.f = _loc4_.wheel2.f + 1;
- _loc4_.wheel2.fx += fx;
- _loc4_.wheel2.fy += _loc40_;
- player.tilt -= 4;
- }
- else if(Key.isDown(39))
- {
- _loc7_ = _loc4_.wheel1.x - _loc4_.wheel2.x;
- _loc8_ = _loc4_.wheel1.y - _loc4_.wheel2.y;
- _loc41_ = Math.max(0.5,Math.abs(_loc34_(4.71238898038469 - com.neodelight.std.XMath.vAngle(_loc7_,_loc8_))));
- _loc37_ = com.neodelight.std.XMath.vRotate(new com.neodelight.std.Vector(_loc7_,_loc8_),this.accTilt * _loc41_);
- var fx = _loc37_.x - _loc7_;
- _loc40_ = _loc37_.y - _loc8_;
- _loc4_.wheel1.f = _loc4_.wheel1.f + 1;
- _loc4_.wheel1.fx += fx;
- _loc4_.wheel1.fy += _loc40_;
- player.tilt += 4;
- }
- this.hopSustain = this.hopSustain - 1;
- this.hopLock = this.hopLock - 1;
- this.hopSoundLock = this.hopSoundLock - 1;
- if(Key.isDown(16))
- {
- this.hopSustain = 5;
- }
- if(_loc4_.wheel1.ground || _loc4_.wheel2.ground)
- {
- if(this.hopSustain > 0)
- {
- _loc41_ = com.neodelight.std.XMath.vAngle(_loc4_.wheel2.x - _loc4_.wheel1.x,_loc4_.wheel2.y - _loc4_.wheel1.y);
- _loc8_ = Math.sin(_loc41_) * -10;
- _loc7_ = 0;
- _loc4_.wheel1.fx += _loc7_;
- _loc4_.wheel1.fy += _loc8_;
- _loc4_.wheel2.fx += _loc7_;
- _loc4_.wheel2.fy += _loc8_;
- player.ducking = 10;
- if(this.hopSoundLock <= 0)
- {
- if(Math.random() < 0.66)
- {
- _global.snd.playEvent("sndHep0",0.22);
- }
- else
- {
- _global.snd.playEvent("sndHep1",0.22);
- }
- this.hopSoundLock = 15;
- }
- this.hopLock = 5;
- }
- }
- }
- player.tilt *= 0.94;
- player.ducking *= 0.9;
- this.refreshMap();
- this.drawMap();
- if(!player.dead)
- {
- _loc12_ = {x:0,y:0};
- _loc12_.x = _loc4_.body.a0._x;
- _loc12_.y = _loc4_.body.a0._y;
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.anchor0.x = _loc12_.x;
- _loc4_.anchor0.y = _loc12_.y;
- var _loc32_ = _loc42_(player.pedalPos);
- var _loc33_ = _loc34_(player.pedalPos);
- _loc12_.x = _loc4_.body.a2._x + _loc32_ * 15;
- _loc12_.y = _loc4_.body.a2._y - _loc33_ * 10;
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.anchor2.x = _loc12_.x;
- _loc4_.anchor2.y = _loc12_.y;
- _loc12_.x = _loc4_.body.a2b._x - _loc32_ * 15;
- _loc12_.y = _loc4_.body.a2b._y + _loc33_ * 10;
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.anchor2b.x = _loc12_.x;
- _loc4_.anchor2b.y = _loc12_.y;
- _loc12_.x = _loc4_.body.a1._x;
- _loc12_.y = _loc4_.body.a1._y;
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.anchor1.x += (_loc12_.x - _loc4_.anchor1.x) / (!_loc17_ ? 6 : 1);
- _loc4_.anchor1.y += (_loc12_.y - _loc4_.anchor1.y) / (!_loc17_ ? 6 : 1);
- if(player.tilt * player.dir < 0)
- {
- _loc12_.x = _loc4_.body.r0._x - player.tilt * 0.5 * player.dir;
- _loc12_.y = _loc4_.body.r0._y - Math.abs(player.tilt) - player.ducking * 5;
- }
- else
- {
- _loc12_.x = _loc4_.body.r0._x - player.tilt;
- _loc12_.y = _loc4_.body.r0._y - player.ducking * 5;
- }
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.driver0.x += (_loc12_.x - _loc4_.driver0.x) / (!_loc17_ ? 4 : 1);
- _loc4_.driver0.y += (_loc12_.y - _loc4_.driver0.y) / (!_loc17_ ? 4 : 1);
- _loc12_.x = _loc4_.body.r2._x - _loc32_ * 10 + Math.max(0,player.tilt) * 0.2 * player.dir;
- _loc12_.y = _loc4_.body.r2._y - _loc33_ * 10 + player.ducking * 0.3;
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.driver2.x += (_loc12_.x - _loc4_.driver2.x) / (!_loc17_ ? 2 : 1);
- _loc4_.driver2.y += (_loc12_.y - _loc4_.driver2.y) / (!_loc17_ ? 2 : 1);
- _loc12_.x = _loc4_.body.r2b._x + _loc32_ * 10;
- _loc12_.y = _loc4_.body.r2b._y + _loc33_ * 10;
- _loc4_.body.localToGlobal(_loc12_);
- _loc4_.driver2b.x += (_loc12_.x - _loc4_.driver2b.x) / (!_loc17_ ? 2 : 1);
- _loc4_.driver2b.y += (_loc12_.y - _loc4_.driver2b.y) / (!_loc17_ ? 2 : 1);
- }
- var _loc23_ = this.verlet;
- _loc23_(_loc4_.wheel1);
- _loc23_(_loc4_.wheel2);
- _loc23_(_loc4_.driver0);
- _loc23_(_loc4_.driver1);
- _loc23_(_loc4_.driver2);
- _loc23_(_loc4_.driver2b);
- _loc23_(_loc4_.anchor1);
- var _loc10_ = undefined;
- var _loc9_ = undefined;
- var _loc15_ = this.springs;
- if(!player.dead)
- {
- _loc13_ = _loc15_.length;
- while(true)
- {
- _loc13_;
- if(!_loc13_--)
- {
- break;
- }
- _loc10_ = _loc15_[_loc13_][0];
- _loc9_ = _loc15_[_loc13_][1];
- _loc7_ = _loc9_.x - _loc10_.x;
- _loc8_ = _loc9_.y - _loc10_.y;
- _loc6_ = _loc20_(_loc7_ * _loc7_ + _loc8_ * _loc8_);
- _loc6_ = (_loc6_ - this.springs[_loc13_][2]) / _loc6_;
- if(_loc10_.a)
- {
- _loc9_.x -= _loc7_ * _loc6_;
- _loc9_.y -= _loc8_ * _loc6_;
- }
- else if(_loc9_.a)
- {
- _loc10_.x += _loc7_ * _loc6_;
- _loc10_.y += _loc8_ * _loc6_;
- }
- else
- {
- _loc10_.x += _loc7_ * 0.5 * _loc6_;
- _loc10_.y += _loc8_ * 0.5 * _loc6_;
- _loc9_.x -= _loc7_ * 0.5 * _loc6_;
- _loc9_.y -= _loc8_ * 0.5 * _loc6_;
- }
- }
- }
- this.pushCount = 0;
- var _loc44_ = _loc4_.wheel1.ground;
- var _loc43_ = _loc4_.wheel2.ground;
- this.constraints(_loc4_.wheel1,player.dir == 1);
- this.constraints(_loc4_.wheel2,player.dir == -1);
- if(!_loc44_ && _loc4_.wheel1.ground || !_loc43_ && _loc4_.wheel2.ground)
- {
- if(this.pushCount > 8)
- {
- _global.snd.playEvent("sndBump",(this.pushCount - 8) * 0.1);
- }
- }
- if(!player.dead && this.constraints(_loc4_.driver0) && !_global.godMode)
- {
- this.death();
- _global.snd.playEvent("sndDie",0.8);
- }
- this.cameraX += (_loc4_.wheel1.x - _loc4_.wheel1.ox + _loc4_.wheel2.x - _loc4_.wheel2.ox + player.dir * 30) * 0.5;
- this.cameraY += (_loc4_.wheel1.y - _loc4_.wheel1.oy + _loc4_.wheel2.y - _loc4_.wheel2.oy) * 0.5;
- this.cameraX *= 0.7;
- this.cameraY *= 0.6;
- var _loc29_ = int(((_loc4_.wheel1.x + _loc4_.wheel2.x) / 2 - 275 + this.cameraX) * 0.6);
- var _loc28_ = int(((_loc4_.wheel1.y + _loc4_.wheel2.y) / 2 - 250 + this.cameraY) * 0.6);
- _loc4_.backgroundMc._y = 335 + this.worldY * -0.3;
- _loc4_.backgroundMc._x = (_loc30_ * -0.3 + 5500) % 550 - 550;
- this.worldX += _loc29_;
- this.worldY += _loc28_;
- _loc4_.wheel1.x -= _loc29_;
- _loc4_.wheel1.y -= _loc28_;
- _loc4_.wheel1.ox -= _loc29_;
- _loc4_.wheel1.oy -= _loc28_;
- _loc4_.wheel2.x -= _loc29_;
- _loc4_.wheel2.y -= _loc28_;
- _loc4_.wheel2.ox -= _loc29_;
- _loc4_.wheel2.oy -= _loc28_;
- _loc7_ = _loc4_.wheel1.x - _loc4_.wheel1.ox;
- _loc8_ = _loc4_.wheel1.y - _loc4_.wheel1.oy;
- _loc21_ = _loc20_(_loc7_ * _loc7_ + _loc8_ * _loc8_);
- if(_loc21_ > 25)
- {
- _loc21_ = 25;
- }
- if(_loc7_ < 0)
- {
- _loc21_ *= -1;
- }
- _loc7_ = _loc4_.wheel2.x - _loc4_.wheel2.ox;
- _loc8_ = _loc4_.wheel2.y - _loc4_.wheel2.oy;
- _loc18_ = _loc20_(_loc7_ * _loc7_ + _loc8_ * _loc8_);
- if(_loc18_ > 25)
- {
- _loc18_ = 25;
- }
- if(_loc7_ < 0)
- {
- _loc18_ *= -1;
- }
- _loc4_.wheel1._x = _loc4_.wheel1.x;
- _loc4_.wheel1._y = _loc4_.wheel1.y;
- var _loc36_ = undefined;
- if(player.dir == 1)
- {
- _loc21_ = (1 - _loc31_.ice) * _loc21_ + _loc31_.ice * (player.vel * 2.7 + _loc21_ * 0.4);
- _loc36_ = _loc21_ * _loc16_ * player.dir;
- }
- else
- {
- _loc18_ = (1 - _loc31_.ice) * _loc18_ + _loc31_.ice * (- (player.vel <= 0 ? Math.min(player.vel * 2.5,_loc18_) : Math.max(player.vel * 2.5,_loc18_)));
- _loc36_ = _loc18_ * _loc16_ * player.dir;
- }
- player.pedalPos += _loc36_;
- if(!player.dead)
- {
- this.sndDrive.fade(Math.pow(_loc36_,2) * 2.8,5);
- }
- _loc4_.wheel1._rotation += _loc21_;
- _loc4_.wheel2._x = _loc4_.wheel2.x;
- _loc4_.wheel2._y = _loc4_.wheel2.y;
- _loc4_.wheel2._rotation += _loc18_;
- if(player.dead)
- {
- if(!player.deathCount--)
- {
- this.fx.fadeTo(com.neodelight.std.ColorFader.FX_NONE,0);
- this.quit(false,"col");
- }
- _loc4_.body.vy += 1.2;
- _loc4_.body._y += _loc4_.body.vy;
- _loc4_.body._rotation += _loc4_.body.vr;
- }
- else
- {
- _loc4_.body._x = (_loc4_.wheel1.x + _loc4_.wheel2.x) / 2;
- _loc4_.body._y = (_loc4_.wheel1.y + _loc4_.wheel2.y) / 2;
- _loc4_.body._rotation = _loc19_(_loc4_.wheel2.y - _loc4_.wheel1.y,_loc4_.wheel2.x - _loc4_.wheel1.x) / _loc16_;
- }
- this.fx.step();
- _loc4_.driver.torso._x = (_loc4_.anchor1.x + _loc4_.driver0.x) / 2;
- _loc4_.driver.torso._y = (_loc4_.anchor1.y + _loc4_.driver0.y) / 2;
- _loc4_.driver.torso._rotation = _loc19_(_loc4_.driver0.y - _loc4_.anchor1.y,_loc4_.driver0.x - _loc4_.anchor1.x) / _loc16_;
- _loc4_.driver.arm1._x = (_loc4_.driver1.x + _loc4_.anchor0.x) / 2;
- _loc4_.driver.arm1._y = (_loc4_.driver1.y + _loc4_.anchor0.y) / 2;
- _loc4_.driver.arm1._rotation = _loc19_(_loc4_.anchor0.y - _loc4_.driver1.y,_loc4_.anchor0.x - _loc4_.driver1.x) / _loc16_;
- _loc4_.driver.arm2._x = (_loc4_.driver0.x + _loc4_.driver1.x) / 2;
- _loc4_.driver.arm2._y = (_loc4_.driver0.y + _loc4_.driver1.y) / 2;
- _loc4_.driver.arm2._rotation = _loc19_(_loc4_.driver1.y - _loc4_.driver0.y,_loc4_.driver1.x - _loc4_.driver0.x) / _loc16_;
- _loc4_.driver.leg1._x = (_loc4_.anchor2.x + _loc4_.driver2.x) / 2;
- _loc4_.driver.leg1._y = (_loc4_.anchor2.y + _loc4_.driver2.y) / 2;
- _loc4_.driver.leg1._rotation = _loc19_(_loc4_.anchor2.y - _loc4_.driver2.y,_loc4_.anchor2.x - _loc4_.driver2.x) / _loc16_;
- _loc4_.driver.leg2._x = (_loc4_.driver2.x + _loc4_.anchor1.x) / 2;
- _loc4_.driver.leg2._y = (_loc4_.driver2.y + _loc4_.anchor1.y) / 2;
- _loc4_.driver.leg2._rotation = _loc19_(_loc4_.driver2.y - _loc4_.anchor1.y,_loc4_.driver2.x - _loc4_.anchor1.x) / _loc16_;
- _loc4_.leg1b._x = (_loc4_.anchor2b.x + _loc4_.driver2b.x) / 2;
- _loc4_.leg1b._y = (_loc4_.anchor2b.y + _loc4_.driver2b.y) / 2;
- _loc4_.leg1b._rotation = _loc19_(_loc4_.anchor2b.y - _loc4_.driver2b.y,_loc4_.anchor2b.x - _loc4_.driver2b.x) / _loc16_;
- _loc4_.leg2b._x = (_loc4_.driver2b.x + _loc4_.anchor1.x) / 2;
- _loc4_.leg2b._y = (_loc4_.driver2b.y + _loc4_.anchor1.y) / 2;
- _loc4_.leg2b._rotation = _loc19_(_loc4_.driver2b.y - _loc4_.anchor1.y,_loc4_.driver2b.x - _loc4_.anchor1.x) / _loc16_;
- _loc4_.body.pedalFront._rotation = player.pedalPos / _loc16_;
- _loc4_.body.pedalFront.pedal._rotation = - _loc4_.body.pedalFront._rotation;
- _loc4_.body.pedalBack._rotation = player.pedalPos / _loc16_ + 180;
- _loc4_.body.pedalBack.pedal._rotation = - _loc4_.body.pedalBack._rotation;
- _loc4_.driver._visible = true;
- }
- function death()
- {
- _root.attachMovie("ouch","ouch",_root.getNextHighestDepth());
- this.freeze = 10;
- this.player.dead = 1;
- this.sndDrive.fade(0,10);
- this.player.deathCount = 45;
- this.player.vel = 0;
- this.mc.body.vy = 0;
- this.mc.body.vr = (Math.random() - 0.5) * 10;
- }
- }
-