Beispiel #1
0
    public void SetState()
    {
        runtimeObj.SetActive(state == IGameMenuState.Runtime);
        inventoryObj.SetActive(state == IGameMenuState.Inventory);
        pauseObj.SetActive(state == IGameMenuState.Pause);
        dialogObj.SetActive(state == IGameMenuState.Dialog);
        deathMenuObj.SetActive(state == IGameMenuState.Death);
        runeMenuObj.SetActive(state == IGameMenuState.RuneCreate);
        characterMenuObj.SetActive(state == IGameMenuState.CharacterInfo);
        lootMenuObj.SetActive(state == IGameMenuState.Loot);

        if (state != IGameMenuState.Loot && lootableChest)
        {
            lootableChest = null;
        }
        if (state == IGameMenuState.CharacterInfo)
        {
            portait.texture = ITextureDrawer.GetFromPerson(character.status);
        }

        toGame.gameObject.SetActive(state != IGameMenuState.RuneCreate);

        if (state != IGameMenuState.Runtime)
        {
            Time.timeScale = 0;
        }
        else
        {
            Time.timeScale = 1;
        }

        IFontSetter.SetFontForall();
    }
Beispiel #2
0
 private void SetState()
 {
     for (int i = 0; i < states.Length; i++)
     {
         states[i].SetActive((MainMenuState)i == state);
     }
     IFontSetter.SetFontForall();
 }
Beispiel #3
0
    public static void SetTextWithScales(Text t, string msg)
    {
        IFontSetter.SetFont(t);
        RectTransform          trans = t.rectTransform;
        TextGenerationSettings s     = t.GetGenerationSettings(trans.rect.size);
        float slotSize = t.cachedTextGenerator.GetPreferredHeight(msg, s);

        trans.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, slotSize);
        t.text = msg;
    }
Beispiel #4
0
    public void InitializeNode()
    {
        if (dialog.current_index < 0 || dialog.nodes.Length < 1)
        {
            dialog.has_ended = true;
            control.OutDialog();
            switch (dialog.current_index)
            {
            case -2:
                // to trade menu
                break;

            case -3:
                //spetialAction
                dialog.onAction.Invoke();
                break;
            }
            dialog.current_index = 0;
        }
        else
        {
            Button[] bts = parent.GetComponentsInChildren <Button> ();
            for (int i = 0; i < bts.Length; i++)
            {
                GameObject.Destroy(bts [i].gameObject);
            }
            float    end_Scale = 0;
            Button[] bN        = new Button[dialog.currentNode.answers.Length];
            for (int i = 0; i < dialog.currentNode.answers.Length; i++)
            {
                Button     bt    = null;
                GameObject bPref = (GameObject)Resources.Load("Prefabs/DialogSlot");
                bt = Button.Instantiate(bPref, parent).GetComponent <Button> ();
                RectTransform trans = bt.GetComponent <RectTransform> ();
                trans.anchoredPosition = -Vector2.up * end_Scale + new Vector2(10, -10);
                Text t = bt.GetComponent <Text> ();
                IFontSetter.SetFont(t);
                IControl.SetTextWithScales(t, dialog.currentNode.answers [i]);
                float scale = trans.rect.height;
                end_Scale += scale + 15;
                bt.onClick.RemoveAllListeners();
                int node_next = dialog.currentNode.answersTr[i].nextNode;
                bt.onClick.AddListener(delegate {
                    dialog.current_index = node_next;
                    InitializeNode();
                });
                bN [i] = bt;
            }
            parent.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, end_Scale + 10);
            IFontSetter.SetFont(for_answer);
            IControl.SetTextWithScales(for_answer, dialog.currentNode.npc_text);
        }
    }
Beispiel #5
0
    private void Start()
    {
        IFontSetter.SetFontForall();
        PrepareToStart();
        SetState();
        LoadSettings();
        SetQualitySettings(settings.quality);
        float v = (settings.fontSize - 11) / 15f;

        fontSize.value = v;
        fontSize.onValueChanged.Invoke(v);
    }
Beispiel #6
0
    private void Start()
    {
        doll = IDoll.FindObjectOfType <IDoll> ();
        IFontSetter.SetFontForall();
        PrepareForStart();


        SetMaybeClasses();

        DollUpdate();

        SetState();
    }
Beispiel #7
0
    private void SetState()
    {
        for (int i = 0; i < state_objs.Length; i++)
        {
            state_objs[i].SetActive((CreateMenuState)i == state);
            Color gray = new Color(0.6f, 0.6f, 0.6f, 1);

            if ((CreateMenuState)i == state)
            {
                gray = new Color(0.6f, 0.8f, 0.6f, 1);
            }

            states[i].image.color = gray;
        }
        IFontSetter.SetFontForall();
    }
Beispiel #8
0
    public static void SetFontForall()
    {
        Text[] texts = Resources.FindObjectsOfTypeAll <Text> ();

        for (int i = 0; i < texts.Length; i++)
        {
            SetFont(texts [i]);
        }

        if (!setter)
        {
            GameObject sobj = new GameObject();
            sobj.name = "FontSetter";
            sobj.AddComponent <IFontSetter> ();
            setter = sobj.GetComponent <IFontSetter> ();
        }
    }
Beispiel #9
0
    public InventorySlot[] FillItemsTo(RectTransform parent, int[] items)
    {
        GameObject prefab = (GameObject)Resources.Load("Prefabs/Slot");

        Button[] buttons = parent.GetComponentsInChildren <Button>();
        for (int i = 0; i < buttons.Length; i++)
        {
            Destroy(buttons[i].gameObject);
        }
        List <InventorySlot> bts = new List <InventorySlot> ();

        List <int>   has = new List <int> ();
        List <ISlot> upd = new List <ISlot> ();

        for (int i = 0; i < items.Length; i++)
        {
            if (!HasInt(has.ToArray(), items[i]))
            {
                upd.Add(new ISlot(items [i]));
                has.Add(items [i]);
            }
            else
            {
                int index = -1;
                for (int n = 0; n < upd.Count; n++)
                {
                    if (upd[n].id == items[i])
                    {
                        index = n;
                        break;
                    }
                }
                if (index > -1)
                {
                    upd [index].Add();
                }
            }
        }

        float slotSize = prefab.GetComponent <RectTransform>().rect.height;

        for (int i = 0; i < upd.Count; i++)
        {
            RectTransform trans = ((GameObject)Instantiate(prefab)).GetComponent <RectTransform> ();
            trans.SetParent(parent);
            trans.anchoredPosition = -Vector2.up * slotSize * i;
            trans.GetComponentInChildren <RawImage>().texture = IItemAsset.LoadTexture(upd[i].id);
            string num = "";
            if (upd[i].count > 1)
            {
                num = "(" + upd [i].count + ")";
            }
            Text t = trans.GetComponentInChildren <Text> ();
            IFontSetter.SetFont(t);
            t.text = IItemAsset.items[upd[i].id].name + num;

            trans.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, parent.rect.width);
            Button bt = trans.GetComponent <Button>();

            Color c = Color.white;

            if (!character.status.CanUseItem(upd[i].id))
            {
                c = new Color(1f, 0.5f, 0.5f);
            }

            bt.image.color = c;

            bts.Add(new InventorySlot(upd[i].id, bt));
        }

        parent.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, slotSize * upd.Count);

        return(bts.ToArray());
    }
Beispiel #10
0
    private void PrepareToStart()
    {
        fontSize.onValueChanged.RemoveAllListeners();
        fontSize.onValueChanged.AddListener(delegate {
            int v = 11 + (int)(fontSize.value * 15);
            fontSize.GetComponentInChildren <Text>().text = "Размер шрифта : " + v;
            settings.fontSize = v;
            IFontSetter.SetFontForall();
        });

        removeButton.onClick.RemoveAllListeners();
        removeButton.onClick.AddListener(delegate {
            RemoveGame();
            CloseRemoveMenu();
            Start();
        });

        cancelRemoveButton.onClick.RemoveAllListeners();
        cancelRemoveButton.onClick.AddListener(delegate {
            CloseRemoveMenu();
        });

        for (int i = 0; i < removeGame.Length; i++)
        {
            int index = i;
            removeGame [i].onClick.RemoveAllListeners();
            removeGame [i].onClick.AddListener(delegate {
                toRemoveIndex = index;
                OpenRemoveMenu();
            }
                                               );
            removeGame [i].gameObject.SetActive(IGame.Exist(index));
        }

        for (int i = 0; i < loadGame.Length; i++)
        {
            loadGame[i].onClick.RemoveAllListeners();
            int index = i;
            loadGame[i].onClick.AddListener(delegate {
                LoadGameFromSlot(index);
            });

            string st = "> Пусто <";

            if (IGame.Exist(i))
            {
                IGame loaded = IGame.Load(i);
                st = ((IStatus)loaded.FindByName("Player")).characterName + " : " + loaded.date.ToLongDateString() + " " + loaded.date.ToLongTimeString();
            }

            RawImage img = loadGame [i].GetComponentInChildren <RawImage> ();
            if (IGame.Exist(i))
            {
                img.texture = IGame.LoadPicture(i);
            }
            else
            {
                img.texture = IItemAsset.LoadTexture(-1);
            }

            loadGame [i].GetComponentInChildren <Text> ().text = st;
        }

        for (int i = 0; i < stateControls.Length; i++)
        {
            stateControls[i].onClick.RemoveAllListeners();
            int index = i;
            stateControls[i].onClick.AddListener(delegate {
                state = (MainMenuState)index;
                SetState();
            });
        }
        for (int i = 0; i < startNew.Length; i++)
        {
            string text = "Новый персонаж";
            startNew[i].onClick.RemoveAllListeners();
            if (IGame.Exist(i))
            {
                text = "Слот занят";
            }
            else
            {
                int index = i;
                startNew[i].onClick.AddListener(delegate {
                    LoadCreateScene(index);
                });
            }
            startNew [i].GetComponentInChildren <Text> ().text = text;
        }
        for (int i = 0; i < backControls.Length; i++)
        {
            backControls[i].onClick.RemoveAllListeners();
            backControls[i].onClick.AddListener(delegate {
                if (state == MainMenuState.Opts)
                {
                    SaveSettings();
                }
                state = MainMenuState.Main;
                SetState();
            });
        }
    }