protected void Activate(SavePoint activator) { state = SavePointStates.Activated; if (outerLights != null) { for (int i = 0; i < outerLights.Length; i++) { outerLights[i].intensity = outerLightsOriginalIntensity; } innerLight.color = new Color(1f, 1f, 1f); } if (activator == null) { savePointActivated(this); } }
void Update() { if (state == SavePointStates.OnScreen && (transform.position - targetPosition).magnitude > errorMargin) { state = SavePointStates.FarEnough; } if (!isChild && state == SavePointStates.FarEnough && (transform.position - targetPosition).magnitude < errorMargin) { state = SavePointStates.Judging; foreach (SavePoint childSP in childrenSPs) { childSP.setJudging(); } arrivedAtSavePoint(); } if (state == SavePointStates.Judging && gameSceneController.roomSpeed == 0 && gameSceneController.isCollectingWell()) { innerLight.color = new Color(1f, 1f, 1f); state = SavePointStates.ReadyToActivate; } }
private void OnCollisionEnter2D(Collision2D collision) { Tagger tagger = collision.gameObject.GetComponent <Tagger>(); if (tagger != null && tagger.containsCustomTag("player")) { if (state == SavePointStates.ReadyToActivate) { GetComponent <AudioSource>().PlayOneShot(activationClip); savedLength = collision.gameObject.GetComponent <PlayerController>().getLength(); Activate(null); } } else if (tagger != null && tagger.containsCustomTag("outer screen bounds")) { if (state == SavePointStates.OffScreen) { state = SavePointStates.OnScreen; adjustTarget(); } } }
protected void setJudging() { state = SavePointStates.Judging; }