改写战斗中替换group的逻辑
This commit is contained in:
commit
7f89eb0db8
3890 changed files with 82290 additions and 0 deletions
13
mower/__init__.py
Normal file
13
mower/__init__.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
import platform
|
||||
from pathlib import Path
|
||||
|
||||
__version__ = "ng"
|
||||
|
||||
|
||||
__rootdir__ = Path(__file__).parent.resolve()
|
||||
|
||||
from mower.utils.git_rev import revision_info
|
||||
|
||||
__version__ += "+" + revision_info()[:7]
|
||||
|
||||
__system__ = platform.system().lower()
|
421
mower/__main__.py
Normal file
421
mower/__main__.py
Normal file
|
@ -0,0 +1,421 @@
|
|||
import json
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from evalidate import Expr
|
||||
|
||||
from mower.solvers.base_schedule import BaseSchedulerSolver
|
||||
from mower.solvers.depot_reader import DepotManager
|
||||
from mower.solvers.reclamation_algorithm import ReclamationAlgorithm
|
||||
from mower.solvers.secret_front import SecretFront
|
||||
from mower.utils import config, path, rapidocr
|
||||
from mower.utils.csleep import MowerExit
|
||||
from mower.utils.datetime import format_time
|
||||
from mower.utils.device.adb_client.session import Session
|
||||
from mower.utils.device.scrcpy import Scrcpy
|
||||
from mower.utils.email import send_message, task_template
|
||||
from mower.utils.log import logger
|
||||
from mower.utils.logic_expression import get_logic_exp
|
||||
from mower.utils.path import get_path
|
||||
from mower.utils.plan import Plan, PlanConfig, Room
|
||||
from mower.utils.simulator import restart_simulator
|
||||
|
||||
base_scheduler = None
|
||||
operators = config.operators
|
||||
|
||||
|
||||
# 执行自动排班
|
||||
def main():
|
||||
logger.info("开始运行Mower")
|
||||
rapidocr.initialize_ocr()
|
||||
simulate()
|
||||
|
||||
|
||||
def initialize(
|
||||
tasks: list, scheduler: BaseSchedulerSolver | None = None
|
||||
) -> BaseSchedulerSolver:
|
||||
if scheduler:
|
||||
scheduler.handle_error(True)
|
||||
return scheduler
|
||||
|
||||
base_scheduler = BaseSchedulerSolver()
|
||||
plan1 = {}
|
||||
plan = config.plan.model_dump(exclude_none=True)
|
||||
conf = config.conf
|
||||
plan_config = PlanConfig(
|
||||
rest_in_full=config.plan.conf.rest_in_full,
|
||||
exhaust_require=config.plan.conf.exhaust_require,
|
||||
resting_priority=config.plan.conf.resting_priority,
|
||||
ling_xi=config.plan.conf.ling_xi,
|
||||
workaholic=config.plan.conf.workaholic,
|
||||
max_resting_count=config.plan.conf.max_resting_count,
|
||||
free_blacklist=conf.free_blacklist,
|
||||
resting_threshold=conf.resting_threshold,
|
||||
refresh_trading_config=config.plan.conf.refresh_trading,
|
||||
free_room=conf.free_room,
|
||||
)
|
||||
for room, obj in plan[plan["default"]].items():
|
||||
plan1[room] = [
|
||||
Room(op["agent"], op["group"], op["replacement"]) for op in obj["plans"]
|
||||
]
|
||||
# 默认任务
|
||||
plan["default_plan"] = Plan(plan1, plan_config)
|
||||
# 备用自定义任务
|
||||
backup_plans: list[Plan] = []
|
||||
|
||||
for i in plan["backup_plans"]:
|
||||
backup_plan: dict[str, Room] = {}
|
||||
for room, obj in i["plan"].items():
|
||||
backup_plan[room] = [
|
||||
Room(op["agent"], op["group"], op["replacement"]) for op in obj["plans"]
|
||||
]
|
||||
backup_config = PlanConfig(
|
||||
i["conf"]["rest_in_full"],
|
||||
i["conf"]["exhaust_require"],
|
||||
i["conf"]["resting_priority"],
|
||||
ling_xi=i["conf"]["ling_xi"],
|
||||
workaholic=i["conf"]["workaholic"],
|
||||
max_resting_count=i["conf"]["max_resting_count"],
|
||||
free_blacklist=i["conf"]["free_blacklist"],
|
||||
resting_threshold=conf.resting_threshold,
|
||||
refresh_trading_config=i["conf"]["refresh_trading"],
|
||||
free_room=conf.free_room,
|
||||
)
|
||||
backup_trigger = get_logic_exp(i["trigger"]) if "trigger" in i else None
|
||||
backup_task = i.get("task")
|
||||
backup_trigger_timing = i.get("trigger_timing")
|
||||
backup_plans.append(
|
||||
Plan(
|
||||
backup_plan,
|
||||
backup_config,
|
||||
trigger=backup_trigger,
|
||||
task=backup_task,
|
||||
trigger_timing=backup_trigger_timing,
|
||||
)
|
||||
)
|
||||
plan["backup_plans"] = backup_plans
|
||||
|
||||
logger.debug(plan)
|
||||
base_scheduler.global_plan = plan
|
||||
base_scheduler.tasks = tasks
|
||||
base_scheduler.enable_party = conf.enable_party == 1 # 是否使用线索
|
||||
base_scheduler.leifeng_mode = conf.leifeng_mode == 1 # 是否有额外线索就送出
|
||||
# 干员宿舍回复阈值
|
||||
# 高效组心情低于 UpperLimit * 阈值 (向下取整)的时候才会会安排休息
|
||||
base_scheduler.last_room = ""
|
||||
# logger.info("宿舍黑名单:" + str(plan_config.free_blacklist))
|
||||
# 估计没用了
|
||||
base_scheduler.MAA = None
|
||||
base_scheduler.error = False
|
||||
base_scheduler.drone_room = None if conf.drone_room == "" else conf.drone_room
|
||||
base_scheduler.reload_room = list(
|
||||
filter(None, conf.reload_room.replace(",", ",").split(","))
|
||||
)
|
||||
|
||||
# 关闭游戏次数计数器
|
||||
base_scheduler.task_count = 0
|
||||
|
||||
return base_scheduler
|
||||
|
||||
|
||||
def simulate():
|
||||
"""
|
||||
具体调用方法可见各个函数的参数说明
|
||||
"""
|
||||
logger.info(f"正在使用全局配置空间: {path.global_space}")
|
||||
tasks = []
|
||||
reconnect_max_tries = 10
|
||||
reconnect_tries = 0
|
||||
global base_scheduler
|
||||
success = False
|
||||
while not success:
|
||||
try:
|
||||
base_scheduler = initialize(tasks)
|
||||
success = True
|
||||
except MowerExit:
|
||||
return
|
||||
except Exception as e:
|
||||
logger.exception(e)
|
||||
reconnect_tries += 1
|
||||
if reconnect_tries < 3:
|
||||
restart_simulator()
|
||||
config.device.client.check_server_alive()
|
||||
Session().connect()
|
||||
if config.conf.droidcast.enable:
|
||||
config.device.start_droidcast()
|
||||
if config.conf.touch_method == "scrcpy":
|
||||
config.device.control.scrcpy = Scrcpy(config.device.client)
|
||||
continue
|
||||
else:
|
||||
raise e
|
||||
# base_scheduler.仓库扫描() #别删了 方便我找
|
||||
validation_msg = base_scheduler.initialize_operators()
|
||||
if validation_msg is not None:
|
||||
logger.error(validation_msg)
|
||||
return
|
||||
if operators != {}:
|
||||
for k, v in operators.items():
|
||||
if (
|
||||
k in base_scheduler.op_data.operators
|
||||
and not base_scheduler.op_data.operators[k].room.startswith("dorm")
|
||||
):
|
||||
# 只复制心情数据
|
||||
base_scheduler.op_data.operators[k].mood = v.mood
|
||||
base_scheduler.op_data.operators[k].time_stamp = v.time_stamp
|
||||
base_scheduler.op_data.operators[k].depletion_rate = v.depletion_rate
|
||||
base_scheduler.op_data.operators[k].current_room = v.current_room
|
||||
base_scheduler.op_data.operators[k].current_index = v.current_index
|
||||
timezone_offset = 0
|
||||
|
||||
if len(base_scheduler.op_data.backup_plans) > 0:
|
||||
conditions = base_scheduler.op_data.generate_conditions(
|
||||
len(base_scheduler.op_data.backup_plans)
|
||||
)
|
||||
for con in conditions:
|
||||
validation_msg = base_scheduler.op_data.swap_plan(con, True)
|
||||
if validation_msg is not None:
|
||||
logger.error(f"替换排班验证错误:{validation_msg}, 附表条件为 {con}")
|
||||
return
|
||||
base_scheduler.op_data.swap_plan(
|
||||
[False] * len(base_scheduler.op_data.backup_plans), True
|
||||
)
|
||||
while True:
|
||||
try:
|
||||
if len(base_scheduler.tasks) > 0:
|
||||
(base_scheduler.tasks.sort(key=lambda x: x.time, reverse=False))
|
||||
logger.info("||".join([str(t) for t in base_scheduler.tasks]))
|
||||
remaining_time = (
|
||||
base_scheduler.tasks[0].time - datetime.now()
|
||||
).total_seconds()
|
||||
|
||||
if remaining_time > 540:
|
||||
# 刷新时间以鹰历为准
|
||||
if (
|
||||
base_scheduler.sign_in
|
||||
< (datetime.now() - timedelta(hours=4)).date()
|
||||
):
|
||||
if base_scheduler.sign_in_plan_solver():
|
||||
base_scheduler.sign_in = (
|
||||
datetime.now() - timedelta(hours=4)
|
||||
).date()
|
||||
|
||||
if (
|
||||
base_scheduler.daily_visit_friend
|
||||
< (datetime.now() - timedelta(hours=4)).date()
|
||||
):
|
||||
if base_scheduler.visit_friend_plan_solver():
|
||||
base_scheduler.daily_visit_friend = (
|
||||
datetime.now() - timedelta(hours=4)
|
||||
).date()
|
||||
|
||||
if (
|
||||
base_scheduler.daily_report
|
||||
< (datetime.now() - timedelta(hours=4)).date()
|
||||
):
|
||||
if base_scheduler.report_plan_solver():
|
||||
base_scheduler.daily_report = (
|
||||
datetime.now() - timedelta(hours=4)
|
||||
).date()
|
||||
|
||||
if (
|
||||
config.conf.skland_enable
|
||||
and base_scheduler.daily_skland
|
||||
< (datetime.now() - timedelta(hours=4)).date()
|
||||
):
|
||||
if base_scheduler.skland_plan_solover():
|
||||
base_scheduler.daily_skland = (
|
||||
datetime.now() - timedelta(hours=4)
|
||||
).date()
|
||||
|
||||
if (
|
||||
config.conf.check_mail_enable
|
||||
and base_scheduler.daily_mail
|
||||
< (datetime.now() - timedelta(hours=8)).date()
|
||||
):
|
||||
if base_scheduler.mail_plan_solver():
|
||||
base_scheduler.daily_mail = (
|
||||
datetime.now() - timedelta(hours=8)
|
||||
).date()
|
||||
|
||||
if config.conf.recruit_enable:
|
||||
base_scheduler.recruit_plan_solver()
|
||||
|
||||
# 应该在maa任务之后
|
||||
def _is_depotscan():
|
||||
depot_manager = DepotManager()
|
||||
return depot_manager.读取仓库()[-1]
|
||||
|
||||
if config.conf.maa_depot_enable:
|
||||
dt = int(datetime.now().timestamp()) - _is_depotscan()
|
||||
if dt >= config.conf.maa_gap * 3600:
|
||||
base_scheduler.仓库扫描()
|
||||
else:
|
||||
logger.info(
|
||||
f"仓库扫描未到时间,将在 {config.conf.maa_gap - dt // 3600}小时之内开始扫描"
|
||||
)
|
||||
if config.conf.maa_enable == 1:
|
||||
subject = f"下次任务在{base_scheduler.tasks[0].time.strftime('%H:%M:%S')}"
|
||||
context = f"下一次任务:{base_scheduler.tasks[0].plan}"
|
||||
logger.info(context)
|
||||
logger.info(subject)
|
||||
body = task_template.render(
|
||||
tasks=[
|
||||
obj.format(timezone_offset)
|
||||
for obj in base_scheduler.tasks
|
||||
],
|
||||
base_scheduler=base_scheduler,
|
||||
)
|
||||
send_message(body, subject)
|
||||
base_scheduler.maa_plan_solver()
|
||||
else:
|
||||
remaining_time = (
|
||||
base_scheduler.tasks[0].time - datetime.now()
|
||||
).total_seconds()
|
||||
subject = f"休息 {format_time(remaining_time)},到{base_scheduler.tasks[0].time.strftime('%H:%M:%S')}开始工作"
|
||||
context = f"下一次任务:{base_scheduler.tasks[0].plan if len(base_scheduler.tasks[0].plan) != 0 else '空任务' if base_scheduler.tasks[0].type == '' else base_scheduler.tasks[0].type}"
|
||||
logger.info(context)
|
||||
logger.info(subject)
|
||||
base_scheduler.task_count += 1
|
||||
logger.info(f"第{base_scheduler.task_count}次任务结束")
|
||||
if remaining_time > 0:
|
||||
if remaining_time > 300:
|
||||
if config.conf.close_simulator_when_idle:
|
||||
restart_simulator(start=False)
|
||||
elif config.conf.exit_game_when_idle:
|
||||
config.device.exit()
|
||||
body = task_template.render(
|
||||
tasks=[
|
||||
obj.format(timezone_offset)
|
||||
for obj in base_scheduler.tasks
|
||||
],
|
||||
base_scheduler=base_scheduler,
|
||||
)
|
||||
send_message(body, subject)
|
||||
config.idle = True
|
||||
base_scheduler.sleep(remaining_time)
|
||||
config.idle = False
|
||||
base_scheduler.check_current_focus()
|
||||
|
||||
elif remaining_time > 0:
|
||||
now_time = datetime.now().time()
|
||||
try:
|
||||
min_time = datetime.strptime(
|
||||
config.conf.maa_rg_sleep_min, "%H:%M"
|
||||
).time()
|
||||
max_time = datetime.strptime(
|
||||
config.conf.maa_rg_sleep_max, "%H:%M"
|
||||
).time()
|
||||
if max_time < min_time:
|
||||
rg_sleep = now_time > min_time or now_time < max_time
|
||||
else:
|
||||
rg_sleep = min_time < now_time < max_time
|
||||
except ValueError:
|
||||
rg_sleep = False
|
||||
|
||||
if not rg_sleep:
|
||||
if config.conf.RA:
|
||||
config.recog.update()
|
||||
base_scheduler.back_to_index()
|
||||
ra_solver = ReclamationAlgorithm()
|
||||
ra_solver.run(base_scheduler.tasks[0].time - datetime.now())
|
||||
remaining_time = (
|
||||
base_scheduler.tasks[0].time - datetime.now()
|
||||
).total_seconds()
|
||||
elif config.conf.SF:
|
||||
config.recog.update()
|
||||
base_scheduler.back_to_index()
|
||||
sf_solver = SecretFront()
|
||||
sf_solver.run(base_scheduler.tasks[0].time - datetime.now())
|
||||
remaining_time = (
|
||||
base_scheduler.tasks[0].time - datetime.now()
|
||||
).total_seconds()
|
||||
|
||||
subject = f"休息 {format_time(remaining_time)},到{base_scheduler.tasks[0].time.strftime('%H:%M:%S')}开始工作"
|
||||
context = f"下一次任务:{base_scheduler.tasks[0].plan}"
|
||||
logger.info(context)
|
||||
logger.info(subject)
|
||||
base_scheduler.task_count += 1
|
||||
logger.info(f"第{base_scheduler.task_count}次任务结束")
|
||||
if remaining_time > 300:
|
||||
if config.conf.close_simulator_when_idle:
|
||||
restart_simulator(start=False)
|
||||
elif config.conf.exit_game_when_idle:
|
||||
config.device.exit()
|
||||
body = task_template.render(
|
||||
tasks=[
|
||||
obj.format(timezone_offset) for obj in base_scheduler.tasks
|
||||
],
|
||||
base_scheduler=base_scheduler,
|
||||
)
|
||||
send_message(body, subject)
|
||||
config.idle = True
|
||||
base_scheduler.sleep(remaining_time)
|
||||
config.idle = False
|
||||
base_scheduler.check_current_focus()
|
||||
|
||||
base_scheduler.run()
|
||||
reconnect_tries = 0
|
||||
except MowerExit:
|
||||
return
|
||||
except (ConnectionError, ConnectionAbortedError, AttributeError) as e:
|
||||
logger.exception(e)
|
||||
reconnect_tries += 1
|
||||
if reconnect_tries < reconnect_max_tries:
|
||||
logger.warning("出现错误.尝试重启Mower")
|
||||
connected = False
|
||||
while not connected:
|
||||
try:
|
||||
base_scheduler = initialize([], base_scheduler)
|
||||
break
|
||||
except MowerExit:
|
||||
raise
|
||||
except Exception as e:
|
||||
logger.exception(e)
|
||||
restart_simulator()
|
||||
config.device.client.check_server_alive()
|
||||
Session().connect()
|
||||
if config.conf.droidcast.enable:
|
||||
config.device.start_droidcast()
|
||||
if config.conf.touch_method == "scrcpy":
|
||||
config.device.control.scrcpy = Scrcpy(config.device.client)
|
||||
continue
|
||||
continue
|
||||
else:
|
||||
raise e
|
||||
except RuntimeError as e:
|
||||
logger.exception(f"程序出错-尝试重启模拟器->{e}")
|
||||
restart_simulator()
|
||||
config.device.client.check_server_alive()
|
||||
Session().connect()
|
||||
if config.conf.droidcast.enable:
|
||||
config.device.start_droidcast()
|
||||
if config.conf.touch_method == "scrcpy":
|
||||
config.device.control.scrcpy = Scrcpy(config.device.client)
|
||||
except Exception as e:
|
||||
logger.exception(f"程序出错--->{e}")
|
||||
config.recog.update()
|
||||
|
||||
|
||||
def save_state(op_data, file="state.json"):
|
||||
tmp_dir = get_path("@app/tmp")
|
||||
if not tmp_dir.exists():
|
||||
tmp_dir.mkdir()
|
||||
state_file = tmp_dir / file
|
||||
with open(state_file, "w") as f:
|
||||
if op_data is not None:
|
||||
json.dump(vars(op_data), f, default=str)
|
||||
|
||||
|
||||
def load_state(file="state.json"):
|
||||
state_file = get_path("@app/tmp") / file
|
||||
if not state_file.exists():
|
||||
return None
|
||||
with open(state_file, "r") as f:
|
||||
state = json.load(f)
|
||||
operators = {k: Expr(v).eval() for k, v in state["operators"].items()}
|
||||
for k, v in operators.items():
|
||||
if not v.time_stamp == "None":
|
||||
v.time_stamp = datetime.strptime(v.time_stamp, "%Y-%m-%d %H:%M:%S.%f")
|
||||
else:
|
||||
v.time_stamp = None
|
||||
logger.info("基建配置已加载!")
|
||||
return operators
|
78
mower/data/__init__.py
Normal file
78
mower/data/__init__.py
Normal file
|
@ -0,0 +1,78 @@
|
|||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from .. import __rootdir__
|
||||
|
||||
# agents list in Arknights
|
||||
agent_list = json.loads(Path(f"{__rootdir__}/data/agent.json").read_text("utf-8"))
|
||||
|
||||
# # agents base skills
|
||||
# agent_base_config = json.loads(
|
||||
# Path(f'{__rootdir__}/data/agent-base.json').read_text('utf-8'))
|
||||
|
||||
# name of each room in the basement
|
||||
base_room_list = json.loads(Path(f"{__rootdir__}/data/base.json").read_text("utf-8"))
|
||||
|
||||
# the camps to which the clue belongs
|
||||
clue_name = json.loads(Path(f"{__rootdir__}/data/clue.json").read_text("utf-8"))
|
||||
|
||||
# goods sold in shop
|
||||
shop_items = json.loads(Path(f"{__rootdir__}/data/shop.json").read_text("utf-8"))
|
||||
|
||||
agent_arrange_order = json.loads(
|
||||
Path(f"{__rootdir__}/data/arrange_order.json").read_text("utf-8")
|
||||
)
|
||||
|
||||
# chapter name in English
|
||||
chapter_list = json.loads(Path(f"{__rootdir__}/data/chapter.json").read_text("utf-8"))
|
||||
|
||||
# list of supported levels
|
||||
level_list = json.loads(Path(f"{__rootdir__}/data/level.json").read_text("utf-8"))
|
||||
|
||||
# open zones
|
||||
zone_list = json.loads(Path(f"{__rootdir__}/data/zone.json").read_text("utf-8"))
|
||||
|
||||
# list of supported weekly levels
|
||||
weekly_zones = json.loads(Path(f"{__rootdir__}/data/weekly.json").read_text("utf-8"))
|
||||
|
||||
# list of scene defined
|
||||
scene_list = json.loads(Path(f"{__rootdir__}/data/scene.json").read_text("utf-8"))
|
||||
|
||||
# recruit database
|
||||
recruit_agent = json.loads(Path(f"{__rootdir__}/data/recruit.json").read_text("utf-8"))
|
||||
|
||||
recruit_result = json.loads(
|
||||
Path(f"{__rootdir__}/data/recruit_result.json").read_text("utf-8")
|
||||
)
|
||||
|
||||
key_mapping = json.loads(
|
||||
Path(f"{__rootdir__}/data/key_mapping.json").read_text("utf-8")
|
||||
)
|
||||
|
||||
recruit_tag = ["资深干员", "高级资深干员"]
|
||||
for x in recruit_agent.values():
|
||||
recruit_tag += x["tags"]
|
||||
recruit_tag = list(set(recruit_tag))
|
||||
|
||||
"""
|
||||
按tag分类组合干员
|
||||
"""
|
||||
|
||||
agent_with_tags = {}
|
||||
for item in recruit_tag:
|
||||
agent_with_tags[item] = []
|
||||
for agent in recruit_agent:
|
||||
if {item} < set(recruit_agent[agent]["tags"]):
|
||||
agent_with_tags[item].append(
|
||||
{
|
||||
"id": agent,
|
||||
"name": recruit_agent[agent]["name"],
|
||||
"star": recruit_agent[agent]["stars"],
|
||||
}
|
||||
)
|
||||
|
||||
result_template_list = []
|
||||
|
||||
for item in recruit_result:
|
||||
for name in recruit_result[item]:
|
||||
result_template_list.append(name)
|
1382
mower/data/agent.json
Normal file
1382
mower/data/agent.json
Normal file
File diff suppressed because it is too large
Load diff
166
mower/data/arrange_order.json
Normal file
166
mower/data/arrange_order.json
Normal file
|
@ -0,0 +1,166 @@
|
|||
{
|
||||
"令": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"夕": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"稀音": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"巫恋": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"柏喙": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"龙舌兰": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"空弦": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"伺夜": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"绮良": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"但书": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"泡泡": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"火神": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"黑键": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"波登可": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"夜莺": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"菲亚梅塔": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"流明": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"纯烬艾雅法拉":[
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"冰酿":[
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"蜜莓": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"闪灵": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"杜林": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"褐果": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"车尔尼": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"安比尔": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"爱丽丝": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"桃金娘": [
|
||||
2,
|
||||
"false"
|
||||
],
|
||||
"红云": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"承曦格雷伊": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"乌有": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"图耶": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"鸿雪": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"孑": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"清道夫": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"临光": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"杜宾": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"重岳": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"坚雷": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"伊内丝": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"铅踝": [
|
||||
2,
|
||||
"true"
|
||||
],
|
||||
"泰拉大陆调查团": [
|
||||
2,
|
||||
"true"
|
||||
]
|
||||
}
|
20
mower/data/base.json
Normal file
20
mower/data/base.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
[
|
||||
"central",
|
||||
"meeting",
|
||||
"room_1_1",
|
||||
"room_1_2",
|
||||
"room_1_3",
|
||||
"dormitory_1",
|
||||
"factory",
|
||||
"room_2_1",
|
||||
"room_2_2",
|
||||
"room_2_3",
|
||||
"dormitory_2",
|
||||
"contact",
|
||||
"room_3_1",
|
||||
"room_3_2",
|
||||
"room_3_3",
|
||||
"dormitory_3",
|
||||
"train",
|
||||
"dormitory_4"
|
||||
]
|
5
mower/data/chapter.json
Normal file
5
mower/data/chapter.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
[
|
||||
"HOUR OF AN AWAKENING",
|
||||
"SHATTER OF A VISION",
|
||||
"SHADOW OF A DYING SUN"
|
||||
]
|
9
mower/data/clue.json
Normal file
9
mower/data/clue.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"莱茵生命": 1,
|
||||
"企鹅物流": 2,
|
||||
"黑钢": 3,
|
||||
"乌萨斯学生自治团": 4,
|
||||
"格拉斯哥帮": 5,
|
||||
"喀兰贸易": 6,
|
||||
"罗德岛制药": 7
|
||||
}
|
5161
mower/data/key_mapping.json
Normal file
5161
mower/data/key_mapping.json
Normal file
File diff suppressed because it is too large
Load diff
2114
mower/data/level.json
Normal file
2114
mower/data/level.json
Normal file
File diff suppressed because it is too large
Load diff
1439
mower/data/recruit.json
Normal file
1439
mower/data/recruit.json
Normal file
File diff suppressed because it is too large
Load diff
152
mower/data/recruit_result.json
Normal file
152
mower/data/recruit_result.json
Normal file
|
@ -0,0 +1,152 @@
|
|||
{
|
||||
"4": [
|
||||
"char_211_adnach",
|
||||
"char_210_stward",
|
||||
"char_127_estell",
|
||||
"char_102_texas",
|
||||
"char_373_lionhd",
|
||||
"char_145_prove",
|
||||
"char_326_glacus",
|
||||
"char_112_siege",
|
||||
"char_134_ifrit",
|
||||
"char_213_mostma",
|
||||
"char_350_surtr"
|
||||
],
|
||||
"3": [
|
||||
"char_503_rang",
|
||||
"char_009_12fce",
|
||||
"char_208_melan",
|
||||
"char_281_popka",
|
||||
"char_122_beagle",
|
||||
"char_124_kroos",
|
||||
"char_212_ansel",
|
||||
"char_253_greyy",
|
||||
"char_235_jesica",
|
||||
"char_302_glaze",
|
||||
"char_149_scave",
|
||||
"char_151_myrtle",
|
||||
"char_298_susuro",
|
||||
"char_181_flower",
|
||||
"char_150_snakek",
|
||||
"char_258_podego",
|
||||
"char_128_plosis",
|
||||
"char_308_swire",
|
||||
"char_155_tiger",
|
||||
"char_143_ghost",
|
||||
"char_356_broca",
|
||||
"char_279_excu",
|
||||
"char_346_aosta",
|
||||
"char_171_bldsk",
|
||||
"char_158_milu",
|
||||
"char_218_cuttle",
|
||||
"char_241_panda",
|
||||
"char_103_angel",
|
||||
"char_2013_cerber",
|
||||
"char_248_mgllan",
|
||||
"char_202_demkni",
|
||||
"char_188_helage",
|
||||
"char_283_midn",
|
||||
"char_263_skadi"
|
||||
],
|
||||
"2": [
|
||||
"char_502_nblade",
|
||||
"char_500_noirc",
|
||||
"char_501_durin",
|
||||
"char_240_wyvern",
|
||||
"char_192_falco",
|
||||
"char_284_spot",
|
||||
"char_121_lava",
|
||||
"char_120_hibisc",
|
||||
"char_278_orchid",
|
||||
"char_141_nights",
|
||||
"char_109_fmout",
|
||||
"char_328_cammou",
|
||||
"char_126_shotst",
|
||||
"char_190_clour",
|
||||
"char_118_yuki",
|
||||
"char_366_acdrop",
|
||||
"char_290_vigna",
|
||||
"char_130_doberm",
|
||||
"char_289_gyuki",
|
||||
"char_193_frostl",
|
||||
"char_185_frncat",
|
||||
"char_301_cutter",
|
||||
"char_271_spikes",
|
||||
"char_236_rope",
|
||||
"char_117_myrrh",
|
||||
"char_385_finlpp",
|
||||
"char_199_yak",
|
||||
"char_381_bubble",
|
||||
"char_196_sunbr",
|
||||
"char_183_skgoat",
|
||||
"char_277_sqrrel",
|
||||
"char_115_headbr",
|
||||
"char_349_chiave",
|
||||
"char_261_sddrag",
|
||||
"char_401_elysm",
|
||||
"char_415_flint",
|
||||
"char_294_ayer",
|
||||
"char_274_astesi",
|
||||
"char_129_bluep",
|
||||
"char_204_platnm",
|
||||
"char_367_swllow",
|
||||
"char_365_aprl",
|
||||
"char_219_meteo",
|
||||
"char_379_sesa",
|
||||
"char_306_leizi",
|
||||
"char_344_beewax",
|
||||
"char_242_otter",
|
||||
"char_108_silent",
|
||||
"char_436_whispr",
|
||||
"char_148_nearl",
|
||||
"char_243_waaifu",
|
||||
"char_107_liskam",
|
||||
"char_201_moeshd",
|
||||
"char_163_hpsts",
|
||||
"char_378_asbest",
|
||||
"char_173_slchan",
|
||||
"char_174_slbell",
|
||||
"char_254_vodfox",
|
||||
"char_195_glassb",
|
||||
"char_343_tknogi",
|
||||
"char_215_mantic",
|
||||
"char_197_poca",
|
||||
"char_222_bpipe",
|
||||
"char_358_lisa",
|
||||
"char_250_phatom",
|
||||
"char_400_weedy",
|
||||
"char_147_shining",
|
||||
"char_179_cgbird",
|
||||
"char_136_hsguma",
|
||||
"char_423_blemsh",
|
||||
"char_311_mudrok",
|
||||
"char_416_zumama",
|
||||
"char_172_svrash",
|
||||
"char_293_thorns",
|
||||
"char_282_catap",
|
||||
"char_137_brownb",
|
||||
"char_347_jaksel",
|
||||
"char_164_nightm"
|
||||
],
|
||||
"1": [
|
||||
"char_123_fang",
|
||||
"char_133_mm",
|
||||
"char_337_utage",
|
||||
"char_237_gravel",
|
||||
"char_272_strong",
|
||||
"char_226_hmau",
|
||||
"char_144_red",
|
||||
"char_340_shwaz",
|
||||
"char_225_haak",
|
||||
"char_010_chen",
|
||||
"char_017_huang"
|
||||
],
|
||||
"-1": [
|
||||
"char_285_medic2",
|
||||
"char_286_cast3",
|
||||
"char_376_therex",
|
||||
"char_4000_jnight",
|
||||
"char_4093_frston",
|
||||
"char_4136_phonor"
|
||||
]
|
||||
}
|
635
mower/data/scene.json
Normal file
635
mower/data/scene.json
Normal file
|
@ -0,0 +1,635 @@
|
|||
{
|
||||
"-2": {
|
||||
"label": "UNKNOWN_WITH_NAVBAR",
|
||||
"comment": "有导航栏的未知场景"
|
||||
},
|
||||
"-1": {
|
||||
"label": "UNKNOWN",
|
||||
"comment": "未知"
|
||||
},
|
||||
"0": {
|
||||
"label": "UNDEFINED",
|
||||
"comment": "未定义"
|
||||
},
|
||||
"1": {
|
||||
"label": "INDEX",
|
||||
"comment": "首页"
|
||||
},
|
||||
"2": {
|
||||
"label": "MATERIEL",
|
||||
"comment": "物资领取确认"
|
||||
},
|
||||
"3": {
|
||||
"label": "ANNOUNCEMENT",
|
||||
"comment": "公告"
|
||||
},
|
||||
"4": {
|
||||
"label": "MAIL",
|
||||
"comment": "邮件信箱"
|
||||
},
|
||||
"5": {
|
||||
"label": "NAVIGATION_BAR",
|
||||
"comment": "导航栏返回"
|
||||
},
|
||||
"6": {
|
||||
"label": "UPGRADE",
|
||||
"comment": "升级"
|
||||
},
|
||||
"7": {
|
||||
"label": "SKIP",
|
||||
"comment": "开包动画"
|
||||
},
|
||||
"8": {
|
||||
"label": "DOUBLE_CONFIRM",
|
||||
"comment": "二次确认(未知)"
|
||||
},
|
||||
"9": {
|
||||
"label": "CONNECTING",
|
||||
"comment": "正在提交反馈至神经"
|
||||
},
|
||||
"10": {
|
||||
"label": "NETWORK_CHECK",
|
||||
"comment": "网络拨测"
|
||||
},
|
||||
"11": {
|
||||
"label": "EXIT_GAME",
|
||||
"comment": "退出游戏"
|
||||
},
|
||||
"12": {
|
||||
"label": "DOWNLOAD_VOICE_RESOURCES",
|
||||
"comment": "检测到有未下载的语音资源"
|
||||
},
|
||||
"13": {
|
||||
"label": "AGREEMENT_UPDATE",
|
||||
"comment": "协议更新"
|
||||
},
|
||||
"14": {
|
||||
"label": "NOTICE",
|
||||
"comment": "说明"
|
||||
},
|
||||
"15": {
|
||||
"label": "INDEX_ORIGINITE",
|
||||
"comment": "首页源石换玉"
|
||||
},
|
||||
"16": {
|
||||
"label": "INDEX_SANITY",
|
||||
"comment": "首页源石换理智"
|
||||
},
|
||||
"17": {
|
||||
"label": "STORY",
|
||||
"comment": "作战剧情"
|
||||
},
|
||||
"18": {
|
||||
"label": "STORY_SKIP",
|
||||
"comment": "作战剧情"
|
||||
},
|
||||
"101": {
|
||||
"label": "LOGIN_MAIN",
|
||||
"comment": "登录页面"
|
||||
},
|
||||
"102": {
|
||||
"label": "LOGIN_INPUT",
|
||||
"comment": "登录页面(输入)"
|
||||
},
|
||||
"103": {
|
||||
"label": "LOGIN_QUICKLY",
|
||||
"comment": "登录页面(快速)"
|
||||
},
|
||||
"104": {
|
||||
"label": "LOGIN_LOADING",
|
||||
"comment": "登录中"
|
||||
},
|
||||
"105": {
|
||||
"label": "LOGIN_START",
|
||||
"comment": "启动"
|
||||
},
|
||||
"106": {
|
||||
"label": "LOGIN_ANNOUNCE",
|
||||
"comment": "启动界面公告"
|
||||
},
|
||||
"107": {
|
||||
"label": "LOGIN_REGISTER",
|
||||
"comment": "注册"
|
||||
},
|
||||
"108": {
|
||||
"label": "LOGIN_CAPTCHA",
|
||||
"comment": "滑动验证码"
|
||||
},
|
||||
"109": {
|
||||
"label": "LOGIN_BILIBILI",
|
||||
"comment": "B 服登录界面"
|
||||
},
|
||||
"110": {
|
||||
"label": "LOGIN_MAIN_NOENTRY",
|
||||
"comment": "登录页面(无按钮入口)"
|
||||
},
|
||||
"111": {
|
||||
"label": "LOGIN_CADPA_DETAIL",
|
||||
"comment": "游戏适龄提示"
|
||||
},
|
||||
"112": {
|
||||
"label": "CLOSE_MINE",
|
||||
"comment": "产业合作洽谈会"
|
||||
},
|
||||
"113": {
|
||||
"label": "CHECK_IN",
|
||||
"comment": "4周年签到"
|
||||
},
|
||||
"114": {
|
||||
"label": "LOGIN_NEW",
|
||||
"comment": "新登陆界面"
|
||||
},
|
||||
"116": {
|
||||
"label": "LOGIN_BILIBILI_PRIVACY",
|
||||
"comment": "B服隐私政策提示"
|
||||
},
|
||||
"201": {
|
||||
"label": "INFRA_MAIN",
|
||||
"comment": "基建全局视角"
|
||||
},
|
||||
"202": {
|
||||
"label": "INFRA_TODOLIST",
|
||||
"comment": "基建待办事项"
|
||||
},
|
||||
"203": {
|
||||
"label": "INFRA_CONFIDENTIAL",
|
||||
"comment": "线索主界面"
|
||||
},
|
||||
"204": {
|
||||
"label": "INFRA_ARRANGE",
|
||||
"comment": "基建干员进驻总览"
|
||||
},
|
||||
"205": {
|
||||
"label": "INFRA_DETAILS",
|
||||
"comment": "基建放大查看"
|
||||
},
|
||||
"206": {
|
||||
"label": "INFRA_ARRANGE_CONFIRM",
|
||||
"comment": "基建干员排班二次确认"
|
||||
},
|
||||
"207": {
|
||||
"label": "INFRA_ARRANGE_ORDER",
|
||||
"comment": "干员进驻设施排序界面"
|
||||
},
|
||||
"208": {
|
||||
"label": "RIIC_REPORT",
|
||||
"comment": "副手简报界面"
|
||||
},
|
||||
"209": {
|
||||
"label": "CTRLCENTER_ASSISTANT",
|
||||
"comment": "控制中枢界面"
|
||||
},
|
||||
"210": {
|
||||
"label": "RIIC_OPERATOR_SELECT",
|
||||
"comment": "干员选择界面"
|
||||
},
|
||||
"211": {
|
||||
"label": "CLUE_DAILY",
|
||||
"comment": "每日线索领取"
|
||||
},
|
||||
"212": {
|
||||
"label": "CLUE_RECEIVE",
|
||||
"comment": "接收线索"
|
||||
},
|
||||
"213": {
|
||||
"label": "CLUE_GIVE_AWAY",
|
||||
"comment": "传递线索"
|
||||
},
|
||||
"214": {
|
||||
"label": "CLUE_SUMMARY",
|
||||
"comment": "线索交流活动汇总"
|
||||
},
|
||||
"215": {
|
||||
"label": "CLUE_PLACE",
|
||||
"comment": "放置线索"
|
||||
},
|
||||
"216": {
|
||||
"label": "TRAIN_SKILL_UPGRADE",
|
||||
"comment": "技能升级"
|
||||
},
|
||||
"217": {
|
||||
"label": "TRAIN_MAIN",
|
||||
"comment": "训练室主界面"
|
||||
},
|
||||
"218": {
|
||||
"label": "TRAIN_SKILL_UPGRADE_ERROR",
|
||||
"comment": "技能升级失败"
|
||||
},
|
||||
"219": {
|
||||
"label": "TRAIN_SKILL_SELECT",
|
||||
"comment": "选择技能"
|
||||
},
|
||||
"220": {
|
||||
"label": "TRAIN_FINISH",
|
||||
"comment": "技能升级结算"
|
||||
},
|
||||
"221": {
|
||||
"label": "ORDER_LIST",
|
||||
"comment": "贸易站订单列表"
|
||||
},
|
||||
"222": {
|
||||
"label": "DRONE_ACCELERATE",
|
||||
"comment": "无人机加速对话框"
|
||||
},
|
||||
"223": {
|
||||
"label": "FACTORY_ROOMS",
|
||||
"comment": "制造站设施列表"
|
||||
},
|
||||
"224": {
|
||||
"label": "LEAVE_INFRASTRUCTURE",
|
||||
"comment": "离开基建"
|
||||
},
|
||||
"225": {
|
||||
"label": "SANITY_CHARGE",
|
||||
"comment": "急速充能"
|
||||
},
|
||||
"226": {
|
||||
"label": "SANITY_CHARGE_DIALOG",
|
||||
"comment": "急速充能对话框"
|
||||
},
|
||||
"227": {
|
||||
"label": "CHOOSE_PRODUCT",
|
||||
"comment": "制造站产物选择"
|
||||
},
|
||||
"228": {
|
||||
"label": "SWITCH_ORDER",
|
||||
"comment": "订单切换选择"
|
||||
},
|
||||
|
||||
"229": {
|
||||
"label": "PRODUCT_SWITCHING_CONFIRM",
|
||||
"comment": "产物更改确认"
|
||||
},
|
||||
"301": {
|
||||
"label": "BUSINESS_CARD",
|
||||
"comment": "个人名片"
|
||||
},
|
||||
"302": {
|
||||
"label": "FRIEND_LIST",
|
||||
"comment": "好友列表"
|
||||
},
|
||||
"303": {
|
||||
"label": "FRIEND_VISITING",
|
||||
"comment": "基建内访问好友"
|
||||
},
|
||||
"304": {
|
||||
"label": "BACK_TO_FRIEND_LIST",
|
||||
"comment": "返回好友列表"
|
||||
},
|
||||
"401": {
|
||||
"label": "MISSION_DAILY",
|
||||
"comment": "日常任务"
|
||||
},
|
||||
"402": {
|
||||
"label": "MISSION_WEEKLY",
|
||||
"comment": "周常任务"
|
||||
},
|
||||
"403": {
|
||||
"label": "MISSION_TRAINEE",
|
||||
"comment": "见习任务"
|
||||
},
|
||||
"501": {
|
||||
"label": "TERMINAL_MAIN",
|
||||
"comment": "终端主界面"
|
||||
},
|
||||
"502": {
|
||||
"label": "TERMINAL_MAIN_THEME",
|
||||
"comment": "主题曲"
|
||||
},
|
||||
"503": {
|
||||
"label": "TERMINAL_EPISODE",
|
||||
"comment": "插曲"
|
||||
},
|
||||
"504": {
|
||||
"label": "TERMINAL_BIOGRAPHY",
|
||||
"comment": "别传"
|
||||
},
|
||||
"505": {
|
||||
"label": "TERMINAL_COLLECTION",
|
||||
"comment": "资源收集"
|
||||
},
|
||||
"506": {
|
||||
"label": "TERMINAL_REGULAR",
|
||||
"comment": "常态事务"
|
||||
},
|
||||
"507": {
|
||||
"label": "TERMINAL_LONGTERM",
|
||||
"comment": "长期探索"
|
||||
},
|
||||
"508": {
|
||||
"label": "TERMINAL_PERIODIC",
|
||||
"comment": "周期挑战"
|
||||
},
|
||||
"601": {
|
||||
"label": "OPERATOR_CHOOSE_LEVEL",
|
||||
"comment": "作战前,关卡未选定"
|
||||
},
|
||||
"602": {
|
||||
"label": "OPERATOR_BEFORE",
|
||||
"comment": "作战前,关卡已选定"
|
||||
},
|
||||
"603": {
|
||||
"label": "OPERATOR_SELECT",
|
||||
"comment": "作战前,正在编队"
|
||||
},
|
||||
"604": {
|
||||
"label": "OPERATOR_ONGOING",
|
||||
"comment": "代理作战"
|
||||
},
|
||||
"605": {
|
||||
"label": "OPERATOR_FINISH",
|
||||
"comment": "作战结束"
|
||||
},
|
||||
"607": {
|
||||
"label": "OPERATOR_RECOVER_POTION",
|
||||
"comment": "恢复理智(药剂)"
|
||||
},
|
||||
"608": {
|
||||
"label": "OPERATOR_RECOVER_ORIGINITE",
|
||||
"comment": "恢复理智(源石)"
|
||||
},
|
||||
"609": {
|
||||
"label": "OPERATOR_DROP",
|
||||
"comment": "掉落物品详细说明页"
|
||||
},
|
||||
"610": {
|
||||
"label": "OPERATOR_ELIMINATE",
|
||||
"comment": "剿灭作战前,关卡已选定"
|
||||
},
|
||||
"611": {
|
||||
"label": "OPERATOR_ELIMINATE_FINISH",
|
||||
"comment": "剿灭作战结束"
|
||||
},
|
||||
"612": {
|
||||
"label": "OPERATOR_GIVEUP",
|
||||
"comment": "放弃行动"
|
||||
},
|
||||
"613": {
|
||||
"label": "OPERATOR_FAILED",
|
||||
"comment": "代理作战失败"
|
||||
},
|
||||
"614": {
|
||||
"label": "OPERATOR_ELIMINATE_AGENCY",
|
||||
"comment": "剿灭代理卡使用确认"
|
||||
},
|
||||
"615": {
|
||||
"label": "OPERATOR_SUPPORT",
|
||||
"comment": "借助战"
|
||||
},
|
||||
"616": {
|
||||
"label": "OPERATOR_SUPPORT_AGENT",
|
||||
"comment": "使用助战干员界面"
|
||||
},
|
||||
"617": {
|
||||
"label": "OPERATOR_AGENT_SELECT",
|
||||
"comment": "作战干员选择界面"
|
||||
},
|
||||
"618": {
|
||||
"label": "OPERATOR_FIGHT",
|
||||
"comment": "作战中"
|
||||
},
|
||||
"701": {
|
||||
"label": "SHOP_OTHERS",
|
||||
"comment": "商店其它界面"
|
||||
},
|
||||
"702": {
|
||||
"label": "SHOP_CREDIT",
|
||||
"comment": "信用交易所"
|
||||
},
|
||||
"703": {
|
||||
"label": "SHOP_CREDIT_CONFIRM",
|
||||
"comment": "信用交易所兑换确认"
|
||||
},
|
||||
"704": {
|
||||
"label": "SHOP_ASSIST",
|
||||
"comment": "助战使用次数"
|
||||
},
|
||||
"705": {
|
||||
"label": "SHOP_UNLOCK_SCHEDULE",
|
||||
"comment": "累计信用消费"
|
||||
},
|
||||
"706": {
|
||||
"label": "SHOP_TOKEN",
|
||||
"comment": "凭证交易所"
|
||||
},
|
||||
"707": {
|
||||
"label": "SHOP_TRADE_TOKEN",
|
||||
"comment": "兑换溢出信物"
|
||||
},
|
||||
"801": {
|
||||
"label": "RECRUIT_MAIN",
|
||||
"comment": "公招主界面"
|
||||
},
|
||||
"802": {
|
||||
"label": "RECRUIT_TAGS",
|
||||
"comment": "挑选标签时"
|
||||
},
|
||||
"803": {
|
||||
"label": "RECRUIT_AGENT",
|
||||
"comment": "开包干员展示"
|
||||
},
|
||||
"804": {
|
||||
"label": "REFRESH_TAGS",
|
||||
"comment": "刷新词条"
|
||||
},
|
||||
"901": {
|
||||
"label": "RA_MAIN",
|
||||
"comment": "生息演算首页"
|
||||
},
|
||||
"902": {
|
||||
"label": "RA_GUIDE_ENTRANCE",
|
||||
"comment": "剧情入口:众人会聚之地(后舍)"
|
||||
},
|
||||
"903": {
|
||||
"label": "RA_GUIDE_DIALOG",
|
||||
"comment": "剧情对话"
|
||||
},
|
||||
"904": {
|
||||
"label": "RA_BATTLE_ENTRANCE",
|
||||
"comment": "作战入口"
|
||||
},
|
||||
"905": {
|
||||
"label": "RA_BATTLE",
|
||||
"comment": "作战中"
|
||||
},
|
||||
"906": {
|
||||
"label": "RA_BATTLE_EXIT_CONFIRM",
|
||||
"comment": "作战退出确认对话框"
|
||||
},
|
||||
"907": {
|
||||
"label": "RA_GUIDE_BATTLE_ENTRANCE",
|
||||
"comment": "剧情作战入口"
|
||||
},
|
||||
"908": {
|
||||
"label": "RA_BATTLE_COMPLETE",
|
||||
"comment": "作战结算"
|
||||
},
|
||||
"909": {
|
||||
"label": "RA_MAP",
|
||||
"comment": "地图"
|
||||
},
|
||||
"910": {
|
||||
"label": "RA_SQUAD_EDIT",
|
||||
"comment": "作战分队编辑"
|
||||
},
|
||||
"911": {
|
||||
"label": "RA_KITCHEN",
|
||||
"comment": "烹饪台"
|
||||
},
|
||||
"912": {
|
||||
"label": "RA_GET_ITEM",
|
||||
"comment": "获得物资"
|
||||
},
|
||||
"913": {
|
||||
"label": "RA_SQUAD_EDIT_DIALOG",
|
||||
"comment": "作战分队不携带干员确认"
|
||||
},
|
||||
"914": {
|
||||
"label": "RA_DAY_COMPLETE",
|
||||
"comment": "生息日结算"
|
||||
},
|
||||
"915": {
|
||||
"label": "RA_DAY_DETAIL",
|
||||
"comment": "当日详细信息"
|
||||
},
|
||||
"916": {
|
||||
"label": "RA_WASTE_TIME_DIALOG",
|
||||
"comment": "跳过行动确认对话框"
|
||||
},
|
||||
"917": {
|
||||
"label": "RA_PERIOD_COMPLETE",
|
||||
"comment": "生存周期完成"
|
||||
},
|
||||
"918": {
|
||||
"label": "RA_DELETE_SAVE_DIALOG",
|
||||
"comment": "存档删除确认"
|
||||
},
|
||||
"919": {
|
||||
"label": "RA_ADVENTURE",
|
||||
"comment": "奇遇"
|
||||
},
|
||||
"920": {
|
||||
"label": "RA_NOTICE",
|
||||
"comment": "一张便条"
|
||||
},
|
||||
"921": {
|
||||
"label": "RA_INSUFFICIENT_DRINK",
|
||||
"comment": "能量饮料不足"
|
||||
},
|
||||
"922": {
|
||||
"label": "RA_SQUAD_ABNORMAL",
|
||||
"comment": "当前编队中存在异常情况"
|
||||
},
|
||||
"1001": {
|
||||
"label": "SSS_MAIN",
|
||||
"comment": "保全作战首页"
|
||||
},
|
||||
"1002": {
|
||||
"label": "SSS_START",
|
||||
"comment": "开始保全作战"
|
||||
},
|
||||
"1003": {
|
||||
"label": "SSS_EC",
|
||||
"comment": "定向导能元件"
|
||||
},
|
||||
"1004": {
|
||||
"label": "SSS_DEVICE",
|
||||
"comment": "战术装备配置"
|
||||
},
|
||||
"1005": {
|
||||
"label": "SSS_SQUAD",
|
||||
"comment": "首批作战小队选任"
|
||||
},
|
||||
"1006": {
|
||||
"label": "SSS_DEPLOY",
|
||||
"comment": "开始部署"
|
||||
},
|
||||
"1007": {
|
||||
"label": "SSS_REDEPLOY",
|
||||
"comment": "重新部署"
|
||||
},
|
||||
"1008": {
|
||||
"label": "SSS_EXIT_CONFIRM",
|
||||
"comment": "结束当前保全作战"
|
||||
},
|
||||
"1009": {
|
||||
"label": "SSS_TERMINATED",
|
||||
"comment": "保全作战终止"
|
||||
},
|
||||
"1101": {
|
||||
"label": "SF_ENTRANCE",
|
||||
"comment": "隐秘战线入口"
|
||||
},
|
||||
"1102": {
|
||||
"label": "SF_EXIT",
|
||||
"comment": "暂离行动"
|
||||
},
|
||||
"1103": {
|
||||
"label": "SF_SELECT_TEAM",
|
||||
"comment": "选择小队"
|
||||
},
|
||||
"1104": {
|
||||
"label": "SF_CONTINUE",
|
||||
"comment": "继续前进"
|
||||
},
|
||||
"1105": {
|
||||
"label": "SF_SELECT",
|
||||
"comment": "选择路线"
|
||||
},
|
||||
"1106": {
|
||||
"label": "SF_ACTIONS",
|
||||
"comment": "行动选项"
|
||||
},
|
||||
"1107": {
|
||||
"label": "SF_RESULT",
|
||||
"comment": "行动结果"
|
||||
},
|
||||
"1108": {
|
||||
"label": "SF_EVENT",
|
||||
"comment": "应对危机事件"
|
||||
},
|
||||
"1109": {
|
||||
"label": "SF_TEAM_PASS",
|
||||
"comment": "小队通过危机事件"
|
||||
},
|
||||
"1110": {
|
||||
"label": "SF_CLICK_ANYWHERE",
|
||||
"comment": "点击任意处继续"
|
||||
},
|
||||
"1111": {
|
||||
"label": "SF_END",
|
||||
"comment": "抵达终点"
|
||||
},
|
||||
"1201": {
|
||||
"label": "HEADHUNTING",
|
||||
"comment": "干员寻访"
|
||||
},
|
||||
"1301": {
|
||||
"label": "DEPOT",
|
||||
"comment": "仓库"
|
||||
},
|
||||
"1401": {
|
||||
"label": "ACTIVITY_MAIN",
|
||||
"comment": "活动主界面"
|
||||
},
|
||||
"1402": {
|
||||
"label": "ACTIVITY_CHOOSE_LEVEL",
|
||||
"comment": "活动关选择"
|
||||
},
|
||||
"1501": {
|
||||
"label": "SIGN_IN_DAILY",
|
||||
"comment": "签到活动"
|
||||
},
|
||||
"1502": {
|
||||
"label": "MOON_FESTIVAL",
|
||||
"comment": "月饼"
|
||||
},
|
||||
"9998": {
|
||||
"label": "LOADING",
|
||||
"comment": "场景跳转时的等待界面"
|
||||
},
|
||||
"9999": {
|
||||
"label": "CONFIRM",
|
||||
"comment": "确认对话框"
|
||||
}
|
||||
}
|
25
mower/data/shop.json
Normal file
25
mower/data/shop.json
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"招聘许可": "100.00",
|
||||
"龙门币": "36.64",
|
||||
"技巧概要·卷2": "34.32",
|
||||
"初级作战记录": "29.38",
|
||||
"基础作战记录": "29.38",
|
||||
"技巧概要·卷1": "29.36",
|
||||
"异铁": "29.09",
|
||||
"装置": "29.02",
|
||||
"酮凝集": "28.89",
|
||||
"固源岩": "28.69",
|
||||
"糖": "28.46",
|
||||
"聚酸酯": "28.29",
|
||||
"赤金": "24.49",
|
||||
"代糖": "21.73",
|
||||
"异铁碎片": "21.70",
|
||||
"酯原料": "21.62",
|
||||
"双酮": "21.56",
|
||||
"破损装置": "21.07",
|
||||
"源岩": "19.39",
|
||||
"碳": "15.31",
|
||||
"碳素": "11.37",
|
||||
"家具零件": "0.00",
|
||||
"加急许可": "0.00"
|
||||
}
|
170
mower/data/stage_data.json
Normal file
170
mower/data/stage_data.json
Normal file
|
@ -0,0 +1,170 @@
|
|||
[
|
||||
{
|
||||
"id": "",
|
||||
"name": "上次作战",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 1,
|
||||
"周三": 1,
|
||||
"周四": 1,
|
||||
"周五": 1,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗":36
|
||||
},
|
||||
{
|
||||
"id": "1-7",
|
||||
"name": "1-7",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 1,
|
||||
"周三": 1,
|
||||
"周四": 1,
|
||||
"周五": 1,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗":6
|
||||
},
|
||||
{
|
||||
"id": "Annihilation",
|
||||
"name": "剿灭",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 1,
|
||||
"周三": 1,
|
||||
"周四": 1,
|
||||
"周五": 1,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗":25
|
||||
},
|
||||
{
|
||||
"id": "LS-6",
|
||||
"name": "经验书",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 1,
|
||||
"周三": 1,
|
||||
"周四": 1,
|
||||
"周五": 1,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗": 36
|
||||
},
|
||||
{
|
||||
"id": "CE-6",
|
||||
"name": "龙门币",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 0,
|
||||
"周二": 1,
|
||||
"周三": 0,
|
||||
"周四": 1,
|
||||
"周五": 0,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗": 36
|
||||
},
|
||||
{
|
||||
"id": "AP-5",
|
||||
"name": "红票",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 0,
|
||||
"周三": 0,
|
||||
"周四": 1,
|
||||
"周五": 0,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗": 30
|
||||
},
|
||||
{
|
||||
"id": "SK-5",
|
||||
"name": "碳条",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 0,
|
||||
"周三": 1,
|
||||
"周四": 0,
|
||||
"周五": 1,
|
||||
"周六": 1,
|
||||
"周日": 0,
|
||||
"理智消耗": 30
|
||||
},
|
||||
{
|
||||
"id": "CA-5",
|
||||
"name": "技能书",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 0,
|
||||
"周二": 1,
|
||||
"周三": 1,
|
||||
"周四": 0,
|
||||
"周五": 1,
|
||||
"周六": 0,
|
||||
"周日": 1,
|
||||
"理智消耗": 30
|
||||
},
|
||||
{
|
||||
"id": "PR-A-2",
|
||||
"name": "重装医疗2",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 0,
|
||||
"周三": 0,
|
||||
"周四": 1,
|
||||
"周五": 1,
|
||||
"周六": 0,
|
||||
"周日": 1,
|
||||
"理智消耗": 36
|
||||
},
|
||||
{
|
||||
"id": "PR-B-2",
|
||||
"name": "狙击术士2",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 1,
|
||||
"周二": 1,
|
||||
"周三": 0,
|
||||
"周四": 0,
|
||||
"周五": 1,
|
||||
"周六": 1,
|
||||
"周日": 0,
|
||||
"理智消耗": 36
|
||||
},
|
||||
{
|
||||
"id": "PR-C-2",
|
||||
"name": "先锋辅助2",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 0,
|
||||
"周二": 0,
|
||||
"周三": 1,
|
||||
"周四": 1,
|
||||
"周五": 0,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗": 36
|
||||
},
|
||||
{
|
||||
"id": "PR-D-2",
|
||||
"name": "近卫特种2",
|
||||
"drop": "",
|
||||
"end": -1,
|
||||
"周一": 0,
|
||||
"周二": 1,
|
||||
"周三": 1,
|
||||
"周四": 0,
|
||||
"周五": 0,
|
||||
"周六": 1,
|
||||
"周日": 1,
|
||||
"理智消耗": 36
|
||||
}
|
||||
]
|
11
mower/data/weekly.json
Normal file
11
mower/data/weekly.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
[
|
||||
"固若金汤",
|
||||
"摧枯拉朽",
|
||||
"势不可挡",
|
||||
"身先士卒",
|
||||
"粉碎防御",
|
||||
"空中威胁",
|
||||
"战术演习",
|
||||
"资源保障",
|
||||
"货物运送"
|
||||
]
|
200
mower/data/zone.json
Normal file
200
mower/data/zone.json
Normal file
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"main_0": {
|
||||
"type": "MAINLINE",
|
||||
"name": "黑暗时代·上",
|
||||
"chapterIndex": 0,
|
||||
"zoneIndex": 0
|
||||
},
|
||||
"main_1": {
|
||||
"type": "MAINLINE",
|
||||
"name": "黑暗时代·下",
|
||||
"chapterIndex": 0,
|
||||
"zoneIndex": 1
|
||||
},
|
||||
"main_2": {
|
||||
"type": "MAINLINE",
|
||||
"name": "异卵同生",
|
||||
"chapterIndex": 0,
|
||||
"zoneIndex": 2
|
||||
},
|
||||
"main_3": {
|
||||
"type": "MAINLINE",
|
||||
"name": "二次呼吸",
|
||||
"chapterIndex": 0,
|
||||
"zoneIndex": 3
|
||||
},
|
||||
"main_4": {
|
||||
"type": "MAINLINE",
|
||||
"name": "急性衰竭",
|
||||
"chapterIndex": 1,
|
||||
"zoneIndex": 4
|
||||
},
|
||||
"main_5": {
|
||||
"type": "MAINLINE",
|
||||
"name": "靶向药物",
|
||||
"chapterIndex": 1,
|
||||
"zoneIndex": 5
|
||||
},
|
||||
"main_6": {
|
||||
"type": "MAINLINE",
|
||||
"name": "局部坏死",
|
||||
"chapterIndex": 1,
|
||||
"zoneIndex": 6
|
||||
},
|
||||
"main_7": {
|
||||
"type": "MAINLINE",
|
||||
"name": "苦难摇篮",
|
||||
"chapterIndex": 1,
|
||||
"zoneIndex": 7
|
||||
},
|
||||
"main_8": {
|
||||
"type": "MAINLINE",
|
||||
"name": "怒号光明",
|
||||
"chapterIndex": 1,
|
||||
"zoneIndex": 8
|
||||
},
|
||||
"main_9": {
|
||||
"type": "MAINLINE",
|
||||
"name": "风暴瞭望",
|
||||
"chapterIndex": 2,
|
||||
"zoneIndex": 9
|
||||
},
|
||||
"main_10": {
|
||||
"type": "MAINLINE",
|
||||
"name": "破碎日冕",
|
||||
"chapterIndex": 2,
|
||||
"zoneIndex": 10
|
||||
},
|
||||
"weekly_1": {
|
||||
"type": "WEEKLY",
|
||||
"name": "固若金汤",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_2": {
|
||||
"type": "WEEKLY",
|
||||
"name": "摧枯拉朽",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_3": {
|
||||
"type": "WEEKLY",
|
||||
"name": "势不可挡",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_4": {
|
||||
"type": "WEEKLY",
|
||||
"name": "身先士卒",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_5": {
|
||||
"type": "WEEKLY",
|
||||
"name": "粉碎防御",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_6": {
|
||||
"type": "WEEKLY",
|
||||
"name": "空中威胁",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_7": {
|
||||
"type": "WEEKLY",
|
||||
"name": "战术演习",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_8": {
|
||||
"type": "WEEKLY",
|
||||
"name": "资源保障",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"weekly_9": {
|
||||
"type": "WEEKLY",
|
||||
"name": "货物运送",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": null
|
||||
},
|
||||
"permanent_sub_1_Darknights_Memoir": {
|
||||
"type": "BRANCHLINE",
|
||||
"name": "生于黑夜",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 1
|
||||
},
|
||||
"permanent_sub_2_A_Walk_In_The_Dust": {
|
||||
"type": "BRANCHLINE",
|
||||
"name": "遗尘漫步",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 2
|
||||
},
|
||||
"permanent_sub_3_Under_Tides": {
|
||||
"type": "BRANCHLINE",
|
||||
"name": "覆潮之下",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 3
|
||||
},
|
||||
"permanent_sub_4_Stultifera_Navis": {
|
||||
"type": "BRANCHLINE",
|
||||
"name": "愚人号",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 4
|
||||
},
|
||||
"permanent_sidestory_1_Grani_And_The_Treasure_Of_Knights": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "骑兵与猎人",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 1
|
||||
},
|
||||
"permanent_sidestory_2_Heart_Of_Surging_Flame": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "火蓝之心",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 2
|
||||
},
|
||||
"permanent_sidestory_3_Code_Of_Brawl": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "喧闹法则",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 3
|
||||
},
|
||||
"permanent_sidestory_4_Twilight_Of_Wolumonde": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "沃伦姆德的薄暮",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 4
|
||||
},
|
||||
"permanent_sidestory_5_The_Great_Chief_Returns": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "密林悍将归来",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 5
|
||||
},
|
||||
"permanent_sidestory_6_Maria_Nearl": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "玛莉娅·临光",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 6
|
||||
},
|
||||
"permanent_sidestory_7_Mansfield_Break": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "孤岛风云",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 7
|
||||
},
|
||||
"permanent_sidestory_8_Who_is_Real": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "画中人",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 8
|
||||
},
|
||||
"permanent_sidestory_9_Dossoles_Holiday": {
|
||||
"type": "SIDESTORY",
|
||||
"name": "多索雷斯假日",
|
||||
"chapterIndex": null,
|
||||
"zoneIndex": 9
|
||||
}
|
||||
}
|
3
mower/fonts/README.md
Normal file
3
mower/fonts/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Fonts
|
||||
|
||||
精简过的字体文件,包含所有干员名称内出现过的的汉字
|
BIN
mower/fonts/SourceHanSansCN-Medium.otf
(Stored with Git LFS)
Normal file
BIN
mower/fonts/SourceHanSansCN-Medium.otf
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/CONSUME.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/CONSUME.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/MATERIAL.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/MATERIAL.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/NORMAL.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/NORMAL.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
16
mower/models/README.md
Normal file
16
mower/models/README.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Models
|
||||
|
||||
## dbnet.onnx
|
||||
|
||||
DBNET 的模型文件,负责提取图像中的文字
|
||||
|
||||
## crnn_lite_lstm.onnx
|
||||
|
||||
CRNN 的轻量型模型文件,负责识别图像中的文字
|
||||
|
||||
## svm.model
|
||||
|
||||
SVM 分类器的模型文件,负责图像匹配判定
|
||||
|
||||
## depot.pkl
|
||||
仓库物品的knn模型,负责仓库中的物品
|
25
mower/models/__init__.py
Normal file
25
mower/models/__init__.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
import lzma
|
||||
import pickle
|
||||
|
||||
from mower import __rootdir__
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/avatar.pkl", "rb") as f:
|
||||
avatar = pickle.load(f)
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/portrait.pkl", "rb") as f:
|
||||
portrait = pickle.load(f)
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/secret_front.pkl", "rb") as f:
|
||||
secret_front = pickle.load(f)
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/navigation.pkl", "rb") as f:
|
||||
navigation = pickle.load(f)
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/riic_base_digits.pkl", "rb") as f:
|
||||
riic_base_digits = pickle.load(f)
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/noto_sans.pkl", "rb") as f:
|
||||
noto_sans = pickle.load(f)
|
||||
|
||||
with lzma.open(f"{__rootdir__}/models/shop.pkl", "rb") as f:
|
||||
shop = pickle.load(f)
|
BIN
mower/models/avatar.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/avatar.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/levels.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/levels.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/navigation.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/navigation.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/noto_sans.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/noto_sans.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/operator_room.model
(Stored with Git LFS)
Normal file
BIN
mower/models/operator_room.model
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/portrait.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/portrait.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
0
mower/models/professior.pkl
Normal file
0
mower/models/professior.pkl
Normal file
BIN
mower/models/recruit.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/recruit.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/recruit_result.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/recruit_result.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/riic_base_digits.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/riic_base_digits.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/secret_front.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/secret_front.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/shop.pkl
(Stored with Git LFS)
Normal file
BIN
mower/models/shop.pkl
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/models/svm.model
(Stored with Git LFS)
Normal file
BIN
mower/models/svm.model
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/12cadpa.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/12cadpa.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/1800.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/1800.png
(Stored with Git LFS)
Normal file
Binary file not shown.
3
mower/resources/README.md
Normal file
3
mower/resources/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Resources
|
||||
|
||||
资源文件,用于识别游戏中的元素和场景判定
|
BIN
mower/resources/all_in.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/all_in.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/announcement_close.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/announcement_close.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/arrange_blue_yes.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/arrange_blue_yes.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/arrange_check_in.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/arrange_check_in.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/arrange_check_in_on.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/arrange_check_in_on.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/arrange_confirm.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/arrange_confirm.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/arrange_order_options.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/arrange_order_options.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/arrange_order_options_scene.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/arrange_order_options_scene.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/bill_accelerate.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/bill_accelerate.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/biography.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/biography.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/business_card.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/business_card.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/battle_confirm.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/battle_confirm.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/battle_empty.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/battle_empty.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/clear.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/clear.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/clear_battle.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/clear_battle.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/confirm.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/confirm.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/empty_skill_slot.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/empty_skill_slot.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/fast_select.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/fast_select.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/foldup.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/foldup.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/open_profession.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/open_profession.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/perfer.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/perfer.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/perfer_agent.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/perfer_agent.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/perfer_choosed.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/perfer_choosed.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/ALL.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/ALL.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/CASTER.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/CASTER.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/MEDIC.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/MEDIC.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/PIONEER.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/PIONEER.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/SNIPER.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/SNIPER.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/SPECIAL.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/SPECIAL.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/SUPPORT.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/SUPPORT.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/TANK.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/TANK.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/WARRIOR.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/WARRIOR.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/choose_arrow.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/choose_arrow.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/profession/skill.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/profession/skill.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/rect.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/rect.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/riic_empty.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/riic_empty.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/support_skill_be_choosen.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/support_skill_be_choosen.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/support_status.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/support_status.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_agent/trigger.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_agent/trigger.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/choose_product_options.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/choose_product_options.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/1.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/1.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/2.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/2.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/3.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/3.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/4.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/4.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/5.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/5.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/6.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/6.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/7.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/7.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/badge_new.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/badge_new.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/button_get.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/button_get.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/button_unlock.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/button_unlock.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/daily.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/daily.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/filter_all.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/filter_all.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/give_away.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/give_away.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/icon_notification.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/icon_notification.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/label_give_away.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/label_give_away.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/receive.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/receive.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/summary.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/summary.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/title_party.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/title_party.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue_next.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue_next.png
(Stored with Git LFS)
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue