static bool Prefix(PreGameCareerModeSettingsTotalScoreDescAndBar __instance, float newMod) { bool flag = false; SimGameState simulation = UnityGameInstance.BattleTechGame.Simulation; if (simulation != null && simulation.DifficultySettings.GetRawCareerModifier() < newMod) { flag = true; } var absDiffRange = Mathf.Abs(ModState.MinDiffModifier) + ModState.MaxDiffModifier; var newModShiftedAbs = newMod + Mathf.Abs(ModState.MinDiffModifier); __instance.ShowAttemptedToRaiseDifficultyWarningIcon(flag); float fillAmount = newModShiftedAbs / absDiffRange; __instance.DifficultyFillBar.fillAmount = fillAmount; __instance.TotalScoreModifierValue.SetText("{0:n2}", new object[] { newMod }); return(false); }
static void Postfix(SimGameDifficultySettingsModule __instance, PreGameCareerModeSettingsTotalScoreDescAndBar ___difficultyBarAndMod) { if (__instance != null && ___difficultyBarAndMod != null) { ___difficultyBarAndMod.TotalScoreModifierLabel.SetText( new Text(Mod.LocalizedText.SimGameDifficultyStrings[ModText.SGDS_Desc], new object[] { }) ); GameObject difficultyTotalGO = __instance.gameObject.FindFirstChildNamed("OBJ_difficultyTotal"); if (difficultyTotalGO != null) { // Find difTotal-text GameObject diffTotalGO = difficultyTotalGO.FindFirstChildNamed("difTotal-text"); if (diffTotalGO != null) { // Use the label here LocalizableText localText = diffTotalGO.GetComponent <LocalizableText>(); if (localText != null) { Mod.Log.Info?.Write("UPDATED LABEL"); localText.SetText(Mod.LocalizedText.SimGameDifficultyStrings[ModText.SGDS_Label]); } else { Mod.Log.Warn?.Write("FAILED TO FIND LocalizableText COMP FOR `diffTotal-text`"); } } else { Mod.Log.Warn?.Write("FAILED TO FIND `diffTotal-text` CHILD OF `OBJ_difficultyTotal`!"); } } } }
static bool Prefix(SimGameDifficultySettingsModule __instance, SimGameDifficulty ___cachedDiff, PreGameCareerModeSettingsTotalScoreDescAndBar ___difficultyBarAndMod) { float num = __instance.CalculateRawScoreMod(); bool active = __instance.ShouldShowDifficultyData(); ___difficultyBarAndMod.gameObject.SetActive(active); ___difficultyBarAndMod.RefreshInfo(num); if (__instance.CanModifyStartSettings) { var atlasSkull = GameObject.Find("atlasSkull-image"); var atlasImage = atlasSkull.gameObject.GetComponent <Image>(); var currentModifier = Mathf.Abs(Mathf.Max(0, num) - ModState.MaxDiffModifier); var scaledModifier = Mathf.FloorToInt(currentModifier * 255 / ModState.MaxDiffModifier); Mod.Log.Info?.Write($"COLOR SCORE MOD THING: real score {num} vs current {currentModifier} vs scaled {scaledModifier}"); Mod.Log.Info?.Write($"From UPDATEDIFFICULTYSCOREBAR: Atlas values: {atlasImage.color.r}, {atlasImage.color.g}, {atlasImage.color.b}, {atlasImage.color.a}"); atlasImage.color = new Color32(255, (byte)scaledModifier, (byte)scaledModifier, 255);; } return(false); }
static void Prefix(SimGameDifficultySettingsModule __instance, SimGameDifficulty ___cachedDiff, PreGameCareerModeSettingsTotalScoreDescAndBar ___difficultyBarAndMod) { if (ModState.HaveDiffSettingsInitiated) { return; } ___cachedDiff = UnityGameInstance.BattleTechGame.DifficultySettings; if (ModState.MaxDiffModifier == 0f && ModState.MinDiffModifier == 0f) { Helper.DifficultyHelper.GetDifficultyModifierRange(___cachedDiff); } if (__instance.CanModifyStartSettings) { var atlasSkull = GameObject.Find("atlasSkull-image"); var atlasImage = atlasSkull.gameObject.GetComponent <Image>(); var currentModifier = Mathf.Abs(Mathf.Max(0, __instance.CalculateRawScoreMod()) - ModState.MaxDiffModifier); var scaledModifier = Mathf.FloorToInt(currentModifier * 255 / ModState.MaxDiffModifier); atlasImage.color = new Color32(255, (byte)scaledModifier, (byte)scaledModifier, 255); Mod.Log.Info?.Write($"From INITSETTINGS: Atlas values: {atlasImage.color.r}, {atlasImage.color.g}, {atlasImage.color.b}, {atlasImage.color.a}"); } var settings = ___cachedDiff.GetSettings(); settings.Sort(delegate(SimGameDifficulty.DifficultySetting a, SimGameDifficulty.DifficultySetting b) { if (a.UIOrder != b.UIOrder) { return(a.UIOrder.CompareTo(b.UIOrder)); } return(a.Name.CompareTo(b.Name)); }); var startCount = -5; foreach (var setting in settings) { if (setting.Visible && setting.StartOnly && setting.Enabled) { startCount += 1; } } var startYAdjust = startCount / 2; var regularDiffs = GameObject.Find("difficulty_scroll"); var startOnly = GameObject.Find("OBJ_startOnly_settings"); var startRect = startOnly.GetComponent <RectTransform>(); if (startYAdjust > 0) { if (__instance.CanModifyStartSettings) { var barRect = ___difficultyBarAndMod.gameObject.GetComponent <RectTransform>(); var currentbarPos = barRect.position; currentbarPos.x = 700f; currentbarPos.y = 400f; barRect.position = currentbarPos; } else { var barRect = ___difficultyBarAndMod.gameObject.GetComponent <RectTransform>(); var currentbarPos = barRect.position; currentbarPos.y = 820f; barRect.position = currentbarPos; } var currentStartPosition = startRect.position; currentStartPosition.y += Mod.Config.Misc.DifficultyUIScaling.StartOnlyPositionY; startRect.position = currentStartPosition; var currentStartSizeDelta = startRect.sizeDelta; currentStartSizeDelta.y += startYAdjust * Mod.Config.Misc.DifficultyUIScaling.StartOnlyScalar; startRect.sizeDelta = currentStartSizeDelta; var regularRect = regularDiffs.GetComponent <RectTransform>(); var currentRegSizeDelta = regularRect.sizeDelta; currentRegSizeDelta.y -= startYAdjust - 1 * Mod.Config.Misc.DifficultyUIScaling.StartOnlyScalar; regularRect.sizeDelta = currentRegSizeDelta; var currentRegPosition = regularRect.position; currentRegPosition.y += Mod.Config.Misc.DifficultyUIScaling.RegularPositionY; currentRegPosition.y -= (startYAdjust * Mod.Config.Misc.DifficultyUIScaling.StartOnlyPositionY); regularRect.position = currentRegPosition; } var startTransformLayoutGroup = startOnly.GetComponent <RectTransform>().GetComponent <GridLayoutGroup>(); startTransformLayoutGroup.childAlignment = TextAnchor.UpperCenter; startTransformLayoutGroup.cellSize = new Vector2(375, 40); startTransformLayoutGroup.spacing = new Vector2(25, 10); }