// Update is called once per frame void Update() { if (Time.time > cooldownRecorded) { cooldownRecorded = Time.time + cooldownDelay; if (Input.GetKey("space") && Input.GetKey("d") || Input.GetKey("space") && Input.GetKey("right")) { if (currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { Collider2D[] colliders = Physics2D.OverlapCircleAll(new Vector2(transform.position.x + 1, transform.position.y), 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } if (currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { Debug.Log("ate candy"); uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = 6; } } else if (Input.GetKey("space") && Input.GetKey("a") || Input.GetKey("space") && Input.GetKey("left")) { if (currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { Collider2D[] colliders = Physics2D.OverlapCircleAll(new Vector2(transform.position.x - 1, transform.position.y), 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } Debug.Log("eating left"); if (currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = 6; } } else if (Input.GetKey("space") && Input.GetKey("w") || Input.GetKey("space") && Input.GetKey("up")) { if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 4) { Collider2D[] colliders = Physics2D.OverlapCircleAll(new Vector2(transform.position.x, transform.position.y + 1), 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } Debug.Log("eating up"); if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] = 6; } } else if (Input.GetKey("space") && Input.GetKey("s") || Input.GetKey("space") && Input.GetKey("down")) { if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 6) { Collider2D[] colliders = Physics2D.OverlapCircleAll(new Vector2(transform.position.x, transform.position.y - 1), 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } Debug.Log("eating down"); if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] = 6; } } else if (Input.GetKey("d") || Input.GetKey("right")) { if (currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 7) { if (uiData.candyIAte >= uiData.candyINeed) { Debug.Log("game completed"); toggleEndScreen.Toggle(true); } } print("going right"); if (currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { if (currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x + 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = myType; currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = 6; transform.Translate(new Vector2(1, 0)); Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } if (transform.position.x - 1 < gridHandler.gridWidth - 8 && transform.position.x - 1 > 8) { mainCamera.transform.Translate(new Vector2(1, 0)); } } } else if (Input.GetKey("a") || Input.GetKey("left")) { if (currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 7) { if (uiData.candyIAte >= uiData.candyINeed) { Debug.Log("game completed"); toggleEndScreen.Toggle(true); } } print("going left"); if (currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { if (currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x - 1 + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = myType; currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = 6; transform.Translate(new Vector2(-1, 0)); Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } if (transform.position.x + 1 < gridHandler.gridWidth - 7 && transform.position.x + 1 > 9) { mainCamera.transform.Translate(new Vector2(-1, 0)); } } } else if (Input.GetKey("w") || Input.GetKey("up")) { if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 7) { if (uiData.candyIAte >= uiData.candyINeed) { Debug.Log("game completed"); toggleEndScreen.Toggle(true); } } print("going up"); if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 4) { if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) - 1) * gridHandler.gridWidth] = myType; currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = 6; transform.Translate(new Vector2(0, +1)); Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } if (transform.position.y - 1 < -4 && transform.position.y - 1 > -(currentLvlData.Count / gridHandler.gridWidth - 3)) { mainCamera.transform.Translate(new Vector2(0, 1)); } } } else if (Input.GetKey("s") || Input.GetKey("down")) { if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 7) { if (uiData.candyIAte >= uiData.candyINeed) { Debug.Log("game completed"); if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 7) { if (uiData.candyIAte >= uiData.candyINeed) { Debug.Log("game completed"); toggleEndScreen.Toggle(true); } } } } if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 6 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 0 || currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 4) { if (currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] == 4) { uiData.AddCandyIAte(); } currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y) + 1) * gridHandler.gridWidth] = myType; currentLvlData[(int)transform.position.x + ((int)Mathf.Abs(transform.position.y)) * gridHandler.gridWidth] = 6; transform.Translate(new Vector2(0, -1)); Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.1f); if (colliders.Length > 0) { foreach (var item in colliders) { Destroy(item.gameObject); } } if (transform.position.y + 1 < -3 && transform.position.y + 1 > -(currentLvlData.Count / gridHandler.gridWidth - 4)) { mainCamera.transform.Translate(new Vector2(0, -1)); } } } } if (Input.GetKey("r")) { RestartGame(); } }