private void RemoveFightEventListeners(int companionDefinitionId, int fightId, bool status)
        {
            List <EventCategory> list = new List <EventCategory>();
            Dictionary <EventCategory, List <int> > dictionary = status ? m_companionsPerCategoryInvalidatingStatus : m_companionsPerCategoryInvalidatingView;

            foreach (KeyValuePair <EventCategory, List <int> > item in dictionary)
            {
                for (int num = item.Value.Count - 1; num >= 0; num--)
                {
                    if (item.Value[num] == companionDefinitionId)
                    {
                        item.Value.RemoveAt(num);
                        break;
                    }
                }
                if (item.Value.Count == 0)
                {
                    list.Add(item.Key);
                }
            }
            foreach (EventCategory item2 in list)
            {
                if (status)
                {
                    FightLogicExecutor.RemoveListenerUpdateStatus(fightId, OnCastingValidityUpdated, item2);
                }
                else
                {
                    FightLogicExecutor.RemoveListenerUpdateView(fightId, OnCastingValidityViewUpdated, item2);
                }
                dictionary.Remove(item2);
            }
        }