1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-21 14:39:32 +08:00
Files
Alas/module/research_farming/farming.py
2023-10-05 14:42:06 +08:00

89 lines
5.6 KiB
Python

from module.base.utils import color_bar_percentage
from module.config.utils import deep_get
from module.logger import logger
from module.base.base import ModuleBase
from module.ui.ui import UI
from module.ui.page import page_shipyard
from module.shipyard.shipyard_reward import RewardShipyard
from module.research_farming.assets import SHIP_EXPERIENCE_PERCENT_1, SHIP_EXPERIENCE_PERCENT_2, SHIP_EXPERIENCE_FINISHED_1, SHIP_EXPERIENCE_FINISHED_2
from datetime import datetime
class ResearchFarming(UI, ModuleBase):
def _DisableAllResearchFarmTask(self):
for i in range(1, 7):
self.config.modified[f"{self._GetResearchFarmTaskName(i)}.Scheduler.Enable"] = False
def _Override(self):
self.ExperienceIndex = deep_get(self.config.data, "ResearchFarmingSetting.ResearchFarmingSetting.ExperienceIndex")
if self.ExperienceIndex == 1:
self.SHIP_EXPERIENCE_PERCENT = SHIP_EXPERIENCE_PERCENT_1
self.SHIP_EXPERIENCE_FINISHED = SHIP_EXPERIENCE_FINISHED_1
elif self.ExperienceIndex == 2:
self.SHIP_EXPERIENCE_PERCENT = SHIP_EXPERIENCE_PERCENT_2
self.SHIP_EXPERIENCE_FINISHED = SHIP_EXPERIENCE_FINISHED_2
def CheckResearchShipExperience(self):
self._Override()
self.device.screenshot()
self.ui_goto(page_shipyard)
Series = deep_get(self.config.data, "ResearchFarmingSetting.ResearchFarmingSetting.ResearchSeries")
Index = deep_get(self.config.data, "ResearchFarmingSetting.ResearchFarmingSetting.ShipIndex")
RewardShipyard(config=self.config, device=self.device).shipyard_set_focus(series=Series, index=Index)
CurrentPercent = color_bar_percentage(self.device.image, self.SHIP_EXPERIENCE_PERCENT.area, prev_color=(255, 239, 82))
self.config.modified["Dashboard.ResearchPercent.Value"] = int(CurrentPercent * 100)
self.config.modified["Dashboard.ResearchPercent.Record"] = datetime.now().replace(microsecond=0)
if CurrentPercent > 0.99 and self.appear(self.SHIP_EXPERIENCE_FINISHED):
self._DisableAllResearchFarmTask()
if deep_get(self.config.data, "ResearchFarmingSetting.ResearchFarmingSetting.OnepushNotify"):
from module.notify import handle_notify
handle_notify(self.config.Error_OnePushConfig,
title=f"Alas <{self.config.config_name}>: Research ship's experience finished",
content=f"Ship's experience {self.ExperienceIndex} has finished")
def _GetResearchFarmTaskName(self, Index):
return f"ResearchFarm{Index if Index != 1 else ''}"
def _SetCampaign(self, Index):
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Campaign.Name"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.Campaign")
def _SetFleet(self, Index):
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Fleet.Fleet1"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.Fleet1")
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Fleet.Fleet2"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.Fleet2")
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Fleet.FleetOrder"] = "fleet1_all_fleet2_standby"
def _SetEmotion(self, Index):
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Fleet1Value"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.EmotionValue")
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Fleet2Value"] = 119
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Fleet1Record"] = datetime.now()
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Fleet2Record"] = datetime.now()
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Mode"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.EmotionControlMethod")
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Fleet1Control"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.Fleet1Control")
self.config.modified[f"{self._GetResearchFarmTaskName(Index)}.Emotion.Fleet1Recover"] = deep_get(self.config.data,
f"ResearchFarmingSetting.ResearchFarm{Index}Setting.Fleet1Recover")
def _Call(self, Index):
self.config.task_call(self._GetResearchFarmTaskName(Index))
def run(self):
for i in range(1, 7):
if deep_get(self.config.data, f"ResearchFarmingSetting.ResearchFarm{i}Setting.Enable"):
self._SetCampaign(i)
self._SetFleet(i)
self._SetEmotion(i)
self._Call(i)
self.config.Scheduler_Enable = False
self.config.task_stop()
if __name__ == "__main__":
ResearchFarming(config="alas", device="127.0.0.1:16384").CheckResearchShipExperience()