public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var entity = value as Network.Entity; if (!string.IsNullOrEmpty(entity.CardID)) { EntityDB.SetName(entity.ID, entity.CardID); } var ownerId = 0; foreach (var tag in entity.Tags) { if (tag.Name == (int)GAME_TAG.CONTROLLER) { ownerId = tag.Value; } } if (ownerId != 0) { EntityDB.SetOwner(entity.ID, ownerId); } writer.WriteStartObject(); writer.WritePropertyName("CardID"); writer.WriteValue(entity.CardID); writer.WritePropertyName("ID"); writer.WriteValue(entity.ID); writer.WritePropertyName("__status"); writer.WriteValue(EntityDB.GetStatus(entity.ID)); writer.WritePropertyName("Tags"); serializer.Serialize(writer, entity.Tags); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var create = value as Network.HistCreateGame; EntityDB.Reset(); foreach (var playerData in create.Players) { var player = playerData.Player; var heroId = 0; var controllerId = 0; foreach (var tag in player.Tags) { if (tag.Name == (int)GAME_TAG.HERO_ENTITY) { heroId = tag.Value; } if (tag.Name == (int)GAME_TAG.CONTROLLER) { controllerId = tag.Value; } } if (heroId != 0 && controllerId != 0) { EntityDB.SetHero(controllerId, heroId); } } writer.WriteStartObject(); writer.WritePropertyName("Game"); serializer.Serialize(writer, create.Game); writer.WritePropertyName("Players"); serializer.Serialize(writer, create.Players); writer.WritePropertyName("Type"); writer.WriteValue(Enum.GetName(typeof(Network.PowerType), create.Type)); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var hist = value as Network.HistTagChange; writer.WriteStartObject(); writer.WritePropertyName("Entity"); writer.WriteValue(hist.Entity); writer.WritePropertyName("__status"); writer.WriteValue(EntityDB.GetStatus(hist.Entity)); writer.WritePropertyName("Change"); writer.WriteStartObject(); writer.WritePropertyName(Enum.GetName(typeof(GAME_TAG), hist.Tag)); var stringVal = TagFormat.GetValue(hist.Tag, hist.Value); if (stringVal == null) { writer.WriteValue(hist.Value); } else { writer.WriteValue(stringVal); } writer.WriteEndObject(); writer.WritePropertyName("Type"); writer.WriteValue(Enum.GetName(typeof(Network.PowerType), hist.Type)); writer.WriteEndObject(); }