private IEnumerator DoNothingAction(Player firstPlayer, Player secondPlayer, ActionMarker.ActionSprite firstAction, ActionMarker.ActionSprite secondAction) { ActionMarker actionMarkerA; ActionMarker actionMarkerB; if (firstPlayer == Player.A) { actionMarkerA = GameObject.Find("Player A Areas").GetComponentInChildren <ActionMarker> (); actionMarkerB = GameObject.Find("Player B Areas").GetComponentInChildren <ActionMarker> (); } else { actionMarkerA = GameObject.Find("Player B Areas").GetComponentInChildren <ActionMarker> (); actionMarkerB = GameObject.Find("Player A Areas").GetComponentInChildren <ActionMarker> (); } if (secondAction == ActionMarker.ActionSprite.Lower) // Lower card has no action { actionMarkerB.SetMarker(secondAction); } else // Higher card is cancelled or same number { actionMarkerA.SetMarker(firstAction); actionMarkerB.SetMarker(secondAction); } yield return(new WaitForSeconds(settingsController.GetAnimationSpeed())); actionMarkerA.RemoveMarker(); actionMarkerB.RemoveMarker(); }
IEnumerator ShuffleDiscard(Player shufflingPlayer, ActionMarker.ActionSprite action) { // Return the actual card objects to their deck object if (shufflingPlayer == Player.A) { yield return(cardsAnimationManager.ParentDiscardCardsToDeckObject(playerAAreas, action)); deckA.ShuffleDiscard(); } else // Player B { yield return(cardsAnimationManager.ParentDiscardCardsToDeckObject(playerBAreas, action)); deckB.ShuffleDiscard(); } }
public IEnumerator ParentDiscardCardsToDeckObject(GameObject playerAreas, ActionMarker.ActionSprite action) { GameObject deckObject = playerAreas.transform.Find("Deck").gameObject; GameObject discardObject = playerAreas.transform.Find("Discard").gameObject; ActionMarker actionMarker = playerAreas.GetComponentInChildren <ActionMarker> (); actionMarker.SetMarker(action); yield return(new WaitForSeconds(1)); bool showFace = false; float xOffset = 0; float yOffset = 0.5f; yield return(MoveCardsAnimation(discardObject, deckObject, showFace, xOffset, yOffset)); yield return(new WaitUntil(() => discardObject.transform.childCount == 0)); actionMarker.RemoveMarker(); }
// This function is an asynchronous coRoutine because all the animations need to finish before the code resumes public IEnumerator MoveBallAction(GameManager.Player movingPlayer, ActionMarker.ActionSprite action) { float ballAnimationTime = settingController.GetAnimationSpeed(); float moveBy = 2.1f; // Move only if the controlling team is the one moving if (movingPlayer == controllingTeam) { if (movingPlayer == GameManager.Player.A) { ActionMarker actionMarker = GameObject.Find("Player A Areas").GetComponentInChildren <ActionMarker> (); actionMarker.SetMarker(action); if (ballPosition == BallPosition.PlayerAField) { iTween.MoveBy(gameObject, iTween.Hash("y", moveBy, "time", ballAnimationTime, "easeType", "easeInOutQuad")); ballPosition = BallPosition.Middle; yield return(new WaitForSeconds(ballAnimationTime)); } else if (ballPosition == BallPosition.Middle) { iTween.MoveBy(gameObject, iTween.Hash("y", moveBy, "time", ballAnimationTime, "easeType", "easeInOutQuad")); ballPosition = BallPosition.PlayerBField; yield return(new WaitForSeconds(ballAnimationTime)); } else if (ballPosition == BallPosition.PlayerBField) { iTween.MoveBy(gameObject, iTween.Hash("y", moveBy / 2, "time", ballAnimationTime, "easeType", "easeInOutQuad")); ballPosition = BallPosition.PlayerBGoal; yield return(new WaitForSeconds(ballAnimationTime)); } actionMarker.RemoveMarker(); } else // movingPlayer == PlayerB { ActionMarker actionMarker = GameObject.Find("Player B Areas").GetComponentInChildren <ActionMarker> (); actionMarker.SetMarker(action); if (ballPosition == BallPosition.PlayerBField) { iTween.MoveBy(gameObject, iTween.Hash("y", -moveBy, "time", ballAnimationTime, "easeType", "easeInOutQuad")); ballPosition = BallPosition.Middle; yield return(new WaitForSeconds(ballAnimationTime)); } else if (ballPosition == BallPosition.Middle) { iTween.MoveBy(gameObject, iTween.Hash("y", -moveBy, "time", ballAnimationTime, "easeType", "easeInOutQuad")); ballPosition = BallPosition.PlayerAField; yield return(new WaitForSeconds(ballAnimationTime)); } else if (ballPosition == BallPosition.PlayerAField) { iTween.MoveBy(gameObject, iTween.Hash("y", -(moveBy / 2), "time", ballAnimationTime, "easeType", "easeInOutQuad")); ballPosition = BallPosition.PlayerAGoal; yield return(new WaitForSeconds(ballAnimationTime)); } actionMarker.RemoveMarker(); } } else { yield return(SetControllingTeamAnimation(movingPlayer, action)); } }
public IEnumerator SetControllingTeamAnimation(GameManager.Player newControllingTeam, ActionMarker.ActionSprite action) { float ballAnimationTime = settingController.GetAnimationSpeed(); ActionMarker actionMarker; if (newControllingTeam == GameManager.Player.A) { actionMarker = GameObject.Find("Player A Areas").GetComponentInChildren <ActionMarker> (); } else { actionMarker = GameObject.Find("Player B Areas").GetComponentInChildren <ActionMarker> (); } actionMarker.SetMarker(action); yield return(new WaitForSeconds(ballAnimationTime / 2)); controllingTeam = newControllingTeam; if (controllingTeam == GameManager.Player.A) { GetComponent <Image>().sprite = teamASprite; } else { GetComponent <Image>().sprite = teamBSprite; } yield return(new WaitForSeconds(ballAnimationTime / 2)); actionMarker.RemoveMarker(); }