//Collisions void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Door") { door = collision.gameObject.GetComponent <DoorBehavior>(); doorTimer = Time.time + doorWait; stop = false; } }
void OnTriggerExit2D(Collider2D collision) { if (collision.gameObject.tag == "Door") { door = null; doorTimer = -2f; stop = true; } }
public void CloseDoor() { DoorBehavior door = gameObject.GetComponentInParent <DoorBehavior>(); if (door != null) { door.setStateLockDoor(false); } }
private void addDoor(DoorBehavior door, List <DoorBehavior> list) { if (door.isOpenable && door.gameObject.activeInHierarchy) { list.Add(door); } if (openFrames != -1) { door.FramesToStayOpen = openFrames; } }
void FixedUpdate() { device = SteamVR_Controller.Input((int)trackedObject.index); // Grab animation and sound if (!isGrabbing && device.GetTouch(triggerButton)) { isGrabbing = true; Instantiate(grabSound, transform.position, new Quaternion()); handAnimator.SetTrigger("Grab"); } // Release animation, play, sound, and release object if (isGrabbing && device.GetTouchUp(triggerButton)) { isGrabbing = false; Instantiate(releaseSound, transform.position, new Quaternion()); handAnimator.SetTrigger("Release"); isGrabbing = false; if (grabbedObject != null) { if (grabbedObject.name.Contains("door") || grabbedObject.name.Contains("lamp_head")) { DoorBehavior doorScript = grabbedObject.GetComponent <DoorBehavior> (); doorScript.ReleaseDoor(); grabbedObject = null; } else { grabbedObject.transform.SetParent(null); Rigidbody rb = grabbedObject.GetComponent <Rigidbody> (); rb.isKinematic = false; tossObject(rb); grabbedObject = null; } } } // Haptics based on animation state AnimatorStateInfo animState = handAnimator.GetCurrentAnimatorStateInfo(0); if (animState.IsName("Grab") || animState.IsName("Release")) { device.TriggerHapticPulse(pulsePower); } // Reset scene if (device.GetPressUp(SteamVR_Controller.ButtonMask.Touchpad)) { SceneManager.LoadScene("Main"); } }
void OnControllerColliderHit(ControllerColliderHit hit) { //Debug.Log(hit.gameObject.tag); if (hit.gameObject.tag == "Door") { DoorBehavior doorBehavior = hit.gameObject.GetComponent <DoorBehavior>(); if (!doorBehavior.isOpen) { doorBehavior.OpenDoor(); } } }
void OnTriggerStay(Collider col) { if (device == null) { return; } // Grab a single object if (device.GetTouch(triggerButton) && (col.attachedRigidbody != null) && (grabbedObject == null)) { if (!col.attachedRigidbody.isKinematic) { grabbedObject = col.gameObject; Debug.Log("grabbedObject: " + grabbedObject.name); col.attachedRigidbody.isKinematic = true; grabbedObject.transform.SetParent(gameObject.transform); TriggerAudio grabbedTriggerScript = grabbedObject.GetComponent <TriggerAudio> (); if (grabbedTriggerScript != null) { grabbedTriggerScript.MakeContact(); } } else if (col.gameObject.name.Contains("door") || col.gameObject.name.Contains("lamp_head")) { grabbedObject = col.gameObject; Debug.Log("grabbedObject: " + grabbedObject.name); DoorBehavior doorScript = grabbedObject.GetComponent <DoorBehavior>(); doorScript.GrabDoor(gameObject); } } // // Release/toss an object // if ((col.gameObject == grabbedObject) && device.GetTouchUp (triggerButton)) { // // if (grabbedObject.name.Contains ("door")) { // DoorBehavior doorScript = grabbedObject.GetComponent<DoorBehavior>(); // doorScript.ReleaseDoor (); // grabbedObject = null; // } else { // grabbedObject.transform.SetParent (null); // col.attachedRigidbody.isKinematic = false; // tossObject (col.attachedRigidbody); // grabbedObject = null; // } // } }
//Update Event void Update() { bool[] controls = getControls(); if (doorTimer != -2f) { doorTimer -= Time.time; } //Movement velocity.x = 0f; if (can_move) { //Jump if (controls[4]) { if (doorTimer < 0 && doorTimer != -2f && !stop) { transform.position = door.findDoor(); doorTimer = -2f; door = null; stop = true; } else { if (canJump) { jump_force = jump; canJump = false; } } } //Move Left and Right if (controls[1]) { //Left velocity.x = -spd; } else if (controls[3]) { //Right velocity.x = spd; } } }
public bool ToggleSwitch() { if (timer <= 0) { foreach (GameObject go in doors) { //toggle DoorBehavior d = go.GetComponent <DoorBehavior>(); if (d != null) { d.ToggleDoors(); } } myAnim.SetTrigger("Toggle"); timer = cooldown; return(true); } return(false); }
private void OnTriggerEnter2D(Collider2D collision) { if ("Teleport".Equals(collision.gameObject.tag)) { DoorBehavior door = collision.gameObject.GetComponent <DoorBehavior>(); transform.position = door.getNewLocation(); } else if ("InvItem".Equals(collision.gameObject.tag)) { InvItemBehavior item = collision.gameObject.GetComponent <InvItemBehavior>(); if (collision.gameObject.name == "MapPillBottle") { item.pickUp("pillBottle"); } else if (collision.gameObject.name == "CureList") { item.pickUp("cureList"); } else if (collision.gameObject.name == "Ingredient1") { item.pickUp("ingredient1"); } else if (collision.gameObject.name == "Ingredient2") { item.pickUp("ingredient2"); } else if (collision.gameObject.name == "Ingredient3") { item.pickUp("ingredient3"); } else if (collision.gameObject.name == "Ingredient4") { item.pickUp("ingredient4"); } Debug.Log("Got an inventory item"); } else { Debug.Log("(PLAYER): Warning, collided with untagged object"); } }
//Init Event void Awake() { //General gameObject.tag = "Player"; gameObject.AddComponent <PixelSnap>(); sr = GetComponent <SpriteRenderer>(); rb = GetComponent <Rigidbody2D>(); //Settings spd = 10f; jump = 3500f; gravity = 150f; //Variables can_move = true; jump_force = 0f; velocity = Vector2.zero; door = null; }
//Init protected override void init() { base.init(); zombie = true; behavior = "normal"; if (zombie) { gameObject.tag = "Zombie"; } else { gameObject.tag = "Human"; } door_found = false; door_move = false; door = null; level = LevelManager.instance.getLevelNum(transform.position.y); }
private void OnTriggerEnter2D(Collider2D collision) { if ("Teleport".Equals(collision.gameObject.tag)) { DoorBehavior door = collision.gameObject.GetComponent <DoorBehavior>(); if (!door.isLocked) { transform.position = door.getNewLocation(); } else { Debug.Log("The door is locked!"); } if (door.isUnlockTrigger) { door.unlockOtherDoor(); Debug.Log("Unlocked Other Door(s)!"); } } else if ("InvItem".Equals(collision.gameObject.tag)) { InvItemBehavior item = collision.gameObject.GetComponent <InvItemBehavior>(); if (collision.gameObject.name == "MapPillBottle") { item.pickUp("pillBottle"); DialogueBox.QueueDialogue(new KeyValuePair <int, string>(5, "\"What’s this? A pill bottle? Prescription from Fairview Hospital . . . take as needed for the Turning.\"")); DialogueBox.QueueDialogue(new KeyValuePair <int, string>(3, "*Click the bottle in your inventory to take a pill.*")); } else if (collision.gameObject.name == "CureList") { item.pickUp("cureList"); List.pickedUp = true; } else if (item.puzzle != null) { SceneMan.ActivatePuzzle(item.puzzle); } if (collision.gameObject.name == "Ingredient1") { FreezePlayer.Instance.puzzleIsOpen = true; item.pickUp("ingredient1"); } else if (collision.gameObject.name == "Ingredient2") { FreezePlayer.Instance.puzzleIsOpen = true; item.pickUp("ingredient2"); } else if (collision.gameObject.name == "Ingredient3") { FreezePlayer.Instance.puzzleIsOpen = true; item.pickUp("ingredient3"); } else if (collision.gameObject.name == "Ingredient4") { item.pickUp("ingredient4"); } //Debug.Log("Got an inventory item"); } else if ("LabBench".Equals(collision.gameObject.tag)) { bench.makeCure(); } else if ("Exit".Equals(collision.gameObject.tag)) { ExitDoorBehavior door = collision.gameObject.GetComponent <ExitDoorBehavior>(); if (!door.isLocked) { SceneManager.LoadScene("WinMenu"); } } else { Debug.Log("(PLAYER): Notice- Collided with object with unprocessed tag. Object Name: \"" + collision.gameObject.name + "\" Object Tag: \"" + collision.gameObject.tag + "\""); } }
//Update protected override void step() { base.step(); //Movement Vector2 velocity = Vector2.zero; if (zombie == true) { //Check for Player or Humans GameObject player = GameObject.FindGameObjectWithTag("Player"); List <GameObject> humans = new List <GameObject>(GameObject.FindGameObjectsWithTag("Human")); humans.Add(player); bool near = false; Vector2 near_pos = Vector2.zero; Vector2 target_pos = Vector2.zero; for (int i = 0; i < humans.Count; i++) { if (Vector2.Distance(humans[i].transform.position, transform.position) <= aware_r) { near = true; near_pos = humans[i].transform.position; break; } } //Move towards Door or Humans if (near) { target_pos = near_pos; } else { if (!door_found) { GameObject[] doors = GameObject.FindGameObjectsWithTag("Door"); List <DoorBehavior> up_doors = new List <DoorBehavior>(); for (int i = 0; i < doors.Length; i++) { if (level == LevelManager.instance.getLevelNum(doors[i].transform.position.y)) { if (doors[i].GetComponent <DoorBehavior>().up) { up_doors.Add(doors[i].GetComponent <DoorBehavior>()); } } } if (up_doors.Count > 0) { door_found = true; door = up_doors[Random.Range(0, up_doors.Count)]; } else { target_pos = player.transform.position; } } else { target_pos = new Vector2(door.transform.position.x, door.transform.position.y); } } if (transform.position.x < target_pos.x) { velocity.x = spd; } else if (transform.position.x > target_pos.x) { velocity.x = -spd; } //Move Up Doors if (door_move) { transform.position = door.findDoor(); level = LevelManager.instance.getLevelNum(transform.position.y); door_move = false; door_found = false; door = null; } } else { } transform.position = new Vector2(transform.position.x + velocity.x, LevelManager.instance.getLevelY(level)); }
void Interact() { Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); RaycastHit hit; Transform transf; PlayerProperties pp = GameObject.Find("Player").GetComponent <PlayerProperties>(); if (Physics.Raycast(ray, out hit, 3)) { transf = hit.transform; while (transf.parent != null && transf.parent.name != "Level") { transf = transf.parent; } string name = transf.transform.name; bool mouse = Input.GetMouseButtonDown(1); if (name == "UnlitTorch" && pp.hasTinderbox && mouse) { transf.name = "Torch"; transf.GetComponent <Light>().enabled = true; transf.GetChild(0).GetComponent <ParticleSystem>().enableEmission = true; transf.GetComponent <TorchBehavior>().lit = true; GameObject.Find("Sound").GetComponent <Sound>().lightTorch.Play(); } else if (name == "UnlitTorch" && pp.hasTinderbox) { lookAt = UNLIT_TORCH; } else if (name == "UnlitTorch") { lookAt = UNLIT_TORCH_NO_TINDERBOX; } else if (name == "Key" && mouse) { GameObject.Find("Player").GetComponent <PlayerProperties>().keys.Add(transf.gameObject.GetComponent <SpriteRenderer>().color); GameObject.Find("Sound").GetComponent <Sound>().pickupKey.Play(); Destroy(transf.gameObject); } else if (name == "Key") { lookAt = KEY; } else if (name == "Door" && mouse) { DoorBehavior db = transf.GetComponent <DoorBehavior>(); List <Color> keys = pp.keys; if (db.unlocked) { transf.GetComponent <DoorBehavior>().Toggle(); } else if (keys.Count == 0 || GetKey(pp, transf.gameObject) == -1) { if (!GameObject.Find("Sound").GetComponent <Sound>().doorLocked.isPlaying) { GameObject.Find("Sound").GetComponent <Sound>().doorLocked.Play(); } } else if (GetKey(pp, transf.gameObject) != -1) { transf.GetComponent <DoorBehavior>().Toggle(); transf.GetComponent <DoorBehavior>().unlocked = true; GameObject.Find("Player").GetComponent <PlayerProperties>().keys.RemoveAt(GetKey(pp, transf.gameObject)); } } else if (name == "Door" && !transf.GetComponent <DoorBehavior>().unlocked) { lookAt = LOCKED_DOOR; doorLook = transf.gameObject; } else if (name == "Door" && transf.GetComponent <DoorBehavior>().unlocked) { lookAt = UNLOCKED_DOOR; doorLook = transf.gameObject; } else if (name == "Lever" && mouse) { transf.GetComponent <LeverBehavior>().Toggle(); } else if (name == "Lever") { lookAt = LEVER; } else if (name == "DoorLever" && !transf.GetComponent <DoorBehavior>().unlocked) { lookAt = LOCKED_DOOR_LEVER; } else if (name == "PressurePlate" && !transf.GetComponent <PressurePlateBehavior>().triggered) { lookAt = PRESSURE_PLATE_UNTRIGGERED; } else if (name == "PressurePlate") { lookAt = PRESSURE_PLATE_TRIGGERED; } else if (name == "DoorPressurePlate") { lookAt = LOCKED_DOOR_PRESSURE_PLATE; } else if (name == "Crate" && !pp.isCarrying && mouse) { Destroy(transf.gameObject); GetComponent <PlayerProperties>().isCarrying = true; GameObject.Find("Sound").GetComponent <Sound>().pickupBox.Play(); } else if (name == "Crate" && !pp.isCarrying) { lookAt = CRATE; } else if (name == "Crate") { lookAt = CRATE_ALREADY_CARRYING; } else if (name == "Pistol" && mouse) { transf.parent = transform.GetChild(0); transf.GetComponent <PickupableBehavior>().enabled = false; transf.GetComponent <BoxCollider>().enabled = false; transf.localPosition = new Vector3(-0.5f, -0.4f, 1); transf.localRotation = Quaternion.identity; transf.Rotate(new Vector3(0, 270, 0)); transf.gameObject.layer = 8; GameObject.Find("Sound").GetComponent <Sound>().pickupPistol.Play(); } else if (name == "Pistol") { lookAt = PISTOL; } else if (name == "Shotgun" && mouse) { transf.parent = transform.GetChild(0); transf.GetComponent <PickupableBehavior>().enabled = false; transf.GetComponent <BoxCollider>().enabled = false; transf.localPosition = new Vector3(-0.5f, -0.4f, 1); transf.localRotation = Quaternion.identity; transf.Rotate(new Vector3(0, 270, 0)); transf.gameObject.layer = 8; GameObject.Find("Sound").GetComponent <Sound>().pickupShotgun.Play(); } else if (name == "Shotgun") { lookAt = SHOTGUN; } else if (name == "SMG" && mouse) { transf.parent = transform.GetChild(0); transf.GetComponent <PickupableBehavior>().enabled = false; transf.GetComponent <BoxCollider>().enabled = false; transf.localPosition = new Vector3(-0.5f, -0.4f, 1); transf.localRotation = Quaternion.identity; transf.Rotate(new Vector3(0, 270, 0)); transf.gameObject.layer = 8; GameObject.Find("Sound").GetComponent <Sound>().pickupSMG.Play(); } else if (name == "SMG") { lookAt = SMG; } else if (name == "Tinderbox" && mouse) { GetComponent <PlayerProperties>().hasTinderbox = true; Destroy(transf.gameObject); GameObject.Find("Sound").GetComponent <Sound>().pickupTinderbox.Play(); } else if (name == "Tinderbox") { lookAt = TINDERBOX; } else { lookAt = -1; } if (pp.isCarrying && (name == "Floor" || name == "HalfBlock" || name == "PressurePlate") && mouse) { float x = hit.point.x; float y = 1; float z = hit.point.z; if (name == "HalfBlock") { y = 1.15f; } else if (name == "PressurePlate") { y = 1.2f; } GameObject crate = (GameObject)Instantiate(cratePf, new Vector3(x, y, z), Quaternion.identity); crate.name = "Crate"; crate.transform.parent = GameObject.Find("Level").transform; GetComponent <PlayerProperties>().isCarrying = false; GameObject.Find("Sound").GetComponent <Sound>().dropBox.Play(); } else if (pp.isCarrying && (name == "Floor" || name == "HalfBlock" || name == "PressurePlate")) { lookAt = CRATE_PLACE; } } }
void Start() { playerProgression = playerProgressionObject.GetComponent <PlayerProgression>(); playerProgressionObject = null; doorBehavior = gameObject.GetComponent <DoorBehavior> (); }
public void lockDoor(DoorBehavior door, List <DoorBehavior> list) { door.setOpenable(false); list.Remove(door); }