Пример #1
0
    private void OnTriggerStay(Collider other)
    {
        PlayerController playerComponent = other.GetComponent <PlayerController>();

        if (!isActive)
        {
            return;
        }

        if (playerComponent != null)
        {
            // TODO: rename bool array
            if (!playerComponent.Player.costAreaTutoShown && !MinigameManager.IsAMiniGameScene())
            {
                playerComponent.Player.costAreaTutoShown = true;
                Utils.PopTutoText("Press B to buy the reward", playerComponent.Player);
            }
            if (playerComponent.PrevState.Buttons.B == ButtonState.Pressed && playerComponent.State.Buttons.B == ButtonState.Released)
            {
                if (Utils.IsAnEvolutionCollectable(rewardType))
                {
                    if (playerComponent.Player.EvolutionCheck(rewardType, false) == false)
                    {
                        return;
                    }
                }

                if (Pay(playerComponent))
                {
                    isActive = false;

                    costText.text      = "x 0";
                    costText.color     = Color.grey;
                    currencyLogo.color = Color.grey;
                    rewardPreview.gameObject.SetActive(false);
                    ParticleSystem.MainModule main = halo.GetComponent <ParticleSystem>().main;
                    main.startColor = Color.white;

                    currentTimerBeforeReactivation = timeBeforeReactivation;
                    GiveReward(playerComponent);
                }
                else
                {
                    // Feedback visuel/sonore
                    GameManager.Instance.PlayerUI.HandleFeedbackNotEnoughPoints(playerComponent.Player, true);
                    if (AudioManager.Instance != null && AudioManager.Instance.cantPayFx != null)
                    {
                        AudioManager.Instance.PlayOneShot(AudioManager.Instance.cantPayFx);
                    }
                }
            }
        }
    }
Пример #2
0
    public void SpawnPlayers()
    {
        CheckNumberOfActivePlayers();

        for (int i = 0; i < activePlayersAtStart; i++)
        {
            GameObject go          = Instantiate(playerPrefab);
            Transform  playerSpawn = playerStart[i];
            go.transform.position = playerSpawn.position;
            go.transform.rotation = playerSpawn.rotation;
            Player currentPlayer = go.GetComponent <Player>();
            currentPlayer.respawnPoint = playerSpawn;

            PlayerController playerController = go.GetComponent <PlayerController>();

            playerController.PlayerIndex        = (PlayerIndex)i;
            playerController.IsUsingAController = true;
            playerController.PlayerIndexSet     = true;

            if (i > 0)
            {
                go.transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material.SetColor("_Color", colorPlayer[i - 1]);
                go.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material.SetColor("_Color", colorPlayer[i - 1]);
                go.transform.GetChild(0).GetChild(0).GetChild(0).GetChild(1).GetComponent <MeshRenderer>().material.SetColor("_Color", colorPlayer[i - 1]);

                go.transform.GetChild(0).GetChild(0).GetChild(1).GetChild(0).GetComponent <MeshRenderer>().material.SetColor("_Color", colorPlayer[i - 1]);
                go.transform.GetChild(0).GetChild(0).GetChild(1).GetChild(1).GetComponent <MeshRenderer>().material.SetColor("_Color", colorPlayer[i - 1]);
            }
            PlayersReference.Add(go);
        }

        if (GameManager.Instance.playerCollectables == null)
        {
            GameManager.Instance.playerCollectables       = new int[activePlayersAtStart][];
            GameManager.Instance.playerEvolutionTutoShown = new bool[activePlayersAtStart][];
            GameManager.Instance.playerCostAreaTutoShown  = new bool[activePlayersAtStart];
        }
        else
        {
            if (MinigameManager.IsAMiniGameScene())
            {
                return;
            }

            for (int i = 0; i < activePlayersAtStart; i++)
            {
                Player currentPlayer = PlayersReference[i].GetComponent <Player>();
                currentPlayer.Collectables       = GameManager.Instance.playerCollectables[i];
                currentPlayer.evolutionTutoShown = GameManager.Instance.playerEvolutionTutoShown[i];
                currentPlayer.costAreaTutoShown  = GameManager.Instance.playerCostAreaTutoShown[i];
            }
        }
    }
Пример #3
0
    public override void  Start()
    {
        base.Start();
        SetPower(Powers.Strength);
        playerController.stats.AddBuff(new StatBuff(Stats.StatType.GROUND_SPEED, 0.85f, -1));
        Player playerComponent = GetComponent <Player>();

        if (!playerComponent.evolutionTutoShown[(int)Powers.Strength] && !MinigameManager.IsAMiniGameScene())
        {
            playerComponent.evolutionTutoShown[(int)Powers.Strength] = true;
            Utils.PopTutoText("Press Y in the air", playerComponent);
        }
    }
Пример #4
0
    public override void Start()
    {
        base.Start();
        SetPower(Powers.Ghost);
        gameObject.layer = LayerMask.NameToLayer("GhostPlayer");
        Player playerComponent = GetComponent <Player>();

        if (!playerComponent.evolutionTutoShown[(int)Powers.Ghost] && !MinigameManager.IsAMiniGameScene())
        {
            playerComponent.evolutionTutoShown[(int)Powers.Ghost] = true;
            Utils.PopTutoText("Hold LT to leave a trail behind", playerComponent);
        }
    }
    public override void Start()
    {
        base.Start();
        SetPower(Powers.Platformist);
        Player playerComponent = GetComponent <Player>();

        if (!playerComponent.evolutionTutoShown[(int)Powers.Platformist] && !MinigameManager.IsAMiniGameScene())
        {
            playerComponent.evolutionTutoShown[(int)Powers.Platformist] = true;
            Utils.PopTutoText("Hold RT to create platforms", playerComponent);
        }
        else
        {
            hasPlayedSecondTuto = true;
        }
    }
    void ShowPattern()
    {
        ClearShowPattern();

        showPattern = new List <GameObject>();

        if (Charges > 0)
        {
            float isGroundedOffset = 0.0f;

            PlatformistPattern pattern = PlatformistPatternFactory.GetPatternFromIndex(IndexPattern);

            if (!GetComponent <PlayerController>().IsGrounded)
            {
                GameObject platform = Instantiate(ResourceUtils.Instance.refPrefabPlatform.prefabPlatformistShowPattern);
                platform.transform.position = transform.position - 0.4f * Vector3.up;
                platform.transform.rotation = transform.rotation;
                showPattern.Add(platform);
            }
            else
            {
                isGroundedOffset = 1.0f;
            }

            for (int i = 0; i < Charges; i++)
            {
                GameObject platform = Instantiate(ResourceUtils.Instance.refPrefabPlatform.prefabPlatformistShowPattern);
                platform.transform.position = transform.position - 0.4f * Vector3.up
                                              + transform.forward * pattern.summonDistance * (pattern.distanceStep * (i + 1))
                                              + Vector3.up * (pattern.summonHeight * (pattern.heightStep * (i + 1)) + isGroundedOffset);
                platform.transform.rotation = transform.rotation;
                showPattern.Add(platform);
            }
        }

        if (!hasPlayedSecondTuto && !MinigameManager.IsAMiniGameScene())
        {
            hasPlayedSecondTuto = true;
            Utils.PopTutoText("Press RB to change platforms' pattern", GetComponent <Player>());
        }
    }