home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / dragon.swf / scripts / DefineSprite_82_snot_ball / frame_1 / DoAction.as
Encoding:
Text File  |  2008-09-12  |  4.5 KB  |  163 lines

  1. function setVelocity(xdelta, ydelta)
  2. {
  3.    vx = xdelta;
  4.    vy = ydelta;
  5. }
  6. function step()
  7. {
  8.    m_flightTime++;
  9.    vy += _parent._parent.g_grav;
  10.    _Y = _Y + vy;
  11.    _X = _X + vx;
  12.    radians = Math.atan(vy / vx);
  13.    if(vx > 0)
  14.    {
  15.       _rotation = radians * 180 / 3.14159;
  16.    }
  17.    else
  18.    {
  19.       _rotation = radians * 180 / 3.14159 + 180;
  20.    }
  21.    if(vx < 0.00001 && vx > -0.00001)
  22.    {
  23.       _rotation = _rotation + 180;
  24.    }
  25.    if(boundaryTimer-- < 0)
  26.    {
  27.       boundaryTimer = 25;
  28.       if(_X < xmin || _X > xmax || _Y > ymax)
  29.       {
  30.          this.unloadMovie();
  31.       }
  32.    }
  33.    if(flameDebrisTimer-- < 0)
  34.    {
  35.       flameDebrisTimer = 0;
  36.       var _loc3_ = _parent._parent.addObj("snot_glob",_parent._parent.debris_layer,_parent._parent.getNextDebrisLevel());
  37.       _loc3_._x = _X;
  38.       _loc3_._y = _Y;
  39.       _loc3_._rotation = _rotation;
  40.       _loc3_._xscale = _loc3_._yscale = 30 + rank * 20;
  41.       _loc3_.decayRate = 6;
  42.    }
  43.    testHitEnemies();
  44. }
  45. function testHitEnemies()
  46. {
  47.    var _loc3_ = undefined;
  48.    var _loc5_ = false;
  49.    var _loc6_ = undefined;
  50.    var _loc4_ = 0;
  51.    while(_loc4_ < _parent._parent.enemies.length && !_loc5_)
  52.    {
  53.       _loc3_ = _parent._parent.enemies[_loc4_];
  54.       if(_loc3_.hitBox.hitTest(_X,_Y,0))
  55.       {
  56.          _loc5_ = true;
  57.          _loc6_ = _loc3_;
  58.          break;
  59.       }
  60.       _loc4_ = _loc4_ + 1;
  61.    }
  62.    if(_loc5_)
  63.    {
  64.       _parent._parent.playSound("blood_splat.wav");
  65.       if(_loc3_.etype == "air_ship")
  66.       {
  67.          _loc3_.testHitTroops(this);
  68.       }
  69.       if(!(_loc3_.etype == "snot" || _loc3_.etype == "fire"))
  70.       {
  71.          if(_loc3_.etype == "meteor")
  72.          {
  73.             _loc3_.takeDamage(Math.ceil(rank / 1.2),_X,_Y);
  74.             _parent._parent.updateRankSnot(getFlightBonus(3) + 2);
  75.          }
  76.          else if(_loc3_.etype == "air_ship")
  77.          {
  78.             splatSnot(_loc6_);
  79.          }
  80.          else if(_loc3_.etype == "steel")
  81.          {
  82.             _parent._parent.addSticky("sticky_snot",_loc3_,_X,_Y,20 + rank * 20);
  83.             splatSnot(_loc6_);
  84.             _loc3_.takeDamage(rank,_X,_Y);
  85.             _parent._parent.updateRankSnot(getFlightBonus(30) + 10);
  86.          }
  87.          else
  88.          {
  89.             _parent._parent.addSticky("sticky_snot",_loc3_,_X,_Y,20 + rank * 20);
  90.             splatSnot(_loc6_);
  91.             _loc3_.takeDamage(rank,_X,_Y);
  92.             _parent._parent.updateRankSnot(getFlightBonus(10) + 5);
  93.          }
  94.       }
  95.       this.unloadMovie();
  96.    }
  97. }
  98. function splatSnot(obj)
  99. {
  100.    var _loc2_ = undefined;
  101.    var _loc3_ = 0;
  102.    while(_loc3_ < rank)
  103.    {
  104.       _loc2_ = _parent._parent.addObj("snot_ball_splat",_parent._parent.bullet_layer,_parent._parent.getNextProjectileLevel());
  105.       _loc2_.vx = (random(100) - 50) / 20;
  106.       _loc2_.vy = (- random(50)) / 20;
  107.       _loc2_._x = _X;
  108.       _loc2_._y = _Y;
  109.       _loc2_._xscale = _loc2_._yscale = _xscale / 2;
  110.       _loc2_.rank = 1;
  111.       _loc2_.owner = obj;
  112.       _loc3_ = _loc3_ + 1;
  113.    }
  114. }
  115. function testHitTroops(obj)
  116. {
  117.    if(obj.archer != null && obj.archer.hitTest(_X,_Y,0))
  118.    {
  119.       obj.archer.unloadMovie();
  120.       _parent._parent.addFlyingTroop("deb_ene_archer",_X,_Y,obj.archer._xscale,obj.archer._yscale);
  121.    }
  122.    else if(obj.boss != null && obj.boss.hitTest(_X,_Y,0))
  123.    {
  124.       _parent._parent.updateRankSnot(getFlightBonus(10) + 5,_X,_Y);
  125.       _parent._parent.addFlyingTroop("deb_ene_boss",_X,_Y,obj.archer._xscale,obj.archer._yscale);
  126.       obj.boss.unloadMovie();
  127.    }
  128.    else if(obj.foot1 != null && obj.foot1.hitTest(_X,_Y,0))
  129.    {
  130.       _parent._parent.addFlyingTroop("deb_ene_foot",_X,_Y,obj.archer._xscale,obj.archer._yscale);
  131.       obj.foot1.unloadMovie();
  132.    }
  133.    else if(obj.foot2 != null && obj.foot2.hitTest(_X,_Y,0))
  134.    {
  135.       _parent._parent.addFlyingTroop("deb_ene_foot",_X,_Y,obj.archer._xscale,obj.archer._yscale);
  136.       obj.foot2.unloadMovie();
  137.    }
  138.    else if(obj.flagger != null && obj.flagger.hitTest(_X,_Y,0))
  139.    {
  140.       _parent._parent.addFlyingTroop("deb_ene_cat",_X,_Y,obj.archer._xscale,obj.archer._yscale);
  141.       obj.flagger.unloadMovie();
  142.    }
  143. }
  144. function getFlightBonus(amt)
  145. {
  146.    var _loc1_ = m_flightTime / 10;
  147.    if(_loc1_ > 4)
  148.    {
  149.       _loc1_ = 4;
  150.    }
  151.    return Math.ceil(_loc1_ * amt);
  152. }
  153. xmax = _parent._parent.g_width + 10;
  154. ymax = _parent._parent.g_ground + 10;
  155. flameDebrisTimer = 0;
  156. _rotation = random(360);
  157. xmax = _parent._parent.g_width + 50;
  158. xmin = -50;
  159. ymin = -50;
  160. ymax = _parent._parent.g_ground + 50;
  161. boundaryTimer = 50;
  162. var m_flightTime = 0;
  163.