Commit c6c7d9da authored by SherryChaos's avatar SherryChaos

bug fix

parent dbc474e5
...@@ -28,7 +28,7 @@ namespace MDPro3.UI ...@@ -28,7 +28,7 @@ namespace MDPro3.UI
public GameObject arrow; public GameObject arrow;
public int selectedCount public int SelectedCount
{ {
get get
{ {
...@@ -40,11 +40,10 @@ namespace MDPro3.UI ...@@ -40,11 +40,10 @@ namespace MDPro3.UI
Refresh(); Refresh();
} }
} }
private int m_selectedCount;
private OcgCore core;
int m_selectedCount; public List<PopupDuelSelectCardItem> monos = new();
OcgCore core;
public List<PopupDuelSelectCardItem> monos = new List<PopupDuelSelectCardItem>();
public override void InitializeSelections() public override void InitializeSelections()
{ {
...@@ -183,12 +182,12 @@ namespace MDPro3.UI ...@@ -183,12 +182,12 @@ namespace MDPro3.UI
} }
else else
{ {
if (selectedCount >= min) if (SelectedCount >= min)
btnConfirm.GetComponent<ButtonPress>().SetInteractable(true); btnConfirm.GetComponent<ButtonPress>().SetInteractable(true);
else else
btnConfirm.GetComponent<ButtonPress>().SetInteractable(false); btnConfirm.GetComponent<ButtonPress>().SetInteractable(false);
if (selectedCount >= max) if (SelectedCount >= max)
{ {
foreach (var mono in monos) foreach (var mono in monos)
if (!mono.selected) if (!mono.selected)
...@@ -218,6 +217,7 @@ namespace MDPro3.UI ...@@ -218,6 +217,7 @@ namespace MDPro3.UI
list.Add(mono.card); list.Add(mono.card);
return list; return list;
} }
private bool CheckSelectable(GameCard card, List<GameCard> addedCards = null) private bool CheckSelectable(GameCard card, List<GameCard> addedCards = null)
{ {
bool returnValue = false; bool returnValue = false;
...@@ -316,40 +316,51 @@ namespace MDPro3.UI ...@@ -316,40 +316,51 @@ namespace MDPro3.UI
break; break;
case GameMessage.SelectIdleCmd: case GameMessage.SelectIdleCmd:
case GameMessage.SelectBattleCmd: case GameMessage.SelectBattleCmd:
foreach (var mono in monos) PopupDuelSelectCardItem selectedCard = null;
foreach(var mono in monos)
if (mono.selected) if (mono.selected)
{ {
int response = 0; selectedCard = mono;
if (hint == InterString.Get("选择效果发动。")) break;
{ }
if (mono.card.effects.Count == 1)
response = mono.card.effects[0].ptr; if (selectedCard == null)
else break;
{
var selections = new List<string>() { InterString.Get("效果选择") }; int response = 0;
var responses = new List<int> { }; bool needSend = true;
for (var i = 0; i < mono.card.effects.Count; i++) if (hint == InterString.Get("选择效果发动。"))
{ {
var desc = mono.card.effects[i].desc; if (selectedCard.card.effects.Count == 1)
if (desc.Length <= 2) response = selectedCard.card.effects[0].ptr;
desc = InterString.Get("发动效果"); else
selections.Add(desc); {
responses.Add(mono.card.effects[i].ptr); var selections = new List<string>() { InterString.Get("效果选择") };
} var responses = new List<int> { };
Program.instance.ocgcore.GetUI<OcgCoreUI>().ShowPopupSelection(selections, responses); for (var i = 0; i < selectedCard.card.effects.Count; i++)
}
}
else
{ {
foreach (var btn in mono.card.buttons) var desc = selectedCard.card.effects[i].desc;
if (btn.type == ButtonType.SpSummon) if (desc.Length <= 2)
response = btn.response[0]; desc = InterString.Get("发动效果");
selections.Add(desc);
responses.Add(selectedCard.card.effects[i].ptr);
} }
binaryMaster = new BinaryMaster(); Program.instance.ocgcore.GetUI<OcgCoreUI>().ShowPopupSelection(selections, responses);
binaryMaster.writer.Write(response); needSend = false;
Program.instance.ocgcore.SendReturn(binaryMaster.Get());
break;
} }
}
else
{
foreach (var btn in selectedCard.card.buttons)
if (btn.type == ButtonType.SpSummon)
response = btn.response[0];
}
if (needSend)
{
binaryMaster = new BinaryMaster();
binaryMaster.writer.Write(response);
Program.instance.ocgcore.SendReturn(binaryMaster.Get());
}
break; break;
case GameMessage.AnnounceCard: case GameMessage.AnnounceCard:
foreach (var mono in monos) foreach (var mono in monos)
...@@ -444,7 +455,7 @@ namespace MDPro3.UI ...@@ -444,7 +455,7 @@ namespace MDPro3.UI
} }
IEnumerator DisposeAsync() private IEnumerator DisposeAsync()
{ {
foreach(var mono in monos) foreach(var mono in monos)
yield return mono.DisposeAsync(); yield return mono.DisposeAsync();
......
...@@ -185,7 +185,7 @@ namespace MDPro3.UI ...@@ -185,7 +185,7 @@ namespace MDPro3.UI
{ {
if ((Time.time - clickTime) < doubleClickTime * Time.timeScale) if ((Time.time - clickTime) < doubleClickTime * Time.timeScale)
{ {
if (manager.selectedCount == 1 && manager.min == 1 && manager.max == 1) if (manager.SelectedCount == 1 && manager.min == 1 && manager.max == 1)
manager.OnConfirm(); manager.OnConfirm();
else else
UnselectThis(); UnselectThis();
...@@ -221,7 +221,7 @@ namespace MDPro3.UI ...@@ -221,7 +221,7 @@ namespace MDPro3.UI
{ {
if (selected) return; if (selected) return;
selected = true; selected = true;
manager.selectedCount++; manager.SelectedCount++;
if(Program.instance.ocgcore.currentMessage == GameMessage.ConfirmCards) if(Program.instance.ocgcore.currentMessage == GameMessage.ConfirmCards)
{ {
...@@ -231,7 +231,7 @@ namespace MDPro3.UI ...@@ -231,7 +231,7 @@ namespace MDPro3.UI
else else
{ {
orderBase.SetActive(true); orderBase.SetActive(true);
orderText.text = manager.selectedCount.ToString(); orderText.text = manager.SelectedCount.ToString();
} }
} }
...@@ -253,7 +253,7 @@ namespace MDPro3.UI ...@@ -253,7 +253,7 @@ namespace MDPro3.UI
{ {
if (!selected || unselectable) return; if (!selected || unselectable) return;
selected = false; selected = false;
manager.selectedCount--; manager.SelectedCount--;
if (!manager.order) if (!manager.order)
checkOn.SetActive(false); checkOn.SetActive(false);
......
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