Exemple #1
0
        /// <summary>
        /// Unsubscribe all subscribers from this instance events.
        /// </summary>
        private void UnsubscribeEvents()
        {
            if (OnHealthChanges != null)
            {
                foreach (Action <ChangedHealthArgs> handler in OnHealthChanges.GetInvocationList())
                {
                    OnHealthChanges -= handler;
                }
            }

            if (OnStopShowing != null)
            {
                foreach (Action <IShowable> handler in OnStopShowing.GetInvocationList())
                {
                    OnStopShowing -= handler;
                }
            }

            if (OnShowableDataChanges != null)
            {
                foreach (Action <ShowableData> handler in OnShowableDataChanges.GetInvocationList())
                {
                    OnShowableDataChanges -= handler;
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Dies this instance.
        /// </summary>
        protected virtual void Die()
        {
            ResetTarget();
            EffectsInspector.ClearEffects();
            OnDie?.Invoke(this);
            OnStopShowing?.Invoke(this);
            SetSelected(false);
            UpdateSelfTarget(show: false);

            DieFinalize();
        }
        /// <summary>
        /// Called when any squad unit has died.
        /// </summary>
        /// <param name="died">The died.</param>
        private void OnUnitDieHandler(IDying died)
        {
            died.OnDie -= OnUnitDieHandler;

            if (died is Unit unit)
            {
                unit.OnHealthChanges -= OnUnitHealthChangesHandler;
                units.Remove(unit);

                if (units.Count > 0)
                {
                    var changedHealth = GetChangedHealthArgs();
                    OnHealthChanges?.Invoke(changedHealth);
                }
                else
                {
                    OnStopShowing?.Invoke(this);
                    OnDie?.Invoke(this);
                }
            }
        }
Exemple #4
0
 /// <summary>
 /// The throne is dying.
 /// </summary>
 private void Die()
 {
     OnStopShowing?.Invoke(this);
     UnsubscribeEvents();
     Debug.Log("GAME OVER!!!");
 }
Exemple #5
0
 /// <summary>
 /// Called when the attached Behaviour is destroying.
 /// </summary>
 private void OnDestroy()
 {
     PlayerResources.OnGoldChange -= OnGoldChangeHandler;
     OnStopShowing?.Invoke(this);
 }
Exemple #6
0
 /// <summary>
 /// Called when the attached Behaviour is destroying.
 /// </summary>
 private void OnDestroy() => OnStopShowing?.Invoke(this);