Documentation
¶
Index ¶
- func FormatAchievement(achievement *Achievement, userAchievement *UserAchievement) string
- func FormatEasterEggMessage(message string) string
- type Achievement
- type AchievementManager
- func (am *AchievementManager) CheckAchievements(stats *UserStats, earnedAchievements map[string]*UserAchievement) []*UserAchievement
- func (am *AchievementManager) GetAchievement(id string) (*Achievement, bool)
- func (am *AchievementManager) GetAllAchievements() map[string]*Achievement
- func (am *AchievementManager) GetProgressToAchievement(achievementID string, stats *UserStats) (int, int, float64)
- type AchievementType
- type CommandCombo
- type CommandRarity
- type DailyQuest
- type EasterEggContext
- type EasterEggManager
- type EasterEggTrigger
- type GameEnhancements
- func (ge *GameEnhancements) CalculateXPWithMultipliers(baseXP int, userProgress *models.UserProgress) (int, []XPMultiplier)
- func (ge *GameEnhancements) FormatEnhancedXPGain(baseXP, finalXP int, multipliers []XPMultiplier, rarity CommandRarity) string
- func (ge *GameEnhancements) GenerateDailyQuests(userProgress *models.UserProgress) []DailyQuest
- func (ge *GameEnhancements) GenerateWeeklyChallenge(userProgress *models.UserProgress) WeeklyChallenge
- func (ge *GameEnhancements) GetActiveMultipliers(userProgress *models.UserProgress) []XPMultiplier
- func (ge *GameEnhancements) GetAvailablePowerUps() []PowerUp
- func (ge *GameEnhancements) GetCommandCombos() []CommandCombo
- func (ge *GameEnhancements) GetCommandRarity(command string, totalUsage int) CommandRarity
- func (ge *GameEnhancements) GetLevelUpReward(level int) LevelUpReward
- func (ge *GameEnhancements) GetRarityInfo(rarity CommandRarity) (string, string, float64)
- func (ge *GameEnhancements) ProgressBar(current, target int, width int) string
- func (ge *GameEnhancements) TriggerRandomPowerUp() *PowerUp
- type LevelCalculator
- type LevelUpReward
- type PowerUp
- type ProgressCalculator
- type ProgressInfo
- type UserAchievement
- type UserStats
- type WeeklyChallenge
- type XPCalculator
- type XPConfig
- type XPMultiplier
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatAchievement ¶
func FormatAchievement(achievement *Achievement, userAchievement *UserAchievement) string
FormatAchievement formats an achievement for display
func FormatEasterEggMessage ¶
FormatEasterEggMessage formats the easter egg message with proper styling
Types ¶
type Achievement ¶
type Achievement struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Icon string `json:"icon"`
Type AchievementType `json:"type"`
Target int `json:"target"`
XPReward int `json:"xp_reward"`
Hidden bool `json:"hidden"`
Rare bool `json:"rare"`
}
Achievement represents an achievement definition
type AchievementManager ¶
type AchievementManager struct {
// contains filtered or unexported fields
}
AchievementManager manages achievements
func NewAchievementManager ¶
func NewAchievementManager() *AchievementManager
NewAchievementManager creates a new achievement manager
func (*AchievementManager) CheckAchievements ¶
func (am *AchievementManager) CheckAchievements(stats *UserStats, earnedAchievements map[string]*UserAchievement) []*UserAchievement
CheckAchievements checks which achievements should be unlocked based on user stats
func (*AchievementManager) GetAchievement ¶
func (am *AchievementManager) GetAchievement(id string) (*Achievement, bool)
GetAchievement returns a specific achievement by ID
func (*AchievementManager) GetAllAchievements ¶
func (am *AchievementManager) GetAllAchievements() map[string]*Achievement
GetAllAchievements returns all available achievements
func (*AchievementManager) GetProgressToAchievement ¶
func (am *AchievementManager) GetProgressToAchievement(achievementID string, stats *UserStats) (int, int, float64)
GetProgressToAchievement returns progress information for an achievement
type AchievementType ¶
type AchievementType string
AchievementType represents different types of achievements
const ( CommandCount AchievementType = "command_count" UniqueCommands AchievementType = "unique_commands" Streak AchievementType = "streak" SessionCount AchievementType = "session_count" TimeBasedUsage AchievementType = "time_based" CategoryMastery AchievementType = "category_mastery" XPMilestone AchievementType = "xp_milestone" LevelMilestone AchievementType = "level_milestone" )
type CommandCombo ¶
type CommandCombo struct {
Commands []string
Multiplier float64
Name string
Icon string
Description string
}
CommandCombo represents a command combination chain
type CommandRarity ¶
type CommandRarity string
CommandRarity determines the rarity of commands
const ( RarityCommon CommandRarity = "common" RarityUncommon CommandRarity = "uncommon" RarityRare CommandRarity = "rare" RarityEpic CommandRarity = "epic" RarityLegendary CommandRarity = "legendary" )
type DailyQuest ¶
type DailyQuest struct {
ID string
Name string
Description string
Icon string
Target int
Progress int
Reward int
XPReward int
IsCompleted bool
}
DailyQuest represents daily challenges
type EasterEggContext ¶
type EasterEggContext struct {
CommandsInTimeframe int
TimeframeDuration time.Duration
IdleDuration time.Duration
IsFirstCommandToday bool
LastCommand string
CommandHistory []string
QuotesMismatched bool
}
EasterEggContext contains context information for easter egg evaluation
type EasterEggManager ¶
type EasterEggManager struct {
// contains filtered or unexported fields
}
EasterEggManager handles easter egg triggering and display
func NewEasterEggManager ¶
func NewEasterEggManager() *EasterEggManager
NewEasterEggManager creates a new easter egg manager
func (*EasterEggManager) CheckForEasterEgg ¶
func (eem *EasterEggManager) CheckForEasterEgg(context *EasterEggContext) string
CheckForEasterEgg checks if any easter egg should be triggered
func (*EasterEggManager) GetRandomMotivationalQuote ¶
func (eem *EasterEggManager) GetRandomMotivationalQuote() string
GetRandomMotivationalQuote returns a random motivational quote
type EasterEggTrigger ¶
type EasterEggTrigger struct {
ID string
Condition func(context *EasterEggContext) bool
Messages []string
Probability float64 // 0.0 to 1.0
}
EasterEggTrigger represents different trigger conditions for easter eggs
type GameEnhancements ¶
type GameEnhancements struct {
// contains filtered or unexported fields
}
GameEnhancements provides enhanced gaming features
func NewGameEnhancements ¶
func NewGameEnhancements() *GameEnhancements
NewGameEnhancements creates a new game enhancements manager
func (*GameEnhancements) CalculateXPWithMultipliers ¶
func (ge *GameEnhancements) CalculateXPWithMultipliers(baseXP int, userProgress *models.UserProgress) (int, []XPMultiplier)
CalculateXPWithMultipliers calculates XP with active multipliers
func (*GameEnhancements) FormatEnhancedXPGain ¶
func (ge *GameEnhancements) FormatEnhancedXPGain(baseXP, finalXP int, multipliers []XPMultiplier, rarity CommandRarity) string
FormatEnhancedXPGain formats XP gain with enhancements
func (*GameEnhancements) GenerateDailyQuests ¶
func (ge *GameEnhancements) GenerateDailyQuests(userProgress *models.UserProgress) []DailyQuest
GenerateDailyQuests creates random daily quests
func (*GameEnhancements) GenerateWeeklyChallenge ¶
func (ge *GameEnhancements) GenerateWeeklyChallenge(userProgress *models.UserProgress) WeeklyChallenge
GenerateWeeklyChallenge creates a weekly challenge
func (*GameEnhancements) GetActiveMultipliers ¶
func (ge *GameEnhancements) GetActiveMultipliers(userProgress *models.UserProgress) []XPMultiplier
GetActiveMultipliers returns currently active XP multipliers
func (*GameEnhancements) GetAvailablePowerUps ¶
func (ge *GameEnhancements) GetAvailablePowerUps() []PowerUp
GetAvailablePowerUps returns all available power-ups
func (*GameEnhancements) GetCommandCombos ¶
func (ge *GameEnhancements) GetCommandCombos() []CommandCombo
GetCommandCombos returns available command combinations
func (*GameEnhancements) GetCommandRarity ¶
func (ge *GameEnhancements) GetCommandRarity(command string, totalUsage int) CommandRarity
GetCommandRarity determines rarity based on usage frequency
func (*GameEnhancements) GetLevelUpReward ¶
func (ge *GameEnhancements) GetLevelUpReward(level int) LevelUpReward
GetLevelUpReward returns rewards for reaching a specific level
func (*GameEnhancements) GetRarityInfo ¶
func (ge *GameEnhancements) GetRarityInfo(rarity CommandRarity) (string, string, float64)
GetRarityInfo returns information about command rarity
func (*GameEnhancements) ProgressBar ¶
func (ge *GameEnhancements) ProgressBar(current, target int, width int) string
ProgressBar creates an ASCII progress bar
func (*GameEnhancements) TriggerRandomPowerUp ¶
func (ge *GameEnhancements) TriggerRandomPowerUp() *PowerUp
TriggerRandomPowerUp has a chance to activate a random power-up
type LevelCalculator ¶
type LevelCalculator struct{}
LevelCalculator handles level calculations
func NewLevelCalculator ¶
func NewLevelCalculator() *LevelCalculator
NewLevelCalculator creates a new level calculator
func (*LevelCalculator) CalculateLevel ¶
func (lc *LevelCalculator) CalculateLevel(totalXP int) int
CalculateLevel calculates level from total XP
func (*LevelCalculator) CalculateXPForLevel ¶
func (lc *LevelCalculator) CalculateXPForLevel(level int) int
CalculateXPForLevel calculates XP required for a specific level
func (*LevelCalculator) CalculateXPToNextLevel ¶
func (lc *LevelCalculator) CalculateXPToNextLevel(currentXP int) (int, int, int)
CalculateXPToNextLevel calculates XP needed to reach next level
func (*LevelCalculator) GetLevelTitle ¶
func (lc *LevelCalculator) GetLevelTitle(level int) string
GetLevelTitle returns a themed title for the level
type LevelUpReward ¶
type LevelUpReward struct {
Level int
Title string
Icon string
Description string
Rewards []string
}
LevelUpReward represents rewards for leveling up
type PowerUp ¶
type PowerUp struct {
ID string
Name string
Icon string
Description string
Effect string
Duration time.Duration
Rarity float64 // 0.0 to 1.0, lower = rarer
}
PowerUp represents temporary power-ups
type ProgressCalculator ¶
type ProgressCalculator struct {
// contains filtered or unexported fields
}
ProgressCalculator handles progress tracking
func NewProgressCalculator ¶
func NewProgressCalculator(xpConfig *XPConfig) *ProgressCalculator
NewProgressCalculator creates a new progress calculator
func (*ProgressCalculator) CalculateProgress ¶
func (pc *ProgressCalculator) CalculateProgress(totalXP int, commandsToday int, streak int) *ProgressInfo
CalculateProgress calculates comprehensive progress information
type ProgressInfo ¶
type ProgressInfo struct {
CurrentLevel int `json:"current_level"`
LevelTitle string `json:"level_title"`
TotalXP int `json:"total_xp"`
XPInCurrentLevel int `json:"xp_in_current_level"`
XPToNextLevel int `json:"xp_to_next_level"`
XPForCurrentLevel int `json:"xp_for_current_level"`
ProgressPercent float64 `json:"progress_percent"`
CommandsToday int `json:"commands_today"`
CurrentStreak int `json:"current_streak"`
}
ProgressInfo holds comprehensive progress information
type UserAchievement ¶
type UserAchievement struct {
Achievement *Achievement `json:"achievement"`
EarnedAt time.Time `json:"earned_at"`
Progress int `json:"progress"`
Completed bool `json:"completed"`
}
UserAchievement represents an earned achievement
type UserStats ¶
type UserStats struct {
TotalCommands int `json:"total_commands"`
UniqueCommands int `json:"unique_commands"`
TotalSessions int `json:"total_sessions"`
CurrentStreak int `json:"current_streak"`
LongestStreak int `json:"longest_streak"`
TotalXP int `json:"total_xp"`
CurrentLevel int `json:"current_level"`
CommandsToday int `json:"commands_today"`
EarlyBirdCommands int `json:"early_bird_commands"`
NightOwlCommands int `json:"night_owl_commands"`
}
UserStats represents user statistics for achievement checking
type WeeklyChallenge ¶
type WeeklyChallenge struct {
ID string
Name string
Description string
Icon string
Target int
Progress int
Reward int
XPReward int
IsCompleted bool
StartDate time.Time
EndDate time.Time
}
WeeklyChallenge represents weekly challenges
type XPCalculator ¶
type XPCalculator struct {
// contains filtered or unexported fields
}
XPCalculator handles XP calculations
func NewXPCalculator ¶
func NewXPCalculator(config *XPConfig) *XPCalculator
NewXPCalculator creates a new XP calculator
func (*XPCalculator) CalculateCommandXP ¶
func (xp *XPCalculator) CalculateCommandXP(cmd *models.Command, isNewCommand bool, streak int, category string) int
CalculateCommandXP calculates XP for a single command
type XPConfig ¶
type XPConfig struct {
BaseXPPerCommand int `json:"base_xp_per_command"`
NewCommandBonus int `json:"new_command_bonus"`
StreakMultiplier float64 `json:"streak_multiplier"`
CategoryMultipliers map[string]float64 `json:"category_multipliers"`
TimeDecayEnabled bool `json:"time_decay_enabled"`
MaxDailyXP int `json:"max_daily_xp"`
}
XPConfig holds XP calculation configuration
func DefaultXPConfig ¶
func DefaultXPConfig() *XPConfig
DefaultXPConfig returns the default XP configuration