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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }