コード例 #1
0
        public static GameRulesViewModel CreateFromData(GameRules rules)
        {
            var preBattleEffects     = rules.PreBattleEffects.Select(EffectViewModelBase.CreateFromData);
            var postBattleEffects    = rules.PostBattleEffects.Select(EffectViewModelBase.CreateFromData);
            var postTurnEffects      = rules.PostTurnEffects.Select(EffectViewModelBase.CreateFromData);
            var preResultEffects     = rules.PreResultEffects.Select(EffectViewModelBase.CreateFromData);
            var postResultEffects    = rules.PostResultEffects.Select(EffectViewModelBase.CreateFromData);
            var eliminationCondition = ConditionViewModelBase.CreateFromData(rules.EliminationCondition);

            return(new GameRulesViewModel(preBattleEffects, postBattleEffects, postTurnEffects, preResultEffects, postResultEffects, eliminationCondition));
        }
コード例 #2
0
        private new static EffectViewModelBase CreateFromData(EffectBase effect)
        {
            if (!(effect is RemoveTagsEffect removeTagsEffect))
            {
                return(null);
            }

            var condition = ConditionViewModelBase.CreateFromData(removeTagsEffect.Condition);

            return(new RemoveTagsEffectViewModel(removeTagsEffect.TagKey, removeTagsEffect.TagKeyMatchKind, condition, removeTagsEffect.Target));
        }
コード例 #3
0
        private new static EffectViewModelBase CreateFromData(EffectBase effect)
        {
            if (!(effect is CopyTagsEffect copyTagsEffect))
            {
                return(null);
            }

            var condition = ConditionViewModelBase.CreateFromData(copyTagsEffect.Condition);

            return(new CopyTagsEffectViewModel(copyTagsEffect.TagKey, copyTagsEffect.TagKeyMatchKind, copyTagsEffect.TagScope, copyTagsEffect.NewTagKey, copyTagsEffect.ConflictResolution, condition, copyTagsEffect.Target));
        }
コード例 #4
0
        private new static TagViewModelBase CreateFromData(TagBase tag)
        {
            if (!(tag is ConditionTag conditionTag))
            {
                return(null);
            }

            var condition = ConditionViewModelBase.CreateFromData(conditionTag.Condition);

            return(new ConditionTagViewModel(condition, conditionTag.Key, conditionTag.Duration));
        }
コード例 #5
0
        private new static EffectViewModelBase CreateFromData(EffectBase effect)
        {
            if (!(effect is AddTagEffect addTagEffect))
            {
                return(null);
            }

            var tag       = TagViewModelBase.CreateFromData(addTagEffect.Tag);
            var condition = ConditionViewModelBase.CreateFromData(addTagEffect.Condition);

            return(new AddTagEffectViewModel(tag, addTagEffect.ConflictResolution, condition, addTagEffect.Target));
        }
コード例 #6
0
        private new static TagViewModelBase CreateFromData(TagBase tag)
        {
            if (!(tag is ConditionalTagsTag conditionalTagsTag))
            {
                return(null);
            }

            var tags      = conditionalTagsTag.Tags.Select(TagViewModelBase.CreateFromData);
            var condition = ConditionViewModelBase.CreateFromData(conditionalTagsTag.Condition);

            return(new ConditionalTagsTagViewModel(tags, condition, conditionalTagsTag.Key, conditionalTagsTag.Duration));
        }
コード例 #7
0
        public static EntityRulesViewModel CreateFromData(EntityRules entity)
        {
            var stringLookup         = StringLookupViewModel.CreateFromData(entity.StringLookup);
            var preBattleEffects     = entity.PreBattleEffects.Select(EffectViewModelBase.CreateFromData);
            var postBattleEffects    = entity.PostBattleEffects.Select(EffectViewModelBase.CreateFromData);
            var preTurnEffects       = entity.PreTurnEffects.Select(EffectViewModelBase.CreateFromData);
            var postTurnEffects      = entity.PostTurnEffects.Select(EffectViewModelBase.CreateFromData);
            var eliminationCondition = ConditionViewModelBase.CreateFromData(entity.EliminationCondition);
            var actions      = entity.Actions.Select(x => ActionViewModel.CreateFromData(x, stringLookup));
            var results      = entity.Results.Select(x => ResultViewModel.CreateFromData(x, stringLookup));
            var actionMatrix = ActionMatrixViewModel.CreateFromData(entity.ActionMatrix.Values);

            return(new EntityRulesViewModel(entity.Name, preBattleEffects, postBattleEffects, preTurnEffects, postTurnEffects, eliminationCondition, actions, results, actionMatrix, stringLookup));
        }
コード例 #8
0
        private new static ConditionViewModelBase CreateFromData(ConditionBase condition)
        {
            if (!(condition is UnaryLogicCondition logicCondition))
            {
                return(null);
            }

            UnaryLogicKind?kind = null;

            if (condition is NotCondition)
            {
                kind = UnaryLogicKind.Not;
            }
            if (kind == null)
            {
                return(null);
            }

            var child = ConditionViewModelBase.CreateFromData(logicCondition.Child);

            return(new UnaryLogicConditionViewModel(child, kind.Value));
        }