private void on_tooltip_consumable_info(IAssignableIdentity minion, GameObject widget_go, ToolTip tooltip)
    {
        tooltip.ClearMultiStringTooltip();
        ConsumableInfoTableColumn consumableInfoTableColumn = GetWidgetColumn(widget_go) as ConsumableInfoTableColumn;
        TableRow widgetRow = GetWidgetRow(widget_go);

        EdiblesManager.FoodInfo foodInfo = consumableInfoTableColumn.consumable_info as EdiblesManager.FoodInfo;
        int num = 0;

        if (foodInfo != null)
        {
            int            num2           = foodInfo.Quality;
            MinionIdentity minionIdentity = minion as MinionIdentity;
            if ((UnityEngine.Object)minionIdentity != (UnityEngine.Object)null)
            {
                AttributeInstance attributeInstance = minionIdentity.GetAttributes().Get(Db.Get().Attributes.FoodExpectation);
                num2 += Mathf.RoundToInt(attributeInstance.GetTotalValue());
            }
            string effectForFoodQuality = Edible.GetEffectForFoodQuality(num2);
            Effect effect = Db.Get().effects.Get(effectForFoodQuality);
            foreach (AttributeModifier selfModifier in effect.SelfModifiers)
            {
                if (selfModifier.AttributeId == Db.Get().Attributes.QualityOfLife.Id)
                {
                    num += Mathf.RoundToInt(selfModifier.Value);
                }
            }
        }
        switch (widgetRow.rowType)
        {
        case TableRow.RowType.Header:
            tooltip.AddMultiStringTooltip(consumableInfoTableColumn.consumable_info.ConsumableName, null);
            if (foodInfo != null)
            {
                tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.FOOD_AVAILABLE, GameUtil.GetFormattedCalories(WorldInventory.Instance.GetAmount(consumableInfoTableColumn.consumable_info.ConsumableId.ToTag()) * foodInfo.CaloriesPerUnit, GameUtil.TimeSlice.None, true)), null);
                tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.FOOD_QUALITY, GameUtil.AddPositiveSign(num.ToString(), num > 0)), null);
                tooltip.AddMultiStringTooltip("\n" + foodInfo.Description, null);
            }
            else
            {
                tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.FOOD_AVAILABLE, GameUtil.GetFormattedUnits(WorldInventory.Instance.GetAmount(consumableInfoTableColumn.consumable_info.ConsumableId.ToTag()), GameUtil.TimeSlice.None, true)), null);
            }
            break;

        case TableRow.RowType.Default:
            if (consumableInfoTableColumn.get_value_action(minion, widget_go) == ResultValues.True)
            {
                tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.NEW_MINIONS_FOOD_PERMISSION_ON, consumableInfoTableColumn.consumable_info.ConsumableName), null);
            }
            else
            {
                tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.NEW_MINIONS_FOOD_PERMISSION_OFF, consumableInfoTableColumn.consumable_info.ConsumableName), null);
            }
            break;

        case TableRow.RowType.Minion:
        case TableRow.RowType.StoredMinon:
            if (minion != null)
            {
                if (consumableInfoTableColumn.get_value_action(minion, widget_go) == ResultValues.True)
                {
                    tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.FOOD_PERMISSION_ON, minion.GetProperName(), consumableInfoTableColumn.consumable_info.ConsumableName), null);
                }
                else
                {
                    tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.FOOD_PERMISSION_OFF, minion.GetProperName(), consumableInfoTableColumn.consumable_info.ConsumableName), null);
                }
                if (foodInfo != null && (UnityEngine.Object)(minion as MinionIdentity) != (UnityEngine.Object)null)
                {
                    tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.FOOD_QUALITY_VS_EXPECTATION, GameUtil.AddPositiveSign(num.ToString(), num > 0), minion.GetProperName()), null);
                }
                else if ((UnityEngine.Object)(minion as StoredMinionIdentity) != (UnityEngine.Object)null)
                {
                    tooltip.AddMultiStringTooltip(string.Format(UI.CONSUMABLESSCREEN.CANNOT_ADJUST_PERMISSIONS, (minion as StoredMinionIdentity).GetStorageReason()), null);
                }
            }
            break;
        }
    }