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