home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / dragon.swf / scripts / DefineSprite_86_meteor_ball / frame_1 / DoAction.as
Encoding:
Text File  |  2008-09-12  |  2.8 KB  |  110 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("smoke_2",_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 _loc4_ = undefined;
  48.    var _loc5_ = false;
  49.    var _loc3_ = 0;
  50.    while(_loc3_ < _parent._parent.enemies.length && !_loc5_)
  51.    {
  52.       _loc4_ = _parent._parent.enemies[_loc3_];
  53.       if(_loc4_.hitBox.hitTest(_X,_Y,0))
  54.       {
  55.          _loc5_ = true;
  56.          break;
  57.       }
  58.       _loc3_ = _loc3_ + 1;
  59.    }
  60.    if(_loc5_)
  61.    {
  62.       _parent._parent.playSound("bomb.wav");
  63.       if(_loc4_.etype == "air_ship")
  64.       {
  65.          _parent._parent.woodExplosion(_X,_Y,Math.ceil(rank / 1.5));
  66.          _loc4_.testHitTroops(this);
  67.       }
  68.       if(_loc4_.etype != "steel")
  69.       {
  70.          _loc4_.takeDamage(rank * 8,_X,_Y);
  71.          var _loc6_ = _parent._parent.addObj("explosion_pow",_parent._parent.debris_layer,_parent._parent.getNextDebrisLevel());
  72.          _loc6_._x = _X;
  73.          _loc6_._y = _Y;
  74.          _loc6_._rotation = random(360);
  75.          _loc6_._xscale = _loc6_._yscale = rank * 30;
  76.          _parent._parent.updateRankMeteor(getFlightBonus(10) + 5);
  77.       }
  78.       else
  79.       {
  80.          _loc4_.takeDamage(rank * 4,_X,_Y);
  81.          _loc6_ = _parent._parent.addObj("explosion_pow",_parent._parent.debris_layer,_parent._parent.getNextDebrisLevel());
  82.          _loc6_._x = _X;
  83.          _loc6_._y = _Y;
  84.          _loc6_._rotation = random(360);
  85.          _loc6_._xscale = _loc6_._yscale = rank * 15;
  86.          _parent._parent.updateRankMeteor(getFlightBonus(5) + 2);
  87.       }
  88.       this.unloadMovie();
  89.    }
  90. }
  91. function getFlightBonus(amt)
  92. {
  93.    var _loc1_ = m_flightTime / 10;
  94.    if(_loc1_ > 4)
  95.    {
  96.       _loc1_ = 4;
  97.    }
  98.    return Math.ceil(_loc1_ * amt);
  99. }
  100. xmax = _parent._parent.g_width + 10;
  101. ymax = _parent._parent.g_ground + 10;
  102. flameDebrisTimer = 0;
  103. _rotation = random(360);
  104. xmax = _parent._parent.g_width + 50;
  105. xmin = -50;
  106. ymin = -50;
  107. ymax = _parent._parent.g_ground + 50;
  108. boundaryTimer = 50;
  109. var m_flightTime = 0;
  110.