private void Start()
        {
            _gamePreset          = FindObjectOfType <PresetHolder>().gamePreset.timelinePreset;
            descriptionText.text = _gamePreset.description;

            LoadCardsFromPreset();

            timeLine.GenerateTimeline(_gamePreset);
            timeLine.AddCards(_cards);

            _activeCard = cardSlots[0].GetChild(0).GetComponent <TimeCard>();
            _activeCard.Activate();
        }
Beispiel #2
0
        public void GenerateTimeline(TimelineGamePreset preset)
        {
            List <StepItem> generatedSteps = new List <StepItem>();

            float leftoverWidth = ((RectTransform)transform).rect.width;
            List <RectTransform> stepsToScale = new List <RectTransform>();

            StepItem item = Instantiate(majorStepPrefab, transform);

            item.InitMajor(preset.timeRanges[0].start);
            leftoverWidth -= _layout.spacing * 2;

            foreach (TimeRange timeRange in preset.timeRanges)
            {
                for (int currentYear = timeRange.start; currentYear < timeRange.end; currentYear += timeRange.stepSize)
                {
                    StepItem minorStepItem = Instantiate(minorStepPrefab, transform);
                    minorStepItem.InitMinor(currentYear, currentYear + timeRange.stepSize);

                    stepsToScale.Add((RectTransform)minorStepItem.transform);
                    generatedSteps.Add(minorStepItem);

                    leftoverWidth -= _layout.spacing;
                }

                item = Instantiate(majorStepPrefab, transform);
                item.InitMajor(timeRange.end);
                leftoverWidth -= _layout.spacing * 2;
            }

            leftoverWidth /= stepsToScale.Count;
            for (int i = 0;
                 i < stepsToScale.Count;
                 i++)
            {
                stepsToScale[i].sizeDelta = new Vector2(leftoverWidth, ((RectTransform)transform).rect.size.y);
            }

            _steps = generatedSteps;
        }