public override void OnObjectPicked(PlayerBehaviour player, BaseOrbitObject orbitObject) { base.OnObjectPicked(player, orbitObject); // If picked collectable if (orbitObject is Collectable) { orbitObject.SetVisibility(false); // Show door if needed if (_collectables.All((c) => !c.GetVisibility())) { SetLineRenderWithCompletedColor(); GameScene.Instance.ShowNextOrbit(); if (door != null) { door.SetVisibility(true); } } } if (orbitObject is Spike) { GameScene.Instance.RestartFromLastCheckpoint(); } // If door picked if (orbitObject is Door) { NextOrbit(); } }
public void PickObject(PlayerBehaviour player, BaseOrbitObject orbitObject) { if (orbitObject == null) { return; } OnObjectPicked(player, orbitObject); }
public override void OnObjectPicked(PlayerBehaviour player, BaseOrbitObject orbitObject) { // If picked collectable if (orbitObject is NumberPost numberPost) { if (_checkNumber == numberPost.number) { // Right number. GameScene.Instance.Play(numberPost.pickSound); numberPost.SetVisibility(false); _checkNumber++; } else { // Wrong number. GameScene.Instance.Play(wrongSequenceSound); numberPosts.ForEach((c) => c.SetVisibility(true)); _checkNumber = 1; } // Picked all object in the right order. if (_checkNumber > numberPosts.Length) { SetLineRenderWithCompletedColor(); GameScene.Instance.ShowNextOrbit(); if (door != null) { door.SetVisibility(true); } } } // If door picked if (orbitObject is Door) { HideFromPlayer(); GameScene.Instance.SelectNextOrbit(); } }
public virtual void OnObjectPicked(PlayerBehaviour player, BaseOrbitObject orbitObject) { GameScene.Instance.Play(orbitObject.pickSound); }