public static void Postfix(SGTravelManager __instance) { var animCounter = Traverse.Create(__instance).Field("jumpshipChargeAndLeaveAnimCounter").GetValue <int>(); if (animCounter == 1) { __instance.AnimationInterrupt(); } }
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); } }
static void Postfix(SGTravelManager __instance) { HeadHuntingHelper.UpdateNextDayOnSystemEntry(); }
public static void Postfix(SGTravelManager __instance) { __instance.AnimationInterrupt(); }