Exemplo n.º 1
0
 public int GetStock(Pickable.PickableType resource)
 {
     if (!inventory.ContainsKey(resource))
     {
         return(0);
     }
     else
     {
         return(inventory[resource]);
     }
 }
Exemplo n.º 2
0
 void AddToInventory(Pickable.PickableType resource, int quantity)
 {
     if (!inventory.ContainsKey(resource))
     {
         inventory[resource] = quantity;
     }
     else
     {
         inventory[resource] += quantity;
     }
 }
Exemplo n.º 3
0
    public Dialogue(List <string> txt_fr, int _nb_champignons, int _nb_baies, int _nb_brindilles)
    {
        indice_courant = 0;
        textes_fr      = txt_fr;

        nb_champignons = _nb_champignons;
        nb_brindilles  = _nb_brindilles;
        nb_baies       = _nb_baies;
        if (nb_champignons > 0)
        {
            missionType = Pickable.PickableType.CHAMPIGNON;
        }
        if (nb_brindilles > 0)
        {
            missionType = Pickable.PickableType.BRINDILLE;
        }
        if (nb_baies > 0)
        {
            missionType = Pickable.PickableType.BAIE;
        }
    }
Exemplo n.º 4
0
 int RemoveFromInventory(Pickable.PickableType resource, int quantity)
 {
     if (!inventory.ContainsKey(resource))
     {
         return(0);
     }
     else
     {
         if (inventory[resource] <= quantity)
         {
             int realQuantity = inventory[resource];
             inventory[resource] = 0;
             return(realQuantity);
         }
         else
         {
             inventory[resource] -= quantity;
             return(quantity);
         }
     }
 }
Exemplo n.º 5
0
    void Update()
    {
        //récupération pickable plus proche
        Transform closestOne = null;
        float     minDist    = Mathf.Infinity;
        Vector3   currentPos = transform.position;

        Pickable.PickableType currentMission = DialoguesManager.Instance.CurrentCondition();
        foreach (Transform t in closestPickable)
        {
            if (t.GetComponent <Pickable>().typePickable != currentMission &&
                t.GetComponent <Pickable>().typePickable != Pickable.PickableType.CAILLOU &&
                t.GetComponent <Pickable>().typePickable != Pickable.PickableType.DOOR &&
                t.GetComponent <Pickable>().typePickable != Pickable.PickableType.GRANNY)
            {
                continue;
            }

            float dist = Vector3.Distance(t.position, currentPos);
            if (dist < minDist)
            {
                closestOne = t;
                minDist    = dist;
            }
        }

        //afficher surbrillance closestOne
        if (closestOne != null && (closestOne.GetComponent <Pickable>().typePickable == Pickable.PickableType.BAIE ||
                                   closestOne.GetComponent <Pickable>().typePickable == Pickable.PickableType.BRINDILLE ||
                                   closestOne.GetComponent <Pickable>().typePickable == Pickable.PickableType.CHAMPIGNON ||
                                   closestOne.GetComponent <Pickable>().typePickable == Pickable.PickableType.GRANNY ||
                                   closestOne.GetComponent <Pickable>().typePickable == Pickable.PickableType.CAILLOU))
        {
            surbrillance.SetActive(true);

            surbrillance.transform.position = closestOne.transform.position;
            surbrillance.GetComponent <SpriteRenderer>().sortingOrder = closestOne.GetComponent <SpriteRenderer>().sortingOrder - 1;
        }
        else
        {
            surbrillance.SetActive(false);
        }

        if (closestOne != null && closestOne.gameObject.GetComponent <Pickable>().typePickable == Pickable.PickableType.DOOR)
        {
            // Changement de scene vers la maison ou vers dehors, sans action
            timer_pick = duree_pick;
            isPicking  = false;
            if (SceneManagement.Instance.currentScene == SceneManagement.Scenes.HOUSE)
            {
                SceneManagement.Instance.ChangeScene(SceneManagement.Scenes.OVERWORLD);
            }
            else
            {
                SceneManagement.Instance.ChangeScene(SceneManagement.Scenes.HOUSE);
            }
        }


        if (GameInput.GetInputDown(GameInput.InputType.ACTION))
        {
            if (closestOne != null)
            {
                pickableEnCours = closestOne;
                if (pickableEnCours.gameObject.GetComponent <Pickable>().typePickable == Pickable.PickableType.GRANNY)
                {
                    isPicking = true;
                    if (!DialoguesManager.Instance.lancerDialogue())
                    {
                        return;
                    }
                    isPicking = false;
                }

                timer_pick = 0;

                if (pickableEnCours.gameObject.GetComponent <Pickable>().typePickable != Pickable.PickableType.DOOR &&
                    pickableEnCours.gameObject.GetComponent <Pickable>().typePickable != Pickable.PickableType.GRANNY &&
                    !isPicking)
                {
                    isPicking = true;
                    playerAnimation.animator.SetBool("Pickup", true);
                    playerAnimation.animator.speed = 1;
                }
                else if (pickableEnCours.gameObject.GetComponent <Pickable>().typePickable == Pickable.PickableType.GRANNY)
                {
                    timer_pick = duree_pick;
                }
            }
            else if (numCailloux > 0)
            {
                numCailloux--;
                Pickable caillou = null;
                int      hasard  = (Random.Range(0, 6));
                if (hasard == 0)
                {
                    caillou = GameObject.Instantiate(caillouPrefab1);
                }
                if (hasard == 1)
                {
                    caillou = GameObject.Instantiate(caillouPrefab2);
                }
                if (hasard == 2)
                {
                    caillou = GameObject.Instantiate(caillouPrefab3);
                }
                if (hasard == 3)
                {
                    caillou = GameObject.Instantiate(caillouPrefab4);
                }
                if (hasard == 4)
                {
                    caillou = GameObject.Instantiate(caillouPrefab5);
                }
                if (hasard == 5)
                {
                    caillou = GameObject.Instantiate(caillouPrefab6);
                }

                float rayon = 3;

                direction_lancer = -direction_lancer;

                Vector3 deplacement = new Vector3(direction_lancer, 0, 0) * rayon;
                caillou.transform.position = transform.position;
                caillou.GetComponent <Pickable>().lancerAnimation(deplacement);
            }
        }

        //gestion temps d'attente pour pick
        if (timer_pick < duree_pick)
        {
            timer_pick += Time.deltaTime;
            if (timer_pick > duree_pick)
            {
                SoundManager.Instance.PlaySound(SoundManager.SoundList.GRAB);
                switch (pickableEnCours.gameObject.GetComponent <Pickable>().typePickable)
                {
                case Pickable.PickableType.BAIE:
                    numBaie++;
                    break;

                case Pickable.PickableType.BRINDILLE:
                    numBrindille++;
                    break;

                case Pickable.PickableType.CHAMPIGNON:
                    numChampignon++;
                    break;

                case Pickable.PickableType.CAILLOU:
                    numCailloux++;
                    break;
                }
                DialoguesManager.Instance.setChampignons(numChampignon);
                DialoguesManager.Instance.setBaies(numBaie);
                DialoguesManager.Instance.setBrindilles(numBrindille);
                DialoguesManager.Instance.setCailloux(numCailloux);

                if (pickableEnCours.gameObject.GetComponent <Pickable>().typePickable != Pickable.PickableType.DOOR)
                {
                    playerAnimation.animator.SetBool("Pickup", false);

                    isPicking = false;
                    if (pickableEnCours.gameObject.GetComponent <Pickable>().typePickable !=
                        Pickable.PickableType.GRANNY)
                    {
                        Destroy(pickableEnCours.gameObject);
                        closestPickable.Remove(pickableEnCours);
                    }
                    pickableEnCours = null;
                }
            }
        }
    }