public Level(LevelLayout layout, BaseValueAndColorGenerator valueAndColorGenerator, Condition winCondition, Condition loseCondition, BaseMergeRule mergeRule, BaseMergeEffect mergeEffect) : this(layout) { this.valueAndColorGenerator = valueAndColorGenerator; this.winCondition = winCondition; this.loseCondition = loseCondition; this.mergeRule = mergeRule; this.mergeRule.Initialize(this.valueAndColorGenerator); this.mergeEffect = mergeEffect; }
public static Level Deserialize(string str) { string[] split = str.Split(dataSeperator.ToCharArray()); if (split.Length < 6) { throw new Exception($"Can't build level from this data: {str}"); } LevelLayout layout = LevelLayout.Deserialize(split[0]); BaseValueAndColorGenerator gen = ValueAndColorGeneratorFactory.BuildValueAndColorGenerator(split[1]); Condition winCond = ConditionFactory.BuildCondition(split[2]); Condition loseCond = ConditionFactory.BuildCondition(split[3]); BaseMergeRule mergeRule = MergeRuleFactory.BuildMergeRule(split[4]); BaseMergeEffect effect = MergeEffectFactory.BuildMergeEffect(split[5]); return(new Level(layout, gen, winCond, loseCond, mergeRule, effect)); }
public void SetMergeRule(string data) { mergeRule = MergeRuleFactory.BuildMergeRule(data); }