public PlayerSetMovements(Transform transform, GameObject gameObject, PlayerMove move, PlayerRotate rotate, PlayerFall fall, PlayerAnimator animations, PlayerRespawn respawner, GameObject water_effect) { this.transform = transform; this.gameObject = gameObject; this.move = move; this.rotate = rotate; this.fall = fall; this.animations = animations; this.respawner = respawner; this.water_effect = water_effect; is_falling = false; extra_movement_speed = 0; previous_ray = new RaycastHit(); previous_ray_exist = false; speed_boost = 1f; }
public void OnCollision(GameObject player_object, Collider collider, PlayerRotate rotate) { if (collider.gameObject.tag == "Monster") { respawner.KillPlayer(player_object, PlayerAnimations.Death, true); } else if ((collider.gameObject.tag == "Arrow") && (rotating_with_arrow == false)) { Quaternion collider_rotation = collider.transform.rotation; collider_rotation.x = 0; collider_rotation.y = 0; arrow_rotation_angle = collider_rotation.eulerAngles.z; CalculateRotationAngle(); rotating_with_arrow = true; } else if (collider.gameObject.tag == "Checkpoint") { Vector3 respawn_position; respawn_position = collider.transform.position; if (collider.transform.parent != null) { if (collider.transform.parent.tag == "Checkpoint") { respawn_position = collider.transform.parent.position; } } respawn_position.y -= 1; respawner.SetRespawnPosition(respawn_position); } else if (collider.gameObject.tag == "Teleporter") { player_object.transform.position = collider.gameObject.transform.GetChild(DESTINATION_INDEX).position; rotate.StopRotating(); //SpawnPool general_pool = PoolManager.Pools[CurrentLevel.GetGeneralPoolName()]; //general_pool.Spawn(checkpoint_effect, collider.transform.position, new Quaternion(90, 0, 0, 0)); } else if (collider.gameObject.tag == "Lever") { collider.gameObject.tag = "LeverTriggered"; bool open_door = true; foreach (Transform children in collider.gameObject.transform.parent) { if (children.tag == "Lever") { open_door = false; } } if (open_door) { collider.gameObject.transform.parent.tag = "DoorOpen"; } } else if (collider.gameObject.tag == "SpeedUp") { player_object.GetComponent <Player>().ActivateSpeedBoost(true); } else if (collider.gameObject.tag == "SpeedDown") { player_object.GetComponent <Player>().ActivateSpeedBoost(false); } }