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); } } } }
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); } } } } }
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); } } }
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)); }
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)); }
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(); }
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); } }
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>()); } } } } } }
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(); }
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); }