mirror of
https://github.com/0O0o0oOoO00/Alas.git
synced 2026-05-14 08:49:24 +08:00
add: migrate NoOpsiMeowfficerFarming and NoYellowCoinLimit for OpsiHazard1Leveling
This commit is contained in:
@@ -2585,6 +2585,8 @@
|
||||
},
|
||||
"OpsiHazard1Leveling": {
|
||||
"HigherPriority": false,
|
||||
"NoOpsiMeowfficerFarming": false,
|
||||
"NoYellowCoinLimit": false,
|
||||
"TargetZone": 0
|
||||
},
|
||||
"OpsiFleet": {
|
||||
|
||||
@@ -16597,6 +16597,14 @@
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
},
|
||||
"NoOpsiMeowfficerFarming": {
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
},
|
||||
"NoYellowCoinLimit": {
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
},
|
||||
"TargetZone": {
|
||||
"type": "select",
|
||||
"value": 0,
|
||||
|
||||
@@ -744,6 +744,8 @@ OpsiMeowfficerFarming:
|
||||
value: 0
|
||||
OpsiHazard1Leveling:
|
||||
HigherPriority: false
|
||||
NoOpsiMeowfficerFarming: false
|
||||
NoYellowCoinLimit: false
|
||||
TargetZone:
|
||||
value: 0
|
||||
option: [ 0, 44, 22 ]
|
||||
|
||||
@@ -445,6 +445,8 @@ class GeneratedConfig:
|
||||
|
||||
# Group `OpsiHazard1Leveling`
|
||||
OpsiHazard1Leveling_HigherPriority = False
|
||||
OpsiHazard1Leveling_NoOpsiMeowfficerFarming = False
|
||||
OpsiHazard1Leveling_NoYellowCoinLimit = False
|
||||
OpsiHazard1Leveling_TargetZone = 0 # 0, 44, 22
|
||||
|
||||
# Group `Daemon`
|
||||
|
||||
@@ -1878,6 +1878,8 @@ class FullGeneratedConfig:
|
||||
OpsiHazard1Leveling_Scheduler_FailureInterval = None
|
||||
OpsiHazard1Leveling_Scheduler_ServerUpdate = None
|
||||
OpsiHazard1Leveling_OpsiHazard1Leveling_HigherPriority = None
|
||||
OpsiHazard1Leveling_OpsiHazard1Leveling_NoOpsiMeowfficerFarming = None
|
||||
OpsiHazard1Leveling_OpsiHazard1Leveling_NoYellowCoinLimit = None
|
||||
OpsiHazard1Leveling_OpsiHazard1Leveling_TargetZone = None
|
||||
OpsiHazard1Leveling_OpsiFleet_Fleet = None
|
||||
OpsiHazard1Leveling_OpsiFleet_Submarine = None
|
||||
|
||||
@@ -2617,6 +2617,14 @@
|
||||
"name": "OpsiHazard1Leveling.HigherPriority.name",
|
||||
"help": "OpsiHazard1Leveling.HigherPriority.help"
|
||||
},
|
||||
"NoOpsiMeowfficerFarming": {
|
||||
"name": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.name",
|
||||
"help": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.help"
|
||||
},
|
||||
"NoYellowCoinLimit": {
|
||||
"name": "OpsiHazard1Leveling.NoYellowCoinLimit.name",
|
||||
"help": "OpsiHazard1Leveling.NoYellowCoinLimit.help"
|
||||
},
|
||||
"TargetZone": {
|
||||
"name": "Target Zone ID",
|
||||
"help": "Only attack target zone, which can be used to avoid the event that the map cannot be refreshed due to game bug",
|
||||
|
||||
@@ -2617,6 +2617,14 @@
|
||||
"name": "OpsiHazard1Leveling.HigherPriority.name",
|
||||
"help": "OpsiHazard1Leveling.HigherPriority.help"
|
||||
},
|
||||
"NoOpsiMeowfficerFarming": {
|
||||
"name": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.name",
|
||||
"help": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.help"
|
||||
},
|
||||
"NoYellowCoinLimit": {
|
||||
"name": "OpsiHazard1Leveling.NoYellowCoinLimit.name",
|
||||
"help": "OpsiHazard1Leveling.NoYellowCoinLimit.help"
|
||||
},
|
||||
"TargetZone": {
|
||||
"name": "OpsiHazard1Leveling.TargetZone.name",
|
||||
"help": "OpsiHazard1Leveling.TargetZone.help",
|
||||
|
||||
@@ -2617,6 +2617,14 @@
|
||||
"name": "更高优先级",
|
||||
"help": "开启后会将优先级调整到紧急委托前面"
|
||||
},
|
||||
"NoOpsiMeowfficerFarming": {
|
||||
"name": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.name",
|
||||
"help": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.help"
|
||||
},
|
||||
"NoYellowCoinLimit": {
|
||||
"name": "OpsiHazard1Leveling.NoYellowCoinLimit.name",
|
||||
"help": "OpsiHazard1Leveling.NoYellowCoinLimit.help"
|
||||
},
|
||||
"TargetZone": {
|
||||
"name": "指定海域",
|
||||
"help": "仅出击指定的海域,可以用来规避游戏BUG导致的无法刷新海域",
|
||||
|
||||
@@ -2617,6 +2617,14 @@
|
||||
"name": "OpsiHazard1Leveling.HigherPriority.name",
|
||||
"help": "OpsiHazard1Leveling.HigherPriority.help"
|
||||
},
|
||||
"NoOpsiMeowfficerFarming": {
|
||||
"name": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.name",
|
||||
"help": "OpsiHazard1Leveling.NoOpsiMeowfficerFarming.help"
|
||||
},
|
||||
"NoYellowCoinLimit": {
|
||||
"name": "OpsiHazard1Leveling.NoYellowCoinLimit.name",
|
||||
"help": "OpsiHazard1Leveling.NoYellowCoinLimit.help"
|
||||
},
|
||||
"TargetZone": {
|
||||
"name": "指定海域",
|
||||
"help": "僅出擊指定的海域,可以用來規避遊戲BUG導致的無法重繪海域",
|
||||
|
||||
@@ -897,6 +897,73 @@ class OperationSiren(OSMap):
|
||||
self.config.task_stop()
|
||||
|
||||
|
||||
class OperationSiren(OperationSiren):
|
||||
def os_hazard1_leveling(self):
|
||||
logger.hr('OS hazard 1 leveling', level=1)
|
||||
# Without these enabled, CL1 gains 0 profits
|
||||
self.config.override(
|
||||
OpsiGeneral_DoRandomMapEvent=True,
|
||||
OpsiGeneral_AkashiShopFilter='ActionPoint',
|
||||
)
|
||||
|
||||
full_config = self.config.full_config
|
||||
no_opsi_meowfficer_farming = full_config.OpsiHazard1Leveling_OpsiHazard1Leveling_NoOpsiMeowfficerFarming
|
||||
no_yellow_coin_limit = full_config.OpsiHazard1Leveling_NoYellowCoinLimit
|
||||
|
||||
if no_opsi_meowfficer_farming:
|
||||
logger.info(f"No OpsiMeowfficerFarming is enabled in OpsiHazard1Leveling")
|
||||
else:
|
||||
if not self.config.is_task_enabled('OpsiMeowfficerFarming'):
|
||||
self.config.cross_set(keys='OpsiMeowfficerFarming.Scheduler.Enable', value=True)
|
||||
|
||||
while True:
|
||||
# Limited action point preserve of hazard 1 to 200
|
||||
self.config.OS_ACTION_POINT_PRESERVE = 200
|
||||
if self.config.is_task_enabled('OpsiAshBeacon') \
|
||||
and not self._ash_fully_collected \
|
||||
and self.config.OpsiAshBeacon_EnsureFullyCollected:
|
||||
logger.info('Ash beacon not fully collected, ignore action point limit temporarily')
|
||||
self.config.OS_ACTION_POINT_PRESERVE = 0
|
||||
logger.attr('OS_ACTION_POINT_PRESERVE', self.config.OS_ACTION_POINT_PRESERVE)
|
||||
|
||||
if not no_yellow_coin_limit:
|
||||
if self.get_yellow_coins() < self.config.OS_CL1_YELLOW_COINS_PRESERVE:
|
||||
logger.info(f'Reach the limit of yellow coins, preserve={self.config.OS_CL1_YELLOW_COINS_PRESERVE}')
|
||||
with self.config.multi_set():
|
||||
self.config.task_delay(server_update=True)
|
||||
if not self.is_in_opsi_explore():
|
||||
self.config.task_call('OpsiMeowfficerFarming')
|
||||
self.config.task_stop()
|
||||
|
||||
self.get_current_zone()
|
||||
|
||||
# Preset action point to 70
|
||||
# When running CL1 oil is for running CL1, not meowfficer farming
|
||||
keep_current_ap = True
|
||||
if self.config.OpsiGeneral_BuyActionPointLimit > 0:
|
||||
keep_current_ap = False
|
||||
self.action_point_set(cost=70, keep_current_ap=keep_current_ap, check_rest_ap=True)
|
||||
if self._action_point_total >= 3000 and not no_opsi_meowfficer_farming:
|
||||
with self.config.multi_set():
|
||||
self.config.task_delay(server_update=True)
|
||||
if not self.is_in_opsi_explore():
|
||||
self.config.task_call('OpsiMeowfficerFarming')
|
||||
self.config.task_stop()
|
||||
|
||||
if self.config.OpsiHazard1Leveling_TargetZone != 0:
|
||||
zone = self.config.OpsiHazard1Leveling_TargetZone
|
||||
else:
|
||||
zone = 22
|
||||
logger.hr(f'OS hazard 1 leveling, zone_id={zone}', level=1)
|
||||
if self.zone.zone_id != zone or not self.is_zone_name_hidden:
|
||||
self.globe_goto(self.name_to_zone(zone), types='SAFE', refresh=True)
|
||||
self.fleet_set(self.config.OpsiFleet_Fleet)
|
||||
self.run_strategic_search()
|
||||
|
||||
self.handle_after_auto_search()
|
||||
self.config.check_task_switch()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
self = OperationSiren('month_test', task='OpsiMonthBoss')
|
||||
from module.os.config import OSConfig
|
||||
|
||||
Reference in New Issue
Block a user