Fix sp unlockables and Kernschmelze 256 uniqueID
This commit is contained in:
parent
58878a43c5
commit
cc8cd25ebc
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"id": "h4HQFxFFIVo5F7SuBGf8eWfHeXsmZQDkg9JG7IOI79zutvCrIa6l2L0FfQlrgPpx",
|
"id": "kernschmelzefunkyzukin",
|
||||||
"url": ""
|
"url": ""
|
||||||
}
|
}
|
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
@ -21,4 +21,8 @@
|
|||||||
20 - Cyan
|
20 - Cyan
|
||||||
21 - OpTk Yellow (Roll)
|
21 - OpTk Yellow (Roll)
|
||||||
22 - Bol white
|
22 - Bol white
|
||||||
23 - Saturated blue
|
23 - Saturated blue
|
||||||
|
24 - Saturated green
|
||||||
|
25 - OpTk Chapter I
|
||||||
|
26 - OpTk Chapter II
|
||||||
|
27 - OpTk Chapter III
|
@ -23,6 +23,7 @@ namespace TJAPlayer3
|
|||||||
["tp"] = 1,
|
["tp"] = 1,
|
||||||
["ap"] = 1,
|
["ap"] = 1,
|
||||||
["aw"] = 1,
|
["aw"] = 1,
|
||||||
|
["ig"] = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
public class CUnlockConditions
|
public class CUnlockConditions
|
||||||
@ -110,7 +111,7 @@ namespace TJAPlayer3
|
|||||||
* tp : "Total plays", 1 value : [Total playcount]
|
* tp : "Total plays", 1 value : [Total playcount]
|
||||||
* ap : "AI battle plays", 1 value : [AI battle playcount]
|
* ap : "AI battle plays", 1 value : [AI battle playcount]
|
||||||
* aw : "AI battle wins", 1 value : [AI battle wins count]
|
* aw : "AI battle wins", 1 value : [AI battle wins count]
|
||||||
*
|
* ig : "Impossible to Get", (not recommanded) used to be able to have content in database that is impossible to unlock, no values
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public (bool, string) tConditionMetWrapper(int player, EScreen screen = EScreen.MyRoom)
|
public (bool, string) tConditionMetWrapper(int player, EScreen screen = EScreen.MyRoom)
|
||||||
@ -161,7 +162,8 @@ namespace TJAPlayer3
|
|||||||
return tConditionMet(new int[] { tGetCountChartsPassingCondition(player) }, screen);
|
return tConditionMet(new int[] { tGetCountChartsPassingCondition(player) }, screen);
|
||||||
else
|
else
|
||||||
return (false, CLangManager.LangInstance.GetString(90005) + this.Condition + " requires (" + this.RequiredArgCount.ToString() + " * n) values and n references.");
|
return (false, CLangManager.LangInstance.GetString(90005) + this.Condition + " requires (" + this.RequiredArgCount.ToString() + " * n) values and n references.");
|
||||||
|
case "ig":
|
||||||
|
return (false, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
return (false, CLangManager.LangInstance.GetString(90000));
|
return (false, CLangManager.LangInstance.GetString(90000));
|
||||||
@ -248,12 +250,17 @@ namespace TJAPlayer3
|
|||||||
if (this.Values.Length < this.RequiredArgCount)
|
if (this.Values.Length < this.RequiredArgCount)
|
||||||
return (CLangManager.LangInstance.GetString(90005) + this.Condition + " requires " + this.RequiredArgCount.ToString() + " values.");
|
return (CLangManager.LangInstance.GetString(90005) + this.Condition + " requires " + this.RequiredArgCount.ToString() + " values.");
|
||||||
|
|
||||||
|
// Only the player loaded as 1P can check unlockables in real time
|
||||||
|
var SaveData = TJAPlayer3.SaveFileInstances[TJAPlayer3.SaveFile].data;
|
||||||
|
|
||||||
switch (this.Condition)
|
switch (this.Condition)
|
||||||
{
|
{
|
||||||
case "ch":
|
case "ch":
|
||||||
return (CLangManager.LangInstance.GetString(90002) + this.Values[0]);
|
return CLangManager.LangInstance.GetString(90002).SafeFormat(this.Values[0]);
|
||||||
case "cs":
|
case "cs":
|
||||||
return (CLangManager.LangInstance.GetString(90001)); // Will be buyable later from the randomized shop
|
return (CLangManager.LangInstance.GetString(90001)); // Will be buyable later from the randomized shop
|
||||||
|
case "ce":
|
||||||
|
return CLangManager.LangInstance.GetString(90006).SafeFormat(this.Values[0]);
|
||||||
}
|
}
|
||||||
return (CLangManager.LangInstance.GetString(90000));
|
return (CLangManager.LangInstance.GetString(90000));
|
||||||
}
|
}
|
||||||
@ -316,7 +323,7 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
string key = _songId + _aimedDifficulty.ToString();
|
string key = _songId + _aimedDifficulty.ToString();
|
||||||
var _cht = bpDistinctCharts.TryGetValue(key, out var value) ? value : null;
|
var _cht = bpDistinctCharts.TryGetValue(key, out var value) ? value : null;
|
||||||
if (_cht != null && _cht.ClearStatus >= _aimedStatus) _count++;
|
if (_cht != null && _cht.ClearStatus + 1 >= _aimedStatus) _count++;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (_aimedDifficulty < (int)Difficulty.Easy)
|
else if (_aimedDifficulty < (int)Difficulty.Easy)
|
||||||
@ -325,7 +332,7 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
string key = _songId + diff.ToString();
|
string key = _songId + diff.ToString();
|
||||||
var _cht = bpDistinctCharts.TryGetValue(key, out var value) ? value : null;
|
var _cht = bpDistinctCharts.TryGetValue(key, out var value) ? value : null;
|
||||||
if (_cht != null && _cht.ClearStatus >= _aimedStatus)
|
if (_cht != null && _cht.ClearStatus + 1 >= _aimedStatus)
|
||||||
{
|
{
|
||||||
_count++;
|
_count++;
|
||||||
break;
|
break;
|
||||||
|
@ -130,4 +130,21 @@ namespace System
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Below methods are added by 0AuBSQ
|
||||||
|
|
||||||
|
public static class StringExtensions
|
||||||
|
{
|
||||||
|
public static string SafeFormat(this string format, params object?[] args)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return String.Format(format, args);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return format;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -26,7 +26,7 @@ namespace TJAPlayer3
|
|||||||
[4] = "Reload Songs",
|
[4] = "Reload Songs",
|
||||||
[5] = "Reload the song folder.",
|
[5] = "Reload the song folder.",
|
||||||
[10148] = "Reload Songs (Hard Reload)",
|
[10148] = "Reload Songs (Hard Reload)",
|
||||||
[10149] = "Clean the existing database and\n" +
|
[10149] = "Clean the existing database and\n" +
|
||||||
"reload the song folder from scratch.",
|
"reload the song folder from scratch.",
|
||||||
[6] = "Player Count",
|
[6] = "Player Count",
|
||||||
[7] = "Select how many players you want to play with.\nUp to 5 players can be active at once.",
|
[7] = "Select how many players you want to play with.\nUp to 5 players can be active at once.",
|
||||||
@ -160,10 +160,10 @@ namespace TJAPlayer3
|
|||||||
[9993] = "SimpleMode",
|
[9993] = "SimpleMode",
|
||||||
|
|
||||||
[9994] = "Texture Loading Type:\n" +
|
[9994] = "Texture Loading Type:\n" +
|
||||||
"Freeze on startup disappears\n" +
|
"Freeze on startup disappears\n" +
|
||||||
"Turn this option off if some textures turn black\n" +
|
"Turn this option off if some textures turn black\n" +
|
||||||
"This change will take effect after restarting OpenTaiko\n",
|
"This change will take effect after restarting OpenTaiko\n",
|
||||||
[9995] = "ASync Texture Loading",
|
[9995] = "ASync Texture Loading",
|
||||||
|
|
||||||
[9996] = "Drawing Method:\n" +
|
[9996] = "Drawing Method:\n" +
|
||||||
"Select from either OpenGL,\n" +
|
"Select from either OpenGL,\n" +
|
||||||
@ -306,8 +306,8 @@ namespace TJAPlayer3
|
|||||||
[10124] = "Use Extreme/Extra Transitions",
|
[10124] = "Use Extreme/Extra Transitions",
|
||||||
[10125] = "Play a skin-defined animation\nwhile switching between\nExtreme & Extra.",
|
[10125] = "Play a skin-defined animation\nwhile switching between\nExtreme & Extra.",
|
||||||
|
|
||||||
[10126] = "Always use normal gauge",
|
[10126] = "Always use normal gauge",
|
||||||
[10127] = "Always use normal gauge",
|
[10127] = "Always use normal gauge",
|
||||||
|
|
||||||
[10150] = "Video Playback Display Mode",
|
[10150] = "Video Playback Display Mode",
|
||||||
[10151] = "Change how videos are displayed\nin the background.",
|
[10151] = "Change how videos are displayed\nin the background.",
|
||||||
@ -482,11 +482,36 @@ namespace TJAPlayer3
|
|||||||
[1045] = "Extreme / Extra",
|
[1045] = "Extreme / Extra",
|
||||||
|
|
||||||
[90000] = "[ERROR] Invalid condition",
|
[90000] = "[ERROR] Invalid condition",
|
||||||
[90001] = "Item only avaliable at the Shop.",
|
[90001] = "Item only avaliable at the Shop.", // cs
|
||||||
[90002] = "Coin price : ",
|
[90002] = "Coin price : {0}", // ch, cs, cm
|
||||||
[90003] = "Item bought !",
|
[90003] = "Item bought!",
|
||||||
[90004] = "Not enough coins !",
|
[90004] = "Not enough coins!",
|
||||||
[90005] = "The following condition : ",
|
[90005] = "The following condition: ",
|
||||||
|
|
||||||
|
[90006] = "Earn a total of {0} coins to unlock this item! ({1}/{0})", // ce
|
||||||
|
[90007] = "Play {0} AI battle matches to unlock this item! ({1}/{0})", // ap
|
||||||
|
[90008] = "Win {0} AI battle matches to unlock this item! ({1}/{0})", // aw
|
||||||
|
[90009] = "Play {0} songs to unlock this item! ({1}/{0})", // tp
|
||||||
|
[90010] = "{0} {1} songs on {2} difficulty to unlock this item! ({3}/{1})", // dp
|
||||||
|
[90011] = "{0} {1} songs with a star rating of {2} to unlock this item! ({3}/{1})", // lp
|
||||||
|
|
||||||
|
[91000] = "Play",
|
||||||
|
[91001] = "Get an Assisted Clear on",
|
||||||
|
[91011] = "Get at least an Assisted Clear on",
|
||||||
|
[91002] = "Get a Clear on",
|
||||||
|
[91012] = "Get at least a Clear on",
|
||||||
|
[91003] = "Get a Full Combo on",
|
||||||
|
[91013] = "Get at least a Full Combo on",
|
||||||
|
[91004] = "Get a Perfect on",
|
||||||
|
|
||||||
|
[92000] = "Easy",
|
||||||
|
[92001] = "Normal",
|
||||||
|
[92002] = "Hard",
|
||||||
|
[92003] = "Extreme",
|
||||||
|
[92004] = "Extra Extreme",
|
||||||
|
[92013] = "Extreme/Extra Extreme",
|
||||||
|
[92005] = "Tower",
|
||||||
|
[92006] = "Dan",
|
||||||
|
|
||||||
[900] = "Resume",
|
[900] = "Resume",
|
||||||
[901] = "Restart",
|
[901] = "Restart",
|
||||||
|
@ -474,7 +474,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
[90000] = "[ERROR] Condicion no valida",
|
[90000] = "[ERROR] Condicion no valida",
|
||||||
[90001] = "Item solamente disponible en la tienda.",
|
[90001] = "Item solamente disponible en la tienda.",
|
||||||
[90002] = "Precio: ",
|
[90002] = "Precio: {0}",
|
||||||
[90003] = "Item comprado!",
|
[90003] = "Item comprado!",
|
||||||
[90004] = "Monedas insuficientes!",
|
[90004] = "Monedas insuficientes!",
|
||||||
[90005] = "Esta condición: ",
|
[90005] = "Esta condición: ",
|
||||||
|
@ -445,7 +445,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
[90000] = "[ERREUR] Condition invalide",
|
[90000] = "[ERREUR] Condition invalide",
|
||||||
[90001] = "L'article n'est disponible que dans le Magasin.",
|
[90001] = "L'article n'est disponible que dans le Magasin.",
|
||||||
[90002] = "Prix en jetons : ",
|
[90002] = "Prix en jetons : {0}",
|
||||||
[90003] = "Article acheté !",
|
[90003] = "Article acheté !",
|
||||||
[90004] = "Nombre de jetons insuffisant !",
|
[90004] = "Nombre de jetons insuffisant !",
|
||||||
[90005] = "La condition suivante : ",
|
[90005] = "La condition suivante : ",
|
||||||
|
@ -553,7 +553,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
[90000] = "[エラー] 無効な条件",
|
[90000] = "[エラー] 無効な条件",
|
||||||
[90001] = "上記の商品はコイン商店に限りです、部屋に購入ができません。",
|
[90001] = "上記の商品はコイン商店に限りです、部屋に購入ができません。",
|
||||||
[90002] = "コインの値段 : ",
|
[90002] = "コインの値段 : {0}",
|
||||||
[90003] = "商品購入済み !",
|
[90003] = "商品購入済み !",
|
||||||
[90004] = "コインが足りません !",
|
[90004] = "コインが足りません !",
|
||||||
[90005] = "下記の条件 : ",
|
[90005] = "下記の条件 : ",
|
||||||
|
@ -481,7 +481,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
[90000] = "[ERROR] Invalid condition",
|
[90000] = "[ERROR] Invalid condition",
|
||||||
[90001] = "Item only avaliable at the Shop.",
|
[90001] = "Item only avaliable at the Shop.",
|
||||||
[90002] = "Coin price : ",
|
[90002] = "Coin price : {0}",
|
||||||
[90003] = "Item bought !",
|
[90003] = "Item bought !",
|
||||||
[90004] = "Not enough coins !",
|
[90004] = "Not enough coins !",
|
||||||
[90005] = "The following condition : ",
|
[90005] = "The following condition : ",
|
||||||
|
@ -481,7 +481,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
[90000] = "[ERROR] Invalid condition",
|
[90000] = "[ERROR] Invalid condition",
|
||||||
[90001] = "Item only avaliable at the Shop.",
|
[90001] = "Item only avaliable at the Shop.",
|
||||||
[90002] = "Coin price : ",
|
[90002] = "Coin price : {0}",
|
||||||
[90003] = "Item bought !",
|
[90003] = "Item bought !",
|
||||||
[90004] = "Not enough coins !",
|
[90004] = "Not enough coins !",
|
||||||
[90005] = "The following condition : ",
|
[90005] = "The following condition : ",
|
||||||
|
@ -526,7 +526,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
[90000] = "【错误】未达成条件",
|
[90000] = "【错误】未达成条件",
|
||||||
[90001] = "物品仅在商店可用。",
|
[90001] = "物品仅在商店可用。",
|
||||||
[90002] = "奖牌价格:",
|
[90002] = "奖牌价格:{0}",
|
||||||
[90003] = "购买成功!",
|
[90003] = "购买成功!",
|
||||||
[90004] = "金币不足!",
|
[90004] = "金币不足!",
|
||||||
[90005] = "需求条件:",
|
[90005] = "需求条件:",
|
||||||
|
Loading…
Reference in New Issue
Block a user