Esempio n. 1
0
        /// <summary>
        /// Méthode qui permet de déterminer ce qui se passe lorsqu'un personnage est sélectionné ou s'il
        /// vient d'être relâché. Elle indique le déplacement restant au personnage.
        /// </summary>
        /// <param name="déplacement_maximal">Le déplacement maximal permis pour le personnage</param>
        /// <param name="indice">L'indice du personnage</param>
        /// <returns>un float qui indique le déplacement restant</returns>
        public float DéterminerMouvementPersonnageSélectionné(float déplacement_maximal, int indice)
        {
            float déplacement_restant = déplacement_maximal;

            if (PersonnageSélectionné)
            {
                if (EstAncienClicGauche())
                {
                    Vector3 positionVouluePersonnage = GetPositionSourisPlan();
                    positionVouluePersonnage = VérifierDéplacementMAX(positionVouluePersonnage, PositionInitialePersonnage, déplacement_maximal);
                    positionVouluePersonnage = VérifierDéplacementCollisionPersonnage(positionVouluePersonnage, indice);
                    _managerNetwork.SendNewPosition(positionVouluePersonnage, _managerNetwork.JoueurLocal.Personnages.FindIndex(p => p.GetType() == PersonnageChoisi.GetType()));
                }
                if (EstReleasedClicGauche())
                {
                    déplacement_restant   = déplacement_maximal - Vector3.Distance(PositionInitialePersonnage, PersonnageChoisi.Position);
                    PersonnageSélectionné = false;
                    PersonnageChoisi      = null;
                }
            }
            return(déplacement_restant);
        }