using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer { public sealed class Config : DiIiS_NA.Core.Config.Config { public bool Enabled { get => GetBoolean(nameof(Enabled), true); set => Set(nameof(Enabled), value); } public string BindIP { get => GetString(nameof(BindIP), "127.0.0.1"); set => Set(nameof(BindIP), value); } public int WebPort { get => GetInt(nameof(WebPort), 9001); set => Set(nameof(WebPort), value); } public int Port { get => GetInt(nameof(Port), 1345); set => Set(nameof(Port), value); } public string BindIPv6 { get => GetString(nameof(BindIPv6), "::1"); set => Set(nameof(BindIPv6), value); } public bool DRLGemu { get => GetBoolean(nameof(DRLGemu), true); set => Set(nameof(DRLGemu), value); } public bool CoreActive { get => GetBoolean(nameof(CoreActive), true); set => Set(nameof(CoreActive), value); } /// /// Rate of experience gain. /// public float RateExp { get => GetFloat(nameof(RateExp), 1); set => Set(nameof(RateExp), value); } /// /// Rate of gold gain. /// public float RateMoney { get => GetFloat(nameof(RateMoney), 1); set => Set(nameof(RateMoney), value); } /// /// Rate of item drop. /// public float RateDrop { get => GetFloat(nameof(RateDrop), 1); set => Set(nameof(RateDrop), value); } public float RateChangeDrop { get => GetFloat(nameof(RateChangeDrop), 1); set => Set(nameof(RateChangeDrop), value); } /// /// Rate of monster's HP. /// public float RateMonsterHP { get => GetFloat(nameof(RateMonsterHP), 1); set => Set(nameof(RateMonsterHP), value); } /// /// Rate of monster's damage. /// public float RateMonsterDMG { get => GetFloat(nameof(RateMonsterDMG), 1); set => Set(nameof(RateMonsterDMG), value); } public bool IWServer { get => GetBoolean(nameof(IWServer), true); set => Set(nameof(IWServer), value); } /// /// Percentage that a unique, legendary, set or special item created is unidentified /// public float ChanceHighQualityUnidentified { get => GetFloat(nameof(ChanceHighQualityUnidentified), 30f); set => Set(nameof(ChanceHighQualityUnidentified), value); } /// /// Percentage that a normal item created is unidentified /// public float ChanceNormalUnidentified { get => GetFloat(nameof(ChanceNormalUnidentified), 5f); set => Set(nameof(ChanceNormalUnidentified), value); } /// /// Resurrection charges on changing worlds /// public int ResurrectionCharges { get => GetInt(nameof(ResurrectionCharges), 3); set => Set(nameof(ResurrectionCharges), value); } /// /// Boss Health Multiplier /// public float BossHealthMultiplier { get => GetFloat(nameof(BossHealthMultiplier), 6f); set => Set(nameof(BossHealthMultiplier), value); } /// /// Boss Damage Multiplier /// public float BossDamageMultiplier { get => GetFloat(nameof(BossDamageMultiplier), 3f); set => Set(nameof(BossDamageMultiplier), value); } /// /// Whether to bypass the quest's settings of "Saveable" to TRUE (unless in OpenWorld) /// public bool AutoSaveQuests { get => GetBoolean(nameof(AutoSaveQuests), false); set => Set(nameof(AutoSaveQuests), value); } public static Config Instance { get; } = new(); private Config() : base("Game-Server") { } } }