示例#1
0
 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);
     }
 }
示例#2
0
 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));
     }
 }