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

  1. function initGuns()
  2. {
  3.    var _loc2_ = 0;
  4.    while(_loc2_ < guns.length)
  5.    {
  6.       var _loc3_ = _parent._parent.g_level * 5;
  7.       if(_loc3_ > 500)
  8.       {
  9.          _loc3_ = 500;
  10.       }
  11.       var _loc4_ = random(500) + 600 - _loc3_;
  12.       m_maxLoadTime = _loc4_;
  13.       guns[_loc2_].timerTarget = _loc4_;
  14.       guns[_loc2_].dead = false;
  15.       _loc2_ = _loc2_ + 1;
  16.    }
  17. }
  18. function step()
  19. {
  20.    if(hp_bar._alpha > 0)
  21.    {
  22.       hp_bar._alpha -= 5;
  23.    }
  24.    if(isDead())
  25.    {
  26.       vy += 0.08;
  27.       _rotation = _rotation - 0.2;
  28.       if(blade_spin_rate > 5)
  29.       {
  30.          blade_spin_rate -= 0.4;
  31.       }
  32.       if(smokeTimer-- < 0)
  33.       {
  34.          smokeTimer = 1;
  35.          _parent._parent.addSmoke(_X,_Y);
  36.       }
  37.    }
  38.    else
  39.    {
  40.       stepGuns();
  41.    }
  42.    updatePosition();
  43.    if(_X < goal_xspot && !isDead())
  44.    {
  45.       if(vx < 0)
  46.       {
  47.          vx += 0.005;
  48.       }
  49.       else
  50.       {
  51.          vx = 0;
  52.       }
  53.    }
  54.    if(_Y > _parent._parent.g_ground + 100)
  55.    {
  56.       destroy();
  57.    }
  58. }
  59. function updatePosition()
  60. {
  61.    _X = _X + vx;
  62.    _Y = _Y + vy;
  63. }
  64. function takeDamage(amt, xp, yp)
  65. {
  66.    hp -= amt;
  67.    if(hp <= 0)
  68.    {
  69.       hp = 0;
  70.       if(!dead && random(6) == 0)
  71.       {
  72.          var _loc3_ = _parent._parent.addObj("ammo_box_heal",_parent._parent.ammo_layer,_parent._parent.getNextAmmoLevel());
  73.          _loc3_._x = _X;
  74.          _loc3_._y = _Y;
  75.       }
  76.       if(!dead)
  77.       {
  78.          _parent._parent.addScore(1000,_X,_Y);
  79.       }
  80.       dead = true;
  81.    }
  82.    if(_parent._parent.g_dmg_text_on)
  83.    {
  84.       var _loc2_ = _parent._parent.addObj("dmg_text",_parent._parent.score_layer,_parent._parent.getNextScoreLevel());
  85.       _loc2_._x = xp;
  86.       _loc2_._y = yp;
  87.       _loc2_.val = amt;
  88.    }
  89.    updateHPBar();
  90. }
  91. function updateHPBar()
  92. {
  93.    hp_bar.bar._width = hp / max_hp * 100;
  94.    hp_bar._alpha = 100;
  95. }
  96. function isDead()
  97. {
  98.    return hp == 0;
  99. }
  100. function setHP(num)
  101. {
  102.    hp = num;
  103. }
  104. function destroy()
  105. {
  106.    _parent._parent.removeEnemy(this);
  107. }
  108. function stepGuns()
  109. {
  110.    if(m_rotRate < m_max_rotRate)
  111.    {
  112.       m_rotRate += 0.01;
  113.    }
  114.    var _loc3_ = 0;
  115.    while(_loc3_ < guns.length)
  116.    {
  117.       gun = guns[_loc3_];
  118.       if(!gun.dead && gun.timerTarget-- < 200)
  119.       {
  120.          if(gun.timerTarget < 0)
  121.          {
  122.             var _loc4_ = _parent._parent.g_level * 5;
  123.             if(_loc4_ > 500)
  124.             {
  125.                _loc4_ = 500;
  126.             }
  127.             var _loc2_ = random(500) + 600 - _loc4_;
  128.             m_maxLoadTime = _loc2_;
  129.             if(m_bossDead)
  130.             {
  131.                _loc2_ *= 2;
  132.             }
  133.             gun.timerTarget = _loc2_;
  134.             shootAtDragon(gun);
  135.             gun.bod.barrel._x = -10;
  136.          }
  137.          else
  138.          {
  139.             aimAtDragon(gun);
  140.          }
  141.       }
  142.       if(gun.bod.barrel._x < 15.3)
  143.       {
  144.          gun.bod.barrel._x += 0.5;
  145.       }
  146.       _loc3_ = _loc3_ + 1;
  147.    }
  148. }
  149. function shootAtDragon(gun)
  150. {
  151.    var _loc7_ = undefined;
  152.    var _loc15_ = undefined;
  153.    var _loc14_ = undefined;
  154.    var _loc9_ = undefined;
  155.    var _loc8_ = undefined;
  156.    var _loc10_ = 2;
  157.    var _loc11_ = 10;
  158.    var _loc5_ = "";
  159.    var _loc2_ = undefined;
  160.    var _loc4_ = undefined;
  161.    _loc7_ = _parent._parent.getNextProjectileLevel();
  162.    _loc5_ = gun.ammo;
  163.    _loc9_ = Math.cos(gun._rotation * 3.141592653589793 / 180);
  164.    _loc8_ = Math.sin(gun._rotation * 3.141592653589793 / 180);
  165.    _loc15_ = _loc9_ * _loc10_;
  166.    _loc14_ = _loc8_ * _loc10_;
  167.    _loc2_ = _parent._parent.addObj(_loc5_,_parent._parent.bullet_layer,_loc7_);
  168.    if(_loc5_ == "proj_enemy_steel")
  169.    {
  170.       _parent._parent.addEnemy(_loc2_);
  171.    }
  172.    var _loc12_ = _X + gun._x + _loc9_ * _loc11_;
  173.    var _loc13_ = _Y + gun._y + _loc8_ * _loc11_;
  174.    _loc2_.vx = _loc15_;
  175.    _loc2_.vy = _loc14_;
  176.    _loc2_._x = _loc12_;
  177.    _loc2_._y = _loc13_;
  178.    var _loc6_ = 100 + _parent._parent.g_level;
  179.    if(_loc6_ > 200)
  180.    {
  181.       _loc6_ = 200;
  182.    }
  183.    _loc2_._xscale = _loc2_._yscale = _loc6_;
  184.    _parent._parent.playSound("bomb_hit.wav");
  185.    _loc7_ = _parent._parent.getNextDebrisLevel();
  186.    _loc4_ = _parent._parent.addObj("gun_flash",_parent._parent.debris_layer,_loc7_);
  187.    _loc4_._x = _loc12_;
  188.    _loc4_._y = _loc13_;
  189.    _loc4_._rotation = gun._rotation;
  190. }
  191. function aimAtDragon(gun)
  192. {
  193.    var _loc2_ = _X + gun._x - _parent._parent.dragon_head._x;
  194.    var _loc5_ = _Y + gun._y - _parent._parent.dragon_head._y;
  195.    var _loc7_ = gun._rotation;
  196.    var _loc3_ = 0;
  197.    var _loc4_ = Math.atan(_loc5_ / _loc2_);
  198.    if(_loc2_ > 0)
  199.    {
  200.       _loc3_ = _loc4_ * 180 / 3.141592653589793 + 180;
  201.       if(_loc2_ > 0 && _loc5_ > 0)
  202.       {
  203.          _loc3_ = _loc4_ * 180 / 3.141592653589793 - 180;
  204.       }
  205.    }
  206.    else
  207.    {
  208.       _loc3_ = _loc4_ * 180 / 3.141592653589793;
  209.    }
  210.    if(_loc2_ < 0.00001 && _loc2_ > -0.00001)
  211.    {
  212.       _loc3_ += 180;
  213.    }
  214.    gun._rotation = _parent._parent.smartRotation(_loc7_,_loc3_,m_rotRate);
  215. }
  216. function testHitTroops(obj)
  217. {
  218.    if(archer != null && archer.hitTest(obj._x,obj._y,0))
  219.    {
  220.       m_archerDead = true;
  221.       archer.unloadMovie();
  222.       _parent._parent.addFlyingTroop("deb_ene_archer",obj._x,obj._y,archer._xscale,archer._yscale);
  223.       _parent._parent.addScore(100,obj._x,obj._y);
  224.    }
  225.    else if(boss != null && boss.hitTest(obj._x,obj._y,0))
  226.    {
  227.       m_bossDead = true;
  228.       _parent._parent.addFlyingTroop("deb_ene_boss",_X,_Y,archer._xscale,archer._yscale);
  229.       boss.unloadMovie();
  230.       _parent._parent.addScore(400,obj._x,obj._y);
  231.    }
  232.    else if(foot1 != null && foot1.hitTest(obj._x,obj._y,0))
  233.    {
  234.       m_foot1Dead = true;
  235.       _parent._parent.addFlyingTroop("deb_ene_foot",obj._x,obj._y,archer._xscale,archer._yscale);
  236.       foot1.unloadMovie();
  237.       _parent._parent.addScore(200,obj._x,obj._y);
  238.    }
  239.    else if(foot2 != null && foot2.hitTest(obj._x,obj._y,0))
  240.    {
  241.       m_foot2Dead = true;
  242.       _parent._parent.addFlyingTroop("deb_ene_foot",obj._x,obj._y,archer._xscale,archer._yscale);
  243.       foot2.unloadMovie();
  244.       _parent._parent.addScore(200,obj._x,obj._y);
  245.    }
  246.    else if(flagger != null && flagger.hitTest(obj._x,obj._y,0))
  247.    {
  248.       m_flaggerDead = true;
  249.       _parent._parent.addFlyingTroop("deb_ene_cat",obj._x,obj._y,archer._xscale,archer._yscale);
  250.       flagger.unloadMovie();
  251.       _parent._parent.addScore(100,obj._x,obj._y);
  252.    }
  253.    updateGunState();
  254. }
  255. function updateGunState()
  256. {
  257.    gun1.dead = m_flaggerDead && m_foot2Dead;
  258.    gun2.dead = m_bossDead;
  259.    gun3.dead = m_archerDead && m_foot1Dead;
  260.    if(m_archerDead && m_flaggerDead && m_foot2Dead && m_foot1Dead && m_bossDead)
  261.    {
  262.       hp = 0;
  263.    }
  264. }
  265. function updateStickies(sticky)
  266. {
  267.    if(++m_stickyNdx >= m_maxStickies)
  268.    {
  269.       m_stickyNdx = 0;
  270.    }
  271.    var _loc1_ = m_stickies[m_stickyNdx];
  272.    _loc1_.unloadMovie();
  273.    m_stickies[m_stickyNdx] = sticky;
  274. }
  275. function slowShooting(amt)
  276. {
  277.    var _loc2_ = 0;
  278.    while(_loc2_ < guns.length)
  279.    {
  280.       var _loc1_ = guns[_loc2_].timerTarget;
  281.       _loc1_.timerTarget += amt;
  282.       if(_loc1_.timerTarget > m_maxLoadTime)
  283.       {
  284.          _loc1_.timerTarget = m_maxLoadTime;
  285.       }
  286.       _loc2_ = _loc2_ + 1;
  287.    }
  288.    if((m_rotRate -= 0.05) < 0.5)
  289.    {
  290.       m_rotRate = 0.5;
  291.    }
  292. }
  293. vx = -0.5;
  294. vy = 0;
  295. max_hp = Math.floor(100 * (1 + _parent._parent.g_level / 50));
  296. hp = max_hp;
  297. smokeTimer = 0;
  298. goal_xspot = 100 + random(_parent._parent.g_width - 200);
  299. blade_spin_rate = 23;
  300. etype = "air_ship";
  301. m_archerDead = false;
  302. m_foot1Dead = false;
  303. m_foot2Dead = false;
  304. m_bossDead = false;
  305. m_flaggerDead = false;
  306. dead = false;
  307. var guns = new Array(gun1,gun2,gun3);
  308. initGuns();
  309. var m_maxStickies = 3;
  310. var m_stickies = new Array(m_maxStickies);
  311. var m_stickyNdx = 0;
  312. var m_maxLoadTime;
  313. var m_max_rotRate = 1 + _parent._parent.g_level / 50;
  314. var m_rotRate = m_max_rotRate;
  315.