public static bool Prefix(SimGameResultAction action, object additionalObject, ref bool __result) { SimGameState simulation = UnityGameInstance.BattleTechGame.Simulation; if (simulation == null) { return(true); } if (action.Type == SimGameResultAction.ActionType.System_SetDropship) { if (!action.value.ToLower().Contains("leopard") && !action.value.ToLower().Contains("argo")) { DifficultyOptionsMain.ApplyEventResult(simulation, action.valueConstant, action.additionalValues); __result = false; return(false); } } return(true); }
public static void Prefix(SimGameDifficulty __instance, bool force, SimGameState ___simState, SimGameDifficulty.DifficultySetting setting, int index, Dictionary <string, int> ___difficultyIndices, ref List <SimGameDifficulty.DifficultyConstantValue> __state) { __state = null; if (setting == null) { return; } if (!force && ___difficultyIndices[setting.ID] == index) { return; } if (index >= setting.Options.Count) { return; } if (!setting.Enabled) { return; } try { SimGameDifficulty.DifficultyOption opt = setting.Options[index]; if (opt.DifficultyConstants != null) { __state = opt.DifficultyConstants; foreach (SimGameDifficulty.DifficultyConstantValue v in opt.DifficultyConstants) { if (v.ConstantType.Equals("AdditionalSettings")) { DifficultyOptionsMain.ApplySettings(___simState, setting.ID, v.ConstantName, v.ConstantValue); } } opt.DifficultyConstants = opt.DifficultyConstants.Where((x) => !x.ConstantType.Equals("AdditionalSettings")).ToList(); } } catch (Exception e) { FileLog.Log(e.ToString()); } }