home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Estrategia / coffeetycoon_Demo.swf / scripts / frame_2 / DoAction_5.as < prev    next >
Encoding:
Text File  |  2006-06-13  |  10.8 KB  |  374 lines

  1. function colony_hp()
  2. {
  3.    return _root.antstats[gc_pop];
  4. }
  5. function colony_offense()
  6. {
  7.    var _loc2_ = _root;
  8.    var _loc1_ = 0;
  9.    var rounding = 0.5;
  10.    var divisor = 10;
  11.    var _loc3_ = 0;
  12.    _loc1_ += _loc2_.ant_numscouts * _loc2_.war_amod[_loc3_++] * _loc2_.antstats[gc_power];
  13.    _loc1_ += _loc2_.ant_numworkers * _loc2_.war_amod[_loc3_++] * _loc2_.antstats[gc_power];
  14.    _loc1_ += _loc2_.ant_numnurses * _loc2_.war_amod[_loc3_++] * _loc2_.antstats[gc_power];
  15.    _loc1_ += _loc2_.ant_numsoldiers * _loc2_.war_amod[_loc3_++] * _loc2_.antstats[gc_power];
  16.    _loc1_ = parseInt(_loc1_ / divisor + rounding);
  17.    return _loc1_;
  18. }
  19. function colony_defense()
  20. {
  21.    var _loc2_ = _root;
  22.    var _loc1_ = 0;
  23.    var rounding = 0.5;
  24.    var divisor = 10;
  25.    var _loc3_ = undefined;
  26.    var ii = 0;
  27.    _loc3_ = _loc2_.antstats[gc_power] * _loc2_.antstats[gc_defense] * (_loc2_.antstats[gc_nest] / _loc2_.antstats[gc_pop]);
  28.    _loc1_ += _loc2_.ant_numscouts * _loc2_.war_dmod[ii++] * _loc3_;
  29.    _loc1_ += _loc2_.ant_numworkers * _loc2_.war_dmod[ii++] * _loc3_;
  30.    _loc1_ += _loc2_.ant_numnurses * _loc2_.war_dmod[ii++] * _loc3_;
  31.    _loc1_ += _loc2_.ant_numsoldiers * _loc2_.war_dmod[ii++] * _loc3_;
  32.    _loc1_ = parseInt(_loc1_ / divisor + rounding);
  33.    return _loc1_;
  34. }
  35. function colony_warmsg()
  36. {
  37.    var _loc1_ = _root;
  38.    var _loc2_ = _loc1_.colonyname;
  39.    var _loc3_ = undefined;
  40.    _loc3_ = _loc2_ + ":\n" + "          " + _loc1_.colony_hp() + _loc1_.crlf + "          " + _loc1_.colony_offense() + _loc1_.crlf + "          " + _loc1_.colony_defense() + _loc1_.crlf;
  41.    return _loc3_;
  42. }
  43. function enemy_hp()
  44. {
  45.    return _root.enemystats[gc_ehp];
  46. }
  47. function enemy_offense()
  48. {
  49.    return _root.enemystats[gc_eattack];
  50. }
  51. function enemy_defense()
  52. {
  53.    return _root.enemystats[gc_edefense];
  54. }
  55. function enemy_minhp()
  56. {
  57. }
  58. function enemy_gethp(hh, rr)
  59. {
  60.    var _loc3_ = hh;
  61.    var _loc1_ = _loc3_;
  62.    var _loc2_ = rr;
  63.    var tmp;
  64.    if(_loc3_ < 0)
  65.    {
  66.       _loc2_ = Math.abs(_loc3_);
  67.       _loc1_ = _root.colony_hp();
  68.    }
  69.    return _root.randomRange(_loc1_,_loc2_);
  70. }
  71. function enemy_getattack(aa, rr)
  72. {
  73.    var _loc2_ = aa;
  74.    var _loc1_ = _loc2_;
  75.    var _loc3_ = rr;
  76.    var tmp;
  77.    if(_loc2_ < 0)
  78.    {
  79.       _loc3_ = Math.abs(_loc2_);
  80.       _loc1_ = _root.colony_offense();
  81.    }
  82.    else if(_loc2_ < 1)
  83.    {
  84.       _loc1_ = _root.colony_hp() * _loc2_;
  85.    }
  86.    return _root.randomRange(_loc1_,_loc3_);
  87. }
  88. function enemy_getdefense(dd)
  89. {
  90.    var _loc2_ = dd;
  91.    var _loc3_ = _root;
  92.    var _loc1_ = parseInt(_loc2_ * _loc3_.colony_offense() + 0.9);
  93.    var rr;
  94.    if(_loc2_ < 0)
  95.    {
  96.       rr = Math.abs(_loc2_);
  97.       _loc1_ = _loc3_.randomRange(_loc3_.colony_offense(),rr);
  98.    }
  99.    return _loc1_;
  100. }
  101. function enemy_enemystats()
  102. {
  103.    var _loc1_ = _root;
  104.    var ee = _loc1_.antenemy;
  105.    var lessthan = _loc1_.gc_edefbonus - _loc1_.gc_evictory;
  106.    var offset = 7;
  107.    var plusminus;
  108.    var _loc3_ = undefined;
  109.    var _loc2_ = undefined;
  110.    _loc1_.battle_clip.gotoAndPlay("event_" + _loc1_.eventimage[_loc1_.enemyclip]);
  111.    _loc1_.enemiesencountered[ee] = _loc1_.eventimage[_loc1_.enemyclip];
  112.    _loc1_.enemystats[gc_ename] = _loc1_.enemylist[ee][gc_elname];
  113.    _loc1_.enemystats[gc_ehp] = parseInt(_loc1_.enemy_gethp(_loc1_.enemylist[ee][gc_elhp],_loc1_.enemylist[ee][gc_elhprange]) + 0.5);
  114.    _loc1_.enemystats[gc_eminhp] = parseInt(_loc1_.enemystats[gc_ehp] * _loc1_.enemylist[ee][gc_elminhp]);
  115.    trace("min enemy=" + _loc1_.enemystats[gc_eminhp]);
  116.    _loc1_.enemystats[gc_eattack] = parseInt(_loc1_.enemy_getattack(_loc1_.enemylist[ee][_loc1_.gc_elattack],_loc1_.enemylist[ee][_loc1_.gc_elattackrange]) + 0.5);
  117.    _loc1_.enemystats[gc_edefense] = parseInt(_loc1_.enemy_getdefense(_loc1_.enemylist[ee][_loc1_.gc_eldefense]) + 0.5);
  118.    _loc3_ = 0;
  119.    while(_loc3_ < lessthan)
  120.    {
  121.       _loc2_ = _loc1_.enemylist[ee][_loc3_ + offset];
  122.       if(!isNaN(_loc2_) && _loc2_ < 1)
  123.       {
  124.          _loc2_ = parseInt(_loc1_.antstats[_loc3_ + 1] * _loc2_ + 0.5);
  125.       }
  126.       _loc1_.enemystats[_loc3_ + _loc1_.gc_evictory] = _loc2_;
  127.       _loc3_ = _loc3_ + 1;
  128.    }
  129. }
  130. function enemy_warmsg()
  131. {
  132.    var _loc1_ = _root;
  133.    var _loc2_ = _loc1_.enemystats[gc_ename];
  134.    var _loc3_ = undefined;
  135.    _loc3_ = _loc2_ + ": \n" + "          " + _loc1_.enemy_hp() + _loc1_.crlf + "          " + _loc1_.enemy_offense() + _loc1_.crlf + "          " + _loc1_.enemy_defense() + _loc1_.crlf;
  136.    return _loc3_;
  137. }
  138. function war_getenemydamage()
  139. {
  140.    var _loc2_ = _root;
  141.    var _loc1_ = _loc2_.colony_offense() <= 1 ? 1 : _loc2_.randomNum(_loc2_.colony_offense());
  142.    trace("damage=" + _loc1_ + " edefense=" + _loc2_.enemystats[gc_edefense] + "");
  143.    trace("adjusted enemy damage = " + _loc1_);
  144.    _loc1_ = _loc1_ >= 0 ? _loc1_ : 0;
  145.    return _loc1_;
  146. }
  147. function war_getantdamage()
  148. {
  149.    var _loc2_ = _root;
  150.    var _loc1_ = _loc2_.enemystats[gc_eattack] <= 1 ? 0 : _loc2_.randomNum(_loc2_.enemystats[gc_eattack]);
  151.    _loc1_ -= _loc2_.colony_defense();
  152.    _loc1_ = _loc1_ >= 0 ? _loc1_ : 0;
  153.    return _loc1_;
  154. }
  155. function check_victory()
  156. {
  157.    var _loc1_ = _root;
  158.    var _loc2_ = undefined;
  159.    var tmp_add;
  160.    var _loc3_ = undefined;
  161.    var stopplay = false;
  162.    trace("checking for victory");
  163.    if(_loc1_.antstats[gc_pop] < 1)
  164.    {
  165.       _loc1_.kill_playsounds();
  166.       gotoAndPlay(449);
  167.       stopplay = true;
  168.    }
  169.    else if(_loc1_.enemystats[gc_ehp] <= _loc1_.enemystats[gc_eminhp])
  170.    {
  171.       trace("Victory!");
  172.       _loc1_.clear_victory();
  173.       _loc1_.feedback_victory(_loc1_.enemystats[gc_evictory] + _loc1_.crlf);
  174.       _loc2_ = 1;
  175.       while(_loc2_ < _loc1_.antstatname.length)
  176.       {
  177.          tmp_add = parseInt(_loc1_.enemystats[gc_evictory + _loc2_] / 2 + 0.7);
  178.          _loc3_ = parseInt(_loc1_.enemystats[gc_evictory + _loc2_] + 0.7);
  179.          tmp_add = _loc3_;
  180.          if(_loc3_ > 0)
  181.          {
  182.             _loc1_.feedback_victory("Add ");
  183.             _loc1_.feedback_victory(_loc3_);
  184.             _loc1_.feedback_victory(" to " + _loc1_.antstatname[_loc2_] + _loc1_.crlf);
  185.             _loc1_.antstats[_loc2_] += tmp_add;
  186.          }
  187.          _loc2_ = _loc2_ + 1;
  188.       }
  189.       if(_loc1_.automelee)
  190.       {
  191.          trace("automelee victory");
  192.          stop();
  193.       }
  194.       _loc1_.kill_playsounds();
  195.       gotoAndPlay(2);
  196.       stopplay = true;
  197.    }
  198.    return stopplay;
  199. }
  200. function war_attack()
  201. {
  202.    var _loc1_ = _root;
  203.    var ii;
  204.    var tmp;
  205.    var _loc2_ = undefined;
  206.    var _loc3_ = undefined;
  207.    _loc1_.check_victory();
  208.    if(_loc1_.enemystats[gc_ehp] > _loc1_.enemystats[gc_eminhp])
  209.    {
  210.       _loc2_ = _loc1_.war_getenemydamage();
  211.       _loc3_ = _loc1_.war_getantdamage();
  212.       _loc1_.enemystats[gc_ehp] -= _loc2_;
  213.       _loc1_.antstats[gc_pop] -= _loc3_;
  214.       if(_loc2_ > 0)
  215.       {
  216.          _loc1_.give_warfeedback("" + _loc1_.inflicted_str + "" + _loc2_ + " " + _loc1_.damage_str + _loc1_.crlf);
  217.          _loc1_.enemy_hitmiss.gotoAndPlay("hit");
  218.       }
  219.       else
  220.       {
  221.          _loc1_.give_warfeedback(_loc1_.enemystats[gc_ename] + " " + _loc1_.dodged_str + _loc1_.crlf);
  222.          _loc1_.enemy_hitmiss.gotoAndPlay("miss");
  223.       }
  224.       if(_loc3_ > 0)
  225.       {
  226.          _loc1_.give_warfeedback(_loc1_.enemystats[gc_ename] + " " + _loc1_.caused_str + " " + _loc3_ + " " + _loc1_.damage_str + " " + _loc1_.crlf);
  227.          _loc1_.colony_hitmiss.gotoAndPlay("hit");
  228.       }
  229.       else
  230.       {
  231.          _loc1_.colony_hitmiss.gotoAndPlay("miss");
  232.       }
  233.       if(_loc1_.automelee)
  234.       {
  235.          _loc1_.gotoAndPlay("meleeframe");
  236.       }
  237.       else
  238.       {
  239.          _loc1_.update_warfeedback();
  240.       }
  241.    }
  242.    _loc1_.check_victory();
  243. }
  244. function war_retreat()
  245. {
  246.    var _loc1_ = _root;
  247.    var _loc2_ = parseInt(_loc1_.antstats[gc_pop] * _loc1_.retreatpenalty);
  248.    _loc1_.antstats[gc_pop] -= _loc2_;
  249.    _loc1_.clear_retreat();
  250.    _loc1_.feedback_retreat(_loc1_.retreat1_str + " " + _loc1_.enemystats[gc_ename] + _loc1_.crlf);
  251.    _loc1_.feedback_retreat(_loc1_.retreat2_str + " " + _loc2_ + " " + _loc1_.retreat3_str + _loc1_.crlf);
  252.    _loc1_.kill_playsounds();
  253.    gotoAndPlay(2);
  254. }
  255. function war_advisor()
  256. {
  257.    var _loc1_ = _root;
  258.    var ahp = _loc1_.colony_hp();
  259.    var ehp = _loc1_.enemystats[gc_ehp];
  260.    var aattack = _loc1_.colony_offense();
  261.    var eattack = _loc1_.enemystats[gc_eattack];
  262.    var adefend = _loc1_.colony_defense();
  263.    var edefend = _loc1_.enemystats[gc_edefense];
  264.    var ename = _loc1_.enemystats[gc_ename];
  265.    var adratio = ahp / (eattack - adefend);
  266.    var edratio = ehp / (aattack - edefend);
  267.    var _loc2_ = "";
  268.    var _loc3_ = 0;
  269.    var retreat = 0;
  270.    if(ahp >= ehp)
  271.    {
  272.       _loc3_ = _loc3_ + 1;
  273.    }
  274.    else
  275.    {
  276.       retreat++;
  277.    }
  278.    if(aattack > edefend)
  279.    {
  280.       if(edratio < 2)
  281.       {
  282.          _loc2_ += _loc1_.advisor1_str + " " + ename + _loc1_.crlf;
  283.          _loc3_ += 3;
  284.       }
  285.       else if(edratio < 5)
  286.       {
  287.          _loc2_ += _loc1_.advisor2_str + " " + ename + _loc1_.crlf;
  288.          _loc3_ += 2;
  289.       }
  290.       else
  291.       {
  292.          _loc2_ += _loc1_.advisor3_str + _loc1_.crlf;
  293.          _loc3_ += 0;
  294.       }
  295.    }
  296.    else
  297.    {
  298.       _loc2_ += _loc1_.advisor4_str + _loc1_.crlf;
  299.       retreat += 2;
  300.    }
  301.    if(eattack > adefend)
  302.    {
  303.       if(adratio < 2)
  304.       {
  305.          _loc2_ += ename + " " + _loc1_.advisor5_str + _loc1_.crlf;
  306.          retreat += 3;
  307.       }
  308.       else if(adratio < 5)
  309.       {
  310.          _loc2_ += ename + " " + _loc1_.advisor6_str + _loc1_.crlf;
  311.          retreat += 2;
  312.       }
  313.       else
  314.       {
  315.          _loc2_ += ename + " " + _loc1_.advisor7_str + _loc1_.crlf;
  316.          retreat++;
  317.       }
  318.    }
  319.    else
  320.    {
  321.       _loc2_ += ename + " " + _loc1_.advisor8_str + _loc1_.crlf;
  322.       _loc3_ = _loc3_ + 1;
  323.    }
  324.    if(_loc3_ > retreat)
  325.    {
  326.       _loc2_ += advisorattack_str + _loc1_.crlf;
  327.    }
  328.    else
  329.    {
  330.       _loc2_ += advisorretreat_str + _loc1_.crlf;
  331.    }
  332.    _loc1_.give_warfeedback(_loc2_);
  333.    if(_loc1_.autobattle || _loc1_.automelee)
  334.    {
  335.       _loc1_.automelee = true;
  336.       if(_loc3_ > retreat)
  337.       {
  338.          _loc1_.war_attack();
  339.       }
  340.       else
  341.       {
  342.          _loc1_.war_retreat();
  343.       }
  344.    }
  345. }
  346. function update_warfeedback()
  347. {
  348.    var _loc1_ = _root;
  349.    _loc1_.update_playevents();
  350.    _loc1_.feedback_war_colony(_loc1_.colony_warmsg());
  351.    _loc1_.feedback_war_enemy(_loc1_.enemy_warmsg());
  352.    _loc1_.war_advisor();
  353. }
  354. function start_warfeedback()
  355. {
  356.    var _loc1_ = _root;
  357.    _loc1_.ant_calcnums();
  358.    _loc1_.clear_warfeedback();
  359.    _loc1_.enemy_enemystats();
  360.    _loc1_.update_playevents();
  361.    _loc1_.feedback_war_colony(_loc1_.colony_warmsg());
  362.    _loc1_.feedback_war_enemy(_loc1_.enemy_warmsg());
  363. }
  364. function init_war()
  365. {
  366.    var _loc1_ = _root;
  367.    _loc1_.clear_warfeedback();
  368.    _loc1_.enemy_enemystats();
  369.    _loc1_.update_warfeedback();
  370.    _loc1_.show_playlocation();
  371.    _loc1_.anttypeclip.gotoAndPlay("type_" + _loc1_.anttype);
  372.    _loc1_.currentscene = "war";
  373. }
  374.