Elin Decompiled Documentation EA 23.306 Nightly
Loading...
Searching...
No Matches
WidgetMouseover.cs
Go to the documentation of this file.
1using System;
2using DG.Tweening;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class WidgetMouseover : Widget
7{
8 public static WidgetMouseover Instance;
9
10 public Chara roster;
11
13
14 public LayoutGroup layout;
15
16 public CanvasGroup cg;
17
18 public Tween tween;
19
20 private float timer;
21
22 public override void OnActivate()
23 {
24 Instance = this;
25 Hide(immediate: true);
26 }
27
28 public void Refresh()
29 {
30 timer += Core.delta;
31 PointTarget mouseTarget = EMono.scene.mouseTarget;
32 if (!mouseTarget.hasTargetChanged && timer < 0.1f)
33 {
34 return;
35 }
36 timer = 0f;
37 bool flag = EInput.isShiftDown && mouseTarget.pos.Equals(EMono.pc.pos) && (EMono.pc.ride != null || EMono.pc.parasite != null);
38 if (((!flag && mouseTarget.target == null) || (ActionMode.IsAdv && Input.GetMouseButton(0))) && roster == null)
39 {
40 Hide();
41 return;
42 }
43 string text = "";
44 Card card = mouseTarget.card;
45 if (roster != null && roster.ExistsOnMap)
46 {
47 flag = false;
48 card = roster;
49 }
50 if (flag)
51 {
52 if (EMono.pc.ride != null)
53 {
54 text += EMono.pc.ride.GetHoverText();
55 text += EMono.pc.ride.GetHoverText2();
56 }
57 if (EMono.pc.parasite != null)
58 {
59 if (EMono.pc.ride != null)
60 {
61 text += Environment.NewLine;
62 }
63 text += EMono.pc.parasite.GetHoverText();
65 }
66 }
67 else if (card != null)
68 {
69 if (EMono._zone.IsRegion && !card.IsPCFactionOrMinion)
70 {
71 text = "???";
72 }
73 else
74 {
75 text = card.GetHoverText();
76 if (roster == null)
77 {
78 int count = EMono.scene.mouseTarget.cards.Count;
79 if (count > 1)
80 {
81 text += "otherCards".lang((count - 1).ToString() ?? "");
82 }
83 }
84 text += card.GetHoverText2();
85 if (roster == null && mouseTarget.target != card)
86 {
87 text = text + Environment.NewLine + mouseTarget.target.InspectName;
88 }
89 }
90 }
91 else if (mouseTarget.target != null)
92 {
93 text = mouseTarget.target.InspectName;
94 }
95 Show(text);
96 }
97
98 public void Show(string s)
99 {
100 layout.SetActive(enable: true);
101 cg.alpha = 1f;
102 TweenUtil.KillTween(ref tween);
103 textName.text = s;
104 switch (this.Rect().GetAnchor())
105 {
106 case RectPosition.TopLEFT:
107 case RectPosition.BottomLEFT:
108 layout.childAlignment = TextAnchor.MiddleLeft;
109 break;
110 case RectPosition.TopRIGHT:
111 case RectPosition.BottomRIGHT:
112 layout.childAlignment = TextAnchor.MiddleRight;
113 break;
114 default:
115 layout.childAlignment = TextAnchor.MiddleCenter;
116 break;
117 }
118 layout.RebuildLayout();
119 }
120
121 public void Hide(bool immediate = false)
122 {
123 imageBG.raycastTarget = false;
124 if (immediate)
125 {
126 layout.SetActive(enable: false);
127 return;
128 }
129 TweenUtil.KillTween(ref tween);
130 tween = cg.DOFade(0f, 0.3f).OnComplete(delegate
131 {
132 if ((bool)layout)
133 {
134 layout.SetActive(enable: false);
135 }
136 }).SetEase(Ease.InQuad);
137 }
138
139 public override void OnManagerActivate()
140 {
141 base.OnManagerActivate();
142 imageBG.raycastTarget = true;
143 Show("[" + Lang.Get("WidgetMouseover") + "]");
144 }
145
146 public override void OnManagerDeactivate()
147 {
148 base.OnManagerDeactivate();
149 Hide(immediate: true);
150 }
151}
RectPosition
Definition: RectPosition.cs:2
static bool IsAdv
Definition: ActionMode.cs:117
Definition: Card.cs:11
bool ExistsOnMap
Definition: Card.cs:2125
Point pos
Definition: Card.cs:60
Definition: Chara.cs:10
override string GetHoverText()
Definition: Chara.cs:6949
Chara parasite
Definition: Chara.cs:30
Chara ride
Definition: Chara.cs:27
override string GetHoverText2()
Definition: Chara.cs:7025
Definition: Core.cs:14
static float delta
Definition: Core.cs:17
Definition: EMono.cs:4
static Chara pc
Definition: EMono.cs:13
static Zone _zone
Definition: EMono.cs:19
static Scene scene
Definition: EMono.cs:27
Definition: Hide.cs:4
Definition: Lang.cs:6
static string Get(string id)
Definition: Lang.cs:93
bool hasTargetChanged
Definition: PointTarget.cs:20
IInspect target
Definition: PointTarget.cs:16
List< Card > cards
Definition: PointTarget.cs:38
bool Equals(int _x, int _z)
Definition: Point.cs:961
PointTarget mouseTarget
Definition: Scene.cs:135
virtual bool IsRegion
Definition: Spatial.cs:515
Definition: UIText.cs:6
void Show(string s)
void Hide(bool immediate=false)
override void OnManagerActivate()
override void OnManagerDeactivate()
CanvasGroup cg
LayoutGroup layout
override void OnActivate()
static WidgetMouseover Instance
Definition: Widget.cs:7
string InspectName
Definition: IInspect.cs:16