Files
better-genshin-impact/BetterGenshinImpact/GameTask/AutoFight/Config/DefaultAutoFightConfig.cs
辉鸭蛋 c461938ddd add elemental collect handler
在 `DefaultAutoFightConfig.cs` 中,将 `JsonSerializer.Deserialize` 替换为 `Newtonsoft.Json.JsonConvert.DeserializeObject` 来反序列化 `combat_avatar.json` 文件。

在 `ActionFactory.cs` 中,添加了 `BetterGenshinImpact.GameTask.AutoGeniusInvokation.Model` 的引用,并在 `ActionFactory` 类中添加了新的元素采集处理器(`hydro_collect`、`electro_collect`、`anemo_collect`)。

在 `HotKeyPageViewModel.cs` 中,添加了 `BetterGenshinImpact.GameTask.AutoGeniusInvokation.Model` 的引用,并修改了 `Test1Hotkey` 的处理逻辑,使用 `ElementalCollectHandler` 进行元素采集。

新增了 `ElementalCollectHandler.cs` 文件,定义了 `ElementalCollectHandler` 类,用于处理元素采集逻辑。该类根据元素类型筛选角色,并执行相应的攻击或技能操作。同时定义了 `ElementalCollectAvatar` 和 `ElementalCollectAvatarConfigs` 类,用于配置和管理不同元素类型的角色。
2024-11-01 01:47:10 +08:00

34 lines
1.3 KiB
C#

using BetterGenshinImpact.Core.Config;
using BetterGenshinImpact.Service;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.Json;
namespace BetterGenshinImpact.GameTask.AutoFight.Config;
public class DefaultAutoFightConfig
{
public static List<CombatAvatar> CombatAvatars { get; set; }
public static List<string> CombatAvatarNames { get; set; }
public static Dictionary<string, CombatAvatar> CombatAvatarMap { get; set; }
public static Dictionary<string, CombatAvatar> CombatAvatarNameEnMap { get; set; }
static DefaultAutoFightConfig()
{
var json = File.ReadAllText(Global.Absolute(@"GameTask\AutoFight\Assets\combat_avatar.json"));
var config = Newtonsoft.Json.JsonConvert.DeserializeObject<List<CombatAvatar>>(json);
CombatAvatars = config ?? throw new Exception("combat_avatar.json deserialize failed");
CombatAvatarNames = config.Select(x => x.Name).ToList();
CombatAvatarMap = config.ToDictionary(x => x.Name);
CombatAvatarNameEnMap = config.ToDictionary(x => x.NameEn);
}
public static string AvatarAliasToStandardName(string alias)
{
var avatar = CombatAvatars.Find(x => x.Alias.Contains(alias)) ?? throw new Exception($"角色名称校验失败:{alias}");
return avatar.Name;
}
}