package game import ( "fmt" "strings" "thehouseoficarus/internal/net" ) func (g *Game) executeSearch(sess *net.Session, args []string, rawInput string) { p := sess.Player g.cancelAction(p) if len(args) == 0 { sess.WriteLine("Search what?") } else { g.doSearch(sess, strings.Join(args, " ")) } } func (g *Game) doSearch(sess *net.Session, input string) { p := sess.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 { g.showWhichOne(sess, matches) return } itemID := matches[0].ID g.doSearchItem(sess, p, itemID) }