Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        public static bool Prefix(TaskManagementElement element)
        {
            if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
            {
                AdvanceToTask.StartAdvancing(element.Entry);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
            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);
            }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
            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);
        }
Ejemplo n.º 8
0
 public static void MoveWorkOrderToTop(TaskManagementWidget taskManagementWidget, TaskManagementElement workOrder)
 {
     MoveWorkOrderToEnd(taskManagementWidget, workOrder, End.Top);
 }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 public static void MoveWorkOrderToBottom(TaskManagementWidget taskManagementWidget, TaskManagementElement workOrder)
 {
     MoveWorkOrderToEnd(taskManagementWidget, workOrder, End.Bottom);
 }
Ejemplo n.º 11
0
        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);
                    }
                }
            }
        }