private static void FullEntity(Game game, PowerHistoryFullEntity history) { PowerHistoryEntity phEntity = history.Entity; IDictionary <GameTag, int> tags = phEntity.Tags; Controller c = tags[GameTag.CONTROLLER] == 1 ? game.Player1 : game.Player2; if (phEntity.Name == "") { var unknown = new Unknown(in c, in tags, phEntity.Id); game.IdEntityDic[phEntity.Id] = unknown; c.DeckZone.Add(unknown); return; } if (phEntity.Name is null) { // Enchantment return; } IZone zone = null; if ( /*(CardType) tags[GameTag.CARDTYPE] == CardType.MINION &&*/ tags[GameTag.ZONE] == 1) { // Summon zone = c.BoardZone; } Entity.FromCard( in c, Cards.FromId(phEntity.Name), tags, zone, id: phEntity.Id); }
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); }
public KettleHistoryChangeEntity(PowerHistoryFullEntity p) { Name = p.Entity.Name; Entity = new KettleEntity(p.Entity); }