Esempio n. 1
0
 private void Drag(PipeSlot pipeSlot)
 {
     if (draggableObject.enabled)
     {
         draggableObject.transform.position = Input.mousePosition;
     }
 }
Esempio n. 2
0
    private void Drop(PipeSlot pipeSlot)
    {
        Pipe draggedPipe = draggedSlot.Pipe;

        if (draggedSlot.canDrag && pipeSlot.canDrag)
        {
            draggedSlot.Pipe = pipeSlot.Pipe;
            pipeSlot.Pipe    = draggedPipe;
        }
    }
Esempio n. 3
0
 private void BeginDrag(PipeSlot pipeSlot)
 {
     if (pipeSlot.Pipe != null && pipeSlot.canDrag)
     {
         draggedSlot                        = pipeSlot;
         draggableObject.sprite             = pipeSlot.Pipe.Icon;
         draggableObject.transform.position = Input.mousePosition;
         draggableObject.enabled            = true;
     }
 }
Esempio n. 4
0
 private void EndDrag(PipeSlot pipeSlot)
 {
     draggedSlot             = null;
     draggableObject.enabled = false;
 }
Esempio n. 5
0
 private void Update()
 {
     waitingTime -= Time.deltaTime;
     if (isDone && waitingTime <= -1.0f)
     {
         if (fail)
         {
             SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
         }
         else
         {
             SceneManager.LoadScene("Level_tutorial");
         }
     }
     recentSlot         = pipeSlots[i];
     recentSlot.canDrag = false;
     recentPipe         = pipeSlots[i].Pipe;
     animationTimer    += Time.deltaTime;
     AnimateTile(recentSlot, recentPipe);
     targetTime -= Time.deltaTime;
     if (targetTime <= 0.0f && !isDone)
     {
         currentTile    = 0;
         animationTimer = 0.0f;
         try
         {
             //Check if there's connection to the right
             if ((recentPipe.right && (i + 1) % 8 != 7 && pipeSlots[i + 1].Pipe.left && !cameFrom.Equals("right")))
             {
                 i       += 1;
                 cameFrom = "left";
                 Debug.Log("ide w prawo");
             }
             //Check if there's connection to the top
             else if (recentPipe.top && i - 8 > 0 && pipeSlots[i - 8].Pipe.bot && !cameFrom.Equals("top"))
             {
                 i       -= 8;
                 cameFrom = "bot";
                 Debug.Log("ide do gory");
             }
             //Check if there's connection to the left
             else if (recentPipe.left && (i - 1) % 8 >= 0 && pipeSlots[i - 1].Pipe.right && !cameFrom.Equals("left"))
             {
                 i       -= 1;
                 cameFrom = "right";
                 Debug.Log("ide w lewo");
             }
             //Check if there's connection to the down
             else if (recentPipe.bot && i + 8 < pipeSlots.Length && pipeSlots[i + 8].Pipe.top && !cameFrom.Equals("bot"))
             {
                 i       += 8;
                 cameFrom = "top";
                 Debug.Log("ide w dol.");
             }
             //implementation of edge case
             else if (recentPipe.right && i == 38 && pipeSlots[i + 1].Pipe.left)
             {
                 recentPipe = pipeSlots[i + 1].Pipe;
                 i         += 1;
                 Debug.Log("ide w prawo");
             }
             else
             {
                 isDone      = true;
                 waitingTime = 0.0f;
                 fail        = true;
                 tryAgainText.SetActive(true);
                 Debug.Log("Przegrales");
             }
             targetTime += 3.0f;
         }
         catch (Exception)
         {
             isDone      = true;
             waitingTime = 0.0f;
             fail        = true;
             tryAgainText.SetActive(true);
             Debug.Log("Przegrales");
         }
         if (i == pipeSlots.Length - 1)
         {
             waitingTime = 0.0f;
             Debug.Log("Finally");
             isDone = true;
         }
     }
 }
Esempio n. 6
0
    private void AnimateTile(PipeSlot pipeSlot, Pipe pipe)
    {
        if (targetTime <= -500.0f)
        {
            pipeSlot.Image.sprite = pipe.frameArrayDefault[pipe.frameArrayDefault.Length - 1];
        }
        else if (animationTimer >= targetTime / pipe.frameArrayDefault.Length && currentTile < pipe.frameArrayDefault.Length)
        {
            animationTimer -= targetTime / pipe.frameArrayDefault.Length;
            //right & bot;
            if (pipe.bot && pipe.right)
            {
                if (cameFrom.Equals("bot"))
                {
                    pipeSlot.Image.sprite = pipe.frameArrayDefault[currentTile];
                }
                else
                {
                    pipeSlot.Image.sprite = pipe.frameArrayInverted[currentTile];
                }
            }

            //right & top
            else if (pipe.right && pipe.top)
            {
                if (cameFrom.Equals("top"))
                {
                    pipeSlot.Image.sprite = pipe.frameArrayDefault[currentTile];
                }
                else
                {
                    pipeSlot.Image.sprite = pipe.frameArrayInverted[currentTile];
                }
            }

            //left & bot
            else if (pipe.left && pipe.bot)
            {
                if (cameFrom.Equals("left"))
                {
                    pipeSlot.Image.sprite = pipe.frameArrayDefault[currentTile];
                }
                else
                {
                    pipeSlot.Image.sprite = pipe.frameArrayInverted[currentTile];
                }
            }

            //left & top
            else if (pipe.left && pipe.top)
            {
                if (cameFrom.Equals("top"))
                {
                    pipeSlot.Image.sprite = pipe.frameArrayDefault[currentTile];
                }
                else
                {
                    pipeSlot.Image.sprite = pipe.frameArrayInverted[currentTile];
                }
            }

            //top & bot, left & right
            else if (((pipe.left && pipe.right) || (pipe.top && pipe.bot)))
            {
                if (cameFrom.Equals("left") || cameFrom.Equals("top") || cameFrom.Equals("null"))
                {
                    pipeSlot.Image.sprite = pipe.frameArrayDefault[currentTile];
                }
                else
                {
                    pipeSlot.Image.sprite = pipe.frameArrayInverted[currentTile];
                }
            }

            currentTile++;
        }
    }