mirror of
https://github.com/All-Of-Us-Mods/MiraAPI.git
synced 2026-10-20 01:46:15 +00:00
Merge branch 'dev' into presets
This commit is contained in:
commit
41305ad0e2
7 files changed
+103
-6
No files matched your search
@@ -0,0 +1,12 @@
|
|||||||
|
namespace MiraAPI.Events.Vanilla.Gameplay;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The event that is invoked when the intro cutscene has finished playing.
|
||||||
|
/// </summary>
|
||||||
|
public class IntroEndEvent(IntroCutscene introCutscene) : MiraEvent
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the instance of the IntroCutscene.
|
||||||
|
/// </summary>
|
||||||
|
public IntroCutscene IntroCutscene { get; } = introCutscene;
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
namespace MiraAPI.Events.Vanilla.Gameplay;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start Round event, invoked on IntroCutscene.OnDestroy and ExileController.WrapUp.
|
||||||
|
/// </summary>
|
||||||
|
public class RoundStartEvent : MiraEvent
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a value indicating whether the event was triggered by the IntroCutscene or ExileController.
|
||||||
|
/// </summary>
|
||||||
|
public bool TriggeredByIntro { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="RoundStartEvent"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="triggeredByIntro">Whether the event was triggered by the intro or not.</param>
|
||||||
|
public RoundStartEvent(bool triggeredByIntro)
|
||||||
|
{
|
||||||
|
TriggeredByIntro = triggeredByIntro;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
namespace MiraAPI.Events.Vanilla.Meeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The event that is invoked when the meeting has ended.
|
||||||
|
/// </summary>
|
||||||
|
public class EndMeetingEvent(MeetingHud meetingHud) : MiraEvent
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the MeetingHud instance.
|
||||||
|
/// </summary>
|
||||||
|
public MeetingHud MeetingHud { get; } = meetingHud;
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
namespace MiraAPI.Events.Vanilla.Meeting.Voting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The event that is invoked when the voting phase of a meeting is complete.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="meetingHud">The MeetingHud instance.</param>
|
||||||
|
public class VotingCompleteEvent(MeetingHud meetingHud) : MiraEvent
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the MeetingHud instance.
|
||||||
|
/// </summary>
|
||||||
|
public MeetingHud MeetingHud { get; } = meetingHud;
|
||||||
|
}
|
||||||
@@ -56,11 +56,11 @@ public static class IntroCutscenePatches
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
[HarmonyPatch(nameof(IntroCutscene.OnDestroy))]
|
[HarmonyPatch(nameof(IntroCutscene.OnDestroy))]
|
||||||
public static void GameBeginPatch()
|
public static void GameBeginPatch(IntroCutscene __instance)
|
||||||
{
|
{
|
||||||
CustomGameModeManager.ActiveMode?.Initialize();
|
MiraEventManager.InvokeEvent(new IntroEndEvent(__instance));
|
||||||
}*/
|
MiraEventManager.InvokeEvent(new RoundStartEvent(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
using HarmonyLib;
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection;
|
||||||
|
using HarmonyLib;
|
||||||
using MiraAPI.Events;
|
using MiraAPI.Events;
|
||||||
|
using MiraAPI.Events.Vanilla.Gameplay;
|
||||||
using MiraAPI.Events.Vanilla.Meeting;
|
using MiraAPI.Events.Vanilla.Meeting;
|
||||||
using MiraAPI.Roles;
|
using MiraAPI.Roles;
|
||||||
|
|
||||||
@@ -31,4 +34,24 @@ public static class EjectionPatches
|
|||||||
|
|
||||||
__instance.completeString = role.GetCustomEjectionMessage(__instance.initData.networkedPlayer);
|
__instance.completeString = role.GetCustomEjectionMessage(__instance.initData.networkedPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch]
|
||||||
|
internal static class WrapUpPatch
|
||||||
|
{
|
||||||
|
public static IEnumerable<MethodBase> TargetMethods()
|
||||||
|
{
|
||||||
|
yield return AccessTools.Method(typeof(ExileController), nameof(ExileController.WrapUp));
|
||||||
|
yield return AccessTools.Method(typeof(AirshipExileController), nameof(AirshipExileController.WrapUpAndSpawn));
|
||||||
|
if (AccessTools.TypeByName("Submerged.ExileCutscene.SubmergedExileController") is { } type)
|
||||||
|
{
|
||||||
|
yield return AccessTools.Method(type, "WrapUpAndSpawn");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Postfix()
|
||||||
|
{
|
||||||
|
var @event = new RoundStartEvent(false);
|
||||||
|
MiraEventManager.InvokeEvent(@event);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
|
using System.Linq;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
using Il2CppInterop.Runtime.InteropTypes.Arrays;
|
||||||
using MiraAPI.Events;
|
using MiraAPI.Events;
|
||||||
@@ -10,6 +11,7 @@ using MiraAPI.Voting;
|
|||||||
namespace MiraAPI.Patches.Voting;
|
namespace MiraAPI.Patches.Voting;
|
||||||
|
|
||||||
[HarmonyPatch(typeof(MeetingHud))]
|
[HarmonyPatch(typeof(MeetingHud))]
|
||||||
|
[SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Harmony Convention")]
|
||||||
internal static class MeetingHudPatches
|
internal static class MeetingHudPatches
|
||||||
{
|
{
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
@@ -31,6 +33,20 @@ internal static class MeetingHudPatches
|
|||||||
MiraEventManager.InvokeEvent(@event);
|
MiraEventManager.InvokeEvent(@event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HarmonyPostfix]
|
||||||
|
[HarmonyPatch(nameof(MeetingHud.OnDestroy))]
|
||||||
|
public static void MeetingHudOnDestroyPatch(MeetingHud __instance)
|
||||||
|
{
|
||||||
|
MiraEventManager.InvokeEvent(new EndMeetingEvent(__instance));
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPostfix]
|
||||||
|
[HarmonyPatch(nameof(MeetingHud.VotingComplete))]
|
||||||
|
public static void MeetingHudVotingCompletePatch(MeetingHud __instance)
|
||||||
|
{
|
||||||
|
MiraEventManager.InvokeEvent(new VotingCompleteEvent(__instance));
|
||||||
|
}
|
||||||
|
|
||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
[HarmonyPatch(nameof(MeetingHud.Select))]
|
[HarmonyPatch(nameof(MeetingHud.Select))]
|
||||||
public static bool SelectPatch(MeetingHud __instance, int suspectStateIdx)
|
public static bool SelectPatch(MeetingHud __instance, int suspectStateIdx)
|
||||||
|
|||||||
Reference in new issue
Block a user