Skip to content

Commit

Permalink
some reorgnaizing, fix contract difficulty persistence
Browse files Browse the repository at this point in the history
  • Loading branch information
ajkroeg committed Jul 1, 2022
1 parent c08d699 commit ba7025b
Show file tree
Hide file tree
Showing 5 changed files with 195 additions and 146 deletions.
2 changes: 1 addition & 1 deletion MapRandomizer/MapRandomizer/MapRandomizer.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
</Compile>
<Compile Include="source\Logger.cs" />
<Compile Include="source\ModInit.cs" />
<Compile Include="source\Patches\ContractPatch.cs" />
<Compile Include="source\Patches\DifficultyPersistancePatches.cs" />
<Compile Include="source\Patches\MapRandomizer.cs" />
<Compile Include="source\ModState.cs" />
</ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions MapRandomizer/MapRandomizer/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.0.0.8")]
[assembly: AssemblyFileVersion("1.0.0.8")]
[assembly: AssemblyVersion("1.0.1.0")]
[assembly: AssemblyFileVersion("1.0.1.0")]
26 changes: 0 additions & 26 deletions MapRandomizer/MapRandomizer/source/Patches/ContractPatch.cs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BattleTech;
using BattleTech.Save;
using BattleTech.Save.Test;
using Harmony;
using MapRandomizer.Patches;
using UnityEngine;

namespace MapRandomizer.source.Patches
{
internal class DifficultyPersistancePatches
{
[HarmonyPatch(typeof(SimGameState), "Dehydrate",
new Type[] {typeof(SimGameSave), typeof(SerializableReferenceContainer)})]
public static class SGS_Dehydrate_Patch//MR_DIFFICULTY_
{
public static void Prefix(SimGameState __instance)
{
foreach (var diffOverride in ModState.SavedDiffOverrides)
{
__instance.CompanyStats.AddStatistic(diffOverride.Key, diffOverride.Value);
}
}
}

[HarmonyPatch(typeof(SimGameState), "Rehydrate", new Type[] {typeof(GameInstanceSave)})]
public static class SGS_Rehydrate_Patch
{
public static void Postfix(SimGameState __instance)
{
foreach (var statistic in __instance.CompanyStats)
{
if (statistic.Key.StartsWith("MR_DIFFICULTY_"))
{
ModState.SavedDiffOverrides.Add(statistic.Key, statistic.Value.Value<int>());
}
}

foreach (var statOverride in ModState.SavedDiffOverrides)
{
__instance.CompanyStats.RemoveStatistic(statOverride.Key);
}
}
}

[HarmonyPatch(typeof(Contract), "CompleteContract", new Type[] {typeof(MissionResult), typeof(bool)})]
public static class Contract_CompleteContract_Patch
{
public static void Prefix(Contract __instance, MissionResult result, bool isGoodFaithEffort)
{
var sim = UnityGameInstance.BattleTechGame.Simulation;
if (sim == null) return;
var baseDiff = sim.CurSystem.Def.GetDifficulty(sim.SimGameMode) + Mathf.FloorToInt(sim.GlobalDifficulty);
var quid = __instance.GenerateContractQuasiGUID(__instance.Override.employerTeam.FactionValue, __instance.Override.targetTeam.FactionValue, baseDiff, __instance.ContractBiome, sim.CurSystem);
if (ModState.SavedDiffOverrides.ContainsKey(quid))
{
ModState.SavedDiffOverrides.Remove(quid);
}
}
}
}
}
Loading

0 comments on commit ba7025b

Please sign in to comment.