mirror of
https://github.com/muskit/H3VR-TNH-Quality-of-Life-Improvements.git
synced 2026-08-01 16:20:40 -07:00
Compare commits
6 Commits
1.2.5
..
ad286b687d
| Author | SHA1 | Date | |
|---|---|---|---|
| ad286b687d | |||
| d3b8dd9dfb | |||
| a39667f6c0 | |||
| 4d855203f6 | |||
| e02e25f98a | |||
| 2f7fe60cd6 |
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"ms-dotnettools.csdevkit"
|
||||
]
|
||||
}
|
||||
Vendored
+2
-1
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"omnisharp.useModernNet": false
|
||||
"omnisharp.useModernNet": false,
|
||||
"dotnet.preferCSharpExtension": true
|
||||
}
|
||||
Generated
+3
-3
@@ -13,7 +13,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
PackageName: TNH_Quality_of_Life_Improvements
|
||||
Author: muskit
|
||||
Version: 1.2.5
|
||||
Version: 1.2.6
|
||||
Icon: {fileID: 2800000, guid: af542f3f6d6914f4e96d0326e8b296cc, type: 3}
|
||||
ReadMe: {fileID: 102900000, guid: efa2d6091ed77bd4b879a74bd81d6cbc, type: 3}
|
||||
WebsiteURL: https://github.com/muskit/TNH-Quality-of-Life-Improvements
|
||||
@@ -26,5 +26,5 @@ MonoBehaviour:
|
||||
ApplyHarmonyPatches: 1
|
||||
BuildItems:
|
||||
- {fileID: 11400000, guid: ccaff18373cd99848b344316974e6d46, type: 2}
|
||||
BuildAction: 2
|
||||
OutputProfile: C:/Users/Alex/AppData/Roaming/r2modmanPlus-local/H3VR/profiles/dev
|
||||
BuildAction: 1
|
||||
OutputProfile: C:/ModsThunderstore/H3VR/profiles/TNH QoL Dev
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
## Changelog
|
||||
1.2.6
|
||||
* Remove the "Leaderboard Player Count" mod killer
|
||||
|
||||
1.2.5
|
||||
* [TNH] Change initialization approach to cover errors in both Atlas/WurstMod-based maps
|
||||
|
||||
1.2.4
|
||||
* [TNH] Fix errors occurring in Atlas-based maps
|
||||
* Update MeatKit (now on Unity 5.6.7f1!)
|
||||
|
||||
1.2.3
|
||||
* Added button in wrist menu to toggle HP counter (thanks PutterMyBancakes for the suggestion!)
|
||||
* [TNH] Made the search time for deprecated Leaderboard mod based on day of year as an input of the sin()
|
||||
|
||||
1.2.2
|
||||
* When aiming around the HP counter, its opacity can now change to a player setting
|
||||
* Increased size of hide-HP aiming region
|
||||
* [TNH] Decreased search time for deprecated Leaderboard mod
|
||||
|
||||
1.2.1
|
||||
* [TNH] Changed leaderboard player count message for unavailability with TNHTweaker
|
||||
|
||||
**1.2.0**
|
||||
* HP counter text can now be hidden completely
|
||||
* Added HP counter fading when pointing a firearm towards it, allowing better visiblity
|
||||
* Shrunk borders of health counter's background
|
||||
|
||||
1.1.3
|
||||
* [TNH] Fixed wrist stats still trying to look at the camera in the game over area, resulting in weird rotations
|
||||
|
||||
1.1.2
|
||||
* [TNH] Wrist stats can now tilt towards the camera, making it less awkward to read
|
||||
|
||||
1.1.1
|
||||
* Fixed wave counter text not showing up during a hold
|
||||
|
||||
**1.1.0**
|
||||
* [TNH] Added win/lose count on hold counter
|
||||
* [TNH] Added enemy waves counter (substitutes token counter during hold if enabled)
|
||||
* [TNH] Added token numerical representation to shop
|
||||
* [TNH] Extra info from this mod now shows in game over
|
||||
* Added expiration indicators to Health Crystals
|
||||
* Health readability now applies outside of Take and Hold
|
||||
|
||||
1.0.1
|
||||
* Fixed the in-play improvements only applying to Classic Hallways map (whoops!!)
|
||||
* Added option to enable/disable showing player count of online leaderboards
|
||||
* Added option to enable/disable HP text opacity/shadow change
|
||||
* (Surprisingly, the HP text normally doesn't have full opacity)
|
||||
* Searching for the deprecated TNH Leaderboards Player Count mod to kill now stops after 120s
|
||||
|
||||
|
||||
**1.0.0**
|
||||
* Initial release!
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59291b514bf8a814690c9d4b60f494ce
|
||||
timeCreated: 1784097793
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -70,11 +70,6 @@ public static AssetBundle bundle;
|
||||
// Take and Hold modifications
|
||||
private static InPlay playInstance;
|
||||
|
||||
// Searching for old leaderboards player count mod to disable
|
||||
private float lpcSearchTime;
|
||||
private bool lpcStopSearching = false;
|
||||
private float lpcModSearchTimeEnd;
|
||||
|
||||
public static FVRHealthBar hpDisplay;
|
||||
|
||||
// toggle HP visibility from wrist menu
|
||||
@@ -91,7 +86,7 @@ public static AssetBundle bundle;
|
||||
private IEnumerator SceneChangedCoroutine()
|
||||
{
|
||||
Destroy(playInstance);
|
||||
for (int i = 0; i < 11; ++i)
|
||||
for (int i = 1; i <= 10; ++i)
|
||||
{
|
||||
// TNH patches
|
||||
if (GameObject.Find("_GameManager") != null || FindObjectOfType<TNH_Manager>() != null)
|
||||
@@ -101,11 +96,8 @@ public static AssetBundle bundle;
|
||||
playerCamera = GameObject.FindGameObjectWithTag("MainCamera");
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.LogInfo(String.Format("Couldn't find a TNH game. Trying again...({0}/10)", i+1));
|
||||
yield return new WaitForEndOfFrame();
|
||||
}
|
||||
// Logger.LogInfo(String.Format("Couldn't find a TNH game. Checking again...({0}/10)", i));
|
||||
yield return new WaitForEndOfFrame();
|
||||
}
|
||||
|
||||
if (playInstance == null)
|
||||
@@ -162,7 +154,6 @@ public static AssetBundle bundle;
|
||||
public MeatKitPlugin(): base()
|
||||
{
|
||||
harmony = new Harmony("muskit.TNHQualityOfLifeImprovements");
|
||||
lpcSearchTime = 30f + 30f * Mathf.Sin(System.DateTime.Today.DayOfYear / 365f); // lolz
|
||||
}
|
||||
|
||||
// You are free to edit this method, however please ensure LoadAssets is still called somewhere inside it.
|
||||
@@ -245,9 +236,6 @@ public static AssetBundle bundle;
|
||||
HealthExpireIndicationType.Flashing,
|
||||
"Add a visual indication on the Health Crystal's despawn timer.");
|
||||
|
||||
// calculate end time to search for my deprecated Leaderboard
|
||||
lpcModSearchTimeEnd = Time.time + lpcSearchTime;
|
||||
|
||||
wmbHPToggle = new WristMenuButton("Toggle HP Display", ToggleHPVisibility);
|
||||
|
||||
RunPatches();
|
||||
@@ -296,30 +284,6 @@ public static AssetBundle bundle;
|
||||
hpDisplay.gameObject.SetActive(hpDisplayEnabled);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Its only purpose: to kill the deprecated TNH Leaderboard Player Count mod.
|
||||
/// </summary>
|
||||
private void Update()
|
||||
{
|
||||
if (lpcStopSearching)
|
||||
return;
|
||||
|
||||
foreach (var plugin in Chainloader.PluginInfos)
|
||||
{
|
||||
if (plugin.Key == "me.muskit.tnhLeaderboardPlayerCount")
|
||||
{
|
||||
Logger.LogWarning("TNH Leaderboard Player Count mod detected. Destroying it to avoid interference.");
|
||||
Destroy(plugin.Value.Instance);
|
||||
lpcStopSearching = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (Time.realtimeSinceStartup >= lpcModSearchTimeEnd)
|
||||
{
|
||||
Logger.LogInfo(string.Format("Stopping search for TNH Leaderboard Player Count mod after {0} seconds.", lpcSearchTime));
|
||||
lpcStopSearching = true;
|
||||
}
|
||||
}
|
||||
|
||||
// DO NOT CHANGE OR REMOVE THIS METHOD. It's contents will be overwritten when building your package.
|
||||
private void LoadAssets()
|
||||
|
||||
+7
-59
@@ -2,7 +2,7 @@
|
||||
Ever got frustrated checking your HP against a bright ceiling in TNH?
|
||||
Have you forgotten how many Holds you're playing for, so you don't know if you should spend all your tokens?
|
||||
And... wait, which hold are you on again?
|
||||
**This mod adds quality of life improvements to the *Take and Hold* experience that help with these questions, and then some.**
|
||||
**This mod adds quality of life improvements to the *Take and Hold* experience by addressing various little issues such as these.**
|
||||
|
||||
## Features
|
||||
* Health counter toggle
|
||||
@@ -10,68 +10,16 @@ And... wait, which hold are you on again?
|
||||
* Health counter fade/hide when aiming around it
|
||||
* Token, hold, and wave counter on radar hand
|
||||
* Player count for online leaderboards; see how you stack up!
|
||||
* Disabled if [*TakeAndHoldTweaker*](https://h3vr.thunderstore.io/package/devyndamonster/TakeAndHoldTweaker/) is installed
|
||||
* Doesn't work with [*TakeAndHoldTweaker*](https://h3vr.thunderstore.io/package/devyndamonster/TakeAndHoldTweaker/)
|
||||
* Numerical representation of tokens at item stations
|
||||
* Expiration indication for health crystals (configurable to multiple types)
|
||||
* ...and possibly more!
|
||||
|
||||
Toggle and customize these features in your mod manager's *Config editor*.
|
||||
Toggle and customize these features in your mod manager's *Config editor* or *Wrist Menu > Mod Panel* in-game.
|
||||
|
||||
**This mod will not disqualify you from Steam or TNHTweaker leaderboards.**
|
||||
**Unless *Take and Hold* has an anti-modding mechanism, this mod SHOULD NOT disqualify you from Steam or TNHTweaker leaderboards.**
|
||||
|
||||
For any issues/ideas, please create an issue at the GitHub repository (linked on Thunderstore page).
|
||||
If you have any issues, please contact me on Discord (@muskit) by DM'ing or pinging me in one of the modding servers.
|
||||
You can also create an issue ticket at the [GitHub repository](https://github.com/muskit/H3VR-TNH-Quality-of-Life-Improvements).
|
||||
|
||||
## Changelog
|
||||
1.2.5
|
||||
* [TNH] Change initialization approach to cover errors in both Atlas/WurstMod-based maps
|
||||
|
||||
1.2.4
|
||||
* [TNH] Fix errors occurring in Atlas-based maps
|
||||
* Update MeatKit (now on Unity 5.6.7f1!)
|
||||
|
||||
1.2.3
|
||||
* Added button in wrist menu to toggle HP counter (thanks PutterMyBancakes for the suggestion!)
|
||||
* [TNH] Made the search time for deprecated Leaderboard mod based on day of year as an input of the sin()
|
||||
|
||||
1.2.2
|
||||
* When aiming around the HP counter, its opacity can now change to a player setting
|
||||
* Increased size of hide-HP aiming region
|
||||
* [TNH] Decreased search time for deprecated Leaderboard mod
|
||||
|
||||
1.2.1
|
||||
* [TNH] Changed leaderboard player count message for unavailability with TNHTweaker
|
||||
|
||||
**1.2.0**
|
||||
* HP counter text can now be hidden completely
|
||||
* Added HP counter fading when pointing a firearm towards it, allowing better visiblity
|
||||
* Shrunk borders of health counter's background
|
||||
|
||||
1.1.3
|
||||
* [TNH] Fixed wrist stats still trying to look at the camera in the game over area, resulting in weird rotations
|
||||
|
||||
1.1.2
|
||||
* [TNH] Wrist stats can now tilt towards the camera, making it less awkward to read
|
||||
|
||||
1.1.1
|
||||
* Fixed wave counter text not showing up during a hold
|
||||
|
||||
**1.1.0**
|
||||
* [TNH] Added win/lose count on hold counter
|
||||
* [TNH] Added enemy waves counter (substitutes token counter during hold if enabled)
|
||||
* [TNH] Added token numerical representation to shop
|
||||
* [TNH] Extra info from this mod now shows in game over
|
||||
* Added expiration indicators to Health Crystals
|
||||
* Health readability now applies outside of Take and Hold
|
||||
|
||||
1.0.1
|
||||
* Fixed the in-play improvements only applying to Classic Hallways map (whoops!!)
|
||||
* Added option to enable/disable showing player count of online leaderboards
|
||||
* Added option to enable/disable HP text opacity/shadow change
|
||||
* (Surprisingly, the HP text normally doesn't have full opacity)
|
||||
* Searching for the deprecated TNH Leaderboards Player Count mod to kill now stops after 120s
|
||||
|
||||
|
||||
**1.0.0**
|
||||
* Initial release!
|
||||
|
||||
**NOTE: [*TNH Leaderboard Player Count*](https://h3vr.thunderstore.io/package/muskit/TNH_Leaderboard_Player_Count/) has been merged with this mod. If installed, please remove that mod as it lacks features and is no longer supported.**
|
||||
**NOTE: [*TNH Leaderboard Player Count*](https://h3vr.thunderstore.io/package/muskit/TNH_Leaderboard_Player_Count/) has been merged with this mod. If for some ungodly reason you have it installed (delisted in 2022), please uninstall that as it WILL conflict with this mod.**
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using BepInEx.Bootstrap;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using FistVR;
|
||||
@@ -15,26 +14,21 @@ namespace TNHQoLImprovements
|
||||
private bool tnhTweakerInstalled = false;
|
||||
|
||||
private string curID;
|
||||
private string loadingStr;
|
||||
|
||||
private TNH_ScoreDisplay scoreDisplay;
|
||||
private Text lblGlobalScores;
|
||||
private GameObject gObjLoading;
|
||||
|
||||
#region INITIALIZATION
|
||||
public void Init(TNH_ScoreDisplay tnhScore, Text scoreLabel, GameObject gObjLoading)
|
||||
public void Init(TNH_ScoreDisplay tnhScore, Text scoreLabel)
|
||||
{
|
||||
if (initialized)
|
||||
return;
|
||||
|
||||
// don't run with TNHTweaker installed
|
||||
this.gObjLoading = gObjLoading;
|
||||
var loadedAssemblies = System.AppDomain.CurrentDomain.GetAssemblies();
|
||||
if (Array.Exists<Assembly>(loadedAssemblies, x => x.GetName().Name == "TakeAndHoldTweaker"))
|
||||
{
|
||||
tnhTweakerInstalled = true;
|
||||
this.gObjLoading.transform.GetChild(0).GetComponent<Text>().text = "<color=lightblue><size=30>Online leaderboards player count unavailable for TNHTweaker.</size></color>";
|
||||
this.gObjLoading.SetActive(true);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -42,9 +36,6 @@ namespace TNHQoLImprovements
|
||||
this.lblGlobalScores = scoreLabel;
|
||||
this.lblGlobalScores.resizeTextForBestFit = true;
|
||||
this.lblGlobalScores.horizontalOverflow = HorizontalWrapMode.Overflow;
|
||||
loadingStr = gObjLoading.GetComponentInChildren<Text>().text;
|
||||
|
||||
|
||||
|
||||
initialized = true;
|
||||
}
|
||||
@@ -71,20 +62,16 @@ namespace TNHQoLImprovements
|
||||
|
||||
lblGlobalScores.text = "Global Scores: <color=lightblue>(" + playerCountText + " players)</color>";
|
||||
curID = id;
|
||||
gObjLoading.SetActive(false);
|
||||
}
|
||||
catch (KeyNotFoundException e)
|
||||
{
|
||||
lblGlobalScores.text = "Global Scores:";
|
||||
gObjLoading.GetComponentInChildren<Text>().text = loadingStr;
|
||||
gObjLoading.SetActive(true);
|
||||
curID = null;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
gObjLoading.GetComponentInChildren<Text>().text = string.Format("<color=lightblue><size=30>Unknown error occured trying to retrieve online player count.</size></color>\n" +
|
||||
"<color=red>{0}</color>", e);
|
||||
gObjLoading.SetActive(true);
|
||||
MeatKitPlugin.Logger.LogWarning("Unknown error occurred trying to retrieve online player count.");
|
||||
MeatKitPlugin.Logger.LogWarning(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ namespace TNHQoLImprovements
|
||||
{
|
||||
public static class LeaderboardPlayerCountPatch
|
||||
{
|
||||
private static GameObject gObjLoading;
|
||||
private static Text uiGlobalText;
|
||||
|
||||
public static void Patch(Harmony harmony)
|
||||
@@ -22,29 +21,18 @@ namespace TNHQoLImprovements
|
||||
public static void Setup(TNH_ScoreDisplay __instance)
|
||||
{
|
||||
GameObject gObjLeaderboard = null;
|
||||
gObjLoading = GameObject.Instantiate(MeatKitPlugin.bundle.LoadAsset<GameObject>("PlayerCount_LoadingText"));
|
||||
if (__instance.gameObject.name == "_MainMenu") // lobby
|
||||
{
|
||||
gObjLeaderboard = __instance.transform.GetChild(3).gameObject; // MainMenuCanvas_RightFar
|
||||
gObjLoading.transform.SetParent(gObjLeaderboard.transform, false);
|
||||
gObjLoading.GetComponent<RectTransform>().pivot = new Vector2(0, 1);
|
||||
gObjLoading.transform.localPosition = new Vector3(520, 380, 0);
|
||||
gObjLoading.transform.GetChild(0).GetComponent<Text>().alignment = TextAnchor.UpperLeft;
|
||||
}
|
||||
if (__instance.gameObject.name == "_FinalScoreDisplay(Clone)") // game over room
|
||||
{
|
||||
gObjLeaderboard = __instance.transform.GetChild(0).gameObject; // ScoreCanvas_PastScores
|
||||
gObjLoading.transform.SetParent(gObjLeaderboard.transform, false);
|
||||
gObjLoading.GetComponent<RectTransform>().pivot = new Vector2(1, 1);
|
||||
gObjLoading.transform.localPosition = new Vector3(-520, 380, 0);
|
||||
gObjLoading.transform.GetChild(0).GetComponent<Text>().alignment = TextAnchor.UpperRight;
|
||||
}
|
||||
uiGlobalText = gObjLeaderboard.transform.GetChild(0).GetChild(2).GetComponent<Text>();
|
||||
gObjLoading.transform.rotation = gObjLeaderboard.transform.rotation;
|
||||
gObjLoading.transform.GetChild(0).GetComponent<Text>().font = uiGlobalText.font;
|
||||
|
||||
var playerCountComponent = gObjLeaderboard.AddComponent<LeaderboardPlayerCount>();
|
||||
playerCountComponent.Init(__instance, uiGlobalText, gObjLoading);
|
||||
playerCountComponent.Init(__instance, uiGlobalText);
|
||||
}
|
||||
}
|
||||
}
|
||||
Generated
+1
-1
@@ -238,7 +238,7 @@ PlayerSettings:
|
||||
m_BuildTargetGraphicsAPIs: []
|
||||
m_BuildTargetVRSettings:
|
||||
- m_BuildTarget: Standalone
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_Devices:
|
||||
- Oculus
|
||||
- OpenVR
|
||||
|
||||
Reference in New Issue
Block a user