Пример #1
0
    private void ChangeColumnPriority(object widget_go_obj, int new_priority)
    {
        GameObject widget_go = widget_go_obj as GameObject;

        if (widget_go_obj != null)
        {
            TableRow widgetRow = GetWidgetRow(widget_go);
            if (widgetRow.rowType != 0)
            {
                Debug.Assert(false);
            }
            PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(widget_go) as PrioritizationGroupTableColumn;
            ChoreGroup choreGroup = prioritizationGroupTableColumn.userData as ChoreGroup;
            foreach (TableRow row in rows)
            {
                IPersonalPriorityManager priorityManager = GetPriorityManager(row);
                if (priorityManager != null)
                {
                    priorityManager.SetPersonalPriority(choreGroup, new_priority);
                    GameObject widget = row.GetWidget(prioritizationGroupTableColumn);
                    UpdateWidget(widget, choreGroup, priorityManager);
                }
            }
        }
    }
Пример #2
0
    private void ChangeRowPriority(object widget_go_obj, int delta)
    {
        GameObject widget_go = widget_go_obj as GameObject;

        if (widget_go_obj != null)
        {
            TableRow widgetRow = GetWidgetRow(widget_go);
            if (widgetRow.rowType == TableRow.RowType.Header)
            {
                Debug.Assert(false);
            }
            else
            {
                IPersonalPriorityManager priorityManager = GetPriorityManager(widgetRow);
                foreach (TableColumn value in columns.Values)
                {
                    PrioritizationGroupTableColumn prioritizationGroupTableColumn = value as PrioritizationGroupTableColumn;
                    if (prioritizationGroupTableColumn != null)
                    {
                        ChoreGroup chore_group = prioritizationGroupTableColumn.userData as ChoreGroup;
                        GameObject widget      = widgetRow.GetWidget(prioritizationGroupTableColumn);
                        ChangePersonalPriority(priorityManager, chore_group, delta, false);
                        UpdateWidget(widget, chore_group, priorityManager);
                    }
                }
            }
        }
    }
Пример #3
0
    private void LoadValue(IAssignableIdentity minion, GameObject widget_go)
    {
        if (!((UnityEngine.Object)widget_go == (UnityEngine.Object)null))
        {
            PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(widget_go) as PrioritizationGroupTableColumn;
            ChoreGroup choreGroup = prioritizationGroupTableColumn.userData as ChoreGroup;
            TableRow   widgetRow  = GetWidgetRow(widget_go);
            switch (widgetRow.rowType)
            {
            case TableRow.RowType.Header:
                InitializeHeader(choreGroup, widget_go);
                break;

            case TableRow.RowType.Default:
            case TableRow.RowType.Minion:
            case TableRow.RowType.StoredMinon:
            {
                IPersonalPriorityManager priorityManager = GetPriorityManager(widgetRow);
                bool flag = priorityManager.IsChoreGroupDisabled(choreGroup);
                HierarchyReferences component = widget_go.GetComponent <HierarchyReferences>();
                KImage kImage = component.GetReference("FG") as KImage;
                kImage.raycastTarget = flag;
                ToolTip toolTip = component.GetReference("FGToolTip") as ToolTip;
                toolTip.enabled = flag;
                break;
            }
            }
            IPersonalPriorityManager priorityManager2 = GetPriorityManager(widgetRow);
            if (priorityManager2 != null)
            {
                UpdateWidget(widget_go, choreGroup, priorityManager2);
            }
        }
    }
Пример #4
0
    private string OnSortHovered(object widget_go_obj)
    {
        GameObject widget_go = widget_go_obj as GameObject;
        PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(widget_go) as PrioritizationGroupTableColumn;
        ChoreGroup choreGroup = prioritizationGroupTableColumn.userData as ChoreGroup;

        return(UI.JOBSSCREEN.SORT_TOOLTIP.ToString().Replace("{Job}", choreGroup.Name));
    }
Пример #5
0
    private string HoverChangeColumnPriorityButton(object widget_go_obj)
    {
        GameObject widget_go = widget_go_obj as GameObject;
        PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(widget_go) as PrioritizationGroupTableColumn;
        ChoreGroup choreGroup            = prioritizationGroupTableColumn.userData as ChoreGroup;
        LocString  hEADER_CHANGE_TOOLTIP = UI.JOBSSCREEN.HEADER_CHANGE_TOOLTIP;
        string     text = hEADER_CHANGE_TOOLTIP.ToString();

        return(text.Replace("{Job}", choreGroup.Name));
    }
Пример #6
0
    private void OnSortClicked(object widget_go_obj)
    {
        GameObject widget_go = widget_go_obj as GameObject;
        PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(widget_go) as PrioritizationGroupTableColumn;
        ChoreGroup chore_group = prioritizationGroupTableColumn.userData as ChoreGroup;

        if (active_sort_column == prioritizationGroupTableColumn)
        {
            sort_is_reversed = !sort_is_reversed;
        }
        active_sort_column = prioritizationGroupTableColumn;
        active_sort_method = delegate(IAssignableIdentity a, IAssignableIdentity b)
        {
            MinionIdentity minionIdentity  = a as MinionIdentity;
            MinionIdentity minionIdentity2 = b as MinionIdentity;
            if ((UnityEngine.Object)minionIdentity == (UnityEngine.Object)null && (UnityEngine.Object)minionIdentity2 == (UnityEngine.Object)null)
            {
                return(0);
            }
            if ((UnityEngine.Object)minionIdentity == (UnityEngine.Object)null)
            {
                return(-1);
            }
            if ((UnityEngine.Object)minionIdentity2 == (UnityEngine.Object)null)
            {
                return(1);
            }
            ChoreConsumer component  = minionIdentity.GetComponent <ChoreConsumer>();
            ChoreConsumer component2 = minionIdentity2.GetComponent <ChoreConsumer>();
            if (component.IsChoreGroupDisabled(chore_group))
            {
                return(1);
            }
            if (component2.IsChoreGroupDisabled(chore_group))
            {
                return(-1);
            }
            int personalPriority  = component.GetPersonalPriority(chore_group);
            int personalPriority2 = component2.GetPersonalPriority(chore_group);
            if (personalPriority == personalPriority2)
            {
                return(minionIdentity.name.CompareTo(minionIdentity2.name));
            }
            return(personalPriority2 - personalPriority);
        };
        SortRows();
    }
Пример #7
0
    private void ChangePersonalPriority(object widget_go_obj, int delta)
    {
        GameObject widget_go = widget_go_obj as GameObject;

        if (widget_go_obj != null)
        {
            TableRow widgetRow = GetWidgetRow(widget_go);
            if (widgetRow.rowType == TableRow.RowType.Header)
            {
                Debug.Assert(false);
            }
            PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(widget_go) as PrioritizationGroupTableColumn;
            ChoreGroup chore_group = prioritizationGroupTableColumn.userData as ChoreGroup;
            IPersonalPriorityManager priorityManager = GetPriorityManager(widgetRow);
            ChangePersonalPriority(priorityManager, chore_group, delta, true);
            UpdateWidget(widget_go, chore_group, priorityManager);
        }
    }
Пример #8
0
 public void Refresh(MinionResume minion_resume)
 {
     if (!((UnityEngine.Object) this == (UnityEngine.Object)null))
     {
         foreach (TableRow row in rows)
         {
             IAssignableIdentity identity = row.GetIdentity();
             if (!((UnityEngine.Object)(identity as MinionIdentity) == (UnityEngine.Object)null) && !((UnityEngine.Object)(identity as MinionIdentity).gameObject != (UnityEngine.Object)minion_resume.gameObject))
             {
                 foreach (TableColumn value in columns.Values)
                 {
                     PrioritizationGroupTableColumn prioritizationGroupTableColumn = value as PrioritizationGroupTableColumn;
                     if (prioritizationGroupTableColumn != null)
                     {
                         GameObject widget = row.GetWidget(prioritizationGroupTableColumn);
                         UpdateWidget(widget, prioritizationGroupTableColumn.userData as ChoreGroup, (identity as MinionIdentity).GetComponent <ChoreConsumer>());
                     }
                 }
             }
         }
     }
 }
Пример #9
0
    protected override void OnActivate()
    {
        Instance = this;
        title    = UI.JOBSSCREEN.TITLE;
        base.OnActivate();
        resetSettingsButton.onClick += OnResetSettingsClicked;
        prioritySprites              = new List <Sprite>();
        foreach (PriorityInfo item in priorityInfo)
        {
            PriorityInfo current = item;
            prioritySprites.Add(current.sprite);
        }
        AddPortraitColumn("Portrait", base.on_load_portrait, null, true);
        AddButtonLabelColumn("Names", ConfigureNameLabel, base.get_value_name_label, delegate(GameObject widget_go)
        {
            GetWidgetRow(widget_go).SelectMinion();
        }, delegate(GameObject widget_go)
        {
            GetWidgetRow(widget_go).SelectAndFocusMinion();
        }, base.compare_rows_alphabetical, null, base.on_tooltip_sort_alphabetically, false);
        List <ChoreGroup> list = new List <ChoreGroup>(Db.Get().ChoreGroups.resources);
        from @group in list
        orderby @group.DefaultPersonalPriority descending, @group.Name
        select @group;

        foreach (ChoreGroup item2 in list)
        {
            PrioritizationGroupTableColumn new_column = new PrioritizationGroupTableColumn(item2, LoadValue, ChangePersonalPriority, HoverPersonalPriority, ChangeColumnPriority, HoverChangeColumnPriorityButton, OnSortClicked, OnSortHovered);
            RegisterColumn(item2.Id, new_column);
        }
        PrioritizeRowTableColumn new_column2 = new PrioritizeRowTableColumn(null, ChangeRowPriority, HoverChangeRowPriorityButton);

        RegisterColumn("prioritize_row", new_column2);
        settingsButton.onClick           += OnSettingsButtonClicked;
        resetSettingsButton.onClick      += OnResetSettingsClicked;
        toggleAdvancedModeButton.onClick += OnAdvancedModeToggleClicked;
        toggleAdvancedModeButton.fgImage.gameObject.SetActive(Game.Instance.advancedPersonalPriorities);
        RefreshEffectListeners();
    }
Пример #10
0
    private string HoverPersonalPriority(object widget_go_obj)
    {
        GameObject gameObject = widget_go_obj as GameObject;
        PrioritizationGroupTableColumn prioritizationGroupTableColumn = GetWidgetColumn(gameObject) as PrioritizationGroupTableColumn;
        ChoreGroup choreGroup = prioritizationGroupTableColumn.userData as ChoreGroup;
        string     text       = null;
        TableRow   widgetRow  = GetWidgetRow(gameObject);

        switch (widgetRow.rowType)
        {
        case TableRow.RowType.Header:
        {
            string text2 = UI.JOBSSCREEN.HEADER_TOOLTIP.ToString();
            text2 = text2.Replace("{Job}", choreGroup.Name);
            string text3 = UI.JOBSSCREEN.HEADER_DETAILS_TOOLTIP.ToString();
            text3 = text3.Replace("{Description}", choreGroup.description);
            HashSet <string> hashSet = new HashSet <string>();
            foreach (ChoreType choreType in choreGroup.choreTypes)
            {
                hashSet.Add(choreType.Name);
            }
            StringBuilder stringBuilder = new StringBuilder();
            int           num           = 0;
            foreach (string item in hashSet)
            {
                stringBuilder.Append(item);
                if (num < hashSet.Count - 1)
                {
                    stringBuilder.Append(", ");
                }
                num++;
            }
            text3 = text3.Replace("{ChoreList}", stringBuilder.ToString());
            return(text2.Replace("{Details}", text3));
        }

        case TableRow.RowType.Default:
            text = UI.JOBSSCREEN.NEW_MINION_ITEM_TOOLTIP.ToString();
            break;

        case TableRow.RowType.Minion:
        case TableRow.RowType.StoredMinon:
            text = UI.JOBSSCREEN.ITEM_TOOLTIP.ToString();
            text = text.Replace("{Name}", widgetRow.name);
            break;
        }
        ToolTip             componentInChildren = gameObject.GetComponentInChildren <ToolTip>();
        IAssignableIdentity identity            = widgetRow.GetIdentity();
        MinionIdentity      minionIdentity      = identity as MinionIdentity;

        if ((UnityEngine.Object)minionIdentity != (UnityEngine.Object)null)
        {
            IPersonalPriorityManager priorityManager = GetPriorityManager(widgetRow);
            int    personalPriority = priorityManager.GetPersonalPriority(choreGroup);
            string newValue         = GetPriorityStr(personalPriority);
            string priorityValue    = GetPriorityValue(personalPriority);
            if (priorityManager.IsChoreGroupDisabled(choreGroup))
            {
                Trait  trait     = null;
                Traits component = minionIdentity.GetComponent <Traits>();
                foreach (Trait trait2 in component.TraitList)
                {
                    if (trait2.disabledChoreGroups != null)
                    {
                        ChoreGroup[] disabledChoreGroups = trait2.disabledChoreGroups;
                        foreach (ChoreGroup choreGroup2 in disabledChoreGroups)
                        {
                            if (choreGroup2.IdHash == choreGroup.IdHash)
                            {
                                trait = trait2;
                                break;
                            }
                        }
                        if (trait != null)
                        {
                            break;
                        }
                    }
                }
                text = UI.JOBSSCREEN.TRAIT_DISABLED.ToString();
                text = text.Replace("{Name}", minionIdentity.GetProperName());
                text = text.Replace("{Job}", choreGroup.Name);
                text = text.Replace("{Trait}", trait.Name);
                componentInChildren.ClearMultiStringTooltip();
                componentInChildren.AddMultiStringTooltip(text, null);
            }
            else
            {
                text = text.Replace("{Job}", choreGroup.Name);
                text = text.Replace("{Priority}", newValue);
                text = text.Replace("{PriorityValue}", priorityValue);
                componentInChildren.ClearMultiStringTooltip();
                componentInChildren.AddMultiStringTooltip(text, null);
                if ((UnityEngine.Object)minionIdentity != (UnityEngine.Object)null)
                {
                    text = "\n" + UI.JOBSSCREEN.MINION_SKILL_TOOLTIP.ToString();
                    text = text.Replace("{Name}", minionIdentity.GetProperName());
                    text = text.Replace("{Attribute}", choreGroup.attribute.Name);
                    AttributeInstance attributeInstance        = minionIdentity.GetAttributes().Get(choreGroup.attribute);
                    float             totalValue               = attributeInstance.GetTotalValue();
                    TextStyleSetting  tooltipTextStyle_Ability = TooltipTextStyle_Ability;
                    text += GameUtil.ColourizeString(tooltipTextStyle_Ability.textColor, totalValue.ToString());
                    componentInChildren.AddMultiStringTooltip(text, null);
                }
                componentInChildren.AddMultiStringTooltip(UI.HORIZONTAL_RULE + "\n" + GetUsageString(), null);
            }
        }
        else if ((UnityEngine.Object)(identity as StoredMinionIdentity) != (UnityEngine.Object)null)
        {
            componentInChildren.AddMultiStringTooltip(string.Format(UI.JOBSSCREEN.CANNOT_ADJUST_PRIORITY, identity.GetProperName(), (identity as StoredMinionIdentity).GetStorageReason()), null);
        }
        return(string.Empty);
    }