stop searching for TNHLBPC after 120s, add option for hp text visibility

This commit is contained in:
msk
2022-01-24 01:48:22 -08:00
parent 28dddcc0d0
commit b259424300
3 changed files with 66 additions and 49 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
PackageName: TNH_Quality_of_Life_Improvements PackageName: TNH_Quality_of_Life_Improvements
Author: muskit Author: muskit
Version: 1.0.0 Version: 1.0.1
Icon: {fileID: 2800000, guid: 785b7946398f5314b95bf593d2d77d67, type: 3} Icon: {fileID: 2800000, guid: 785b7946398f5314b95bf593d2d77d67, type: 3}
ReadMe: {fileID: 102900000, guid: ab1d6dea017447a48ac348db588a6f35, type: 3} ReadMe: {fileID: 102900000, guid: ab1d6dea017447a48ac348db588a6f35, type: 3}
WebsiteURL: https://github.com/muskit/TNH-Quality-of-Life-Improvements WebsiteURL: https://github.com/muskit/TNH-Quality-of-Life-Improvements
+42 -29
View File
@@ -32,18 +32,18 @@ public class MeatKitPlugin : BaseUnityPlugin
#pragma warning disable 414 #pragma warning disable 414
private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
#pragma warning restore 414 #pragma warning restore 414
private bool lpcKilled = false;
public static AssetBundle bundle; public static AssetBundle bundle;
public static ConfigEntry<bool> cfgSolidifyHPText;
public static ConfigEntry<bool> showHPBackground; public static ConfigEntry<bool> cfgShowHPBackground;
public static ConfigEntry<float> hpBackgroundOpacity; public static ConfigEntry<float> cfgHPBackgroundOpacity;
public static ConfigEntry<bool> showTokens; public static ConfigEntry<bool> cfgShowTokens;
public static ConfigEntry<bool> showHolds; public static ConfigEntry<bool> cfgShowHolds;
private static InPlay instance; private static InPlay instance;
private LeaderboardPlayerCountPatch lpc; private LeaderboardPlayerCountPatch lpc;
private bool lpcModGone = false;
private float lpcModSearchTimeEnd;
private void SceneChanged(Scene from, Scene to) private void SceneChanged(Scene from, Scene to)
{ {
@@ -66,35 +66,42 @@ public class MeatKitPlugin : BaseUnityPlugin
LoadAssets(); LoadAssets();
// setup configuration // setup configuration
showHPBackground = Config.Bind("Health Counter", cfgShowHPBackground = Config.Bind("Health Counter",
"Background enabled", "Background enabled",
true, true,
"Apply a background to the health text."); "Apply a background to the health text.");
hpBackgroundOpacity = Config.Bind("Health Counter", cfgHPBackgroundOpacity = Config.Bind("Health Counter",
"Background opacity", "Background opacity",
0.74f, 0.74f,
"Set opacity of health text's background (if enabled)."); "Set opacity of health text's background (if enabled).");
showTokens = Config.Bind("Game Info", cfgSolidifyHPText = Config.Bind("Health Counter",
"Show Tokens", "Solidify HP text",
true, true,
"Shows how many tokens the player has by their radar hand."); "Set opacity of HP text to full and give it a shadow.");
showHolds = Config.Bind("Game Info", cfgShowTokens = Config.Bind("Game Info",
"Show Holds", "Show Tokens",
true, true,
"Shows how many holds the player has completed by their radar hand."); "Shows how many tokens the player has by their radar hand.");
cfgShowHolds = Config.Bind("Game Info",
"Show Holds",
true,
"Shows how many holds the player has completed by their radar hand.");
// patch the leaderboard // patch leaderboard code
lpc = new LeaderboardPlayerCountPatch(); lpc = new LeaderboardPlayerCountPatch();
// give 120 seconds to search for old mod
lpcModSearchTimeEnd = Time.realtimeSinceStartup + 120;
} }
// DO NOT EDIT. // DO NOT EDIT.
private void LoadAssets() {} private void LoadAssets() {}
/// <summary> /// <summary>
/// Its only purpose: to kill TNH Leaderboard Player Count /// Its only purpose: to kill the deprecated TNH Leaderboard Player Count mod.
/// </summary> /// </summary>
private void Update() private void Update()
{ {
if (lpcKilled) if (lpcModGone)
return; return;
foreach (var plugin in Chainloader.PluginInfos) foreach (var plugin in Chainloader.PluginInfos)
@@ -103,9 +110,15 @@ public class MeatKitPlugin : BaseUnityPlugin
{ {
Logger.LogWarning("TNH Leaderboard Player Count mod detected. Destroying it to avoid interference."); Logger.LogWarning("TNH Leaderboard Player Count mod detected. Destroying it to avoid interference.");
Destroy(plugin.Value.Instance); Destroy(plugin.Value.Instance);
lpcKilled = true; lpcModGone = true;
} }
} }
if (Time.realtimeSinceStartup >= lpcModSearchTimeEnd)
{
Logger.LogWarning("Stopping search for TNH Leaderboard Player Count mod after 120 seconds.");
lpcModGone = true;
}
} }
} }
#endif #endif
+23 -19
View File
@@ -19,33 +19,36 @@ namespace TNHQoLImprovements
{ {
var canvas = gObjHUD.GetComponent<Canvas>(); var canvas = gObjHUD.GetComponent<Canvas>();
var gObjBG = new GameObject(); var gObjBG = new GameObject();
var tranHPTitle = gObjHUD.transform.Find("Label_Title (1)"); Transform[] tranHPText = {
var tranHP = gObjHUD.transform.Find("Label_Title"); gObjHUD.transform.Find("Label_Title (1)"),
gObjHUD.transform.Find("Label_Title")
};
// apply background // apply background
if (MeatKitPlugin.showHPBackground.Value) if (MeatKitPlugin.cfgShowHPBackground.Value)
{ {
gObjBG.transform.parent = gObjHUD.transform; gObjBG.transform.parent = gObjHUD.transform;
gObjBG.transform.SetSiblingIndex(0); gObjBG.transform.SetSiblingIndex(0);
gObjBG.transform.localPosition = new Vector3(0, 1, 0); gObjBG.transform.localPosition = new Vector3(0, 1, 0);
gObjBG.transform.localRotation = Quaternion.identity; gObjBG.transform.localRotation = Quaternion.identity;
gObjBG.transform.localScale = tranHP.localScale; gObjBG.transform.localScale = tranHPText[0].localScale;
var rawImage = gObjBG.AddComponent<RawImage>(); var rawImage = gObjBG.AddComponent<RawImage>();
rawImage.color = new Color(0, 0, 0, MeatKitPlugin.hpBackgroundOpacity.Value); rawImage.color = new Color(0, 0, 0, MeatKitPlugin.cfgHPBackgroundOpacity.Value);
rawImage.rectTransform.SetWidth(100); rawImage.rectTransform.SetWidth(100);
rawImage.rectTransform.SetHeight(52); rawImage.rectTransform.SetHeight(52);
} }
if (MeatKitPlugin.cfgSolidifyHPText.Value)
// full text alphas {
tranHPTitle.GetComponent<Text>().color = Color.white; foreach (var text in tranHPText)
tranHP.GetComponent<Text>().color = Color.white; {
// text shadows // full alpha
var shadow = tranHPTitle.gameObject.AddComponent<Shadow>(); text.GetComponent<Text>().color = Color.white;
shadow.effectColor = new Color(0, 0, 0, .95f); // drop shadow
shadow.effectDistance = new Vector2(0.5f, -0.5f); var shadow = text.gameObject.AddComponent<Shadow>();
shadow = tranHP.gameObject.AddComponent<Shadow>(); shadow.effectColor = new Color(0, 0, 0, .95f);
shadow.effectColor = new Color(0, 0, 0, .95f); shadow.effectDistance = new Vector2(0.5f, -0.5f);
shadow.effectDistance = new Vector2(0.5f, -0.5f); }
}
} }
// Use this for initialization // Use this for initialization
@@ -54,10 +57,11 @@ namespace TNHQoLImprovements
tnhManager = GameObject.Find("_GameManager").GetComponent<TNH_Manager>(); tnhManager = GameObject.Find("_GameManager").GetComponent<TNH_Manager>();
gObjHUD = GameObject.Find("HealthBar(Clone)/f"); gObjHUD = GameObject.Find("HealthBar(Clone)/f");
ImproveHPTextReadability(); if(MeatKitPlugin.cfgShowHPBackground.Value || MeatKitPlugin.cfgSolidifyHPText.Value)
if (MeatKitPlugin.showTokens.Value) ImproveHPTextReadability();
if (MeatKitPlugin.cfgShowTokens.Value)
Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("TokenCounter")); Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("TokenCounter"));
if (MeatKitPlugin.showHolds.Value) if (MeatKitPlugin.cfgShowHolds.Value)
Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("HoldCounter")); Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("HoldCounter"));
} }
#endregion #endregion