Files
rtdd/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/YouguoData.py
T

176 lines
11 KiB
Python

# -*- coding: utf-8 -*-
"""
================================================================================
油锅(xy_youguo)转化规则数据
================================================================================
统一管理"油锅"分类下的转化规则常量。只被
YouguoService / YouguoTimerService 读取, FeatureDispatcher 通过
方块名路由到对应服务。
【实现范围(对应 油锅转化关系.txt 一~三)】
一、油锅基础: 倒油(油罐->玻璃罐)/取油(玻璃罐->油罐)
二、炸物 : 满油锅+裹粉半成品(右键) -> 炸物(生) -> 计时 -> 熟
三、出锅 : 熟炸物+盘子(右键) -> 掉落盘装成品(掉落物形式)
【计时(见 YouguoTimerService)】
炸物(生)->60秒->炸物(半熟)->30秒->炸物(熟); 天妇罗/炸饺子 生->60秒->熟
计时判定: 炸物方块正下方须是 点燃的炉灶(stove_2) 才开始计时,
计时数据在炸物方块本身(炸物方块 tick 判定下方); 炉灶移走/熄灭则暂停
【不实现】: 各盘装成品 右键吃 (吃的操作后续由总食用功能实现)
================================================================================
"""
# ============================================================================
# 一、方块/物品(常量)
# ============================================================================
OILPOT_0 = "rtdd:oilpot_0" # 油锅(空)
OILPOT_1 = "rtdd:oilpot_1" # 油锅(满油)
OILCAN = "rtdd:oilcan" # 油罐(厨具)
MEDICINE_TANK = "rtdd:medicinetank" # 玻璃罐(厨具)
PLATE = "rtdd:plate_0" # 盘子(厨具)
LIT_STOVE = "rtdd:stove_2" # 点燃的炉灶(厨具)
# 裹粉半成品(物品, 乡野食材)
BREADED_CHICKEN = "rtdd:oil_chickennuggets" # 裹粉鸡块
BREADED_PORK = "rtdd:oilpork" # 裹粉猪肉
BREADED_FRIES = "rtdd:oilfrenchfries" # 裹粉薯条
BREADED_FISH = "rtdd:oilfish_0" # 裹粉鱼
BREADED_TEMPURA = "rtdd:oiltempura" # 裹粉天妇罗
DUMPLINGS = "rtdd:dumplings_4" # 生饺子(面食.甜食)
# 炸物方块(生/半熟/熟)
CHICKEN_0 = "rtdd:oilchickennuggets_0" # 炸鸡块(生)
CHICKEN_1 = "rtdd:oilchickennuggets_1" # 炸鸡块(半熟)
CHICKEN_2 = "rtdd:oilchickennuggets_2" # 炸鸡块(熟)
PORK_0 = "rtdd:oilpotporkchop_0" # 炸猪排(生)
PORK_1 = "rtdd:oilpotporkchop_1" # 炸猪排(半熟)
PORK_2 = "rtdd:oilpotporkchop_2" # 炸猪排(熟)
FRIES_0 = "rtdd:oilfrenchfries_0" # 炸薯条(生)
FRIES_1 = "rtdd:oilfrenchfries_1" # 炸薯条(半熟)
FRIES_2 = "rtdd:oilfrenchfries_2" # 炸薯条(熟)
FISH_0 = "rtdd:oilpotfish_0" # 炸鱼块(生)
FISH_1 = "rtdd:oilpotfish_1" # 炸鱼块(半熟)
FISH_2 = "rtdd:oilpotfish_2" # 炸鱼块(熟)
TEMPURA_1 = "rtdd:oiltempura_1" # 炸天妇罗(生)
TEMPURA_2 = "rtdd:oiltempura_2" # 炸天妇罗(熟)
DUMPLING_1 = "rtdd:oil_frieddumplings_1" # 炸饺子(生, 油锅+饺子合体)
DUMPLING_2 = "rtdd:oil_frieddumplings_2" # 炸饺子(熟)
# 盘装成品(掉落物形式, 归 youguo_finished)
PLATE_CHICKEN = "rtdd:plate_38" # 盘装鸡块
PLATE_PORK = "rtdd:plate_36" # 炸猪排(盘装)
PLATE_FRIES = "rtdd:plate_37" # 炸薯条(盘装)
PLATE_FISH = "rtdd:plate_39" # 盘装炸鱼
PLATE_TEMPURA = "rtdd:plate_49" # 天妇罗炸虾
PLATE_DUMPLINGS = "rtdd:plate_51" # 炸饺子(盘装)
# ============================================================================
# 二、右键规则 (方块, 手持物品) -> 规则
# target=替换方块; consume=消耗手持; give=给背包; startTimer=转换后启动计时;
# action=take_out(出锅: 清方块+掉落盘装成品)
# ============================================================================
SWITCH_RULES = [
# ---- 一、油锅基础 ----
{"block": OILPOT_0, "item": OILCAN, "target": OILPOT_1,
"consume": 1, "give": MEDICINE_TANK,
"tip": "§a油罐倒入油锅, 油罐变回玻璃罐"},
{"block": OILPOT_1, "item": MEDICINE_TANK, "target": OILPOT_0,
"consume": 1, "give": OILCAN,
"tip": "§a从油锅取油, 装回油罐"},
# ---- 二、放料(满油锅 + 裹粉半成品 -> 炸物(生), 开始计时炸制) ----
# 油锅下须是 点燃的炉灶(stove_2) 才允许放料(否则不炸制)
{"block": OILPOT_1, "item": BREADED_CHICKEN, "target": CHICKEN_0,
"consume": 1, "startTimer": CHICKEN_0,
"needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上",
"tip": "§a放入裹粉鸡块, 开始炸制(共90秒: 先60秒半熟, 再30秒熟); 计时结束变成 炸鸡块(熟)"},
{"block": OILPOT_1, "item": BREADED_PORK, "target": PORK_0,
"consume": 1, "startTimer": PORK_0,
"needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上",
"tip": "§a放入裹粉猪肉, 开始炸制(共90秒: 先60秒半熟, 再30秒熟); 计时结束变成 炸猪排(熟)"},
{"block": OILPOT_1, "item": BREADED_FRIES, "target": FRIES_0,
"consume": 3, "startTimer": FRIES_0,
"needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上",
"tip": "§a放入裹粉薯条x3, 开始炸制(共90秒: 先60秒半熟, 再30秒熟); 计时结束变成 炸薯条(熟)"},
{"block": OILPOT_1, "item": BREADED_FISH, "target": FISH_0,
"consume": 1, "startTimer": FISH_0,
"needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上",
"tip": "§a放入裹粉鱼, 开始炸制(共90秒: 先60秒半熟, 再30秒熟); 计时结束变成 炸鱼块(熟)"},
{"block": OILPOT_1, "item": BREADED_TEMPURA, "target": TEMPURA_1,
"consume": 4, "startTimer": TEMPURA_1,
"needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上",
"tip": "§a放入裹粉天妇罗x4, 开始炸制(共60秒); 计时结束变成 炸天妇罗(熟)"},
{"block": OILPOT_1, "item": DUMPLINGS, "target": DUMPLING_1,
"consume": 3, "startTimer": DUMPLING_1,
"needBelow": LIT_STOVE, "belowTip": "§c油锅需要放在点燃的炉灶上",
"tip": "§a放入生饺子x3, 开始炸制(共60秒); 计时结束变成 炸饺子(熟)"},
# ---- 三、出锅(熟炸物 + 盘子 -> 掉落盘装成品) ----
{"block": CHICKEN_2, "item": PLATE, "action": "take_out",
"dropItem": PLATE_CHICKEN, "consume": 1, "tip": "§a取出盘装鸡块, 油锅恢复满油, 可继续放料"},
{"block": PORK_2, "item": PLATE, "action": "take_out",
"dropItem": PLATE_PORK, "consume": 1, "tip": "§a取出炸猪排(盘装), 油锅恢复满油, 可继续放料"},
{"block": FRIES_2, "item": PLATE, "action": "take_out",
"dropItem": PLATE_FRIES, "consume": 1, "tip": "§a取出炸薯条(盘装), 油锅恢复满油, 可继续放料"},
{"block": FISH_2, "item": PLATE, "action": "take_out",
"dropItem": PLATE_FISH, "consume": 1, "tip": "§a取出盘装炸鱼, 油锅恢复满油, 可继续放料"},
{"block": TEMPURA_2, "item": PLATE, "action": "take_out",
"dropItem": PLATE_TEMPURA, "consume": 1, "tip": "§a取出天妇罗炸虾, 油锅恢复满油, 可继续放料"},
{"block": DUMPLING_2, "item": PLATE, "action": "take_out",
"dropItem": PLATE_DUMPLINGS, "consume": 1, "tip": "§a取出炸饺子(盘装), 油锅恢复满油, 可继续放料"},
]
# ============================================================================
# 三、计时规则(供 YouguoTimerService)
# below: 炸物方块正下方须是 点燃的炉灶(stove_2) 才计时
# ============================================================================
TIMER_RULES = [
# 炸鸡块: 生->半熟60秒, 半熟->熟30秒
{"source": CHICKEN_0, "target": CHICKEN_1, "time": 60,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸鸡块半熟了, 继续炸(30秒)"},
{"source": CHICKEN_1, "target": CHICKEN_2, "time": 30,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸鸡块炸好了, 手持盘子右键取出"},
# 炸猪排
{"source": PORK_0, "target": PORK_1, "time": 60,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸猪排半熟了, 继续炸(30秒)"},
{"source": PORK_1, "target": PORK_2, "time": 30,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸猪排炸好了, 手持盘子右键取出"},
# 炸薯条
{"source": FRIES_0, "target": FRIES_1, "time": 60,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸薯条半熟了, 继续炸(30秒)"},
{"source": FRIES_1, "target": FRIES_2, "time": 30,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸薯条炸好了, 手持盘子右键取出"},
# 炸鱼块
{"source": FISH_0, "target": FISH_1, "time": 60,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸鱼块半熟了, 继续炸(30秒)"},
{"source": FISH_1, "target": FISH_2, "time": 30,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸鱼块炸好了, 手持盘子右键取出"},
# 炸天妇罗(单级: 生->熟60秒)
{"source": TEMPURA_1, "target": TEMPURA_2, "time": 60,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e天妇罗炸好了, 手持盘子右键取出"},
# 炸饺子(单级: 生->熟60秒, 油锅+饺子合体)
{"source": DUMPLING_1, "target": DUMPLING_2, "time": 60,
"below": [LIT_STOVE], "autoStart": True, "doneTip": "§e炸饺子炸好了, 手持盘子右键取出"},
]
# ============================================================================
# 四、中文名映射(提示用)
# ============================================================================
NAME_MAP = {
OILPOT_0: "油锅(空)", OILPOT_1: "油锅(满油)", OILCAN: "油罐",
MEDICINE_TANK: "玻璃罐", PLATE: "盘子", LIT_STOVE: "点燃的炉灶",
BREADED_CHICKEN: "裹粉鸡块", BREADED_PORK: "裹粉猪肉",
BREADED_FRIES: "裹粉薯条", BREADED_FISH: "裹粉鱼",
BREADED_TEMPURA: "裹粉天妇罗", DUMPLINGS: "生饺子",
CHICKEN_0: "炸鸡块(生)", CHICKEN_1: "炸鸡块(半熟)", CHICKEN_2: "炸鸡块(熟)",
PORK_0: "炸猪排(生)", PORK_1: "炸猪排(半熟)", PORK_2: "炸猪排(熟)",
FRIES_0: "炸薯条(生)", FRIES_1: "炸薯条(半熟)", FRIES_2: "炸薯条(熟)",
FISH_0: "炸鱼块(生)", FISH_1: "炸鱼块(半熟)", FISH_2: "炸鱼块(熟)",
TEMPURA_1: "炸天妇罗(生)", TEMPURA_2: "炸天妇罗(熟)",
DUMPLING_1: "炸饺子(生)", DUMPLING_2: "炸饺子(熟)",
PLATE_CHICKEN: "盘装鸡块", PLATE_PORK: "炸猪排(盘装)",
PLATE_FRIES: "炸薯条(盘装)", PLATE_FISH: "盘装炸鱼",
PLATE_TEMPURA: "天妇罗炸虾", PLATE_DUMPLINGS: "炸饺子(盘装)",
}