using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEngine.UI;
public class TouchManager : MonoBehaviour
{
[SerializeField] private Transform column1;
[SerializeField] private Transform column2;
[SerializeField] private Transform column3;
[SerializeField] private Transform column4;
[SerializeField] private Cell cellOnOneField1;
[SerializeField] private Cell cellOnOneField2;
[SerializeField] private Cell cellOnOneField3;
[SerializeField] private Cell cellOnOneField4;
[SerializeField] private Cell2 cellOnTwoField1;
[SerializeField] private Cell2 cellOnTwoField2;
[SerializeField] private Cell2 cellOnTwoField3;
[SerializeField] private Cell2 cellOnTwoField4;
[SerializeField] UnityEngine.UI.Button switchButton;
[SerializeField] private GameObject fallingItemAnim1;
[SerializeField] private AudioSource audioSource;
[SerializeField] private AudioClip boneClip;
[SerializeField] private bool touchLock;
void Update()
{
if (cellOnOneField1.ItemInCell == null || cellOnOneField2.ItemInCell == null
|| cellOnOneField3.ItemInCell == null || cellOnOneField4.ItemInCell == null)
{
switchButton.interactable = false;
touchLock = true;
}
else
{
switchButton.interactable = true;
touchLock = false;
}
if (Input.GetMouseButtonUp(0) && !touchLock)
{
Physics2D.queriesHitTriggers = false;
Vector2 touchPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D rayHit = Physics2D.Raycast(touchPos, Vector2.zero);
if (rayHit.collider != null)
{
if (rayHit.collider.GetComponent<Cell>())
{
if (rayHit.collider.GetComponent<Cell>().ItemInCell != null)
{
if (rayHit.collider.GetComponent<Cell>().columnId == 1)
{
if (cellOnTwoField1.ItemInCell == null)
{
GameObject fi = Instantiate(fallingItemAnim1);
fi.transform.position = rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position;
if (rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite != null)
{
fi.GetComponentInChildren<SpriteRenderer>().sprite =
rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite.GetComponent<SpriteRenderer>().sprite;
}
Destroy(fi, 1f);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position = column1.transform.position;
rayHit.collider.GetComponent<Cell>().ItemInCell.OnTwoPanel = true;
}
else
{
GameManager.Instance.GameOverCheck();
if (!rayHit.collider.GetComponent<Cell>().endCell)
{
audioSource.PlayOneShot(boneClip);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.GetComponent<Animator>().Play("TickleAnim");
}
}
}
if (rayHit.collider.GetComponent<Cell>().columnId == 2)
{
if (cellOnTwoField2.ItemInCell == null)
{
GameObject fi = Instantiate(fallingItemAnim1);
fi.transform.position = rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position;
if (rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite != null)
{
fi.GetComponentInChildren<SpriteRenderer>().sprite =
rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite.GetComponent<SpriteRenderer>().sprite;
}
Destroy(fi, 1f);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position = column2.transform.position;
rayHit.collider.GetComponent<Cell>().ItemInCell.OnTwoPanel = true;
}
else
{
GameManager.Instance.GameOverCheck();
if (!rayHit.collider.GetComponent<Cell>().endCell)
{
audioSource.PlayOneShot(boneClip);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.GetComponent<Animator>().Play("TickleAnim");
}
}
}
if (rayHit.collider.GetComponent<Cell>().columnId == 3)
{
if (cellOnTwoField3.ItemInCell == null)
{
GameObject fi = Instantiate(fallingItemAnim1);
fi.transform.position = rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position;
if (rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite != null)
{
fi.GetComponentInChildren<SpriteRenderer>().sprite =
rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite.GetComponent<SpriteRenderer>().sprite;
}
Destroy(fi, 1f);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position = column3.transform.position;
rayHit.collider.GetComponent<Cell>().ItemInCell.OnTwoPanel = true;
}
else
{
GameManager.Instance.GameOverCheck();
if (!rayHit.collider.GetComponent<Cell>().endCell)
{
audioSource.PlayOneShot(boneClip);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.GetComponent<Animator>().Play("TickleAnim");
}
}
}
if (rayHit.collider.GetComponent<Cell>().columnId == 4)
{
if (cellOnTwoField4.ItemInCell == null)
{
GameObject fi = Instantiate(fallingItemAnim1);
fi.transform.position = rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position;
if (rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite != null)
{
fi.GetComponentInChildren<SpriteRenderer>().sprite =
rayHit.collider.GetComponent<Cell>().ItemInCell.itemSprite.GetComponent<SpriteRenderer>().sprite;
}
Destroy(fi, 1f);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.position = column4.transform.position;
rayHit.collider.GetComponent<Cell>().ItemInCell.OnTwoPanel = true;
}
else
{
GameManager.Instance.GameOverCheck();
if (!rayHit.collider.GetComponent<Cell>().endCell)
{
audioSource.PlayOneShot(boneClip);
rayHit.collider.GetComponent<Cell>().ItemInCell.transform.GetComponent<Animator>().Play("TickleAnim");
}
}
}
}
}
}
}
}
}