package game import ( "fmt" "strings" "thirdcollapse/internal/net" "thirdcollapse/internal/player" ) func (g *Game) doSearch(sess *net.Session, input string) { p := sess.Player.(*player.Player) g.CancelAction(p) lower := strings.ToLower(strings.TrimSpace(input)) if lower == "" { sess.WriteLine("Search what?") return } matches := g.findInventoryMatches(lower, p) if len(matches) == 0 { sess.WriteLine(fmt.Sprintf("You don't have any '%s' to search.", input)) return } unique := uniqueItemNames(matches) if len(unique) > 1 { sess.WriteLine("Which one?") for _, name := range unique { sess.WriteLine(fmt.Sprintf(" - %s", name)) } return } itemID := matches[0].ID slotIdx := matches[0].Slot g.startSearch(sess, p, itemID, slotIdx) }