home *** CD-ROM | disk | FTP | other *** search
- function fStartGame()
- {
- var _loc3_ = pLevels[pLevel];
- var _loc2_ = 0;
- while(_loc2_ < _loc3_.pPattern.length)
- {
- if(_loc3_.pPattern[_loc2_] != 0)
- {
- if(_loc3_.pPattern[_loc2_][pPattern] != 0)
- {
- var _loc1_ = 0;
- while(_loc1_ < 2)
- {
- fMakeEnemy(_loc2_);
- _loc1_ = _loc1_ + 1;
- }
- }
- }
- _loc2_ = _loc2_ + 1;
- }
- }
- function fMakeEnemy(p)
- {
- totalbaddies++;
- var tEnemy = pEnemy[p];
- var _loc1_ = this.attachMovie(tEnemy.pIN,"baddy" + totalbaddies,totalbaddies);
- _loc1_.pType = tEnemy.pName;
- _loc1_.pNum = totalbaddies;
- var _loc3_ = fGetRandomStartPos();
- var tAim = fGetNearestAim(_loc3_,_loc1_);
- var _loc2_ = _global.fRadianToAngle(getAngle(_loc3_,{x:tAim._x,y:tAim._y}));
- _loc2_ = fReangle(_loc2_ - 90);
- var tRad = _global.fAngleToRadian(_loc2_);
- var tVec = _global.fRadianToVector(tRad);
- _loc1_.pEventCount = 0;
- _loc1_._x = _loc3_.x;
- _loc1_._y = _loc3_.y;
- _loc1_.pSpeed = tEnemy.pSpeed / pSpeedDiv;
- _loc1_.dirang = _loc2_;
- var tRotGfx = fReangle(_loc2_ - 90);
- _loc1_._rotation = tRotGfx;
- _loc1_.pAim = tAim;
- _loc1_.pReachAim = false;
- baddies.push(_loc1_);
- }
- function timer()
- {
- if(loc.dead == false)
- {
- loc.framecount = loc.framecount + 1;
- if(loc.framecount >= 24)
- {
- time--;
- framecount = 0;
- }
- }
- if(loc.gameover == false)
- {
- if(time == 0)
- {
- fResetArrows();
- _root.gotoAndPlay("win");
- loc.dead = true;
- loc.gameover = true;
- }
- else if(loc.dead == true)
- {
- fResetArrows();
- _root.gotoAndPlay("lose");
- loc.gameover = true;
- }
- }
- }
- function fReangle(tAngle)
- {
- var _loc1_ = tAngle;
- if(_loc1_ > 360)
- {
- _loc1_ %= 360;
- }
- else if(_loc1_ < 0)
- {
- _loc1_ = 360 + _loc1_;
- }
- return _loc1_;
- }
- function fAddToStartPos(who)
- {
- pStartList.push(who);
- who._visible = false;
- }
- function fAddToAimPos(who)
- {
- pAimList.push(who);
- who._visible = false;
- }
- function fAddToCatapultPos(who)
- {
- pCatapultList.push(who);
- who._visible = false;
- }
- function fNewGun(who)
- {
- pGunDepth++;
- who.swapDepths(pGunDepth);
- }
- pLevel = _root.pLevel;
- pLevels = [];
- pEnemy = [];
- if(pLevel == 0 or pLevel == 4 or (pLevel == 8)(pLevel == 12))
- {
- _root.pCatapults = [1,1,1,1];
- }
- pFireKey = 0;
- pGunNum = 0;
- pGuns = [gun0,gun1,gun2,gun3];
- pGunStates = _root.pCatapults;
- pReloadTime = 50;
- pLives = 0;
- for(var l in pGunStates)
- {
- if(pGunStates[l] != -1)
- {
- pLives++;
- }
- }
- nextBullet = 1000;
- bullets = [];
- explos = [];
- baddies = [];
- totalbaddies = 10;
- nose = 30;
- speed = 4;
- depth = 900;
- framecount = 0;
- baddysdead = _root.score;
- dead = false;
- gameover = false;
- loc = _root.missions;
- trace("----- ");
- trace("pLevel " + pLevel);
- trace("pTime " + pTime);
- trace("pLives " + pLives);
- trace("pGunStates " + pGunStates);
- trace("----- ");
- pEnemy.push({pName:"Tower",pSpeed:3,pStages:1,pIN:"mcEnemyTower"});
- pEnemy.push({pName:"Ram",pSpeed:5,pStages:1,pIN:"mcEnemyRam"});
- pEnemy.push({pName:"Catapult",pSpeed:4,pStages:1,pIN:"mcEnemyCatapult"});
- pEnemy.push({pName:"Trojan",pSpeed:4,pStages:1,pIN:"mcEnemyTrojan"});
- var tPhase = 400;
- pSpeedDiv = 8;
- pRateAmount = 500;
- pLevels.push({pTime:50,pPhase:tPhase + 100,pRate:[1,1,1,1],pPattern:[[0,1,0],[1,0,1],0,0]});
- pLevels.push({pTime:50,pPhase:tPhase + 100,pRate:[1,1,1,1],pPattern:[[0,1,1],[1,1,0],0,0]});
- pLevels.push({pTime:50,pPhase:tPhase + 100,pRate:[1,1,1,1],pPattern:[[1,0,0],[1,1,0],[0,1,0],0]});
- pLevels.push({pTime:55,pPhase:tPhase + 100,pRate:[1,1,1,1],pPattern:[[1,1,0],[1,0,1],[0,1,1],0]});
- pLevels.push({pTime:60,pPhase:tPhase + 50,pRate:[2,2,2,2],pPattern:[[0,1,1],[1,0,1],[0,1,0],0]});
- pLevels.push({pTime:60,pPhase:tPhase + 50,pRate:[2,2,2,2],pPattern:[[1,0,1],[1,1,0],[0,0,1],0]});
- pLevels.push({pTime:60,pPhase:tPhase + 50,pRate:[2,2,2,2],pPattern:[[1,0,1],[1,1,0],[1,1,0],0]});
- pLevels.push({pTime:65,pPhase:tPhase + 50,pRate:[2,2,2,2],pPattern:[[1,1,0],[1,0,1],[0,1,1],0]});
- pLevels.push({pTime:70,pPhase:tPhase + 20,pRate:[3,3,3,3],pPattern:[[0,1,1],[1,0,1],[1,1,0],0]});
- pLevels.push({pTime:70,pPhase:tPhase + 20,pRate:[3,3,3,3],pPattern:[[1,0,1],[1,1,0],[0,1,1],0]});
- pLevels.push({pTime:70,pPhase:tPhase + 20,pRate:[3,3,3,3],pPattern:[[1,0,1],[1,1,0],[1,1,0],0]});
- pLevels.push({pTime:75,pPhase:tPhase + 20,pRate:[3,3,3,3],pPattern:[[1,1,0],[1,0,1],[1,0,1],0]});
- pLevels.push({pTime:80,pPhase:tPhase + 0,pRate:[3,3,3,3],pPattern:[[1,0,1,1,1,0,0],[0,1,1,0,1,0],[0,1,1,1,0,0],0]});
- time = pLevels[pLevel].pTime;
- pTime = pLevels[pLevel].pTime;
- pPhase = 0;
- pPattern = 0;
- pClearCount = 0;
- this.onEnterFrame = function()
- {
- if(loc.dead == false)
- {
- var _loc2_ = pLevels[pLevel];
- pPhase++;
- if(pPhase > _loc2_.pPhase)
- {
- pPhase = 0;
- pPattern++;
- if(pPattern == _loc2_.pPattern[0].length)
- {
- pPattern = 0;
- }
- fStartGame();
- }
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.pPattern.length)
- {
- if(_loc2_.pPattern[_loc1_] != 0)
- {
- if(_loc2_.pPattern[_loc1_][pPattern] != 0)
- {
- if(random(pRateAmount) <= _loc2_.pRate[_loc1_])
- {
- fMakeEnemy(_loc1_);
- }
- }
- }
- _loc1_ = _loc1_ + 1;
- }
- }
- };
- pArrowList = [inArrow0,inArrow1,inArrow2,inArrow3,inArrowAll];
- pOilList = [inOil0,inOil1,inOil2,inOil3];
- pStartList = [];
- pAimList = [];
- pCatapultList = [];
- pGunDepth = 20000;
- _global.getAngle = function(t, c)
- {
- return Math.atan2(t.y - c.y,t.x - c.x);
- };
- _global.fVectToRadian = function(vect)
- {
- return Math.atan2(vect.y,vect.x);
- };
- _global.fRadianToVector = function(rad)
- {
- return {x:Math.sin(rad),y:- Math.cos(rad)};
- };
- _global.fRadianToAngle = function(rad)
- {
- return rad * 180 / 3.141592653589793;
- };
- _global.fAngleToRadian = function(ang)
- {
- return ang * 3.141592653589793 / 180;
- };
- _global.fReAngle = function(ang)
- {
- return ang % 360;
- };
- _global.fGetDistance = function(a, b)
- {
- var _loc1_ = b;
- var _loc2_ = a;
- return Math.sqrt((_loc2_.x - _loc1_.x) * (_loc2_.x - _loc1_.x) + (_loc2_.y - _loc1_.y) * (_loc2_.y - _loc1_.y));
- };
- gotoAndStop(pLevel + 2);
-