public void DroppingUpdate() { if (update.Count == 0) { StateManager.Instance.state = StateManager.State.matching; } List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; update.Remove(piece); } }
// Update is called once per frame void FixedUpdate() { GUIManager.instance.FillBar.fillAmount = Mathf.Lerp(GUIManager.instance.FillBar.fillAmount, GUIManager.instance.filledBar / GUIManager.instance.maxFill, fillSpeed); List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) // if we flipped to make this update { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) // if we didn't make a match { if (wasFlipped) // if we flipped { FlipPieces(piece.index, flippedPiece.index, false); // Flip back } } else // if we made a match { foreach (Point pnt in connected) // Remove the node pieces connected { //movedPiece = true; KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } flipped.Remove(flip); // remove the flip after update update.Remove(piece); } }
public void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) // 그렇지 않았을 떄 { if (wasFlipped) { FlipPieces(piece.index, flippedPiece.index, false); } } else // match 를 만들었을 때 { foreach (Point pnt in connected) // 연결됫을 때 노드피스들 지워주기 { //점수 더해주는 부분 scoreMng.Score += 10; KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } flipped.Remove(flip); // 업데이트 이후 플립 삭제 update.Remove(piece); } }
void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < model.update.Count; i++) { NodePiece piece = model.update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; model.fills[x] = Mathf.Clamp(model.fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) //If we flipped to make this update { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) //If we didn't make a match { if (wasFlipped) //If we flipped { FlipPieces(piece.index, flippedPiece.index, false); //Flip back } } else //If we made a match { foreach (Point pnt in connected) //Remove the node pieces connected { KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); model.dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } model.flipped.Remove(flip); //Remove the flip after update model.update.Remove(piece); } }
void Update() { for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; bool updating = piece.UpdatePiece(); } }
void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = GetFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) { flippedPiece = flip.GetOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) { if (wasFlipped) { FlipPieces(piece.index, flippedPiece.index, false); } } else { foreach (Point pnt in connected) { KillPiece(pnt); Node node = GetNodeAtPoint(pnt); NodePiece nodePiece = node.GetPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } flipped.Remove(flip); update.Remove(piece); } }
// Update is called once per frame void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < piecesToUpdate.Count; i++) { NodePiece piece = piecesToUpdate[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } foreach (NodePiece piece in finishedUpdating) { FlippedPieces flipDuo = getFlipped(piece); bool wasFlipped = (flipDuo != null); int x = piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Coord> connected = isConnected(piece.index, true); if (wasFlipped) // If we flipped to make this update { NodePiece flippedPiece = flipDuo.getOtherPiece(piece); AddConnectedGems(ref connected, isConnected(flippedPiece.index, true)); if (connected.Count == 0) // If we didn't make a match... { FlipPieces(piece.index, flippedPiece.index, false); // ...flip back } } if (connected.Count > 0) // if we did make a match { scoreSystem.IncrementScore(connected.Count); foreach (Coord coord in connected) // Remove the node pieces connected { KillPiece(coord); Node node = getNodeAtCoord(coord); NodePiece nodePiece = node.GetPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } piecesToFlip.Remove(flipDuo); // Remove the flip after done piecesToUpdate.Remove(piece); } }
// UPDATE once per frame void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) // if we flipped, make this update { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); // TODO figure out Ref } // The ref keyword in C# is used for passing or returning references of values to or from Methods. // Basically, it means that any change made to a value that is passed by reference will reflect // this change since you are modifying the value at the address and not just the value. // Basically, it changes the value outside of the method and not only within it. (Not for global variables) if (connected.Count == 0) // if no match { if (wasFlipped) // If we flipped { FlipPieces(piece.index, flippedPiece.index, false); // flip back } } else // If we made a match { foreach (Point pnt in connected) // remove nodes connected { KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } flipped.Remove(flip); // Remove the flip after update update.Remove(piece); } }
void Update() { if (timer) { totalTime += Time.deltaTime; score.text = ((int)targetTime).ToString(); targetTime -= Time.deltaTime; if (targetTime <= 0.0f) { timerEnded(); } } List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) //If we flipped to make this update { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) //If we didn't make a match { if (wasFlipped) //If we flipped { FlipPieces(piece.index, flippedPiece.index, false); //Flip back } } else //If we made a match { foreach (Point pnt in connected) //Remove the node pieces connected { if (timer) { targetTime += .5f; } else { scoreCount += 1; score.text = scoreCount.ToString(); } KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } ApplyGravityToBoard(); } flipped.Remove(flip); //Remove the flip after update update.Remove(piece); } }
void Update() { if (gameFinished == false) { List <NodePiece> finishedUpdating = new List <NodePiece>(); timerText.text = "Time: " + timeRemaining.ToString(); if (score >= targetScore) { gameFinished = true; CancelInvoke(nameof(UpdateMatch3Game)); resultsPanel.SetActive(true); audioSource.clip = audioClips[1]; audioSource.Play(); Debug.Log("Game Complete - You Win!"); } for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (piece.UpdatePiece() == false) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = GetFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = IsConnected(piece.index, true); bool wasFlipped = (flip != null); // If flipped make this update if (wasFlipped) { flippedPiece = flip.GetOtherPiece(piece); AddPoints(ref connected, IsConnected(flippedPiece.index, true)); } // If match wasn't made if (connected.Count == 0) { // If flipped if (wasFlipped) { FlipPieces(piece.index, flippedPiece.index, false); // Flip pieces back } } else // If match is made { // Remove the node pieces that are connected foreach (Point p in connected) { KillPiece(p); Node node = GetNodeAtPoint(p); NodePiece nodePiece = node.GetPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } audioSource.clip = audioClips[0]; audioSource.Play(); ApplyGravityToBoard(); } // Remove the flip after update flipped.Remove(flip); update.Remove(piece); } } }
void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped && flipBackAfterWrongMove) // czy bez braku matcha ma zawracac na stare miejsce czy nie { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) // jezeli nie ma spasowania { if (wasFlipped && flipBackAfterWrongMove) { FlipPieces(piece.index, flippedPiece.index, false); } } else { // jezeli jest spasowanie bool counter = true; foreach (Point pnt in connected) // Remove the node pieces connected { KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (counter == true) { PieceToSpawn = nodePiece; counter = false; } if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } //Debug.Log("usuwanie z match3"); Spawnitem(PieceToSpawn); ApplyGravityToBoard(); counter = true; } //Debug.Log("piece value"+PieceToSpawn.value); flipped.Remove(flip); update.Remove(piece); } }
void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) { if (wasFlipped) { FlipPieces(piece.index, flippedPiece.index, false); } } else { if (connected.Count != 0 && connected.Count != 4) { List <Point> killlist = new List <Point>(); List <Point> bonuslist = new List <Point>(); foreach (Point p in connected) { killlist.Add(p); Node node = GetNodeAtPoint(p); NodePiece nodePiece = node.GetPiece(); if (nodePiece.isBonus()) { Bonus.AddBonusPoints(height, width, nodePiece.BonusValue(), p, killlist, bonuslist); } } foreach (Point p in killlist) { KillPiece(p); Node node = GetNodeAtPoint(p); NodePiece nodePiece = node.GetPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } } if (connected.Count == 4) { Node bnode = GetNodeAtPoint(connected[0]); NodePiece bpiece = bnode.GetPiece(); bnode.SetPiece(bpiece); bpiece.InitializeBonus(Random.Range(1, 4), bonuses); for (int j = 1; j < connected.Count; j++) { KillPiece(connected[j]); Node node = GetNodeAtPoint(connected[j]); NodePiece nodePiece = node.GetPiece(); node.SetPiece(nodePiece); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); } node.SetPiece(null); } } ApplyGravityToBoard(); } flipped.Remove(flip); update.Remove(piece); } }
void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) //If we flipped to make this update { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) //If we didn't made a match { if (wasFlipped) //if we flipped { FlipPieces(piece.index, flippedPiece.index, false); //flip back } } else //If we made a match { foreach (Point pnt in connected)//Remove the node pieces connected { KillPiece(pnt); Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.getPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); if (connected.Count <= 3) { Cash.CopperCoins += (getValueAtPoint(pnt)); // We add the value of our nodes as money to our cash counter. Points.PointsAmount += (getValueAtPoint(pnt)); // We add the value of our nodes as points to our xp counter. Debug.Log("connected 3"); } if (connected.Count == 4) { Cash.CopperCoins += (getValueAtPoint(pnt) + 6); // We add the value of our nodes as money to our cash counter. Points.PointsAmount += (getValueAtPoint(pnt) * 2); // We add the value of our nodes as points to our xp counter. Debug.Log("Congratulations you connected 4"); } if (connected.Count >= 5) { Cash.CopperCoins += (getValueAtPoint(pnt) + 20); // We add the value of our nodes as money to our cash counter. Points.PointsAmount += (getValueAtPoint(pnt) * 3); // We add the value of our nodes as points to our xp counter. Debug.Log("WOW AAAAAMAZING JOB You connected more than 5"); } } node.SetPiece(null); } ApplyGravityToBoard(); } flipped.Remove(flip);//remove the flip after update update.Remove(piece); } }
private void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < _update.Count; i++) { NodePiece piece = _update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = GetFlipped(piece); NodePiece flippedPiece = null; int x = piece.index.x; _fills[x] = Mathf.Clamp(_fills[x] - 1, 0, Width); List <Point> connected = IsConnected(piece.index, true); bool wasFlipped = flip != null; if (wasFlipped) { flippedPiece = flip.GetOtherPiece(piece); AddPoints(ref connected, IsConnected(flippedPiece.index, true)); } if (connected.Count == 0) { if (wasFlipped) { FlipPieces(piece.index, flippedPiece.index, false); } } else { foreach (Point p in connected) { KillPiece(p); Node node = GetNodeAtPoint(p); NodePiece nodePiece = node.GetPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); _dead.Add(nodePiece); _score += 10; highScore -= 10; scoreText.text = _score.ToString(); levelScoreText.text = "Ты набрал " + _score + " очков!"; if (highScore <= 0) { gameOverPanel.SetActive(true); } } node.SetPiece(null); } ApplyGravityToBoard(); } _flipped.Remove(flip); _update.Remove(piece); } }
void Update() { List <NodePiece> finishedUpdating = new List <NodePiece>(); for (int i = 0; i < update.Count; i++) { NodePiece piece = update[i]; if (!piece.UpdatePiece()) { finishedUpdating.Add(piece); } } for (int i = 0; i < finishedUpdating.Count; i++) { NodePiece piece = finishedUpdating[i]; FlippedPieces flip = getFlipped(piece); NodePiece flippedPiece = null; int x = (int)piece.index.x; fills[x] = Mathf.Clamp(fills[x] - 1, 0, width); List <Point> connected = isConnected(piece.index, true); bool wasFlipped = (flip != null); if (wasFlipped) // { flippedPiece = flip.getOtherPiece(piece); AddPoints(ref connected, isConnected(flippedPiece.index, true)); } if (connected.Count == 0) //¸ø¸ÂŸÀ»¶§ { if (wasFlipped) // { FlipPieces(piece.index, flippedPiece.index, false); //¸ø¸ÂÃá ¸ð¾çÀº ´Ù½Ã ¿ø·¡ÀÚ¸®·Î } } else //¸ÂŸÀ»¶§ { foreach (Point pnt in connected) //¸ÂÃá ¸ð¾çÀº »èÁ¦(²ô±â) { Node node = getNodeAtPoint(pnt); NodePiece nodePiece = node.GetPiece(); if (nodePiece != null) { nodePiece.gameObject.SetActive(false); dead.Add(nodePiece); /////////////////////////////////////////// } node.SetPiece(null); ////////// Á¡¼öºÎ¿© : (±âº») 3¸ÅÄ¡ = 5Á¡, 4¸ÅÄ¡ = 10Á¡, 5¸ÅÄ¡ = 20Á¡, 6¸ÅÄ¡ÀÌ»ó = 40Á¡ if (connected.Count == 3) { GameObject.Find("scoreUI").GetComponent <ScoreUI>().score += 5; } else if (connected.Count == 4) { GameObject.Find("scoreUI").GetComponent <ScoreUI>().score += 10; } else if (connected.Count == 5) { GameObject.Find("scoreUI").GetComponent <ScoreUI>().score += 20; } else if (connected.Count > 6) { GameObject.Find("scoreUI").GetComponent <ScoreUI>().score += 40; } ///////////////////////////////// } ApplyGravityToBoard(); } flipped.Remove(flip); // update.Remove(piece); } }