// Timer(s) private void startGameTimer_Tick(object sender, EventArgs e) { // Is de totale aantal seconden zoektijd al gezet, dan wordt de timer gestopt. if (this.secondsLeftInGame != -1) { startGameTimer.Stop(); } // Er gaat gecheckt worden in de logs of er in de laatste 5 minuten een game gestart is. // Dit wordt elke seconde gedaan. // De logs van de laatste 5 minuten op niveau 2 worden opgehaald. List <Log> logs = Domoticz.GetLogs(DateTime.Now - new TimeSpan(0, 5, 0), 2); // Er wordt door de logs gezocht naar logs van de Verstop applicatie. foreach (Log log in logs) { String[] words = log.message.Split(' '); // Als het niet van de Verstop applicatie komt gaat de volgende log bekeken worden. if (!words[4].Equals("[HIDING]")) { continue; } // Als het een bericht is waar het spel niet wordt gestart wordt er naar de volgende gekeken. if (!words[5].Equals("Started:")) { continue; } // Nu kan geconcludeerd worden dat op dit moment dat deze log is gemaakt een spel gestart is. // De tijd van het starten wordt opgehaald en hoeveel tijd er totaal beschikbaar was. DateTime startTime = DateTime.Parse(words[6] + " " + words[7]); int totalSecondsForHiding = int.Parse(words[10]); // Er wordt nu gekeken naar de start tijd en de tijd beschikbaar hoeveel tijd er nog over is. int secondsPassedFromStartTime = (int)DateTime.Now.Subtract(startTime).TotalSeconds; int secondsLeftInGame = totalSecondsForHiding - secondsPassedFromStartTime; // Als er meer tijd is verstreken dan de zoek tijd betekent dat deze niet meer geldig is, dan kan er naar de volgende log gekeken worden. if (secondsPassedFromStartTime > totalSecondsForHiding) { continue; } this.secondsLeftInGame = secondsLeftInGame; // De game kan nu gestart worden nu de informatie is opgehaald. this.StartGame(); // De huidige timer kan gestopt worden aangezien een Game gevonden is. startGameTimer.Stop(); break; } }
private void CheckHiderLocation() { while (!this.canSearch && !this.gameOver) { // De logs gaan gecontroleerd worden of de verstopper zich verplaatst heeft. // Er gaat de laatste seconde gekeken worden na Logs, dit omdat deze method elke seconde herhaalt wordt. List <Log> logs = Domoticz.GetLogs(DateTime.Now - new TimeSpan(0, 0, 1), 2); // Er wordt door de logs gezocht naar logs van de Verstop applicatie. if (logs != null) { foreach (Log log in logs) { String[] words = log.message.Split(' '); // Als het niet van de Verstop applicatie komt gaat de volgende log bekeken worden. if (!words[4].Equals("[HIDING]")) { continue; } // Als het een bericht is waar niet wordt verplaatst wordt er naar de volgende gekeken. if (!words[5].Equals("To:")) { continue; } string switchID = words[6].Trim(new Char[] { '(', ')' }); foreach (Switch @switch in this.switches) { if (@switch.idx.Equals(switchID)) { if (this.currentSwitch == null || !this.currentSwitch.Equals(@switch)) { this.HiderMovesRoom(@switch); break; } } } } } Thread.Sleep(100); } }