예제 #1
0
        internal static void Prefix(ref Context __instance,
                                    ref List <MonoInstaller> ____installerPrefabs, ref List <MonoInstaller> ____monoInstallers,
                                    ref List <Installer> ____normalInstallers, ref List <Type> ____normalInstallerTypes,
                                    ref List <ScriptableObjectInstaller> ____scriptableObjectInstallers)
        {
            var ____contractNames     = new List <string>();
            var ____decoratorContexts = new List <SceneDecoratorContext>();

            if (__instance is SceneContext sceneContext)
            {
                ____contractNames.AddRange(sceneContext.ContractNames);
                ____decoratorContexts.AddRange(Decorators(ref sceneContext));
            }
            if (__instance is SceneDecoratorContext sceneDecoratorContext)
            {
                ____decoratorContexts.Add(sceneDecoratorContext);
            }

            var sourceNames =
                ____contractNames.Concat(
                    ____installerPrefabs.Select(a => a.GetType().FullName).Concat(
                        ____monoInstallers.Select(b => b.GetType().FullName).Concat(
                            ____normalInstallers.Select(c => c.GetType().FullName).Concat(
                                ____normalInstallerTypes.Select(d => d.FullName).Concat(
                                    ____scriptableObjectInstallers.Select(e => e.GetType().FullName).Concat(
                                        ____decoratorContexts.Select(f => f.gameObject.scene.name)))))));

            SiraEvents.SendInstallEvent(sourceNames.ToArray(), __instance, __instance.Container, ____decoratorContexts, LastGamemodeSetupName, LastTransitionSetupName, LastMidSceneName);
        }
            public static void Postfix(MultiplayerLevelScenesTransitionSetupDataSO multiplayerLevelScenesTransitionSetupData, MultiplayerResultsData multiplayerResultsData)
            {
                var dict = new Dictionary <string, LevelCompletionResults>();

                foreach (var player in multiplayerResultsData.otherPlayersData)
                {
                    dict.Add(player.connectedPlayer.userId, player.multiplayerLevelCompletionResults.levelCompletionResults);
                }
                SiraEvents.SendMultiplayerEvent(multiplayerLevelScenesTransitionSetupData, multiplayerResultsData.localPlayerResultData.multiplayerLevelCompletionResults.levelCompletionResults, dict);
            }
예제 #3
0
        internal static void Prefix(ref SceneContext __instance, ref List <string> ____contractNames,
                                    ref List <MonoInstaller> ____installerPrefabs, ref List <MonoInstaller> ____monoInstallers,
                                    ref List <Installer> ____normalInstallers, ref List <Type> ____normalInstallerTypes,
                                    ref List <ScriptableObjectInstaller> ____scriptableObjectInstallers, ref List <SceneDecoratorContext> ____decoratorContexts)
        {
            var sourceNames =
                ____contractNames.Concat(
                    ____installerPrefabs.Select(a => a.GetType().FullName).Concat(
                        ____monoInstallers.Select(b => b.GetType().FullName).Concat(
                            ____normalInstallers.Select(c => c.GetType().FullName).Concat(
                                ____normalInstallerTypes.Select(d => d.FullName).Concat(
                                    ____scriptableObjectInstallers.Select(e => e.GetType().FullName).Concat(
                                        ____decoratorContexts.Select(f => f.gameObject.scene.name)))))));

            for (int i = 0; i < sourceNames.Count(); i++)
            {
                SiraEvents.SendInstallEvent(sourceNames.ElementAt(i), __instance, __instance.Container, ____decoratorContexts, LastGamemodeSetupName, LastTransitionSetupName, LastMidSceneName);
            }
        }
 public static void Postfix(MultiplayerLevelScenesTransitionSetupDataSO multiplayerLevelScenesTransitionSetupData, DisconnectedReason disconnectedReason)
 {
     SiraEvents.SendDisconnectEvent(multiplayerLevelScenesTransitionSetupData, disconnectedReason);
 }
 public static void Postfix(MissionLevelScenesTransitionSetupDataSO missionLevelScenesTransitionSetupData, MissionCompletionResults missionCompletionResults)
 {
     SiraEvents.SendMissionEvent(missionLevelScenesTransitionSetupData, missionCompletionResults);
 }
 public static void Postfix(StandardLevelScenesTransitionSetupDataSO standardLevelScenesTransitionSetupData, LevelCompletionResults levelCompletionResults)
 {
     SiraEvents.SendStandardEvent(standardLevelScenesTransitionSetupData, levelCompletionResults);
 }