public void HandleStartJoc(Jucator player, IObserver client) { _clientsDictionary[player.Username].Stare = StareJucator.InAsteptare; var oponent = string.Empty; foreach (var keyValuePair in _clientsDictionary) { if (keyValuePair.Value.Stare.Equals(StareJucator.InAsteptare) && !keyValuePair.Key.Equals(player.Username)) { oponent = keyValuePair.Key; } } if (oponent.Equals(string.Empty)) { _clientsDictionary[player.Username].Client.Astepta(); } else { _clientsDictionary[player.Username].Client.StartJoc(oponent); _clientsDictionary[oponent].Client.StartJoc(player.Username); _clientsDictionary[player.Username].Stare = StareJucator.InJoc; _clientsDictionary[oponent].Stare = StareJucator.InJoc; var newJoc = new Joc(); newJoc.IdJucator1 = _clientsDictionary[player.Username].Player.Id; newJoc.IdJucator2 = _clientsDictionary[oponent].Player.Id; newJoc.PozitieJucator1 = 0; newJoc.PozitieJucator2 = 0; _service.JocService.Add(newJoc); _jocuriActive[player.Username + oponent] = new GameSession(player.Username, oponent, player.Username, 1, newJoc); } }
public void HandleMutareNoua(Jucator player, IObserver client, int numarGenerat) { var joc = _jocuriActive.FirstOrDefault((pair => pair.Key.Contains(player.Username))); if (joc.Value.Runda >= 6) { return; } if (!joc.Value.JucatorCurent.Equals(player.Username)) { client.AsteaptaRand(); } else { var tabla = joc.Value.Muta(numarGenerat); var jct1 = _clientsDictionary[joc.Value.Jucator1]; var jct2 = _clientsDictionary[joc.Value.Jucator2]; jct1.Client.MutareNoua(tabla, numarGenerat); jct2.Client.MutareNoua(tabla, numarGenerat); var newJoc = new Joc(); newJoc.Id = joc.Value.JocDb.Id; newJoc.IdJucator1 = joc.Value.JocDb.IdJucator1; newJoc.IdJucator2 = joc.Value.JocDb.IdJucator2; newJoc.PozitieJucator1 = joc.Value.PozitieJucator1; newJoc.PozitieJucator2 = joc.Value.PozitieJucator2; _service.JocService.Update(newJoc); var mut = new Mutare(); mut.NumarGenerat = numarGenerat; mut.IdJoc = newJoc.Id; if (joc.Value.JucatorCurent.Equals(player.Username)) { mut.IdJucator = joc.Value.JocDb.IdJucator2; } else { mut.IdJucator = joc.Value.JocDb.IdJucator1; } _service.MutareService.Add(new Mutare()); } }