Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Module code goes here. Use 'module.exports' to export things:
- * module.exports.thing = 'a thing';
- *
- * You can import it from another modules like this:
- * var mod = require('creep.attacker');
- * mod.thing == 'a thing'; // true
- */
- module.exports =
- {
- get_idle_postion : function (creep,inpos)
- {
- var positions =[]
- var amount =_.filter(Game.creeps, (creep2) => creep2.memory.roomPID == creep.memory.roomPID && creep2.memory.group == creep.memory.group)
- var scale = Math.ceil(Math.sqrt(amount.length))
- //konsole.log("root = "+scale)
- var cycle = 0
- for (var y = inpos.y-scale; y < inpos.y+scale; y=y+2)
- {
- for (var x= inpos.x-scale; x< inpos.x+scale; x=x+2)
- {
- //konsole.log(cycle+ " "+creep.memory.instance+" "+x+" "+y)
- if (cycle == creep.memory.instance)
- {
- var p = new RoomPosition(x+Math.floor(scale/2), y+Math.floor(scale/2), inpos.roomName);
- //konsole.log(p)
- return p
- }
- //positions.push(pp)
- cycle++
- }
- }
- if (targets.length > 0)
- {
- // make sure we always focus the closest to the group pos
- var target = group_postion.pos.findClosestByRange(targets)
- }
- },
- run :function (creep)
- {
- function firenearest(creep)
- {
- var spawn = creep.room.find(FIND_STRUCTURES, {filter: (structure) => {return (structure.structureType == STRUCTURE_SPAWN)}})
- //// try moving to spaw
- var targets = creep.pos.findInRange(FIND_HOSTILE_CREEPS, 100)
- var spawns = creep.room
- allie = ["Sanyu","StreetLegal-GCC","Davaned","person3000","zGeneral","0mni"]
- var targets= creep.room.find(FIND_HOSTILE_CREEPS)
- //console.log("in"+enemies)
- var enemies2 =[]
- for (e in targets)
- {
- isallie =0
- enemy_creep = targets[e]
- for (a in allie)
- {
- if (enemy_creep.owner.username ==allie [a]) isallie =1
- }
- if (isallie == 0) enemies2.push(enemy_creep)
- //
- }
- targets = enemies2
- if (targets.length > 0)
- {
- // make sure we always focus the closest to the group pos
- var target = creep.pos.findClosestByRange(targets)
- creep.rangedAttack(target)
- //creep.rangedAttack(spawn[0])
- }
- }
- var search_units = _.filter(Game.creeps, (creep2) => creep2.memory.roomPID == creep.memory.roomPID && creep2.memory.group == creep.memory.group);
- if (creep.memory.groupsize== undefined || creep.memory.groupsize != search_units.length)
- {
- creep.memory.groupsize = search_units.length
- for (sss in search_units)
- {
- delete search_units[sss].memory.instance
- }
- }
- group_postion = Game.flags[config[creep.memory.roomPID]["spawn"][creep.memory.group]["run_arg"]["flag"]]
- group_sensor = Game.flags[config[creep.memory.roomPID]["spawn"][creep.memory.group]["run_arg"]["flag_sensor"]]
- if (creep.memory.instance == undefined)
- {
- //creep.memory.instance= search_units.length
- var am = 0
- var search_units = _.filter(Game.creeps, (creep2) => creep2.memory.roomPID == creep.memory.roomPID && creep2.memory.group == creep.memory.group);
- for (var fo in search_units)
- {
- var search = _.filter(Game.creeps, (creep2) => creep2.memory.roomPID == creep.memory.roomPID && creep2.memory.group == creep.memory.group && creep2.memory.instance == am );
- if (search.length < 1)
- {
- creep.memory.instance = am
- break
- }
- am++
- }
- if (creep.memory.instance == undefined) creep.memory.instance = search_units.length
- //Math.sqrt(x)
- }
- // are we assigned to this room?
- if (creep.pos.roomName == group_postion.pos.roomName )
- {
- //konsole.log("we are here")
- // var spawn =
- //creep.moveTo(this.get_idle_postion(creep,group_postion.pos))
- if (creep.pos.roomName == group_sensor.pos.roomName )
- {
- var targets = group_sensor.pos.findInRange(FIND_HOSTILE_CREEPS, 10)
- } else {
- var targets = creep.pos.findInRange(FIND_HOSTILE_CREEPS, 10)
- if (creep.hits > (creep.hitsMax/2))
- creep.moveTo(group_sensor.pos)
- }
- allie = ["Sanyu","StreetLegal-GCC","Davaned","person3000"]
- var targets= creep.room.find(FIND_HOSTILE_CREEPS)
- //console.log("in"+enemies)
- var enemies2 =[]
- for (e in targets)
- {
- isallie =0
- enemy_creep = targets[e]
- for (a in allie)
- {
- if (enemy_creep.owner.username ==allie [a]) isallie =1
- }
- if (isallie == 0) enemies2.push(enemy_creep)
- //
- }
- targets = enemies2
- if (targets.length > 0)
- {
- // make sure we always focus the closest to the group pos
- var target = group_postion.pos.findClosestByRange(targets)
- // konsole.log("attacking :"+target.owner.username +creep.hits+" "+ (creep.hitsMax*0.8))
- // my_state
- if (creep.hits < (creep.hitsMax*0.7))
- {
- if (creep.pos.inRangeTo(target,4)) creep.moveTo(this.get_idle_postion(creep,group_postion.pos))
- firenearest(creep)
- creep.heal(creep)
- creep.say("LOW")
- } else {
- // attacking
- // konsole.log("attack")
- if (creep.pos.inRangeTo(target,2))
- {
- creep.say("TOCLOSE")
- firenearest(creep)
- creep.moveTo(group_postion.pos)
- creep.heal(creep)
- } else if (creep.pos.inRangeTo(target,3)){
- creep.say("dmg")
- // konsole.log("perfect range")
- firenearest(creep)
- creep.heal(creep)
- } else if (creep.hits > (creep.hitsMax*0.7)) {
- var search_units = _.filter(Game.creeps, (creep2) => creep2.memory.roomPID == creep.memory.roomPID && creep2.memory.group == creep.memory.group);
- var search_rdy = _.filter(Game.creeps, (creep2) => creep2.memory.roomPID == creep.memory.roomPID && creep2.memory.group == creep.memory.group && creep2.hits > (creep2.hitsMax*0.8));
- //konsole.log("attacker "+search_rdy.length +" "+ search_units.length)
- if (search_rdy.length > search_units.length*0.7)
- {
- creep.say("advance")
- creep.moveTo(target)
- firenearest(creep)
- creep.heal(creep)
- } else {
- // creep.say("assist")
- var heal_targets = creep.room.find(FIND_MY_CREEPS, {filter: (creeps) =>{return ( creeps.hits < creeps.hitsMax) }})
- //var repair = creep.pos.findInRange(heal_targets, 3)
- var repair = target .pos.findClosestByRange( heal_targets)
- if (repair != undefined && repair.length>0)
- {
- if (repair.name == creep.name)
- {
- creep.heal(creep)
- creep.say("HELP")
- } else {
- creep.say(heal_targets.length+repair.name)
- creep.rangedHeal(repair)
- }
- } else {
- creep.heal(creep)
- firenearest(creep)
- }
- }
- } else {
- creep.heal(creep)
- creep.say("??")
- }
- }
- } else {
- creep.say("idle")
- if (creep.hits < (creep.hitsMax/2)) creep.moveTo(this.get_idle_postion(creep,group_postion.pos))
- var target = creep.room.find(FIND_MY_CREEPS, {filter: (creeps) =>{return ( creeps.hits < creeps.hitsMax) }})
- //var repair = creep.pos.findInRange(target, 10)
- if (target.length>0)
- {
- var repair = creep.pos.findClosestByRange(target)
- if (creep.pos.findInRange(repair, 3)) creep.moveTo(repair)
- creep.rangedHeal(repair)
- } else {
- creep.heal()
- }
- }
- } else {
- creep.heal(creep)
- firenearest(creep)
- // im not in my room so move, but do fire back at enemy's
- var targets = creep.pos.findInRange(FIND_HOSTILE_CREEPS, 3)
- creep.moveTo(this.get_idle_postion(creep,group_postion.pos))
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement