void Update() { Cell c = default; if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1)) { var v3 = Input.mousePosition; v3 = Camera.main.ScreenToWorldPoint(v3); int x, y; x = (int)Math.Truncate(v3.x); y = (int)Math.Truncate(v3.y); if (isInBound(x, y)) { c = cells[x, y].GetComponent <Cell>(); if (Input.GetButtonDown("Fire1")) { if (!gameLost) { if (isFirstClick) { firstClick(c); isFirstClick = false; } c.Reveal(); if (Grid.gameLost) // La cellule rélévé nous à fait perdre { GameManager.instance.notifyLoose(GameEndReason.MINED); } } if (debug) { c.infoDebug(); } } if (Input.GetButtonDown("Fire2")) { if (!gameLost) { Trulean isNowFlagged = c.FlagCell(); updateFlagCount(isNowFlagged, c); } } if ((Input.GetKey(KeyCode.LeftControl)) && Input.GetButtonDown("Fire1")) { chordClick(c); } } } }
/* Deflag si flag il y a, flag si neni flag n'y est * Renvoie vrai si il y a désormais un flag * Renvoie faux si il n'y en a plus */ public Trulean FlagCell() { Trulean res = Trulean.NA; // Test si on peut isFlag. On peut que si c'est pas encore revelé if (!isRevealed) { if (isFlag) { GetComponent <SpriteRenderer>().sprite = sprites[11]; // J'ai honte mais Martin à dit ok res = Trulean.False; } else { GetComponent <SpriteRenderer>().sprite = sprites[9]; res = Trulean.True; } isFlag = !isFlag; } return(res); }
/* * c.isMine + isNowFlagged ? correct flag++ * c.isMine + !isNowFlagged ? correct flag-- * !c.isMine + isNowFlagged ? wrong flag++ * !c.isMine + !isNowFlagged ? correct flag-- */ private void updateFlagCount(Trulean isNowFlagged, Cell c) { if (isNowFlagged == Trulean.NA) { Debug.Log("Rien à faire ici"); } if (c.isMine && isNowFlagged == Trulean.True) { correctFlags++; } if (c.isMine && isNowFlagged == Trulean.False) { correctFlags--; } if (!c.isMine && isNowFlagged == Trulean.True) { wrongFlags++; } if (!c.isMine && isNowFlagged == Trulean.False) { wrongFlags--; } }