public static class GameConstants
{
    public static class PlayerPrefsKeys
    {
        #region PlayerPrefs Keys

        public static string PlayerAccountDataKey = "playerAccountData";
        public static string CharacterDataKey = "characterData";
        public static string CharacterInventoryDataKey = "characterInventoryData";
        public static string CharacterEquipmentDataKey = "characterEquipmentData";
        public static string PlayerCoinKey = "playerCoin";


        public static string GetPlayerAccountDataKey(string playerName)
        {
            return PlayerAccountDataKey + "-" + playerName;
        }
        public static string GetCharacterDataKey(string playerName, string characterName)
        {
            return CharacterDataKey + "-" + playerName + "-" + characterName;
        }
        public static string GetCharacterInventoryDataKey(string playerName, string characterName)
        {
            return CharacterInventoryDataKey + "-" + playerName + "-" + characterName;
        }
        public static string GetCharacterEquipmentDataKey(string playerName, string characterName)
        {
            return CharacterEquipmentDataKey + "-" + playerName + "-" + characterName;
        }
        public static string GetPlayerCoinKey(string playerName)
        {
            return PlayerCoinKey + "-" + playerName;
        }

        #endregion
    }

    public static class CharacterBalancing
    {
        public static int StatPointsPerLevel = 1;

    }
    public static class GameBalancing
    {
        public static int HealthIntoExperienceMultiplier = 1;

        public static int MinimumNumberOfWavesPerRift = 3;
        public static int MaximumNumberOfWavesPerRift = 5;

        public static int MinimumQuantityIndex0 = 2;
        public static int MaximumQuantityIndex0 = 5;

        public static int MinimumQuantityIndex1 = 2;
        public static int MaximumQuantityIndex1 = 5;

        public static float RiftDelayBetweenSpawns = 1f;

        public static float BossTargetLockInPhaseDuration = 6f;

        public static float BossSearchForNewTargetLockInDuration = 6f;
    }


    public static class ObjectSources
    {
        #region Object Sources (example stat increase source)

        public static object AllocatedSource = "Allocated";
        public static object LevelSource = "Level";

        #endregion
    }

    public static class NetworkEventCodes
    {
        #region Network Event Codes

        public static byte JobSelection = 112;
        public static byte CancelChangeLevelVoted = 114;
        public static byte ChangeLevelVoted = 115;
        public static byte LoadLevelStarting = 116;

        #endregion
    }

    public static class NetworkPropertyKeys
    {
        public static string AvailableJobsKey = "availableJobs";
    }

    public static class Sizes
    {
        public static int TotalEquipmentSlots = 6;
        public static int TotalInventorySlots = 18;
    }

}