static void Prefix(SimGameState __instance, int timeLapse) { try { int num = (timeLapse <= 0) ? 1 : timeLapse; if (Fields.Deployment) { Fields.DeploymentRemainingDays -= num; } if (Fields.DeploymentRemainingDays % __instance.Constants.Finances.QuarterLength == 0) { Fields.PaymentCall = true; Fields.MissionsDoneCurrentMonth = 0; } if (Fields.TimeLineEntry != null) { Fields.TimeLineEntry.PayCost(num); TaskManagementElement taskManagementElement4 = null; TaskTimelineWidget timelineWidget = (TaskTimelineWidget)AccessTools.Field(typeof(SGRoomManager), "timelineWidget").GetValue(__instance.RoomManager); Dictionary <WorkOrderEntry, TaskManagementElement> ActiveItems = (Dictionary <WorkOrderEntry, TaskManagementElement>)AccessTools.Field(typeof(TaskTimelineWidget), "ActiveItems").GetValue(timelineWidget); if (ActiveItems.TryGetValue(Fields.TimeLineEntry, out taskManagementElement4)) { taskManagementElement4.UpdateItem(0); } } } catch (Exception e) { Logger.LogError(e); } }
public static bool Prefix(TaskManagementElement element) { if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { AdvanceToTask.StartAdvancing(element.Entry); return(false); } return(true); }
static void Postfix(TaskManagementElement element) { try { Flareup flareup = Utilities.currentFlareup(); if (element.Entry.ID != "nextflareupContract" || flareup == null) { return; } WIIC.sim.SetTimeMoving(false); PauseNotification.Show("Flareup Details", flareup.getDescription(), WIIC.sim.GetCrewPortrait(SimGameCrew.Crew_Sumire), "", true, null); } catch (Exception e) { WIIC.modLog.Error?.Write(e); } }
public static bool Prefix(TaskManagementElement element) { if (Globals.WarStatusTracker == null || Globals.Sim.IsCampaign && !Globals.Sim.CompanyTags.Contains("story_complete")) { return(true); } if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { AdvanceToTask.StartAdvancing(element.Entry); return(false); } return(true); }
public static bool Prefix(TaskManagementElement element, TaskManagementWidget __instance, ref bool ___modified) { var state = State.GetState(); if (state.IsNothing) { return(true); } else if (state.IsSorting) { Sorter.SortWorkOrdersDescending(taskManagementWidget: __instance); } else if (state.IsMoving) { Mover.MoveWorkOrderToBottom(taskManagementWidget: __instance, workOrder: element); } ___modified = true; return(false); }
public static void Postfix(TaskManagementElement __instance, TextMeshProUGUI ___subTitleText, UIColorRefTracker ___subTitleColor, WorkOrderEntry ___entry) { WorkOrderEntry_MedBayHeal healOrder = ___entry as WorkOrderEntry_MedBayHeal; try { if (healOrder.Pilot.pilotDef.TimeoutRemaining > 0 && healOrder.Pilot.pilotDef.Injuries == 0 && !healOrder.Pilot.pilotDef.PilotTags.Contains("pilot_lightinjury") && healOrder.Pilot.pilotDef.PilotTags.Contains("pilot_fatigued")) { ___subTitleText.text = "FATIGUED"; ___subTitleColor.SetUIColor(UIColor.Orange); } } catch (Exception) { } try { if (healOrder.Pilot.pilotDef.TimeoutRemaining > 0 && healOrder.Pilot.pilotDef.Injuries == 0 && !healOrder.Pilot.pilotDef.PilotTags.Contains("pilot_lightinjury") && !healOrder.Pilot.pilotDef.PilotTags.Contains("pilot_fatigued")) { ___subTitleText.text = "UNAVAILABLE"; ___subTitleColor.SetUIColor(UIColor.Blue); } } catch (Exception) { } try { if (healOrder.Pilot.pilotDef.PilotTags.Contains("pilot_lightinjury")) { ___subTitleText.text = "LIGHT INJURY"; ___subTitleColor.SetUIColor(UIColor.Green); } } catch (Exception) { } }
public static bool Prefix(TaskManagementElement element, TaskManagementWidget __instance) { var shiftHeld = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift); var magicThis = Traverse.Create(__instance); var mechElements = magicThis.Field("allMechElements").GetValue <List <TaskManagementElement> >(); var initialIndex = mechElements.IndexOf(element); if (initialIndex >= mechElements.Count) { return(false); } var mechLabQueue = magicThis.Field("mechLabQueue").GetValue <List <WorkOrderEntry> >(); var newIndex = shiftHeld ? mechElements.Count - 1 : initialIndex + 1; mechElements.Remove(element); mechElements.Insert(newIndex, element); mechLabQueue.Remove(element.Entry); mechLabQueue.Insert(newIndex, element.Entry); element.transform.SetSiblingIndex(newIndex); magicThis.Field("modified").SetValue(true); return(false); }
public static void MoveWorkOrderToTop(TaskManagementWidget taskManagementWidget, TaskManagementElement workOrder) { MoveWorkOrderToEnd(taskManagementWidget, workOrder, End.Top); }
private static void MoveWorkOrderToEnd(TaskManagementWidget taskManagementWidget, TaskManagementElement workOrder, End placement) { var widgetTraversed = Traverse.Create(taskManagementWidget); var tasks = widgetTraversed.Field("allMechElements").GetValue <List <TaskManagementElement> >(); var workOrders = widgetTraversed.Field("mechLabQueue").GetValue <List <WorkOrderEntry> >(); var initialIndex = tasks.IndexOf(workOrder); int newIndex; if (placement == End.Top) { if (initialIndex == 0) { return; } newIndex = 0; } else { if (initialIndex >= tasks.Count) { return; } newIndex = tasks.Count - 1; } tasks.Remove(workOrder); tasks.Insert(newIndex, workOrder); workOrders.Remove(workOrder.Entry); workOrders.Insert(newIndex, workOrder.Entry); workOrder.transform.SetSiblingIndex(newIndex); }
public static void MoveWorkOrderToBottom(TaskManagementWidget taskManagementWidget, TaskManagementElement workOrder) { MoveWorkOrderToEnd(taskManagementWidget, workOrder, End.Bottom); }
public static void Postfix(TaskTimelineWidget __instance, SimGameState ___Sim) { int numMechBayPods = ___Sim.CompanyStats.GetValue <int>(___Sim.Constants.Story.MechBayPodsID); bool auto1 = false; bool auto2 = false; if (___Sim.shipUpgrades.Any(u => u.Tags.Any(t => t.Contains("argo_mechBay_automation1")))) { auto1 = true; } if (___Sim.shipUpgrades.Any(u => u.Tags.Any(t => t.Contains("argo_mechBay_automation2")))) { auto2 = true; } int cumulativeDays = 0; for (int i = 0; i < ___Sim.MechLabQueue.Count; i++) { WorkOrderEntry workOrderEntry2 = ___Sim.MechLabQueue[i]; TaskManagementElement taskManagementElement = null; if (__instance.ActiveItems.TryGetValue(workOrderEntry2, out taskManagementElement) && i == 0) { if (___Sim.WorkOrderIsMechTech(workOrderEntry2.Type)) { cumulativeDays = taskManagementElement.UpdateItem(cumulativeDays); } else { taskManagementElement.UpdateItem(0); } } if (__instance.ActiveItems.TryGetValue(workOrderEntry2, out taskManagementElement) && i == 1) { if (___Sim.WorkOrderIsMechTech(workOrderEntry2.Type) && numMechBayPods == 1) { cumulativeDays = taskManagementElement.UpdateItem(cumulativeDays); } else if (___Sim.WorkOrderIsMechTech(workOrderEntry2.Type) && numMechBayPods > 1) { int temptime = taskManagementElement.UpdateItem(0); if (auto1) { temptime = 0; } taskManagementElement.UpdateItem(Convert.ToInt32(temptime)); } else { taskManagementElement.UpdateItem(0); } } if (__instance.ActiveItems.TryGetValue(workOrderEntry2, out taskManagementElement) && i == 2) { if (___Sim.WorkOrderIsMechTech(workOrderEntry2.Type) && numMechBayPods <= 2) { cumulativeDays = taskManagementElement.UpdateItem(cumulativeDays); } else if (___Sim.WorkOrderIsMechTech(workOrderEntry2.Type) && numMechBayPods > 2) { int temptime = taskManagementElement.UpdateItem(0); if (auto2) { temptime = 0; } taskManagementElement.UpdateItem(Convert.ToInt32(2 * temptime)); } else { taskManagementElement.UpdateItem(0); } } if (__instance.ActiveItems.TryGetValue(workOrderEntry2, out taskManagementElement) && i > 2) { if (___Sim.WorkOrderIsMechTech(workOrderEntry2.Type)) { cumulativeDays = taskManagementElement.UpdateItem(cumulativeDays); } else { taskManagementElement.UpdateItem(0); } } } }