public static void Postfix(SimGameState __instance, GameInstanceSave gameInstanceSave) { SimGameSave save = gameInstanceSave.SimGameSave; if (!save.GlobalReferences.HasItem(ModSettings.MOD_SAVE_REFERENCECONTAINER_KEY)) { return; } Contract selectedContract = save.GlobalReferences.GetItem <Contract>(ModSettings.MOD_SAVE_REFERENCECONTAINER_KEY); if (selectedContract == null) { return; } // __instance.SetSelectedContract(selectedContract); //Traverse.Create(__instance).Field("activeBreadcrumb").SetValue(selectedContract); Logger.Minimal("loaded selected Contract: " + selectedContract.Name); Logger.Minimal("selected contract accepted: " + selectedContract.Accepted); Logger.Minimal("selected contract can negogiate : " + selectedContract.CanNegotiate); Logger.Minimal("selected contract carry over negotiate values : " + selectedContract.CarryOverNegotationValues); Logger.Minimal("selected contract cbills: " + selectedContract.PercentageContractValue); Logger.Minimal("selected contract salvage: " + selectedContract.PercentageContractSalvage); Logger.Minimal("selected contract rep: " + selectedContract.PercentageContractReputation); //__instance.PrepareBreadcrumb(selectedContract); selectedContract.Accept(true); }
public static void Prefix(SimGameState __instance, SimGameSave save, ref SerializableReferenceContainer references) { Contract selectedContract = __instance.SelectedContract; // TODO check we're in simGame, not combat! if (selectedContract == null || __instance.BattleTechGame.Combat != null) { return; } LanceConfiguration lastLance = Traverse.Create(__instance).Method("GetLastLance").GetValue <LanceConfiguration>(); selectedContract.SetLanceConfiguration(lastLance); selectedContract.SetCarryOverNegotationValues(true); selectedContract.Accept(true); selectedContract.Override.disableNegotations = true; Contract travelContract = createTravelContract(selectedContract); Logger.Minimal("created travelcontract with name: " + travelContract.Name); __instance.PrepareBreadcrumb(travelContract); // __instance.SetSelectedContract(travelContract, true); //references.AddItem(ModSettings.MOD_SAVE_REFERENCECONTAINER_KEY, travelContract); //references.AddItem("activeBreadcrumb", travelContract); Logger.Minimal("saving selected contract: " + travelContract.GUID); //references.AddItemList<Contract>("globalContracts", new List<Contract>() { selectedContract }); //this.globalContracts = globalReferences.GetItemList<Contract>("globalContracts"); }