Пример #1
0
	def get_targets(self):
		monsters = []
		
		for unit_id in self.monsters:
			monster = craw.get_unit(unit_id, 1)
			#missing town NPC check?
			if monster == None:
				print 'Failed to receive monster data for ID %08x' % unit_id
				continue
				
			#location hack
			x, y = self.monsters[unit_id]
			monster.x = x
			monster.y = y
				
			if monster.mode in [0, 12]:
				#monster is dead
				self.attack_print('Dead monster: %08x' % unit_id)
				continue
				
			distance = utility.get_d2_distance(self.i, monster)
			if distance > configuration.follower_attack_radius:
				self.attack_print('Distance to %08x too great: %.1f (%s)' % (monster.id, distance, repr((monster.x, monster.y))))
				continue
			monsters.append((distance, unit_id))
			
		monsters.sort(cmp = utility.sort_units)
		
		return monsters
Пример #2
0
	def get_targets(self):
		targets = []
		for unit_id in self.monsters:
			monster = craw.get_unit(unit_id, 1)
			if monster == None:
				print 'Failed to retrieve the unit of monster %08x' % unit_id
				continue
			if monster.mode in [0, 12]:
				targets.append(unit_id)
				
		return targets