mirror of
https://github.com/0O0o0oOoO00/Alas.git
synced 2026-05-16 11:49:28 +08:00
90 lines
3.7 KiB
Python
90 lines
3.7 KiB
Python
from module.logger import logger
|
|
from module.config.config import deep_get
|
|
from module.base.base import ModuleBase
|
|
from module.ui.ui import UI
|
|
from module.ui.scroll import Scroll
|
|
from module.gg_handler.assets import DOCK_SCROLL_AREA
|
|
import uiautomator2 as u2
|
|
|
|
DOCK_SCROLL = Scroll(DOCK_SCROLL_AREA, color=(247, 211, 66))
|
|
|
|
class ChangeAttribute(UI, ModuleBase):
|
|
|
|
def __init__(self, config, device):
|
|
super().__init__(config, device)
|
|
self.d = u2.connect(self.device.serial)
|
|
self.gg_package_name = deep_get(self.config.data, keys='GameManager.GGHandler.GGPackageName')
|
|
|
|
def GetShipData(self):
|
|
DataList: str = deep_get(self.config.data, "GameManager.ChangeAttribute.ShipData").split("\n")
|
|
DataString = "|".join(DataList)
|
|
return DataString
|
|
|
|
def PushLua(self):
|
|
IsPush = deep_get(self.config.data, keys='GameManager.ChangeAttribute.PushLua')
|
|
if IsPush:
|
|
self.device.adb_shell("mkdir /sdcard/Notes")
|
|
self.device.sleep(0.5)
|
|
self.device.adb_shell("rm /sdcard/Notes/ShipFucker.lua")
|
|
self.device.sleep(0.5)
|
|
self.device.adb_push("bin/Lua/ShipFucker.lua", "/sdcard/Notes/ShipFucker.lua")
|
|
self.device.sleep(0.5)
|
|
logger.info('Lua Pushed')
|
|
|
|
def ChangeAttribute(self):
|
|
if not deep_get(self.config.data, "GameManager.ChangeAttribute.Enable"):
|
|
return 0
|
|
_set = False
|
|
_confirmed = False
|
|
self.ScrollDockToLoadAllShipData()
|
|
while 1:
|
|
if self.d(resourceId=f"{self.gg_package_name}:id/search_toolbar").exists:
|
|
self.d.xpath(
|
|
f'//*[@resource-id="{self.gg_package_name}'
|
|
f':id/search_toolbar"]/android.widget.ImageView[last()]'
|
|
).click()
|
|
self.device.sleep(1)
|
|
if self.d(resourceId=f"{self.gg_package_name}:id/file").exists:
|
|
self.d(resourceId=f"{self.gg_package_name}:id/file").send_keys("/sdcard/Notes/ShipFucker.lua")
|
|
logger.info('Lua path set')
|
|
if self.d.xpath('//*[@text="执行"]').exists:
|
|
self.d.xpath('//*[@text="执行"]').click()
|
|
logger.info('Click Run')
|
|
self.device.sleep(0.5)
|
|
if self.d.xpath('//*[contains(@text,"改属性")]').exists:
|
|
self.d.xpath('//*[contains(@text,"改属性")]').click()
|
|
logger.info('Click Change Statistic')
|
|
self.device.sleep(0.5)
|
|
if self.d(resourceId=f"{self.gg_package_name}:id/edit").exists:
|
|
ShipDataString = self.GetShipData()
|
|
self.d(resourceId=f"{self.gg_package_name}:id/edit")[0].send_keys(ShipDataString)
|
|
self.device.sleep(0.5)
|
|
_set = True
|
|
if _set and self.d.xpath('//*[@text="确定"]').exists:
|
|
self.d.xpath('//*[@text="确定"]').click()
|
|
logger.info("Click confirm")
|
|
self.device.sleep(0.5)
|
|
_confirmed = True
|
|
self.d.wait_timeout = 90.0
|
|
|
|
if _set and _confirmed:
|
|
try:
|
|
self.d.xpath('//*[@text="确定"]').click()
|
|
self.device.sleep(0.5)
|
|
self.d.xpath('//*[@text="确定"]').click()
|
|
finally:
|
|
pass
|
|
self.d.wait_timeout = 3
|
|
if _set and _confirmed:
|
|
break
|
|
else:
|
|
return 0
|
|
|
|
def ScrollDockToLoadAllShipData(self):
|
|
from module.ui.page import page_dock, page_main
|
|
self.device.screenshot()
|
|
self.ui_goto(page_dock)
|
|
for i in range(1, 6):
|
|
DOCK_SCROLL.set(i / 5, self)
|
|
self.device.sleep(1)
|
|
self.ui_goto(page_main) |