Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Player_Pos : MonoBehaviour {
- public GameObject Pawn;
- public GameObject Cube;
- public GameObject Ind1;
- public GameObject Ind2;
- float x_value;
- float y_value;
- float z_value;
- float rot_cube = 90f;
- float x_rot_value;
- float y_rot_value;
- float z_rot_value;
- const float unit = 0.0225f;
- const float unit_otherstuff = 0.225f;
- float PawnChangeLocation;
- float PawnStrikeAnim;
- float PawnOriginalScale;
- int PawnFrames;
- private Queue<IEnumerator> ButtonPressesOrder = new Queue<IEnumerator>();
- private bool SthInQueue = false;
- private bool Stop = false;
- int maze_number;
- Vector3 PawnNewX;
- Vector3 PawnNewNX;
- Vector3 PawnNewY;
- Vector3 PawnNewNY;
- Vector3 PawnNewZ;
- Vector3 PawnNewNZ;
- public Vector3 Destination;
- public KMSelectable Forward;
- public KMSelectable Backward;
- public KMSelectable Right;
- public KMSelectable Left;
- public KMSelectable Up;
- public KMSelectable Down;
- Vector3 PawnLast;
- // Use this for initialization
- void Start () {
- readPawn();
- maze_number = Random.Range(1, 5);
- Debug.Log("You're on Maze ");
- if (maze_number == 1)
- {
- Ind1.transform.localPosition = new Vector3(Ind1.transform.localPosition.x + (2 * unit_otherstuff), Ind1.transform.localPosition.y - (3 * unit_otherstuff), Ind1.transform.localPosition.z + (4 * unit_otherstuff));
- Ind2.transform.localPosition = new Vector3(Ind2.transform.localPosition.x + (3 * unit_otherstuff), Ind2.transform.localPosition.y - (4 * unit_otherstuff), Ind2.transform.localPosition.z + (1 * unit_otherstuff));
- }
- else if (maze_number == 2)
- {
- Ind1.transform.localPosition = new Vector3(Ind1.transform.localPosition.x + (3 * unit_otherstuff), Ind1.transform.localPosition.y - (4 * unit_otherstuff), Ind1.transform.localPosition.z + (1 * unit_otherstuff));
- Ind2.transform.localPosition = new Vector3(Ind2.transform.localPosition.x + (1 * unit_otherstuff), Ind2.transform.localPosition.y - (2 * unit_otherstuff), Ind2.transform.localPosition.z + (3 * unit_otherstuff));
- }
- else if (maze_number == 3)
- {
- Ind1.transform.localPosition = new Vector3(Ind1.transform.localPosition.x + (4 * unit_otherstuff), Ind1.transform.localPosition.y - (2 * unit_otherstuff), Ind1.transform.localPosition.z + (3 * unit_otherstuff));
- Ind2.transform.localPosition = new Vector3(Ind2.transform.localPosition.x + (1 * unit_otherstuff), Ind2.transform.localPosition.y - (5 * unit_otherstuff), Ind2.transform.localPosition.z + (3 * unit_otherstuff));
- }
- else if (maze_number == 4)
- {
- Ind1.transform.localPosition = new Vector3(Ind1.transform.localPosition.x + (2 * unit_otherstuff), Ind1.transform.localPosition.y - (2 * unit_otherstuff), Ind1.transform.localPosition.z + (4 * unit_otherstuff));
- Ind2.transform.localPosition = new Vector3(Ind2.transform.localPosition.x + (1 * unit_otherstuff), Ind2.transform.localPosition.y - (3 * unit_otherstuff), Ind2.transform.localPosition.z + (4 * unit_otherstuff));
- }
- else
- {
- Ind1.transform.localPosition = new Vector3(Ind1.transform.localPosition.x + (1 * unit_otherstuff), Ind1.transform.localPosition.y - (2 * unit_otherstuff), Ind1.transform.localPosition.z + (3 * unit_otherstuff));
- Ind2.transform.localPosition = new Vector3(Ind2.transform.localPosition.x + (2 * unit_otherstuff), Ind2.transform.localPosition.y - (4 * unit_otherstuff), Ind2.transform.localPosition.z + (4 * unit_otherstuff));
- }
- x_value = Pawn.transform.localPosition.x + ((unit * Random.Range(1, 5)) - unit);
- y_value = Pawn.transform.localPosition.y - (unit * Random.Range(1, 5)) + unit;
- z_value = Pawn.transform.localPosition.z + (unit * Random.Range(1, 5)) - unit;
- x_rot_value = (Random.Range(0, 4) * rot_cube);
- y_rot_value = (Random.Range(0, 4) * rot_cube);
- z_rot_value = (Random.Range(0, 4) * rot_cube);
- Pawn.transform.localPosition = new Vector3(x_value, y_value, z_value);
- Cube.transform.eulerAngles = new Vector3(x_rot_value,y_rot_value,z_rot_value);
- Forward.OnInteract += delegate () { ButtonPressesOrder.Enqueue(MoveForward()); return false; };
- Backward.OnInteract += delegate () { ButtonPressesOrder.Enqueue(MoveBackward()); return false; };
- Left.OnInteract += delegate () { ButtonPressesOrder.Enqueue(MoveLeft()); return false; };
- Right.OnInteract += delegate () { ButtonPressesOrder.Enqueue(MoveRight()); return false; };
- Up.OnInteract += delegate () { ButtonPressesOrder.Enqueue(MoveUp()); return false; };
- Down.OnInteract += delegate () { ButtonPressesOrder.Enqueue(MoveDown()); return false; };
- }
- // Update is called once per frame
- void Update () {
- if (!SthInQueue && ButtonPressesOrder.Count>0)
- {
- IEnumerator Task = ButtonPressesOrder.Dequeue();
- SthInQueue = true;
- StartCoroutine(Task);
- }
- }
- IEnumerator MoveForward()
- {
- readPawn();
- if (!(Pawn.transform.localPosition.y <= 0.0265f))
- {
- while (!(Pawn.transform.localPosition == PawnNewY) && !(Stop))
- {
- yield return null;
- PawnChangeLocation = Pawn.transform.localPosition.y - (0.05f * unit);
- Pawn.transform.localPosition = new Vector3(Pawn.transform.localPosition.x, PawnChangeLocation, Pawn.transform.localPosition.z);
- }
- Debug.Log("Go Forward");
- }
- else
- {
- GetComponent<KMBombModule>().HandleStrike();
- }
- SthInQueue = false;
- }
- IEnumerator MoveBackward()
- {
- readPawn();
- if(!(Pawn.transform.localPosition.y >= 0.1165f))
- {
- while (!(Pawn.transform.localPosition == PawnNewNY) && !(Stop))
- {
- yield return null;
- PawnChangeLocation = Pawn.transform.localPosition.y + (0.05f * unit);
- Pawn.transform.localPosition = new Vector3(Pawn.transform.localPosition.x, PawnChangeLocation, Pawn.transform.localPosition.z);
- }
- Debug.Log("Go Backward");
- }
- else
- {
- GetComponent<KMBombModule>().HandleStrike();
- }
- SthInQueue = false;
- }
- IEnumerator MoveUp()
- {
- readPawn();
- if (!(Pawn.transform.localPosition.z >= 0.0698f))
- {
- while (!(Pawn.transform.localPosition == PawnNewZ) && !(Stop))
- {
- yield return null;
- PawnChangeLocation = Pawn.transform.localPosition.z + (0.05f * unit);
- Pawn.transform.localPosition = new Vector3(Pawn.transform.localPosition.x, Pawn.transform.localPosition.y, PawnChangeLocation);
- }
- Debug.Log("Go Up");
- }
- else
- {
- GetComponent<KMBombModule>().HandleStrike();
- }
- SthInQueue = false;
- }
- IEnumerator MoveDown()
- {
- readPawn();
- if (!(Pawn.transform.localPosition.z <= -0.0202f))
- {
- while (!(Pawn.transform.localPosition == PawnNewNZ) && !(Stop))
- {
- yield return null;
- PawnChangeLocation = Pawn.transform.localPosition.z - (0.05f * unit);
- Pawn.transform.localPosition = new Vector3(Pawn.transform.localPosition.x, Pawn.transform.localPosition.y, PawnChangeLocation);
- }
- Debug.Log("Go Down");
- }
- else
- {
- GetComponent<KMBombModule>().HandleStrike();
- }
- SthInQueue = false;
- }
- IEnumerator MoveLeft()
- {
- readPawn();
- if (!(Pawn.transform.localPosition.x <= -0.0662f))
- {
- while (!(Pawn.transform.localPosition == PawnNewNX) && !(Stop))
- {
- yield return null;
- PawnChangeLocation = Pawn.transform.localPosition.x - (0.05f * unit);
- Pawn.transform.localPosition = new Vector3(PawnChangeLocation, Pawn.transform.localPosition.y, Pawn.transform.localPosition.z);
- }
- Debug.Log("Go Left");
- }
- else
- {
- GetComponent<KMBombModule>().HandleStrike();
- }
- SthInQueue = false;
- }
- IEnumerator MoveRight()
- {
- readPawn();
- if (!(Pawn.transform.localPosition.x >= 0.0238f))
- {
- while (!(Pawn.transform.localPosition == PawnNewX) && !(Stop))
- {
- yield return null;
- PawnChangeLocation = Pawn.transform.localPosition.x + (0.05f * unit);
- Pawn.transform.localPosition = new Vector3(PawnChangeLocation, Pawn.transform.localPosition.y, Pawn.transform.localPosition.z);
- }
- Debug.Log("Go Right");
- }
- else
- {
- GetComponent<KMBombModule>().HandleStrike();
- }
- SthInQueue = false;
- }
- void readPawn()
- {
- PawnLast = Pawn.transform.localPosition;
- PawnNewX = new Vector3(Pawn.transform.localPosition.x + unit, Pawn.transform.localPosition.y, Pawn.transform.localPosition.z);
- PawnNewNX = new Vector3(Pawn.transform.localPosition.x - unit, Pawn.transform.localPosition.y, Pawn.transform.localPosition.z);
- PawnNewY = new Vector3(Pawn.transform.localPosition.x, Pawn.transform.localPosition.y - unit, Pawn.transform.localPosition.z);
- PawnNewNY = new Vector3(Pawn.transform.localPosition.x, Pawn.transform.localPosition.y + unit, Pawn.transform.localPosition.z);
- PawnNewZ = new Vector3(Pawn.transform.localPosition.x, Pawn.transform.localPosition.y, Pawn.transform.localPosition.z + unit);
- PawnNewNZ = new Vector3(Pawn.transform.localPosition.x, Pawn.transform.localPosition.y, Pawn.transform.localPosition.z - unit);
- }
- private void OnTriggerEnter(Collider other)
- {
- if (other.tag == "Wall")
- {
- Stop = true;
- Debug.Log("You hit a wall");
- HandleStrike();
- }
- }
- private void HandleStrike()
- {
- GetComponent<KMBombModule>().HandleStrike();
- Pawn.transform.position = PawnLast;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement