public void SaveCharacter(string characterID, PlayerCharacter character) { lock (sync) { var document = CharacterDocuments.FindOne(Query <StatsDocument> .EQ(d => d.CharacterId, characterID)); if (document == null) { document = new StatsDocument { CharacterId = characterID }; } document.Set(character); document.IsNewCharacter = false; CharacterDocuments.Save(document); } }
public PlayerCharacter LoadCharacter(string characterID, Res resource, out bool isNew) { lock (sync) { var document = CharacterDocuments.FindOne(Query <StatsDocument> .EQ(d => d.CharacterId, characterID)); if (document != null) { isNew = false; return(document.SourceObject(resource)); } else { document = new StatsDocument { CharacterId = characterID, Exp = 0, Model = new System.Collections.Hashtable { }, Name = "", Race = (int)Race.None, Workshop = (int)Workshop.Arlen }; document.IsNewCharacter = true; CharacterDocuments.Save(document); } isNew = document.IsNewCharacter; return(document.SourceObject(resource)); } }