home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / Clusterz / Clusterz.swf / scripts / RES / OBJECTS / OBang.as next >
Encoding:
Text File  |  2008-09-12  |  5.7 KB  |  175 lines

  1. package RES.OBJECTS
  2. {
  3.    import ENGINE.CORE.OUtils;
  4.    import ENGINE.DISPLAY.OSprite;
  5.    import flash.events.Event;
  6.    import flash.geom.Point;
  7.    
  8.    public class OBang extends OSprite
  9.    {
  10.       
  11.       public static const iMaxBubbles:int = 15;
  12.        
  13.       
  14.       public function OBang()
  15.       {
  16.          super();
  17.       }
  18.       
  19.       public function Clear() : void
  20.       {
  21.          super.Free();
  22.       }
  23.       
  24.       public function MakeFirework0() : void
  25.       {
  26.          var _loc1_:OBubble = null;
  27.          _loc1_ = OBubble.MakeFireworkBubble(OUtils.Random(4,7),OUtils.Random(18,20),OUtils.Random(0.08,0.1),0,Math.round(Math.random() * 5),400,600,OUtils.Random(-2.5,2.5),OUtils.Random(-3.5,-2));
  28.          _loc1_.prType = 0;
  29.          this.addChild(_loc1_);
  30.       }
  31.       
  32.       public function MakeFirework2(param1:OBubble) : void
  33.       {
  34.          var _loc2_:int = 0;
  35.          var _loc3_:int = 0;
  36.          var _loc4_:Point = null;
  37.          var _loc5_:Point = null;
  38.          var _loc6_:Number = NaN;
  39.          var _loc7_:Number = NaN;
  40.          var _loc8_:OBubble = null;
  41.          _loc2_ = OUtils.Random(2,4);
  42.          _loc3_ = 0;
  43.          while(_loc3_ < _loc2_)
  44.          {
  45.             if(this.numChildren >= OBang.iMaxBubbles)
  46.             {
  47.                return;
  48.             }
  49.             (_loc4_ = Point.polar(Math.random() * param1.prRadius,Math.random() * Math.PI * 2)).offset(param1.prX,param1.prY);
  50.             _loc5_ = Point.polar(OUtils.Random(2,3),Math.random() * Math.PI * 2);
  51.             if((_loc6_ = OUtils.Random(param1.prRadius / 3,param1.prRadius / 2)) < 4)
  52.             {
  53.                _loc6_ = 4;
  54.             }
  55.             else if(_loc6_ > 10)
  56.             {
  57.                _loc6_ = 10;
  58.             }
  59.             _loc7_ = OUtils.Random(-0.2,-0.1);
  60.             (_loc8_ = OBubble.MakeFireworkBubble(_loc6_ * 2,_loc6_,_loc7_,_loc7_ / _loc6_ * 0.5,Math.round(Math.random() * 5),_loc4_.x,_loc4_.y,_loc5_.x,_loc5_.y)).prType = 2;
  61.             this.addChild(_loc8_);
  62.             _loc3_++;
  63.          }
  64.       }
  65.       
  66.       public function MakeFirework1(param1:OBubble) : void
  67.       {
  68.          var _loc2_:int = 0;
  69.          var _loc3_:int = 0;
  70.          var _loc4_:Point = null;
  71.          var _loc5_:Point = null;
  72.          var _loc6_:Number = NaN;
  73.          var _loc7_:OBubble = null;
  74.          _loc2_ = OUtils.Random(3,5);
  75.          _loc3_ = 0;
  76.          while(_loc3_ < _loc2_)
  77.          {
  78.             if(this.numChildren >= OBang.iMaxBubbles)
  79.             {
  80.                return;
  81.             }
  82.             (_loc4_ = Point.polar(Math.random() * param1.prRadius,Math.random() * Math.PI * 2)).offset(param1.prX,param1.prY);
  83.             _loc5_ = Point.polar(OUtils.Random(3,4),Math.random() * Math.PI * 2);
  84.             if((_loc6_ = OUtils.Random(param1.prRadius / 4 * 3,param1.prRadius)) < 4)
  85.             {
  86.                _loc6_ = 4;
  87.             }
  88.             else if(_loc6_ > 10)
  89.             {
  90.                _loc6_ = 10;
  91.             }
  92.             (_loc7_ = OBubble.MakeFireworkBubble(_loc6_,_loc6_ * 2,OUtils.Random(0.1,0.2),0,Math.round(Math.random() * 5),_loc4_.x,_loc4_.y,_loc5_.x,_loc5_.y)).prType = 1;
  93.             this.addChild(_loc7_);
  94.             _loc3_++;
  95.          }
  96.       }
  97.       
  98.       public function MakeFirework3(param1:OBubble, param2:int) : void
  99.       {
  100.          var _loc3_:int = 0;
  101.          var _loc4_:int = 0;
  102.          var _loc5_:OSprite = null;
  103.          var _loc6_:Point = null;
  104.          var _loc7_:Point = null;
  105.          var _loc8_:Number = NaN;
  106.          var _loc9_:Number = NaN;
  107.          var _loc10_:OBubble = null;
  108.          _loc3_ = param2 == 4 ? int(OUtils.Random(1,2)) : int(OUtils.Random(2,4));
  109.          _loc4_ = 0;
  110.          while(_loc4_ < _loc3_)
  111.          {
  112.             if(this.numChildren >= OBang.iMaxBubbles)
  113.             {
  114.                return;
  115.             }
  116.             _loc5_ = param1.parent as OSprite;
  117.             (_loc6_ = Point.polar(Math.random() * param1.prRadius,Math.random() * Math.PI * 2)).offset(param1.prX + _loc5_.prX,param1.prY + _loc5_.prY);
  118.             _loc7_ = Point.polar(OUtils.Random(1.5,2),Math.random() * Math.PI * 2);
  119.             if((_loc8_ = OUtils.Random(param1.prRadius / 3,OUtils.Random(2,4))) < 4)
  120.             {
  121.                _loc8_ = 4;
  122.             }
  123.             else if(_loc8_ > 10)
  124.             {
  125.                _loc8_ = 10;
  126.             }
  127.             _loc9_ = OUtils.Random(-0.3,-0.1);
  128.             (_loc10_ = OBubble.MakeFireworkBubble(_loc8_ * 2,_loc8_,_loc9_,_loc9_ / _loc8_ * 0.5,param1.prCInd,_loc6_.x,_loc6_.y,_loc7_.x,_loc7_.y)).prType = param2;
  129.             this.addChild(_loc10_);
  130.             _loc4_++;
  131.          }
  132.       }
  133.       
  134.       override public function Free() : void
  135.       {
  136.          this.removeEventListener(Event.ENTER_FRAME,OnEnterFrame);
  137.          super.Free();
  138.       }
  139.       
  140.       public function OnEnterFrame(param1:Event) : void
  141.       {
  142.          var _loc2_:int = 0;
  143.          var _loc3_:OBubble = null;
  144.          _loc2_ = 0;
  145.          while(_loc2_ < this.numChildren)
  146.          {
  147.             _loc3_ = this.getChildAt(_loc2_) as OBubble;
  148.             _loc3_.OnEnterFrame(param1);
  149.             if(_loc3_.State == OBubble.stBang)
  150.             {
  151.                switch(_loc3_.prType)
  152.                {
  153.                   case 0:
  154.                      MakeFirework1(_loc3_);
  155.                      break;
  156.                   case 1:
  157.                      MakeFirework2(_loc3_);
  158.                      break;
  159.                   case 2:
  160.                      break;
  161.                   case 3:
  162.                      MakeFirework3(_loc3_,4);
  163.                }
  164.                this.removeChild(_loc3_);
  165.                _loc3_.Free();
  166.             }
  167.             else
  168.             {
  169.                _loc2_++;
  170.             }
  171.          }
  172.       }
  173.    }
  174. }
  175.