38 lines
1.3 KiB
Go

// Package ground_spawn provides harvestable resource node management for EQ2.
//
// Ground spawns are harvestable nodes in the game world that provide resources
// to players through skills like Mining, Gathering, Fishing, etc. This package
// implements the complete harvest system including skill checks, item rewards,
// rarity determination, and respawn management.
//
// Basic Usage:
//
// gs := ground_spawn.New(db)
// gs.GroundSpawnID = 1001
// gs.Name = "Iron Ore Node"
// gs.CollectionSkill = "Mining"
// gs.NumberHarvests = 5
// gs.X, gs.Y, gs.Z = 100.0, 50.0, 200.0
// gs.ZoneID = 1
// gs.Save()
//
// loaded, _ := ground_spawn.Load(db, 1001)
// result, _ := loaded.ProcessHarvest(player, skill, totalSkill)
//
// Master List:
//
// masterList := ground_spawn.NewMasterList()
// masterList.LoadFromDatabase(db)
// masterList.AddGroundSpawn(gs)
//
// zoneSpawns := masterList.GetByZone(1)
// availableSpawns := masterList.GetAvailableSpawns()
//
// The harvest algorithm preserves the complete C++ EQ2EMU logic including:
// - Skill-based table selection
// - Adventure level requirements for bonus tables
// - Collection vs normal harvesting modes
// - Rarity determination (normal, rare, imbue, 10+rare)
// - Grid-based item filtering
// - Proper random number generation matching C++ behavior
package ground_spawn