home *** CD-ROM | disk | FTP | other *** search
- class Player extends MovieClip
- {
- var jumpHeight = 13;
- var walkSpeed = 7.5;
- var airAcc = 2;
- var airMax = 7.5;
- var pHeight = 48;
- var pWidth = 26;
- var xStep = 0;
- var yStep = 0;
- var gravType = 1;
- var onGround = false;
- var hit = false;
- var blinking = 0;
- var jumping = false;
- var gravDelay = 0;
- var oldGrav = 1;
- var gravDiff = 0;
- var dontmove = false;
- function Player()
- {
- super();
- }
- function onLoad()
- {
- var _loc1_ = this;
- var _loc2_ = _root;
- var _loc3_ = _loc1_._parent.spawnPoints[0][0].split(":");
- _loc1_._x = _loc3_[0] * _loc1_._parent.cellsize;
- _loc1_._y = _loc3_[1] * _loc1_._parent.cellsize;
- _loc1_.futureX = _loc1_._x;
- _loc1_.futureY = _loc1_._y;
- _loc1_._parent.camFollow = true;
- _loc1_.health = _loc2_.health;
- _loc1_.xCell = Math.floor(_loc1_.futureX / _loc1_._parent.cellsize + 0.5);
- _loc1_.yCell = Math.floor(_loc1_.futureY / _loc1_._parent.cellsize + 0.5);
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType > 0)
- {
- _loc1_.gravType = _loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType;
- _loc1_._rotation = 90 * (_loc1_.gravType - 1);
- }
- else
- {
- _loc1_.gravType = 1;
- }
- _loc1_.createEmptyMovieClip("sprite",1);
- _loc1_.sprite._y = _loc1_._parent.cellsize / 2;
- _loc1_.playerStatus = "player_idle_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- _loc1_.sprite._xscale = -100;
- if(_loc2_.currLvl == 103)
- {
- _loc1_.walkSpeed = 12;
- _loc1_.airMax = 12;
- _loc1_.airAcc = 4;
- _loc1_.dontmove = true;
- _loc2_.attachMovie("CountDown","countdown",15);
- }
- _loc2_.jukebox.targetVol = _loc2_.musicVol;
- }
- function onEnterFrame()
- {
- var _loc1_ = this;
- var _loc2_ = _global;
- var _loc3_ = _root;
- _loc3_.health = _loc1_.health;
- if(_loc3_.currLvl == 103 && _loc3_.jukebox.music.position > 7520)
- {
- _loc1_.dontmove = false;
- }
- if(_loc3_.currLvl == 103 && (_loc1_._parent.worldTimer > 1750 || _loc1_._x > 14500))
- {
- _loc1_.dontmove = true;
- _loc3_.endSuccess = false;
- _loc3_.gotoAndPlay("cinematics");
- §§push(_loc1_.removeMovieClip());
- }
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].triggerPoint)
- {
- if(_loc1_.yCell == 35 && (_loc1_.xCell >= 28 && _loc1_.xCell <= 30))
- {
- _loc3_.jukebox.playTrack("asylum_1");
- }
- else if(_loc1_.yCell == 33 && (_loc1_.xCell >= 28 && _loc1_.xCell <= 30))
- {
- _loc3_.jukebox.playTrack("asylum_3");
- }
- else if((_loc1_.yCell == 2 || _loc1_.yCell == 3) && _loc1_.xCell == 30)
- {
- _loc3_.jukebox.playTrack("asylum_3");
- }
- else if((_loc1_.yCell == 2 || _loc1_.yCell == 3) && _loc1_.xCell == 32)
- {
- _loc3_.jukebox.playTrack("asylum_1");
- }
- }
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].clip == undefined && _loc1_.blinking < 20)
- {
- if(_loc1_.gravType == 1)
- {
- if(_loc1_.xStep > 0)
- {
- _loc1_._x -= _loc1_._parent.cellsize;
- }
- else
- {
- _loc1_._x += _loc1_._parent.cellsize;
- }
- }
- if(_loc1_.gravType == 2)
- {
- if(_loc1_.xStep > 0)
- {
- _loc1_._y -= _loc1_._parent.cellsize;
- }
- else
- {
- _loc1_._y += _loc1_._parent.cellsize;
- }
- }
- if(_loc1_.gravType == 3)
- {
- if(_loc1_.xStep < 0)
- {
- _loc1_._x -= _loc1_._parent.cellsize;
- }
- else
- {
- _loc1_._x += _loc1_._parent.cellsize;
- }
- }
- if(_loc1_.gravType == 4)
- {
- if(_loc1_.xStep < 0)
- {
- _loc1_._y -= _loc1_._parent.cellsize;
- }
- else
- {
- _loc1_._y += _loc1_._parent.cellsize;
- }
- }
- }
- if(_loc1_.yStep != 0)
- {
- _loc1_.onGround = false;
- }
- if(!_loc1_.hit)
- {
- if((_loc2_.ctrlStatus[_loc2_.ctrlUp] || _loc2_.ctrlStatus[_loc2_.ctrlUp2]) && _loc1_.onGround && !_loc1_.jumping)
- {
- _loc1_.yStep = - _loc1_.jumpHeight;
- _loc1_.onGround = false;
- _loc1_.jumping = true;
- if(_loc1_.playerStatus != "player_jump_1")
- {
- _loc1_.playerStatus = "player_jump_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- }
- if(!_loc2_.ctrlStatus[_loc2_.ctrlUp] && !_loc2_.ctrlStatus[_loc2_.ctrlUp2] && _loc1_.jumping)
- {
- _loc1_.jumping = false;
- }
- if(_loc2_.ctrlStatus[_loc2_.ctrlDown] || _loc2_.ctrlStatus[_loc2_.ctrlDown2])
- {
- }
- if(_loc2_.ctrlStatus[_loc2_.ctrlLeft] || _loc2_.ctrlStatus[_loc2_.ctrlLeft2])
- {
- if(_loc1_.onGround)
- {
- if(_loc3_.currLvl == 103)
- {
- if(_loc1_.playerStatus != "player_running_2")
- {
- _loc1_.playerStatus = "player_running_2";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- }
- else if(_loc1_.playerStatus != "player_running_1")
- {
- _loc1_.playerStatus = "player_running_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- _loc1_.sprite._xscale = 100;
- _loc1_.xStep = - _loc1_.walkSpeed;
- }
- else
- {
- if(_loc1_.playerStatus != "player_fall_1" && _loc1_.yStep > 1)
- {
- _loc1_.playerStatus = "player_fall_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- _loc1_.sprite._xscale = 100;
- if(_loc1_.xStep > - _loc1_.airMax)
- {
- _loc1_.xStep -= _loc1_.airAcc;
- }
- }
- }
- else if(_loc2_.ctrlStatus[_loc2_.ctrlRight] || _loc2_.ctrlStatus[_loc2_.ctrlRight2])
- {
- if(_loc1_.onGround)
- {
- if(_loc3_.currLvl == 103)
- {
- if(_loc1_.playerStatus != "player_running_2")
- {
- _loc1_.playerStatus = "player_running_2";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- }
- else if(_loc1_.playerStatus != "player_running_1")
- {
- _loc1_.playerStatus = "player_running_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- _loc1_.sprite._xscale = -100;
- _loc1_.xStep = _loc1_.walkSpeed;
- }
- else
- {
- if(_loc1_.playerStatus != "player_fall_1" && _loc1_.yStep > 1)
- {
- _loc1_.playerStatus = "player_fall_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- _loc1_.sprite._xscale = -100;
- if(_loc1_.xStep < _loc1_.airMax)
- {
- _loc1_.xStep += _loc1_.airAcc;
- }
- }
- }
- else
- {
- if(_loc1_.onGround)
- {
- _loc1_.xStep = 0;
- }
- else
- {
- _loc1_.xStep *= 0.95;
- }
- if(_loc1_.playerStatus != "player_idle_1" && _loc1_.onGround)
- {
- _loc1_.playerStatus = "player_idle_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- else if(_loc1_.playerStatus != "player_fall_1" && _loc1_.yStep > 0)
- {
- _loc1_.playerStatus = "player_fall_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- }
- }
- else
- {
- if(_loc1_.playerStatus != "player_hit_1")
- {
- _loc1_.playerStatus = "player_hit_1";
- _loc1_.sprite.attachMovie(_loc1_.playerStatus,"sprite",1);
- }
- if(_loc1_.blinking <= 0)
- {
- _loc1_.blinking = 60;
- }
- }
- if(_loc1_.blinking > 0)
- {
- if(_loc1_.blinking % 2 == 0)
- {
- _loc1_.sprite._alpha = 50;
- }
- else
- {
- _loc1_.sprite._alpha = 100;
- }
- _loc1_.blinking = _loc1_.blinking - 1;
- }
- if(_loc1_.dontmove)
- {
- _loc1_.xStep = 0;
- _loc1_.yStep = 0;
- }
- if(_loc1_.yStep < _loc1_._parent.maxspeed)
- {
- _loc1_.yStep += _loc1_._parent.gravity;
- }
- if(_loc1_.shiftGrav != 0)
- {
- _loc1_.oldGrav = _loc1_.gravType;
- }
- if(_loc1_.oldGrav != _loc1_.gravType)
- {
- _loc1_.gravDelay = 15;
- _loc1_.gravDiff = _loc1_.gravType - _loc1_.oldGrav;
- if(_loc1_.gravDiff > 1)
- {
- _loc1_.gravDiff = -1;
- }
- else if(_loc1_.gravDiff < -1)
- {
- _loc1_.gravDiff = 1;
- }
- }
- if(_loc1_.gravDelay > 2)
- {
- _loc1_.gravDelay *= 0.85;
- }
- else
- {
- _loc1_.gravDelay = 0;
- _loc1_.gravDiff = 0;
- }
- if(_loc1_.gravDiff > 0)
- {
- if(_loc1_.gravDelay > 0)
- {
- var iDistort = _loc1_.gravDelay / 15;
- var jDistort = (15 - _loc1_.gravDelay) / 15;
- var currXstep = _loc1_.yStep * iDistort + _loc1_.xStep * jDistort;
- var currYStep = _loc1_.xStep * iDistort + _loc1_.yStep * jDistort;
- }
- }
- else if(_loc1_.gravDiff < 0)
- {
- if(_loc1_.gravDelay > 0)
- {
- var iDistort = _loc1_.gravDelay / 15;
- var jDistort = (15 - _loc1_.gravDelay) / 15;
- var currXstep = (- _loc1_.yStep) * iDistort + _loc1_.xStep * jDistort;
- var currYStep = _loc1_.xStep * iDistort + _loc1_.yStep * jDistort;
- }
- }
- else
- {
- var currXstep = _loc1_.xStep;
- var currYstep = _loc1_.yStep;
- }
- _loc1_.oldGrav = _loc1_.gravType;
- if(_loc1_.gravType == 1)
- {
- _loc1_.futureY = _loc1_._y + currYstep;
- _loc1_.futureX = _loc1_._x + currXstep;
- _loc1_.targetRot = 0;
- _loc1_.pHeight = 48;
- _loc1_.pWidth = 26;
- }
- else if(_loc1_.gravType == 2)
- {
- _loc1_.futureY = _loc1_._y + currXstep;
- _loc1_.futureX = _loc1_._x - currYstep;
- _loc1_.targetRot = 90;
- _loc1_.pHeight = 26;
- _loc1_.pWidth = 48;
- }
- else if(_loc1_.gravType == 3)
- {
- _loc1_.futureY = _loc1_._y - currYstep;
- _loc1_.futureX = _loc1_._x - currXstep;
- if(_loc1_._rotation <= -90)
- {
- _loc1_.targetRot = -180;
- }
- else
- {
- _loc1_.targetRot = 180;
- }
- _loc1_.pHeight = 48;
- _loc1_.pWidth = 26;
- }
- else if(_loc1_.gravType == 4)
- {
- _loc1_.futureY = _loc1_._y - currXstep;
- _loc1_.futureX = _loc1_._x + currYstep;
- if(_loc1_._rotation >= 180)
- {
- _loc1_.targetRot = 270;
- }
- else
- {
- _loc1_.targetRot = -90;
- }
- _loc1_.pHeight = 26;
- _loc1_.pWidth = 48;
- }
- if((_loc1_.targetRot - _loc1_._rotation) * (_loc1_.targetRot - _loc1_._rotation) > 5)
- {
- _loc1_._rotation += (_loc1_.targetRot - _loc1_._rotation) / 2;
- }
- else
- {
- _loc1_._rotation = _loc1_.targetRot;
- if(_loc1_._rotation == -180)
- {
- _loc1_._rotation = 180;
- }
- if(_loc1_._rotation == 270)
- {
- _loc1_._rotation = -90;
- }
- }
- _loc1_.xCell = Math.floor(_loc1_.futureX / _loc1_._parent.cellsize + 0.5);
- _loc1_.yCell = Math.floor(_loc1_.futureY / _loc1_._parent.cellsize + 0.5);
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType != 0 && _loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType != undefined)
- {
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType <= 4)
- {
- _loc1_.gravType = _loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType;
- _loc1_.shiftGrav = 0;
- }
- else if(_loc1_.shiftGrav != _loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType - 4)
- {
- _loc1_.shiftGrav = _loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].gravType - 4;
- if(_loc1_.shiftGrav == _loc1_.gravType)
- {
- if(_loc1_.gravType < 4)
- {
- _loc1_.gravType = _loc1_.gravType + 1;
- }
- else
- {
- _loc1_.gravType = 1;
- }
- }
- else if(_loc1_.gravType > 1)
- {
- _loc1_.gravType = _loc1_.gravType - 1;
- }
- else
- {
- _loc1_.gravType = 4;
- }
- }
- }
- _loc1_.rawHitTest();
- _loc1_._y = _loc1_.futureY;
- _loc1_._x = _loc1_.futureX;
- _loc1_.xCell = Math.floor(_loc1_._x / _loc1_._parent.cellsize + 0.5);
- _loc1_.yCell = Math.floor(_loc1_._y / _loc1_._parent.cellsize + 0.5);
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].kill)
- {
- _loc1_.health -= 500;
- if(_loc1_.health < 0)
- {
- _loc1_.health = 0;
- }
- }
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].checkpoint)
- {
- _loc1_._parent.spawnPoints[0][0] = _loc1_.xCell + ":" + _loc1_.yCell;
- }
- if(_loc1_._parent.cells[_loc1_.xCell][_loc1_.yCell].exit)
- {
- _loc3_.health = _loc1_.health;
- _loc3_.gotoAndPlay("cinematics");
- §§push(_loc1_.removeMovieClip());
- }
- if(_loc1_.health <= 0 && _loc1_._parent.reSpawnCounter == 0)
- {
- _loc1_._parent.camFollow = false;
- _loc3_.jukebox.targetVol = 0;
- if(!_loc1_.hit)
- {
- _loc1_._parent.reSpawnCounter = 30;
- }
- else
- {
- _loc1_._parent.reSpawnCounter = 60;
- }
- }
- if(_loc1_._parent.reSpawnCounter == 15)
- {
- _loc3_.lifes = _loc3_.lifes - 1;
- if(_loc3_.lifes < 0)
- {
- _loc3_.gotoAndPlay("cinematics");
- }
- §§push(_loc1_.removeMovieClip());
- }
- }
- function rawHitTest()
- {
- var _loc1_ = this;
- var _loc3_ = -1;
- while(_loc3_ <= 1)
- {
- var _loc2_ = -1;
- while(_loc2_ <= 1)
- {
- if(_loc1_.xCell != 0 && _loc1_.yCell != 0)
- {
- _loc1_.detailHitTest(_loc1_.xCell + _loc3_,_loc1_.yCell + _loc2_);
- }
- else if(_loc1_.xCell == 0 && _loc1_.yCell != 0 && _loc3_ >= 0)
- {
- _loc1_.detailHitTest(_loc1_.xCell + _loc3_,_loc1_.yCell + _loc2_);
- }
- else if(_loc1_.xCell != 0 && _loc1_.yCell == 0 && _loc2_ >= 0)
- {
- _loc1_.detailHitTest(_loc1_.xCell + _loc3_,_loc1_.yCell + _loc2_);
- }
- else if(_loc3_ >= 0 && _loc2_ >= 0)
- {
- _loc1_.detailHitTest(_loc1_.xCell + _loc3_,_loc1_.yCell + _loc2_);
- }
- _loc2_ = _loc2_ + 1;
- }
- _loc3_ = _loc3_ + 1;
- }
- }
- function detailHitTest(tmpX, tmpY)
- {
- var _loc1_ = this;
- var _loc2_ = tmpX;
- var _loc3_ = tmpY;
- _loc2_;
- _loc3_;
- var tile = _loc1_._parent.cells[_loc2_][_loc3_].tile;
- if(tile >= 1 && tile <= 5)
- {
- var left = _loc1_.futureX - _loc1_.pWidth / 2;
- var right = _loc1_.futureX + _loc1_.pWidth / 2;
- var top = _loc1_.futureY - _loc1_.pHeight / 2;
- var bottom = _loc1_.futureY + _loc1_.pHeight / 2;
- if(tile == 1)
- {
- var cLeft = _loc1_._parent.cells[_loc2_][_loc3_].clip._x - _loc1_._parent.cellsize / 2;
- var cRight = _loc1_._parent.cells[_loc2_][_loc3_].clip._x + _loc1_._parent.cellsize / 2;
- var cTop = _loc1_._parent.cells[_loc2_][_loc3_].clip._y - _loc1_._parent.cellsize / 2;
- var cBottom = _loc1_._parent.cells[_loc2_][_loc3_].clip._y + _loc1_._parent.cellsize / 2;
- }
- else if(tile == 2)
- {
- var cLeft = _loc1_._parent.cells[_loc2_][_loc3_].clip._x - _loc1_._parent.cellsize / 2;
- var cRight = _loc1_._parent.cells[_loc2_][_loc3_].clip._x + _loc1_._parent.cellsize / 2;
- var cTop = _loc1_._parent.cells[_loc2_][_loc3_].clip._y - _loc1_._parent.cellsize / 2;
- var cBottom = _loc1_._parent.cells[_loc2_][_loc3_].clip._y;
- }
- else if(tile == 3)
- {
- var cLeft = _loc1_._parent.cells[_loc2_][_loc3_].clip._x;
- var cRight = _loc1_._parent.cells[_loc2_][_loc3_].clip._x + _loc1_._parent.cellsize / 2;
- var cTop = _loc1_._parent.cells[_loc2_][_loc3_].clip._y - _loc1_._parent.cellsize / 2;
- var cBottom = _loc1_._parent.cells[_loc2_][_loc3_].clip._y + _loc1_._parent.cellsize / 2;
- }
- else if(tile == 4)
- {
- var cLeft = _loc1_._parent.cells[_loc2_][_loc3_].clip._x - _loc1_._parent.cellsize / 2;
- var cRight = _loc1_._parent.cells[_loc2_][_loc3_].clip._x + _loc1_._parent.cellsize / 2;
- var cTop = _loc1_._parent.cells[_loc2_][_loc3_].clip._y;
- var cBottom = _loc1_._parent.cells[_loc2_][_loc3_].clip._y + _loc1_._parent.cellsize / 2;
- }
- else if(tile == 5)
- {
- var cLeft = _loc1_._parent.cells[_loc2_][_loc3_].clip._x - _loc1_._parent.cellsize / 2;
- var cRight = _loc1_._parent.cells[_loc2_][_loc3_].clip._x;
- var cTop = _loc1_._parent.cells[_loc2_][_loc3_].clip._y - _loc1_._parent.cellsize / 2;
- var cBottom = _loc1_._parent.cells[_loc2_][_loc3_].clip._y + _loc1_._parent.cellsize / 2;
- }
- if(bottom > cTop && top < cBottom && left < cRight && right > cLeft)
- {
- var projUp = cTop - _loc1_.pHeight / 2 - _loc1_.futureY;
- var projDown = cBottom + _loc1_.pHeight / 2 - _loc1_.futureY;
- var projLeft = cLeft - _loc1_.pWidth / 2 - _loc1_.futureX;
- var projRight = cRight + _loc1_.pWidth / 2 - _loc1_.futureX;
- if(Math.sqrt(projUp * projUp) < Math.sqrt(projDown * projDown))
- {
- var projY = projUp;
- }
- else
- {
- var projY = projDown;
- }
- if(Math.sqrt(projLeft * projLeft) < Math.sqrt(projRight * projRight))
- {
- var projX = projLeft;
- }
- else
- {
- var projX = projRight;
- }
- if(Math.sqrt(projX * projX) < Math.sqrt(projY * projY))
- {
- if(_loc1_.gravType == 1 || _loc1_.gravType == 3)
- {
- _loc1_.xStep = 0;
- }
- else if(_loc1_.gravType == 2 || _loc1_.gravType == 4)
- {
- _loc1_.yStep = 0;
- }
- _loc1_.futureX += projX;
- if(projX == projRight && _loc1_.gravType == 2)
- {
- if(!_loc1_.onGround)
- {
- _loc1_.onGround = true;
- }
- }
- else if(projX == projLeft && _loc1_.gravType == 4)
- {
- if(!_loc1_.onGround)
- {
- _loc1_.onGround = true;
- }
- }
- }
- else
- {
- if(_loc1_.gravType == 1 || _loc1_.gravType == 3)
- {
- _loc1_.yStep = 0;
- }
- else if(_loc1_.gravType == 2 || _loc1_.gravType == 4)
- {
- _loc1_.xStep = 0;
- }
- _loc1_.futureY += projY;
- if(projY == projUp && _loc1_.gravType == 1)
- {
- if(!_loc1_.onGround)
- {
- _loc1_.onGround = true;
- }
- }
- else if(projY == projDown && _loc1_.gravType == 3)
- {
- if(!_loc1_.onGround)
- {
- _loc1_.onGround = true;
- }
- }
- }
- }
- }
- }
- }
-