装备系统做了很多

This commit is contained in:
FloatGaming
2026-03-27 08:02:55 +08:00
parent dd205b6cb4
commit 538085b64f
119 changed files with 27552 additions and 1672 deletions
@@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
public static class EquipmentConsumableCatalog
{
private static readonly EquipmentConsumableDescriptor[] Descriptors =
{
new EquipmentConsumableDescriptor(EquipmentConsumableKind.Material78101, "eqc_78101", "装备升级材料78101"),
new EquipmentConsumableDescriptor(EquipmentConsumableKind.Material78111, "eqc_78111", "装备突破材料78111")
};
private static readonly Dictionary<EquipmentConsumableKind, EquipmentConsumableDescriptor> ByKind = BuildByKind();
private static readonly Dictionary<string, EquipmentConsumableDescriptor> ByKey = BuildByKey();
public static IReadOnlyList<EquipmentConsumableDescriptor> All => Descriptors;
public static string GetKey(EquipmentConsumableKind kind)
{
return ByKind[kind].Key;
}
public static string GetDisplayName(EquipmentConsumableKind kind)
{
return ByKind[kind].DisplayName;
}
public static bool TryGetKind(string key, out EquipmentConsumableKind kind)
{
kind = default;
if (string.IsNullOrEmpty(key))
{
return false;
}
if (!ByKey.TryGetValue(key, out EquipmentConsumableDescriptor descriptor))
{
return false;
}
kind = descriptor.Kind;
return true;
}
private static Dictionary<EquipmentConsumableKind, EquipmentConsumableDescriptor> BuildByKind()
{
var map = new Dictionary<EquipmentConsumableKind, EquipmentConsumableDescriptor>();
for (int i = 0; i < Descriptors.Length; i++)
{
map[Descriptors[i].Kind] = Descriptors[i];
}
return map;
}
private static Dictionary<string, EquipmentConsumableDescriptor> BuildByKey()
{
var map = new Dictionary<string, EquipmentConsumableDescriptor>(StringComparer.Ordinal);
for (int i = 0; i < Descriptors.Length; i++)
{
map[Descriptors[i].Key] = Descriptors[i];
}
return map;
}
}
public sealed class EquipmentConsumableDescriptor
{
public EquipmentConsumableDescriptor(EquipmentConsumableKind kind, string key, string displayName)
{
Kind = kind;
Key = key;
DisplayName = displayName;
}
public EquipmentConsumableKind Kind { get; }
public string Key { get; }
public string DisplayName { get; }
}