public static void Postfix(SGTravelManager __instance)
        {
            var animCounter = Traverse.Create(__instance).Field("jumpshipChargeAndLeaveAnimCounter").GetValue <int>();

            if (animCounter == 1)
            {
                __instance.AnimationInterrupt();
            }
        }
Beispiel #2
0
        static bool Prefix(SGTravelManager __instance)
        {
            try {
                WIIC.modLog.Debug?.Write($"DisplayEnteredOrbitPopup. System {WIIC.sim.CurSystem.ID}");
                if (!WIIC.flareups.ContainsKey(WIIC.sim.CurSystem.ID))
                {
                    return(true);
                }

                Flareup flareup = WIIC.flareups[WIIC.sim.CurSystem.ID];

                string text = Strings.T("We've arrived at {0}, Commander. The system is currently controlled by {1}, but {2} will attack it soon. If we have good enough reputation with one or both factions, they may have a contract for us to sign on with their side.", flareup.location.Name, flareup.location.OwnerValue.FactionDef.ShortName, flareup.attacker.FactionDef.ShortName);
                WIIC.modLog.Debug?.Write(text);


                WIIC.sim.GetInterruptQueue().QueueTravelPauseNotification("Arrived", text, WIIC.sim.GetCrewPortrait(SimGameCrew.Crew_Sumire), "notification_travelcomplete", delegate {
                    try {
                        WIIC.modLog.Info?.Write($"Sent to command center from popup");
                        WIIC.sim.TriggerSaveNow(SaveReason.SIM_GAME_ARRIVED_AT_PLANET, SimGameState.TriggerSaveNowOption.QUEUE_IF_NEEDED);
                        WIIC.sim.RoomManager.SetQueuedUIActivationID(DropshipMenuType.Contract, DropshipLocation.CMD_CENTER, true);
                        WIIC.sim.RoomManager.ForceShipRoomChangeOfRoom(DropshipLocation.CMD_CENTER);
                    } catch (Exception e) {
                        WIIC.modLog.Error?.Write(e);
                    }
                }, "View contracts", delegate {
                    try {
                        WIIC.sim.TriggerSaveNow(SaveReason.SIM_GAME_ARRIVED_AT_PLANET, SimGameState.TriggerSaveNowOption.QUEUE_IF_NEEDED);
                        WIIC.modLog.Info?.Write($"Passed on poppup");
                    } catch (Exception e) {
                        WIIC.modLog.Error?.Write(e);
                    }
                }, "Continue");

                if (!WIIC.sim.TimeMoving)
                {
                    WIIC.sim.GetInterruptQueue().DisplayIfAvailable();
                }

                return(false);
            } catch (Exception e) {
                WIIC.modLog.Error?.Write(e);
                return(true);
            }
        }
 static bool Prefix(SGTravelManager __instance, SimGameState ___simState)
 {
     try {
         bool              flag       = true;
         Faction           owner      = ___simState.CurSystem.Owner;
         SimGameReputation reputation = ___simState.GetReputation(owner);
         if (reputation <= SimGameReputation.LOATHED)
         {
             flag = false;
         }
         if (flag)
         {
             Action actionArrive = (Action)Delegate.CreateDelegate(typeof(Action), __instance, "OnArrivedAtPlanet");
             Action actionSave   = (Action)Delegate.CreateDelegate(typeof(Action), __instance, "SaveNow");
             ___simState.GetInterruptQueue().QueueTravelPauseNotification("Arrived", Strings.T("We've arrived at {0}.", new object[]
             {
                 ___simState.Starmap.CurPlanet.System.Def.Description.Name
             }), ___simState.GetCrewPortrait(SimGameCrew.Crew_Sumire), "notification_travelcomplete", actionArrive, "Visit Store", actionSave, "Continue");
         }
         else
         {
             Action actionSave = (Action)Delegate.CreateDelegate(typeof(Action), __instance, "SaveNow");
             ___simState.GetInterruptQueue().QueueTravelPauseNotification("Arrived", Strings.T("We've arrived at {0}.", new object[]
             {
                 ___simState.Starmap.CurPlanet.System.Def.Description.Name
             }), ___simState.GetCrewPortrait(SimGameCrew.Crew_Sumire), "notification_travelcomplete", actionSave, "Continue", null, null);
         }
         if (!___simState.TimeMoving)
         {
             ___simState.GetInterruptQueue().DisplayIfAvailable();
         }
         return(false);
     }
     catch (Exception e) {
         Logger.LogError(e);
         return(true);
     }
 }
Beispiel #4
0
 static void Postfix(SGTravelManager __instance)
 {
     HeadHuntingHelper.UpdateNextDayOnSystemEntry();
 }
 public static void Postfix(SGTravelManager __instance)
 {
     __instance.AnimationInterrupt();
 }