home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Acao / kung_fu.swf / scripts / __Packages / com / KidFighting / FightTrigger.as < prev    next >
Encoding:
Text File  |  2006-06-13  |  12.5 KB  |  265 lines

  1. class com.KidFighting.FightTrigger
  2. {
  3.    static var removeEventListener;
  4.    static var addEventListener;
  5.    static var dispatchEvent;
  6.    static var p1WinTimes;
  7.    static var p2WinTimes;
  8.    static var _evt = mx.events.EventDispatcher.initialize(com.KidFighting.FightTrigger);
  9.    static var score = 0;
  10.    static var player1 = null;
  11.    static var player2 = null;
  12.    static var delay_timer = new ds.controls.Timer();
  13.    function FightTrigger()
  14.    {
  15.    }
  16.    static function get idPlayer1()
  17.    {
  18.       return com.KidFighting.FightTrigger.player1.uniqueId;
  19.    }
  20.    static function get idPlayer2()
  21.    {
  22.       return com.KidFighting.FightTrigger.player2.uniqueId;
  23.    }
  24.    static function joinP1(chSet)
  25.    {
  26.       if(com.KidFighting.FightTrigger.player1 != null)
  27.       {
  28.          com.KidFighting.FightTrigger.removeEventListener("onResumeGame",com.KidFighting.FightTrigger.player1);
  29.          com.KidFighting.FightTrigger.removeEventListener("onPauseGame",com.KidFighting.FightTrigger.player1);
  30.          com.KidFighting.FightTrigger.player1.removeEventListener("onFightActivated",com.KidFighting.FightTrigger);
  31.          com.KidFighting.FightTrigger.player1.destroy();
  32.          com.KidFighting.FightTrigger.player1 = undefined;
  33.       }
  34.       com.KidFighting.FightTrigger.player1 = new chSet.cls();
  35.       com.KidFighting.FightTrigger.player1.ani = chSet.ani;
  36.       com.KidFighting.FightTrigger.player1.controller = null;
  37.       com.KidFighting.Input.owner = com.KidFighting.FightTrigger.player1;
  38.       com.KidFighting.FightTrigger.addEventListener("onResumeGame",com.KidFighting.FightTrigger.player1);
  39.       com.KidFighting.FightTrigger.addEventListener("onPauseGame",com.KidFighting.FightTrigger.player1);
  40.       com.KidFighting.FightTrigger.player1.addEventListener("onFightActivated",com.KidFighting.FightTrigger);
  41.       com.KidFighting.FightTrigger.score = 0;
  42.    }
  43.    static function joinP2(chSet)
  44.    {
  45.       if(com.KidFighting.FightTrigger.player2 != null)
  46.       {
  47.          com.KidFighting.FightTrigger.removeEventListener("onPauseGame",com.KidFighting.FightTrigger.player2.controller);
  48.          com.KidFighting.FightTrigger.removeEventListener("onResumeGame",com.KidFighting.FightTrigger.player2.controller);
  49.          com.KidFighting.FightTrigger.removeEventListener("onFightStart",com.KidFighting.FightTrigger.player2.controller);
  50.          com.KidFighting.FightTrigger.removeEventListener("onFightEnd",com.KidFighting.FightTrigger.player2.controller);
  51.          com.KidFighting.FightTrigger.player2.controller.removeEventListener("updateInput",com.KidFighting.FightTrigger);
  52.          delete com.KidFighting.FightTrigger.player2.controller;
  53.          com.KidFighting.FightTrigger.removeEventListener("onResumeGame",com.KidFighting.FightTrigger.player2);
  54.          com.KidFighting.FightTrigger.removeEventListener("onPauseGame",com.KidFighting.FightTrigger.player2);
  55.          com.KidFighting.FightTrigger.player2.removeEventListener("onFightActivated",com.KidFighting.FightTrigger);
  56.          if(com.KidFighting.FightTrigger.player2.brother != undefined)
  57.          {
  58.             com.KidFighting.FightTrigger.player2.brother.removeEventListener("onFightActivated",com.KidFighting.FightTrigger);
  59.          }
  60.          com.KidFighting.FightTrigger.player2.destroy();
  61.          com.KidFighting.FightTrigger.player2 = null;
  62.       }
  63.       com.KidFighting.FightTrigger.player2 = new chSet.cls();
  64.       com.KidFighting.FightTrigger.player2.ani = chSet.ani;
  65.       var _loc1_ = new com.KidFighting.AiController();
  66.       _loc1_.level = 10;
  67.       com.KidFighting.FightTrigger.player2.controller = _loc1_;
  68.       _loc1_.owner = com.KidFighting.FightTrigger.player2;
  69.       _loc1_.addEventListener("updateInput",com.KidFighting.FightTrigger);
  70.       com.KidFighting.FightTrigger.addEventListener("onResumeGame",com.KidFighting.FightTrigger.player2);
  71.       com.KidFighting.FightTrigger.addEventListener("onPauseGame",com.KidFighting.FightTrigger.player2);
  72.       com.KidFighting.FightTrigger.addEventListener("onPauseGame",com.KidFighting.FightTrigger.player2.controller);
  73.       com.KidFighting.FightTrigger.addEventListener("onResumeGame",com.KidFighting.FightTrigger.player2.controller);
  74.       com.KidFighting.FightTrigger.addEventListener("onFightStart",com.KidFighting.FightTrigger.player2.controller);
  75.       com.KidFighting.FightTrigger.addEventListener("onFightEnd",com.KidFighting.FightTrigger.player2.controller);
  76.       if(com.KidFighting.FightTrigger.player2.brother != undefined)
  77.       {
  78.          com.KidFighting.FightTrigger.player2.brother.addEventListener("onFightActivated",com.KidFighting.FightTrigger);
  79.       }
  80.       com.KidFighting.FightTrigger.player2.addEventListener("onFightActivated",com.KidFighting.FightTrigger);
  81.    }
  82.    static function onFightActivated(evtObj)
  83.    {
  84.       if(com.KidFighting.FightTrigger.player1.status == "lose" || com.KidFighting.FightTrigger.player2.status == "lose")
  85.       {
  86.          return undefined;
  87.       }
  88.       var _loc3_ = evtObj.activer;
  89.       var _loc1_ = _loc3_.opponent;
  90.       if(evtObj.getHurt)
  91.       {
  92.          if(_loc1_.status != "hurt" && _loc1_.status != "thrown")
  93.          {
  94.             var _loc4_ = evtObj.hurtValue != undefined ? evtObj.hurtValue : _loc3_.strength;
  95.             if(_loc1_.crtHP - _loc4_ > 0)
  96.             {
  97.                _loc1_.crtHP -= _loc4_;
  98.             }
  99.             else
  100.             {
  101.                _loc1_.crtHP = 0;
  102.             }
  103.             if(!evtObj.isNoAnimation)
  104.             {
  105.                if(_loc3_.direction == "down")
  106.                {
  107.                   com.KidFighting.FightTrigger.updateInput({activer:_loc1_,motion:"hurtDown",hurtEff:evtObj.hitEff});
  108.                }
  109.                else
  110.                {
  111.                   com.KidFighting.FightTrigger.updateInput({activer:_loc1_,motion:"hurtUp",hurtEff:evtObj.hitEff});
  112.                }
  113.             }
  114.             else if(evtObj.hurtFunc)
  115.             {
  116.                _loc1_[evtObj.hurtFunc]();
  117.             }
  118.             if(_loc3_ == com.KidFighting.FightTrigger.player1)
  119.             {
  120.                com.KidFighting.FightTrigger.score += _loc4_ * 15 + 40;
  121.             }
  122.             com.KidFighting.FightTrigger.dispatchEvent({type:"updateLife",p1Life:com.KidFighting.FightTrigger.player1.HP,p2Life:com.KidFighting.FightTrigger.player2.HP,score:com.KidFighting.FightTrigger.score});
  123.             com.KidFighting.FightTrigger.checkWinLose();
  124.          }
  125.       }
  126.       else if(_loc1_.status == "down")
  127.       {
  128.          com.KidFighting.FightTrigger.updateInput({activer:_loc1_,motion:"blockDown",hurtEff:evtObj.blockHitEff});
  129.       }
  130.       else
  131.       {
  132.          com.KidFighting.FightTrigger.updateInput({activer:_loc1_,motion:"blockUp",hurtEff:evtObj.blockHitEff});
  133.       }
  134.       com.KidFighting.FightTrigger.dispatchEvent(evtObj);
  135.    }
  136.    static function updateInput(evtObj)
  137.    {
  138.       evtObj.activer.doMotion(evtObj);
  139.    }
  140.    static function onFightStart(evtObj)
  141.    {
  142.       com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player1,motion:"normal"});
  143.       com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player2,motion:"normal"});
  144.       com.KidFighting.FightTrigger.dispatchEvent({type:"onFightStart"});
  145.    }
  146.    static function onRoundInit(evtObj)
  147.    {
  148.       com.KidFighting.FightTrigger.player1.setup("left");
  149.       com.KidFighting.FightTrigger.player2.setup("right");
  150.       com.KidFighting.FightTrigger.player1.opponent = com.KidFighting.FightTrigger.player2;
  151.       com.KidFighting.FightTrigger.player2.opponent = com.KidFighting.FightTrigger.player1;
  152.       if(com.KidFighting.FightTrigger.player2.brother)
  153.       {
  154.          com.KidFighting.FightTrigger.player2.brother.opponent = com.KidFighting.FightTrigger.player1;
  155.       }
  156.       if(_root.sideUpdater_mc == undefined)
  157.       {
  158.          _root.createEmptyMovieClip("sideUpdater_mc",_root.getNextHighestDepth());
  159.          var o = com.KidFighting.FightTrigger;
  160.          _root.sideUpdater_mc.onEnterFrame = function()
  161.          {
  162.             if(o.player1.ani._x > o.player2.ani._x)
  163.             {
  164.                o.player1.side = -1;
  165.                o.player2.side = 1;
  166.             }
  167.             else
  168.             {
  169.                o.player1.side = 1;
  170.                o.player2.side = -1;
  171.             }
  172.             if(o.player1.status == "normal")
  173.             {
  174.                o.player1.updateSide();
  175.             }
  176.             if(o.player2.status == "normal")
  177.             {
  178.                o.player2.updateSide();
  179.             }
  180.          };
  181.       }
  182.       if(evtObj.round == 1)
  183.       {
  184.          com.KidFighting.FightTrigger.p1WinTimes = 0;
  185.          com.KidFighting.FightTrigger.p2WinTimes = 0;
  186.          com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player1,motion:"intro"});
  187.          com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player2,motion:"intro"});
  188.       }
  189.       else
  190.       {
  191.          com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player1,motion:"normal"});
  192.          com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player2,motion:"normal"});
  193.       }
  194.    }
  195.    static function onTimeOut(evtObj)
  196.    {
  197.       com.KidFighting.FightTrigger.checkWinLose(true);
  198.    }
  199.    static function checkWinLose(isTimeOut)
  200.    {
  201.       if(!isTimeOut && com.KidFighting.FightTrigger.player1.HP > 0 && com.KidFighting.FightTrigger.player2.HP > 0 || com.KidFighting.FightTrigger.player1.status == "win" || com.KidFighting.FightTrigger.player2.status == "win")
  202.       {
  203.          return undefined;
  204.       }
  205.       com.KidFighting.FightTrigger.delay_timer.interval = 2000;
  206.       if(com.KidFighting.FightTrigger.player1.HP > com.KidFighting.FightTrigger.player2.HP)
  207.       {
  208.          com.KidFighting.FightTrigger.delay_timer.func = function()
  209.          {
  210.             com.KidFighting.FightTrigger.delay_timer.stop();
  211.             com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player1,motion:"win"});
  212.          };
  213.          com.KidFighting.FightTrigger.p1WinTimes = com.KidFighting.FightTrigger.p1WinTimes + 1;
  214.          com.KidFighting.FightTrigger.player1.freeze();
  215.          if(com.KidFighting.FightTrigger.player2.HP == 0)
  216.          {
  217.             ds.controls.SoundPlayer.playSound("KO_" + com.KidFighting.FightTrigger.player2.sex);
  218.          }
  219.       }
  220.       else
  221.       {
  222.          com.KidFighting.FightTrigger.delay_timer.func = function()
  223.          {
  224.             com.KidFighting.FightTrigger.delay_timer.stop();
  225.             com.KidFighting.FightTrigger.updateInput({activer:com.KidFighting.FightTrigger.player2,motion:"win"});
  226.          };
  227.          com.KidFighting.FightTrigger.p2WinTimes = com.KidFighting.FightTrigger.p2WinTimes + 1;
  228.          com.KidFighting.FightTrigger.player2.freeze();
  229.          if(com.KidFighting.FightTrigger.player1.HP == 0)
  230.          {
  231.             ds.controls.SoundPlayer.playSound("KO_" + com.KidFighting.FightTrigger.player1.sex);
  232.          }
  233.       }
  234.       com.KidFighting.FightTrigger.delay_timer.start();
  235.       if(com.KidFighting.FightTrigger.p1WinTimes > 1 || com.KidFighting.FightTrigger.p2WinTimes > 1)
  236.       {
  237.          if(com.KidFighting.FightTrigger.p1WinTimes > com.KidFighting.FightTrigger.p2WinTimes)
  238.          {
  239.             com.KidFighting.FightTrigger.dispatchEvent({type:"endRound",roundClear:true,win:0,winnerLable:com.KidFighting.FightTrigger.player1.winLable,p1WinTimes:com.KidFighting.FightTrigger.p1WinTimes,p2WinTimes:com.KidFighting.FightTrigger.p2WinTimes,timeout:isTimeOut});
  240.          }
  241.          else
  242.          {
  243.             com.KidFighting.FightTrigger.dispatchEvent({type:"endRound",roundClear:true,win:1,winnerLable:com.KidFighting.FightTrigger.player2.winLable,p1WinTimes:com.KidFighting.FightTrigger.p1WinTimes,p2WinTimes:com.KidFighting.FightTrigger.p2WinTimes,timeout:isTimeOut});
  244.          }
  245.       }
  246.       else
  247.       {
  248.          com.KidFighting.FightTrigger.dispatchEvent({type:"endRound",roundClear:false,p1WinTimes:com.KidFighting.FightTrigger.p1WinTimes,p2WinTimes:com.KidFighting.FightTrigger.p2WinTimes,timeout:isTimeOut});
  249.       }
  250.       com.KidFighting.FightTrigger.dispatchEvent({type:"onFightEnd"});
  251.       com.KidFighting.FightTrigger.dispatchEvent({type:"updateLife",p1Life:com.KidFighting.FightTrigger.player1.HP,p2Life:com.KidFighting.FightTrigger.player2.HP,score:com.KidFighting.FightTrigger.score});
  252.    }
  253.    static function pauseGame(evtObj)
  254.    {
  255.       if(evtObj.value)
  256.       {
  257.          com.KidFighting.FightTrigger.dispatchEvent({type:"onPauseGame"});
  258.       }
  259.       else
  260.       {
  261.          com.KidFighting.FightTrigger.dispatchEvent({type:"onResumeGame"});
  262.       }
  263.    }
  264. }
  265.