Commit e7ed55c3 authored by ElderLich's avatar ElderLich

Bug Fix: Info Panel Bug

Makes the i duel info panel refresh summon counters from live duel state and reset cleanly between duels instead of showing stale 1 normal / 1 special values.
parent 070f80b2
......@@ -84,6 +84,7 @@ namespace MDPro3.Duel
opActivated.Clear();
Program.instance.ocgcore.GetUI<OcgCoreUI>().CardDescription.Hide();
Program.instance.ocgcore.GetUI<OcgCoreUI>().CardList.Hide();
Program.instance.ocgcore.GetUI<OcgCoreUI>().ResetBgDetailState();
surrendered = false;
tagSurrendered = false;
deckReserved = false;
......@@ -818,6 +819,7 @@ namespace MDPro3.Duel
mySummonCount++;
else
opSummonCount++;
Core.GetUI<OcgCoreUI>().RefreshBgDetail();
var se = "SE_LAND_NORMAL";
......@@ -910,6 +912,7 @@ namespace MDPro3.Duel
mySpSummonCount++;
else
opSpSummonCount++;
Core.GetUI<OcgCoreUI>().RefreshBgDetail();
if (card.GetData().HasType(CardType.Token))
goto TokenPass;
......@@ -1968,6 +1971,7 @@ namespace MDPro3.Duel
mySpSummonCount = 0;
opSummonCount = 0;
opSpSummonCount = 0;
Core.GetUI<OcgCoreUI>().RefreshBgDetail();
turns++;
myTurn = isFirst ? (turns % 2 != 0) : (turns % 2 == 0);
duelBGManager.OnNewTurn(myTurn, turns);
......
......@@ -621,35 +621,20 @@ namespace MDPro3.UI.ServantUI
}
private bool bgDetailShowing;
public void SwitchBgDetail(bool show)
{
if (show)
ShowBgDetail();
else
HideBgDetail();
}
private void ShowBgDetail()
public void RefreshBgDetail()
{
var core = Program.instance.ocgcore;
var info = Program.instance.ocgcore.messageDispatcher.duel.duelBGManager.fieldSummonRightInfo;
if (bgDetailShowing)
var info = core?.messageDispatcher?.duel?.duelBGManager?.fieldSummonRightInfo;
if (info == null)
return;
bgDetailShowing = true;
foreach (var card in cards)
card.ShowHiddenLabel();
if (info != null)
{
CameraManager.DuelOverlay3DPlus();
info.SetActive(true);
var summonInfoManager = info.GetComponent<ElementObjectManager>();
if (summonInfoManager == null)
return;
var nearManager = summonInfoManager.GetElement<ElementObjectManager>("RootNear");
var farManager = summonInfoManager.GetElement<ElementObjectManager>("RootFar");
nearManager.GetElement<TextMeshPro>("TextSummon").text = mySummonCount.ToString();
nearManager.GetElement<TextMeshPro>("TextSpSummon").text = mySpSummonCount.ToString();
farManager.GetElement<TextMeshPro>("TextSummon").text = opSummonCount.ToString();
farManager.GetElement<TextMeshPro>("TextSpSummon").text = opSpSummonCount.ToString();
......@@ -668,6 +653,47 @@ namespace MDPro3.UI.ServantUI
summonInfoManager.GetElement<TextMeshPro>("HandNear").text = core.GetLocationCardCount(CardLocation.Hand, 0).ToString();
summonInfoManager.GetElement<TextMeshPro>("HandFar").text = core.GetLocationCardCount(CardLocation.Hand, 1).ToString();
}
public void ResetBgDetailState()
{
var wasShowing = bgDetailShowing;
bgDetailShowing = false;
foreach (var card in cards)
card.HideHiddenLabel();
var info = Program.instance.ocgcore?.messageDispatcher?.duel?.duelBGManager?.fieldSummonRightInfo;
if (info != null)
{
if (wasShowing || info.activeSelf)
CameraManager.DuelOverlay3DMinus();
info.SetActive(false);
}
}
public void SwitchBgDetail(bool show)
{
if (show)
ShowBgDetail();
else
HideBgDetail();
}
private void ShowBgDetail()
{
var info = Program.instance.ocgcore.messageDispatcher.duel.duelBGManager.fieldSummonRightInfo;
if (bgDetailShowing)
return;
bgDetailShowing = true;
foreach (var card in cards)
card.ShowHiddenLabel();
if (info != null)
{
CameraManager.DuelOverlay3DPlus();
info.SetActive(true);
RefreshBgDetail();
}
}
private void HideBgDetail()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment