mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-18 18:20:39 +08:00
@@ -36,6 +36,11 @@
|
||||
"name": "羽毛笔",
|
||||
"skill": 1
|
||||
},
|
||||
{
|
||||
"name": "银灰",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1
|
||||
},
|
||||
{
|
||||
"name": "陈",
|
||||
"skill": 2
|
||||
@@ -44,15 +49,6 @@
|
||||
"name": "拉普兰德",
|
||||
"skill": 2
|
||||
},
|
||||
{
|
||||
"name": "阿米娅",
|
||||
"skill": 1
|
||||
},
|
||||
{
|
||||
"name": "银灰",
|
||||
"skill": 3,
|
||||
"alternate_skill": 1
|
||||
},
|
||||
{
|
||||
"name": "幽灵鲨",
|
||||
"skill": 2
|
||||
@@ -142,14 +138,6 @@
|
||||
"name": "空弦",
|
||||
"skill": 1
|
||||
},
|
||||
{
|
||||
"name": "蓝毒",
|
||||
"skill": 1
|
||||
},
|
||||
{
|
||||
"name": "白金",
|
||||
"skill": 2
|
||||
},
|
||||
{
|
||||
"name": "克洛丝",
|
||||
"skill": 1
|
||||
|
||||
@@ -48,42 +48,51 @@ namespace asst::recruit_calc
|
||||
}
|
||||
|
||||
std::vector<RecruitCombs> result;
|
||||
const size_t tag_size = tags.size();
|
||||
result.reserve(tag_size * (tag_size * tag_size + 5) / 6); // C(size, 3) + C(size, 2) + C(size, 1)
|
||||
|
||||
// select one tag first
|
||||
for (size_t i = 0; i < tags.size(); ++i) {
|
||||
for (size_t i = 0; i < tag_size; ++i) {
|
||||
RecruitCombs temp1 = rcs_with_single_tag[i];
|
||||
if (temp1.opers.empty()) continue; // this is not possible
|
||||
result.push_back(temp1); // that is it
|
||||
result.emplace_back(temp1); // that is it
|
||||
|
||||
// but what if another tag is also selected
|
||||
for (size_t j = i + 1; j < tags.size(); ++j) {
|
||||
for (size_t j = i + 1; j < tag_size; ++j) {
|
||||
RecruitCombs temp2 = temp1 * rcs_with_single_tag[j];
|
||||
if (temp2.opers.empty()) continue;
|
||||
if (!temp2.opers.empty()) result.push_back(temp2); // two tags only
|
||||
result.emplace_back(temp2); // two tags only
|
||||
|
||||
// select a third one
|
||||
for (size_t k = j + 1; k < tags.size(); ++k) {
|
||||
for (size_t k = j + 1; k < tag_size; ++k) {
|
||||
RecruitCombs temp3 = temp2 * rcs_with_single_tag[k];
|
||||
if (temp3.opers.empty()) continue;
|
||||
result.push_back(temp3);
|
||||
result.emplace_back(temp3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static constexpr std::string_view SeniorOper = "高级资深干员";
|
||||
|
||||
for (auto comb_iter = result.begin(); comb_iter != result.end(); ++comb_iter) {
|
||||
if (std::ranges::find(comb_iter->tags, SeniorOper) != comb_iter->tags.end()) continue;
|
||||
for (auto comb_iter = result.begin(); comb_iter != result.end();) {
|
||||
if (std::ranges::find(comb_iter->tags, SeniorOper) != comb_iter->tags.end()) {
|
||||
++comb_iter;
|
||||
continue;
|
||||
}
|
||||
// no senior tag, remove 6-star operators
|
||||
// assuming sorted by level
|
||||
auto iter = std::ranges::find_if(comb_iter->opers, [](const RecruitOperInfo& op) { return op.level >= 6; });
|
||||
if (iter == comb_iter->opers.end()) continue;
|
||||
if (iter == comb_iter->opers.end()) {
|
||||
++comb_iter;
|
||||
continue;
|
||||
}
|
||||
comb_iter->opers.erase(iter, comb_iter->opers.end());
|
||||
if (comb_iter->opers.empty()) {
|
||||
comb_iter = result.erase(comb_iter);
|
||||
continue;
|
||||
}
|
||||
comb_iter->update_attributes();
|
||||
++comb_iter;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
|
||||
<system:String x:Key="RoguelikeStrategyCandle">Get candles, pass levels as more as possible</system:String>
|
||||
<system:String x:Key="RoguelikeStrategyGold">Deposit coins, exit after shop in the first level</system:String>
|
||||
|
||||
<system:String x:Key="StartingSquad">Starting Squad</system:String>
|
||||
<system:String x:Key="StartingRoles">Starting Roles</system:String>
|
||||
<system:String x:Key="StartingCoreChar">Starting Oper (single, CN name only)</system:String>
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
|
||||
<system:String x:Key="RoguelikeStrategyCandle">キャンドルを集める、多くのステージをクリアする</system:String>
|
||||
<system:String x:Key="RoguelikeStrategyGold">源石錐を集める、1階旅商人のすぐ後に終了する</system:String>
|
||||
|
||||
<system:String x:Key="StartingSquad">スターティング・スクワッド</system:String>
|
||||
<system:String x:Key="StartingRoles">始めるキャリア</system:String>
|
||||
<system:String x:Key="StartingCoreChar">オペレーター(シングルプレイヤー、中国名のみ)</system:String>
|
||||
|
||||
@@ -48,6 +48,28 @@
|
||||
|
||||
<system:String x:Key="RoguelikeStrategyCandle">통합전략: 촛불 우선</system:String>
|
||||
<system:String x:Key="RoguelikeStrategyGold">통합전략: 오리지늄 주괴 우선</system:String>
|
||||
<system:String x:Key="StartingSquad">시동 분대</system:String>
|
||||
<system:String x:Key="StartingRoles">시동 프로팀</system:String>
|
||||
<system:String x:Key="StartingCoreChar">시초 사무원 (1명)</system:String>
|
||||
<system:String x:Key="StartingCoreCharTip">개별 간부의 중국어 이름만 지원하며, 기입하지 않으면 기본 선택입니다</system:String>
|
||||
|
||||
<system:String x:Key="DefaultSquad">묵인</system:String>
|
||||
<system:String x:Key="LeaderSquad">지휘 분대</system:String>
|
||||
<system:String x:Key="GatheringSquad">집합 분대</system:String>
|
||||
<system:String x:Key="SupportSquad">지원 분대</system:String>
|
||||
<system:String x:Key="SpearheadSquad">예봉 분대</system:String>
|
||||
<system:String x:Key="TacticalAssaultOperative">강습 전술 분대</system:String>
|
||||
<system:String x:Key="TacticalFortificationOperative">방어 전술 분대</system:String>
|
||||
<system:String x:Key="TacticalRangedOperative">원거리 전술 분대</system:String>
|
||||
<system:String x:Key="TacticalDestructionOperative">파괴 전술 분대</system:String>
|
||||
<system:String x:Key="ResearchSquad">연구 분대</system:String>
|
||||
<system:String x:Key="First-ClassSquad">고급화 분대</system:String>
|
||||
|
||||
<system:String x:Key="DefaultRoles">묵인</system:String>
|
||||
<system:String x:Key="FirstMoveAdvantage">선수필승</system:String>
|
||||
<system:String x:Key="SlowAndSteadyWinsTheRace">차근차근</system:String>
|
||||
<system:String x:Key="OvercomingYourWeaknesses">상호보완</system:String>
|
||||
<system:String x:Key="AsYourHeartDesires">원하는 대로</system:String>
|
||||
|
||||
<system:String x:Key="NotSelected">선택하지 않기</system:String>
|
||||
<system:String x:Key="Official">공식 서버</system:String>
|
||||
|
||||
@@ -48,6 +48,28 @@
|
||||
|
||||
<system:String x:Key="RoguelikeStrategyCandle">🕺🍺🕺🕺🍺🍷🍻🍺</system:String>
|
||||
<system:String x:Key="RoguelikeStrategyGold">🍺🍻🍻🍷🍺🍸🕺🍺</system:String>
|
||||
<system:String x:Key="StartingSquad">🍷🍻💃🍸💃</system:String>
|
||||
<system:String x:Key="StartingRoles">🍻🕺🍸🍺🍻🍻</system:String>
|
||||
<system:String x:Key="StartingCoreChar">🕺🍷🍻💃🍻🍸🍸🍺🍷</system:String>
|
||||
<system:String x:Key="StartingCoreCharTip">🍻🍻🍷🍸🍺🍻🍷🍺💃🍺🍷🍸🍺🍺🍺🍷🍸🕺🍷🍸</system:String>
|
||||
|
||||
<system:String x:Key="DefaultSquad">🍷🍸💃🍷🍷</system:String>
|
||||
<system:String x:Key="LeaderSquad">🍻🍸🍷🍸🍺</system:String>
|
||||
<system:String x:Key="GatheringSquad">🍻🍸🕺🍺💃</system:String>
|
||||
<system:String x:Key="SupportSquad">🕺🍸🍸🍸💃</system:String>
|
||||
<system:String x:Key="SpearheadSquad">🍷🍷🍺🍻💃</system:String>
|
||||
<system:String x:Key="TacticalAssaultOperative">🍸💃🍻🍷🍷🍻🍻</system:String>
|
||||
<system:String x:Key="TacticalFortificationOperative">🍸🍸🍺💃🍺🍷🍸</system:String>
|
||||
<system:String x:Key="TacticalRangedOperative">🍺🍻💃💃🍺🍷💃</system:String>
|
||||
<system:String x:Key="TacticalDestructionOperative">🍷🍺🍺🍺🍻🍸💃</system:String>
|
||||
<system:String x:Key="ResearchSquad">🍷🍻🍻🍷🍺</system:String>
|
||||
<system:String x:Key="First-ClassSquad">🍸🍸🍺💃🍸🍸</system:String>
|
||||
|
||||
<system:String x:Key="DefaultRoles">🍸🍷💃🍻🍻🍷</system:String>
|
||||
<system:String x:Key="FirstMoveAdvantage">🍺🍻🍸🍺🍷🍺🍻🍷🍺🍸🍸🕺🍺🍻💃</system:String>
|
||||
<system:String x:Key="SlowAndSteadyWinsTheRace">🍻🍷🍸🍸🍺🍺🍻🍸🕺🍷🍻🍷🍸🍻🍷</system:String>
|
||||
<system:String x:Key="OvercomingYourWeaknesses">🍷🍺🍸🍺🍸💃💃🍻🍸🍸💃🍸🍺🍺🍸</system:String>
|
||||
<system:String x:Key="AsYourHeartDesires">🍷🍺💃🍺🍻🍸🍻🍸🍸🍷🍷</system:String>
|
||||
|
||||
<system:String x:Key="NotSelected">💃🍺</system:String>
|
||||
<system:String x:Key="Official">🕺🍺</system:String>
|
||||
@@ -178,6 +200,8 @@
|
||||
<system:String x:Key="PR-D-1">🍷🍸🍷</system:String>
|
||||
<system:String x:Key="PR-D-2">💃🕺💃🍸</system:String>
|
||||
|
||||
<system:String x:Key="Annihilation">🍷🍻🍷🍸🍻</system:String>
|
||||
|
||||
<system:String x:Key="TodaysStageTip">🍷🍸🍺🍸🍷</system:String>
|
||||
<system:String x:Key="CETip">🍻🕺💃🍻🍺</system:String>
|
||||
<system:String x:Key="APTip">💃🍷🍷🍷🍺</system:String>
|
||||
|
||||
@@ -48,6 +48,28 @@
|
||||
|
||||
<system:String x:Key="RoguelikeStrategyCandle">刷蠟燭,盡可能穩定的打更多層數</system:String>
|
||||
<system:String x:Key="RoguelikeStrategyGold">刷源石錠,第一層商店後直接退出</system:String>
|
||||
<system:String x:Key="StartingSquad">開局分隊</system:String>
|
||||
<system:String x:Key="StartingRoles">開局職業組</system:String>
|
||||
<system:String x:Key="StartingCoreChar">開局幹員(單個)</system:String>
|
||||
<system:String x:Key="StartingCoreCharTip">僅支持單個幹員中文名,不填寫則默認選擇</system:String>
|
||||
|
||||
<system:String x:Key="DefaultSquad">默認分隊</system:String>
|
||||
<system:String x:Key="LeaderSquad">指揮分隊</system:String>
|
||||
<system:String x:Key="GatheringSquad">集羣分隊</system:String>
|
||||
<system:String x:Key="SupportSquad">後勤分隊</system:String>
|
||||
<system:String x:Key="SpearheadSquad">矛頭分隊</system:String>
|
||||
<system:String x:Key="TacticalAssaultOperative">突擊戰術分隊</system:String>
|
||||
<system:String x:Key="TacticalFortificationOperative">堡壘戰術分隊</system:String>
|
||||
<system:String x:Key="TacticalRangedOperative">遠程戰術分隊</system:String>
|
||||
<system:String x:Key="TacticalDestructionOperative">破壞戰術分隊</system:String>
|
||||
<system:String x:Key="ResearchSquad">研究分隊</system:String>
|
||||
<system:String x:Key="First-ClassSquad">高規格分隊</system:String>
|
||||
|
||||
<system:String x:Key="DefaultRoles">默認職業組</system:String>
|
||||
<system:String x:Key="FirstMoveAdvantage">先手必勝(先鋒、狙擊、特種)</system:String>
|
||||
<system:String x:Key="SlowAndSteadyWinsTheRace">穩紮穩打(重裝、術師、狙擊)</system:String>
|
||||
<system:String x:Key="OvercomingYourWeaknesses">取長補短(近衛、輔助、醫療)</system:String>
|
||||
<system:String x:Key="AsYourHeartDesires">隨心所欲(三張隨機)</system:String>
|
||||
|
||||
<system:String x:Key="NotSelected">不選擇</system:String>
|
||||
<system:String x:Key="Official">官服</system:String>
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
TextDecorations="None">
|
||||
<TextBlock Text="{DynamicResource QQgroup1}" />
|
||||
</Hyperlink>
|
||||
<TextBlock Text="{DynamicResource QQgroupfull}" />
|
||||
<Hyperlink
|
||||
Click="Hyperlink_Click"
|
||||
NavigateUri="https://jq.qq.com/?_wv=1027&k=u9i2n7Sb"
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
VerticalAlignment="Bottom"
|
||||
Orientation="Horizontal">
|
||||
<TextBlock
|
||||
Width="100"
|
||||
Width="150"
|
||||
HorizontalAlignment="Right"
|
||||
Block.TextAlignment="Right"
|
||||
Style="{StaticResource TextBlockDefault}"
|
||||
@@ -159,7 +159,7 @@
|
||||
HorizontalAlignment="Right"
|
||||
Text="{Binding RoguelikeCoreChar}"
|
||||
TextWrapping="Wrap"
|
||||
ToolTip="{Binding RoguelikeCoreCharTip}" />
|
||||
ToolTip="{DynamicResource StartingCoreCharTip}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
@@ -1845,6 +1845,7 @@ namespace MeoAsstGui
|
||||
Localization.GetString("Tip"),
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question);
|
||||
System.Windows.Forms.MessageBoxManager.Unregister();
|
||||
SetAndNotify(ref _language, value);
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
|
||||
@@ -227,12 +227,19 @@ namespace MeoAsstGui
|
||||
// SideStory「多索雷斯假日」复刻活动关卡
|
||||
new CombData { Display = "DH-9", Value = "DH-9" },
|
||||
|
||||
// 主线关卡
|
||||
new CombData { Display = "1-7", Value = "1-7" },
|
||||
|
||||
// 资源本
|
||||
new CombData { Display = Localization.GetString("CE-6"), Value = "CE-6" },
|
||||
new CombData { Display = Localization.GetString("AP-5"), Value = "AP-5" },
|
||||
new CombData { Display = Localization.GetString("CA-5"), Value = "CA-5" },
|
||||
new CombData { Display = Localization.GetString("LS-6"), Value = "LS-6" },
|
||||
|
||||
// 剿灭模式
|
||||
new CombData { Display = Localization.GetString("Annihilation"), Value = "Annihilation" },
|
||||
|
||||
// 芯片本
|
||||
new CombData { Display = Localization.GetString("PR-A-1"), Value = "PR-A-1" },
|
||||
new CombData { Display = Localization.GetString("PR-A-2"), Value = "PR-A-2" },
|
||||
new CombData { Display = Localization.GetString("PR-B-1"), Value = "PR-B-1" },
|
||||
@@ -242,9 +249,6 @@ namespace MeoAsstGui
|
||||
new CombData { Display = Localization.GetString("PR-D-1"), Value = "PR-D-1" },
|
||||
new CombData { Display = Localization.GetString("PR-D-2"), Value = "PR-D-2" },
|
||||
|
||||
// 剿灭模式
|
||||
new CombData { Display = Localization.GetString("Annihilation"), Value = "Annihilation" },
|
||||
|
||||
// SideStory「绿野幻梦」活动
|
||||
// new CombData { Display = "DV-6", Value = "DV-6" },
|
||||
// new CombData { Display = "DV-7", Value = "DV-7" },
|
||||
|
||||
@@ -21,8 +21,9 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel
|
||||
Grid.Row="0"
|
||||
Margin="0,30,0,0"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
VerticalAlignment="Top"
|
||||
Orientation="Vertical">
|
||||
<TextBlock
|
||||
Margin="10"
|
||||
@@ -77,9 +78,8 @@
|
||||
<ScrollViewer
|
||||
Grid.Column="1"
|
||||
Width="360"
|
||||
Height="455"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,10"
|
||||
VerticalAlignment="Top"
|
||||
local:AutoScroll.AutoScroll="True"
|
||||
HorizontalScrollBarVisibility="Disabled">
|
||||
<ItemsControl ItemsSource="{Binding Path=LogItemViewModels}">
|
||||
@@ -88,7 +88,7 @@
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock
|
||||
Width="350"
|
||||
Margin="5,5"
|
||||
Margin="5"
|
||||
FontWeight="{Binding Weight}"
|
||||
Foreground="{Binding Color}"
|
||||
Style="{StaticResource TextBlockDefault}"
|
||||
|
||||
Reference in New Issue
Block a user