public HoverArgs(CaseData hoveredCase, PersoData hoveredPersonnage, PathfindingCase Pathfinding, BallonData hoveredBallon) { this.hoveredCase = hoveredCase; this.hoveredPersonnage = hoveredPersonnage; this.Pathfinding = Pathfinding; this.hoveredBallon = hoveredBallon; }
// ************* // // ** Trigger ** // // ************* // void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Personnage") { if (col.gameObject.GetComponent <PersoData>().persoCase != thisCase) { TransparencyBehaviour.CheckTransparency(col.gameObject, 1f); personnageData = col.gameObject.GetComponent <PersoData>(); casePathfinding = PathfindingCase.NonWalkable; col.gameObject.GetComponent <PersoData>().persoCase = thisCase; TransparencyBehaviour.CheckTransparency(col.gameObject, 0.5f); } } if (col.tag == "Ballon") { if (col.gameObject.GetComponent <BallonData> ().ballonCase != thisCase) { TransparencyBehaviour.CheckTransparency(col.gameObject, 1f); ballon = col.gameObject.GetComponent <BallonData>(); casePathfinding = PathfindingCase.NonWalkable; col.gameObject.GetComponent <BallonData>().ballonCase = thisCase; TransparencyBehaviour.CheckTransparency(col.gameObject, 0.5f); col.gameObject.GetComponent <BallonData>().xCoord = xCoord; col.gameObject.GetComponent <BallonData>().yCoord = yCoord; } if (winCase != Player.Neutral) { StartCoroutine(UIManager.Instance.ScoreChange(winCase)); } } }
private void OnTriggerEnter2D(Collider2D collision) { CaseData coll = collision.transform.GetComponent <CaseData>(); PersoData perso = collision.transform.GetComponent <PersoData>(); if (coll != null) { if (coll.caseElement == Element.Feu) { AirScript.Instance.airEffect.SetActive(false); AirScript.Instance.fireAirEffect.transform.position = coll.transform.position; AirScript.Instance.fireAirEffect.SetActive(true); // coll.changeElement(Element.Aucun); transform.parent.gameObject.SetActive(false); } } else if (perso != null) { if (targetPosition.node == null) // pas de target = pas de tp { return; } perso.transform.position = targetPosition.transform.position + new Vector3(0, GraphManager.Instance.getCaseOffset(perso.gameObject), 0); AirScript.Instance.airEffect.SetActive(false); } }
// *************** // // ** Tacle ** // // *************** // IEnumerator TackleEffect(PersoData punchingPersonnage, Transform path, float offsetY) { // Effet visuel à chaque fois que le personnage se déplaçant se fait taclé if (punchingPersonnage.GetComponent <BoxCollider2D>().enabled != false) { punchingPersonnage.GetComponent <BoxCollider2D>().enabled = false; Vector3 startPos = punchingPersonnage.transform.position; float fracturedTime = 0; float timeUnit = tackleAnimTime / 60; while (fracturedTime < 2) { fracturedTime += timeUnit + 0.01f; punchingPersonnage.transform.position = Vector3.Lerp(startPos, path.position + new Vector3(0, offsetY, 0), fracturedTime); yield return(new WaitForEndOfFrame()); } fracturedTime = 0; while (fracturedTime < 2) { fracturedTime += timeUnit + 0.01f; punchingPersonnage.transform.position = Vector3.Lerp(path.position + new Vector3(0, offsetY, 0), startPos, fracturedTime); yield return(new WaitForEndOfFrame()); } punchingPersonnage.GetComponent <BoxCollider2D>().enabled = true; } }
void Start() { GameObject persoCreated; listHeroJXToPlace.Add(new List <PersoData>()); listHeroJXToPlace.Add(new List <PersoData>()); foreach (PersoData obj in listHeroJ1) { persoCreated = (GameObject)Instantiate(obj.gameObject, new Vector3(999, 999, 999), Quaternion.identity); persoCreated.GetComponent <PersoData>().owner = Player.Red; listHeroJXToPlace[0].Add(persoCreated.GetComponent <PersoData>()); } foreach (PersoData obj in listHeroJ2) { persoCreated = (GameObject)Instantiate(obj.gameObject, new Vector3(999, 999, 999), Quaternion.identity); persoCreated.GetComponent <PersoData>().owner = Player.Blue; listHeroJXToPlace[1].Add(persoCreated.GetComponent <PersoData>()); } listHeroJ1.Clear(); listHeroJ2.Clear(); listHero.AddRange(listHeroJXToPlace[0]); listHero.AddRange(listHeroJXToPlace[1]); }
public void Deselect(Phase currentPhase, Player currentPlayer) { MoveBehaviour.Instance.HidePath(); MoveBehaviour.Instance.pathes.Clear(); GameManager.Instance.actualAction = PersoAction.isSelected; CaseManager.Instance.StartCoroutine("ShowActions"); if (selectedLastCase != null) { if (currentPhase == Phase.Placement) { selectedLastCase.ChangeColor(Statut.None, Statut.isSelected); } else { selectedLastCase.ChangeColor(Statut.None, Statut.isSelected); } } selectedPersonnage = null; selectedCase = null; if (currentPhase == Phase.Placement) { PlacementBehaviour.Instance.NextToPlace(TurnManager.Instance.currentPhase, TurnManager.Instance.currentPlayer); } }
public void HoverPerso() // hover comme chez HoverEvent { CaseData hoveredCase = newHoveredPersonnage.persoCase; PersoData hoveredPersonnage = newHoveredPersonnage; PathfindingCase hoveredPathfinding = newHoveredPersonnage.persoCase.casePathfinding; HoverEvent.newHoverEvent(this, new HoverArgs(hoveredCase, hoveredPersonnage, hoveredPathfinding, null)); }
public void ResetSelection(Color caseColor) { if (selectedCase != null) { selectedCase.ChangeColor(Statut.None, Statut.isSelected); } selectedCase = null; selectedPersonnage = null; }
// ************* // // ** Actions ** // // ************* // void ChangeUI() {// à chaque click, l'UI change de tel ou tel manière if (SelectionManager.Instance.selectedPersonnage != null) { characterList.Clear(); IsVisible(true); PersoData selectedPersoData = SelectionManager.Instance.selectedPersonnage.GetComponent <PersoData>(); SpriteRenderer selectedSpriteRenderer = SelectionManager.Instance.selectedPersonnage.GetComponent <SpriteRenderer>(); infoPersoPortraits.GetComponent <infoPersoPortraits>().Clear(); if (GameObject.FindGameObjectsWithTag("Personnage") == null) { return; } foreach (PersoData perso in RosterManager.Instance.listHero) { if (perso.GetComponent <PersoData>().owner == selectedPersoData.owner) { characterList.Add(perso); } } infoPersoPortraits.GetComponent <infoPersoPortraits>().setMainPortrait(selectedSpriteRenderer.sprite, selectedPersoData.owner); characterList.Remove(SelectionManager.Instance.selectedPersonnage); if (characterList.Count > 0) { infoPersoPortraits.GetComponent <infoPersoPortraits>().setSubPortrait1(characterList[0].GetComponent <SpriteRenderer>().sprite, characterList[0].GetComponent <PersoData>().owner); } infoPersoPortraits.GetComponent <infoPersoPortraits>().SubPortrait1.GetComponent <PortraitInteractive>().newHoveredPersonnage = characterList[0]; if (characterList.Count > 1) { infoPersoPortraits.GetComponent <infoPersoPortraits>().setSubPortrait2(characterList[1].GetComponent <SpriteRenderer>().sprite, characterList[1].GetComponent <PersoData>().owner); } infoPersoPortraits.GetComponent <infoPersoPortraits>().SubPortrait2.GetComponent <PortraitInteractive>().newHoveredPersonnage = characterList[1]; if (characterList.Count > 2) { infoPersoPortraits.GetComponent <infoPersoPortraits>().setSubPortrait3(characterList[2].GetComponent <SpriteRenderer>().sprite, characterList[2].GetComponent <PersoData>().owner); } infoPersoPortraits.GetComponent <infoPersoPortraits>().SubPortrait3.GetComponent <PortraitInteractive>().newHoveredPersonnage = characterList[2]; infoPersoStats.GetComponent <infoPersoStats>().changePr(selectedPersoData.actualPointResistance, selectedPersoData.pointResistance); infoPersoStats.GetComponent <infoPersoStats>().changePm(selectedPersoData.actualPointMovement, selectedPersoData.pointMovement); infoPersoStats.GetComponent <infoPersoStats>().changePo(selectedPersoData.actualPointResistance, selectedPersoData.pointResistance); } else { // GetComponent<Image>().color = noneOwnerColor; IsVisible(false); } }
public void SelectPerso(CaseData hoveredCase, PersoData hoveredPersonnage, Color selectedColor, Phase currentPhase, Player currentPlayer, PersoAction actualAction) { Deselect(currentPhase, currentPlayer); selectedCase = hoveredCase; selectedPersonnage = hoveredPersonnage; selectedCase.caseColor = selectedColor; selectedCase.ChangeColor(Statut.isSelected); GameManager.Instance.actualAction = PersoAction.isSelected; CaseManager.Instance.StartCoroutine("ShowActions"); }
IEnumerator Deplacement(Color caseColor, float offsetY, PersoData selectedPersonnage) { // On déplace le personnage de case en case jusqu'au click du joueur propriétaire, et entre temps on check s'il est taclé ou non TurnManager.Instance.DisableFinishTurn(); selectedPersonnage.GetComponent <PersoData>().movePath = pathes; GameManager.Instance.actualAction = PersoAction.isMoving; foreach (Transform path in pathes) { if (selectedPersonnage.isTackled) { path.GetComponent <CaseData>().ChangeColor(Statut.isTackled, Statut.isMoving); } else { Vector3 startPos = SelectionManager.Instance.selectedPersonnage.transform.position; float fracturedTime = 0; float timeUnit = travelTime / 60; selectedPersonnage.RotateTowards(path.transform.position); while (selectedPersonnage.transform.position != path.transform.position + new Vector3(0, offsetY, 0)) { fracturedTime += timeUnit + 0.01f; selectedPersonnage.transform.position = Vector3.Lerp(startPos, path.transform.position + new Vector3(0, offsetY, 0), fracturedTime); yield return(new WaitForEndOfFrame()); } SelectionManager.Instance.selectedCase = path.gameObject.GetComponent <CaseData>(); path.GetComponent <CaseData>().ChangeColor(Statut.None, Statut.isMoving); TackleBehaviour.Instance.CheckTackle(selectedPersonnage.gameObject); } } SelectionManager.Instance.selectedCase = pathes[pathes.Count - 1].gameObject.GetComponent <CaseData>(); SelectionManager.Instance.selectedCase.GetComponent <CaseData>().ChangeColor(Statut.None, Statut.isMoving); GameManager.Instance.actualAction = PersoAction.isSelected; if (!selectedPersonnage.isTackled) { SelectionManager.Instance.selectedCase.GetComponent <CaseData>().casePathfinding = PathfindingCase.NonWalkable; SelectionManager.Instance.selectedPersonnage.actualPointMovement -= pathes.Count - 1; pathes.Clear(); } else { selectedPersonnage.isTackled = false; SelectionManager.Instance.selectedPersonnage.actualPointMovement = 0; pathes.Clear(); } TurnManager.Instance.StartCoroutine("EnableFinishTurn"); CaseManager.Instance.StartCoroutine("ShowActions"); yield return(new WaitForEndOfFrame()); }
// ************* // // ** Actions ** // // ************* // void changeColorEnter() { // Change la couleur de la case qui est sur le curseur Player currentPlayer = GameManager.Instance.currentPlayer; Phase currentPhase = GameManager.Instance.currentPhase; Color actionColor = ColorManager.Instance.actionColor; Color moveColor = ColorManager.Instance.moveColor; PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage; Color hoverColor = ColorManager.Instance.hoverColor; PersoAction actualAction = GameManager.Instance.actualAction; switch (currentPhase) { case (Phase.Placement): hoveredCase.GetComponent <CaseData>().ChangeColor(Statut.isHovered); break; case (Phase.Deplacement): if (SelectionManager.Instance.selectedPersonnage != null) { MoveBehaviour.Instance.HidePath(); if (hoveredPersonnage != null && hoveredPersonnage.GetComponent <PersoData>().owner != currentPlayer && Fonction.Instance.CheckAdjacent(selectedPersonnage.gameObject, hoveredPersonnage.gameObject) == true) { // hoveredCase.GetComponent<CaseData>().ChangeColor(actionColor); } if (hoveredPersonnage != null && hoveredPersonnage.GetComponent <PersoData>().owner == currentPlayer) { // hoveredCase.GetComponent<CaseData>().ChangeColor(actionColor); } if (hoveredBallon != null && Fonction.Instance.CheckAdjacent(selectedPersonnage.gameObject, hoveredBallon.gameObject) == true) { // hoveredCase.GetComponent<CaseData>().ChangeColor(actionColor); } if (hoveredCase.GetComponent <CaseData>().casePathfinding == PathfindingCase.Walkable && actualAction == PersoAction.isSelected) { MoveBehaviour.Instance.createPath(); if (hoveredLastCase != hoveredCase) { Pathfinding.Instance.StartPathfinding(); } } } break; } }
void OnMouseOver() { if (!enabled) { return; } hoveredCase = this.GetComponent <CaseData>(); hoveredPersonnage = GetComponent <CaseData> ().personnageData; hoveredPathfinding = GetComponent <CaseData> ().casePathfinding; hoveredBallon = GetComponent <CaseData> ().ballon; newHoverEvent(this, new HoverArgs(hoveredCase, hoveredPersonnage, hoveredPathfinding, hoveredBallon)); }
public IEnumerator Punch(PersoData hoveredPersonnage) { SelectionManager.Instance.selectedPersonnage.GetComponent <PersoData> ().pointAction--; punchedPersonnage = hoveredPersonnage; punchedPersonnage.actualPointResistance--; Color punchedPersonnageColor = punchedPersonnage.GetComponent <SpriteRenderer> ().color; punchedPersonnage.GetComponent <SpriteRenderer> ().color = new Color(1, 1, 0); for (int i = 100; i > 0; i = i - 10) { yield return(new WaitForSeconds(0.01f)); punchedPersonnage.GetComponent <SpriteRenderer> ().color = new Color((0.01f * i) + (punchedPersonnageColor.r - (0.01f * i)), (0.01f * i) + (punchedPersonnageColor.g - (0.01f * i)), 0 + (punchedPersonnageColor.b - (0.01f * i))); } }
public void OnNewClick() { // Lors d'un click sur une case Phase currentPhase = TurnManager.Instance.currentPhase; BallonData hoveredBallon = HoverManager.Instance.hoveredBallon; PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage; PersoAction actualAction = GameManager.Instance.actualAction; if (currentPhase == Phase.Deplacement && selectedPersonnage != null && hoveredBallon != null && actualAction == PersoAction.isSelected) { if (Fonction.Instance.CheckAdjacent(hoveredBallon.gameObject, selectedPersonnage.gameObject) == true) { ShotMenu(); } } }
public void ChangePersoPosition(CaseData hoveredCase, PersoData hoveredPersonnage, float offsetY) { // Change la position d'un personnage déjà placer vers la case où a cliqué le joueur possesseur. if (hoveredCase.GetComponent <CaseData>().casePathfinding == PathfindingCase.Walkable || hoveredPersonnage != null) { SelectionManager.Instance.selectedCase = hoveredCase; SelectionManager.Instance.selectedLastPersonnage = SelectionManager.Instance.selectedPersonnage; SelectionManager.Instance.selectedLastPersonnage.transform.position = SelectionManager.Instance.selectedCase.transform.position + new Vector3(0, offsetY, 0); if (hoveredPersonnage != null && SelectionManager.Instance.selectedLastCase != null) { SelectionManager.Instance.selectedPersonnage = hoveredPersonnage; SelectionManager.Instance.selectedPersonnage.transform.position = SelectionManager.Instance.selectedLastCase.transform.position + new Vector3(0, offsetY, 0); } else { SelectionManager.Instance.selectedPersonnage = hoveredPersonnage; } } SelectionManager.Instance.Deselect(TurnManager.Instance.currentPhase, TurnManager.Instance.currentPlayer); }
public void OnNewClick() { PersoData hoveredPersonnage = HoverManager.Instance.hoveredPersonnage; Phase currentPhase = TurnManager.Instance.currentPhase; Player currentPlayer = TurnManager.Instance.currentPlayer; PersoAction actualAction = GameManager.Instance.actualAction; PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage; if (actualAction == PersoAction.isSelected && currentPhase == Phase.Deplacement && selectedPersonnage != null && hoveredPersonnage != null && hoveredPersonnage.GetComponent <PersoData>().owner != currentPlayer && selectedPersonnage.GetComponent <PersoData>().pointAction != 0 && Fonction.Instance.CheckAdjacent(selectedPersonnage.gameObject, hoveredPersonnage.gameObject) == true) { Punch(HoverManager.Instance.hoveredPersonnage); } }
public void TirReplacerBalle() { PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage; CaseData hoveredCase = HoverManager.Instance.hoveredCase; PersoAction actualAction = GameManager.Instance.actualAction; BallonData selectedBallon = SelectionManager.Instance.selectedBallon; if (actualAction == PersoAction.isReplacingBall && caseAction.Count != 0) { if (caseAction.Contains(hoveredCase)) { selectedBallon.transform.position = hoveredCase.transform.position; hoveredCase.GetComponent <CaseData>().ChangeColor(Statut.canReplace); StartCoroutine(ReplacerBalleEnd()); return; } StartCoroutine(ReplacerBalleEnd()); selectedPersonnage.GetComponent <PersoData> ().actualPointMovement++; } }
// ************ // // ** Events ** // // ************ // void OnNewHover(object sender, HoverArgs e) { // Curseur se trouve sur une case ou quitte une case if (hoveredLastCase == null || hoveredLastCase != hoveredCase) { hoveredLastCase = hoveredCase; } if (hoveredCase != null) { changeColorExit(GameManager.Instance.currentPhase); } Debug.Log(hoveredCase); Debug.Log(hoveredLastCase); hoveredPersonnage = e.hoveredPersonnage; hoveredCase = e.hoveredCase; hoveredPathfinding = e.Pathfinding; hoveredBallon = e.hoveredBallon; changeColorEnter(); CheckIfAction(); }
void OnTriggerExit2D(Collider2D col) { if (col.tag == "Personnage" && col.gameObject.GetComponent <BoxCollider2D>().enabled == true && GetComponent <PolygonCollider2D>().enabled == true) { personnageData = null; casePathfinding = PathfindingCase.Walkable; ChangeColor(Statut.None, Statut.isSelected); ChangeColor(Statut.None, Statut.isAllyPerso); } if (col.tag == "Ballon" && col.gameObject.GetComponent <BoxCollider2D>().enabled == true && GetComponent <PolygonCollider2D>().enabled == true) { TransparencyBehaviour.CheckTransparency(col.gameObject, 1f); ballon = null; casePathfinding = PathfindingCase.Walkable; ChangeColor(Statut.None, Statut.canShot); } }
void CreatePersoPlacement(CaseData hoveredCase, float offsetY, PersoData selectedPersonnage) { // if (SelectionManager.Instance.selectedPersonnage != null) { selectedPersonnage.transform.position = hoveredCase.transform.position + new Vector3(0, offsetY, 0); selectedPersonnage.owner = TurnManager.Instance.currentPlayer; selectedPersonnage.ChangeColor(); RosterManager.Instance.listHeroPlaced.Add(selectedPersonnage); if (selectedPersonnage.GetComponent <PersoData>().owner == Player.Red) { selectedPersonnage.GetComponent <PersoData>().ChangeRotation(Direction.SudEst); // mettre icone perso rouge } else { selectedPersonnage.GetComponent <PersoData>().ChangeRotation(Direction.NordOuest); // mettre icone perso bleu } SelectionManager.Instance.Deselect(TurnManager.Instance.currentPhase, TurnManager.Instance.currentPlayer); } }
public IEnumerator Move() { CaseData hoveredCase = HoverManager.Instance.hoveredCase; PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage; GameManager.Instance.actualAction = PersoAction.isShoting; TurnManager.Instance.DisableFinishTurn(); MenuManager.Instance.isShoting = true; GameObject nextPosition; animator.SetTrigger("Roule"); isMoving = true; offsetBallon = new Vector2(0, 0); float xCoordNext = hoveredCase.GetComponent <CaseData>().xCoord; float yCoordNext = hoveredCase.GetComponent <CaseData>().yCoord; xCoordInc = 0; yCoordInc = 0; transform.localRotation = Quaternion.Euler(0, 0, 0); Debug.Log(selectedPersonnage.transform.position + " " + transform.position); if (selectedPersonnage.transform.position.x > transform.position.x) { xCoordInc -= 0.5f; yCoordInc -= 0.5f; } else if (selectedPersonnage.transform.position.x < transform.position.x) { xCoordInc += 0.5f; yCoordInc += 0.5f; } if (selectedPersonnage.transform.position.y - 0.5f > transform.position.y) { xCoordInc += 0.5f; yCoordInc -= 0.5f; } else if (selectedPersonnage.transform.position.y - 0.5f < transform.position.y) { xCoordInc -= 0.5f; yCoordInc += 0.5f; } for (int i = 0; i < ballStrenght; i++) { if ((BallonStatut.isIntercepted & statut) == BallonStatut.isIntercepted) { ChangeStatut(BallonStatut.None, BallonStatut.isIntercepted); break; } xCoordNext += xCoordInc; yCoordNext += yCoordInc; if (GameObject.Find(xCoordNext.ToString() + " " + yCoordNext.ToString()) != null) { nextPosition = GameObject.Find(xCoordNext.ToString() + " " + yCoordNext.ToString()); if (nextPosition.GetComponent <CaseData>().casePathfinding == PathfindingCase.NonWalkable) { if (!canRebond) { break; } nextPosition = GameObject.Find(xCoordNext.ToString() + " " + yCoordNext.ToString()); } } else { if (!canRebond) { goto endMove; } xCoordInc = -xCoordInc; yCoordInc = -yCoordInc; xCoordNext += xCoordInc; yCoordNext += yCoordInc; nextPosition = GameObject.Find(xCoordNext.ToString() + " " + yCoordNext.ToString()); } if (xCoordNext == ballonCase.GetComponent <CaseData>().xCoord) { if (yCoordNext < ballonCase.GetComponent <CaseData>().yCoord) { ballonDirection = Direction.SudOuest; } else { ballonDirection = Direction.NordEst; } } else if (yCoordNext == ballonCase.GetComponent <CaseData>().yCoord) { if (xCoordNext < ballonCase.GetComponent <CaseData>().xCoord) { ballonDirection = Direction.NordOuest; } else { ballonDirection = Direction.SudEst; } } ChangeRotation(); Vector3 startPos = transform.position; float fracturedTime = 0; float timeUnit = travelTimeBallon / 60; while (transform.position != nextPosition.transform.position) { fracturedTime += timeUnit + 0.01f; transform.position = Vector3.Lerp(startPos, nextPosition.transform.position, fracturedTime); yield return(new WaitForEndOfFrame()); } TackleBehaviour.Instance.CheckTackle(this.gameObject, selectedPersonnage); } endMove: isMoving = false; GameManager.Instance.actualAction = PersoAction.isSelected; animator.ResetTrigger("Roule"); animator.SetTrigger("Idle"); CaseManager.Instance.StartCoroutine("ShowActions"); TurnManager.Instance.EnableFinishTurn(); }
// *************** // // ** Checkers ** // // *************** // public void CheckTackle(GameObject movingObj, PersoData shotingPersonnage = null) { // Vérifie si le personnage peut être taclé, et si c'est le cas, fait un test de chance pour savoir s'il est taclé Transform path = SelectionManager.Instance.selectedCase.transform; Player currentPlayer = TurnManager.Instance.currentPlayer; float xCaseOffset = CaseManager.Instance.xCaseOffset; float yCaseOffset = CaseManager.Instance.yCaseOffset; foreach (PersoData obj in RosterManager.Instance.listHeroPlaced) { if (movingObj != null && obj != shotingPersonnage) { if (obj != movingObj && Fonction.Instance.CheckAdjacent(obj.gameObject, movingObj.gameObject) == true) { int randomInt = UnityEngine.Random.Range(0, 100); switch (movingObj.name) { case ("Ballon"): path = movingObj.GetComponent <BallonData>().ballonCase.transform; StartCoroutine(TackleEffect(obj, path, GraphManager.Instance.getCaseOffset(obj.gameObject))); if (randomInt < 50) { Debug.Log("(Si inférieur à 51, il y a interception) " + randomInt + "/" + "100" + ": Interception SUCCESS"); GameManager.Instance.actualAction = PersoAction.isWaiting; movingObj.GetComponent <BallonData>().ChangeStatut(BallonStatut.isIntercepted); } break; default: if (obj.owner != currentPlayer) { StartCoroutine(TackleEffect(obj, path, GraphManager.Instance.getCaseOffset(obj.gameObject))); if (movingObj.GetComponent <PersoData>().weightType == obj.weightType) { if (randomInt < 50) { Debug.Log("(Même poids) (Si inférieur à 51 il y a tackle) " + randomInt + "/" + "100" + ": Tackle SUCCESS"); movingObj.GetComponent <PersoData>().isTackled = true; } else { Debug.Log("(Même poids) (Si inférieur à 51 il y a tackle) " + randomInt + "/" + "100" + ": Tackle FAILED"); } } else { if (randomInt < 25) { Debug.Log("(Poids différents) (Si inférieur à 26 il y a tackle) " + randomInt + "/" + "100" + ": Tackle SUCCESS"); movingObj.GetComponent <PersoData>().isTackled = true; } else { Debug.Log("(Poids différents) (Si inférieur à 26 il y a tackle) " + randomInt + "/" + "100" + ": Tackle FAILED"); } } } break; } } } } }
// *************** // // ** Actions ** // // *************** // public IEnumerator ShowActions() { // Affiche en violet les actions possible par le joueur. yield return(new WaitForEndOfFrame()); Player currentPlayer = GameManager.Instance.currentPlayer; Phase currentPhase = GameManager.Instance.currentPhase; Color actionPreColor = ColorManager.Instance.actionPreColor; PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage; Color selectedColor = ColorManager.Instance.selectedColor; switch (currentPhase) { case (Phase.Placement): break; case (Phase.Deplacement): foreach (GameObject caseCompared in listCase) { Color newColor = ColorManager.Instance.caseColor; if (!MenuContextuel.Instance.gameObject.activeInHierarchy) { PersoData persoCompared = caseCompared.GetComponent <CaseData>().personnageData; BallonData ballonCompared = caseCompared.GetComponent <CaseData>().ballon; if (persoCompared != null && persoCompared.GetComponent <PersoData>().owner == currentPlayer) { caseCompared.GetComponent <CaseData>().ChangeColor(Statut.isAllyPerso); } if (SelectionManager.Instance.selectedPersonnage != null) { if (persoCompared != null && persoCompared.GetComponent <PersoData>().owner != currentPlayer && Fonction.Instance.CheckAdjacent(persoCompared.gameObject, selectedPersonnage.gameObject) == true) { caseCompared.GetComponent <CaseData>().ChangeColor(Statut.canPunch); } if (ballonCompared != null && Fonction.Instance.CheckAdjacent(selectedPersonnage.gameObject, ballonCompared.gameObject) == true) { caseCompared.GetComponent <CaseData>().ChangeColor(Statut.canShot); //newColor = actionPreColor; } if (persoCompared == selectedPersonnage) { caseCompared.GetComponent <CaseData>().ChangeColor(Statut.isSelected); //newColor = selectedColor; } } // if (newColor != ColorManager.Instance.caseColor) // { // caseCompared.GetComponent<CaseData>().ChangeColor(newColor); // } } } break; } }