package titles

// Title types and constants
const (
	// Title positioning
	TitlePositionPrefix = 1 // Title appears before character name
	TitlePositionSuffix = 0 // Title appears after character name

	// Title sources - how titles are obtained
	TitleSourceAchievement   = 1  // From completing achievements
	TitleSourceQuest         = 2  // From completing quests
	TitleSourceTradeskill    = 3  // From tradeskill mastery
	TitleSourceCombat        = 4  // From combat achievements
	TitleSourceExploration   = 5  // From exploring zones
	TitleSourceRare          = 6  // From rare collections/encounters
	TitleSourceGuildRank     = 7  // From guild progression
	TitleSourcePvP           = 8  // From PvP activities
	TitleSourceRaid          = 9  // From raid completions
	TitleSourceHoliday       = 10 // From holiday events
	TitleSourceBetaTester    = 11 // Beta testing rewards
	TitleSourceDeveloper     = 12 // Developer/GM titles
	TitleSourceRoleplay      = 13 // Roleplay-related titles
	TitleSourceMiscellaneous = 14 // Other/uncategorized

	// Title display formats
	DisplayFormatSimple       = 0 // Just the title text
	DisplayFormatWithBrackets = 1 // [Title]
	DisplayFormatWithQuotes   = 2 // "Title"
	DisplayFormatWithCommas   = 3 // ,Title,

	// Title rarity levels
	TitleRarityCommon    = 0 // Common titles easily obtained
	TitleRarityUncommon  = 1 // Moderately difficult to obtain
	TitleRarityRare      = 2 // Difficult to obtain
	TitleRarityEpic      = 3 // Very difficult to obtain
	TitleRarityLegendary = 4 // Extremely rare titles
	TitleRarityUnique    = 5 // One-of-a-kind titles

	// Title categories for organization
	CategoryCombat        = "Combat"
	CategoryTradeskill    = "Tradeskill"
	CategoryExploration   = "Exploration"
	CategorySocial        = "Social"
	CategoryAchievement   = "Achievement"
	CategoryQuest         = "Quest"
	CategoryRare          = "Rare"
	CategorySeasonal      = "Seasonal"
	CategoryGuild         = "Guild"
	CategoryPvP           = "PvP"
	CategoryRaid          = "Raid"
	CategoryClass         = "Class"
	CategoryRace          = "Race"
	CategoryMiscellaneous = "Miscellaneous"

	// Title unlock requirements
	RequirementTypeLevel       = 1  // Character level requirement
	RequirementTypeQuest       = 2  // Specific quest completion
	RequirementTypeAchievement = 3  // Achievement completion
	RequirementTypeSkill       = 4  // Skill level requirement
	RequirementTypeTradeskill  = 5  // Tradeskill level
	RequirementTypeCollection  = 6  // Collection completion
	RequirementTypeKill        = 7  // Kill count requirement
	RequirementTypeExploration = 8  // Zone discovery
	RequirementTypeTime        = 9  // Time-based requirement
	RequirementTypeItem        = 10 // Item possession
	RequirementTypeGuild       = 11 // Guild membership/rank
	RequirementTypeFaction     = 12 // Faction standing
	RequirementTypeClass       = 13 // Specific class requirement
	RequirementTypeRace        = 14 // Specific race requirement
	RequirementTypeAlignment   = 15 // Good/Evil alignment
	RequirementTypeZone        = 16 // Specific zone requirement
	RequirementTypeExpansion   = 17 // Expansion ownership

	// Title flags
	FlagHidden            = 1 << 0 // Hidden from normal display
	FlagAccountWide       = 1 << 1 // Available to all characters on account
	FlagUnique            = 1 << 2 // Only one player can have this title
	FlagTemporary         = 1 << 3 // Title expires after time
	FlagEventRestricted   = 1 << 4 // Only available during events
	FlagNoLongerAvailable = 1 << 5 // Legacy title no longer obtainable
	FlagStarter           = 1 << 6 // Available to new characters
	FlagGMOnly            = 1 << 7 // Game Master only
	FlagBetaRestricted    = 1 << 8 // Beta tester only
	FlagRoleplayFriendly  = 1 << 9 // Designed for roleplay

	// Maximum limits
	MaxTitleNameLength        = 255 // Maximum characters in title name
	MaxTitleDescriptionLength = 512 // Maximum characters in description
	MaxPlayerTitles           = 500 // Maximum titles per player
	MaxTitleRequirements      = 10  // Maximum requirements per title

	// Title IDs - Special/System titles (using negative IDs to avoid conflicts)
	TitleIDNone      = 0  // No title selected
	TitleIDCitizen   = -1 // Default citizen title
	TitleIDVisitor   = -2 // Default visitor title
	TitleIDNewcomer  = -3 // New player title
	TitleIDReturning = -4 // Returning player title

	// Color codes for title rarity display
	ColorCommon    = 0xFFFFFF // White
	ColorUncommon  = 0x00FF00 // Green
	ColorRare      = 0x0080FF // Blue
	ColorEpic      = 0x8000FF // Purple
	ColorLegendary = 0xFF8000 // Orange
	ColorUnique    = 0xFF0000 // Red
)
