Пример #1
0
    // Tracks the progress of an achievement
    private void TrackAchievement(ref int achievementCounter, int firstTrigger, int nthTrigger, int achievementReward, string unlockMessage)
    {
        // Adds to the achievement counter
        achievementCounter++;

        // The first achievement is achieved when the first trigger amount is met
        if (achievementCounter == firstTrigger)
        {
            EventBroker.CallAddScore(achievementReward);
            EventBroker.CallNotifyAchievement(achievementCounter.ToString(), unlockMessage);
        }
        else // Else the achievement only triggers on every nth trigger
        {
            if (achievementCounter % nthTrigger == 0)
            {
                EventBroker.CallAddScore(achievementReward * (achievementCounter / nthTrigger));
                EventBroker.CallNotifyAchievement(achievementCounter.ToString(), unlockMessage);
            }
        }
    }
Пример #2
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Player"))
        {
            // Sends the action to enable powerups
            EventBroker.CallActivatePowerup(powerupType, powerupDuration, powerupAmount, speedMultipler);
            // Adds score
            EventBroker.CallAddScore(powerupScore);
            // Calls achievement event
            EventBroker.CallPowerupAchieve();
            // Sets audiosource clip to the powerup clip
            sfxAudioSource.clip = powerupClip;
            // Plays powerup clip
            sfxAudioSource.Play();

            // Intantiates powerup pickup feedback explosion
            pickupExplosion = Instantiate(pickupExplosion, transform.position, Quaternion.identity);
            pickupExplosion.GetComponent <ExplosionGenerator>().ExplosionColor = disintegrateColor;

            // Destroys powerup
            Destroy(gameObject);
        }
    }