Ejemplo n.º 1
0
    private void MakeGridChecks()
    {
        List <GameObject> markerList = new List <GameObject>(markers.Keys);

        foreach (GameObject markerObj in markerList)
        {
            Marker marker = markerObj.GetComponent <Marker>();
            int    check  = treeGrid.CheckNeighbors(markers[markerObj], marker);
            if (check != 0)
            {
                animationLock.Dec();
                markers.Remove(markerObj);
                Destroy(markerObj);

                if (!keyboardLock)
                {
                    keyboardLock = true;
                    if (!isFreeFall || stoppingFall)
                    {
                        stoppingFall        = false;
                        isFreeFall          = true;
                        freeFallStartTime   = Time.time;
                        freeFallStartHeight = currentHeight;
                    }
                }
            }
        }
    }
Ejemplo n.º 2
0
 private void DeleteAnimate(float time)
 {
     if (isWaiting)
     {
         if (time > endTime)
         {
             deleteCounter.Dec();
             Destroy(gameObject);
         }
     }
     else
     {
         float maxDepth = 0;
         foreach (GridSpline deletingBranch in branchesToDepths.Keys)
         {
             maxDepth = Mathf.Max(maxDepth, GetDepth(deletingBranch));
         }
         foreach (GridSpline deletingBranch in branchesToDepths.Keys)
         {
             float deleteStartTime = time +
                                     (maxDepth - GetDepth(deletingBranch)) / deleteSpeed;
             float deleteEndTime =
                 deleteStartTime + deletingBranch.cumulativeLengths[deletingBranch.cumulativeLengths.Count - 1]
                 / deleteSpeed;
             deletingBranch.Delete(deleteStartTime, deleteEndTime);
             endTime = Mathf.Max(endTime, deleteEndTime);
         }
         isWaiting = true;
     }
 }