protected IParty GetPartyStatus(Guid partyId, out mvParty mvParty) { mvParty = null; var party = base.PartyService.GetById(partyId); if (party != null) { lock (obj) { if (party.Data == null) { mvParty = new mvParty { NX = 6, NY = 21 }; mvParty.Init(party.Players); party.Data = Serialize.ToJson(mvParty); PartyService.Update(party); } else { var playerUsers = base.PartyService.GetUsers(partyId); mvParty = Serialize.FromJson<mvParty>(party.Data); foreach (var puser in playerUsers) { var partyPlayer = party.Players.FirstOrDefault(p => p.UserId == puser.Id); if (partyPlayer != null) { partyPlayer.Nick = puser.Nick; } var mvPartyPlayer = mvParty.players.FirstOrDefault(p => p.UserId == puser.Id); if (mvPartyPlayer != null) { mvPartyPlayer.Nick = puser.Nick; mvPartyPlayer.ClientStatus = partyPlayer.ClientStatus; } } party.Data = Serialize.ToJson(mvParty); PartyService.Update(party); } if (mvPartik.ContainsKey(partyId)) mvPartik[partyId] = mvParty; else AddParty(partyId, mvParty); } } return party; }
mvResponse CheckCurrentPlayer(mvParty mvp) { var resp = CheckClient(); if (resp.isEmpty) if (mvp == null || mvp.CurrentPlayerIdx < 0 || mvp.players[mvp.CurrentPlayerIdx].Id != user.PlayerId) resp.AddMsgItem("notYourTurn"); return resp; }
protected void AddParty(Guid key, mvParty party) { lock (obj) { mvPartik.Add(key, party); } }