package controllers import ( "InfantrySkillCalculator/models" "InfantrySkillCalculator/utils" "encoding/json" "io" "os" ) var gameMetrics models.GameMetrics func LoadMetrics() { f, err := os.Open("./config/metrics.json") if err != nil { utils.Logger.Fatal("[METRICS] Failed to open metrics.json: ", err) } defer func(f *os.File) { _ = f.Close() }(f) data, err := io.ReadAll(f) if err != nil { utils.Logger.Fatal("[METRICS] Failed to read metrics.json: ", err) } var metrics models.GameMetrics if err := json.Unmarshal(data, &metrics); err != nil { utils.Logger.Fatal("[METRICS] Failed to deserialize metrics.json: ", err) } gameMetrics = metrics } func GetGameMetric(gameTag string) *models.GameMetric { for _, metric := range gameMetrics.GameMetrics { if metric.GameName == gameTag { return &metric } } return nil } func FindWeaponMetric(weaponMetrics []models.WeaponMetric, weaponCategory string) *models.WeaponMetric { for _, metric := range weaponMetrics { if metric.WeaponCategory == weaponCategory { return &metric } } return nil }