示例#1
0
        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);
        }
示例#3
0
 public KettleHistoryChangeEntity(PowerHistoryFullEntity p)
 {
     Name   = p.Entity.Name;
     Entity = new KettleEntity(p.Entity);
 }