fix(ui): refresh live skill rows

This commit is contained in:
Erik 2026-07-31 08:22:46 +02:00
parent 461a1fb7b4
commit 1d8371dbe5
3 changed files with 55 additions and 4 deletions

View file

@ -776,12 +776,14 @@ public static class CharacterStatController
foreach (var skill in skills)
{
int rowIndex = bindings.Count;
CharacterSkill LiveSkill() =>
FindSkill(data(), skill.Id) ?? skill;
var row = AddRow(list, datFont, spriteResolve,
left: 0f, top: y, width: listW, height: SkillRowHeight,
iconDid: skill.IconDid,
nameText: skill.Name,
valueProvider: () => skill.CurrentLevel.ToString(),
valueColorProvider: () => SkillValueColor(skill),
valueProvider: () => LiveSkill().CurrentLevel.ToString(),
valueColorProvider: () => SkillValueColor(LiveSkill()),
nameColor: Vector4.One);
row.OnClick = () =>
{
@ -857,6 +859,18 @@ public static class CharacterStatController
return result;
}
private static CharacterSkill? FindSkill(CharacterSheet sheet, uint skillId)
{
IReadOnlyList<CharacterSkill> skills = sheet.Skills;
for (int i = 0; i < skills.Count; i++)
{
CharacterSkill skill = skills[i];
if (skill.Id == skillId)
return skill;
}
return null;
}
private static CharacterSkill? SkillAtDisplayIndex(CharacterSheet sheet, int index)
{
if (index < 0) return null;