Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  oilRes = "OilResource";
  3.  resLab = "A0ResearchFacility";
  4.  powGen = "A0PowerGenerator";
  5.  factory = "A0LightFactory";
  6.  derrick = "A0ResourceExtractor";
  7.  cybFactory = "A0CyborgFactory";
  8.  playerHQ = "A0CommandCentre";
  9.  vtolPad = "A0VtolPad";
  10.  vtolFactory = "A0VTolFactory1";
  11.  sensorTower = "Sys-SensoTower02";
  12.  powModule = "A0PowMod1";
  13.  facModule = "A0FacMod1";
  14.  resModule = "A0ResearchModule1";
  15. */
  16. var power, visibleUnits, units, enemies;
  17. console("WARNING: This bot AI is prolly buggy.");
  18. power = {
  19.   low: 300,
  20.   medium: 900,
  21.   high: 1500,
  22.   ultra: 6000
  23. };
  24. visibleUnits = {};
  25. units = {};
  26. enemies = {};
  27. /* Events */
  28. (function(){
  29.   return Object.defineProperty(Array, "pickRandom", {
  30.     value: function(){
  31.       return this[Math.floor(Math.random() * this.length)];
  32.     }
  33.   });
  34. })();
  35. function eventGameInit(){}
  36. function eventStartLevel(){}
  37. function eventLaunchTransporter(){}
  38. function eventReinforcementsArrived(){}
  39. function eventMissionTimeout(){}
  40. function eventDroidIdle(droid){}
  41. function eventDroidBuilt(droid, structure){}
  42. function eventStructureBuilt(structure, droid){}
  43. function eventStructureReady(structure){}
  44. function eventAttacked(victim, attacker){
  45.   var x, list_units, responce_units, total_cost_me, total_cost_enemy, _i, _ref, _len, _ref2, _res;
  46.   for (_i = 0, _len = (_ref = [victim, attacker]).length; _i < _len; ++_i) {
  47.     x = _ref[_i];
  48.     _ref2 = util_callable(x), victim = _ref2[0], attacker = _ref2[1];
  49.   }
  50.   /* TODO: Move util_callable out of the main function somehow. */
  51.   if (victim.player == me) {
  52.     /*
  53.     If the bot is under attack.
  54.     TODO: figure out how to check for allies later.
  55.     */
  56.     list_units = __of(x, enumRange(victim.x, victim.y, 20, ALLIES));
  57.     /* list all nearby units which might be able to help that we can see. */
  58.     _res = [];
  59.     for (_i = 0, _len = list_units.length; _i < _len; ++_i) {
  60.       x = list_units[_i];
  61.       if (x.player == me) {
  62.         _res.push(x);
  63.       }
  64.     }
  65.     responce_units = _res;
  66.     /* find all of the bots units nearby. */
  67.     total_cost_me = 0;
  68.     (function(){
  69.       var _i, _ref, _len, _results = [];
  70.       for (_i = 0, _len = (_ref = responce_units).length; _i < _len; ++_i) {
  71.         x = _ref[_i];
  72.         _results.push(total_cost_me += x);
  73.       }
  74.       return _results;
  75.     }());
  76.     /* check the total cost to build all of the units. */
  77.     total_cost_enemy = 0;
  78.     return (function(){
  79.       var _i, _ref, _len, _results = [];
  80.       for (_i = 0, _len = (_ref = list_units).length; _i < _len; ++_i) {
  81.         x = _ref[_i];
  82.         if (x(isEnemy)) {
  83.           _results.push(total_cost_enemy += x.cost);
  84.         }
  85.       }
  86.       return _results;
  87.     }());
  88.   }
  89. }
  90. function eventResearched(research, structure){}
  91. function eventDestroyed(object){}
  92. function eventObjectSeen(viewer, seen){}
  93. function eventObjectTransfer(object, from){
  94.   return chat(ALLIES, "Thnx.");
  95. }
  96. function eventChat(from, to, message){}
  97. function buildInitial(){}
  98. function util_callable(Object_object){
  99.   var a;
  100.   a = function(){
  101.     return arguments[0].call(arguments[0], Object_object);
  102.   };
  103.   return a.__proto__ = Object_object;
  104. }
  105. function listFreeTrucks(){
  106.   var x, _i, _ref, _len, _results = [];
  107.   for (_i = 0, _len = (_ref = enumDroid(me, DROID_CONSTRUCT)).length; _i < _len; ++_i) {
  108.     x = _ref[_i];
  109.     if (x.order != DORDER_BUILD) {
  110.       _results.push(x);
  111.     }
  112.   }
  113.   return _results;
  114. }
  115. function attackEnemy(enemy){
  116.   var v_group, droid, _i, _len, _results = [];
  117.   enemy = util_callable(enemy);
  118.   v_group = enumDroid(enemy, undefined, me);
  119.   if (v_group) {
  120.     for (_i = 0, _len = v_group.length; _i < _len; ++_i) {
  121.       droid = v_group[_i];
  122.       _results.push(orderDroidLoc(droid, order, x, y));
  123.     }
  124.     return _results;
  125.   }
  126. }
  127. function destroy(object){
  128.   var _key, _ref;
  129.   return _ref = visibleObjects[_key = object.id], delete visibleObjects[_key], _ref;
  130. }
  131. function step(){
  132.   if (playerPower(me > power.high)) {
  133.     return listTrucks;
  134.   }
  135. }
  136. function __of(x, arr){
  137.   var i = 0, l = arr.length >>> 0;
  138.   while (i < l) if (x === arr[i++]) return true;
  139.   return false;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement