Beispiel #1
0
def declineMission():
    print '--> decline mission'

    result = None
    while not result:
    	time.sleep(0.2)
    	result = findAtMissionRight('decline')
    mouse.leftClickAtP(result)

    begin = time.time()
    result = None
    while not result and time.time() - begin < 5:
    	time.sleep(0.5)
    	result = findAtFull('yes')
    if result:
    	mouse.leftClickAtP(result)

    print 'wait until decline'
    while not findAtMission('request_mission'):
        time.sleep(0.5)
    mouse.moveToP(panel.center(panel.MissionLeft))

    result = None
    while not result:
    	time.sleep(0.5)
    	result = findAtFull('x')
    mouse.leftClickAtP(result)
    time.sleep(1)

    print '<-- decline mission\n'
    return True
Beispiel #2
0
def unloadItem(item):
    print '--> unload item ' + item

    result = findAtInventory('ship', 0.5)
    if not result:
    	return False
    mouse.leftClickAtP(result)
    time.sleep(2)

    result = findAtInventory(item)
    while not result:
        mouse.moveToP(panel.center(panel.Inventory))
        mouse.wheel(-12)
        mouse.moveTo(100, 100)
        result = findAtInventory(item)

    mouse.leftDownAtP(result)
    result = findAtInventory('item_hangar', 0.5)
    if not result:
    	mouse.leftUp()
    	return False
    mouse.moveToP(result)
    mouse.leftUp()
    time.sleep(1)

    print '<-- unload item ' + item + '\n'
    return True
Beispiel #3
0
def switchTo(name):
	print '--> switch overview setting to ' + name

	trycount = 0
	success = False
	while not success and trycount < 3:
		success = True
		trycount += 1
		result = findAtOverview('overview')
		if not result:
			success = False
		mouse.leftClickAtP(result)
		mouse.moveTo(result[0] - 400, result[1])
		time.sleep(0.5)

		result = findAtOverview(name)
		if not result:
			success = False
		mouse.leftClickAtP(result)
		time.sleep(0.5)

		if not success:
			mouse.leftClickAtP(panel.center(panel.Full))

	if not success:
		return False

	print '<-- switch overview setting to ' + name + '\n'
	return True
Beispiel #4
0
def back():
	print '--> drones return'

	key.pressEx(sc.DronesReturn)

	mouse.moveToP(panel.center(panel.Drones))
	mouse.wheel(-100)
	mouse.moveToP(panel.center(panel.Full))

	print 'wait until drones return'
	while findAtDrones('returning') or findAtDrones('fighting') or findAtDrones('idle'):
		key.pressEx(sc.DronesReturn)
		time.sleep(0.2)

	print '<-- drones return\n'
	return True
Beispiel #5
0
def enterStarMap():
	print '--> enter star map'
	key.pressEx(sc.Map)
	begin = time.time()
	while findAtProgressBar('initializing_map') or time.time() - begin < 3:
		time.sleep(0.5)
	mouse.moveToP(panel.center(panel.Full))
	mouse.wheel(100)
	print '<-- enter star map\n'
Beispiel #6
0
def openInventory():
	print '--> open inventory'

	key.pressEx(sc.Inventory)
	mouse.moveToP(panel.center(panel.Inventory))
	while not findAtInventory('x'):
		time.sleep(0.2)

	print '<-- open inventory\n'
	return True
Beispiel #7
0
def completeMission():
	print '--> complete mission\n'

	result = None
	while not result:
		time.sleep(0.2)
		result = findAtMissionRight('complete_mission')
	mouse.leftClickAtP(result)
	mouse.moveTo(result[0], result[1] - 100)

	print 'wait until complete mission'
	result = None
	flag = False
	while not result:
		result = findAtMissionRight('request_mission')
		if result:
			flag = True
			break

		result = findAtMissionRight('can_not_complete_mission')
		if result:
			flag = False
			break

	if not flag:
		print 'can not complete'

		result = None
		while not result:
			time.sleep(0.2)
			result = findAtFull('ok')
		mouse.leftClickAtP(result)

		result = None
		while not result:
			time.sleep(0.2)
			result = findAtMissionRight('quit_mission')
		mouse.leftClickAtP(result)

		result = None
		while not result:
			time.sleep(0.2)
			result = findAtFull('yes')
		mouse.leftClickAtP(result)

	mouse.moveToP(panel.center(panel.MissionLeft))
	result = None
	while not result:
		time.sleep(0.2)
		result = findAtMission('x')
	mouse.leftClickAtP(result)

	print '<-- complete mission\n'
	return True
Beispiel #8
0
def _launch(group):

	result = None
	while not result:
		mouse.moveToP(panel.center(panel.Drones))
		mouse.wheel(100)
		mouse.moveToP(panel.center(panel.Full))
		result = findAtDrones('bay')

	if group == None:
		mouse.rightClickAtP(result)
	else:
		if not findAtDrones(group):
			mouse.leftClickAtP(result)
		result = findAtDrones(group)
		while not result:
			time.sleep(0.5)
			result = findAtDrones(group)
		mouse.rightClickAtP(result)

	result = findAtDrones('launch_drones')
	while not result:
		time.sleep(0.5)
		result = findAtDrones('launch_drones')
	mouse.leftClickAtP(result)

	print 'wait until drones launching..'
	mouse.moveToP(panel.center(panel.Full))
	# time.sleep(5)
	while not findAtDrones('idle') and not findAtDrones('fighting') and not findAtDrones('returning'):
		mouse.moveToP(panel.center(panel.Drones))
		mouse.wheel(-100)
		mouse.moveToP(panel.center(panel.Full))
		if not findAtDrones('idle') and not findAtDrones('fighting') and not findAtDrones('returning'):
			result = findAtDrones('local_space')
			if result:
				mouse.leftClickAtP(result)
				mouse.wheel(-100)
				mouse.leftClickAt(result[0], result[1] + 20)

	return True
Beispiel #9
0
def warpToMissionLocation():
	print '--> warp to mission location'

	enterStarMap()

	mouse.moveToP(panel.center(panel.Full))
	mouse.leftDown()
	mouse.move(500, 200)
	mouse.leftUp()

	openMissionMenu()

	result = findAtInfo('warp_to_location')
	while not result:
		result = findAtInfo('warp_to_location')
		time.sleep(1)
	mouse.leftClickAtP(result)

	time.sleep(1)
	
	print 'wait to activate gate'
	while not findAtDashboard('warp_drive_active'):
		result = findAtFull('close')
		if not result:
			result = findAtFull('ok')
		if result:
			mouse.leftClickAtP(result)
			mouse.moveTo(result[0], result[1] - 200)
		time.sleep(1)

	print 'wait until reach location'
	while findAtDashboard('warp_drive_active'):
		time.sleep(0.5)

	result = findAtFull('close')
	if not result:
		result = findAtFull('ok')
	if result:
		mouse.leftClickAtP(result)
		mouse.moveTo(result[0], result[1] - 200)
	time.sleep(1)

	while findAtDashboard('warp_drive_active'):
		time.sleep(0.5)

	exitStarMap()

	print '<-- warp to mission location\n'
	return True
Beispiel #10
0
def activateAccelerationGate():
	switchTo('pilot')
	general.enterStarMap()

	print '--> activate acceleration gate\n'

	mouse.leftDownAtP(panel.center(panel.Full))
	mouse.move(500, 200)
	mouse.leftUp()

	result = findTarget('acceleration_gate')
	if not result:
		return False
	mouse.leftClickAtP(result)
	key.pressEx(sc.Activate)

	print 'wait to activate gate'
	while not findAtDashboard('warp_drive_active'):
		result = findAtFull('close')
		if not result:
			result = findAtFull('ok')
		if result:
			mouse.leftClickAtP(result)
			mouse.moveTo(result[0], result[1] - 200)
		handleDangerousAction();
		key.pressEx(sc.Activate)
		time.sleep(1)

	print 'wait until reach location'
	while findAtDashboard('warp_drive_active'):
		time.sleep(0.5)

	result = findAtFull('close')
	if not result:
		result = findAtFull('ok')
	if result:
		mouse.leftClickAtP(result)
		mouse.moveTo(result[0], result[1] - 200)
	time.sleep(1)

	while findAtDashboard('warp_drive_active'):
		time.sleep(0.5)

	print '<-- activate acceleration gate\n'

	general.exitStarMap()
	
	return True
Beispiel #11
0
def missionObjectiveComplete():
	print '--> judge if mission complete'

	print 'wait until mission complete'
	while not findAtMissionDetails('v'):
		time.sleep(1)

	mouse.moveToP(panel.center(panel.MissionDetails))
	result = None
	while not result:
		time.sleep(0.5)
		result = findAtMissionDetails('x')
	mouse.leftClickAtP(result)

	print '<-- judge if mission complete\n'
	return True
Beispiel #12
0
def setMissionWaypoint(retry = False):
	print '--> set mission waypoint'

	enterStarMap()

	openMissionMenu()

	while True:
		result = findAtInfo('set_destination')
		if not result and not retry:
			return False
		elif not result:
			time.sleep(1)
			mouse.leftClickAtP(panel.center(panel.Full))
		else:
			break

	mouse.leftClickAtP(result)

	exitStarMap()

	print '<-- set mission waypoint\n'
	return True
Beispiel #13
0
def findEnemy():
	print '--> find enemy'
	count = 0
	result = pic.findColorR(panel.Overview, 'c11313')
	while result == None and count < 10:
		if result:
			break
		x, y = panel.center(panel.Overview)
		y += random.random() * 200 - 100
		mouse.leftClickAt(x, y)
		if count < 5:
			mouse.wheel(-20)
		else:
			mouse.wheel(20)
		count += 1
		result = pic.findColorR(panel.Overview, 'c11313')

	if not result:
		print 'can not find enemy.'
	else:
		print 'target finded.'

	print '<-- find enemy'
	return result
Beispiel #14
0
def findTarget(target, threashould = 0.1):
	print '--> find target "' + target + '"'
	count = 0
	result = findAtOverview(target, threashould)
	while result == None and count < 10:
		if result:
			break
		x, y = panel.center(panel.Overview)
		y += random.random() * 200 - 100
		mouse.leftClickAt(x, y)
		if count < 5:
			mouse.wheel(-20)
		else:
			mouse.wheel(20)
		count += 1
		result = findAtOverview(target)

	if not result:
		print 'can not find target.'
	else:
		print 'target finded.'

	print '<-- find target "' + target + '"\n'
	return result
def run():
	print '--> mission Intercept The Sabateurs'

	if not ship.enableDefense():
		return False

	if not drones.launchSmall():
		return False

	overview.seekAndDestory()

	if not drones.back():
		return False

	ship.enableAfterburn()

	if not overview.activateAccelerationGate():
		return False

	# pocket 1
	# main enemies are 90km away
	# approach for 85 secs
	# mean while clean up nearby enemy

	drones.launchSmall()
	
	if not overview.switchTo('battle'):
		return False

	if not overview.lockEnemy(20):
		return False

	ship.fireOnce()

	if not overview.lockTarget('transport', 1):
		return False

	ship.enableAfterburn()

	ship.approachFor(85)

	# wait for stop
	begin = time.time()
	while time.time() - begin < 20:
		ship.stop()
		key.pressEx(sc.Unlock)

	mouse.moveToP(panel.center(panel.Drones))

	mouse.wheel(-100)

	while findAtDrones('fighting'):
		time.sleep(10)

	drones.back()

	# use sentry to destory all the smalls

	for i in range(6):
		overview.lockTarget('s', 1)

	drones.launchSentry()

	begin = time.time()
	while overview.lockTarget('s', 1) and time.time() - begin < 130:
		ship.fireOnce()
		drones.engage()

	drones.back()

	# do the rest

	ship.fireOnce()

	drones.launchSmall()

	overview.seekAndDestory()

	while not overview.pickCargo():
		pass

	drones.back()

	print '<-- mission Intercept The Sabateurs\n'
	return True
	if not overview.activateAccelerationGate():
		return False

	if not overview.switchTo('lcs'):
		return False

	if not overview.lockTarget('guristas_space', 15):
		return False

	if not drones.launchSmall():
		return False

	ship.fireOnce()

	drones.engage()

	if not general.openMissionDetails():
		return False

	if not general.missionObjectiveComplete():
		return False

	if not drones.back():
		return False

	print '<-- mission The Space Telescope\n'
	return True

if __name__ == '__main__':
	mouse.leftClickAtP(panel.center(panel.Full))
	run()
Beispiel #17
0
def autopilot():
    print '--> autopilot'

    overview.switchTo('pilot')

    while True:
        print 'try to find target stargate or station'
        finded = ''
        result = None
        for retry in range(3):
            print 'try: ' + str(retry + 1)
            result = findAtOverview('target_station', 0.2)
            if result:
                print 'station finded'
                finded = 'station'
                break
            result = findAtOverview('target_star_gate', 0.2)
            if result:
                print 'stargate finded'
                finded = 'gate'
                break
            x, y = panel.center(panel.Overview)
            y += random.random() * 200 - 100
            mouse.leftClickAt(x, y)
            mouse.wheel(-12)
            mouse.moveToP(panel.center(panel.Full))

        if finded == '':
            print "can't find any waypoint"
            print '<-- autopilot\n'
            return False

        if finded == 'station':
            print 'docking...'
            mouse.leftClickAtP(result)
            key.pressEx(sc.Activate)
            print 'wait until entering station'
            begin = time.time()
            result = findAtProgressBar('entering_station', 0.1) 
            while not result and time.time() - begin < 80:
                result = findAtProgressBar('entering_station', 0.1) 
                time.sleep(0.1)
            if result:
                print 'entering station'
                time.sleep(4)
                print '<-- autopilot\n'
                return True

        if finded == 'gate':
            print 'jump...'
            mouse.leftClickAtP(result)
            key.pressEx(sc.Activate)
            print 'wait until entering space'
            begin = time.time()
            result = findAtProgressBar('entering_space', 0.1)
            while not result  and time.time() - begin < 80:
                result = findAtProgressBar('entering_space', 0.1)
                time.sleep(0.1)
            if result:
                print 'entering space'
                time.sleep(3)