protected async Task <MagicSpell> MagicMenu(IList <MagicSpell> magics) { MenuItemList menu = new MenuItemList("Nothing"); menu.AddRange(magics.Select(x => x.Name)); int choice = await SubMenu.SubMenu("Pick magic", 0, menu); if (choice == 0) { await TextArea.PrintLine("Select no magic.", XleColor.White); return(null); } return(magics[choice - 1]); }
public async Task <WeaponItem> PickWeapon(GameState state, WeaponItem defaultItem, Color?backColor = null) { MenuItemList theList = new MenuItemList(); theList.Add("Nothing"); theList.AddRange(state.Player.Weapons.Select(x => x.NameWithQuality(Data))); int sel = await subMenu.SubMenu("Pick Weapon", state.Player.Weapons.IndexOf(defaultItem) + 1, theList, backColor ?? XleColor.Black); if (sel == 0) { return(null); } else { return(state.Player.Weapons[sel - 1]); } }