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(); }
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(); }