public static async Task RoundStart(int num) { await Task.Run(async() => { GlobalBattleInfo.IsPlayer1Pass = false; GlobalBattleInfo.IsPlayer2Pass = false; UiCommand.ReSetPassState(); UiCommand.SetNoticeBoardTitle($"第{num + 1}小局开始"); UiCommand.NoticeBoardShow(); await Task.Delay(2000); UiCommand.NoticeBoardHide(); switch (num) { case (0): { Info.GlobalBattleInfo.ExChangeableCardNum += 3; Info.UiInfo.CardBoardTitle = "剩余抽卡次数为" + Info.GlobalBattleInfo.ExChangeableCardNum; for (int i = 0; i < 10; i++) { await CardCommand.DrawCard(); } for (int i = 0; i < 5; i++) { await CardCommand.DrawCard(false); } break; } case (1): { Info.GlobalBattleInfo.ExChangeableCardNum += 1; Info.UiInfo.CardBoardTitle = "剩余抽卡次数为" + Info.GlobalBattleInfo.ExChangeableCardNum; await CardCommand.DrawCard(); await CardCommand.DrawCard(false); break; } case (2): { Info.GlobalBattleInfo.ExChangeableCardNum += 1; Info.UiInfo.CardBoardTitle = "剩余抽卡次数为" + Info.GlobalBattleInfo.ExChangeableCardNum; await CardCommand.DrawCard(); await CardCommand.DrawCard(false); break; } default: break; } await Task.Delay(2500); await WaitForSelectBoardCard(Info.RowsInfo.GetDownCardList(RegionTypes.Hand), GameEnum.CardBoardMode.ChangeCard);; //while (Info.GlobalBattleInfo.ChangeableCardNum != 0 && !Info.GlobalBattleInfo.IsSelectCardOver) //{ // await WaitForSelectBoardCard(Info.RowsInfo.GetDownCardList(RegionTypes.Hand), GameEnum.CardBoardMode.ChangeCard); ; // Debug.Log("选择了卡牌" + Info.GlobalBattleInfo.SelectBoardCardIds[0]); // Debug.Log("抽卡次数为" + Info.GlobalBattleInfo.ChangeableCardNum); //} }); }
public static async Task CreatTempCard(SingleRowInfo SingleInfo) { Card modelCard = AgainstInfo.cardSet[Orientation.My][RegionTypes.Uesd].CardList[0]; SingleInfo.TempCard = await CardCommand.CreatCard(modelCard.CardId); SingleInfo.TempCard.isGray = true; SingleInfo.TempCard.SetCardSeeAble(true); SingleInfo.ThisRowCards.Insert(SingleInfo.Location, SingleInfo.TempCard); SingleInfo.TempCard.Init(); }
//临时的ai操作 public static async Task TempOperationDiscard() { if (Info.AgainstInfo.isDownPass || Info.AgainstInfo.isUpPass) { Command.GameUI.UiCommand.SetCurrentPass(); } else { await CardCommand.DisCard(Info.AgainstInfo.cardSet[Orientation.My][RegionTypes.Hand].CardList[0]); } }
/// <summary> /// 临时的ai操作 /// </summary> /// <returns></returns> public static async Task TempOperationAsync() { if (Info.GlobalBattleInfo.IsPlayer1Pass || Info.GlobalBattleInfo.IsPlayer2Pass) { UiCommand.SetCurrentPass(); } else { await CardCommand.DisCard(Info.RowsInfo.GetMyCardList(RegionTypes.Hand)[0]); } }
public static async Task WaitForSelectBoardCard <T>(List <T> CardIds, GameEnum.CardBoardMode Mode = GameEnum.CardBoardMode.Select, int num = 1) { GlobalBattleInfo.SelectBoardCardIds = new List <int>(); GlobalBattleInfo.IsWaitForSelectBoardCard = true; UiCommand.SetCardBoardShow(); //Debug.Log("打开面板"); if (typeof(T) == typeof(Card)) { CardBoardCommand.LoadCardList(CardIds.Cast <Card>().ToList()); } else { CardBoardCommand.LoadCardList(CardIds.Cast <int>().ToList()); } Debug.Log("启动"); await Task.Run(async() => { switch (Mode) { case GameEnum.CardBoardMode.Select: while (GlobalBattleInfo.SelectBoardCardIds.Count < Mathf.Min(CardIds.Count, num) && !GlobalBattleInfo.IsFinishSelectBoardCard) { } break; case GameEnum.CardBoardMode.ChangeCard: while (Info.GlobalBattleInfo.ExChangeableCardNum != 0 && !Info.GlobalBattleInfo.IsSelectCardOver) { if (Info.GlobalBattleInfo.SelectBoardCardIds.Count > 0) { await CardCommand.ExchangeCard(); Info.GlobalBattleInfo.ExChangeableCardNum--; Info.GlobalBattleInfo.SelectBoardCardIds.Clear(); UiCommand.SetCardBoardTitle("剩余抽卡次数为" + Info.GlobalBattleInfo.ExChangeableCardNum); //Debug.Log("选择了卡牌" + Info.GlobalBattleInfo.SelectBoardCardIds[0]); //Debug.Log("剩余抽卡次数为" + Info.GlobalBattleInfo.ChangeableCardNum); } } break; case GameEnum.CardBoardMode.ShowOnly: break; default: break; } }); Debug.Log("关闭"); UiCommand.SetCardBoardHide(); GlobalBattleInfo.IsWaitForSelectBoardCard = false; }
public static async Task RoundStart(int num) { await Task.Run(async() => { GameUI.UiCommand.ReSetPassState(); GameUI.UiCommand.SetNoticeBoardTitle($"第{num + 1}小局开始"); await GameUI.UiCommand.NoticeBoardShow(); //await Task.Delay(2000); switch (num) { case (0): { Info.AgainstInfo.ExChangeableCardNum = 3; Info.GameUI.UiInfo.CardBoardTitle = "剩余抽卡次数为".TransUiText() + Info.AgainstInfo.ExChangeableCardNum; for (int i = 0; i < 10; i++) { await CardCommand.DrawCard(IsPlayerDraw: true, isOrder: false); } for (int i = 0; i < 10; i++) { await CardCommand.DrawCard(IsPlayerDraw: false, isOrder: false); } CardCommand.OrderCard(); break; } case (1): { Info.AgainstInfo.ExChangeableCardNum += 1; Info.GameUI.UiInfo.CardBoardTitle = "剩余抽卡次数为" + Info.AgainstInfo.ExChangeableCardNum; await CardCommand.DrawCard(); await CardCommand.DrawCard(false); break; } case (2): { Info.AgainstInfo.ExChangeableCardNum += 1; Info.GameUI.UiInfo.CardBoardTitle = "剩余抽卡次数为" + Info.AgainstInfo.ExChangeableCardNum; await CardCommand.DrawCard(); await CardCommand.DrawCard(false); break; } default: break; } await Task.Delay(2500); AgainstInfo.isRoundStartExchange = true; await WaitForSelectBoardCard(AgainstInfo.cardSet[Orientation.Down][RegionTypes.Hand].CardList, CardBoardMode.ExchangeCard); AgainstInfo.isRoundStartExchange = false; }); }
//static int num = 0; public static async Task BattleStart() { await Task.Run(async() => { //await Task.Delay(500); UiCommand.SetNoticeBoardTitle("对战开始"); UiCommand.NoticeBoardShow(); await Task.Delay(2000); UiCommand.NoticeBoardHide(); CardDeck Deck = AllPlayerInfo.Player1Info.UseDeck; for (int i = 0; i < Deck.CardIds.Count; i++) { //print("我方创造卡片"); Card NewCard = await CardCommand.CreatCard(Deck.CardIds[i]); if (GlobalBattleInfo.IsPlayer1) { RowsInfo.GetDownCardList(RegionTypes.Deck).Add(NewCard); } else { RowsInfo.GetUpCardList(RegionTypes.Deck).Add(NewCard); } //NewCard.Init(); } Deck = AllPlayerInfo.Player2Info.UseDeck; for (int i = 0; i < Deck.CardIds.Count; i++) { //print("敌方创造卡片"); Card NewCard = await CardCommand.CreatCard(Deck.CardIds[i]); if (GlobalBattleInfo.IsPlayer1) { RowsInfo.GetUpCardList(RegionTypes.Deck).Add(NewCard); } else { RowsInfo.GetDownCardList(RegionTypes.Deck).Add(NewCard); } } await Task.Delay(2000); }); //print("结束对战准备"); }
public static async Task WaitForSelectBoardCard <T>(List <T> CardIds, CardBoardMode Mode = CardBoardMode.Select, int num = 1) { AgainstInfo.selectBoardCardRanks = new List <int>(); AgainstInfo.IsFinishSelectBoardCard = false; AgainstInfo.cardBoardMode = Mode; GameUI.UiCommand.SetCardBoardShow(); if (typeof(T) == typeof(Card)) { GameUI.CardBoardCommand.LoadBoardCardList(CardIds.Cast <Card>().ToList()); } else { GameUI.CardBoardCommand.LoadBoardCardList(CardIds.Cast <int>().ToList()); } //Debug.Log("进入选择模式"); await Task.Run(async() => { switch (Mode) { case CardBoardMode.Select: while (AgainstInfo.selectBoardCardRanks.Count < Mathf.Min(CardIds.Count, num) && !AgainstInfo.IsFinishSelectBoardCard) { } GameUI.UiCommand.SetCardBoardHide(); break; case CardBoardMode.ExchangeCard: { AiCommand.RoundStartExchange(false); while (Info.AgainstInfo.ExChangeableCardNum != 0 && !Info.AgainstInfo.IsSelectCardOver) { StateInfo.TaskManager.Token.ThrowIfCancellationRequested(); if (Info.AgainstInfo.selectBoardCardRanks.Count > 0) { //List<Card> CardLists = CardIds.Cast<Card>().ToList(); List <Card> CardLists = AgainstInfo.cardSet[Orientation.Down][RegionTypes.Hand].CardList; await CardCommand.ExchangeCard(CardLists[AgainstInfo.selectBoardCardRanks[0]], isRoundStartExchange: true); Info.AgainstInfo.ExChangeableCardNum--; Info.AgainstInfo.selectBoardCardRanks.Clear(); GameUI.UiCommand.SetCardBoardTitle("剩余抽卡次数为" + Info.AgainstInfo.ExChangeableCardNum); } } if (AgainstInfo.isPlayer1) { AgainstInfo.isPlayer1RoundStartExchangeOver = true; } else { AgainstInfo.isPlayer2RoundStartExchangeOver = true; } GameUI.UiCommand.SetCardBoardHide(); Network.NetCommand.AsyncInfo(NetAcyncType.RoundStartExchangeOver); while (!(AgainstInfo.isPlayer1RoundStartExchangeOver && AgainstInfo.isPlayer2RoundStartExchangeOver)) { StateInfo.TaskManager.Token.ThrowIfCancellationRequested(); Debug.Log("等待双方选择完毕"); Debug.Log("等待双方选择完毕" + AgainstInfo.isPlayer1RoundStartExchangeOver + ":" + AgainstInfo.isPlayer2RoundStartExchangeOver); await Task.Delay(1000); } AgainstInfo.isPlayer1RoundStartExchangeOver = false; AgainstInfo.isPlayer2RoundStartExchangeOver = false; AgainstInfo.IsSelectCardOver = false; break; } case CardBoardMode.ShowOnly: while (AgainstInfo.selectBoardCardRanks.Count < Mathf.Min(CardIds.Count, num) && !AgainstInfo.IsFinishSelectBoardCard) { } GameUI.UiCommand.SetCardBoardHide(); break; default: break; } }); AgainstInfo.cardBoardMode = CardBoardMode.None; }
public static async Task BattleStart() { AgainstInfo.isMyTurn = AgainstInfo.isPlayer1; AgainstInfo.cardSet = new CardSet(); Info.StateInfo.TaskManager = new System.Threading.CancellationTokenSource(); MainThread.Run(() => { foreach (var item in GameObject.FindGameObjectsWithTag("SingleInfo")) { SingleRowInfo singleRowInfo = item.GetComponent <SingleRowInfo>(); AgainstInfo.cardSet.singleRowInfos.Add(singleRowInfo); } AgainstInfo.cardSet.CardList = null; }); await Task.Delay(500); if (AgainstInfo.isPVE) { AllPlayerInfo.UserInfo = new NetInfoModel.PlayerInfo( "gezi", "yaya", new List <CardDeck> { new CardDeck("gezi", 10001, new List <int> { //10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002, 10015, 10016, 10012, 10013, 10014, 10015, 10016, 10002, 10008, 10004, 10005, 10007, 10006, 10008, 10004, 10012, 10010, 10011, 10012, 10014, 10007, 10006, 10016, 10008, 10014 //10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10012, 10013, 10014, 10015, 10016, 10012, 10013, 10014, 10015, 10016 //1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004 }) }); AllPlayerInfo.OpponentInfo = new NetInfoModel.PlayerInfo( "gezi", "yaya", new List <CardDeck> { new CardDeck("gezi", 10001, new List <int> { //10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002,10002, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10012, 10013, 10014, 10015, 10016, 10012, 10013, 10014, 10015, 10016 //10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10012, 10013, 10014, 10015, 10016, 10012, 10013, 10014, 10015, 10016 }) }); } RowCommand.SetRegionSelectable(RegionTypes.None); //Debug.LogError("初始双方信息"); await Task.Run(async() => { try { //await Task.Delay(500); Debug.Log("对战开始".TransUiText()); GameUI.UiCommand.SetNoticeBoardTitle("对战开始".TransUiText()); await GameUI.UiCommand.NoticeBoardShow(); //初始化我方领袖卡 Card MyLeaderCard = await CardCommand.CreatCard(AllPlayerInfo.UserInfo.UseDeck.LeaderId); AgainstInfo.cardSet[Orientation.Down][RegionTypes.Leader].Add(MyLeaderCard); MyLeaderCard.SetCardSeeAble(true); //初始化敌方领袖卡 Card OpLeaderCard = await CardCommand.CreatCard(AllPlayerInfo.OpponentInfo.UseDeck.LeaderId); AgainstInfo.cardSet[Orientation.Up][RegionTypes.Leader].Add(OpLeaderCard); OpLeaderCard.SetCardSeeAble(true); //初始双方化牌组 CardDeck Deck = AllPlayerInfo.UserInfo.UseDeck; //Debug.LogError("初始双方化牌组"); for (int i = 0; i < Deck.CardIds.Count; i++) { Card NewCard = await CardCommand.CreatCard(Deck.CardIds[i]); CardSet cardSet = AgainstInfo.cardSet[Orientation.Down][RegionTypes.Deck]; cardSet.Add(NewCard); } Deck = AllPlayerInfo.OpponentInfo.UseDeck; for (int i = 0; i < Deck.CardIds.Count; i++) { Card NewCard = await CardCommand.CreatCard(Deck.CardIds[i]); AgainstInfo.cardSet[Orientation.Up][RegionTypes.Deck].Add(NewCard); } await Task.Delay(000); } catch (Exception e) { Debug.LogError(e); } }); }