Ejemplo n.º 1
0
        protected static void AddLocalizedText(LevelFailedTextEffect levelFailedTextEffect)
        {
            bool wasActive = levelFailedTextEffect.gameObject.activeSelf;

            levelFailedTextEffect.gameObject.SetActive(false);

            RectTransform transform = (RectTransform)levelFailedTextEffect.transform;

            transform.sizeDelta = new Vector2(12, transform.sizeDelta.y);

            Transform textTransform = levelFailedTextEffect.transform.Find("Text");

            if (!textTransform)
            {
                Plugin.Log.Error($"Could not find 'Text' transform on '{levelFailedTextEffect}'");
                return;
            }

            TextMeshPro text = textTransform.GetComponent <TextMeshPro>();

            text.fontStyle  |= FontStyles.UpperCase;
            text.lineSpacing = -40;

            LocalizedTextMeshPro localizedText = textTransform.gameObject.AddComponent <LocalizedTextMeshPro>();

            localizedText.SetField <LocalizedTextComponent <TextMeshPro>, TextMeshPro>("localizedComponent", text);
            localizedText.Key = "LEVEL_FAILED";

            levelFailedTextEffect.gameObject.SetActive(wasActive);
        }
Ejemplo n.º 2
0
 public TextUpdater(LevelFailedTextEffect effect, IGameEnergyCounter energyCounter, PluginConfig config
                    , GameplayModifiers mods, ListBuilder builder, SiraLog log)
 {
     _config        = config;
     _effect        = effect;
     _energyCounter = energyCounter;
     _builder       = builder;
     _mods          = mods;
     _log           = log;
 }
Ejemplo n.º 3
0
        public void OnLevelFailed()
        {
            if (multiplayerSessionManager != null && multiplayerSessionManager.isConnected && !_lastStandingCheckActive)
            {
                StartCoroutine(CheckLastStanding());
            }
            if (LevelFailedEffect == null)
            {
                LevelFailedEffect = Resources.FindObjectsOfTypeAll <LevelFailedTextEffect>().FirstOrDefault();
            }

            //Logger.Trace("BailOutController ShowLevelFailed()");
            //BS_Utils.Gameplay.ScoreSubmission.DisableSubmission(Plugin.PluginName); Don't need this here
            UpdateFailText($"Bailed Out {numFails} time{(numFails != 1 ? "s" : "")}");
            try
            {
                if (!Configuration.instance.RepeatFailEffect && numFails > 1)
                {
                    return; // Don't want to repeatedly show fail effect, stop here.
                }
                //Logger.Debug("Showing fail effects");
                if (!isHiding && Configuration.instance.ShowFailEffect && LevelFailedEffect != null)
                {
                    LevelFailedEffect.ShowEffect();
                    if (Configuration.instance.FailEffectDuration > 0)
                    {
                        StartCoroutine(hideLevelFailed());
                    }
                    else
                    {
                        isHiding = true; // Fail text never hides, so don't try to keep showing it
                    }
                }

                if (Configuration.instance.ShowFailAnimation && LevelFailedEnergyBarAnimation != null)
                {
                    // Cancel any in-progress fail animation before playing a new animation, to prevent missing an animation when failing multiple times in quick succession.
                    LevelFailedEnergyBarAnimation.Stop();
                    LevelFailedEnergyBarAnimation.Play();
                }
            }
            catch (Exception ex)
            {
                Logger.log.Error($"Exception trying to show the fail Effects: {ex.Message}");
                Logger.log.Debug(ex);
            }
        }
Ejemplo n.º 4
0
 public void Start()
 {
     Logger.log?.Debug("BailOutController Start()");
     if (BS_Utils.Gameplay.ScoreSubmission.Disabled)
     {
         Logger.log?.Warn($"ScoreSubmission already disabled by {BS_Utils.Gameplay.ScoreSubmission.ModString}");
     }
     if (IsEnabled)
     {
         Logger.log.Info("BailOutMode enabled");
     }
     if (multiplayerSessionManager == null)
     {
         Logger.log?.Warn($"connectedPlayerManager is null.");
     }
     LevelFailedEffect = Resources.FindObjectsOfTypeAll <LevelFailedTextEffect>().FirstOrDefault();
     if (LevelFailedEffect == null)
     {
         Logger.log?.Warn("Couldn't find LevelFailedTextEffect");
     }
     LevelFailedEnergyBarAnimation = (PlayableDirector)AccessTools.Field(typeof(GameEnergyUIPanel), "_playableDirector").GetValue(GameObject.FindObjectOfType <GameEnergyUIPanel>());
 }
Ejemplo n.º 5
0
 public static void Postfix(LevelFailedTextEffect ____levelFailedTextEffect)
 {
     AddLocalizedText(____levelFailedTextEffect);
 }