package model

import "math/rand"

// HeroMeetAutoLineSlugs are stable ids for auto-dialogue (client localizes hero_meet.auto.<slug>).
var HeroMeetAutoLineSlugs = []string{
	"nod_traveler",
	"quiet_road_today",
	"heard_rumors_beasts",
	"gear_clinks_soft",
	"stay_safe_out_there",
	"short_rest_then_go",
	"sun_in_eyes",
	"paths_cross_again",
	"trade_news_smile",
	"wind_picks_up",
	"good_luck_hunt",
	"watch_the_brush",
	"same_road_twice",
	"water_skin_low",
	"campfire_smoke_ahead",
	"no_coin_no_story",
	"armor_pinch_reminder",
	"storm_smell_air",
	"map_wrong_fold",
	"heard_city_bells",
	"strap_mended_maybe",
	"monster_or_mud",
	"share_rations_nod",
	"night_cold_early",
	"footprints_cross_yours",
	"quiet_not_safe",
	"merchant_lied_once",
	"birds_flew_strange",
}

// HeroMeetAutoPhraseKey returns phrase key by index (legacy tests); prefer RandomHeroMeetAutoPhraseKey for emits.
func HeroMeetAutoPhraseKey(lineIdx int) string {
	if len(HeroMeetAutoLineSlugs) == 0 {
		return "hero_meet.auto.fallback"
	}
	if lineIdx < 0 {
		lineIdx = 0
	}
	slug := HeroMeetAutoLineSlugs[lineIdx%len(HeroMeetAutoLineSlugs)]
	return "hero_meet.auto." + slug
}

// RandomHeroMeetAutoPhraseKey picks a random auto line (offline / scripted hero-meet dialogue).
func RandomHeroMeetAutoPhraseKey() string {
	if len(HeroMeetAutoLineSlugs) == 0 {
		return "hero_meet.auto.fallback"
	}
	slug := HeroMeetAutoLineSlugs[rand.Intn(len(HeroMeetAutoLineSlugs))]
	return "hero_meet.auto." + slug
}
