diff --git a/logic/Server/ArgumentOption.cs b/logic/Server/ArgumentOption.cs index 2dddf7d..fa680b1 100644 --- a/logic/Server/ArgumentOption.cs +++ b/logic/Server/ArgumentOption.cs @@ -71,5 +71,8 @@ namespace Server [Option("resultFileName", Required = false, HelpText = "Result file name, saved as .json")] public string ResultFileName { get; set; } = DefaultArgumentOptions.FileName; + + [Option("startLockFile", Required = false, HelpText = "Whether to create a file that identifies whether the game has started")] + public string StartLockFile { get; set; } = DefaultArgumentOptions.FileName; } } \ No newline at end of file diff --git a/logic/Server/GameServer.cs b/logic/Server/GameServer.cs index b81bfe7..080ae7b 100644 --- a/logic/Server/GameServer.cs +++ b/logic/Server/GameServer.cs @@ -45,6 +45,7 @@ namespace Server if (id == GameObj.invalidID) return; //如果有未初始化的玩家,不开始游戏 } Console.WriteLine("Game starts!"); + CreateStartFile(); game.StartGame((int)options.GameTimeInSecond * 1000); Thread.Sleep(1); new Thread(() => @@ -74,6 +75,16 @@ namespace Server }) { IsBackground = true }.Start(); } + + public void CreateStartFile() + { + if (options.StartLockFile != DefaultArgumentOptions.FileName) + { + using var _ = File.Create(options.StartLockFile); + Console.WriteLine("Successfully Created StartLockFile!"); + } + } + public void WaitForEnd() { this.endGameSem.Wait();