public KettleHistoryCreateGame(PowerHistoryCreateGame p) { Game = new KettleEntity(p.Game); Players = new List <KettlePlayer>(); foreach (var player in p.Players) { Players.Add(new KettlePlayer(player)); } }
public override object ReadJson(JsonReader reader, System.Type objectType, object existingValue, JsonSerializer serializer) { var jsonObject = JObject.Load(reader); IPowerHistoryEntry history; switch ((PowerType)jsonObject["PowerType"].Value <int>()) { case PowerType.FULL_ENTITY: history = new PowerHistoryFullEntity(); break; case PowerType.SHOW_ENTITY: history = new PowerHistoryShowEntity(); break; case PowerType.HIDE_ENTITY: history = new PowerHistoryHideEntity(); break; case PowerType.TAG_CHANGE: history = new PowerHistoryTagChange(); break; case PowerType.BLOCK_START: history = new PowerHistoryBlockStart(); break; case PowerType.BLOCK_END: history = new PowerHistoryBlockEnd(); break; case PowerType.CREATE_GAME: history = new PowerHistoryCreateGame(); break; case PowerType.META_DATA: history = new PowerHistoryMetaData(); break; case PowerType.CHANGE_ENTITY: history = new PowerHistoryChangeEntity(); break; case PowerType.RESET_GAME: default: throw new ArgumentOutOfRangeException(); } serializer.Populate(jsonObject.CreateReader(), history); return(history); }