public void ProcessMultiplayerDamage(BatchedClick damage)
        {
            int totalDamageToProcess = damage.GetDamage();

            if (CurrentMonster.GetHealth() >= totalDamageToProcess)
            {
                MonsterClickProcessor(totalDamageToProcess);
            }
            else
            {
                while (totalDamageToProcess > 0)
                {
                    int damageForCurrentMonster = CurrentMonster.GetHealth();
                    int damageToDo = totalDamageToProcess - damageForCurrentMonster;
                    if (damageToDo <= 0)
                    {
                        MonsterClickProcessor(damageToDo);
                        break;
                    }

                    totalDamageToProcess -= damageToDo;
                    MonsterClickProcessor(damageToDo);
                }
            }
        }
        /// <summary>
        /// Most important function that handles all the game clicks
        /// </summary>
        public void MonsterClicked()
        {
            //check if there is a monster to click on:
            if (CurrentMonster != null)
            {
                //execute pending abilities
                AbilityMultiplier = 1;
                OnClickAbilityProcess?.Invoke(CurrentLevel, Clicks);

                int damage = 100 * CurrentPlayer.GetDamageFactor() * AbilityMultiplier;
                if (CurrentMonster.GetHealth() >= damage)
                {
                    Clicks.AddDamage(damage);
                    MonsterClickProcessor(damage);
                }
                else
                {
                    while (damage > 0)
                    {
                        int CurrentMonsterHealth = CurrentMonster.GetHealth();
                        int damageToDo           = damage - CurrentMonsterHealth;
                        if (damageToDo <= 0)
                        {
                            //to process the last bits of damage without the loop
                            Clicks.AddDamage(damage);
                            MonsterClickProcessor(damage);
                            break;
                        }

                        damage -= damageToDo;
                        Clicks.AddDamage(damageToDo);
                        MonsterClickProcessor(damageToDo);
                    }
                }
            }
        }