mirror of
https://github.com/NuclearPowered/Reactor.git
synced 2026-10-19 15:51:54 +00:00
Support 2024.6.18 (#84)
Co-authored-by: Pietrodjaowjao <nicoleobenetti@gmail.com> Co-authored-by: js6pak <me@6pak.dev>
This commit is contained in:
9 files changed
+44
-41
No files matched your search
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
<Project>
|
<Project>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.679" Private="false" ExcludeAssets="runtime;native" />
|
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.679" Private="false" ExcludeAssets="runtime;native" />
|
||||||
<PackageReference Include="AmongUs.GameLibs.Steam" Version="2023.11.28" PrivateAssets="all" />
|
<PackageReference Include="AmongUs.GameLibs.Steam" Version="2024.6.18" PrivateAssets="all" />
|
||||||
|
|
||||||
<PackageReference Include="BepInEx.AutoPlugin" Version="1.1.0" PrivateAssets="all" />
|
<PackageReference Include="BepInEx.AutoPlugin" Version="1.1.0" PrivateAssets="all" />
|
||||||
<PackageReference Include="BepInEx.IL2CPP.MSBuild" Version="2.0.1" PrivateAssets="all" ExcludeAssets="runtime" />
|
<PackageReference Include="BepInEx.IL2CPP.MSBuild" Version="2.0.1" PrivateAssets="all" ExcludeAssets="runtime" />
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
"net6.0": {
|
"net6.0": {
|
||||||
"AmongUs.GameLibs.Steam": {
|
"AmongUs.GameLibs.Steam": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
"requested": "[2023.11.28, )",
|
"requested": "[2024.6.18, )",
|
||||||
"resolved": "2023.11.28",
|
"resolved": "2024.6.18",
|
||||||
"contentHash": "EsKrZS4tjTRrY7mtZls3tMy54zije4vleEA9s0UGUr4SF3qm2axR6wMncyIJCk4ACXlN5Bxpsd3/upDe9Gnx6A=="
|
"contentHash": "xb+HP1xXn4/ES8AgXpk9xeoW568LFYw5NTjY6bHwd6vQjHDf2kT1xHMmQ1me5Vfee/Gp69YIMZDXUAUToG7Elg=="
|
||||||
},
|
},
|
||||||
"BenchmarkDotNet": {
|
"BenchmarkDotNet": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ internal static class GameOptionsPatches
|
|||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
public static void UnlockAllOptions(GameSettingMenu __instance)
|
public static void UnlockAllOptions(GameSettingMenu __instance)
|
||||||
{
|
{
|
||||||
__instance.HideForOnline = new Il2CppReferenceArray<Transform>(0);
|
__instance.GameSettingsTab.HideForOnline = new Il2CppReferenceArray<Transform>(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(NumberOption), nameof(NumberOption.OnEnable))]
|
[HarmonyPatch(typeof(NumberOption), nameof(NumberOption.SetUpFromData))]
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
public static void UnlockOptionRange(NumberOption __instance)
|
public static void UnlockOptionRange(NumberOption __instance)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -69,11 +69,13 @@ internal sealed class GameTab : BaseTab
|
|||||||
|
|
||||||
private static void SpawnDummy()
|
private static void SpawnDummy()
|
||||||
{
|
{
|
||||||
var playerControl = Object.Instantiate(TutorialManager.Instance.PlayerPrefab);
|
var playerControl = Object.Instantiate(AmongUsClient.Instance.PlayerPrefab);
|
||||||
var playerId = playerControl.PlayerId = (byte) GameData.Instance.GetAvailableId();
|
var playerId = playerControl.PlayerId = (byte) GameData.Instance.GetAvailableId();
|
||||||
|
|
||||||
GameData.Instance.AddPlayer(playerControl);
|
var data = GameData.Instance.AddDummy(playerControl);
|
||||||
|
AmongUsClient.Instance.Spawn(data);
|
||||||
AmongUsClient.Instance.Spawn(playerControl);
|
AmongUsClient.Instance.Spawn(playerControl);
|
||||||
|
playerControl.isDummy = true;
|
||||||
|
|
||||||
playerControl.transform.position = PlayerControl.LocalPlayer.transform.position;
|
playerControl.transform.position = PlayerControl.LocalPlayer.transform.position;
|
||||||
playerControl.GetComponent<DummyBehaviour>().enabled = true;
|
playerControl.GetComponent<DummyBehaviour>().enabled = true;
|
||||||
@@ -88,8 +90,8 @@ internal sealed class GameTab : BaseTab
|
|||||||
playerControl.SetSkin(HatManager.Instance.allSkins[playerId % HatManager.Instance.allSkins.Count].ProdId, color);
|
playerControl.SetSkin(HatManager.Instance.allSkins[playerId % HatManager.Instance.allSkins.Count].ProdId, color);
|
||||||
playerControl.SetVisor(HatManager.Instance.allVisors[playerId % HatManager.Instance.allVisors.Count].ProdId, color);
|
playerControl.SetVisor(HatManager.Instance.allVisors[playerId % HatManager.Instance.allVisors.Count].ProdId, color);
|
||||||
playerControl.SetNamePlate(HatManager.Instance.allNamePlates[playerId % HatManager.Instance.allNamePlates.Count].ProdId);
|
playerControl.SetNamePlate(HatManager.Instance.allNamePlates[playerId % HatManager.Instance.allNamePlates.Count].ProdId);
|
||||||
playerControl.Data.PlayerLevel = playerId;
|
data.PlayerLevel = playerId;
|
||||||
|
|
||||||
GameData.Instance.RpcSetTasks(playerControl.PlayerId, new Il2CppStructArray<byte>(0));
|
data.RpcSetTasks(new Il2CppStructArray<byte>(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,9 @@
|
|||||||
"net6.0": {
|
"net6.0": {
|
||||||
"AmongUs.GameLibs.Steam": {
|
"AmongUs.GameLibs.Steam": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
"requested": "[2023.11.28, )",
|
"requested": "[2024.6.18, )",
|
||||||
"resolved": "2023.11.28",
|
"resolved": "2024.6.18",
|
||||||
"contentHash": "EsKrZS4tjTRrY7mtZls3tMy54zije4vleEA9s0UGUr4SF3qm2axR6wMncyIJCk4ACXlN5Bxpsd3/upDe9Gnx6A=="
|
"contentHash": "xb+HP1xXn4/ES8AgXpk9xeoW568LFYw5NTjY6bHwd6vQjHDf2kT1xHMmQ1me5Vfee/Gp69YIMZDXUAUToG7Elg=="
|
||||||
},
|
},
|
||||||
"BepInEx.AutoPlugin": {
|
"BepInEx.AutoPlugin": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
"net6.0": {
|
"net6.0": {
|
||||||
"AmongUs.GameLibs.Steam": {
|
"AmongUs.GameLibs.Steam": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
"requested": "[2023.11.28, )",
|
"requested": "[2024.6.18, )",
|
||||||
"resolved": "2023.11.28",
|
"resolved": "2024.6.18",
|
||||||
"contentHash": "EsKrZS4tjTRrY7mtZls3tMy54zije4vleEA9s0UGUr4SF3qm2axR6wMncyIJCk4ACXlN5Bxpsd3/upDe9Gnx6A=="
|
"contentHash": "xb+HP1xXn4/ES8AgXpk9xeoW568LFYw5NTjY6bHwd6vQjHDf2kT1xHMmQ1me5Vfee/Gp69YIMZDXUAUToG7Elg=="
|
||||||
},
|
},
|
||||||
"BepInEx.AutoPlugin": {
|
"BepInEx.AutoPlugin": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ internal static class ClientPatches
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(InnerNetClient._HandleGameDataInner_d__39), nameof(InnerNetClient._HandleGameDataInner_d__39.MoveNext))]
|
[HarmonyPatch(typeof(InnerNetClient._HandleGameDataInner_d__41), nameof(InnerNetClient._HandleGameDataInner_d__41.MoveNext))]
|
||||||
public static class HandleGameDataInnerPatch
|
public static class HandleGameDataInnerPatch
|
||||||
{
|
{
|
||||||
public static bool Prefix(InnerNetClient._HandleGameDataInner_d__39 __instance, ref bool __result)
|
public static bool Prefix(InnerNetClient._HandleGameDataInner_d__41 __instance, ref bool __result)
|
||||||
{
|
{
|
||||||
var innerNetClient = __instance.__4__this;
|
var innerNetClient = __instance.__4__this;
|
||||||
var reader = __instance.reader;
|
var reader = __instance.reader;
|
||||||
@@ -125,18 +125,22 @@ internal static class ClientPatches
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(InnerNetClient._CoSendSceneChange_d__30), nameof(InnerNetClient._CoSendSceneChange_d__30.MoveNext))]
|
[HarmonyPatch(typeof(InnerNetClient._CoSendSceneChange_d__32), nameof(InnerNetClient._CoSendSceneChange_d__32.MoveNext))]
|
||||||
public static class CoSendSceneChangePatch
|
public static class CoSendSceneChangePatch
|
||||||
{
|
{
|
||||||
public static bool Prefix(InnerNetClient._CoSendSceneChange_d__30 __instance, ref bool __result)
|
public static bool Prefix(InnerNetClient._CoSendSceneChange_d__32 __instance, ref bool __result)
|
||||||
{
|
{
|
||||||
if (ReactorConnection.Instance!.Syncer != Syncer.Host) return true;
|
if (ReactorConnection.Instance!.Syncer != Syncer.Host) return true;
|
||||||
|
|
||||||
var innerNetClient = __instance.__4__this;
|
var innerNetClient = __instance.__4__this;
|
||||||
|
|
||||||
if (__instance.__1__state == 2)
|
// Check for the conditions when the scene change message should be sent
|
||||||
|
if (!innerNetClient.AmHost &&
|
||||||
|
innerNetClient.connection.State == ConnectionState.Connected &&
|
||||||
|
innerNetClient.ClientId >= 0)
|
||||||
{
|
{
|
||||||
if (!innerNetClient.AmHost && innerNetClient.connection.State == ConnectionState.Connected)
|
var clientData = innerNetClient.FindClientById(innerNetClient.ClientId);
|
||||||
|
if (clientData != null)
|
||||||
{
|
{
|
||||||
var writer = MessageWriter.Get(SendOption.Reliable);
|
var writer = MessageWriter.Get(SendOption.Reliable);
|
||||||
writer.StartMessage(Tags.GameData);
|
writer.StartMessage(Tags.GameData);
|
||||||
@@ -154,21 +158,25 @@ internal static class ClientPatches
|
|||||||
writer.EndMessage();
|
writer.EndMessage();
|
||||||
innerNetClient.SendOrDisconnect(writer);
|
innerNetClient.SendOrDisconnect(writer);
|
||||||
writer.Recycle();
|
writer.Recycle();
|
||||||
}
|
|
||||||
|
|
||||||
__instance.__1__state = -1;
|
// Create a new coroutine to let AmongUsClient handle scene changes too
|
||||||
__result = false;
|
innerNetClient.StartCoroutine(innerNetClient.CoOnPlayerChangedScene(clientData, __instance.sceneName));
|
||||||
return false;
|
|
||||||
|
// Cancel this coroutine
|
||||||
|
__instance.__1__state = -1;
|
||||||
|
__result = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(InnerNetClient._CoHandleSpawn_d__40), nameof(InnerNetClient._CoHandleSpawn_d__40.MoveNext))]
|
[HarmonyPatch(typeof(InnerNetClient._CoHandleSpawn_d__42), nameof(InnerNetClient._CoHandleSpawn_d__42.MoveNext))]
|
||||||
public static class CoHandleSpawnPatch
|
public static class CoHandleSpawnPatch
|
||||||
{
|
{
|
||||||
public static void Postfix(InnerNetClient._CoHandleSpawn_d__40 __instance, bool __result)
|
public static void Postfix(InnerNetClient._CoHandleSpawn_d__42 __instance, bool __result)
|
||||||
{
|
{
|
||||||
if (ReactorConnection.Instance!.Syncer != Syncer.Host) return;
|
if (ReactorConnection.Instance!.Syncer != Syncer.Host) return;
|
||||||
|
|
||||||
|
|||||||
@@ -106,17 +106,10 @@ internal static class HttpPatches
|
|||||||
{
|
{
|
||||||
Warning("Vanilla region, locking public toggle");
|
Warning("Vanilla region, locking public toggle");
|
||||||
|
|
||||||
__instance.MakePublicButtonBehaviour.enabled = false;
|
__instance.HostPublicButton.enabled = false;
|
||||||
var actionMapGlyphDisplay = __instance.MakePublicButton.GetComponentInChildren<ActionMapGlyphDisplay>(includeInactive: true);
|
__instance.HostPrivateButton.transform.FindChild("Inactive").GetComponent<SpriteRenderer>().color = new Color(1, 1, 1, 0.5f);
|
||||||
if (actionMapGlyphDisplay)
|
|
||||||
{
|
|
||||||
actionMapGlyphDisplay.gameObject.SetActive(value: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
__instance.MakePublicButton.color = new Color(1, 1, 1, 0.5f);
|
var onClick = __instance.HostPrivateButton.OnClick = new Button.ButtonClickedEvent();
|
||||||
__instance.MakePublicButton.sprite = __instance.PrivateGameImage;
|
|
||||||
|
|
||||||
var onClick = __instance.MakePublicButton.GetComponent<PassiveButton>().OnClick = new Button.ButtonClickedEvent();
|
|
||||||
onClick.AddListener((Action) MakePublicDisallowedPopup.Show);
|
onClick.AddListener((Action) MakePublicDisallowedPopup.Show);
|
||||||
|
|
||||||
if (AmongUsClient.Instance.AmHost && AmongUsClient.Instance.IsGamePublic)
|
if (AmongUsClient.Instance.AmHost && AmongUsClient.Instance.IsGamePublic)
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
"net6.0": {
|
"net6.0": {
|
||||||
"AmongUs.GameLibs.Steam": {
|
"AmongUs.GameLibs.Steam": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
"requested": "[2023.11.28, )",
|
"requested": "[2024.6.18, )",
|
||||||
"resolved": "2023.11.28",
|
"resolved": "2024.6.18",
|
||||||
"contentHash": "EsKrZS4tjTRrY7mtZls3tMy54zije4vleEA9s0UGUr4SF3qm2axR6wMncyIJCk4ACXlN5Bxpsd3/upDe9Gnx6A=="
|
"contentHash": "xb+HP1xXn4/ES8AgXpk9xeoW568LFYw5NTjY6bHwd6vQjHDf2kT1xHMmQ1me5Vfee/Gp69YIMZDXUAUToG7Elg=="
|
||||||
},
|
},
|
||||||
"BepInEx.AutoPlugin": {
|
"BepInEx.AutoPlugin": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
|
|||||||
Reference in new issue
Block a user