Exemple #1
0
        /// <summary>
        /// Perform a swap of two divide soldiers.
        /// </summary>
        /// <param name="soldier1"></param>
        /// <param name="soldier2"></param>
        private void Swap(DivideSoldier soldier1, DivideSoldier soldier2)
        {
            // swap positions of soldiers
            var pos = soldier1.transform.position;

            soldier1.transform.position = soldier2.transform.position;
            soldier2.transform.position = pos;

            // deselect the soldiers in the swap
            soldier1.Deselect();
            soldier2.Deselect();

            // decrease number of swaps
            m_numberOfSwaps--;
            UpdateSwapText();

            // update solutions shown in drawer
            FindSolution();
        }
Exemple #2
0
 /// <summary>
 /// Handles a user click on the given soldier.
 /// Performs a swap if appropriate.
 /// </summary>
 /// <param name="soldier"></param>
 internal void HandleSoldierClick(DivideSoldier soldier)
 {
     if (selectedSoldier == null)
     {
         // select the clicked soldier
         selectedSoldier = soldier;
     }
     else if (selectedSoldier == soldier)
     {
         // deselect soldier that was clicked on twice
         soldier.Deselect();
         selectedSoldier = null;
     }
     else
     {
         // swap the previous selected soldier with current clicked soldier
         Swap(selectedSoldier, soldier);
         selectedSoldier = null;
     }
 }