using GsConfigTool.Models; namespace GsConfigTool.Services; public static class TemplateService { public static IReadOnlyList GetArkTemplates() => new[] { new ServerTemplate { Name = "Vanilla (Standard)", Description = "Genau wie die offiziellen ARK-Server – keine Änderungen an den Raten.", Settings = new ArkServerSettings() }, new ServerTemplate { Name = "Casual PvE (5x)", Description = "Entspanntes PvE-Erlebnis mit erhöhten Raten für Solo- und Kleingruppen-Spieler.", Settings = new ArkServerSettings { PvE = true, XPMultiplier = 5f, TamingSpeedMultiplier = 5f, HarvestAmountMultiplier = 5f, ResourcesRespawnPeriodMultiplier = 0.5f, MatingIntervalMultiplier = 0.5f, EggHatchSpeedMultiplier = 10f, BabyMatureSpeedMultiplier = 10f, BabyFoodConsumptionSpeedMultiplier = 0.5f, DayCycleSpeedScale = 1.0f, OverrideOfficialDifficulty = 5f, DisableStructureDecayPvE = true, MaxNumberOfPlayersInTribe = 10, GlobalSpoilingTimeMultiplier = 3f, GlobalItemDecompositionTimeMultiplier = 3f, MaxTamedDinos = 10000 } }, new ServerTemplate { Name = "10x Boosted", Description = "Stark geboosteter Server – ideal für schnelles Vorankommen.", Settings = new ArkServerSettings { XPMultiplier = 10f, TamingSpeedMultiplier = 10f, HarvestAmountMultiplier = 10f, ResourcesRespawnPeriodMultiplier = 0.1f, MatingIntervalMultiplier = 0.1f, EggHatchSpeedMultiplier = 25f, BabyMatureSpeedMultiplier = 25f, BabyFoodConsumptionSpeedMultiplier = 0.25f, BabyImprintAmountMultiplier = 3f, OverrideOfficialDifficulty = 10f, DifficultyOffset = 1f, MaxTamedDinos = 15000, GlobalSpoilingTimeMultiplier = 5f, GlobalItemDecompositionTimeMultiplier = 5f, UnlockAllEngrams = true } }, new ServerTemplate { Name = "Competitive PvP", Description = "Ausgewogener PvP-Server mit leicht erhöhten Raten und harter Spielmechanik.", Settings = new ArkServerSettings { PvE = false, XPMultiplier = 3f, TamingSpeedMultiplier = 3f, HarvestAmountMultiplier = 3f, ResourcesRespawnPeriodMultiplier = 0.5f, MatingIntervalMultiplier = 0.5f, EggHatchSpeedMultiplier = 5f, BabyMatureSpeedMultiplier = 5f, BabyFoodConsumptionSpeedMultiplier = 0.5f, OverrideOfficialDifficulty = 6f, DifficultyOffset = 1f, PreventOfflinePvP = true, MaxNumberOfPlayersInTribe = 6, MaxTamedDinos = 5000 } }, new ServerTemplate { Name = "Hardcore Survival", Description = "Hardcore-Modus – Tod ist permanent, alles auf erschwertem Schwierigkeitsgrad.", Settings = new ArkServerSettings { ServerHardcore = true, PvE = false, XPMultiplier = 0.5f, TamingSpeedMultiplier = 0.5f, HarvestAmountMultiplier = 0.5f, DinoDamageMultiplier = 2f, DinoResistanceMultiplier = 0.5f, OverrideOfficialDifficulty = 10f, DifficultyOffset = 1f, PlayerDamageMultiplier = 0.75f, PlayerResistanceMultiplier = 0.75f } }, new ServerTemplate { Name = "Singleplayer / Offline (Boosted)", Description = "Optimiert für Solo-Spieler – sehr hohe Raten für ein vollständiges Erlebnis ohne Grind.", Settings = new ArkServerSettings { PvE = true, XPMultiplier = 15f, TamingSpeedMultiplier = 20f, HarvestAmountMultiplier = 10f, ResourcesRespawnPeriodMultiplier = 0.1f, MatingIntervalMultiplier = 0.01f, EggHatchSpeedMultiplier = 50f, BabyMatureSpeedMultiplier = 50f, BabyFoodConsumptionSpeedMultiplier = 0.1f, BabyImprintAmountMultiplier = 10f, OverrideOfficialDifficulty = 5f, DisableStructureDecayPvE = true, UnlockAllEngrams = true, MaxTamedDinos = 20000, GlobalSpoilingTimeMultiplier = 10f } } }; public static IReadOnlyList GetPalworldTemplates() => new[] { new ServerTemplate { Name = "Vanilla (Standard)", Description = "Offizielle Standardeinstellungen.", PalSettings = new PalworldServerSettings() }, new ServerTemplate { Name = "Casual (5x)", Description = "Entspanntes Spielerlebnis mit geboosteten Raten.", PalSettings = new PalworldServerSettings { ExpRate = 5f, PalCaptureRate = 3f, PalSpawnNumRate = 1.5f, CollectionDropRate = 3f, EnemyDropItemRate = 3f, DayTimeSpeedRate = 0.5f, NightTimeSpeedRate = 2f, DeathPenalty = "Item" } }, new ServerTemplate { Name = "10x Boosted", Description = "Stark geboosteter Server für schnelles Vorankommen.", PalSettings = new PalworldServerSettings { ExpRate = 10f, PalCaptureRate = 5f, PalSpawnNumRate = 2f, CollectionDropRate = 10f, CollectionObjectRespawnSpeedRate = 5f, EnemyDropItemRate = 10f, DeathPenalty = "None", BuildObjectDeteriorationDamageRate = 0f } }, new ServerTemplate { Name = "PvP Competitive", Description = "Ausgewogener PvP-Server.", PalSettings = new PalworldServerSettings { bIsPvP = true, bEnablePlayerToPlayerDamage = true, ExpRate = 3f, PalCaptureRate = 2f, CollectionDropRate = 3f, EnemyDropItemRate = 3f, DeathPenalty = "ItemAndEquipment" } } }; } public class ServerTemplate { public string Name { get; set; } = ""; public string Description { get; set; } = ""; public ArkServerSettings? Settings { get; set; } public PalworldServerSettings? PalSettings { get; set; } }