/// <summary> /// Permet de terminer une quête précise.Cette version gère les exceptions /// qui arrivent lorsque on ne passe pas par OpenQuestWindow sans paramètre. /// </summary> /// <param name="i"></param> i est l'index de la quête qui va donner des récompenses public void EndQuest(int i) { quete = quetes[identifierQuete(i)]; quete.questEnded = true; dhold[quete.indexQuete].setDialFinDeQuete(); quete.isActive = false; }
/// <summary> /// Ouvre la fenetre de quête à partir d'un bouton lié au gestionnaire de dialogue. /// Cette fenêtre gère quelles actions vont être possibles selon le pnj auquel on parle /// et selon la complétion de la quête. Gère les exceptions nécessaires à la complétion des quêtes d'exploration. ///int i ---> l'index de la quête pour laquelle il y a exception. /// /// </summary> public void OpenQuestWindow(int i) { initialiseQuestWindow(); { quete = quetes[i]; title.text = quete.title; description.text = quete.description; if (quete.qG.IsReached() && quete.isActive) { complétion.text = "Accepter les récompenses"; recevoir.gameObject.SetActive(true); acepterQuete.gameObject.SetActive(false); } else { recevoir.gameObject.SetActive(false); } if (!(quete.qG.goalType != GoalType.Explore && quete.isActive)) { acepterQuete.gameObject.SetActive(true); recevoir.gameObject.SetActive(false); } if (quete.questEnded && quete.isActive) { complétion.text = "Accepter les récompenses"; recevoir.gameObject.SetActive(true); acepterQuete.gameObject.SetActive(false); giveThings.gameObject.SetActive(false); if (quete.qG.goalType == GoalType.Explore && quete.isActive && quete.questEnded) { acepterQuete.gameObject.SetActive(false); giveThings.gameObject.SetActive(false); gestionRec(i); } } if (quete.isActive && quete.qG.goalType == GoalType.Explore && !quete.questEnded) { recevoir.gameObject.SetActive(false); acepterQuete.gameObject.SetActive(false); giveThings.gameObject.SetActive(false); } questWindow.SetActive(true); quete = null; } }
/// <summary> /// Permet de terminer une quête précise /// </summary> public void EndQuest() { quete = quetes[identifierQuete(-1)]; quete.questEnded = true; dhold[quete.indexQuete].setDialFinDeQuete(); quete.isActive = false; player.listeQuete.Remove(quete); if (quete.active != null && quete.desactiveObjet != null) { quete.desactiveObjet.SetActive(!quete.desactiveObjet.activeSelf); } }
/// <summary> /// Est la fonction appelée et active la quête demandée /// </summary> public void AccepterQuete() { questWindow.SetActive(false); quete = quetes[identifierQuete(-1)]; quete.isActive = true; player.listeQuete.Add(quete); if (quete.desactiveObjet != null) { quete.active.SetActive(!quete.active.activeSelf); /////////////////////////ici CLEMENT } }
/// <summary> /// Ouvre la fenetre de quête à partir d'un bouton lié au gestionnaire de dialogue. /// Cette fenêtre gère quelles actions vont être possibles selon le pnj auquel on parle /// et selon la complétion de la quête. /// </summary> public void OpenQuestWindow() { setIndex(); { initialiseQuestWindow(); quete = quetes[identifierQuete(-1)]; title.text = quete.title; description.text = quete.description; if (quete.qG.IsReached() && quete.isActive && quete.qG.goalType != GoalType.Explore) { complétion.text = "Accepter les récompenses"; recevoir.gameObject.SetActive(true); acepterQuete.gameObject.SetActive(false); complétion.gameObject.SetActive(false); } else if (!(quete.qG.goalType == GoalType.Explore && quete.isActive)) { if (!quete.isActive) { acepterQuete.gameObject.SetActive(true); } recevoir.gameObject.SetActive(false); complétion.gameObject.SetActive(false); } if (quete.questEnded && quete.isActive) { complétion.text = "Accepter les récompenses"; recevoir.gameObject.SetActive(true); acepterQuete.gameObject.SetActive(false); complétion.gameObject.SetActive(false); } if (quete.qG.goalType.Equals(GoalType.Give) && quete.isActive && !quete.questEnded) { giveThings.gameObject.SetActive(true); recevoir.gameObject.SetActive(false); complétion.text = "Vous avez encore " + quete.qG.requiredAmount + " " + quete.qG.itemName + "à remettre"; } questWindow.SetActive(true); } }
/// <summary> /// dans l'update, la classe Target vérifie si son box collider est en contact avec le joueur pour le récompenser /// et pour s'assurer de n'avoir complété la quête qu'une seule fois. Elle va rendre le pnj inutile inactif /// sans toutefois affecter son dialogue holder qui est nécessaire au bon fonctionnement du programme. /// </summary> private void Update() { if (timer) { timer = false; } if (bc2.IsTouching(questGiver.player.GetComponent <Collider2D>()) && !cond) { DialogueHolder dhold = pnjDebut.GetComponentInChildren <DialogueHolder>(); if (questGiver.quetes[dhold.QuestIndex].isActive) { quete = questGiver.quetes[dhold.QuestIndex]; questGiver.quetes[quete.indexQuete].questEnded = true; cond = true; pnjDebut.GetComponentInChildren <SpriteRenderer>().gameObject.SetActive(false); dhold.canTalk = false; questGiver.OpenQuestWindow(dhold.QuestIndex); } } }
public void plusplusphil(Queteobjet v) { pla.listeQuete[v.indexQuete].qG.currentAmount++; }