public IEnumerator Fill() //填充所有网格 { bool needsRefill = true; //决定是否再次填充 while (needsRefill) //一直循环创建直到没有配对的元素 { yield return(new WaitForSeconds(0.7f)); while (FillStep())//控制物体移动 { inverse = !inverse; yield return(new WaitForSeconds(fillTime)); } if (First == 1) { needsRefill = false; } else { needsRefill = ClearAllValidMatches(); } } if (First != 1) { NormalPiece nor = ClearMgr.Instance.Out(); //////在此刻向外部发送消息 FightMgr.Instance.Init(nor); //注意,数组为引用类型,传递时不能清除 ClearMgr.Instance.clear(); //清空NormalPiece当前记录的消除数据 } else { First++; } }
public async Task TestPickAsync() { var conf = GenerateConfiguration(); var socketClient = GenerateSocketClient(); var player = GenerateGMPlayer(conf, socketClient); var piece = new ShamPiece(); var field = new TaskField(0, 0); Assert.True(field.MoveHere(player)); Assert.True(player.Holding is null); // Act bool picked = await player.PickAsync(CancellationToken.None); Assert.False(picked); Assert.True(player.Holding is null); Assert.Equal(MessageID.PickError, lastSended.MessageID); var payload = (PickErrorPayload)lastSended.Payload; Assert.Equal(PickError.NothingThere, payload.ErrorSubtype); Assert.Null(prevSended); // delay await Task.Delay(conf.PickupPenalty * 2); field.Put(piece); lastSended = null; picked = await player.PickAsync(CancellationToken.None); Assert.True(picked); Assert.Equal(piece, player.Holding); Assert.Equal(MessageID.PickAnswer, lastSended.MessageID); // delay await Task.Delay(conf.PickupPenalty * 2); lastSended = null; picked = await player.PickAsync(CancellationToken.None); Assert.False(picked); Assert.Equal(piece, player.Holding); Assert.Equal(MessageID.PickError, lastSended.MessageID); payload = (PickErrorPayload)lastSended.Payload; Assert.Equal(PickError.Other, payload.ErrorSubtype); // delay await Task.Delay(conf.PickupPenalty * 2); var secondPiece = new NormalPiece(); field.Put(secondPiece); lastSended = null; picked = await player.PickAsync(CancellationToken.None); Assert.False(picked); Assert.Equal(piece, player.Holding); Assert.Equal(MessageID.PickError, lastSended.MessageID); payload = (PickErrorPayload)lastSended.Payload; Assert.Equal(PickError.Other, payload.ErrorSubtype); }
public async Task TestPutAsync() { var conf = GenerateConfiguration(); var socketClient = GenerateSocketClient(); var player = GenerateGMPlayer(conf, socketClient); var piece = new NormalPiece(); var field = new GoalField(0, 0); player.Holding = piece; Assert.True(field.MoveHere(player)); // Act (PutEvent putEvent, bool removed) = await player.PutAsync(CancellationToken.None); Assert.True(putEvent == PutEvent.NormalOnGoalField && removed); Assert.True(player.Holding is null); Assert.Equal(MessageID.PutAnswer, lastSended.MessageID); Assert.Null(prevSended); await Task.Delay(conf.PutPenalty * 2); lastSended = null; (putEvent, removed) = await player.PutAsync(CancellationToken.None); Assert.False(putEvent == PutEvent.NormalOnGoalField || removed); Assert.Equal(MessageID.PutError, lastSended.MessageID); var payload = (PutErrorPayload)lastSended.Payload; Assert.Equal(PutError.AgentNotHolding, payload.ErrorSubtype); }
void LoadPrefabs() { movablePiecePrefab = Resources.Load <NormalPiece>("Prefabs/GamePieces/NormalPiece"); backgroundPiece = Resources.Load <GameObject>("Prefabs/GamePieces/Background"); staticPiecePrefab = Resources.Load <StaticPiece>("Prefabs/GamePieces/StaticPiece"); goalPiecePrefab = Resources.Load <GoalPiece>("Prefabs/GamePieces/Goal"); objectivePiecePrefab = Resources.Load <ObjectivePiece>("Prefabs/GamePieces/Objective"); }
public void TestNormalPiecePut() { int x = 3; int y = 4; NormalPiece piece = new NormalPiece(); GoalField field = new GoalField(x, y); bool result = field.Put(piece).putEvent == PutEvent.NormalOnGoalField ? true : false; Assert.True(result); }
public void Init(NormalPiece nor) //在Grid中调用,回合初始化主函数 { this.nor = nor; //获取并解析本轮中消除的格子数量 for (int i = 0; i < enemyList.Count; i++) //查找一个当前敌人 { if (enemyList[i] != null) { Debug.Log("找到了一个敌人"); CurEnemy(enemyList[i]);//设置敌人目标 break; } } StartCoroutine(Fight()); //协程控制人物动画 }
public NormalPiece Out()//传出 { //Debug.Log(magic + " " + heart + " " + shield + " " + sword); //foreach (var item in istrue) //{ // Debug.Log(item); //} NormalPiece nor = new NormalPiece(); nor.magic = magic; nor.heart = heart; nor.shield = shield; nor.sword = sword; nor.istrue = istrue; //outData.Add(Skill); //outData.Add(Rainbow); //Debug.Log(magic+" "+heart+" "+shield+" "+sword); return(nor); }
public void TestNormalPieceCheck() { NormalPiece piece = new NormalPiece(); Assert.False(piece.CheckForSham()); }
public bool Compare(NormalPiece piece) { return(piece.pieceType == pieceType); }