Beispiel #1
0
    public static Config CreateNewConfig()
    {
        Config config = new Config
        {
            Id             = 0,
            Name           = "Nazwa",
            CreationDate   = DateTime.Now,
            DrawStartPoint = true,
            NrOfLevels     = 2,
            WaitingTime    = 3f,
            Levels         = new List <LevelConfig>()
        };
        var level1 = new LevelConfig {
            levelNumber = 1, shape = Shape.HorizontalLine, lineStroke = LineStroke.Medium, shapeColor = PastelColorFactory.RandomColor
        };

        level1.brushColor = PastelColorFactory.RandomColorWithExclude(level1.shapeColor);
        config.Levels.Add(level1);
        var level2 = new LevelConfig {
            levelNumber = 2, shape = Shape.VerticalLine, lineStroke = LineStroke.Medium, shapeColor = PastelColorFactory.RandomColor
        };

        level2.brushColor = PastelColorFactory.RandomColorWithExclude(level2.shapeColor);
        config.Levels.Add(level2);

        return(config);
    }
Beispiel #2
0
    public void AddLevel(int pos)
    {
        var level = new LevelConfig {
            levelNumber = pos + 1, shape = Shape.HorizontalLine, lineStroke = LineStroke.Medium, shapeColor = PastelColorFactory.RandomColor
        };

        level.brushColor = PastelColorFactory.RandomColorWithExclude(level.shapeColor);

        config.Levels.Insert(pos, level);

        config.NrOfLevels++;

        OnLevelAdded(pos);

        _levelManagers.Insert(pos, InstantiateLevelManager(level, pos));

        int from = 0;
        int to   = 0;

        if (pos <= activeLevelManager)
        {
            activeLevelManager++;
            from = 0;
            to   = activeLevelManager;

            config.Levels[activeLevelManager].levelNumber = activeLevelManager + 1;
            _levelManagers[activeLevelManager].UpdateTitle();
        }
        else
        {
            from = pos + 1;
            to   = _levelManagers.Count;
        }

        for (int i = from; i < to; ++i)
        {
            SetPosition(_levelManagers[i].gameObject, i);
        }

        for (int i = pos; i < config.Levels.Count; ++i)
        {
            config.Levels[i].levelNumber = i + 1;
        }

        foreach (var lvl in _levelManagers)
        {
            lvl.UpdateTitle();
        }

        if (pos <= activeLevelManager)
        {
            SetActiveLevelPrevious();
        }
        else
        {
            SetActiveLevelNext();
        }
    }