diff --git a/resource/roguelike/Mizuki/encounter_.json b/resource/roguelike/Mizuki/encounter_.json new file mode 100644 index 0000000000..503eddf9c9 --- /dev/null +++ b/resource/roguelike/Mizuki/encounter_.json @@ -0,0 +1,265 @@ +{ + "theme": "Mizuki_", + "stage": [ + { + "name": "悬高之葬", + "option_num": 1, + "choose": 1 + }, + { + "name": "继承", + "option_num": 1, + "choose": 1 + }, + { + "name": "重返家园", + "option_num": 3, + "choose": 1 + }, + { + "name": "引火之木", + "option_num": 2, + "choose": 1 + }, + { + "name": "先遣小队", + "option_num": 1, + "choose": 1 + }, + { + "name": "灯塔看守人", + "option_num": 1, + "choose": 1 + }, + { + "name": "海嗣学者", + "option_num": 2, + "choose": 1 + }, + { + "name": "海边的歌者", + "option_num": 2, + "choose": 1 + }, + { + "name": "远销海外", + "option_num": 2, + "choose": 1 + }, + { + "name": "传统技术", + "option_num": 3, + "choose": 3 + }, + { + "name": "最后的观潮者", + "option_num": 3, + "choose": 1 + }, + { + "name": "变卖身家", + "option_num": 3, + "choose": 1 + }, + { + "name": "无知是福", + "option_num": 2, + "choose": 1 + }, + { + "name": "点滴星火", + "option_num": 2, + "choose": 2 + }, + { + "name": "残存微光", + "option_num": 3, + "choose": 3 + }, + { + "name": "相逢", + "option_num": 3, + "choose": 3 + }, + { + "name": "扎营", + "option_num": 1, + "choose": 1 + }, + { + "name": "噬尘扩散", + "option_num": 1, + "choose": 1 + }, + { + "name": "天灾信使", + "option_num": 2, + "choose": 1 + }, + { + "name": "阴云如聚", + "option_num": 1, + "choose": 1 + }, + { + "name": "孤行的老者", + "option_num": 2, + "choose": 1 + }, + { + "name": "为了生存", + "option_num": 2, + "choose": 1 + }, + { + "name": "苦路", + "option_num": 2, + "choose": 2 + }, + { + "name": "设身处地", + "option_num": 2, + "choose": 1 + }, + { + "name": "信念", + "option_num": 2, + "choose": 1 + }, + { + "name": "是非黑白", + "option_num": 2, + "choose": 1 + }, + { + "name": "大海的遗产", + "option_num": 2, + "choose": 2 + }, + { + "name": "诸王不再", + "option_num": 2, + "choose": 2 + }, + { + "name": "医者之志", + "option_num": 2, + "choose": 1 + }, + { + "name": "愚者之心", + "option_num": 1, + "choose": 1 + }, + { + "name": "敬奉火焰", + "option_num": 3, + "choose": 3 + }, + { + "name": "藏宝港湾", + "option_num": 2, + "choose": 1 + }, + { + "name": "宝箱之舞", + "option_num": 2, + "choose": 2 + }, + { + "name": "狗眼婆娑", + "option_num": 2, + "choose": 1 + }, + { + "name": "鸭力测试", + "option_num": 2, + "choose": 2 + }, + { + "name": "打发时间", + "option_num": 2, + "choose": 2 + }, + { + "name": "工作热情", + "option_num": 2, + "choose": 2 + }, + { + "name": "商业帝国", + "option_num": 2, + "choose": 2 + }, + { + "name": "狂徒妄念", + "option_num": 3, + "choose": 2 + }, + { + "name": "骑士仍在", + "option_num": 3, + "choose": 2 + }, + { + "name": "开端", + "option_num": 2, + "choose": 2 + }, + { + "name": "深蓝之心", + "option_num": 4, + "choose": 4 + }, + { + "name": "深蓝仪式", + "option_num": 2, + "choose": 2 + }, + { + "name": "升华", + "option_num": 3, + "choose": 1 + }, + { + "name": "赞歌", + "option_num": 1, + "choose": 1 + }, + { + "name": "安全屋", + "option_num": 4, + "choose": 2 + }, + { + "name": "现买现印", + "option_num": 2, + "choose": 1 + }, + { + "name": "守望相助", + "option_num": 2, + "choose": 2 + }, + { + "name": "消失的习俗", + "option_num": 2, + "choose": 2 + }, + { + "name": "紧急调遣", + "option_num": 2, + "choose": 2 + }, + { + "name": "瞥视", + "option_num": 2, + "choose": 2 + }, + { + "name": "郁金香的委托", + "option_num": 4, + "choose": 3 + } + ] +} \ No newline at end of file diff --git a/resource/roguelike/Phantom/encounter_.json b/resource/roguelike/Phantom/encounter_.json new file mode 100644 index 0000000000..082b8ef162 --- /dev/null +++ b/resource/roguelike/Phantom/encounter_.json @@ -0,0 +1,225 @@ +{ + "theme": "Phantom_", + "stage": [ + { + "name": "扎营", + "option_num": 1, + "choose": 1 + }, + { + "name": "善良的木偶", + "option_num": 1, + "choose": 1 + }, + { + "name": "讲故事的人", + "option_num": 1, + "choose": 1 + }, + { + "name": "委托冒险者", + "option_num": 3, + "choose": 1 + }, + { + "name": "皇家争执", + "option_num": 2, + "choose": 1 + }, + { + "name": "先遣小队", + "option_num": 1, + "choose": 1 + }, + { + "name": "高卢老兵", + "option_num": 1, + "choose": 1 + }, + { + "name": "迷幻烛火", + "option_num": 2, + "choose": 1 + }, + { + "name": "哥伦比亚酒商", + "option_num": 2, + "choose": 1 + }, + { + "name": "锡人", + "option_num": 2, + "choose": 1 + }, + { + "name": "猩红舞会", + "option_num": 4, + "choose": 1 + }, + { + "name": "剧目需求", + "option_num": 2, + "choose": 1 + }, + { + "name": "狂舞之人", + "option_num": 2, + "choose": 1 + }, + { + "name": "音乐挑战", + "option_num": 2, + "choose": 1 + }, + { + "name": "石中剑", + "option_num": 3, + "choose": 1 + }, + { + "name": "被困的人", + "option_num": 2, + "choose": 2 + }, + { + "name": "佝偻怪客", + "option_num": 2, + "choose": 1 + }, + { + "name": "沉睡石像", + "option_num": 2, + "choose": 1 + }, + { + "name": "受缚之血", + "option_num": 2, + "choose": 1 + }, + { + "name": "幽影狂言", + "option_num": 2, + "choose": 1 + }, + { + "name": "艺术与疯狂", + "option_num": 2, + "choose": 1 + }, + { + "name": "鸭爵主演", + "option_num": 2, + "choose": 1 + }, + { + "name": "鸭爵的宴会", + "option_num": 2, + "choose": 2 + }, + { + "name": "即兴鸭子演出", + "option_num": 2, + "choose": 2 + }, + { + "name": "有关那位乌萨斯人", + "option_num": 2, + "choose": 2 + }, + { + "name": "邪恶之棺", + "option_num": 2, + "choose": 1 + }, + { + "name": "以血还血", + "option_num": 3, + "choose": 2 + }, + { + "name": "暗门", + "option_num": 2, + "choose": 1 + }, + { + "name": "密室", + "option_num": 2, + "choose": 2 + }, + { + "name": "废品地摊", + "option_num": 3, + "choose": 2 + }, + { + "name": "鉴赏家", + "option_num": 4, + "choose": 1 + }, + { + "name": "解脱", + "option_num": 2, + "choose": 2 + }, + { + "name": "疯狂玩偶", + "option_num": 2, + "choose": 1 + }, + { + "name": "赴宴", + "option_num": 2, + "choose": 2 + }, + { + "name": "追随者集会", + "option_num": 2, + "choose": 1 + }, + { + "name": "别打扰他们", + "option_num": 2, + "choose": 1 + }, + { + "name": "复仇剧", + "option_num": 2, + "choose": 1 + }, + { + "name": "安全的角落", + "option_num": 3, + "choose": 2 + }, + { + "name": "微型舞台", + "option_num": 2, + "choose": 2 + }, + { + "name": "珍品处理者", + "option_num": 2, + "choose": 2 + }, + { + "name": "暴殄天物", + "option_num": 2, + "choose": 2 + }, + { + "name": "鼠胆神偷", + "option_num": 2, + "choose": 1 + }, + { + "name": "历史馈赠", + "option_num": 1, + "choose": 1 + }, + { + "name": "命运馈赠", + "option_num": 2, + "choose": 1 + } + ] +} \ No newline at end of file diff --git a/resource/roguelike/Sami/encounter_.json b/resource/roguelike/Sami/encounter_.json new file mode 100644 index 0000000000..072b3e49ac --- /dev/null +++ b/resource/roguelike/Sami/encounter_.json @@ -0,0 +1,515 @@ +{ + "theme": "Sami_", + "stage": [ + { + "name": "低地市集", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "选择碎草药", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "选择好看的织物", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "选择湿膏药", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "选择好看的木刻", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "选择纯霜露", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "选择琥珀核", + "ChaosLevel": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "雪与木的笆篱", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "“活力”", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "“金钱”", + "ChaosLevel": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "安玛塔卢", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "寻求希望", + "ChaosLevel": { + "value": "3", + "type": ">" + } + }, + { + "name": "寻求护佑", + "ChaosLevel": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "北地巫师竞技", + "option_num": 2, + "choose": 2, + "choice_require": [ + { + "name": "接过名册木板,是该选择了!", + "OriginiumIngot": { + "value": "3", + "type": ">" + } + }, + { + "name": "没来过萨米的人一定没见过!", + "OriginiumIngot": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "最好的朋友", + "option_num": 2, + "choose": 2, + "choice_require": [ + { + "name": "仓皇离开", + "Shield": { + "value": "1", + "type": ">" + } + }, + { + "name": "留下", + "LivePointCap": { + "value": "1", + "type": ">" + } + }, + { + "name": "再喝一口", + "LivePoint": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "深渊入口", + "option_num": 2, + "choose": 2, + "choice_require": [ + { + "name": "再试试看吧", + "Vision": { + "value": "1", + "type": ">" + } + } + ] + }, + { + "name": "吉兆", + "option_num": 2, + "choose": 1 + }, + { + "name": "雨!", + "option_num": 2, + "choose": 1 + }, + { + "name": "随到随取", + "option_num": 2, + "choose": 1, + "choice_require": [ + { + "name": "使用热像仪", + "Vision": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "定期维护", + "option_num": 2, + "choose": 2, + "note": "拥有【安玛的爱】时出现第三选项", + "choice_require": [ + { + "name": "检查多色测光望远镜的目镜", + "Vision": { + "value": "4", + "type": ">" + } + }, + { + "name": "不紧不慢地打开一听罐头汤", + "Relic": { + "value": "安玛的爱", + "type": "have" + } + } + ] + }, + { + "name": "昏黑之室", + "option_num": 3, + "choose": 1, + "choice_require": [ + { + "name": "用仪器探测", + "Vision": { + "value": "5", + "type": ">" + } + } + ] + }, + { + "name": "疗愈仪式", + "option_num": 3, + "choose": 3 + }, + { + "name": "黑色足迹", + "option_num": 2, + "choose": 2, + "choice_require": [ + { + "name": "逃离", + "LivePoint": { + "value": "3", + "type": ">" + } + } + ], + "note": "抗干扰指数为0或遭遇过【负伤的主树】事件时出现第三选项" + }, + { + "name": "不冻河", + "option_num": 2, + "choose": 2, + "note": "拥有【安玛的爱】时出现第三选项", + "choice_require": [ + { + "name": "寻找工具", + "Relic": { + "value": "安玛的爱", + "type": "have" + } + } + ] + }, + { + "name": "野外生存专家", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "重金酬谢", + "OriginiumIngot": { + "value": "4", + "type": ">" + }, + "Vision": { + "value": "2", + "type": ">" + } + } + ] + }, + { + "name": "在地公共信号放大站756号", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "提供位置,呼叫增援", + "Vision": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "特里蒙旅行社特派团", + "option_num": 3, + "choose": 1 + }, + { + "name": "在地公共移动站N6号", + "option_num": 2, + "choose": 2, + "note": "也可能只有一个" + }, + { + "name": "度假胜地", + "option_num": 1, + "choose": 1 + }, + { + "name": "负伤的主树", + "option_num": 2, + "choose": 1 + }, + { + "name": "不见群山", + "option_num": 4, + "choose": 4, + "choice_require": [ + { + "name": "选择她弃在手边的塔罗牌", + "Vision": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "远见所向", + "option_num": 4, + "choose": 4, + "choice_require": [ + { + "name": "我们或许能协作互助", + "Vision": { + "value": "4", + "type": ">" + } + } + ] + }, + { + "name": "萨米之语", + "option_num": 1, + "choose": 1 + }, + { + "name": "乌萨斯", + "option_num": 3, + "choose": 2 + }, + { + "name": "无用之物", + "option_num": 3, + "choose": 1 + }, + { + "name": "鲍勃杂货店", + "option_num": 3, + "choose": 1, + "choice_require": [ + { + "name": "选择他脚边的货品", + "Vision": { + "value": "1", + "type": ">" + } + }, + { + "name": "选择仓库深处的货品", + "Vision": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "科考站", + "option_num": 3, + "choose": 1 + }, + { + "name": "走过萨米的臂膀", + "option_num": 2, + "choose": 1, + "choice_require": [ + { + "name": "戴上头盔", + "Relic": { + "value": "树痕之盔", + "type": "have" + } + } + ] + }, + { + "name": "木裂前兆", + "option_num": 2, + "choose": 1 + }, + { + "name": "悲观者囚笼", + "option_num": 2, + "choose": 1 + }, + { + "name": "沼泽里的抽泣声", + "option_num": 3, + "choose": 3 + }, + { + "name": "有利可图", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "分我一点", + "Vision": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "随行人员", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "偷听他们聊天", + "LivePoint": { + "value": "3", + "type": ">" + }, + "Vision": { + "value": "1", + "type": ">" + } + } + ] + }, + { + "name": "邪恶计划鸭", + "option_num": 2, + "choose": 2 + }, + { + "name": "百里连营", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "一边警戒一边前进", + "Vision": { + "value": "1", + "type": ">" + } + }, + { + "name": "走近一些", + "LivePoint": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "请君入戏", + "option_num": 3, + "choose": 3 + }, + { + "name": "北风女巫", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "乖乖照做", + "Vision": { + "value": "5", + "type": ">" + } + } + ] + }, + { + "name": "时刻警惕", + "option_num": 2, + "choose": 2 + }, + { + "name": "猜疑链", + "option_num": 3, + "choose": 3, + "choice_require": [ + { + "name": "勘察情况并维持秩序", + "Vision": { + "value": "3", + "type": ">" + } + } + ] + }, + { + "name": "前行的林地", + "option_num": 2, + "choose": 2, + "choice_require": [ + { + "name": "树上就不能走吗?", + "Vision": { + "value": "1", + "type": ">" + } + } + ] + } + ] +} diff --git a/src/MaaCore/Config/ResourceLoader.cpp b/src/MaaCore/Config/ResourceLoader.cpp index 9a99fc4c5e..a33e440777 100644 --- a/src/MaaCore/Config/ResourceLoader.cpp +++ b/src/MaaCore/Config/ResourceLoader.cpp @@ -160,6 +160,9 @@ bool asst::ResourceLoader::load(const std::filesystem::path& path) AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Phantom"_p / "encounter.json"_p); AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Mizuki"_p / "encounter.json"_p); AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Sami"_p / "encounter.json"_p); + AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Phantom"_p / "encounter_.json"_p); + AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Mizuki"_p / "encounter_.json"_p); + AsyncLoadConfig(RoguelikeStageEncounterConfig, "roguelike"_p / "Sami"_p / "encounter_.json"_p); // 太占内存的资源,都是惰性加载 FutureAppendBegins diff --git a/src/MaaCore/Status.h b/src/MaaCore/Status.h index 968376fa06..df8ee652b2 100644 --- a/src/MaaCore/Status.h +++ b/src/MaaCore/Status.h @@ -51,6 +51,7 @@ namespace asst static inline const std::string RoguelikeRecruitmentStartsComplete = "RoguelikeRecruitmentStartsComplete"; static inline const std::string RoguelikeRecruitmentTeamComplete = "RoguelikeRecruitmentTeamComplete"; static inline const std::string RoguelikeRecruitmentCount = "RoguelikeRecruitmentCount"; + static inline const std::string RoguelikeMode = "RoguelikeMode"; static inline const std::string ProcessTaskLastTimePrefix = "#LastTime#"; diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp index 6746a793d4..1fec8e3254 100644 --- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp +++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp @@ -66,6 +66,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params) // 2 - 【弃用】两者兼顾,投资过后再退出,没有投资就继续往后打 // 3 - 尝试通关,激进策略(TODO) int mode = params.get("mode", 0); + status()->set_properties(Status::RoguelikeMode, std::to_string(mode)); switch (mode) { case 0: m_debug_task_ptr->set_enable(true); diff --git a/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp index ebfdd3498c..895af30081 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeStageEncounterTaskPlugin.cpp @@ -39,7 +39,15 @@ bool asst::RoguelikeStageEncounterTaskPlugin::_run() LogTraceFunction; std::string rogue_theme = status()->get_properties(Status::RoguelikeTheme).value(); - std::vector events = RoguelikeStageEncounter.get_events(rogue_theme); + std::string rogue_mode = status()->get_properties(Status::RoguelikeMode).value(); + // 存钱模式 + std::vector events; + if (rogue_mode == "1") { + events = RoguelikeStageEncounter.get_events(rogue_theme + "_"); + } + else { + events = RoguelikeStageEncounter.get_events(rogue_theme); + } std::vector event_names; std::unordered_map event_map; for (const auto& event : events) {