using UnityEngine;

namespace LiveOpsExamples
{
  /// <summary>
  /// Shared constants for the Cozy Collector demo: remote config keys with their
  /// defaults, LiveOps slugs, and the inspector capability palette.
  /// Mirrors liveops-phaser-demo/src/config.ts.
  /// </summary>
  public static class CozyCollectorConsts
  {
    // Remote config keys (mirror DemoRemoteConfig in the Phaser demo).
    public const string ConfigRoundSeconds = "demo_round_seconds";
    public const string ConfigPlayerSpeed = "demo_player_speed";
    public const string ConfigSpawnIntervalMs = "demo_spawn_interval_ms";
    public const string ConfigCollectibleScore = "demo_collectible_score";

    public const float DefaultRoundSeconds = 150f;
    public const float DefaultPlayerSpeed = 260f;
    public const float DefaultSpawnIntervalMs = 900f;
    public const float DefaultCollectibleScore = 10f;

    public const string LeaderboardSlug = "cozy-collector-score";
    public const string StoreSlug = "cozy-camp-shop";
    public const string OfferId = "moonberry-boost";
    public const string StorageType = "cozy_fantasy_save";
    public const string StorageId = "main";
    public const string NicknamePrefsKey = "rudder_demo_nickname";
    public const string Region = "global";
    public const string Language = "en";

    // Inspector capability tags (same tags as the Phaser demo).
    public const string CapabilityAuth = "auth";
    public const string CapabilityConfig = "config";
    public const string CapabilityScenario = "scenario";
    public const string CapabilityStore = "store";
    public const string CapabilityLeaderboard = "leaderboard";
    public const string CapabilityStorage = "storage";
    public const string CapabilityInventory = "inventory";
    public const string CapabilityWallet = "wallet";
    public const string CapabilitySystem = "system";

    /// <summary>Color used by the event inspector to tag a capability line.</summary>
    public static Color CapabilityColor(string capability)
    {
      switch (capability)
      {
        case CapabilityAuth: return new Color(0.55f, 0.76f, 1.00f);
        case CapabilityConfig: return new Color(0.61f, 0.90f, 0.69f);
        case CapabilityScenario: return new Color(0.85f, 0.68f, 1.00f);
        case CapabilityStore: return new Color(1.00f, 0.82f, 0.51f);
        case CapabilityLeaderboard: return new Color(1.00f, 0.72f, 0.58f);
        case CapabilityStorage: return new Color(0.56f, 0.87f, 0.87f);
        case CapabilityInventory: return new Color(0.78f, 0.86f, 0.55f);
        case CapabilityWallet: return new Color(1.00f, 0.88f, 0.63f);
        default: return new Color(0.75f, 0.75f, 0.75f);
      }
    }
  }
}
