Ejemplo n.º 1
0
    private GameObject FindQuestionCardByCategory(QuestionManager.Categories thisCategory, int lapsAmount)
    {
        GameObject result            = null;
        int        targetCardCounter = 0;

        for (int index = 0; index < this.categoryCardsList.Count; index++)
        {
            if (this.categoryCardsList[index].GetComponent <QuestionCard>().category == thisCategory)
            {
                targetCardCounter++;
                result = this.categoryCardsList[index];
            }

            if (targetCardCounter == lapsAmount)
            {
                break;
            }
        }

        if (!result)
        {
            Debug.LogError("Card can't be found! Null return value", this.gameObject);
        }

        return(result);
    }
Ejemplo n.º 2
0
    public void StartPlayFlow()
    {
        if (this.optionButtonList.Count > 0)
        {
            for (int index = 0; index < this.optionButtonList.Count; index++)
            {
                gameObjectButtonList[index].onButtonPressed -= AfterOptionIsPressed;
                OnAnimationEnded -= gameObjectButtonList[index].InteractableAtEndofAnimation;
                Destroy(this.optionButtonList[index].gameObject);
            }

            this.optionButtonList.Clear();
            this.gameObjectButtonList.Clear();
        }

        QuestionManager.Categories targetCategory = QuestionManager.instance.GetRandomCategory();
        targetQuestionCardScript = carouselBehaviour.StartSwipeToCategory(targetCategory).GetComponent <QuestionCard>();
        QuestionAndAnswers targetQuestionData = QuestionManager.instance.GetRandomQuestionByCategory(targetCategory);

        targetQuestionCardScript.SetQuestionText(targetQuestionData.question);

        int RandomButton     = Random.Range(0, 4);
        int wrongAnswerIndex = 0;

        for (int index = 0; index < 4; index++)
        {
            if (index == RandomButton)
            {
                OptionCard correctOptionButton = Instantiate(PrefabManager.instance.GetPrefabByName("OptionCard"), this.optionContainer).GetComponent <OptionCard>();
                correctOptionButton.SetOptionCardQuestion(targetQuestionData.rightAnswer, true);

                this.optionButtonList.Add(correctOptionButton.GetComponent <RectTransform>());
                this.gameObjectButtonList.Add(correctOptionButton);

                correctOptionButton.onButtonPressed += this.AfterOptionIsPressed;
            }
            else
            {
                OptionCard wrongOptionButton = Instantiate(PrefabManager.instance.GetPrefabByName("OptionCard"), this.optionContainer).GetComponent <OptionCard>();
                wrongOptionButton.SetOptionCardQuestion(targetQuestionData.wrongAnswers[wrongAnswerIndex], false);

                this.optionButtonList.Add(wrongOptionButton.GetComponent <RectTransform>());
                this.gameObjectButtonList.Add(wrongOptionButton);

                wrongOptionButton.onButtonPressed += this.AfterOptionIsPressed;
                wrongAnswerIndex++;
            }
        }
    }
Ejemplo n.º 3
0
    private Sprite GetCategoryIconByCategory(QuestionManager.Categories thisCategory)
    {
        Sprite result = null;

        switch (thisCategory)
        {
        case QuestionManager.Categories.CULTURE_AND_EDUCATION:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.CULTURE_AND_EDUCATION);
            break;

        case QuestionManager.Categories.ENVIRONMENT:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.ENVIRONMENT);
            break;

        case QuestionManager.Categories.HEALTH:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.HEALTH);
            break;

        case QuestionManager.Categories.LIVING_PLACE:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.LIVING_PLACE);
            break;

        case QuestionManager.Categories.MOBILITY_AND_LOGISTICS:
            SpriteManager.instance.GetSpriteByName(CategoryIconNames.MOBILITY_AND_LOGISTICS);
            break;

        case QuestionManager.Categories.PRODUCTION_EMPLOYMENT_AND_TOURISM:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.PRODUCTION_EMPLOYMENT_AND_TOURISM);
            break;

        case QuestionManager.Categories.PUBLIC_INFORMATION_ACCESS:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.PUBLIC_INFORMATION_ACCESS);
            break;

        case QuestionManager.Categories.SOCIAL:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.SOCIAL);
            break;

        case QuestionManager.Categories.TERRITORY:
            result = SpriteManager.instance.GetSpriteByName(CategoryIconNames.TERRITORY);
            break;
        }

        return(result);
    }
Ejemplo n.º 4
0
    /// <summary>
    /// This method swipes the carousel to one card of the parameter category, by a random amount of laps
    /// </summary>
    /// <param name="thisCategory">Category of the card you want to swipe</param>
    /// <returns>Returns the GameObject of the target card</returns>
    public GameObject StartSwipeToCategory(QuestionManager.Categories thisCategory)
    {
        GameObject result = null;

        int lapsAmount = Random.Range(this.minRandomLapsValue, this.maxRandomLapsValue);

        this.SetUpCards(lapsAmount);

        result = this.FindQuestionCardByCategory(thisCategory, lapsAmount);

        if (result)
        {
            StartCoroutine(this.SwipeToCategory(result, lapsAmount));
        }
        else
        {
            Debug.LogError("Carousel card not found, swipe was disabled");
        }

        return(result);
    }
Ejemplo n.º 5
0
 public GameObject GetQuestionCardByCategory(QuestionManager.Categories thisCategory)
 {
     return(this.BuildQuestionCardByCategory(thisCategory));
 }
Ejemplo n.º 6
0
    private GameObject BuildQuestionCardByCategory(QuestionManager.Categories thisCategory)
    {
        GameObject   result     = this.GetPrefabByName("QuestionCard");
        QuestionCard cardScript = result.GetComponent <QuestionCard>();

        if (result)
        {
            cardScript = result.GetComponent <QuestionCard>();
        }
        else
        {
            Debug.LogError("Null question card prefab", this.gameObject);
        }

        if (cardScript)
        {
            switch (thisCategory)
            {
            case QuestionManager.Categories.CULTURE_AND_EDUCATION:
                cardScript.SetTitleText("Cultura y educación");
                cardScript.category = QuestionManager.Categories.CULTURE_AND_EDUCATION;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.CULTURE_AND_EDUCATION));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.CULTURE_AND_EDUCATION + "_banner"));
                break;

            case QuestionManager.Categories.ENVIRONMENT:
                cardScript.SetTitleText("Ambiente");
                cardScript.category = QuestionManager.Categories.ENVIRONMENT;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.ENVIRONMENT));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.ENVIRONMENT + "_banner"));
                break;

            case QuestionManager.Categories.HEALTH:
                cardScript.SetTitleText("Salud");
                cardScript.category = QuestionManager.Categories.HEALTH;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.HEALTH));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.HEALTH + "_banner"));
                break;

            case QuestionManager.Categories.LIVING_PLACE:
                cardScript.SetTitleText("Vivienda");
                cardScript.category = QuestionManager.Categories.LIVING_PLACE;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.LIVING_PLACE));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.LIVING_PLACE + "_banner"));
                break;

            case QuestionManager.Categories.MOBILITY_AND_LOGISTICS:
                cardScript.SetTitleText("Movilidad y logística");
                cardScript.category = QuestionManager.Categories.MOBILITY_AND_LOGISTICS;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.MOBILITY_AND_LOGISTICS));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.MOBILITY_AND_LOGISTICS + "_banner"));
                break;

            case QuestionManager.Categories.PRODUCTION_EMPLOYMENT_AND_TOURISM:
                cardScript.SetTitleText("Producción, empleo y turismo");
                cardScript.category = QuestionManager.Categories.PRODUCTION_EMPLOYMENT_AND_TOURISM;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.PRODUCTION_EMPLOYMENT_AND_TOURISM));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.PRODUCTION_EMPLOYMENT_AND_TOURISM + "_banner"));
                break;

            case QuestionManager.Categories.PUBLIC_INFORMATION_ACCESS:
                cardScript.SetTitleText("Acceso publico a la información");
                cardScript.category = QuestionManager.Categories.PUBLIC_INFORMATION_ACCESS;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.PUBLIC_INFORMATION_ACCESS));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.PUBLIC_INFORMATION_ACCESS + "_banner"));
                break;

            case QuestionManager.Categories.SOCIAL:
                cardScript.SetTitleText("Social");
                cardScript.category = QuestionManager.Categories.SOCIAL;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.SOCIAL));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.SOCIAL + "_banner"));
                break;

            case QuestionManager.Categories.TERRITORY:
                cardScript.SetTitleText("Aspectos territoriales");
                cardScript.category = QuestionManager.Categories.TERRITORY;
                cardScript.SetCategoryIcon(SpriteManager.instance.GetSpriteByName(CategoryIconNames.TERRITORY));
                cardScript.SetHeaderSprite(SpriteManager.instance.GetSpriteByName(CategoryIconNames.TERRITORY + "_banner"));
                break;
            }
        }
        else
        {
            Debug.LogError("Default value return", this.gameObject);
        }

        return(result);
    }