mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
add tower wave spec
This commit is contained in:
14
src/Snap.Hutao/Snap.Hutao/Model/Metadata/Tower/GoalType.cs
Normal file
14
src/Snap.Hutao/Snap.Hutao/Model/Metadata/Tower/GoalType.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
namespace Snap.Hutao.Model.Metadata.Tower;
|
||||
|
||||
[Localization]
|
||||
internal enum GoalType
|
||||
{
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerGoalTypeDefeatMonsters))]
|
||||
DefeatMonsters,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerGoalTypeDefendTarget))]
|
||||
DefendTarget,
|
||||
}
|
||||
@@ -31,7 +31,7 @@ internal sealed class TowerFloor
|
||||
public string Background { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 描述
|
||||
/// 地脉紊乱
|
||||
/// </summary>
|
||||
public List<string> Descriptions { get; set; } = default!;
|
||||
}
|
||||
@@ -35,8 +35,28 @@ internal sealed class TowerLevel
|
||||
/// </summary>
|
||||
public List<MonsterRelationshipId> FirstMonsters { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 上半怪物波次
|
||||
/// </summary>
|
||||
public List<TowerWave> FirstWaves { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 上半造物
|
||||
/// </summary>
|
||||
public NameDescription? FirstGadget { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下半怪物预览
|
||||
/// </summary>
|
||||
public List<MonsterRelationshipId> SecondMonsters { get; set; } = default!;
|
||||
public List<MonsterRelationshipId>? SecondMonsters { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下半怪物波次
|
||||
/// </summary>
|
||||
public List<TowerWave> SecondWaves { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 下半造物
|
||||
/// </summary>
|
||||
public NameDescription? SecondGadget { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
|
||||
namespace Snap.Hutao.Model.Metadata.Tower;
|
||||
|
||||
internal sealed class TowerMonster
|
||||
{
|
||||
/// <summary>
|
||||
/// 怪物关系Id
|
||||
/// </summary>
|
||||
public MonsterRelationshipId Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 个数
|
||||
/// </summary>
|
||||
public uint Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否攻击镇石
|
||||
/// </summary>
|
||||
public bool AttackMonolith { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 特殊词条
|
||||
/// </summary>
|
||||
public List<NameDescription>? Affixes { get; set; }
|
||||
}
|
||||
24
src/Snap.Hutao/Snap.Hutao/Model/Metadata/Tower/TowerWave.cs
Normal file
24
src/Snap.Hutao/Snap.Hutao/Model/Metadata/Tower/TowerWave.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
|
||||
namespace Snap.Hutao.Model.Metadata.Tower;
|
||||
|
||||
internal sealed class TowerWave
|
||||
{
|
||||
/// <summary>
|
||||
/// 波次类型
|
||||
/// </summary>
|
||||
public WaveType Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 额外描述
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分波怪物
|
||||
/// </summary>
|
||||
public List<TowerMonster> Monsters { get; set; } = default!;
|
||||
}
|
||||
85
src/Snap.Hutao/Snap.Hutao/Model/Metadata/Tower/WaveType.cs
Normal file
85
src/Snap.Hutao/Snap.Hutao/Model/Metadata/Tower/WaveType.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
namespace Snap.Hutao.Model.Metadata.Tower;
|
||||
|
||||
/// <summary>
|
||||
/// 第二波:击败所有怪物,下一波才会出现
|
||||
/// D组:不同的组同时在场,各自分波独立
|
||||
/// D组第一波:不同的组同时在场,各自分波独立
|
||||
/// </summary>
|
||||
[Localization]
|
||||
internal enum WaveType
|
||||
{
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeIndependent))]
|
||||
Independent = 0,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeWave1))]
|
||||
Wave1 = 1,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeWave2))]
|
||||
Wave2 = 2,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeWave3))]
|
||||
Wave3 = 3,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeWave4))]
|
||||
Wave4 = 4,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupA))]
|
||||
GroupA = 10,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupAWave1))]
|
||||
GroupAWave1 = 11,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupAWave2))]
|
||||
GroupAWave2 = 12,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupAWave3))]
|
||||
GroupAWave3 = 13,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupB))]
|
||||
GroupB = 20,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupBWave1))]
|
||||
GroupBWave1 = 21,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupBWave2))]
|
||||
GroupBWave2 = 22,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupBWave3))]
|
||||
GroupBWave3 = 23,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupC))]
|
||||
GroupC = 30,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupCWave1))]
|
||||
GroupCWave1 = 31,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupCWave2))]
|
||||
GroupCWave2 = 32,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupCWave3))]
|
||||
GroupCWave3 = 33,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupD))]
|
||||
GroupD = 40,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupDWave1))]
|
||||
GroupDWave1 = 41,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupDWave2))]
|
||||
GroupDWave2 = 42,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeGroupDWave3))]
|
||||
GroupDWave3 = 43,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeSuppressed))]
|
||||
Suppressed = 99,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeAdditional))]
|
||||
Additional = 999,
|
||||
|
||||
[LocalizationKey(nameof(SH.ModelMetadataTowerWaveTypeWave1Additional))]
|
||||
Wave1Additional = 1999,
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
namespace Snap.Hutao.ViewModel.AvatarProperty;
|
||||
namespace Snap.Hutao.Model;
|
||||
|
||||
/// <summary>
|
||||
/// 名称与描述
|
||||
@@ -861,6 +861,240 @@ namespace Snap.Hutao.Resource.Localization {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 打怪 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerGoalTypeDefeatMonsters {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerGoalTypeDefeatMonsters", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 守塔 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerGoalTypeDefendTarget {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerGoalTypeDefendTarget", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 附加 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeAdditional {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeAdditional", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 A组:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupA {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupA", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 A组第一波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupAWave1 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupAWave1", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 A组第二波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupAWave2 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupAWave2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 A组第三波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupAWave3 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupAWave3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 B组:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupB {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupB", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 B组第一波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupBWave1 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupBWave1", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 B组第二波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupBWave2 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupBWave2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 B组第三波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupBWave3 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupBWave3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 C组:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupC {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupC", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 C组第一波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupCWave1 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupCWave1", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 C组第二波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupCWave2 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupCWave2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 C组第三波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupCWave3 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupCWave3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 D组:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupD {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupD", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 D组第一波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupDWave1 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupDWave1", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 D组第二波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupDWave2 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupDWave2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 D组第三波:不同的组同时在场,各自分波独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeGroupDWave3 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeGroupDWave3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 与其他怪物独立 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeIndependent {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeIndependent", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 暂时没有分波信息 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeSuppressed {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeSuppressed", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 第一波:击败所有怪物,下一波才会出现 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeWave1 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeWave1", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 第一波附加:为第一波补充怪物 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeWave1Additional {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeWave1Additional", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 第二波:击败所有怪物,下一波才会出现 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeWave2 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeWave2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 第三波:击败所有怪物,下一波才会出现 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeWave3 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeWave3", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 第四波:击败所有怪物,下一波才会出现 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string ModelMetadataTowerWaveTypeWave4 {
|
||||
get {
|
||||
return ResourceManager.GetString("ModelMetadataTowerWaveTypeWave4", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 请更新角色橱窗数据 的本地化字符串。
|
||||
/// </summary>
|
||||
|
||||
@@ -413,6 +413,84 @@
|
||||
<value>武器强化素材</value>
|
||||
<comment>Need EXACT same string in game</comment>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerGoalTypeDefeatMonsters" xml:space="preserve">
|
||||
<value>打怪</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerGoalTypeDefendTarget" xml:space="preserve">
|
||||
<value>守塔</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeAdditional" xml:space="preserve">
|
||||
<value>附加</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupA" xml:space="preserve">
|
||||
<value>A组:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupAWave1" xml:space="preserve">
|
||||
<value>A组第一波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupAWave2" xml:space="preserve">
|
||||
<value>A组第二波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupAWave3" xml:space="preserve">
|
||||
<value>A组第三波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupB" xml:space="preserve">
|
||||
<value>B组:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupBWave1" xml:space="preserve">
|
||||
<value>B组第一波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupBWave2" xml:space="preserve">
|
||||
<value>B组第二波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupBWave3" xml:space="preserve">
|
||||
<value>B组第三波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupC" xml:space="preserve">
|
||||
<value>C组:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupCWave1" xml:space="preserve">
|
||||
<value>C组第一波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupCWave2" xml:space="preserve">
|
||||
<value>C组第二波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupCWave3" xml:space="preserve">
|
||||
<value>C组第三波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupD" xml:space="preserve">
|
||||
<value>D组:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupDWave1" xml:space="preserve">
|
||||
<value>D组第一波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupDWave2" xml:space="preserve">
|
||||
<value>D组第二波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeGroupDWave3" xml:space="preserve">
|
||||
<value>D组第三波:不同的组同时在场,各自分波独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeIndependent" xml:space="preserve">
|
||||
<value>与其他怪物独立</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeSuppressed" xml:space="preserve">
|
||||
<value>暂时没有分波信息</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeWave1" xml:space="preserve">
|
||||
<value>第一波:击败所有怪物,下一波才会出现</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeWave1Additional" xml:space="preserve">
|
||||
<value>第一波附加:为第一波补充怪物</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeWave2" xml:space="preserve">
|
||||
<value>第二波:击败所有怪物,下一波才会出现</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeWave3" xml:space="preserve">
|
||||
<value>第三波:击败所有怪物,下一波才会出现</value>
|
||||
</data>
|
||||
<data name="ModelMetadataTowerWaveTypeWave4" xml:space="preserve">
|
||||
<value>第四波:击败所有怪物,下一波才会出现</value>
|
||||
</data>
|
||||
<data name="ModelNameValueDefaultDescription" xml:space="preserve">
|
||||
<value>请更新角色橱窗数据</value>
|
||||
</data>
|
||||
|
||||
@@ -6,7 +6,6 @@ using Snap.Hutao.Model.Intrinsic;
|
||||
using Snap.Hutao.Model.Intrinsic.Format;
|
||||
using Snap.Hutao.Model.Metadata.Converter;
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
using Snap.Hutao.ViewModel.AvatarProperty;
|
||||
using Snap.Hutao.Web.Enka.Model;
|
||||
using EntityAvatarInfo = Snap.Hutao.Model.Entity.AvatarInfo;
|
||||
using MetadataAvatar = Snap.Hutao.Model.Metadata.Avatar.Avatar;
|
||||
|
||||
@@ -2,15 +2,6 @@
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Core.DependencyInjection.Abstraction;
|
||||
using Snap.Hutao.Model.Intrinsic;
|
||||
using Snap.Hutao.Model.Metadata;
|
||||
using Snap.Hutao.Model.Metadata.Achievement;
|
||||
using Snap.Hutao.Model.Metadata.Avatar;
|
||||
using Snap.Hutao.Model.Metadata.Item;
|
||||
using Snap.Hutao.Model.Metadata.Monster;
|
||||
using Snap.Hutao.Model.Metadata.Reliquary;
|
||||
using Snap.Hutao.Model.Metadata.Weapon;
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
|
||||
namespace Snap.Hutao.Service.Metadata;
|
||||
|
||||
@@ -18,222 +9,15 @@ namespace Snap.Hutao.Service.Metadata;
|
||||
/// 元数据服务
|
||||
/// </summary>
|
||||
[HighQuality]
|
||||
[SuppressMessage("", "SA1124")]
|
||||
internal interface IMetadataService : ICastService
|
||||
internal interface IMetadataService : ICastService,
|
||||
IMetadataServiceRawData,
|
||||
IMetadataServiceIdDataMap,
|
||||
IMetadataServiceNameDataMap,
|
||||
IMetadataServiceNameLevelCurveMap
|
||||
{
|
||||
/// <summary>
|
||||
/// 异步初始化服务,尝试更新元数据
|
||||
/// </summary>
|
||||
/// <returns>初始化是否成功</returns>
|
||||
ValueTask<bool> InitializeAsync();
|
||||
|
||||
#region RawData
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取成就列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>成就列表</returns>
|
||||
ValueTask<List<Model.Metadata.Achievement.Achievement>> GetAchievementsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取成就分类列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>成就分类列表</returns>
|
||||
ValueTask<List<AchievementGoal>> GetAchievementGoalsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取角色突破列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>角色突破列表</returns>
|
||||
ValueTask<List<Promote>> GetAvatarPromotesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取角色列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>角色列表</returns>
|
||||
ValueTask<List<Avatar>> GetAvatarsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取卡池配置列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>卡池配置列表</returns>
|
||||
ValueTask<List<GachaEvent>> GetGachaEventsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取材料列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>材料列表</returns>
|
||||
ValueTask<List<Material>> GetMaterialsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取怪物列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>怪物列表</returns>
|
||||
ValueTask<List<Monster>> GetMonstersAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物列表</returns>
|
||||
ValueTask<List<Reliquary>> GetReliquariesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物强化属性列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物强化属性列表</returns>
|
||||
ValueTask<List<ReliquarySubAffix>> GetReliquarySubAffixesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物等级数据
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物等级数据</returns>
|
||||
ValueTask<List<ReliquaryMainAffixLevel>> GetReliquaryLevelsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物主属性强化属性列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物强化属性列表</returns>
|
||||
ValueTask<List<ReliquaryMainAffix>> GetReliquaryMainAffixesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物套装
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物套装列表</returns>
|
||||
ValueTask<List<ReliquarySet>> GetReliquarySetsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取武器突破列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>武器突破列表</returns>
|
||||
ValueTask<List<Promote>> GetWeaponPromotesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取武器列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>武器列表</returns>
|
||||
ValueTask<List<Weapon>> GetWeaponsAsync(CancellationToken token = default);
|
||||
#endregion
|
||||
|
||||
#region IdDataMap
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取装备被动Id到圣遗物套装的映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>装备被动Id到圣遗物套装的映射</returns>
|
||||
ValueTask<Dictionary<EquipAffixId, ReliquarySet>> GetEquipAffixIdToReliquarySetMapAsync(CancellationToken token = default);
|
||||
|
||||
ValueTask<Dictionary<ExtendedEquipAffixId, ReliquarySet>> GetExtendedEquipAffixIdToReliquarySetMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取成就映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>成就映射</returns>
|
||||
ValueTask<Dictionary<AchievementId, Model.Metadata.Achievement.Achievement>> GetIdToAchievementMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取Id到角色的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到角色的字典</returns>
|
||||
ValueTask<Dictionary<AvatarId, Avatar>> GetIdToAvatarMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取显示与材料映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>显示与材料映射</returns>
|
||||
ValueTask<Dictionary<MaterialId, DisplayItem>> GetIdToDisplayItemAndMaterialMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取Id到材料的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到材料的字典</returns>
|
||||
ValueTask<Dictionary<MaterialId, Material>> GetIdToMaterialMapAsync(CancellationToken token = default(CancellationToken));
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取Id到圣遗物权重的映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到圣遗物权重的字典</returns>
|
||||
ValueTask<Dictionary<AvatarId, ReliquaryAffixWeight>> GetIdToReliquaryAffixWeightMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取ID到圣遗物副词条的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>字典</returns>
|
||||
ValueTask<Dictionary<ReliquarySubAffixId, ReliquarySubAffix>> GetIdToReliquarySubAffixMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物主词条Id与属性的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>字典</returns>
|
||||
ValueTask<Dictionary<ReliquaryMainAffixId, FightProperty>> GetIdToReliquaryMainPropertyMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取ID到武器的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到武器的字典</returns>
|
||||
ValueTask<Dictionary<WeaponId, Weapon>> GetIdToWeaponMapAsync(CancellationToken token = default);
|
||||
#endregion
|
||||
|
||||
#region NameDataMap
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取名称到角色的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>名称到角色的字典</returns>
|
||||
ValueTask<Dictionary<string, Avatar>> GetNameToAvatarMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取名称到武器的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>名称到武器的字典</returns>
|
||||
ValueTask<Dictionary<string, Weapon>> GetNameToWeaponMapAsync(CancellationToken token = default);
|
||||
#endregion
|
||||
|
||||
#region LevelCurveMap
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取等级角色曲线映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>等级角色曲线映射</returns>
|
||||
ValueTask<Dictionary<Level, Dictionary<GrowCurveType, float>>> GetLevelToAvatarCurveMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取等级怪物曲线映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>等级怪物曲线映射</returns>
|
||||
ValueTask<Dictionary<Level, Dictionary<GrowCurveType, float>>> GetLevelToMonsterCurveMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取等级武器曲线映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>等级武器曲线映射</returns>
|
||||
ValueTask<Dictionary<Level, Dictionary<GrowCurveType, float>>> GetLevelToWeaponCurveMapAsync(CancellationToken token = default);
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model.Intrinsic;
|
||||
using Snap.Hutao.Model.Metadata.Avatar;
|
||||
using Snap.Hutao.Model.Metadata.Item;
|
||||
using Snap.Hutao.Model.Metadata.Reliquary;
|
||||
using Snap.Hutao.Model.Metadata.Weapon;
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
|
||||
namespace Snap.Hutao.Service.Metadata;
|
||||
|
||||
internal interface IMetadataServiceIdDataMap
|
||||
{
|
||||
/// <summary>
|
||||
/// 异步获取装备被动Id到圣遗物套装的映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>装备被动Id到圣遗物套装的映射</returns>
|
||||
ValueTask<Dictionary<EquipAffixId, ReliquarySet>> GetEquipAffixIdToReliquarySetMapAsync(CancellationToken token = default);
|
||||
|
||||
ValueTask<Dictionary<ExtendedEquipAffixId, ReliquarySet>> GetExtendedEquipAffixIdToReliquarySetMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取成就映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>成就映射</returns>
|
||||
ValueTask<Dictionary<AchievementId, Model.Metadata.Achievement.Achievement>> GetIdToAchievementMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取Id到角色的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到角色的字典</returns>
|
||||
ValueTask<Dictionary<AvatarId, Avatar>> GetIdToAvatarMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取显示与材料映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>显示与材料映射</returns>
|
||||
ValueTask<Dictionary<MaterialId, DisplayItem>> GetIdToDisplayItemAndMaterialMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取Id到材料的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到材料的字典</returns>
|
||||
ValueTask<Dictionary<MaterialId, Material>> GetIdToMaterialMapAsync(CancellationToken token = default(CancellationToken));
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取Id到圣遗物权重的映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到圣遗物权重的字典</returns>
|
||||
ValueTask<Dictionary<AvatarId, ReliquaryAffixWeight>> GetIdToReliquaryAffixWeightMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取ID到圣遗物副词条的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>字典</returns>
|
||||
ValueTask<Dictionary<ReliquarySubAffixId, ReliquarySubAffix>> GetIdToReliquarySubAffixMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物主词条Id与属性的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>字典</returns>
|
||||
ValueTask<Dictionary<ReliquaryMainAffixId, FightProperty>> GetIdToReliquaryMainPropertyMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取ID到武器的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>Id到武器的字典</returns>
|
||||
ValueTask<Dictionary<WeaponId, Weapon>> GetIdToWeaponMapAsync(CancellationToken token = default);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model.Metadata.Avatar;
|
||||
using Snap.Hutao.Model.Metadata.Weapon;
|
||||
|
||||
namespace Snap.Hutao.Service.Metadata;
|
||||
|
||||
internal interface IMetadataServiceNameDataMap
|
||||
{
|
||||
/// <summary>
|
||||
/// 异步获取名称到角色的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>名称到角色的字典</returns>
|
||||
ValueTask<Dictionary<string, Avatar>> GetNameToAvatarMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取名称到武器的字典
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>名称到武器的字典</returns>
|
||||
ValueTask<Dictionary<string, Weapon>> GetNameToWeaponMapAsync(CancellationToken token = default);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model.Intrinsic;
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
|
||||
namespace Snap.Hutao.Service.Metadata;
|
||||
|
||||
internal interface IMetadataServiceNameLevelCurveMap
|
||||
{
|
||||
/// <summary>
|
||||
/// 异步获取等级角色曲线映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>等级角色曲线映射</returns>
|
||||
ValueTask<Dictionary<Level, Dictionary<GrowCurveType, float>>> GetLevelToAvatarCurveMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取等级怪物曲线映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>等级怪物曲线映射</returns>
|
||||
ValueTask<Dictionary<Level, Dictionary<GrowCurveType, float>>> GetLevelToMonsterCurveMapAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取等级武器曲线映射
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>等级武器曲线映射</returns>
|
||||
ValueTask<Dictionary<Level, Dictionary<GrowCurveType, float>>> GetLevelToWeaponCurveMapAsync(CancellationToken token = default);
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model.Metadata;
|
||||
using Snap.Hutao.Model.Metadata.Achievement;
|
||||
using Snap.Hutao.Model.Metadata.Avatar;
|
||||
using Snap.Hutao.Model.Metadata.Item;
|
||||
using Snap.Hutao.Model.Metadata.Monster;
|
||||
using Snap.Hutao.Model.Metadata.Reliquary;
|
||||
using Snap.Hutao.Model.Metadata.Weapon;
|
||||
|
||||
namespace Snap.Hutao.Service.Metadata;
|
||||
|
||||
internal interface IMetadataServiceRawData
|
||||
{
|
||||
/// <summary>
|
||||
/// 异步获取成就列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>成就列表</returns>
|
||||
ValueTask<List<Model.Metadata.Achievement.Achievement>> GetAchievementsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取成就分类列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>成就分类列表</returns>
|
||||
ValueTask<List<AchievementGoal>> GetAchievementGoalsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取角色突破列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>角色突破列表</returns>
|
||||
ValueTask<List<Promote>> GetAvatarPromotesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取角色列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>角色列表</returns>
|
||||
ValueTask<List<Avatar>> GetAvatarsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取卡池配置列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>卡池配置列表</returns>
|
||||
ValueTask<List<GachaEvent>> GetGachaEventsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取材料列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>材料列表</returns>
|
||||
ValueTask<List<Material>> GetMaterialsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取怪物列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>怪物列表</returns>
|
||||
ValueTask<List<Monster>> GetMonstersAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物列表</returns>
|
||||
ValueTask<List<Reliquary>> GetReliquariesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物强化属性列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物强化属性列表</returns>
|
||||
ValueTask<List<ReliquarySubAffix>> GetReliquarySubAffixesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物等级数据
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物等级数据</returns>
|
||||
ValueTask<List<ReliquaryMainAffixLevel>> GetReliquaryLevelsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物主属性强化属性列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物强化属性列表</returns>
|
||||
ValueTask<List<ReliquaryMainAffix>> GetReliquaryMainAffixesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取圣遗物套装
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>圣遗物套装列表</returns>
|
||||
ValueTask<List<ReliquarySet>> GetReliquarySetsAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取武器突破列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>武器突破列表</returns>
|
||||
ValueTask<List<Promote>> GetWeaponPromotesAsync(CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取武器列表
|
||||
/// </summary>
|
||||
/// <param name="token">取消令牌</param>
|
||||
/// <returns>武器列表</returns>
|
||||
ValueTask<List<Weapon>> GetWeaponsAsync(CancellationToken token = default);
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Model;
|
||||
using Snap.Hutao.Model.Calculable;
|
||||
using Snap.Hutao.Model.Primitive;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user