public void recomputePossibleActionsIHM(bool onlyIfNeeded, bool clearTargets) { gManager.resetPartialMoveFlags(); if (GetComponent <TokenIHM>().moveTargets.Count > 0) { CibleDeplacement target = moveTargets[moveTargets.Count - 1].GetComponent <CibleDeplacement>(); if (!onlyIfNeeded || target.nbDeplacementRestant > 0) { if (clearTargets) { moveTargets.Clear(); moveTargets.Add(target.gameObject); associatedCharacter.deplacementRestant = target.nbDeplacementRestant; } associatedCharacter.computePossibleActions(target.caseAssociated.GetComponent <CaseBehavior>()); } } else { Debug.Assert(!clearTargets, "There should be at least one target remaining if clearTargets is required"); associatedCharacter.computePossibleActions(); // current cell } }