home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Acao / flameout.swf / scripts / __Packages / FullmetalGame.as < prev    next >
Encoding:
Text File  |  2006-06-13  |  11.3 KB  |  289 lines

  1. class FullmetalGame extends LRG.LRGMovieClip
  2. {
  3.    var m_kFireBeam;
  4.    var m_pBonusClips;
  5.    var m_kPlayer;
  6.    var m_kEnemyHolder;
  7.    var m_kScrim;
  8.    var m_bSmartBomb;
  9.    var m_kBarrier1;
  10.    var m_kBarrier2;
  11.    var m_kBarrier3;
  12.    var m_kBarrier4;
  13.    var m_kBarrier5;
  14.    var m_kBarrier6;
  15.    var m_kBarrier7;
  16.    var m_kBarrier8;
  17.    var m_fRoundStartTime;
  18.    var m_kBackground;
  19.    var m_kAlchemySymbol;
  20.    var m_kSymbolTargetHolder;
  21.    var m_kFireHolder;
  22.    var m_kLineToSymbolTarget1;
  23.    var m_kLineToSymbolTarget2;
  24.    var m_kLineToSymbolTarget3;
  25.    var m_kLineToSymbolTarget4;
  26.    var m_kLineToSymbolTarget5;
  27.    var m_kLineToSymbolTarget6;
  28.    function FullmetalGame()
  29.    {
  30.       super();
  31.    }
  32.    function init()
  33.    {
  34.       super.init();
  35.       this.m_kFireBeam = null;
  36.       this.m_pBonusClips = new Array();
  37.    }
  38.    function startGame()
  39.    {
  40.       var _loc3_ = new Date().getTime();
  41.       loadMovieNum("tracker.swf?" + _loc3_,10000);
  42.       _global.getApplicationState().setState(_global.getApplicationState().AS_GAME_RUNNING);
  43.       _global.getApplicationState().setPaused(false);
  44.       if(!Settings(_global.getSettings()).getSetting("HIDE_BOUNDARIES"))
  45.       {
  46.       }
  47.       PlayerState(_global.getPlayerState()).onStartGame();
  48.       this.m_kPlayer.setController(new HumanPlayerController());
  49.       this.m_kPlayer.onStartGame();
  50.       this.m_kEnemyHolder.onStartGame();
  51.       this.startRound();
  52.    }
  53.    function endGame()
  54.    {
  55.       _global.getApplicationState().setPaused(true);
  56.       _global.getApplicationState().setState(_global.getApplicationState().AS_GAME_OVER);
  57.       _global.playSound("fma_game_summary.wav",1,this);
  58.       GameSummaryPanel(_global.g_kApplication.m_kGui.m_kGameSummaryPanel).gotoAndStop("Show");
  59.       GameSummaryPanel(_global.g_kApplication.m_kGui.m_kGameSummaryPanel)._visible = true;
  60.       GameSummaryPanel(_global.g_kApplication.m_kGui.m_kGameSummaryPanel).onShow();
  61.    }
  62.    function startRound()
  63.    {
  64.       _global.getApplicationState().setPaused(false);
  65.       _global.LRG.LRGMusic.stopMusic();
  66.       _global.LRG.LRGMusic.m_sPlayListStyle = "LINEAR";
  67.       _global.LRG.LRGMusic.startMusic(["fma_game_music1.wav","fma_game_music2.wav","fma_game_music3.wav","fma_game_music4.wav"]);
  68.       PlayerState(_global.getPlayerState()).onStartRound();
  69.       this.m_kScrim.gotoAndStop("Hide");
  70.       PlayGui(_global.g_kApplication.m_kGui.m_kPlayGui).gotoAndStop("Show");
  71.       PlayGui(_global.g_kApplication.m_kGui.m_kPlayGui)._visible = true;
  72.       PlayGui(_global.g_kApplication.m_kGui.m_kPlayGui).onShow();
  73.       this.m_bSmartBomb = false;
  74.       this.m_kPlayer.onStartRound();
  75.       this.m_kEnemyHolder.onStartRound();
  76.       this.m_kBarrier1.onStartRound();
  77.       this.m_kBarrier2.onStartRound();
  78.       this.m_kBarrier3.onStartRound();
  79.       this.m_kBarrier4.onStartRound();
  80.       this.m_kBarrier5.onStartRound();
  81.       this.m_kBarrier6.onStartRound();
  82.       this.m_kBarrier7.onStartRound();
  83.       this.m_kBarrier8.onStartRound();
  84.       this.setupAlchemySymbol();
  85.       this.m_fRoundStartTime = this.getClipTime();
  86.    }
  87.    function endRound(bGameOver)
  88.    {
  89.       _global.getApplicationState().setPaused(true);
  90.       PlayerState(_global.getPlayerState()).setTimeThisRound(this.getClipTime() - this.m_fRoundStartTime);
  91.       PlayerState(_global.getPlayerState()).setTimeTotal(PlayerState(_global.getPlayerState()).getTimeThisRound() + PlayerState(_global.getPlayerState()).getTimeTotal());
  92.       _global.LRG.LRGMusic.endMusic();
  93.       this.m_kPlayer.onEndRound();
  94.       this.m_kEnemyHolder.onEndRound();
  95.       this.onRequestRemoveFireBeam();
  96.       var _loc3_ = 0;
  97.       while(_loc3_ < this.m_pBonusClips.length)
  98.       {
  99.          this.m_pBonusClips[_loc3_].removeMovieClip();
  100.          _loc3_ = _loc3_ + 1;
  101.       }
  102.       this.m_pBonusClips.splice(0);
  103.       if(!bGameOver)
  104.       {
  105.          PlayerState(_global.getPlayerState()).setLevel(PlayerState(_global.getPlayerState()).getLevel() + 1);
  106.          _global.playSound("fma_new_level.wav",1,this);
  107.          RoundSummaryPanel(_global.g_kApplication.m_kGui.m_kRoundSummaryPanel).gotoAndStop("Show");
  108.          RoundSummaryPanel(_global.g_kApplication.m_kGui.m_kRoundSummaryPanel)._visible = true;
  109.          RoundSummaryPanel(_global.g_kApplication.m_kGui.m_kRoundSummaryPanel).onShow();
  110.       }
  111.       else
  112.       {
  113.          this.endGame();
  114.       }
  115.    }
  116.    function onPlayerDied()
  117.    {
  118.       _global.playSound("fma_roy_dies.wav",1,this);
  119.       this.m_kScrim.playAnimation("DEATH_FADE",60,11,120,false,1);
  120.       _global.getApplicationState().setPaused(true);
  121.       _global.LRG.LRGMusic.endMusic();
  122.    }
  123.    function onEnemyDied()
  124.    {
  125.       PlayerState(_global.getPlayerState()).setKillsThisRound(PlayerState(_global.getPlayerState()).getKillsThisRound() + 1);
  126.       PlayerState(_global.getPlayerState()).setKillsTotal(PlayerState(_global.getPlayerState()).getKillsTotal() + 1);
  127.       if(this.getEnemyManager().isNoMoreEnemies())
  128.       {
  129.          if(this.getEnemyManager().isNoMoreEnemiesToCome())
  130.          {
  131.             this.endRound(false);
  132.          }
  133.       }
  134.    }
  135.    function isSmartBomb()
  136.    {
  137.       return this.m_bSmartBomb;
  138.    }
  139.    function getPlayer()
  140.    {
  141.       return this.m_kPlayer;
  142.    }
  143.    function getFireBeam()
  144.    {
  145.       return this.m_kFireBeam;
  146.    }
  147.    function getEnemyManager()
  148.    {
  149.       return this.m_kEnemyHolder;
  150.    }
  151.    function onFullCloseUp()
  152.    {
  153.       this.m_kBackground.gotoAndStop("Scorched");
  154.       this.m_kAlchemySymbol.gotoAndStop("Scorched");
  155.       var _loc2_ = 1;
  156.       while(_loc2_ <= 8)
  157.       {
  158.          var _loc3_ = this["m_kBarrier" + _loc2_];
  159.          if(_loc3_.isExplodable())
  160.          {
  161.             _loc3_.setState(Barrier.BS_CRITICAL);
  162.          }
  163.          _loc2_ = _loc2_ + 1;
  164.       }
  165.       this.m_kSymbolTargetHolder.m_kSymbolTarget1._visible = false;
  166.       this.m_kSymbolTargetHolder.m_kSymbolTarget2._visible = false;
  167.       this.m_kSymbolTargetHolder.m_kSymbolTarget3._visible = false;
  168.       this.m_kSymbolTargetHolder.m_kSymbolTarget4._visible = false;
  169.       this.m_kSymbolTargetHolder.m_kSymbolTarget5._visible = false;
  170.       this.m_kSymbolTargetHolder.m_kSymbolTarget6._visible = false;
  171.    }
  172.    function smartBomb()
  173.    {
  174.       PlayerState(_global.getPlayerState()).setHydrogenTotal(PlayerState(_global.getPlayerState()).getHydrogenTotal() + 1);
  175.       _global.playSound("fma_smart_bomb.wav",1,this);
  176.       this.m_kAlchemySymbol.playAnimation("EXPLODE",60,80,110,false,1);
  177.       this.m_kAlchemySymbol.m_kCollision._visible = false;
  178.       this.m_bSmartBomb = true;
  179.    }
  180.    function shootFireBeam(fPosX, fPosY, fAngle, fSpeed)
  181.    {
  182.       this.m_kFireBeam = FireBeam(this.m_kFireHolder.attachMovie("s_FireBeam","m_kFireBeam",this.m_kFireHolder.getNextHighestDepth()));
  183.       var _loc2_ = {x:fPosX,y:fPosY};
  184.       this.m_kFireHolder.globalToLocal(_loc2_);
  185.       this.m_kFireBeam._x = _loc2_.x;
  186.       this.m_kFireBeam._y = _loc2_.y;
  187.       this.m_kFireBeam._rotation = fAngle;
  188.       this.m_kFireBeam.setSpeed(fSpeed);
  189.       this.m_kFireBeam.onAdd();
  190.    }
  191.    function onRequestRemoveFireBeam()
  192.    {
  193.       if(this.m_kFireBeam.isHitSomething())
  194.       {
  195.          PlayerState(_global.getPlayerState()).setHitsThisRound(PlayerState(_global.getPlayerState()).getHitsThisRound() + 1);
  196.          PlayerState(_global.getPlayerState()).setHitsTotal(PlayerState(_global.getPlayerState()).getHitsTotal() + 1);
  197.       }
  198.       this.m_kFireBeam.onRemove();
  199.       this.m_kFireBeam.removeMovieClip();
  200.       this.m_kFireBeam = null;
  201.    }
  202.    function setupAlchemySymbol()
  203.    {
  204.       this.m_bSmartBomb = false;
  205.       this.stopAction("EXPLODE",false);
  206.       this.stopAction("EXPLODE2",false);
  207.       this.stopAction("END_SMART_BOMB",false);
  208.       this.m_kAlchemySymbol.stopAction("SYMBOL_PULSATE",false);
  209.       this.m_kAlchemySymbol.gotoAndStop("Off");
  210.       this.m_kBackground.gotoAndStop("Normal");
  211.       this.m_kAlchemySymbol.m_kCollision.gotoAndStop("Hide");
  212.       if(Settings(_global.getSettings()).getSetting("HIDE_BOUNDARIES"))
  213.       {
  214.          this.m_kAlchemySymbol.m_kCollision._visible = false;
  215.       }
  216.       this.m_kSymbolTargetHolder.m_kSymbolTarget1.setLineToTarget(this.m_kLineToSymbolTarget1);
  217.       this.m_kSymbolTargetHolder.m_kSymbolTarget2.setLineToTarget(this.m_kLineToSymbolTarget2);
  218.       this.m_kSymbolTargetHolder.m_kSymbolTarget3.setLineToTarget(this.m_kLineToSymbolTarget3);
  219.       this.m_kSymbolTargetHolder.m_kSymbolTarget4.setLineToTarget(this.m_kLineToSymbolTarget4);
  220.       this.m_kSymbolTargetHolder.m_kSymbolTarget5.setLineToTarget(this.m_kLineToSymbolTarget5);
  221.       this.m_kSymbolTargetHolder.m_kSymbolTarget6.setLineToTarget(this.m_kLineToSymbolTarget6);
  222.       this.m_kSymbolTargetHolder.m_kSymbolTarget1.onStartRound();
  223.       this.m_kSymbolTargetHolder.m_kSymbolTarget2.onStartRound();
  224.       this.m_kSymbolTargetHolder.m_kSymbolTarget3.onStartRound();
  225.       this.m_kSymbolTargetHolder.m_kSymbolTarget4.onStartRound();
  226.       this.m_kSymbolTargetHolder.m_kSymbolTarget5.onStartRound();
  227.       this.m_kSymbolTargetHolder.m_kSymbolTarget6.onStartRound();
  228.    }
  229.    function onSymbolTargetActivated(kTarget)
  230.    {
  231.       if(this.m_kSymbolTargetHolder.m_kSymbolTarget1.isActive() && this.m_kSymbolTargetHolder.m_kSymbolTarget2.isActive() && this.m_kSymbolTargetHolder.m_kSymbolTarget3.isActive() && this.m_kSymbolTargetHolder.m_kSymbolTarget4.isActive() && this.m_kSymbolTargetHolder.m_kSymbolTarget5.isActive() && this.m_kSymbolTargetHolder.m_kSymbolTarget6.isActive())
  232.       {
  233.          _global.getApplicationState().setPaused(true);
  234.          this.m_bSmartBomb = true;
  235.          this.m_kAlchemySymbol.m_kCollision._visible = false;
  236.          this.m_kAlchemySymbol.playAnimation("SYMBOL_ACTIVATE",30,11,40,false,1);
  237.       }
  238.    }
  239.    function addBonusAnimation(fX, fY)
  240.    {
  241.       var _loc2_ = LRG.LRGMovieClip(this.attachMovie("s_MultiKillBonus","m_kMultiKillBonus" + this.getNextHighestDepth(),this.getNextHighestDepth()));
  242.       _loc2_._x = fX;
  243.       _loc2_._y = fY;
  244.       _loc2_.playAnimation("BONUS_ANIMATION",30,1,30,false,1);
  245.       this.m_pBonusClips.push(_loc2_);
  246.    }
  247.    function onActionCompleted(sActionKey)
  248.    {
  249.       if(sActionKey == "SYMBOL_ACTIVATE")
  250.       {
  251.          _global.getApplicationState().setPaused(true);
  252.          PlayGui(_global.g_kApplication.m_kGui.m_kPlayGui).showCloseup();
  253.          _global.playSound("fma_popup.wav",1,this);
  254.       }
  255.       else if(sActionKey == "DEATH_FADE")
  256.       {
  257.          this.endRound(true);
  258.       }
  259.       else if(sActionKey == "BONUS_ANIMATION")
  260.       {
  261.          this.m_pBonusClips.shift().removeMovieClip();
  262.       }
  263.       else if(sActionKey == "EXPLODE")
  264.       {
  265.          this.m_kAlchemySymbol.playAnimation("EXPLODE2",60,111,244,false,1);
  266.          _global.getApplicationState().setPaused(false);
  267.          this.m_kAlchemySymbol.m_kCollision.gotoAndStop("Show");
  268.          this.getEnemyManager().explodeAll();
  269.          var _loc3_ = 1;
  270.          while(_loc3_ <= 8)
  271.          {
  272.             var _loc4_ = this["m_kBarrier" + _loc3_];
  273.             if(_loc4_.isExplodable())
  274.             {
  275.                _loc4_.explode();
  276.             }
  277.             _loc3_ = _loc3_ + 1;
  278.          }
  279.       }
  280.       else if(sActionKey == "EXPLODE2")
  281.       {
  282.          this.m_kAlchemySymbol.m_kCollision.gotoAndStop("Hide");
  283.          this.m_bSmartBomb = false;
  284.          this.m_kBackground.gotoAndStop("Scorched");
  285.          this.m_kAlchemySymbol.gotoAndStop("Scorched");
  286.       }
  287.    }
  288. }
  289.