Repositories / GSConfigTool / GsConfigTool / Services / TemplateService.cs
TemplateService.cs 7.1 KB
git clone https://rl-dev.de/git/gsconfigtool Raw Download
using GsConfigTool.Models;

namespace GsConfigTool.Services;

public static class TemplateService
{
    public static IReadOnlyList<ServerTemplate> 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<ServerTemplate> 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; }
}
24Fire Wuppertaler Tafel Romeo