Exemple #1
0
        static void Postfix(SubtitleLogic __instance, SubtitleEvent.Data data)
        {
            if (__instance.currentEmitter_ is null || data.emitter_ is null)
            {
                return;
            }
            __instance.CheckCameraDistance(data.emitter_);
            if (__instance.distanceToCurrentEmitter_ > data.emitter_.MaxAttenuationSq_)
            {
                return;
            }

            SubtitleState.strLabel    = data.strLabel_;
            SubtitleState.markerID    = data.markerID_;
            SubtitleState.forceString = data.forceString_;
            SubtitleState.emitter     = data.emitter_;

            if (G.Sys.GameManager_.ModeID_ != GameModeID.Adventure)
            {
                return;
            }

            AdventureMode mode      = G.Sys.GameManager_.Mode_ as AdventureMode;
            TimeSpan      countdown = TimeSpan.FromSeconds(mode.GetCountdownTime());

            SubtitleState.countdownHours   = countdown.Hours;
            SubtitleState.countdownMinutes = countdown.Minutes;
            SubtitleState.countdownSeconds = countdown.Seconds;
        }
        static void Postfix(SubtitleLogic __instance, SubtitleEvent.Data data)
        {
            __instance.CheckCameraDistance(data.emitter_);
            string event_name = $"subtitles.{Minify(data.emitter_.event_)}_{Minify(data.strLabel_)}_{data.markerID_}_{data.emitter_.currentPlayingID_}";

            if ((data.emitter_.playState_ == AmbientAudioObject.PlayState.Play || data.forceString_) && __instance.distanceToCurrentEmitter_ <= data.emitter_.maxAttenuationSq_)
            {
                Flags.subtitle_id = __instance.timer_ <= 0 ? "subtitles.empty" : event_name;
                Events.Plugins.SubtitleEvent.Broadcast(Flags.subtitle_id);
            }
        }
Exemple #3
0
        static bool Prefix(SubtitleLogic __instance, SubtitleEvent.Data data)
        {
            if (__instance.currentEmitter_ != null && data.emitter_ != __instance.currentEmitter_ && __instance.recentCarCam_ != null && (__instance.recentCarCam_.transform.position - data.emitter_.transform.position).sqrMagnitude > __instance.distanceToCurrentEmitter_)
            {
                return(false);
            }
            __instance.CheckCameraDistance(data.emitter_);
            if (__instance.distanceToCurrentEmitter_ > data.emitter_.MaxAttenuationSq_)
            {
                return(false);
            }

            __instance.currentEmitter_ = data.emitter_;
            __instance.timer_          = __instance.timeOut_;

            Postfix(__instance, data);
            return(false);
        }