Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- oilRes = "OilResource";
- resLab = "A0ResearchFacility";
- powGen = "A0PowerGenerator";
- factory = "A0LightFactory";
- derrick = "A0ResourceExtractor";
- cybFactory = "A0CyborgFactory";
- playerHQ = "A0CommandCentre";
- vtolPad = "A0VtolPad";
- vtolFactory = "A0VTolFactory1";
- sensorTower = "Sys-SensoTower02";
- powModule = "A0PowMod1";
- facModule = "A0FacMod1";
- resModule = "A0ResearchModule1";
- */
- var power, visibleUnits, units, enemies;
- console("WARNING: This bot AI is prolly buggy.");
- power = {
- low: 300,
- medium: 900,
- high: 1500,
- ultra: 6000
- };
- visibleUnits = {};
- units = {};
- enemies = {};
- /* Events */
- (function(){
- return Object.defineProperty(Array, "pickRandom", {
- value: function(){
- return this[Math.floor(Math.random() * this.length)];
- }
- });
- })();
- function eventGameInit(){}
- function eventStartLevel(){}
- function eventLaunchTransporter(){}
- function eventReinforcementsArrived(){}
- function eventMissionTimeout(){}
- function eventDroidIdle(droid){}
- function eventDroidBuilt(droid, structure){}
- function eventStructureBuilt(structure, droid){}
- function eventStructureReady(structure){}
- function eventAttacked(victim, attacker){
- var x, list_units, responce_units, total_cost_me, total_cost_enemy, _i, _ref, _len, _ref2, _res;
- for (_i = 0, _len = (_ref = [victim, attacker]).length; _i < _len; ++_i) {
- x = _ref[_i];
- _ref2 = util_callable(x), victim = _ref2[0], attacker = _ref2[1];
- }
- /* TODO: Move util_callable out of the main function somehow. */
- if (victim.player == me) {
- /*
- If the bot is under attack.
- TODO: figure out how to check for allies later.
- */
- list_units = __of(x, enumRange(victim.x, victim.y, 20, ALLIES));
- /* list all nearby units which might be able to help that we can see. */
- _res = [];
- for (_i = 0, _len = list_units.length; _i < _len; ++_i) {
- x = list_units[_i];
- if (x.player == me) {
- _res.push(x);
- }
- }
- responce_units = _res;
- /* find all of the bots units nearby. */
- total_cost_me = 0;
- (function(){
- var _i, _ref, _len, _results = [];
- for (_i = 0, _len = (_ref = responce_units).length; _i < _len; ++_i) {
- x = _ref[_i];
- _results.push(total_cost_me += x);
- }
- return _results;
- }());
- /* check the total cost to build all of the units. */
- total_cost_enemy = 0;
- return (function(){
- var _i, _ref, _len, _results = [];
- for (_i = 0, _len = (_ref = list_units).length; _i < _len; ++_i) {
- x = _ref[_i];
- if (x(isEnemy)) {
- _results.push(total_cost_enemy += x.cost);
- }
- }
- return _results;
- }());
- }
- }
- function eventResearched(research, structure){}
- function eventDestroyed(object){}
- function eventObjectSeen(viewer, seen){}
- function eventObjectTransfer(object, from){
- return chat(ALLIES, "Thnx.");
- }
- function eventChat(from, to, message){}
- function buildInitial(){}
- function util_callable(Object_object){
- var a;
- a = function(){
- return arguments[0].call(arguments[0], Object_object);
- };
- return a.__proto__ = Object_object;
- }
- function listFreeTrucks(){
- var x, _i, _ref, _len, _results = [];
- for (_i = 0, _len = (_ref = enumDroid(me, DROID_CONSTRUCT)).length; _i < _len; ++_i) {
- x = _ref[_i];
- if (x.order != DORDER_BUILD) {
- _results.push(x);
- }
- }
- return _results;
- }
- function attackEnemy(enemy){
- var v_group, droid, _i, _len, _results = [];
- enemy = util_callable(enemy);
- v_group = enumDroid(enemy, undefined, me);
- if (v_group) {
- for (_i = 0, _len = v_group.length; _i < _len; ++_i) {
- droid = v_group[_i];
- _results.push(orderDroidLoc(droid, order, x, y));
- }
- return _results;
- }
- }
- function destroy(object){
- var _key, _ref;
- return _ref = visibleObjects[_key = object.id], delete visibleObjects[_key], _ref;
- }
- function step(){
- if (playerPower(me > power.high)) {
- return listTrucks;
- }
- }
- function __of(x, arr){
- var i = 0, l = arr.length >>> 0;
- while (i < l) if (x === arr[i++]) return true;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement