RiftMayhem/Assets/Scripts/Game/GameConstants.cs
Pedro Gomes 5569dd2b06 Enemy spawning update
- spawning is now taken care by the actual gamescene based on the zone data, instead of network manager
- each zone data now have a list of possible enemies for that specific zone
2024-07-28 16:37:22 +01:00

198 lines
6.3 KiB
C#

using static GameConstants.EnemySpawning;
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 const int StatPointsPerLevel = 1;
public const float SoloCheatDeathHealthPercent = 0.5f;
public const float SoloCheatDeathInvulnerabilityDuration = 3f;
public const float GroupBleedOutDuration = 30f;
public const float ReviveTriggerRadius = 3f;
public const float ReviveSpeed = 1f;
public const float ReviveTime = 5f;
public const float ReviveHealthPercent = 0.5f;
public const float PercentageStatScaleForMinions = 0.8f;
}
public static class GameBalancing
{
public const int HealthIntoExperienceMultiplier = 1;
public const int MinimumNumberOfWavesPerRift = 3;
public const int MaximumNumberOfWavesPerRift = 5;
public const int MinimumQuantityAngrySkelly = 2;
public const int MaximumQuantityAngrySkelly = 5;
public const int MinimumQuantitySkellyMage = 2;
public const int MaximumQuantitySkellyMage = 5;
public const int MinimumQuantityVineGolem = 2;
public const int MaximumQuantityVineGolem = 5;
public const int MinimumQuantityPolygonGolem = 2;
public const int MaximumQuantityPolygonGolem = 5;
public const int MinimumQuantityLich = 2;
public const int MaximumQuantityLich = 5;
public const float RiftStartSpawningDelay = 1.5f;
public const float RiftDelayBetweenSpawns = 1f;
public const float BossTargetLockInPhaseDuration = 6f;
public const float BossSearchForNewTargetLockInDuration = 6f;
public const float PermaDeathInfoTime = 2f;
public static int GetMinimumQuantityByEnemyID(EnemyID id)
{
switch (id)
{
case EnemyID.AngrySkelly:
return MinimumQuantityAngrySkelly;
case EnemyID.SkellyMage:
return MinimumQuantitySkellyMage;
case EnemyID.VineGolem:
return MinimumQuantityVineGolem;
case EnemyID.PolygonGolem:
return MinimumQuantityPolygonGolem;
case EnemyID.Lich:
return MinimumQuantityLich;
case EnemyID.Count:
return 0;
default:
return 0;
}
}
public static int GetMaximumQuantityByEnemyID(EnemyID id)
{
switch (id)
{
case EnemyID.AngrySkelly:
return MaximumQuantityAngrySkelly;
case EnemyID.SkellyMage:
return MaximumQuantitySkellyMage;
case EnemyID.VineGolem:
return MaximumQuantityVineGolem;
case EnemyID.PolygonGolem:
return MaximumQuantityPolygonGolem;
case EnemyID.Lich:
return MaximumQuantityLich;
case EnemyID.Count:
return 0;
default:
return 0;
}
}
}
[System.Serializable]
public static class EnemySpawning
{
[System.Serializable]
public enum EnemyID
{
AngrySkelly = 0,
SkellyMage = 1,
VineGolem = 2,
PolygonGolem = 3,
Lich = 4,
Count
}
}
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 const byte JobSelection = 112;
public const byte CancelChangeLevelVoted = 114;
public const byte ChangeLevelVoted = 115;
public const byte LoadLevelStarting = 116;
#endregion
}
public static class NetworkPropertyKeys
{
public const string AvailableJobsKey = "availableJobs";
}
public static class Sizes
{
public const int TotalEquipmentSlots = 6;
public const int TotalInventorySlots = 18;
}
public static class Scenes
{
public const string HuntersInn = "4-RiftHuntersInn";
public const string Skellyard = "4-Skellyard";
public const string Dayard = "4-Dayard";
public static string GetSceneNameByZoneName(string zoneName)
{
zoneName = zoneName.ToLower();
if (zoneName.Contains("huntersinn"))
return HuntersInn;
if (zoneName.Contains("skellyard"))
return Skellyard;
if (zoneName.Contains("dayard"))
return Dayard;
return HuntersInn;
}
}
}