Skip to content
This repository has been archived by the owner on Dec 15, 2021. It is now read-only.

Added support for select fleet prior sortie #144

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
eefae8d
fixed boss missclasification
emelrad12 May 8, 2020
f44119d
no message
emelrad12 May 8, 2020
284b183
added config options for drop rate research
nicholasjin May 21, 2020
71ac4cb
finished fleet flipping feature
nicholasjin May 21, 2020
51877eb
added template config.ini
nicholasjin May 21, 2020
2cfaeb0
fix dorm bar detection in new UI
asd111333 May 22, 2020
61e53c7
Merge pull request #1 from nicholasjin/master
God-Zalo May 22, 2020
ea8a888
Personal configuration
May 22, 2020
5834573
Merge remote-tracking branch 'origin/master'
May 22, 2020
5f0c922
Merge pull request #2 from asd111333/master
God-Zalo May 22, 2020
5023a95
Merge pull request #3 from emelrad12/master
God-Zalo May 22, 2020
eaaf9af
Revert "Merge pull request #3 from emelrad12/master"
May 22, 2020
3638c10
Revert "Merge pull request #2 from asd111333/master"
May 22, 2020
91a387b
Revert "Merge remote-tracking branch 'origin/master'"
May 22, 2020
79d432d
[wip] Fleet management
May 23, 2020
4b4af4c
Added support for fleet selection on sortie, ** Bug ** when flip_flee…
May 23, 2020
81d66c2
Merge Develop into master
May 23, 2020
b705257
Merge remote-tracking branch 'origin/develop'
May 23, 2020
e24e84d
Restore to default settings
God-Zalo May 23, 2020
bb81edb
Back to defaults
God-Zalo May 23, 2020
4a561df
Back to defaults
God-Zalo May 23, 2020
e2979c7
Merge pull request #4 from God-Zalo/develop
God-Zalo May 23, 2020
15f5323
Reduced similarity to recognize map on events maps.
May 24, 2020
94208cf
Implemented support for subs fleet change
May 24, 2020
d5fc630
Merge remote-tracking branch 'origin/develop'
May 24, 2020
e1279bb
Minor improvement when selecting only 1 sortie fleet
May 26, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ Enabled: False
Map: 3-4
KillsBeforeBoss: 0
BossFleet: False
ChangeFleet: True
Fleet1: 1
Fleet2: 3
SubmarineFleet: 1
FlipFleets: True
OilLimit: 1000
RetireCycle: 2
RetreatAfter: 0
Expand Down Expand Up @@ -72,4 +77,4 @@ AwardMustContainPRBlueprint: False
Enabled: False
Event: Royal_Maids
Levels: EX,H,N,E
IgnoreRateUp: False
IgnoreRateUp: False
57 changes: 51 additions & 6 deletions modules/combat.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ def __init__(self, config, stats, retirement_module, enhancement_module):
self.mystery_nodes_list = []
self.blacklist = []
self.movement_event = {}
self.fleet1 = self.config.combat['fleet1']
self.fleet2 = self.config.combat['fleet2']
self.submarine_fleet = self.config.combat['submarine_fleet']

self.kills_count = 0
self.kills_before_boss = {
Expand Down Expand Up @@ -78,9 +81,27 @@ def __init__(self, config, stats, retirement_module, enhancement_module):
'map_nav_left': Region(65, 547, 26, 26),
'event_button': Region(1770, 250, 75, 75),
'lock_ship_button': Region(1086, 739, 200, 55),
'clear_first_fleet': Region(1690, 273, 40, 40),
'clear_second_fleet': Region(1690, 473, 40, 40),
'button_switch_fleet': Region(1430, 985, 240, 60),
'menu_nav_back': Region(54, 57, 67, 67)
'menu_nav_back': Region(54, 57, 67, 67),
'choose_first_fleet': Region(1540, 253, 90, 75),
'choose_second_fleet': Region(1540, 453, 90, 75),
'fleet_1_1': Region(1528, 372, 230, 40),
'fleet_1_2': Region(1528, 435, 230, 40),
'fleet_1_3': Region(1528, 498, 230, 40),
'fleet_1_4': Region(1528, 559, 230, 40),
'fleet_1_5': Region(1528, 625, 230, 40),
'fleet_1_6': Region(1528, 684, 230, 40),
'fleet_2_1': Region(1528, 572, 230, 40),
'fleet_2_2': Region(1528, 635, 230, 40),
'fleet_2_3': Region(1528, 698, 230, 40),
'fleet_2_4': Region(1528, 761, 230, 40),
'fleet_2_5': Region(1528, 825, 230, 40),
'fleet_2_6': Region(1528, 884, 230, 40),
'choose_submarine_fleet': Region(1536, 670, 90, 75),
'submarine_fleet_1': Region(1528, 786, 230, 40),
'submarine_fleet_2': Region(1528, 852, 230, 40)
}

self.prohibited_region = {
Expand Down Expand Up @@ -137,20 +158,44 @@ def combat_logic_wrapper(self):
Logger.log_debug("Found map summary go button.")
Utils.touch_randomly(self.region["map_summary_go"])
Utils.wait_update_screen()
if Utils.find("combat/menu_fleet") and (lambda x:x > 414 and x < 584)(Utils.find("combat/menu_fleet").y) and not self.config.combat['boss_fleet']:
if not self.chapter_map[0].isdigit() and string.ascii_uppercase.index(self.chapter_map[2:3]) < 1 or self.chapter_map[0].isdigit():
Logger.log_msg("Removing second fleet from fleet selection.")
Utils.touch_randomly(self.region["clear_second_fleet"])

# Selecting appropiate fleets
if self.config.combat['change_fleets']:
Logger.log_msg("Choosing Surface Fleets")
Utils.touch_randomly(self.region["clear_second_fleet"])
Utils.touch_randomly(self.region["choose_first_fleet"])
Utils.touch_randomly(self.region['fleet_1_{}'.format(self.fleet1)])
Utils.touch([770, 400])
if self.fleet2 != 0:
Utils.touch_randomly(self.region["choose_second_fleet"])
Utils.touch_randomly(self.region['fleet_2_{}'.format(self.fleet2)])
Utils.touch([770, 400])
if self.submarine_fleet != 0:
Logger.log_msg("Choosing Submarine Fleets")
Utils.touch_randomly(self.region["choose_submarine_fleet"])
Utils.touch_randomly(self.region['submarine_fleet_{}'.format(self.submarine_fleet)])

else: Logger.log_msg("Keeping Current Fleets")

# Flip Fleets logic
if not self.config.combat['flip_fleets']:
if Utils.find("combat/menu_fleet") and (lambda x:x > 414 and x < 584)(Utils.find("combat/menu_fleet").y) and not self.config.combat['boss_fleet']:
if not self.chapter_map[0].isdigit() and string.ascii_uppercase.index(self.chapter_map[2:3]) < 1 or self.chapter_map[0].isdigit():
Logger.log_msg("Removing second fleet from fleet selection.")
Utils.touch_randomly(self.region["clear_second_fleet"])

if Utils.find("combat/menu_select_fleet"):
Logger.log_debug("Found fleet select go button.")
Utils.touch_randomly(self.region["fleet_menu_go"])
Utils.wait_update_screen(2)

if Utils.find("combat/button_retreat"):
Logger.log_debug("Found retreat button, starting clear function.")
if not self.clear_map():
self.stats.increment_combat_attempted()
break
Utils.wait_update_screen()

if Utils.find("menu/button_sort"):
if self.config.enhancement['enabled'] and not enhancement_failed:
if not self.enhancement_module.enhancement_logic_wrapper(forced=True):
Expand Down Expand Up @@ -224,7 +269,7 @@ def reach_map(self):
Utils.touch_randomly(self.region['normal_mode_button'])
Utils.wait_update_screen(1)

map_region = Utils.find('maps/map_{}'.format(self.chapter_map), 0.99)
map_region = Utils.find('maps/map_{}'.format(self.chapter_map), 0.90)
if map_region != None:
Logger.log_msg("Found specified map.")
return map_region
Expand Down
17 changes: 17 additions & 0 deletions util/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,13 @@ def _read_combat(self, config):
self.combat['map'] = config.get('Combat', 'Map')
self.combat['kills_before_boss'] = self.try_cast_to_int(config.get('Combat', 'KillsBeforeBoss'))
self.combat['boss_fleet'] = config.getboolean('Combat', 'BossFleet')

self.combat['change_fleets'] = config.getboolean('Combat', 'ChangeFleet')
self.combat['fleet1'] = config.getint('Combat', 'Fleet1')
self.combat['fleet2'] = config.getint('Combat', 'Fleet2')
self.combat['submarine_fleet'] = config.getint('Combat', 'SubmarineFleet')

self.combat['flip_fleets'] = config.getboolean('Combat', 'FlipFleets')
self.combat['oil_limit'] = self.try_cast_to_int(config.get('Combat', 'OilLimit'))
self.combat['retire_cycle'] = self.try_cast_to_int(config.get('Combat', 'RetireCycle'))
self.combat['retreat_after'] = self.try_cast_to_int(config.get('Combat', 'RetreatAfter'))
Expand Down Expand Up @@ -222,6 +229,16 @@ def _read_event(self, config):
self.events['levels'] = config.get('Events', 'Levels').split(',')
self.events['ignore_rateup'] = config.getboolean('Events', 'IgnoreRateUp')

def _read_droprates(self, config):
"""Method to parse the Drop Rate Research settings of the passed in config.
Args:
config (ConfigParser): ConfigParser instance
"""
self.drop_rates['enabled'] = True
self.drop_rates['ComissionDrops'] = config.getboolean('DropRates', 'ComissionDrops')
self.drop_rates['MapDrops'] = config.getboolean('DropRates', 'MapDrops')
self.drop_rates['ResearchDrops'] = config.getboolean('DropRates', 'ResearchDrops')

def validate(self):
"""Method to validate the passed in config file
"""
Expand Down