forked from akanyan/mu3-mods
feat!: NaiveRating -> MoreProfileOptions
This commit is contained in:
51
Extras/MoreProfileOptions/MU3.Battle/patch_Counters.cs
Normal file
51
Extras/MoreProfileOptions/MU3.Battle/patch_Counters.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using MU3.DB;
|
||||
using MU3.User;
|
||||
using MU3.Util;
|
||||
|
||||
namespace MU3.Battle;
|
||||
class patch_Counters: Counters {
|
||||
private long _techScoreLost;
|
||||
private long _tsjBellLost;
|
||||
private patch_UserOption.eAbort _eAbort;
|
||||
private long _retireScoreBase;
|
||||
private long _retireScoreCurrent;
|
||||
|
||||
private UserFumen _userFumen;
|
||||
private int _previousPb;
|
||||
public new int getTechScoreEnable() {
|
||||
if(_eAbort == patch_UserOption.eAbort.FB && _tsjBellLost > 0) {
|
||||
return 0;
|
||||
}
|
||||
return (int)(1010000 - _techScoreLost);
|
||||
}
|
||||
|
||||
private extern void orig_updateUIScore(ScoreType type = ScoreType.Max);
|
||||
private void updateUIScore(ScoreType type = ScoreType.Max) {
|
||||
int self = -1;
|
||||
|
||||
if(_userFumen == null) {
|
||||
GameEngine ge = SingletonMonoBehaviour<GameEngine>.instance;
|
||||
UserManager userManager = Singleton<UserManager>.instance;
|
||||
_userFumen = userManager.getUserFumen(ge.sessionInfo.musicData.id, ge.sessionInfo.musicLevel, create: false);
|
||||
_previousPb = _userFumen?.TechScoreMax ?? 0;
|
||||
}
|
||||
|
||||
switch(_eAbort) {
|
||||
case patch_UserOption.eAbort.SSS1:
|
||||
self = TechnicalRankID.SSS1.getLower();
|
||||
break;
|
||||
case patch_UserOption.eAbort.PB:
|
||||
self = _previousPb;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(self >= 0) {
|
||||
_retireScoreBase = 1010000L - self;
|
||||
_retireScoreCurrent = _retireScoreBase;
|
||||
}
|
||||
|
||||
orig_updateUIScore(type);
|
||||
}
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
using MU3.DB;
|
||||
using MU3.Mod;
|
||||
|
||||
namespace MU3.Data;
|
||||
|
14
Extras/MoreProfileOptions/MU3.Game/patch_SessionResult.cs
Normal file
14
Extras/MoreProfileOptions/MU3.Game/patch_SessionResult.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using MU3.Battle;
|
||||
using MU3.Mod;
|
||||
|
||||
namespace MU3.Game;
|
||||
|
||||
class patch_SessionResult: SessionResult {
|
||||
public int prevNaiveRating;
|
||||
|
||||
public extern void orig_calcTotalRewards();
|
||||
public new void calcTotalRewards() {
|
||||
orig_calcTotalRewards();
|
||||
prevNaiveRating = NaiveRating.Get();
|
||||
}
|
||||
}
|
@ -5,12 +5,12 @@ using MU3.Util;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
public static class NaiveRating {
|
||||
public static int PrevRating { get; private set; }
|
||||
namespace MU3.Mod;
|
||||
|
||||
public static class NaiveRating {
|
||||
// Adapted from MU3.User.UserRating.calcBest()
|
||||
private static RatingList calcSane() {
|
||||
RatingList ratingList = new();
|
||||
RatingList ratingList = [];
|
||||
|
||||
var usMgr = Singleton<UserManager>.instance;
|
||||
var musicDict = usMgr.userMusic;
|
||||
@ -47,9 +47,6 @@ public static class NaiveRating {
|
||||
return res / 45;
|
||||
}
|
||||
public static bool IsEnabled() {
|
||||
return Singleton<UserManager>.instance.userOption.customSet.Rating == (UserOption.eRating)patch_UserOption.patch_eRating.Naive;
|
||||
}
|
||||
public static void SavePrev() {
|
||||
PrevRating = Get();
|
||||
return Singleton<UserManager>.instance.userOption.customSet.Rating == (UserOption.eRating)patch_UserOption.eRating.Naive;
|
||||
}
|
||||
}
|
48
Extras/MoreProfileOptions/MU3.Notes/patch_NotesManager.cs
Normal file
48
Extras/MoreProfileOptions/MU3.Notes/patch_NotesManager.cs
Normal file
@ -0,0 +1,48 @@
|
||||
using MU3.Battle;
|
||||
using MU3.DataStudio;
|
||||
using MU3.DB;
|
||||
using MU3.User;
|
||||
using MU3.Util;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MU3.Notes;
|
||||
|
||||
class patch_NotesManager: NotesManager {
|
||||
private RetireResult _retireResult;
|
||||
private GameEngine _gameEngine;
|
||||
private UserFumen _userFumen;
|
||||
private int _previousPb;
|
||||
public extern void orig_update();
|
||||
public new void update() {
|
||||
orig_update();
|
||||
|
||||
int threshold = 0;
|
||||
var abort = (patch_UserOption.eAbort)GameOption.abort;
|
||||
switch(abort) {
|
||||
case patch_UserOption.eAbort.SSS1:
|
||||
threshold = 1007500;
|
||||
break;
|
||||
case patch_UserOption.eAbort.FB:
|
||||
threshold = 970000;
|
||||
break;
|
||||
case patch_UserOption.eAbort.PB:
|
||||
if(_userFumen == null) {
|
||||
UserManager userManager = Singleton<UserManager>.instance;
|
||||
_userFumen = userManager.getUserFumen(_sessionInfo.musicData.id, _sessionInfo.musicLevel, create: false);
|
||||
_previousPb = _userFumen?.TechScoreMax ?? 0;
|
||||
UnityEngine.Debug.Log(_previousPb + "HELLO THIS ONLY EXECUTES ONCE");
|
||||
}
|
||||
threshold = _previousPb;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(_retireResult == RetireResult.None && threshold > 0) {
|
||||
int techScoreEnable = _gameEngine.counters.getTechScoreEnable();
|
||||
if(techScoreEnable < threshold) {
|
||||
_retireResult = RetireResult.ScoreRetire;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,12 +1,13 @@
|
||||
using MU3.CustomUI;
|
||||
using MU3.Mod;
|
||||
|
||||
namespace MU3.SceneObject;
|
||||
|
||||
class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 {
|
||||
private MU3UICounter rating;
|
||||
private patch_MU3UICounter rating;
|
||||
public extern void orig_setUserDetail();
|
||||
public new void setUserDetail() {
|
||||
((patch_MU3UICounter)rating).isDispSuffix = NaiveRating.IsEnabled();
|
||||
rating.isDispSuffix = NaiveRating.IsEnabled();
|
||||
orig_setUserDetail();
|
||||
}
|
||||
}
|
59
Extras/MoreProfileOptions/MU3.User/patch_UserOption.cs
Normal file
59
Extras/MoreProfileOptions/MU3.User/patch_UserOption.cs
Normal file
@ -0,0 +1,59 @@
|
||||
using MonoMod;
|
||||
|
||||
namespace MU3.User;
|
||||
|
||||
class patch_UserOption: UserOption {
|
||||
[MonoModEnumReplace]
|
||||
public new enum eRating {
|
||||
OFF = 0,
|
||||
Default = 1,
|
||||
ON = 1,
|
||||
Naive = 2,
|
||||
MAX = 2
|
||||
}
|
||||
|
||||
[MonoModEnumReplace]
|
||||
public new enum eAbort {
|
||||
OFF = 0,
|
||||
S = 1,
|
||||
SS = 2,
|
||||
SSS = 3,
|
||||
SSS1 = 4,
|
||||
PB = 5,
|
||||
FB = 6,
|
||||
ZERO = 7,
|
||||
MAX = 8,
|
||||
Default = 0
|
||||
}
|
||||
|
||||
class patch_DataSet: DataSet {
|
||||
private eRating rating = eRating.ON;
|
||||
private eAbort abort;
|
||||
|
||||
public extern bool orig_isMax(OptionName id);
|
||||
public new bool isMax(OptionName id) {
|
||||
if(id == OptionName.Rating) {
|
||||
return rating == eRating.MAX;
|
||||
}
|
||||
return orig_isMax(id);
|
||||
}
|
||||
public void set_Rating(eRating value) {
|
||||
if(eRating.MAX < value) {
|
||||
rating = eRating.MAX;
|
||||
} else if(value < eRating.OFF) {
|
||||
rating = eRating.OFF;
|
||||
} else {
|
||||
rating = value;
|
||||
}
|
||||
}
|
||||
public void set_Abort(eAbort value) {
|
||||
if(eAbort.MAX < value) {
|
||||
abort = eAbort.ZERO;
|
||||
} else if(value < eAbort.OFF) {
|
||||
abort = eAbort.OFF;
|
||||
} else {
|
||||
abort = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
using MonoMod;
|
||||
using MU3.Mod;
|
||||
|
||||
namespace MU3.User;
|
||||
|
@ -1,5 +1,6 @@
|
||||
using MU3.User;
|
||||
using MU3.Util;
|
||||
using MU3.Mod;
|
||||
|
||||
namespace MU3;
|
||||
|
51
Extras/MoreProfileOptions/MU3/patch_BattleUI.cs
Normal file
51
Extras/MoreProfileOptions/MU3/patch_BattleUI.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using MU3.DB;
|
||||
using MU3.Game;
|
||||
using MU3.User;
|
||||
using MU3.Util;
|
||||
|
||||
namespace MU3;
|
||||
class patch_BattleUI: BattleUI {
|
||||
private UIRetireInfo _retireInfo;
|
||||
private SessionInfo _sessionInfo;
|
||||
public new void setRetireInfo(UserOption.eAbort abort) {
|
||||
UIRetireInfo.Rank rank;
|
||||
int num;
|
||||
|
||||
var pabort = (patch_UserOption.eAbort)abort;
|
||||
switch(pabort) {
|
||||
case patch_UserOption.eAbort.S:
|
||||
rank = UIRetireInfo.Rank.S;
|
||||
num = 1010000 - TechnicalRankID.S.getLower();
|
||||
break;
|
||||
case patch_UserOption.eAbort.SS:
|
||||
rank = UIRetireInfo.Rank.SS;
|
||||
num = 1010000 - TechnicalRankID.SS.getLower();
|
||||
break;
|
||||
case patch_UserOption.eAbort.SSS:
|
||||
rank = UIRetireInfo.Rank.SSS;
|
||||
num = 1010000 - TechnicalRankID.SSS.getLower();
|
||||
break;
|
||||
case patch_UserOption.eAbort.SSS1:
|
||||
rank = UIRetireInfo.Rank.S;
|
||||
num = 1010000 - TechnicalRankID.SSS1.getLower();
|
||||
break;
|
||||
case patch_UserOption.eAbort.PB:
|
||||
UserManager userManager = Singleton<UserManager>.instance;
|
||||
var userFumen = userManager.getUserFumen(_sessionInfo.musicData.id, _sessionInfo.musicLevel, create: false);
|
||||
var previousPb = userFumen?.TechScoreMax ?? 0;
|
||||
rank = UIRetireInfo.Rank.S;
|
||||
num = 1010000 - previousPb;
|
||||
break;
|
||||
case patch_UserOption.eAbort.FB:
|
||||
case patch_UserOption.eAbort.ZERO:
|
||||
rank = UIRetireInfo.Rank.S;
|
||||
num = 1010000;
|
||||
break;
|
||||
default:
|
||||
rank = UIRetireInfo.Rank.MAX;
|
||||
num = 0;
|
||||
break;
|
||||
}
|
||||
_retireInfo.setupRetireInfo(rank, num);
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
using MU3.CustomUI;
|
||||
using MU3.User;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MU3;
|
||||
|
||||
class patch_OptionMiniSummaryController: OptionMiniSummaryController {
|
||||
private GameObject[] arrayIcon = new GameObject[35];
|
||||
private extern void orig_setParam(UserOption.OptionName id, int value);
|
||||
private void setParam(UserOption.OptionName id, int value) {
|
||||
var comp = arrayIcon[(int)id].transform.Find("NUL_Option_mini_Icon/TXT_Option_mini").GetComponent<MU3Text>();
|
||||
if(id == UserOption.OptionName.Rating) {
|
||||
switch(value) {
|
||||
case 0:
|
||||
comp.text = "OFF";
|
||||
break;
|
||||
case 1:
|
||||
comp.text = "TYPE-A";
|
||||
break;
|
||||
case 2:
|
||||
comp.text = "TYPE-B";
|
||||
break;
|
||||
}
|
||||
} else if(id == UserOption.OptionName.Abort) {
|
||||
switch(value) {
|
||||
case 0:
|
||||
comp.text = "OFF";
|
||||
break;
|
||||
case 1:
|
||||
comp.text = "S未達で中断";
|
||||
break;
|
||||
case 2:
|
||||
comp.text = "SS未達で中断";
|
||||
break;
|
||||
case 3:
|
||||
comp.text = "SSS未達で中断";
|
||||
break;
|
||||
case 4:
|
||||
comp.text = "SSS+未達で中断";
|
||||
break;
|
||||
case 5:
|
||||
comp.text = "PB未達で中断";
|
||||
break;
|
||||
case 6:
|
||||
comp.text = "FB未達で中断";
|
||||
break;
|
||||
case 7:
|
||||
comp.text = "スコア表示";
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
orig_setParam(id, value);
|
||||
}
|
||||
}
|
||||
}
|
@ -17,6 +17,7 @@ class patch_OptionSelecterController: OptionSelecterController {
|
||||
public new void init(UserOption.OptionName id) {
|
||||
orig_init(id);
|
||||
cpFuncArray[33].max = 2;
|
||||
cpFuncArray[4].max = 7;
|
||||
|
||||
if(id == UserOption.OptionName.Rating) {
|
||||
var rct = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent<RectTransform>();
|
||||
@ -49,4 +50,12 @@ class patch_OptionSelecterController: OptionSelecterController {
|
||||
orig_chengeParamOther(currentParam);
|
||||
}
|
||||
}
|
||||
|
||||
private extern void orig_chengeParamAbort(int currentParam);
|
||||
private void chengeParamAbort(int currentParam) {
|
||||
string text = "NUL_SWH_Option_00/NUL_Select/PAT_Clear";
|
||||
GameObject gameObject = transform.Find(text).gameObject;
|
||||
MU3UIImageChanger component = gameObject.GetComponent<MU3UIImageChanger>();
|
||||
component.patternNumber = currentParam > 4 ? 0 : currentParam;
|
||||
}
|
||||
}
|
@ -2,13 +2,15 @@
|
||||
using MU3.CustomUI;
|
||||
using MU3.Sequence;
|
||||
using MU3.User;
|
||||
using MU3.Mod;
|
||||
using MU3.Game;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MU3;
|
||||
|
||||
class patch_UIResultBattlePoint: UIResultBattlePoint {
|
||||
private Animator animator_;
|
||||
private MU3UICounter counterScore_;
|
||||
private patch_MU3UICounter counterScore_;
|
||||
private MU3UIImageChanger imageHeader_;
|
||||
private MU3UICounter counterScorePlus_;
|
||||
private MU3UICounter counterScoreMinus_;
|
||||
@ -19,13 +21,15 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
|
||||
|
||||
public extern void orig_initTechRating(PlayInfo playInfo);
|
||||
public new void initTechRating(PlayInfo playInfo) {
|
||||
((patch_MU3UICounter)counterScore_).isDispSuffix = NaiveRating.IsEnabled();
|
||||
counterScore_.isDispSuffix = NaiveRating.IsEnabled();
|
||||
if(!NaiveRating.IsEnabled()) {
|
||||
orig_initTechRating(playInfo);
|
||||
return;
|
||||
}
|
||||
int prevRating = NaiveRating.PrevRating;
|
||||
int prevRating = ((patch_SessionResult)playInfo.sessionResult).prevNaiveRating;
|
||||
int rating1 = NaiveRating.Get();
|
||||
|
||||
UnityEngine.Debug.Log(prevRating + " " + rating1);
|
||||
if((bool)hideScore_) {
|
||||
hideScore_.SetActive(false);
|
||||
}
|
||||
@ -37,14 +41,14 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
|
||||
if(rating2 == 0) {
|
||||
disable(counterScorePlus_);
|
||||
disable(counterScoreMinus_);
|
||||
animator_.SetInteger(MU3.Sys.Const.AnimatorID_State, 2);
|
||||
animator_.SetInteger(Sys.Const.AnimatorID_State, 2);
|
||||
} else if(0 < rating2) {
|
||||
disable(counterScoreMinus_);
|
||||
if((bool)counterScorePlus_) {
|
||||
counterScorePlus_.Counter = rating2 * 0.01f + 1E-05f;
|
||||
}
|
||||
animator_.SetInteger(MU3.Sys.Const.AnimatorID_State, 0);
|
||||
animator_.SetInteger(Sys.Const.AnimatorID_State, 0);
|
||||
}
|
||||
animator_.SetTrigger(MU3.Sys.Const.AnimatorID_In);
|
||||
animator_.SetTrigger(Sys.Const.AnimatorID_In);
|
||||
}
|
||||
}
|
8
Extras/MoreProfileOptions/MoreProfileOptions.csproj
Normal file
8
Extras/MoreProfileOptions/MoreProfileOptions.csproj
Normal file
@ -0,0 +1,8 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Assembly-CSharp.MoreProfileOptions.mm</AssemblyName>
|
||||
<Description>More profile options</Description>
|
||||
<OutCategory>extras</OutCategory>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\..\Mu3Mods.csproj" />
|
||||
</Project>
|
@ -1,36 +0,0 @@
|
||||
using MonoMod;
|
||||
|
||||
namespace MU3.User;
|
||||
|
||||
class patch_UserOption: UserOption {
|
||||
[MonoModEnumReplace]
|
||||
public enum patch_eRating {
|
||||
OFF = 0,
|
||||
Default = 1,
|
||||
ON = 1,
|
||||
Naive = 2,
|
||||
MAX = 2
|
||||
}
|
||||
class patch_DataSet: DataSet {
|
||||
private patch_eRating rating = patch_eRating.ON;
|
||||
public extern bool orig_isMax(OptionName id);
|
||||
public new bool isMax(OptionName id) {
|
||||
if(id == OptionName.Rating) {
|
||||
return rating == patch_eRating.MAX;
|
||||
}
|
||||
return orig_isMax(id);
|
||||
}
|
||||
public new patch_eRating Rating {
|
||||
get => rating;
|
||||
set {
|
||||
if(patch_eRating.MAX < value) {
|
||||
rating = patch_eRating.MAX;
|
||||
} else if(value < patch_eRating.OFF) {
|
||||
rating = patch_eRating.OFF;
|
||||
} else {
|
||||
rating = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
using MU3.CustomUI;
|
||||
using MU3.User;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MU3;
|
||||
|
||||
class patch_OptionMiniSummaryController: OptionMiniSummaryController {
|
||||
private GameObject[] arrayIcon = new GameObject[35];
|
||||
private extern void orig_setParam(UserOption.OptionName id, int value);
|
||||
private void setParam(UserOption.OptionName id, int value) {
|
||||
if(id == UserOption.OptionName.Rating) {
|
||||
switch(value) {
|
||||
case 0:
|
||||
arrayIcon[(int)id].transform.Find("NUL_Option_mini_Icon/TXT_Option_mini").GetComponent<MU3Text>().text = "OFF";
|
||||
break;
|
||||
case 1:
|
||||
arrayIcon[(int)id].transform.Find("NUL_Option_mini_Icon/TXT_Option_mini").GetComponent<MU3Text>().text = "TYPE-A";
|
||||
break;
|
||||
case 2:
|
||||
arrayIcon[(int)id].transform.Find("NUL_Option_mini_Icon/TXT_Option_mini").GetComponent<MU3Text>().text = "TYPE-B";
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
orig_setParam(id, value);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
namespace MU3;
|
||||
|
||||
// It doesn't have to be PrePlayMusic_Confirm, but it prev rating has to be stored at some point
|
||||
class patch_Scene_32_PrePlayMusic_Confirm: Scene_32_PrePlayMusic_Confirm {
|
||||
private extern void orig_Enter_Select();
|
||||
private void Enter_Select() {
|
||||
NaiveRating.SavePrev();
|
||||
orig_Enter_Select();
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Assembly-CSharp.NaiveRating.mm</AssemblyName>
|
||||
<Description>Best45 rating</Description>
|
||||
<OutCategory>extras</OutCategory>
|
||||
</PropertyGroup>
|
||||
<Import Project="..\..\Mu3Mods.csproj" />
|
||||
</Project>
|
@ -8,7 +8,7 @@ class patch_GameEngine: GameEngine {
|
||||
|
||||
public void calcCurrentBattleResult(patch_SessionResult sessionResult) {
|
||||
orig_calcCurrentBattleResult(sessionResult);
|
||||
sessionResult.PlatinumFastCount = _counters.PlatinumFastCount;
|
||||
sessionResult.PlatinumLateCount = _counters.PlatinumLateCount;
|
||||
sessionResult.platinumFastCount = _counters.PlatinumFastCount;
|
||||
sessionResult.platinumLateCount = _counters.PlatinumLateCount;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
namespace MU3.Game;
|
||||
using MonoMod;
|
||||
|
||||
namespace MU3.Game;
|
||||
|
||||
// This is in SessionResult because BattleResult is a struct
|
||||
class patch_SessionResult: SessionResult {
|
||||
public int PlatinumFastCount { get; set; }
|
||||
public int PlatinumLateCount { get; set; }
|
||||
public int platinumFastCount;
|
||||
public int platinumLateCount;
|
||||
}
|
||||
|
@ -40,13 +40,13 @@ class patch_UIResultTechScore: UIResultTechScore {
|
||||
cloneCounter(
|
||||
counterFast_,
|
||||
new Color(0.630f, 0.766f, 0.829f, 1.000f),
|
||||
sessionResult.PlatinumFastCount
|
||||
sessionResult.platinumFastCount
|
||||
);
|
||||
|
||||
cloneCounter(
|
||||
counterLate_,
|
||||
new Color(0.809f, 0.396f, 0.365f, 1.000f),
|
||||
sessionResult.PlatinumLateCount
|
||||
sessionResult.platinumLateCount
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace MU3.DB;
|
||||
|
||||
[MonoModPatch("global::MU3.DB.MusicSort1ID")]
|
||||
[MonoModEnumReplace]
|
||||
public enum patch_MusicSort1ID {
|
||||
Genre = 0,
|
||||
|
@ -40,7 +40,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SelectBGM", "Extras\SelectB
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SortByInternalDifficulty", "Extras\SortByInternalDifficulty\SortByInternalDifficulty.csproj", "{0BF799DF-8837-4372-9F36-705CDC22374C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NaiveRating", "Extras\NaiveRating\NaiveRating.csproj", "{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MoreProfileOptions", "Extras\MoreProfileOptions\MoreProfileOptions.csproj", "{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkipCutscenes", "Extras\SkipCutscenes\SkipCutscenes.csproj", "{BB9CB905-9989-466C-9A91-D2F323005237}"
|
||||
EndProject
|
||||
|
Reference in New Issue
Block a user