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,39 +316,50 @@ namespace MDPro3.UI ...@@ -316,39 +316,50 @@ 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)
{ {
selectedCard = mono;
break;
}
if (selectedCard == null)
break;
int response = 0; int response = 0;
bool needSend = true;
if (hint == InterString.Get("选择效果发动。")) if (hint == InterString.Get("选择效果发动。"))
{ {
if (mono.card.effects.Count == 1) if (selectedCard.card.effects.Count == 1)
response = mono.card.effects[0].ptr; response = selectedCard.card.effects[0].ptr;
else else
{ {
var selections = new List<string>() { InterString.Get("效果选择") }; var selections = new List<string>() { InterString.Get("效果选择") };
var responses = new List<int> { }; var responses = new List<int> { };
for (var i = 0; i < mono.card.effects.Count; i++) for (var i = 0; i < selectedCard.card.effects.Count; i++)
{ {
var desc = mono.card.effects[i].desc; var desc = selectedCard.card.effects[i].desc;
if (desc.Length <= 2) if (desc.Length <= 2)
desc = InterString.Get("发动效果"); desc = InterString.Get("发动效果");
selections.Add(desc); selections.Add(desc);
responses.Add(mono.card.effects[i].ptr); responses.Add(selectedCard.card.effects[i].ptr);
} }
Program.instance.ocgcore.GetUI<OcgCoreUI>().ShowPopupSelection(selections, responses); Program.instance.ocgcore.GetUI<OcgCoreUI>().ShowPopupSelection(selections, responses);
needSend = false;
} }
} }
else else
{ {
foreach (var btn in mono.card.buttons) foreach (var btn in selectedCard.card.buttons)
if (btn.type == ButtonType.SpSummon) if (btn.type == ButtonType.SpSummon)
response = btn.response[0]; response = btn.response[0];
} }
if (needSend)
{
binaryMaster = new BinaryMaster(); binaryMaster = new BinaryMaster();
binaryMaster.writer.Write(response); binaryMaster.writer.Write(response);
Program.instance.ocgcore.SendReturn(binaryMaster.Get()); Program.instance.ocgcore.SendReturn(binaryMaster.Get());
break;
} }
break; break;
case GameMessage.AnnounceCard: case GameMessage.AnnounceCard:
...@@ -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