feat: 成就系统 (#12823)

* feat: 成就系统

* chore: 调整时间

* feat: 追溯同类成就

* chore: 调整弹窗显示

* feat: 增加解锁条件

* feat: 使用静态类替代硬编码 id

* feat: 刷理智类成就实现

* chore: 抽离 CheckProgressUnlock

* chore: 加个保底

* feat: 手动停止

* chore: 修改描述

* feat: 成就列表(待翻译)

* i18n: english

* chore: 调整排序

* chore: 使用 DynamicResource 替代硬编码颜色,取消选中高亮

* feat: 可露希尔代理程序正常运转中(1000次刷理智)

* feat: 第一次启动软件

* feat: 使用理智药

* chore: 右键图标的停止也改成ManualStop

* feat: Growl 延迟到窗口显示时弹出

* chore: 默认 WindowState 为 null

* perf: 弹窗居中,虚拟化StackPanel

* chore: 定时执行

* chore: 解锁时间显示改为本地时间

* chore: 已完成的成就不显示进度条

* chore: 统一格式

* feat: 临期理智药

* chore: 你进行了一次能将大道磨灭的代理任务

* debug: 忘了删

* feat: 使用 MirrorChyan 更新 / 输入错误 cdk

* chore: 调整设置顺序

* chore: 截图测试显示在应用中心

* chore: 调整 AchievementListWindow 绑定

* chore: summary

* fix: 卡启动

* feat: 恢复进度后保存文件

* feat(#12823): 新增成就 (#12840)

* feat: 真正的抽卡

* feat: 窥屏

* feat: 喜报

* feat: 不速之客

* feat: 自定义达人

* feat: 火星人

* feat: 严重错讠

* feat: 这也能点?

---------

Co-authored-by: uye <99072975+ABA2396@users.noreply.github.com>

* chore: 火星人

* feat: 勋章颜色

* feat: 成就图标

* feat: 问题反馈

* feat: 成就等级

* feat: 急急国王

* feat: 自动战斗

* i18n: 打个框先

* i18n: KR translation

* feat: 公招

* i18n: 翻译

* chore: 隐藏吉吉国王

* feat: 借助战

* chore: 测试版

* feat: 作弊

* chore: 优化显示效果

* chore: 忽略返回值

* feat: 或许我应该换一份作业?

* feat: 平均截图速度

* feat: 验证成就合法性,新增 CustomData 字段

* chore: 调整延迟时间过长为隐藏成就

* feat: 今日宜抽卡

* feat: 分组

* feat: 彩色!

* chore: 忘加[JsonIgnore]了

* feat: 彩色!

* chore: 这玩意啥时候混进来了

* feat: 网络折磨人

* chore: 调整描述

* chore: httpService unused

* chore: debug 模式点一次触发

* feat: 新增成就 new 提示,仅本次关闭前生效

* chore: 隐藏未解锁的隐藏成就

* feat: 挂机

* feat: 一天启动 3 次任务

* chore: lock 时重置进度

* feat: 肉鸽相关成就

* chore: 调整放弃次数

* feat: 作业点赞

* feat: 立刻停止任务

* fix: RoguelikeRetreat

* chore: 不存非法成就

* feat: 代理指挥出现错误

* fix: 次数填错了

* feat: 新增 CustomData 类辅助函数,添加时长类成就

* chore: 调整 rare 逻辑

* chore: 注释

* chore: 调整成就分类

* chore: 调整描述

* i18n: 打个框

* fix: wpf binding error

* feat: 肉鸽通关难度

* perf: 解锁和锁定全成就时禁止保存

* chore: 调整成就显示

* chore: 调整 LinearGradientBrush

* feat: 新增肉鸽 n4

* i18n: fully Claude Sonnet 4 EN translation

* i18n: 繁中翻译

* i18n: KR translation

* i18n: JP translation

* feat: JsonDataHelper 支持自定义文件夹

* feat: 自定义备份路径

* chore: 哦这该死的 xaml designer

* fix: 避免设计时生成不必要的data文件夹

* feat: 触发牛牛时按钮位置移动

* Revert "fix: 避免设计时生成不必要的data文件夹"

This reverts commit 2ac878dbbd.

* fix: 不许save, 给你抽出来

* Reapply "fix: 避免设计时生成不必要的data文件夹"

This reverts commit 76985896cb.

* chore: 调整显示顺序

* feat: 添加搜索

---------

Co-authored-by: Constrat <56174894+Constrat@users.noreply.github.com>
Co-authored-by: Lemon-miaow <61692393+Lemon-miaow@users.noreply.github.com>
Co-authored-by: status102 <102887808+status102@users.noreply.github.com>
Co-authored-by: HX3N <scarlet7518@gmail.com>
Co-authored-by: Manicsteiner <Manicsteiner@outlook.com>
This commit is contained in:
uye
2025-06-10 23:40:25 +08:00
committed by GitHub
parent 3db8613a43
commit 1b2df5ff5d
41 changed files with 3057 additions and 48 deletions

View File

@@ -874,6 +874,7 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
{
case "RoguelikeInvestmentReachFull":
Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("RoguelikeInvestmentReachFull"), UiLogColor.Info);
AchievementTrackerHelper.Instance.SetProgress(AchievementIds.RoguelikeGoldMax, 999);
break;
case "RoguelikeInvestmentReachLimit":
@@ -882,12 +883,14 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
case "RoguelikeInvestment":
Instances.TaskQueueViewModel.AddLog(string.Format(LocalizationHelper.GetString("RoguelikeInvestment"), subTaskDetails!["count"], subTaskDetails["total"], subTaskDetails["deposit"]), UiLogColor.Info);
AchievementTrackerHelper.Instance.SetProgress(AchievementIds.RoguelikeGoldMax, (int)subTaskDetails["deposit"]!);
break;
case "RoguelikeSettlement":
{// 肉鸽结算
var report = subTaskDetails;
var pass = (bool)report!["game_pass"]!;
var difficulty = (int)(report["difficulty"] ?? -1);
var roguelikeInfo = string.Format(
LocalizationHelper.GetString("RoguelikeSettlement"),
pass ? "✓" : "✗",
@@ -898,11 +901,34 @@ public class RoguelikeSettingsUserControlModel : TaskViewModel
report["boss"],
report["recruit"],
report["collection"],
report["difficulty"],
difficulty,
report["score"],
report["exp"],
report["skill"]);
if (pass)
{
if (difficulty > 4)
{
AchievementTrackerHelper.Instance.Unlock(AchievementIds.RoguelikeN04);
}
if (difficulty > 8)
{
AchievementTrackerHelper.Instance.Unlock(AchievementIds.RoguelikeN08);
}
if (difficulty > 12)
{
AchievementTrackerHelper.Instance.Unlock(AchievementIds.RoguelikeN12);
}
if (difficulty > 15)
{
AchievementTrackerHelper.Instance.Unlock(AchievementIds.RoguelikeN15);
}
}
Instances.TaskQueueViewModel.AddLog(roguelikeInfo, UiLogColor.Message);
break;
}