protected virtual float IncrementEnergy(float increment)
    {
        if (increment < 0)
        {
            increment = -Mathf.Min(-increment, Energy);
        }
        else
        {
            increment = Mathf.Min(increment, BaseEnergy - Energy);
        }

        Energy = Energy + increment;
        CurrentWorld.FoodEnergyChange(increment);

        if (Energy > 0)
        {
            AdaptScale();
        }
        else if (DestroyWhenEmpty)
        {
            CurrentWorld.FoodDestroyed(this);
            Destroy();
        }

        return(increment);
    }