/// <summary>
        /// On Awake, starts listening and generates a random level multiplier if needed
        /// </summary>
        protected virtual void Awake()
        {
            Receiver.Initialization(this.gameObject);

            if (!_listeningToEvents && CanListen)
            {
                StartListening();
            }

            GenerateRandomLevelMultiplier();
        }
        /// <summary>
        /// On Awake, starts listening and generates a random level multiplier if needed
        /// </summary>
        protected virtual void Awake()
        {
            Receiver.Initialization(this.gameObject);

            if (!_listeningToEvents && CanListen)
            {
                StartListening();
            }

            if (RandomizeLevel)
            {
                _randomLevelMultiplier = Random.Range(MinRandomLevelMultiplier, MaxRandomLevelMultiplier);
            }
        }