home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Aventura / Never_End.swf / scripts / elements / ManItem.as < prev    next >
Encoding:
Text File  |  2008-09-23  |  11.0 KB  |  279 lines

  1. package elements
  2. {
  3.    import flash.display.MovieClip;
  4.    import game.BroadCaster;
  5.    import game.Model;
  6.    
  7.    [Embed(source="/_assets/assets.swf", symbol="elements.ManItem")]
  8.    public class ManItem extends Item
  9.    {
  10.        
  11.       
  12.       private var model:Model;
  13.       
  14.       private var shadows:Array;
  15.       
  16.       public var _man:MovieClip;
  17.       
  18.       public var man_n:MovieClip;
  19.       
  20.       private var _width:Number = 6;
  21.       
  22.       public var man_p:MovieClip;
  23.       
  24.       private var _man_p:MovieClip;
  25.       
  26.       private var _man_n:MovieClip;
  27.       
  28.       public function ManItem(param1:Number = 0, param2:Number = 0)
  29.       {
  30.          var _loc3_:Number = NaN;
  31.          _width = 6;
  32.          shadows = new Array();
  33.          _loc3_ = 20;
  34.          super(param1,param2,_width,_loc3_);
  35.          model = Model.getInstance();
  36.          _man_n = getChildByName("man_n") as MovieClip;
  37.          _man_p = getChildByName("man_p") as MovieClip;
  38.          setWindForece();
  39.       }
  40.       
  41.       public function setSize0() : void
  42.       {
  43.          itemHeight = itemWidth = 2;
  44.       }
  45.       
  46.       override public function moveTo() : void
  47.       {
  48.          var _loc1_:* = undefined;
  49.          var _loc2_:* = undefined;
  50.          var _loc3_:Number = NaN;
  51.          var _loc4_:Number = NaN;
  52.          var _loc5_:* = undefined;
  53.          var _loc6_:* = undefined;
  54.          var _loc7_:* = undefined;
  55.          var _loc8_:* = undefined;
  56.          var _loc9_:* = undefined;
  57.          var _loc10_:Number = NaN;
  58.          var _loc11_:Number = NaN;
  59.          var _loc12_:* = undefined;
  60.          var _loc13_:Number = NaN;
  61.          var _loc14_:Number = NaN;
  62.          var _loc15_:* = undefined;
  63.          var _loc16_:Number = NaN;
  64.          var _loc17_:Number = NaN;
  65.          var _loc18_:* = undefined;
  66.          var _loc19_:Number = NaN;
  67.          var _loc20_:Number = NaN;
  68.          var _loc21_:Object = null;
  69.          var _loc22_:* = undefined;
  70.          var _loc23_:Number = NaN;
  71.          var _loc24_:Number = NaN;
  72.          for each(_loc1_ in model.currentRoom.books)
  73.          {
  74.             _loc2_ = _loc1_.items[0];
  75.             _loc3_ = 0.5 * (itemWidth + _loc2_.itemWidth);
  76.             _loc4_ = 0.5 * (itemHeight + _loc2_.itemHeight);
  77.             if(Math.abs(xPosition - _loc2_.tx) < _loc3_ - 10 && Math.abs(yPosition - _loc2_.ty) < _loc4_ - 10)
  78.             {
  79.                _loc1_.removeAllItems();
  80.             }
  81.          }
  82.          if(Model.state == "normal" && !Model.isGameOver)
  83.          {
  84.             for each(_loc5_ in model.currentRoom.keys)
  85.             {
  86.                _loc9_ = _loc5_.items[0];
  87.                _loc10_ = 0.5 * (itemWidth + _loc9_.itemWidth);
  88.                _loc11_ = 0.5 * (itemHeight + _loc9_.itemHeight);
  89.                if(Math.abs(xPosition - _loc9_.tx) < _loc10_ - 10 && Math.abs(yPosition - _loc9_.ty) < _loc11_ - 10)
  90.                {
  91.                   _loc5_.removeAllItems();
  92.                }
  93.             }
  94.             for each(_loc6_ in model.currentRoom.exits)
  95.             {
  96.                _loc12_ = _loc6_.items[0];
  97.                _loc13_ = 0.5 * (itemWidth + _loc12_.itemWidth);
  98.                _loc14_ = 0.5 * (itemHeight + _loc12_.itemHeight);
  99.                if(Math.abs(xPosition - _loc12_.tx) < _loc13_ && Math.abs(yPosition - _loc12_.ty) < _loc14_)
  100.                {
  101.                   BroadCaster.getInstance().run("onGameWin",String(_loc6_.exitSign) + ":" + group.dir);
  102.                   return;
  103.                }
  104.             }
  105.             for each(_loc7_ in model.currentRoom.spikes)
  106.             {
  107.                _loc15_ = _loc7_.items[0];
  108.                _loc16_ = 0.5 * (itemWidth + _loc15_.itemWidth);
  109.                _loc17_ = 0.5 * (itemHeight + _loc15_.itemHeight);
  110.                if(Math.abs(xPosition - _loc15_.tx) <= _loc16_ && Math.abs(yPosition - _loc15_.ty) <= _loc17_)
  111.                {
  112.                   group.setSize0();
  113.                   Model.isGameOver = true;
  114.                   BroadCaster.getInstance().run("onPlayerDied","3");
  115.                   break;
  116.                }
  117.             }
  118.             for each(_loc8_ in model.currentRoom.winds)
  119.             {
  120.                _loc18_ = _loc8_.items[0];
  121.                _loc19_ = 0.5 * (itemWidth + _loc18_.itemWidth);
  122.                _loc20_ = 0.5 * (itemHeight + _loc18_.itemHeight);
  123.                if(Math.abs(xPosition - _loc18_.tx) < _loc19_ - 10 && Math.abs(yPosition - _loc18_.ty) < _loc20_ - 10)
  124.                {
  125.                   Model.hasP = true;
  126.                   setWindForece();
  127.                   _loc8_.removeAllItems();
  128.                   break;
  129.                }
  130.             }
  131.          }
  132.          else if(Model.state == "map")
  133.          {
  134.             _loc21_ = "";
  135.             for each(_loc22_ in model.mapEntrances)
  136.             {
  137.                if(Math.abs(xPosition - _loc22_.x) <= itemWidth / 2 + 4 && Math.abs(yPosition - _loc22_.y) <= itemHeight / 2 + 4)
  138.                {
  139.                   _loc23_ = Math.round(_loc22_.point[1] * 50 - _loc22_.x);
  140.                   _loc24_ = Math.round(_loc22_.point[0] * 50 - _loc22_.y);
  141.                   if(model.currentRoomId != _loc22_.id && model.currentRoomId != 0)
  142.                   {
  143.                      BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  144.                      break;
  145.                   }
  146.                   if(model.currentRoomId != _loc22_.id)
  147.                   {
  148.                      switch(group.counter)
  149.                      {
  150.                         case 0:
  151.                            if(_loc23_ > 0 && Model.KEY_RIGHT || _loc23_ < 0 && Model.KEY_LEFT || _loc24_ > 0 && Model.KEY_DOWN || _loc24_ < 0 && Model.KEY_UP)
  152.                            {
  153.                               BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  154.                            }
  155.                            break;
  156.                         case 1:
  157.                            if(_loc24_ < 0 && Model.KEY_RIGHT || _loc24_ > 0 && Model.KEY_LEFT || _loc23_ > 0 && Model.KEY_DOWN || _loc23_ < 0 && Model.KEY_UP)
  158.                            {
  159.                               BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  160.                            }
  161.                            break;
  162.                         case 2:
  163.                            if(_loc23_ < 0 && Model.KEY_RIGHT || _loc23_ > 0 && Model.KEY_LEFT || _loc24_ < 0 && Model.KEY_DOWN || _loc24_ > 0 && Model.KEY_UP)
  164.                            {
  165.                               BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  166.                            }
  167.                            break;
  168.                         case 3:
  169.                            if(_loc24_ > 0 && Model.KEY_RIGHT || _loc24_ < 0 && Model.KEY_LEFT || _loc23_ < 0 && Model.KEY_DOWN || _loc23_ > 0 && Model.KEY_UP)
  170.                            {
  171.                               BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  172.                            }
  173.                      }
  174.                      break;
  175.                   }
  176.                   switch(group.counter)
  177.                   {
  178.                      case 0:
  179.                         if(_loc23_ > 0 && Model.KEY_RIGHT || _loc23_ < 0 && Model.KEY_LEFT || _loc24_ > 0 && Model.KEY_DOWN || _loc24_ < 0 && Model.KEY_UP)
  180.                         {
  181.                            BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  182.                         }
  183.                         break;
  184.                      case 1:
  185.                         if(_loc24_ < 0 && Model.KEY_RIGHT || _loc24_ > 0 && Model.KEY_LEFT || _loc23_ > 0 && Model.KEY_DOWN || _loc23_ < 0 && Model.KEY_UP)
  186.                         {
  187.                            BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  188.                         }
  189.                         break;
  190.                      case 2:
  191.                         if(_loc23_ < 0 && Model.KEY_RIGHT || _loc23_ > 0 && Model.KEY_LEFT || _loc24_ < 0 && Model.KEY_DOWN || _loc24_ > 0 && Model.KEY_UP)
  192.                         {
  193.                            BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  194.                         }
  195.                         break;
  196.                      case 3:
  197.                         if(_loc24_ > 0 && Model.KEY_RIGHT || _loc24_ < 0 && Model.KEY_LEFT || _loc23_ < 0 && Model.KEY_DOWN || _loc23_ > 0 && Model.KEY_UP)
  198.                         {
  199.                            BroadCaster.getInstance().run("onEnterRoom",String(_loc22_.id) + ":" + _loc22_.entranceId + ":" + group.dir);
  200.                         }
  201.                   }
  202.                   if(model.currentRoomId == _loc22_.id)
  203.                   {
  204.                      _loc21_ = _loc22_;
  205.                   }
  206.                }
  207.             }
  208.             if(_loc21_ != null && _loc21_ != "")
  209.             {
  210.                switch(_loc21_.dir)
  211.                {
  212.                   case "L":
  213.                      xPosition = _loc21_.x - itemWidth / 2;
  214.                      break;
  215.                   case "R":
  216.                      xPosition = _loc21_.x + itemWidth / 2;
  217.                      break;
  218.                   case "B":
  219.                      yPosition = _loc21_.y + itemHeight / 2;
  220.                      break;
  221.                   case "T":
  222.                      yPosition = _loc21_.y - itemHeight / 2;
  223.                }
  224.             }
  225.             else if(_loc21_ == "")
  226.             {
  227.                model.currentRoomId = 0;
  228.             }
  229.             group.items[0].resetPosition(xPosition,yPosition);
  230.             group.items[1].resetPosition(xPosition,yPosition);
  231.          }
  232.          super.moveTo();
  233.       }
  234.       
  235.       public function setWindForece() : void
  236.       {
  237.          if(Model.hasP)
  238.          {
  239.             _man = _man_p;
  240.             _man_n.visible = false;
  241.             _man_p.visible = true;
  242.          }
  243.          else
  244.          {
  245.             _man = _man_n;
  246.             _man_p.visible = false;
  247.             _man_n.visible = true;
  248.          }
  249.          if(group != null)
  250.          {
  251.             group.doAction("stand");
  252.          }
  253.       }
  254.       
  255.       public function resetPosition(param1:Number, param2:Number) : void
  256.       {
  257.          this.x = this.tx = this.xPosition = param1;
  258.          this.y = this.ty = this.yPosition = param2;
  259.       }
  260.       
  261.       override public function set rotation(param1:Number) : void
  262.       {
  263.          tx = xPosition = this.x = Math.round(tx / 25) * 25;
  264.          ty = yPosition = this.y = Math.round(ty / 25) * 25;
  265.          super.rotation = -param1;
  266.          if(Math.round(Math.sin(Math.PI * param1 / 180)) == 0)
  267.          {
  268.             itemHeight = 20;
  269.             itemWidth = _width;
  270.          }
  271.          else
  272.          {
  273.             itemHeight = _width;
  274.             itemWidth = 20;
  275.          }
  276.       }
  277.    }
  278. }
  279.