/// <summary> /// /// Si le collectible passé en paramètre n'est pas déjà stocké dans la liste de Restart de gros checkpoint, le stocke dedans /// stock le collectible dans la liste de Restart de petit checkpoint en fonction de son type /// /// </summary> /// <param name="typeOfCollectible"></param> /// <param name="collectible"></param> private void Collectible_OnCollected(Collectible.Type typeOfCollectible, GameObject collectible) { if (CollectiblesOnBigCP.IndexOf(collectible) <= -1) { CollectiblesOnBigCP.Add(collectible); } switch (typeOfCollectible) { case Collectible.Type.Artefact: ArtefactsCollected++; CollectiblesOnSmallCP.Add(collectible); //AlreadyCollectedArtefacts.Add(collectible); UpdateArtefacts?.Invoke(ArtefactsCollected, collectible); //Debug.Log(ArtefactsCollected); CameraShake.Instance.ScreenShake(0.2f, 8f); if (LevelManager.CurrentLevelIndex == 1 && IsAllArtefactsCollect) { //Debug.Log("all artefacts + triggr"); //CutSceneTrigger.SendAllArtefactTrigger(); Invoke(nameof(callTriggerAll), 1.6f); } break; case Collectible.Type.Life: break; case Collectible.Type.Score: CollectiblesOnSmallCP.Add(collectible); break; default: break; } }
/// <summary> /// /// parcourt la bonne liste en fonction du booléen afin de les initialiser /// nettoie ensuite les lists qu'il faut vider /// /// </summary> /// <param name="isSmallCheckPoint"></param> static public void RestartCollectible(bool isSmallCheckPoint) { //Debug.Log("restart"); List <GameObject> listToRestart = isSmallCheckPoint ? CollectiblesOnSmallCP : CollectiblesOnBigCP; foreach (GameObject collectible in listToRestart) { collectible.GetComponent <Collectible>().init(); if (collectible.GetComponent <Collectible>().GetTypeOfCollectible == Collectible.Type.Artefact) { //Debug.Log("artefact"); ArtefactsCollected--; } //if (AlreadyCollectedArtefacts.IndexOf(collectible) >= -1) AlreadyCollectedArtefacts.Remove(collectible); } listToRestart.Clear(); if (isSmallCheckPoint) { CollectiblesOnSmallCP.Clear(); } UpdateArtefacts?.Invoke(ArtefactsCollected, null); }