Beispiel #1
0
    private void OnSelection(SituationsManager.SelectionChoice selection)
    {
        foreach (var item in selection.int_effects)
        {
            GameManager.instance.int_stats[item.stat] += item.value;
        }

        foreach (var item in selection.bool_effects)
        {
            GameManager.instance.boolean_stats[item.stat] = item.value;
        }

        GameManager.instance.situations_manager.current_situation.duration += selection.time_investment;
        if (selection.sound != null)
        {
            GameManager.instance.audio_source.PlayOneShot(Resources.Load <AudioClip>("Sounds/" + selection.sound));
            Debug.Log("Playing audio " + selection.sound);
        }


        //GameManager.instance.situations_manager.OnStepFinish(); end dialogue does it for now
        GameManager.instance.situations_manager.current_situation.current_step.next_step = selection.next_step;
        GameManager.instance.ui_opened = false;
        GameManager.instance.dialogue_manager.EndDialogue();
        foreach (Transform child in selection_list.transform)
        {
            Destroy(child.gameObject);
        }
    }
Beispiel #2
0
    internal void LoadEvent(JSONObject json)
    {
        GameManager.instance.ui_opened = true;
        close_button.interactable      = GameManager.instance.boolean_stats["Shop"];
        accept_button.interactable     = false;

        foreach (Transform child in shopping_list.transform)
        {
            Destroy(child.gameObject);
        }

        JSONObject options = json.GetField("options");

        foreach (JSONObject j_option in options.list)
        {
            SituationsManager.SelectionChoice selection = JsonUtility.FromJson <SituationsManager.SelectionChoice>(j_option.ToString());
            selection.int_requirements  = new List <GameManager.Stat <int> >();
            selection.bool_requirements = new List <GameManager.Stat <bool> >();

            j_option.GetField("stat_requirement", delegate(JSONObject stat_requirement)
            {
                foreach (JSONObject j_req in stat_requirement.list)
                {
                    if (j_req.GetField("value").IsBool)
                    {
                        selection.bool_requirements.Add(JsonUtility.FromJson <GameManager.Stat <bool> >(j_req.ToString()));
                    }
                    else
                    {
                        selection.int_requirements.Add(JsonUtility.FromJson <GameManager.Stat <int> >(j_req.ToString()));
                    }
                }
            }, delegate(string name)
            {
            });

            selection.int_effects  = new List <GameManager.Stat <int> >();
            selection.bool_effects = new List <GameManager.Stat <bool> >();

            j_option.GetField("effect", delegate(JSONObject effects)
            {
                foreach (JSONObject j_eff in effects.list)
                {
                    if (j_eff.GetField("value").IsBool)
                    {
                        selection.bool_effects.Add(JsonUtility.FromJson <GameManager.Stat <bool> >(j_eff.ToString()));
                    }
                    else
                    {
                        selection.int_effects.Add(JsonUtility.FromJson <GameManager.Stat <int> >(j_eff.ToString()));
                    }
                }
            }, delegate(string name)
            {
                Debug.Log("No effects found on");
            });

            CreateShoppingSelection(selection);
        }
    }
Beispiel #3
0
    private void CreateShoppingSelection(SituationsManager.SelectionChoice selection)
    {
        GameObject selection_go = Instantiate(shopping_selection_prefab);

        selection_go.GetComponentInChildren <Text>().text = selection.text;

        bool booleans_check = true;
        bool ints_check     = true;

        foreach (var item in selection.bool_requirements)
        {
            if (GameManager.instance.boolean_stats[item.stat] != item.value)
            {
                booleans_check = false;
                break;
            }
        }
        foreach (var item in selection.int_requirements)
        {
            if (GameManager.instance.int_stats[item.stat] < item.value)
            {
                ints_check = false;
                break;
            }
        }

        if (!booleans_check || !ints_check)
        {
            selection_go.GetComponent <Toggle>().interactable = false;
        }

        selection_go.transform.SetParent(shopping_list.transform, false);
        selection_go.transform.DOPunchScale(new Vector3(0.1f, 0.5f, 0.0f), 1.0f, 3);
        selection_go.GetComponent <Toggle>().onValueChanged.AddListener(delegate { OnSelection(); });
        toggles.Add(selection_go.GetComponent <Toggle>(), selection);
    }
Beispiel #4
0
    internal void CreateSelection(SituationsManager.SelectionChoice selection)
    {
        GameObject selection_go = Instantiate(selection_prefab);

        selection_go.GetComponentInChildren <Text>().text = selection.text;

        foreach (var item in selection.bool_requirements)
        {
            if (GameManager.instance.boolean_stats[item.stat] != item.value)
            {
                selection_go.GetComponent <Image>().color         = Color.gray;
                selection_go.GetComponent <Button>().interactable = false;

                RawImage img = selection_go.GetComponentInChildren <RawImage>();
                img.texture = emojis[item.stat];
                img.enabled = true;
                break;
            }
        }
        foreach (var item in selection.int_requirements)
        {
            if (GameManager.instance.int_stats[item.stat] < item.value)
            {
                selection_go.GetComponent <Image>().color         = Color.gray;
                selection_go.GetComponent <Button>().interactable = false;

                RawImage img = selection_go.GetComponentInChildren <RawImage>();
                img.texture = emojis[item.stat];
                img.enabled = true;
                break;
            }
        }

        foreach (var item in selection.int_effects)
        {
            GameObject eff_obj = Instantiate(Resources.Load <GameObject>("UI/Effect_Image"), selection_go.transform.GetChild(2));
            float      scale   = 1;

            if (item.stat.Equals("Health"))
            {
                eff_obj.GetComponent <RawImage>().texture = item.value > 0 ? Resources.Load <Texture>("UI/Health_Positive"): Resources.Load <Texture>("UI/Health");

                if (Math.Abs(item.value) < 2.0)
                {
                    scale = 0.5f;
                }
            }
            else
            {
                eff_obj.GetComponent <RawImage>().texture = item.value > 0 ? Resources.Load <Texture>("UI/green_face") : Resources.Load <Texture>("UI/Positivism");
                if (Math.Abs(item.value) < 2.0)
                {
                    scale = 0.5f;
                }
                else if (Math.Abs(item.value) >= 4)
                {
                    scale = 1.5f;
                }
            }

            eff_obj.transform.localScale = new Vector3(scale, scale, 1);
        }

        selection_go.GetComponent <Button>().onClick.AddListener(delegate { OnSelection(selection); });

        selection_go.transform.SetParent(selection_list.transform, false);
    }