コード例 #1
0
        public void GeneratePlayerAndOpponents()
        {
            var roads = new int[_roadCount];

            for (var i = 0; i < roads.Length; i++)
            {
                roads[i] = i;
            }
            roads = roads.Shuffle();
            var isTutorial   = PlayerDataHolder.GetTutorial() == 0;
            var playerRoadId = isTutorial ? 2 : roads[UnityEngine.Random.Range(0, _roadCount)];

            SpawnPlayer(playerRoadId);
            var opponentsSkinsId = new List <int>();

            for (var i = 0; i < SkinDataHolder.GetPlayerSkinData().opponents.Count; i++)
            {
                if (i != SkinnController.currentSkin)
                {
                    opponentsSkinsId.Add(i);
                }
            }
            for (var i = 0; i < _roadCount; i++)
            {
                if (i != playerRoadId)
                {
                    SpawnEnemy(i, opponentsSkinsId);
                }
            }
        }
コード例 #2
0
 private void LoadLevel()
 {
     if (PlayerDataHolder.GetTutorial() == 0)
     {
         StartCoroutine(WaitAndLoad(.2f, _scenesContainer.scenes[0]));
     }
     else
     {
         var levelToLoad = Random.Range(0, _scenesContainer.scenes.Length);
         var levelId     = _scenesContainer.scenes[levelToLoad];
         if (_scenesContainer.scenes.Length > 1)
         {
             for (var i = 0; i < 10; i++)
             {
                 if (levelToLoad == PreviousLevelData.previousLevel)
                 {
                     levelToLoad = Random.Range(0, _scenesContainer.scenes.Length);
                     levelId     = _scenesContainer.scenes[levelToLoad];
                 }
                 else
                 {
                     break;
                 }
             }
         }
         LoadImage.SetActive(true);
         loadAnimator.SetTrigger(Open);
         PreviousLevelData.previousLevel = levelToLoad;
         StartCoroutine(WaitAndLoad(.5f, levelId));
     }
 }
コード例 #3
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.TryGetComponent <Player>(out var player))
     {
         if (PlayerDataHolder.GetTutorial() != 0)
         {
             ControllManager.Instance.GiveControl();
         }
     }
 }
コード例 #4
0
    private void Start()
    {
        isTutorial = PlayerDataHolder.GetTutorial() == 0;
        if (isTutorial)
        {
            Finish.OnCrossFinishLine += SaveTutorialFinished;
        }

        Finish.OnCrossFinishLine += SavePlayersMoney;
    }
コード例 #5
0
 private void Start()
 {
     if (PlayerDataHolder.GetTutorial() == 0)
     {
         TutorialController.RegisterTutorialObject(this);
     }
     else
     {
         Deactivate();
     }
 }
コード例 #6
0
    private void Start()
    {
        bool isTutorial = PlayerDataHolder.GetTutorial() == 0;

        if (isTutorial)
        {
            swipe         = tutorialSwipe.GetComponent <TutorialUI>();
            swipeAnimator = tutorialSwipe.GetComponent <Animator>();
            if (swipeAnimator == null)
            {
                swipeAnimator = tutorialSwipe.GetComponentInChildren <Animator>();
            }
            if (swipe == null)
            {
                Debug.LogError("Swipe is null in Tutorial Controller");
            }
            swipe.Deactivate();
        }
    }
コード例 #7
0
    private void Generate()
    {
        data = new List <RoadEntityData>();
        var    isTutorial        = PlayerDataHolder.GetTutorial() == 0;
        var    length            = roadSpline.CalculateLength();
        double percentLength     = length / 100;
        var    percent           = percentLength / length;
        var    randomDist        = DistanceToPercent(Random.Range(minDistance, maxDistance));
        var    randomDistPercent = (int)(randomDist * 100);
        var    i = isTutorial ? tutorialEndPercent : startBarriersPercent;

        for (; i < 98; i += randomDistPercent)
        {
            if (randomDist > DistanceToPercent(maxDistance - 25))
            {
                // 70% chanse to spawn coins on long road sector
                var randomInt = Random.Range(0, 100);
                if (randomInt > 30)
                {
                    var moneyPercent = 0.0;
                    for (var j = 0; j < countOfRoads; j++)
                    {
                        moneyPercent = percent * (i + randomDistPercent / 2);
                        GenerateRingsOnRoad((float)moneyPercent, 0, 10, j);
                    }
                    var entityData = new RoadEntityData {
                        entityType = EntityType.Coins, percentAtRoad = (float)moneyPercent, height = 0, roadCount = countOfRoads
                    };
                    AddData(entityData);
                }
            }
            var splineOnPercent = roadSpline.Evaluate(percent * i);
            //if (levelHolder.InDeathLoops((float)(percent * i))) continue;
            var position = splineOnPercent.position;
            var rotation = splineOnPercent.rotation;
            GenerateEnemyOrBarrier(percent * i);
            randomDist        = DistanceToPercent(Random.Range(minDistance, maxDistance));
            randomDistPercent = (int)(randomDist * 100);
        }
    }