60 lines
1.8 KiB
Go
60 lines
1.8 KiB
Go
// Package achievements provides a complete achievement system for EQ2Emulator servers.
|
|
//
|
|
// Features:
|
|
// - Achievement definitions with requirements and rewards
|
|
// - Thread-safe master achievement list for server-wide management
|
|
// - Player-specific achievement tracking and progress
|
|
// - Database operations with both SQLite and MySQL support
|
|
//
|
|
// Basic Usage:
|
|
//
|
|
// // Create database connection
|
|
// db, _ := database.NewSQLite("world.db")
|
|
// // db, _ := database.NewMySQL("user:pass@tcp(host:port)/dbname")
|
|
//
|
|
// // Create new achievement
|
|
// achievement := achievements.New(db)
|
|
// achievement.AchievementID = 1001
|
|
// achievement.Title = "Monster Slayer"
|
|
// achievement.Category = "Combat"
|
|
// achievement.PointValue = 50
|
|
//
|
|
// // Add requirements and rewards
|
|
// achievement.AddRequirement("kill_monsters", 100)
|
|
// achievement.AddReward("experience:5000")
|
|
//
|
|
// // Save to database (insert or update automatically)
|
|
// achievement.Save()
|
|
//
|
|
// // Load achievement by ID
|
|
// loaded, _ := achievements.Load(db, 1001)
|
|
//
|
|
// // Update and save
|
|
// loaded.Title = "Master Monster Slayer"
|
|
// loaded.Save()
|
|
//
|
|
// // Delete achievement
|
|
// loaded.Delete()
|
|
//
|
|
// Master List Management:
|
|
//
|
|
// // Create master list for server-wide achievement management
|
|
// masterList := achievements.NewMasterList()
|
|
//
|
|
// // Load all achievements from database
|
|
// allAchievements, _ := achievements.LoadAll(db)
|
|
// for _, ach := range allAchievements {
|
|
// masterList.AddAchievement(ach)
|
|
// }
|
|
//
|
|
// // Get achievements by category
|
|
// combatAchievements := masterList.GetAchievementsByCategory("Combat")
|
|
//
|
|
// Player Progress Management:
|
|
//
|
|
// // Player achievement management
|
|
// playerMgr := achievements.NewPlayerManager()
|
|
// achievements.LoadPlayerAchievements(db, playerID, playerMgr.Achievements)
|
|
// achievements.LoadPlayerAchievementUpdates(db, playerID, playerMgr.Updates)
|
|
package achievements
|