feat: resolve character figures from config

This commit is contained in:
ud18010
2026-07-27 12:15:21 +08:00
parent 3bb5829f36
commit ba6595217b
7 changed files with 143 additions and 2 deletions
@@ -15,12 +15,12 @@ namespace XGame
public CharacterConfigItem GetDefault()
{
CharacterConfigItem item = Find(defaultCharacterId);
return item ?? (characters.Count > 0 ? characters[0] : null);
return item ?? (characters != null && characters.Count > 0 ? characters[0] : null);
}
public CharacterConfigItem Find(string id)
{
if (string.IsNullOrEmpty(id))
if (string.IsNullOrEmpty(id) || characters == null)
{
return null;
}
@@ -36,6 +36,40 @@ namespace XGame
return null;
}
public int GetFigure(string id)
{
return GetFigure(Find(id) ?? GetDefault());
}
public int GetFigure(CharacterConfigItem item)
{
if (item == null || characters == null)
{
return 0;
}
for (int i = 0; i < characters.Count; i++)
{
if (ReferenceEquals(characters[i], item))
{
return i + 1;
}
}
return 0;
}
public CharacterConfigItem GetByFigure(int figure)
{
int index = figure - 1;
if (characters != null && index >= 0 && index < characters.Count && characters[index] != null)
{
return characters[index];
}
return GetDefault();
}
}
[Serializable]