using System.Text; namespace ET.Server { [ConsoleHandler("Gacha")] public class C_Gacha : IConsoleHandler { public async ETTask Run(Fiber fiber, ModeContex contex, string content) { Log.Console($"[GM] Gacha command received: {content}"); await ETTask.CompletedTask; } } [ConsoleHandler("SimulateGacha")] public class C_SimulateGacha : IConsoleHandler { public async ETTask Run(Fiber fiber, ModeContex contex, string content) { string[] parts = content.Split(' '); int poolId = parts.Length > 1 ? int.Parse(parts[1]) : 1; int times = parts.Length > 2 ? int.Parse(parts[2]) : 1000; int r3 = 0, r4 = 0, r5 = 0; for (int i = 0; i < times; i++) { int roll = CryptoRandomGenerator.Next(0, 10000); if (roll < 7000) r3++; else if (roll < 9500) r4++; else r5++; } Log.Console($"[GM] SimulateGacha pool={poolId} times={times} rare3={r3} rare4={r4} rare5={r5}"); await ETTask.CompletedTask; } } [ConsoleHandler("ShowGachaStats")] public class C_ShowGachaStats : IConsoleHandler { public async ETTask Run(Fiber fiber, ModeContex contex, string content) { Log.Console("[GM] ShowGachaStats TODO: attach player and dump gacha pool stats."); await ETTask.CompletedTask; } } [ConsoleHandler("ResetGachaGuarantee")] public class C_ResetGachaGuarantee : IConsoleHandler { public async ETTask Run(Fiber fiber, ModeContex contex, string content) { Log.Console($"[GM] ResetGachaGuarantee command: {content}"); await ETTask.CompletedTask; } } [ConsoleHandler("SetGachaCount")] public class C_SetGachaCount : IConsoleHandler { public async ETTask Run(Fiber fiber, ModeContex contex, string content) { Log.Console($"[GM] SetGachaCount command: {content}"); await ETTask.CompletedTask; } } }