Пример #1
0
 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);
     }
 }
Пример #3
0
    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));
    }
Пример #4
0
 public void Initialize(BaseValueAndColorGenerator valueGen)
 {
     valueGenerator = valueGen;
 }
Пример #5
0
 public void SetValueAndColorGen(string data)
 {
     gen = ValueAndColorGeneratorFactory.BuildValueAndColorGenerator(data);
     OnNewValueAndColorGen?.Invoke(gen);
 }