void Start() { rb = GetComponent <Rigidbody>(); damageable = GetComponent <Damageable>(); TeleportToCheckpoint(); lastCheckpoint.Activate(); }
public void SetCurrentActive(Checkpoint current) { activeCheckpoint = current; activeCheckpoint.Activate(true); foreach (Checkpoint checkpoint in checkpoints.FindAll(point => point != activeCheckpoint)) { checkpoint.Activate(false); } }
private void MarkNewCheckpointAsActive(GameObject go) { Checkpoint cp = go.GetComponent <Checkpoint>(); if (!cp.isActivated()) { onNewCheckpointDiscovered(); cp.Activate(); lastCheckpointLocation = go.transform.position; } }
// Collision with new checkpoint void OnTriggerEnter2D(Collider2D collider) { string tag = collider.tag; if (tag == "Checkpoint") { Checkpoint checkpoint = collider.gameObject.GetComponent <Checkpoint>(); if (!checkpoint.GetIsOn()) { lastCheckpoint = collider.gameObject.GetComponent <Transform>().position; checkpoint.Activate(); } } else if (tag == "Enemy" || tag == "Hazard") { RespawnPlayer(); } }
void Update() { bool canSkipStep = currentStep < GameManager.puzzleStep[0]; if (canSkipStep) { switch (currentStep) { case 0: gate.Complete(); pressurePlates[0].setIsActivated(true); pressurePlates[1].setIsActivated(true); currentStep++; break; case 1: rock.Complete(); shootingTarget.SetIsActivated(true); currentStep++; break; case 2: Destroy(part); currentStep++; break; case 3: fallingRock.Complete(); currentStep++; break; case 4: Destroy(this); break; default: break; } } else { switch (currentStep) { case 0: if (AllPlatesActivated()) { gate.trigger = true; currentStep++; } break; case 1: if (shootingTarget.GetIsActivated()) { rock.trigger = true; currentStep++; } break; case 2: if (part.GetComponent <PickUpPart>().pickedUp) { Destroy(part); currentStep++; cutsceneCam.Activate(); fallingRock.trigger = true; } break; case 3: if (checkpoint) { checkpoint.Activate(); } Destroy(this); break; default: break; } if (GameManager.puzzleStep[0] != currentStep) { GameManager.puzzleStep[0] = currentStep; } } }