キャラをアンロック可能に (#387)
This commit is contained in:
parent
50c614125e
commit
a015997b02
@ -185,6 +185,9 @@ namespace TJAPlayer3
|
|||||||
[JsonProperty("namePlateTitles")]
|
[JsonProperty("namePlateTitles")]
|
||||||
public Dictionary<string, CNamePlateTitle> NamePlateTitles = new Dictionary<string, CNamePlateTitle>();
|
public Dictionary<string, CNamePlateTitle> NamePlateTitles = new Dictionary<string, CNamePlateTitle>();
|
||||||
|
|
||||||
|
[JsonProperty("unlockedCharacters")]
|
||||||
|
public List<string> UnlockedCharacters = new List<string>();
|
||||||
|
|
||||||
[JsonProperty("unlockedPuchicharas")]
|
[JsonProperty("unlockedPuchicharas")]
|
||||||
public List<string> UnlockedPuchicharas = new List<string>();
|
public List<string> UnlockedPuchicharas = new List<string>();
|
||||||
|
|
||||||
|
@ -303,11 +303,13 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Characters_Heya_Preview[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
TJAPlayer3.Tx.Characters_Heya_Preview[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
||||||
TJAPlayer3.Tx.Heya_Center_Menu_Box_Slot?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
TJAPlayer3.Tx.Heya_Center_Menu_Box_Slot?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
||||||
|
TJAPlayer3.Tx.Heya_Lock?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Characters_Heya_Preview[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
TJAPlayer3.Tx.Characters_Heya_Preview[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
||||||
TJAPlayer3.Tx.Heya_Center_Menu_Box_Slot?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
TJAPlayer3.Tx.Heya_Center_Menu_Box_Slot?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
||||||
|
TJAPlayer3.Tx.Heya_Lock?.tUpdateColor4(C変換.ColorToColor4(Color.White));
|
||||||
}
|
}
|
||||||
|
|
||||||
var scroll = DrawBox_Slot(i + (TJAPlayer3.Skin.Heya_Center_Menu_Box_Count / 2));
|
var scroll = DrawBox_Slot(i + (TJAPlayer3.Skin.Heya_Center_Menu_Box_Count / 2));
|
||||||
@ -335,6 +337,10 @@ namespace TJAPlayer3
|
|||||||
scroll.Item2 + TJAPlayer3.Skin.Heya_Center_Menu_Box_Authors_Offset[1]);
|
scroll.Item2 + TJAPlayer3.Skin.Heya_Center_Menu_Box_Authors_Offset[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (TJAPlayer3.Tx.Characters[pos].unlock != null
|
||||||
|
&& !TJAPlayer3.SaveFileInstances[iPlayer].data.UnlockedCharacters.Contains(TJAPlayer3.Skin.Characters_DirName[pos]))
|
||||||
|
TJAPlayer3.Tx.Heya_Lock?.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, scroll.Item1, scroll.Item2);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -536,7 +542,10 @@ namespace TJAPlayer3
|
|||||||
iCurrentMenu = iMainMenuCurrent - 1;
|
iCurrentMenu = iMainMenuCurrent - 1;
|
||||||
|
|
||||||
if (iCurrentMenu == 0)
|
if (iCurrentMenu == 0)
|
||||||
|
{
|
||||||
|
this.tUpdateUnlockableTextChara();
|
||||||
this.tUpdateUnlockableTextPuchi();
|
this.tUpdateUnlockableTextPuchi();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (iCurrentMenu == 0)
|
else if (iCurrentMenu == 0)
|
||||||
@ -567,24 +576,35 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
else if (iCurrentMenu == 1)
|
else if (iCurrentMenu == 1)
|
||||||
{
|
{
|
||||||
//TJAPlayer3.Tx.Loading?.t2D描画(TJAPlayer3.app.Device, 18, 7);
|
ess = this.tSelectChara();
|
||||||
|
|
||||||
// Reload character, a bit time expensive but with a O(N) memory complexity instead of O(N * M)
|
if (ess == ESelectStatus.SELECTED)
|
||||||
TJAPlayer3.Tx.ReloadCharacter(TJAPlayer3.SaveFileInstances[iPlayer].data.Character, iCharacterCurrent, iPlayer);
|
{
|
||||||
TJAPlayer3.SaveFileInstances[iPlayer].data.Character = iCharacterCurrent;
|
//TJAPlayer3.Tx.Loading?.t2D描画(TJAPlayer3.app.Device, 18, 7);
|
||||||
|
|
||||||
// Update the character
|
// Reload character, a bit time expensive but with a O(N) memory complexity instead of O(N * M)
|
||||||
TJAPlayer3.SaveFileInstances[iPlayer].tUpdateCharacterName(TJAPlayer3.Skin.Characters_DirName[iCharacterCurrent]);
|
TJAPlayer3.Tx.ReloadCharacter(TJAPlayer3.SaveFileInstances[iPlayer].data.Character, iCharacterCurrent, iPlayer);
|
||||||
|
TJAPlayer3.SaveFileInstances[iPlayer].data.Character = iCharacterCurrent;
|
||||||
|
|
||||||
// Welcome voice using Sanka
|
// Update the character
|
||||||
TJAPlayer3.Skin.voiceTitleSanka[iPlayer]?.t再生する();
|
TJAPlayer3.SaveFileInstances[iPlayer].tUpdateCharacterName(TJAPlayer3.Skin.Characters_DirName[iCharacterCurrent]);
|
||||||
|
|
||||||
CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL);
|
// Welcome voice using Sanka
|
||||||
|
TJAPlayer3.Skin.voiceTitleSanka[iPlayer]?.t再生する();
|
||||||
|
|
||||||
TJAPlayer3.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
CMenuCharacter.tMenuResetTimer(CMenuCharacter.ECharacterAnimation.NORMAL);
|
||||||
|
|
||||||
iCurrentMenu = -1;
|
TJAPlayer3.SaveFileInstances[iPlayer].tApplyHeyaChanges();
|
||||||
this.tResetOpts();
|
|
||||||
|
iCurrentMenu = -1;
|
||||||
|
this.tResetOpts();
|
||||||
|
}
|
||||||
|
else if (ess == ESelectStatus.SUCCESS)
|
||||||
|
{
|
||||||
|
TJAPlayer3.SaveFileInstances[iPlayer].data.UnlockedCharacters.Add(TJAPlayer3.Skin.Characters_DirName[iCharacterCurrent]);
|
||||||
|
TJAPlayer3.SaveFileInstances[iPlayer].tSpendCoins(TJAPlayer3.Tx.Characters[iCharacterCurrent].unlock.Values[0]);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (iCurrentMenu == 2)
|
else if (iCurrentMenu == 2)
|
||||||
@ -777,7 +797,7 @@ namespace TJAPlayer3
|
|||||||
else if (iCurrentMenu == 1)
|
else if (iCurrentMenu == 1)
|
||||||
{
|
{
|
||||||
iCharacterCurrent = (iCharacterCount + iCharacterCurrent + off) % iCharacterCount;
|
iCharacterCurrent = (iCharacterCount + iCharacterCurrent + off) % iCharacterCount;
|
||||||
|
tUpdateUnlockableTextChara();
|
||||||
}
|
}
|
||||||
else if (iCurrentMenu == 2)
|
else if (iCurrentMenu == 2)
|
||||||
iDanTitleCurrent = (this.ttkDanTitles.Length + iDanTitleCurrent + off) % this.ttkDanTitles.Length;
|
iDanTitleCurrent = (this.ttkDanTitles.Length + iDanTitleCurrent + off) % this.ttkDanTitles.Length;
|
||||||
@ -833,6 +853,48 @@ namespace TJAPlayer3
|
|||||||
SELECTED
|
SELECTED
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#region [Chara unlockables]
|
||||||
|
|
||||||
|
private void tUpdateUnlockableTextChara()
|
||||||
|
{
|
||||||
|
#region [Check unlockable]
|
||||||
|
|
||||||
|
if (TJAPlayer3.Tx.Characters[iCharacterCurrent].unlock != null
|
||||||
|
&& !TJAPlayer3.SaveFileInstances[iPlayer].data.UnlockedCharacters.Contains(TJAPlayer3.Skin.Characters_DirName[iCharacterCurrent]))
|
||||||
|
{
|
||||||
|
this.ttkInfoSection = new TitleTextureKey(TJAPlayer3.Tx.Characters[iCharacterCurrent].unlock.tConditionMessage()
|
||||||
|
, this.pfHeyaFont, Color.White, Color.Black, 1000);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
this.ttkInfoSection = null;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
private ESelectStatus tSelectChara()
|
||||||
|
{
|
||||||
|
// Add "If unlocked" to select directly
|
||||||
|
|
||||||
|
if (TJAPlayer3.Tx.Characters[iCharacterCurrent].unlock != null
|
||||||
|
&& !TJAPlayer3.SaveFileInstances[iPlayer].data.UnlockedCharacters.Contains(TJAPlayer3.Skin.Characters_DirName[iCharacterCurrent]))
|
||||||
|
{
|
||||||
|
(bool, string) response = TJAPlayer3.Tx.Characters[iCharacterCurrent].unlock.tConditionMet(
|
||||||
|
new int[] { TJAPlayer3.SaveFileInstances[TJAPlayer3.SaveFile].data.Medals });
|
||||||
|
Color responseColor = (response.Item1) ? Color.Lime : Color.Red;
|
||||||
|
|
||||||
|
// Send coins here for the unlock, considering that only coin-paid puchicharas can be unlocked directly from the Heya menu
|
||||||
|
|
||||||
|
this.ttkInfoSection = new TitleTextureKey(response.Item2, this.pfHeyaFont, responseColor, Color.Black, 1000);
|
||||||
|
|
||||||
|
return (response.Item1) ? ESelectStatus.SUCCESS : ESelectStatus.FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.ttkInfoSection = null;
|
||||||
|
return ESelectStatus.SELECTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region [Puchi unlockables]
|
#region [Puchi unlockables]
|
||||||
private void tUpdateUnlockableTextPuchi()
|
private void tUpdateUnlockableTextPuchi()
|
||||||
{
|
{
|
||||||
@ -872,8 +934,6 @@ namespace TJAPlayer3
|
|||||||
return ESelectStatus.SELECTED;
|
return ESelectStatus.SELECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
Loading…
x
Reference in New Issue
Block a user