Ejemplo n.º 1
0
        public void Init()
        {
            panel = new UIPanel();

            lv = new LayoutWrapperUIElement(panel, 10, 10, 10, 10, 10, new LayoutVertical());
            lv.children.Add(costPanel);

            {
                var topLabel = new UIText("Buff");
                topLabel.TextColor = new Color(137, 233, 9);
                lv.children.Add(new LayoutElementWrapperUIElement(topLabel));

                var ll = new Layout(0, 0, 0, 0, 10, new LayoutHorizontal());

                buffIcon = new UIImage(ModContent.GetTexture("LansToggleableBuffs/ui/unowned"));
                ll.children.Add(new LayoutElementWrapperUIElement(buffIcon));

                buffName = new UIText("TestName");
                ll.children.Add(new LayoutElementWrapperUIElement(buffName));

                lv.children.Add(ll);

                buffEffect = new UIText("Reduces the chance of consuming any ammunition by 20%. ");
                lv.children.Add(new LayoutElementWrapperUIElement(buffEffect));
            }

            lv.Recalculate();
        }
Ejemplo n.º 2
0
        internal void SetInfo(int buffid, string name, string effect, Texture2D texture)
        {
            costPanel.children.Clear();
            this.buffName.SetText(name);
            this.buffIcon.SetImage(texture);


            var buffdesc = Lang.GetBuffDescription(buffid);

            int itemRarity = 0;

            if (Main.meleeBuff[buffid])
            {
                itemRarity = -10;
            }

            BuffLoader.ModifyBuffTip(buffid, ref buffdesc, ref itemRarity);
            this.buffEffect.SetText(buffdesc);
            lv.Recalculate();
        }
        public void Revalidate()
        {
            needValidate = false;
            var buffSize = LansToggleableBuffs.instance.getBuffLength();

            var unownedTexture = ModContent.GetTexture("LansToggleableBuffs/ui/unowned");
            var mp             = Main.player[Main.myPlayer].GetModPlayer <LPlayer>();

            panelwrapper.children.Clear();

            int buffIndex = 0;

            foreach (var modBuffValues in LansToggleableBuffs.instance.modBuffValues)
            {
                var modbuffpanel = new Layout(0, 0, 0, 0, 10, new LayoutVertical());

                var modlabel = new UIText("" + modBuffValues.saveTag);
                modlabel.TextColor = new Color(232, 181, 16);
                modbuffpanel.children.Add(new LayoutElementWrapperUIElement(modlabel));

                var modbuffgridpanel = new Layout(0, 0, 0, 0, 10, buffGrid);
                modbuffpanel.children.Add(modbuffgridpanel);

                //populate modbuffgridpanel

                foreach (var buffValue in modBuffValues.buffs)
                {
                    var currentBuffIndex = buffIndex;
                    buffIndex += 1;

                    var buffpanel = new Layout(0, 0, 0, 0, 10, new LayoutVertical());

                    var buff = LansToggleableBuffs.instance.getBuff(currentBuffIndex);

                    buff.texture = Main.buffTexture[buff.id];

                    {
                        UIImage icon = new UIImage(buff.texture);
                        buffpanel.children.Add(new LayoutElementWrapperUIElement(icon));

                        if (!mp.boughtbuffsavail[currentBuffIndex])
                        {
                            var ownedImages = new UIImageButtonLabel(unownedTexture, "Buy buff " + buff.name);

                            buffpanel.children.Add(new LayoutElementWrapperUIElement(ownedImages));

                            ownedImages.OnClick += delegate(UIMouseEvent evt, UIElement listeningElement)
                            {
                                var tempBuff = LansToggleableBuffs.instance.getBuff(currentBuffIndex);

                                if (!mp.boughtbuffsavail[currentBuffIndex])
                                {
                                    bool canbuy = true;
                                    foreach (var v in tempBuff.cost)
                                    {
                                        if (!v.CheckBuy())
                                        {
                                            canbuy = false;
                                            break;
                                        }
                                    }

                                    if (canbuy)
                                    {
                                        foreach (var v in tempBuff.cost)
                                        {
                                            v.Buy();
                                        }
                                        mp.boughtbuffsavail[currentBuffIndex] = true;
                                        needValidate = true;
                                    }
                                    else
                                    {
                                        Main.NewText("You do not have enough items to buy this!", new Color(255, 0, 0));
                                    }
                                }
                            };

                            ownedImages.OnMouseOver += delegate(UIMouseEvent evt, UIElement listeningElement)
                            {
                                TooltipPanel.Instance.SetInfo(buff.cost, buff.id, buff.name, buff.effect, buff.texture);
                            };
                        }
                        else
                        {
                            var toggleButtons = new UIHoverImageToggleButton(buttonPlayTexture1, buttonPlayTexture2, "Disable buff " + buff.name, "Use buff " + buff.name);

                            toggleButtons.IsChecked = mp.buffsavail[currentBuffIndex];
                            if (mp.buffsavail[currentBuffIndex])
                            {
                                toggleButtons.SetImage(buttonPlayTexture1);
                            }
                            else
                            {
                                toggleButtons.SetImage(buttonPlayTexture2);
                            }

                            toggleButtons.OnChecked += delegate(bool val)
                            {
                                Main.player[Main.myPlayer].GetModPlayer <LPlayer>().buffsavail[currentBuffIndex] = val;
                                needValidate = true;
                            };

                            toggleButtons.OnMouseOver += delegate(UIMouseEvent evt, UIElement listeningElement)
                            {
                                TooltipPanel.Instance.SetInfo(buff.id, buff.name, buff.effect, buff.texture);
                            };

                            buffpanel.children.Add(new LayoutElementWrapperUIElement(toggleButtons));
                        }
                    }

                    modbuffgridpanel.children.Add(buffpanel);
                }

                panelwrapper.children.Add(modbuffpanel);
            }

            panelwrapper.Recalculate();
        }