private static void AddSpellShortcuts(PlayerActionShortcutDto shortcutDto, List <PlayerActionShortcut> results, Character player, List <Spell> spells) { foreach (Spell spell in spells) { if (spell.MorePowerfulWhenCastAtHigherLevels) { int[] spellSlotLevels = player.GetSpellSlotLevels(); int availableSlots = 0; if (spell.Level >= 0) { availableSlots = spellSlotLevels[spell.Level]; } if (availableSlots > 0) { bool needToDisambiguateMultipleSpells = spell.Level < 9 && spellSlotLevels[spell.Level + 1] > 0; for (int slotLevel = spell.Level; slotLevel <= 9; slotLevel++) { if (spellSlotLevels[slotLevel] == 0) { break; } string suffix = string.Empty; if (needToDisambiguateMultipleSpells) { suffix = $" [{slotLevel}]"; } results.Add(FromSpell(shortcutDto, player, spell, slotLevel, null, suffix)); } } else { results.Add(FromSpell(shortcutDto, player, spell, spell.Level)); } } else { results.Add(FromSpell(shortcutDto, player, spell, spell.Level)); } } }