feat: 初步完成水月肉鸽

This commit is contained in:
MistEO
2022-09-27 23:52:28 +08:00
parent fc8cc7c6b7
commit c32a3dcf2f
45 changed files with 187 additions and 32 deletions

View File

@@ -0,0 +1,74 @@
{
"Roguelike1StageEncounter": {
"Doc": "不期而遇(随机奖励)",
"action": "ClickSelf",
"cache": false,
"roi": [
0,
53,
1280,
554
],
"templThreshold": 0.95,
"next": [
"Roguelike1StageEncounterEnter",
"Roguelike1StageTrader",
"Roguelike1StageSafeHouse",
"Roguelike1StageEncounter",
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
]
},
"Roguelike2RegionalCommissioning": {
"Doc": "地区委托(随机奖励)",
"action": "ClickSelf",
"cache": false,
"roi": [
0,
53,
1280,
554
],
"templThreshold": 0.95,
"next": [
"Roguelike1StageEncounterEnter",
"Roguelike1StageTrader",
"Roguelike1StageSafeHouse",
"Roguelike1StageEncounter",
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
]
},
"Roguelike2DiceConfirm": {
"Doc": "骰子的确认按钮",
"action": "ClickSelf",
"cache": false,
"roi": [
551,
577,
174,
143
],
"templThreshold": 0.95,
"next": [
"Roguelike1StageEncounterEnter",
"Roguelike1StageTrader",
"Roguelike1StageSafeHouse",
"Roguelike1StageEncounter",
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -7081,12 +7081,13 @@
"next": [
"Roguelike1ChooseDifficulty",
"Roguelike1Start",
"Roguelike1StageCambatDpsEnter",
"Roguelike1StageEmergencyDpsEnter",
"Roguelike1StageEncounterEnter",
"Roguelike1StageTraderEnter",
"Roguelike1StageDreadfulFoeEnter",
"Roguelike1StageSafeHouseEnter",
"Roguelike1StageTrader",
"Roguelike1StageSafeHouse",
"Roguelike1StageEncounter",
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike1ExitThenAbandon",
"Roguelike1Abandon",
"TodaysSuppliesToRoguelike1",
@@ -7189,7 +7190,8 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2DiceConfirm"
]
},
"Roguelike1LastReward": {
@@ -7333,7 +7335,8 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2DiceConfirm"
]
},
"Roguelike1CloseCollection": {
@@ -7572,7 +7575,8 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2DiceConfirm"
]
},
"Roguelike1StageTrader": {
@@ -7594,7 +7598,8 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2DiceConfirm"
]
},
"Roguelike1StageTraderEnter": {
@@ -7725,9 +7730,18 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2DiceConfirm"
]
},
"Roguelike2RegionalCommissioning": {
"template": "empty.png",
"templThreshold": 2.0
},
"Roguelike2DiceConfirm": {
"template": "empty.png",
"templThreshold": 2.0
},
"Roguelike1StageSafeHouseEnter": {
"action": "ClickSelf",
"cache": false,
@@ -7928,7 +7942,9 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
]
},
"Roguelike1StageEncounter": {
@@ -7950,7 +7966,9 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
]
},
"Roguelike1StageBoons": {
@@ -7972,7 +7990,9 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
]
},
"Roguelike1StageEncounterEnter": {
@@ -8121,7 +8141,9 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
],
"next_Doc": "普通作战和紧急作战的图比较像有时候会识别错这里的next把两个开始的按钮都放进来提高容错"
},
@@ -8157,7 +8179,9 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
],
"next_Doc": "普通作战和紧急作战的图比较像有时候会识别错这里的next把两个开始的按钮都放进来提高容错"
},
@@ -8194,7 +8218,9 @@
"Roguelike1StageBoons",
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe"
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm"
],
"next_Doc": "普通作战和紧急作战的图比较像有时候会识别错这里的next把两个开始的按钮都放进来提高容错"
},
@@ -8506,6 +8532,8 @@
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm",
"Roguelike1ChooseOperFlag",
"Roguelike1StageEncounterSpecialClose",
"Roguelike1TraderRandomShopping",
@@ -8542,6 +8570,8 @@
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm",
"Roguelike1StageEncounterFree",
"Roguelike1StageEncounterLeave",
"Roguelike1StageEncounterUnknown",
@@ -8729,7 +8759,7 @@
504,
163,
480,
167
267
],
"next": [
"Roguelike1StageTrader",
@@ -8739,6 +8769,8 @@
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2RegionalCommissioning",
"Roguelike2DiceConfirm",
"Roguelike1ClickToStartPoint"
]
},
@@ -8773,6 +8805,7 @@
"Roguelike1StageCambatDps",
"Roguelike1StageEmergencyDps",
"Roguelike1StageDreadfulFoe",
"Roguelike2DiceConfirm",
"TodaysSuppliesToRoguelike1",
"TerminalToRoguelike1",
"CloseAnnoToRoguelike1",

View File

@@ -162,12 +162,29 @@ namespace MeoAsstGui
}
private string _curResource = "_Unloaded";
private bool _additionalLoaded = false;
public bool LoadAdditionalResource()
{
if (_additionalLoaded)
{
return true;
}
var settingsModel = _container.Get<SettingsViewModel>();
if (settingsModel.RoguelikeAdditionalResourceEnabled)
{
_additionalLoaded = AsstLoadResource(System.IO.Directory.GetCurrentDirectory() + "\\resource\\addition\\Roguelike2\\");
return _additionalLoaded;
}
return true;
}
/// <summary>
/// 加载全局资源。
/// </summary>
/// <returns>是否成功。</returns>
public bool LoadGlobalResource()
public bool LoadResource()
{
var settingsModel = _container.Get<SettingsViewModel>();
if (settingsModel.ClientType == _curResource)
@@ -175,6 +192,8 @@ namespace MeoAsstGui
return true;
}
_additionalLoaded = false;
bool loaded = true;
if (settingsModel.ClientType == string.Empty
|| settingsModel.ClientType == "Official" || settingsModel.ClientType == "Bilibili")
@@ -201,16 +220,18 @@ namespace MeoAsstGui
&& AsstLoadResource(System.IO.Directory.GetCurrentDirectory() + "\\resource\\global\\" + settingsModel.ClientType);
}
if (loaded)
if (!loaded)
{
if (settingsModel.ClientType == string.Empty)
{
_curResource = "Official";
}
else
{
_curResource = settingsModel.ClientType;
}
return false;
}
if (settingsModel.ClientType == string.Empty)
{
_curResource = "Official";
}
else
{
_curResource = settingsModel.ClientType;
}
return loaded;
@@ -221,7 +242,8 @@ namespace MeoAsstGui
/// </summary>
public void Init()
{
bool loaded = LoadGlobalResource();
bool loaded = LoadResource();
loaded &= LoadAdditionalResource();
_handle = AsstCreateEx(_callback, IntPtr.Zero);
@@ -1002,9 +1024,9 @@ namespace MeoAsstGui
/// <returns>是否成功。</returns>
public bool AsstConnect(ref string error)
{
if (!LoadGlobalResource())
if (!LoadResource() || !LoadAdditionalResource())
{
error = "Load Global Resource Failed";
error = "Load Resource Failed";
return false;
}

View File

@@ -130,6 +130,7 @@
<system:String x:Key="Select">Select</system:String>
<system:String x:Key="AdditionCommand">Addiction Command arguments</system:String>
<system:String x:Key="RoguelikeAdditionalResource">For Mizuki</system:String>
<system:String x:Key="Strategy">Strategy</system:String>
<system:String x:Key="StartTimesLimit">Stop after starting N times</system:String>
<system:String x:Key="GoldTimesLimit">Stop after investing N times</system:String>

View File

@@ -65,6 +65,9 @@
<system:String x:Key="StartingCoreCharTip">仅支持单个干员中文名,不填写则默认选择</system:String>
<system:String x:Key="DefaultSquad">默认分队</system:String>
<system:String x:Key="IS2NewSquad1">心胜于物分队</system:String>
<system:String x:Key="IS2NewSquad2">物尽其用分队</system:String>
<system:String x:Key="IS2NewSquad3">以人为本分队</system:String>
<system:String x:Key="LeaderSquad">指挥分队</system:String>
<system:String x:Key="GatheringSquad">集群分队</system:String>
<system:String x:Key="SupportSquad">后勤分队</system:String>
@@ -130,6 +133,7 @@
<system:String x:Key="Select">选择</system:String>
<system:String x:Key="AdditionCommand">附加命令</system:String>
<system:String x:Key="RoguelikeAdditionalResource">For Mizuki</system:String>
<system:String x:Key="Strategy">策略</system:String>
<system:String x:Key="StartTimesLimit">开始探索 N 次后停止任务</system:String>
<system:String x:Key="GoldTimesLimit">投资 N 个源石锭后停止任务</system:String>

View File

@@ -17,6 +17,12 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
<CheckBox
Margin="10"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{DynamicResource RoguelikeAdditionalResource}"
IsChecked="{Binding RoguelikeAdditionalResourceEnabled}" />
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Top"

View File

@@ -177,6 +177,9 @@ namespace MeoAsstGui
RoguelikeSquadList = new List<CombData>
{
new CombData { Display = Localization.GetString("DefaultSquad"), Value = string.Empty },
new CombData { Display = Localization.GetString("IS2NewSquad1"), Value = "心胜于物分队" },
new CombData { Display = Localization.GetString("IS2NewSquad2"), Value = "物尽其用分队" },
new CombData { Display = Localization.GetString("IS2NewSquad3"), Value = "以人为本分队" },
new CombData { Display = Localization.GetString("LeaderSquad"), Value = "指挥分队" },
new CombData { Display = Localization.GetString("GatheringSquad"), Value = "集群分队" },
new CombData { Display = Localization.GetString("SupportSquad"), Value = "后勤分队" },
@@ -777,6 +780,18 @@ namespace MeoAsstGui
/* 肉鸽设置 */
private bool _roguelikeAdditionalResource = Convert.ToBoolean(ViewStatusStorage.Get("Roguelike.Addition", false.ToString()));
public bool RoguelikeAdditionalResourceEnabled
{
get => _roguelikeAdditionalResource;
set
{
SetAndNotify(ref _roguelikeAdditionalResource, value);
ViewStatusStorage.Set("Roguelike.Addition", value.ToString());
}
}
private string _roguelikeMode = ViewStatusStorage.Get("Roguelike.Mode", "0");
/// <summary>
@@ -1502,7 +1517,7 @@ namespace MeoAsstGui
private readonly Dictionary<string, List<string>> _defaultAddress = new Dictionary<string, List<string>>
{
{ "General", new List<string> { string.Empty } },
{ "BlueStacks", new List<string> { "127.0.0.1:5555", "127.0.0.1:5556", "127.0.0.1:5565", "127.0.0.1:5554" } },
{ "BlueStacks", new List<string> { "127.0.0.1:5555", "127.0.0.1:5556", "127.0.0.1:5565", "127.0.0.1:5575", "127.0.0.1:5585", "127.0.0.1:5595", "127.0.0.1:5554" } },
{ "MuMuEmulator", new List<string> { "127.0.0.1:7555" } },
{ "LDPlayer", new List<string> { "emulator-5554", "127.0.0.1:5555", "127.0.0.1:5556", "127.0.0.1:5554" } },
{ "Nox", new List<string> { "127.0.0.1:62001", "127.0.0.1:59865" } },