Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ButtonRoster.cs
Go to the documentation of this file.
1using UnityEngine;
2using UnityEngine.EventSystems;
3using UnityEngine.UI;
4
5public class ButtonRoster : UIButton, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
6{
7 public Chara chara;
8
9 public float iconPivot;
10
11 public Image barMood;
12
14
15 public RectTransform rect;
16
18
19 private static Gradient gradient;
20
22
23 public void SetChara(Chara c)
24 {
25 chara = c;
27 bool flag = roster.extra.portrait && !chara.GetIdPortrait().IsEmpty();
29 portrait.SetActive(flag && !roster.extra.onlyName);
30 icon.enabled = !flag && !roster.extra.onlyName;
31 icon.rectTransform.anchoredPosition = new Vector2(0f, roster.extra.width / 2);
32 Refresh();
33 }
34
35 public void Refresh()
36 {
37 if (gradient == null)
38 {
40 }
41 float num = Mathf.Clamp((float)chara.hp / (float)chara.MaxHP, 0f, 1f);
42 barMood.Rect().localScale = new Vector3(num, 1f, 1f);
43 barMood.color = gradient.Evaluate(num);
44 Color c = EClass.Colors.Dark.gradientHP.Evaluate((float)chara.hp / (float)chara.MaxHP);
45 mainText.text = "".TagColor(c, chara.hp.ToString() ?? "");
46 mainText.SetActive(roster.extra.showHP);
48 {
50 }
51 else
52 {
53 textName.text = "".TagColor(c, chara.NameSimple);
54 }
55 textName.SetActive(roster.extra.onlyName);
56 this.SetOnClick(delegate
57 {
58 bool flag = EClass.ui.IsActive;
59 if (flag)
60 {
61 LayerInventory layer = EClass.ui.GetLayer<LayerInventory>();
62 if ((bool)layer && layer.Inv.owner.IsPCFaction && layer.Inv.currency == CurrencyType.None)
63 {
64 flag = false;
65 }
66 }
67 if (chara.IsPC || chara.IsDisabled || !EClass.pc.HasNoGoal || flag)
68 {
69 SE.Beep();
70 }
71 else
72 {
73 EClass.ui.CloseLayers();
75 }
76 });
77 }
78
79 public override void OnPointerEnter(PointerEventData eventData)
80 {
81 if ((bool)WidgetMouseover.Instance)
82 {
83 WidgetMouseover.Instance.roster = chara;
84 }
85 }
86
87 public override void OnPointerExit(PointerEventData eventData)
88 {
89 if ((bool)WidgetMouseover.Instance)
90 {
91 WidgetMouseover.Instance.roster = null;
92 }
93 }
94}
CurrencyType
Definition: CurrencyType.cs:2
void Refresh()
Definition: ButtonRoster.cs:35
void SetChara(Chara c)
Definition: ButtonRoster.cs:23
override void OnPointerEnter(PointerEventData eventData)
Definition: ButtonRoster.cs:79
Portrait portrait
Definition: ButtonRoster.cs:17
override void OnPointerExit(PointerEventData eventData)
Definition: ButtonRoster.cs:87
UIText textName
Definition: ButtonRoster.cs:13
float iconPivot
Definition: ButtonRoster.cs:9
static Gradient gradient
Definition: ButtonRoster.cs:19
WidgetRoster roster
Definition: ButtonRoster.cs:21
RectTransform rect
Definition: ButtonRoster.cs:15
int hp
Definition: Card.cs:226
string NameSimple
Definition: Card.cs:2015
virtual bool IsPCFaction
Definition: Card.cs:2129
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:5355
Definition: Chara.cs:10
override bool IsPC
Definition: Chara.cs:597
override bool IsDisabled
Definition: Chara.cs:570
override int MaxHP
Definition: Chara.cs:693
string GetIdPortrait()
Definition: Chara.cs:7334
bool HasNoGoal
Definition: Chara.cs:821
SkinColorProfile Dark
Definition: EClass.cs:5
static ColorProfile Colors
Definition: EClass.cs:38
static Chara pc
Definition: EClass.cs:14
static UI ui
Definition: EClass.cs:16
Card owner
Definition: InvOwner.cs:538
CurrencyType currency
Definition: InvOwner.cs:532
static LayerInventory CreateContainer(Card owner)
void SetChara(Chara c, PCCData pccData=null)
Definition: Portrait.cs:138
UD_String_Gradient gradients
Image icon
Definition: UIButton.cs:110
UIText mainText
Definition: UIButton.cs:102
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
static WidgetMouseover Instance
static WidgetRoster Instance
Definition: WidgetRoster.cs:36