Exemplo n.º 1
0
    /// <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;
    }
Exemplo n.º 2
0
    /// <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;
        }
    }
Exemplo n.º 3
0
    /// <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);
        }
    }
Exemplo n.º 4
0
    /// <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
        }
    }
Exemplo n.º 5
0
    /// <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);
        }
    }
Exemplo n.º 6
0
    /// <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);
            }
        }
    }
Exemplo n.º 7
0
 public void plusplusphil(Queteobjet v)
 {
     pla.listeQuete[v.indexQuete].qG.currentAmount++;
 }