2022-04-05 23:08:30 -07:00
|
|
|
|
using HarmonyLib;
|
2022-04-05 23:18:42 -07:00
|
|
|
|
using QSB.EchoesOfTheEye.GrappleTotemSync.Messages;
|
|
|
|
|
using QSB.EchoesOfTheEye.GrappleTotemSync.WorldObjects;
|
|
|
|
|
using QSB.Messaging;
|
2022-04-05 23:08:30 -07:00
|
|
|
|
using QSB.Patches;
|
|
|
|
|
using QSB.WorldSync;
|
|
|
|
|
|
|
|
|
|
namespace QSB.EchoesOfTheEye.GrappleTotemSync.Patches;
|
|
|
|
|
|
|
|
|
|
public class GrappleTotemPatches : QSBPatch
|
|
|
|
|
{
|
|
|
|
|
public override QSBPatchTypes Type => QSBPatchTypes.OnClientConnect;
|
|
|
|
|
|
|
|
|
|
[HarmonyPrefix]
|
|
|
|
|
[HarmonyPatch(typeof(LanternZoomPoint), nameof(LanternZoomPoint.OnDetectLight))]
|
|
|
|
|
private static bool OnDetectLight(LanternZoomPoint __instance) =>
|
2022-05-27 22:28:24 -07:00
|
|
|
|
// only trigger with local player lantern
|
2022-05-28 09:11:43 -07:00
|
|
|
|
__instance._lightSensor.IsIlluminatedByLantern(Locator.GetDreamWorldController().GetPlayerLantern().GetLanternController());
|
2022-04-05 23:18:42 -07:00
|
|
|
|
|
|
|
|
|
[HarmonyPostfix]
|
|
|
|
|
[HarmonyPatch(typeof(LanternZoomPoint), nameof(LanternZoomPoint.StartZoomIn))]
|
|
|
|
|
private static void StartZoomIn(LanternZoomPoint __instance)
|
|
|
|
|
{
|
|
|
|
|
if (__instance._totemAnimator != null && QSBWorldSync.AllObjectsReady)
|
|
|
|
|
{
|
|
|
|
|
__instance.GetWorldObject<QSBGrappleTotem>()
|
|
|
|
|
.SendMessage(new GrappleAnimateMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-04-05 23:08:30 -07:00
|
|
|
|
}
|