eq2go/internal/titles/constants.go

106 lines
4.6 KiB
Go

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
)