feat: implement Pause, better InfiniteGP
This commit is contained in:
parent
a31cf82029
commit
cc6f7657c7
@ -51,6 +51,7 @@ public class patch_PlayMusic: PlayMusic {
|
|||||||
private void EndRolling() {
|
private void EndRolling() {
|
||||||
_isRolling = false;
|
_isRolling = false;
|
||||||
ntMgr.stopPlay();
|
ntMgr.stopPlay();
|
||||||
|
ntMgr.setPause(false);
|
||||||
ntMgr.reset();
|
ntMgr.reset();
|
||||||
ntMgr.reloadScore(_gameEngine.IsStageDazzling);
|
ntMgr.reloadScore(_gameEngine.IsStageDazzling);
|
||||||
_gameEngine.counters.reset();
|
_gameEngine.counters.reset();
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#pragma warning disable CS0649
|
#pragma warning disable CS0649
|
||||||
#pragma warning disable IDE0051
|
#pragma warning disable IDE0051
|
||||||
#pragma warning disable IDE1006
|
#pragma warning disable IDE1006
|
||||||
#pragma warning disable CS0108
|
|
||||||
#pragma warning disable CS0414
|
#pragma warning disable CS0414
|
||||||
|
|
||||||
using MU3.Sequence;
|
using MU3.Sequence;
|
||||||
|
@ -1,16 +1,24 @@
|
|||||||
|
|
||||||
#pragma warning disable CS0649
|
#pragma warning disable CS0649
|
||||||
|
#pragma warning disable CS0626
|
||||||
|
|
||||||
using MU3.Util;
|
using MU3.Util;
|
||||||
|
|
||||||
namespace MU3;
|
namespace MU3;
|
||||||
|
|
||||||
public class patch_Scene_25_Login : Scene_25_Login {
|
public class patch_Scene_25_Login: Scene_25_Login {
|
||||||
private enum State {
|
private enum State {
|
||||||
Login = 2
|
Login = 2
|
||||||
}
|
}
|
||||||
private Mode<Scene_25_Login, State> mode_;
|
private Mode<Scene_25_Login, State> mode_;
|
||||||
|
private extern void orig_invokeOnFinish(int status);
|
||||||
private void PurchaseGP_Init() {
|
private void PurchaseGP_Init() {
|
||||||
mode_.set(State.Login);
|
mode_.set(State.Login);
|
||||||
}
|
}
|
||||||
|
private void invokeOnFinish(int status) {
|
||||||
|
orig_invokeOnFinish(status);
|
||||||
|
}
|
||||||
|
private void ExchangeGP_Init() {
|
||||||
|
invokeOnFinish(1);
|
||||||
|
}
|
||||||
}
|
}
|
45
InfiniteGP/MU3.User/patch_UIMoneyExchange.cs
Normal file
45
InfiniteGP/MU3.User/patch_UIMoneyExchange.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#pragma warning disable CS0626
|
||||||
|
#pragma warning disable CS0649
|
||||||
|
|
||||||
|
using MU3.CustomUI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MU3;
|
||||||
|
|
||||||
|
public class patch_UICredit: UICredit {
|
||||||
|
private Animator gpAnimator_;
|
||||||
|
private GameObject creditRoot_;
|
||||||
|
private MU3UICounter credit_;
|
||||||
|
private GameObject freePlayRoot_;
|
||||||
|
private GameObject gpRoot_;
|
||||||
|
private MU3UICounter gp_;
|
||||||
|
private MU3UICounter gpPlus_;
|
||||||
|
private MU3UICounter gpMinus_;
|
||||||
|
private MU3UIImageChanger netIcon_;
|
||||||
|
private void onUpdateGP(int value) { /* nop */ }
|
||||||
|
|
||||||
|
public extern void orig_initialize();
|
||||||
|
|
||||||
|
public new void initialize() {
|
||||||
|
orig_initialize();
|
||||||
|
|
||||||
|
DestroyImmediate(gpAnimator_);
|
||||||
|
|
||||||
|
creditRoot_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
credit_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
freePlayRoot_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
gpRoot_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
gp_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
gpPlus_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
gpMinus_.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
|
||||||
|
var tf = (RectTransform)netIcon_.transform;
|
||||||
|
tf.localPosition = new Vector3(35, netIcon_.transform.localPosition.y, netIcon_.transform.localPosition.z);
|
||||||
|
for(int i = 0; i < 3; ++i) {
|
||||||
|
tf.anchorMin = new Vector2(0f, 0.5f);
|
||||||
|
tf.anchorMax = new Vector2(1f, 0.5f);
|
||||||
|
tf = (RectTransform)tf.parent;
|
||||||
|
}
|
||||||
|
netIcon_.image.rectTransform.pivot = new Vector2(0f, 0.5f);
|
||||||
|
}
|
||||||
|
}
|
@ -2,29 +2,28 @@
|
|||||||
#pragma warning disable CS0649
|
#pragma warning disable CS0649
|
||||||
#pragma warning disable IDE0051
|
#pragma warning disable IDE0051
|
||||||
#pragma warning disable IDE1006
|
#pragma warning disable IDE1006
|
||||||
#pragma warning disable CS0108
|
|
||||||
|
|
||||||
namespace MU3.User;
|
namespace MU3.User;
|
||||||
|
|
||||||
public class patch_UserManager: UserManager {
|
public class patch_UserManager: UserManager {
|
||||||
public const int DefaultGP = 666;
|
public new const int DefaultGP = 666;
|
||||||
private int _gp;
|
private int _gp;
|
||||||
private OnUpdate _onUpdateGP;
|
private OnUpdate _onUpdateGP;
|
||||||
private OnReset _onResetGP;
|
private OnReset _onResetGP;
|
||||||
|
|
||||||
public void resetGP() {
|
public new void resetGP() {
|
||||||
_gp = 666;
|
_gp = 999;
|
||||||
if(_onResetGP != null) {
|
if(_onResetGP != null) {
|
||||||
_onResetGP(_gp);
|
_onResetGP(_gp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GP {
|
public new int GP {
|
||||||
get {
|
get {
|
||||||
return _gp;
|
return _gp;
|
||||||
}
|
}
|
||||||
private set {
|
private set {
|
||||||
_gp = 666;
|
_gp = 999;
|
||||||
if(_onUpdateGP != null) {
|
if(_onUpdateGP != null) {
|
||||||
_onUpdateGP(_gp);
|
_onUpdateGP(_gp);
|
||||||
}
|
}
|
||||||
|
13
Pause/MU3.Battle/patch_GameEngine.cs
Normal file
13
Pause/MU3.Battle/patch_GameEngine.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#pragma warning disable CS0626
|
||||||
|
|
||||||
|
using MU3.Sequence;
|
||||||
|
|
||||||
|
namespace MU3.Battle;
|
||||||
|
|
||||||
|
public class patch_GameEngine: GameEngine {
|
||||||
|
public extern void orig_reset();
|
||||||
|
public new void reset() {
|
||||||
|
orig_reset();
|
||||||
|
patch_PlayMusic.Paused = false;
|
||||||
|
}
|
||||||
|
}
|
15
Pause/MU3.Game/patch_GameBGM.cs
Normal file
15
Pause/MU3.Game/patch_GameBGM.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#pragma warning disable CS0649
|
||||||
|
|
||||||
|
using MU3.Sound;
|
||||||
|
using MU3.Util;
|
||||||
|
|
||||||
|
namespace MU3.Game;
|
||||||
|
|
||||||
|
public class patch_GameBGM: GameBGM {
|
||||||
|
private patch_SoundManager psm => ((patch_SoundManager)Singleton<SoundManager>.instance);
|
||||||
|
private HandleInfo _handle;
|
||||||
|
public void pause(bool val) {
|
||||||
|
psm.pause(_handle, val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
40
Pause/MU3.Sequence/patch_PlayMusic.cs
Normal file
40
Pause/MU3.Sequence/patch_PlayMusic.cs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#pragma warning disable CS0626
|
||||||
|
#pragma warning disable CS0649
|
||||||
|
#pragma warning disable IDE0051
|
||||||
|
#pragma warning disable IDE1006
|
||||||
|
|
||||||
|
using MU3.Battle;
|
||||||
|
using MU3.Game;
|
||||||
|
using MU3.Notes;
|
||||||
|
using MU3.Util;
|
||||||
|
|
||||||
|
namespace MU3.Sequence;
|
||||||
|
|
||||||
|
public class patch_PlayMusic: PlayMusic {
|
||||||
|
private static readonly float PAUSE_CD = 5f;
|
||||||
|
private static readonly float UNPAUSE_CD = 0.5f;
|
||||||
|
private GameEngine _gameEngine;
|
||||||
|
private NotesManager ntMgr => _gameEngine?.notesManager;
|
||||||
|
private patch_GameBGM pgm => (patch_GameBGM)Singleton<GameSound>.instance.gameBGM;
|
||||||
|
public static bool Paused = false;
|
||||||
|
private float pauseTimer = 0f;
|
||||||
|
public extern bool orig_updateState(float deltaTime = -1f);
|
||||||
|
public extern void orig_destroy();
|
||||||
|
private extern void orig_Enter_SetupScene();
|
||||||
|
private void Enter_SetupScene() {
|
||||||
|
orig_Enter_SetupScene();
|
||||||
|
Paused = false;
|
||||||
|
}
|
||||||
|
public override bool updateState(float deltaTime = -1f) {
|
||||||
|
pauseTimer += deltaTime;
|
||||||
|
if(Singleton<UIInput>.instance.getStateOn(UIInput.Key.Service)) {
|
||||||
|
if((!Paused && pauseTimer >= PAUSE_CD) || (Paused && pauseTimer >= UNPAUSE_CD)) {
|
||||||
|
Paused = !Paused;
|
||||||
|
pgm.pause(Paused);
|
||||||
|
ntMgr.setPause(Paused);
|
||||||
|
pauseTimer = 0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return orig_updateState(deltaTime);
|
||||||
|
}
|
||||||
|
}
|
13
Pause/MU3.Sound/patch_SoundManager.cs
Normal file
13
Pause/MU3.Sound/patch_SoundManager.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#pragma warning disable CS0626
|
||||||
|
#pragma warning disable CS0649
|
||||||
|
|
||||||
|
namespace MU3.Sound;
|
||||||
|
|
||||||
|
public class patch_SoundManager: SoundManager {
|
||||||
|
private extern HandleInfo orig_getHandle(Priority priority);
|
||||||
|
private HandleInfo getHandle(Priority priority) => orig_getHandle(priority);
|
||||||
|
private patch_SoundPlayer[] _soundPlayers;
|
||||||
|
public void pause(HandleInfo handle, bool val) {
|
||||||
|
_soundPlayers[handle.Index].pause(val);
|
||||||
|
}
|
||||||
|
}
|
18
Pause/MU3.Sound/patch_SoundPlayer.cs
Normal file
18
Pause/MU3.Sound/patch_SoundPlayer.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#pragma warning disable CS0626
|
||||||
|
#pragma warning disable CS0649
|
||||||
|
|
||||||
|
namespace MU3.Sound;
|
||||||
|
|
||||||
|
class patch_SoundPlayer: SoundPlayer {
|
||||||
|
private CriAtomExPlayer _player;
|
||||||
|
public extern void orig_stop();
|
||||||
|
|
||||||
|
public void pause(bool val) {
|
||||||
|
_player.Pause(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public new void stop() {
|
||||||
|
_player.Pause(false);
|
||||||
|
orig_stop();
|
||||||
|
}
|
||||||
|
}
|
12
Pause/patch_GameDeviceManager.cs
Normal file
12
Pause/patch_GameDeviceManager.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#pragma warning disable CS0626
|
||||||
|
|
||||||
|
using MU3.Sequence;
|
||||||
|
|
||||||
|
public class patch_GameDeviceManager: GameDeviceManager {
|
||||||
|
private extern void orig_update();
|
||||||
|
private void update() {
|
||||||
|
if(!patch_PlayMusic.Paused) {
|
||||||
|
orig_update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
10
README.md
10
README.md
@ -4,14 +4,14 @@ Miscellaneous mods for µ3/SDDT; mainly for my personal use, though suggestions/
|
|||||||
|
|
||||||
### BetterGiveUp
|
### BetterGiveUp
|
||||||
|
|
||||||
Enables these buttons in music play:
|
Enables the following buttons in music play:
|
||||||
|
|
||||||
* Red menu: instant return to song select
|
* Red menu: instant return to song select
|
||||||
* Yellow menu: instant restart
|
* Yellow menu: instant restart
|
||||||
|
|
||||||
To avoid misclicks, you have to hold the button down for 1 second.
|
To avoid misclicks, you have to hold the button down for 1 second.
|
||||||
|
|
||||||
Based on GiveUp, but Better.
|
Based on GiveUp from the older modpack, but Better.
|
||||||
|
|
||||||
### ExportChartData
|
### ExportChartData
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ Exports some useful chart data into a dollar-separated file (charts.csv) when th
|
|||||||
|
|
||||||
### InfiniteGP
|
### InfiniteGP
|
||||||
|
|
||||||
Self-explanatory. Saves you time.
|
Patches out GP and credits.
|
||||||
|
|
||||||
### LockSelectionTime
|
### LockSelectionTime
|
||||||
|
|
||||||
@ -29,6 +29,10 @@ Disables *all* timers. A replacement for LockSelectionTime from the older modpac
|
|||||||
|
|
||||||
Replaces the in-game rating algorithm (OldBest30+NewBest15+Recent10) with Best45. Client-side and purely cosmetic.
|
Replaces the in-game rating algorithm (OldBest30+NewBest15+Recent10) with Best45. Client-side and purely cosmetic.
|
||||||
|
|
||||||
|
### Pause
|
||||||
|
|
||||||
|
Enables pausing music play on FN2 (service button). Has an internal 5s cooldown.
|
||||||
|
|
||||||
### SkipLoginReward ⚠️
|
### SkipLoginReward ⚠️
|
||||||
|
|
||||||
Skips login bonuses and event rewards. If you care about those things, don't use this one.
|
Skips login bonuses and event rewards. If you care about those things, don't use this one.
|
||||||
|
Loading…
Reference in New Issue
Block a user