1
0
mirror of synced 2024-11-23 23:21:06 +01:00

Puchichara, Character unlock modals and few fixes about lua nameplates

This commit is contained in:
0auBSQ 2024-07-29 00:04:45 +09:00
parent 22cafcd82e
commit 68bc38186c
7 changed files with 50 additions and 22 deletions

View File

@ -18,15 +18,15 @@ Includes the following arguments:
- (object) modal_info: Asset related information, modal_type dependent: - (object) modal_info: Asset related information, modal_type dependent:
> Coins -> (long) modal_info: The coin value of the play > Coins -> (long) modal_info: The coin value of the play
> Character > Character -> (CCharacter) modal_info: The unlocked character information data (never nil)
> Puchichara > Puchichara -> (CPuchichara) modal_info: The unlocked puchichara information data (never nil)
> Title -> (NameplateUnlockable) modal_info: The unlocked nameplate information data (never nil) > Title -> (NameplateUnlockable) modal_info: The unlocked nameplate information data (never nil)
> Song -> (SongNode?) modal_info: The unlocked song information data (can be nil) > Song -> (SongNode?) modal_info: The unlocked song information data (can be nil)
- (object) modal_visual_ref: Asset related visuals (or extra info), modal_type dependent: - (object) modal_visual_ref: Asset related visuals (or extra info), modal_type dependent:
> Coins -> (long) modal_visual_ref: The total count of coins after the play > Coins -> (long) modal_visual_ref: The total count of coins after the play
> Character > Character -> (CTexture?) modal_visual_ref: The character render as displayed in my room (can be nil)
> Puchichara > Puchichara -> nil
> Title -> (LuaNamePlateScript) modal_visual_ref: A reference to the Nameplate Lua script (never nil except if broken skin) > Title -> (LuaNamePlateScript) modal_visual_ref: A reference to the Nameplate Lua script (never nil except if broken skin)
> Song -> (CTexture?) modal_visual_ref: The song preimage, with the size value set to the same value as in the song select menu (can be nil) > Song -> (CTexture?) modal_visual_ref: The song preimage, with the size value set to the same value as in the song select menu (can be nil)
``` ```
@ -45,4 +45,4 @@ For displayables, played at each result screen Draw() iteration
## Types ## Types
TBD TBD

View File

@ -63,12 +63,18 @@ function registerNewModal(player, rarity, modal_type, modal_asset_informations,
modal_sfx_coin:PlayStart() modal_sfx_coin:PlayStart()
elseif modal_type == 1 then elseif modal_type == 1 then
-- Character -- Character
-- > modal_asset_informations: CCharacter
-- > modal_asset_visual_references: CTexture?
_modal_header = getLocalizedString("MODAL_TITLE_CHARA") _modal_header = getLocalizedString("MODAL_TITLE_CHARA")
_modal_body = modal_current_info.metadata:tGetName()
elseif modal_type == 2 then elseif modal_type == 2 then
-- Puchichara -- Puchichara
-- > modal_asset_informations: CPuchichara
-- > modal_asset_visual_references:
_modal_header = getLocalizedString("MODAL_TITLE_PUCHI") _modal_header = getLocalizedString("MODAL_TITLE_PUCHI")
_modal_body = modal_current_info.metadata:tGetName()
elseif modal_type == 3 then elseif modal_type == 3 then
-- Title -- Title
@ -83,6 +89,7 @@ function registerNewModal(player, rarity, modal_type, modal_asset_informations,
-- > modal_asset_informations: CSongListNode -- > modal_asset_informations: CSongListNode
-- > modal_asset_visual_references: CTexture (Preimage) -- > modal_asset_visual_references: CTexture (Preimage)
_modal_header = getLocalizedString("MODAL_TITLE_SONG") _modal_header = getLocalizedString("MODAL_TITLE_SONG")
_modal_body = modal_current_info.ldTitle:GetString("")
end end
@ -157,15 +164,33 @@ function draw()
tx_header:t2D_DisplayImage_AnchorCenter(960,180) tx_header:t2D_DisplayImage_AnchorCenter(960,180)
if modal_current_type == 1 then
if modal_current_type == 3 then -- Character
if modal_current_visual ~= nil then
modal_current_visual:t2D_DisplayImage(0,260)
end
tx_body = getTextTex(ttk_modal_body, false, false)
tx_body:t2D_DisplayImage_AnchorCenter(960,390)
elseif modal_current_type == 2 then
-- Puchichara
if modal_current_info.tx ~= nil then
modal_current_info.tx:t2D_DisplayImage_AnchorCenter(960,490)
end
tx_body = getTextTex(ttk_modal_body, false, false)
tx_body:t2D_DisplayImage_AnchorCenter(960,790)
elseif modal_current_type == 3 then
-- Nameplate Title
tx_title = getTextTex(ttk_modal_body, false, false) tx_title = getTextTex(ttk_modal_body, false, false)
modal_current_visual:DrawTitlePlate(960, 490, 255, modal_current_info.Value.nameplateInfo.iType, tx_title, modal_current_rarity, modal_current_info.Key) modal_current_visual:DrawTitlePlate(960, 490, 255, modal_current_info.Value.nameplateInfo.iType, tx_title, modal_current_rarity, modal_current_info.Key)
elseif modal_current_type == 4 then elseif modal_current_type == 4 then
-- Song
if modal_current_visual ~= nil then if modal_current_visual ~= nil then
modal_current_visual:t2D_DisplayImage_AnchorCenter(960,490) modal_current_visual:t2D_DisplayImage_AnchorCenter(960,490)
end end
else tx_body = getTextTex(ttk_modal_body, false, false)
tx_body:t2D_DisplayImage_AnchorCenter(960,790)
else
-- Custom modals for custom unlockables in the future??
tx_body = getTextTex(ttk_modal_body, false, false) tx_body = getTextTex(ttk_modal_body, false, false)
tx_body:t2D_DisplayImage_AnchorCenter(960,490) tx_body:t2D_DisplayImage_AnchorCenter(960,490)
end end

View File

@ -4,6 +4,7 @@
public DBCharacter.CharacterEffect effect; public DBCharacter.CharacterEffect effect;
public DBUnlockables.CUnlockConditions unlock; public DBUnlockables.CUnlockConditions unlock;
public string _path; public string _path;
public int _idx;
public float GetEffectCoinMultiplier() { public float GetEffectCoinMultiplier() {
float mult = 1f; float mult = 1f;
@ -31,7 +32,8 @@
new Modal( new Modal(
Modal.EModalType.Character, Modal.EModalType.Character,
HRarity.tRarityToModalInt(metadata.Rarity), HRarity.tRarityToModalInt(metadata.Rarity),
metadata.tGetName() this,
TJAPlayer3.Tx.Characters_Heya_Render[_idx]
), ),
_player); _player);
@ -43,8 +45,9 @@
TJAPlayer3.SaveFileInstances[player].tApplyHeyaChanges(); TJAPlayer3.SaveFileInstances[player].tApplyHeyaChanges();
} }
public CCharacter(string path) { public CCharacter(string path, int i) {
_path = path; _path = path;
_idx = i;
// Character metadata // Character metadata
if (File.Exists($@"{path}{Path.DirectorySeparatorChar}Metadata.json")) if (File.Exists($@"{path}{Path.DirectorySeparatorChar}Metadata.json"))

View File

@ -38,7 +38,7 @@ namespace TJAPlayer3 {
new Modal( new Modal(
Modal.EModalType.Puchichara, Modal.EModalType.Puchichara,
HRarity.tRarityToModalInt(metadata.Rarity), HRarity.tRarityToModalInt(metadata.Rarity),
metadata.tGetName() this
), ),
_player); _player);

View File

@ -1317,7 +1317,7 @@ namespace TJAPlayer3 {
} }
} }
Characters[i] = new CCharacter(charaDirs[i]); Characters[i] = new CCharacter(charaDirs[i], i);
} }

View File

@ -613,7 +613,7 @@ namespace TJAPlayer3 {
TJAPlayer3.SaveFileInstances[iPlayer].data.DanGold = iG; TJAPlayer3.SaveFileInstances[iPlayer].data.DanGold = iG;
TJAPlayer3.SaveFileInstances[iPlayer].data.DanType = cs; TJAPlayer3.SaveFileInstances[iPlayer].data.DanType = cs;
TJAPlayer3.NamePlate.tNamePlateRefreshTitles(iPlayer); TJAPlayer3.NamePlate.tNamePlateRefreshTitles(0);
TJAPlayer3.SaveFileInstances[iPlayer].tApplyHeyaChanges(); TJAPlayer3.SaveFileInstances[iPlayer].tApplyHeyaChanges();
@ -639,7 +639,7 @@ namespace TJAPlayer3 {
} }
TJAPlayer3.NamePlate.tNamePlateRefreshTitles(iPlayer); TJAPlayer3.NamePlate.tNamePlateRefreshTitles(0);
TJAPlayer3.SaveFileInstances[iPlayer].tApplyHeyaChanges(); TJAPlayer3.SaveFileInstances[iPlayer].tApplyHeyaChanges();

View File

@ -36,16 +36,16 @@
title = CLangManager.LangInstance.GetString("AI_TITLE"); title = CLangManager.LangInstance.GetString("AI_TITLE");
dan = stages[Math.Max(0, TJAPlayer3.ConfigIni.nAILevel - 1)] + "面"; dan = stages[Math.Max(0, TJAPlayer3.ConfigIni.nAILevel - 1)] + "面";
} else { } else {
name = TJAPlayer3.SaveFileInstances[player].data.Name; name = TJAPlayer3.SaveFileInstances[actualPlayer].data.Name;
title = TJAPlayer3.SaveFileInstances[player].data.Title; title = TJAPlayer3.SaveFileInstances[actualPlayer].data.Title;
dan = TJAPlayer3.SaveFileInstances[player].data.Dan; dan = TJAPlayer3.SaveFileInstances[actualPlayer].data.Dan;
} }
bIsPrevAI[player] = isAI; bIsPrevAI[player] = isAI;
if (TJAPlayer3.SaveFileInstances[player].data.DanGold) if (TJAPlayer3.SaveFileInstances[player].data.DanGold)
lcNamePlate.SetInfos(player, name, title, $"<g.#FFE34A.#EA9622>{dan}</g>", TJAPlayer3.SaveFileInstances[player].data); lcNamePlate.SetInfos(player, name, title, $"<g.#FFE34A.#EA9622>{dan}</g>", TJAPlayer3.SaveFileInstances[actualPlayer].data);
else else
lcNamePlate.SetInfos(player, name, title, dan, TJAPlayer3.SaveFileInstances[player].data); lcNamePlate.SetInfos(player, name, title, dan, TJAPlayer3.SaveFileInstances[actualPlayer].data);
} }
@ -62,7 +62,7 @@
} }
bIsPrevAI[basePlayer] = isAI; bIsPrevAI[basePlayer] = isAI;
lcNamePlate.Draw(x, y, Opacity, basePlayer, player); lcNamePlate.Draw(x, y, Opacity, basePlayer, TJAPlayer3.P1IsBlue() ? 1 : 0);
} }
private bool[] bIsPrevAI = new bool[5]; private bool[] bIsPrevAI = new bool[5];