public static void Postfix(LanceConfiguration __instance, string teamDefinition, SpawnableUnit[] __result) { List <string> debugLines = new List <string>(); string teamName = CombatTeamFactionGuids.FactionGUIDToName.ContainsKey(teamDefinition) ? CombatTeamFactionGuids.FactionGUIDToName[teamDefinition] : "Empty"; debugLines.Add("teamDefinition: " + teamName); debugLines.Add("--------------"); foreach (SpawnableUnit unit in __result) { debugLines.Add(String.Format("Unit id: {0}, type: {1}, team: {2}", unit.UnitId, unit.unitType, CombatTeamFactionGuids.FactionGUIDToName[unit.TeamDefinitionGuid])); debugLines.Add(String.Format("Pilot: {0}, Initialized from JSON: {1}, Can Load: {2}", unit.Pilot.Description.DisplayName, unit.IsUnitializedJson, unit.CanLoad())); switch (unit.unitType) { case UnitType.Mech: debugLines.Add(String.Format("name: {0}", unit.Unit.Description.Name)); break; case UnitType.Turret: debugLines.Add(String.Format("name: {0}", unit.TUnit.Description.Name)); break; case UnitType.Vehicle: debugLines.Add(String.Format("name: {0}", unit.VUnit.Description.Name)); break; } debugLines.Add("--------------"); } Logger.Block(debugLines.ToArray(), MethodBase.GetCurrentMethod()); }
static bool Prefix(SkirmishSettings_Beta __instance, ref LanceConfiguration __result) { if (UiManager.Instance.ClickedQuickSkirmish) { Main.Logger.Log($"[SkirmishSettingsBetaFinalizeLancesPatch Prefix] Patching FinalizeLances"); CloudUserSettings playerSettings = ActiveOrDefaultSettings.CloudSettings; LastUsedLances lastUsedLances = playerSettings.LastUsedLances; if (lastUsedLances.ContainsKey(UNLIMITED_LANCE_COST)) { __result = lastUsedLances[UNLIMITED_LANCE_COST]; } else if (lastUsedLances.ContainsKey(WAR_LANCE_COST)) { __result = lastUsedLances[WAR_LANCE_COST]; } else if (lastUsedLances.ContainsKey(BATTLE_LANCE_COST)) { __result = lastUsedLances[BATTLE_LANCE_COST]; } else if (lastUsedLances.ContainsKey(CLASH_LANCE_COST)) { __result = lastUsedLances[CLASH_LANCE_COST]; } else { Main.Logger.LogError("[Quick Skirmish] Quick Skirmish cannot be used without a prevously used lance. Go into skirmish and launch at least once"); } return(false); } return(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"); }
static bool Prefix(LanceConfiguratorPanel __instance, ref LanceConfiguration __result) { try { return(false); } catch (Exception e) { Logger.LogError(e); return(false); } }
static void Postfix(LanceConfiguratorPanel __instance, ref LanceConfiguration __result, LanceLoadoutSlot[] ___loadoutSlots) { try { if (CustomUnitsAPI.Detected()) { return; } Fields.callsigns.Clear(); LanceConfiguration lanceConfiguration = new LanceConfiguration(); for (int i = 0; i < ___loadoutSlots.Length; i++) { LanceLoadoutSlot lanceLoadoutSlot = ___loadoutSlots[i]; MechDef mechDef = null; PilotDef pilotDef = null; if (lanceLoadoutSlot.SelectedMech != null) { mechDef = lanceLoadoutSlot.SelectedMech.MechDef; } if (lanceLoadoutSlot.SelectedPilot != null) { pilotDef = lanceLoadoutSlot.SelectedPilot.Pilot.pilotDef; } if (mechDef != null && pilotDef != null) { if (i < Settings.DEFAULT_MECH_SLOTS) { lanceConfiguration.AddUnit(__instance.playerGUID, mechDef, pilotDef); } else { //if (i >= BiggerDrops.settings.additinalMechSlots + Settings.DEFAULT_MECH_SLOTS) { break; } Logger.M.TWL(0, "LanceConfiguratorPanel.CreateLanceConfiguration. Index:" + i + " additional slots border:" + (BiggerDrops.settings.additinalMechSlots + Settings.DEFAULT_MECH_SLOTS) + " player slots border:" + (BiggerDrops.settings.additinalPlayerMechSlots + Settings.DEFAULT_MECH_SLOTS)); if (i >= BiggerDrops.settings.additinalPlayerMechSlots + Settings.DEFAULT_MECH_SLOTS) { Fields.callsigns.Add(pilotDef.Description.Callsign); //EMPLOYER ID Logger.M.WL(1, "adding to employer lance " + Settings.EMPLOYER_LANCE_GUID + " mech:" + mechDef.Description.Id + " pilot:" + pilotDef.Description.Id); lanceConfiguration.AddUnit(Settings.EMPLOYER_LANCE_GUID, mechDef, pilotDef); } else { Logger.M.WL(1, "adding to player lance " + __instance.playerGUID + " mech:" + mechDef.Description.Id + " pilot:" + pilotDef.Description.Id); lanceConfiguration.AddUnit(__instance.playerGUID, mechDef, pilotDef); } } } } __result = lanceConfiguration; } catch (Exception e) { Logger.LogError(e); } }