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; }
void OnNewGenerator(BaseValueAndColorGenerator gen) { this.gen = gen; //set drop down colors for (int i = 0; i < gen.ColorPicker.Colors.Length; i++) { Color c = gen.ColorPicker.Colors[i]; colorDropDown.AddOption(name = $"{i}", c, dropwDownSprite); } }
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 Initialize(BaseValueAndColorGenerator valueGen) { valueGenerator = valueGen; }
public void SetValueAndColorGen(string data) { gen = ValueAndColorGeneratorFactory.BuildValueAndColorGenerator(data); OnNewValueAndColorGen?.Invoke(gen); }