Files
match3-unity/Assets/Scripts/SC_Gem.cs

137 lines
5.0 KiB
C#

// using System.Collections;
// using System.Collections.Generic;
// using Enums;
// using UnityEngine;
//
// //This is a SINGULAR gem
// public class SC_Gem : MonoBehaviour
// {
// [HideInInspector]
// public Vector2Int posIndex;
//
// private Vector2 firstTouchPosition;
// private Vector2 finalTouchPosition;
// private bool mousePressed;
// private float swipeAngle = 0;
// private SC_Gem otherGem;
//
// public GemType type;
// public bool isMatch = false;
// private Vector2Int previousPos;
// public GameObject destroyEffect;
// public int scoreValue = 10;
//
// public int blastSize = 1;
// private SC_GameLogic scGameLogic;
//
// void Update()
// {
// //if the current position doesnt match the index in GameBoard, animate it to move to the correct position
// //else, we update the GameBoard with the current possition, do we need this every frame????
// if (Vector2.Distance(this.transform.position, this.posIndex) > 0.01f)
// this.transform.position = Vector2.Lerp(this.transform.position, this.posIndex, SC_GameVariables.Instance.gemSpeed * Time.deltaTime);
// else
// {
// this.transform.position = new Vector3(this.posIndex.x, this.posIndex.y, 0);
// this.scGameLogic.SetGem(this.posIndex.x, this.posIndex.y, this);
// }
//
// if (this.mousePressed && Input.GetMouseButtonUp(0))
// {
// this.mousePressed = false;
// if (this.scGameLogic.CurrentState == GameState.Move)
// {
// this.finalTouchPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
// CalculateAngle();
// }
// }
// }
//
// public void SetupGem(SC_GameLogic _ScGameLogic,Vector2Int _Position)
// {
// this.posIndex = _Position;
// this.scGameLogic = _ScGameLogic;
// }
//
// private void OnMouseDown()
// {
// if (this.scGameLogic.CurrentState == GameState.Move)
// {
// this.firstTouchPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
// this.mousePressed = true;
// }
// }
//
// private void CalculateAngle()
// {
// this.swipeAngle = Mathf.Atan2(this.finalTouchPosition.y - this.firstTouchPosition.y, this.finalTouchPosition.x - this.firstTouchPosition.x);
// this.swipeAngle = this.swipeAngle * 180 / Mathf.PI;
//
// if (Vector3.Distance(this.firstTouchPosition, this.finalTouchPosition) > .5f)
// MovePieces();
// }
//
// private void MovePieces()
// {
// this.previousPos = this.posIndex;
//
// if (this.swipeAngle < 45 && this.swipeAngle > -45 && this.posIndex.x < SC_GameVariables.Instance.rowsSize - 1)
// {
// this.otherGem = this.scGameLogic.GetGem(this.posIndex.x + 1, this.posIndex.y);
// this.otherGem.posIndex.x--;
// this.posIndex.x++;
//
// }
// else if (this.swipeAngle > 45 && this.swipeAngle <= 135 && this.posIndex.y < SC_GameVariables.Instance.colsSize - 1)
// {
// this.otherGem = this.scGameLogic.GetGem(this.posIndex.x, this.posIndex.y + 1);
// this.otherGem.posIndex.y--;
// this.posIndex.y++;
// }
// else if (this.swipeAngle < -45 && this.swipeAngle >= -135 && this.posIndex.y > 0)
// {
// this.otherGem = this.scGameLogic.GetGem(this.posIndex.x, this.posIndex.y - 1);
// this.otherGem.posIndex.y++;
// this.posIndex.y--;
// }
// else if (this.swipeAngle > 135 || this.swipeAngle < -135 && this.posIndex.x > 0)
// {
// this.otherGem = this.scGameLogic.GetGem(this.posIndex.x - 1, this.posIndex.y);
// this.otherGem.posIndex.x++;
// this.posIndex.x--;
// }
//
// this.scGameLogic.SetGem(this.posIndex.x, this.posIndex.y, this);
// this.scGameLogic.SetGem(this.otherGem.posIndex.x, this.otherGem.posIndex.y, this.otherGem);
//
// StartCoroutine(CheckMoveCo());
// }
//
// public IEnumerator CheckMoveCo()
// {
// this.scGameLogic.SetState(GameState.Wait);
//
// yield return new WaitForSeconds(.5f);
// this.scGameLogic.FindAllMatches();
//
// if (this.otherGem != null)
// {
// if (this.isMatch == false && this.otherGem.isMatch == false)
// {
// this.otherGem.posIndex = this.posIndex;
// this.posIndex = this.previousPos;
//
// this.scGameLogic.SetGem(this.posIndex.x, this.posIndex.y, this);
// this.scGameLogic.SetGem(this.otherGem.posIndex.x, this.otherGem.posIndex.y, this.otherGem);
//
// yield return new WaitForSeconds(.5f);
// this.scGameLogic.SetState(GameState.Move);
// }
// else
// {
// this.scGameLogic.DestroyMatches();
// }
// }
// }
// }