Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ButtonAbility Class Reference
Inheritance diagram for ButtonAbility:
UIButton IMouseHint IUISkin

Public Member Functions

void SetAct (Chara _chara, Element e)
 
void OnDrag (PointerEventData data)
 
override void OnPointerUp (PointerEventData eventData)
 
void Use ()
 
void HoldAbility ()
 
bool CanAutoUse (Act _act)
 
bool ShowMouseHintLeft ()
 
string GetTextMouseHintLeft ()
 
bool ShowMouseHintRight ()
 
string GetTextMouseHintRight ()
 
override bool CanMiddleClick ()
 
override void OnMiddleClick (bool forceClick)
 
void ToggleFav ()
 
void RefreshFavIcon ()
 
- Public Member Functions inherited from UIButton
virtual bool CanMiddleClick ()
 
virtual void OnMiddleClick (bool forceClick)
 
void SetItem (Item i)
 
virtual void RefreshItem ()
 
virtual void OnHover ()
 
void Toggle ()
 
void ToggleCheck ()
 
void SetCheck (bool check)
 
void SetToggle (bool isOn, Action< bool > onToggle=null)
 
void SetToggleWithScore (bool isOn, Action< bool > onToggle, int? score)
 
void SetTooltip (Action< UITooltip > onShowTooltip=null, bool enable=true)
 
void SetTooltip (string id, Action< UITooltip > onShowTooltip=null, bool enable=true)
 
void SetTooltipLang (string lang=null)
 
virtual void ShowTooltip ()
 
void ShowTooltipForced (bool ignoreWhenRightClick=true)
 
override void OnPointerDown (PointerEventData eventData)
 
override void OnPointerClick (PointerEventData eventData)
 
override void OnPointerUp (PointerEventData eventData)
 
void OnPointerUpOnDrag (PointerEventData eventData)
 
void _OnPress ()
 
void OnPress ()
 
void AddHighlight (Func< bool > killCondition)
 
void DoHighlightTransition (bool instant=false)
 
void DoNormalTransition (bool instant=true)
 
override Selectable FindSelectableOnDown ()
 
override Selectable FindSelectableOnUp ()
 
override Selectable FindSelectableOnLeft ()
 
override Selectable FindSelectableOnRight ()
 
void SetNavigation (UIButton up, UIButton down=null, UIButton left=null, UIButton right=null)
 
override bool IsActive ()
 
void SetInteractableWithAlpha (bool enable)
 
virtual void ApplySkin ()
 
void ApplySkin ()
 
bool ShowMouseHintLeft ()
 
string GetTextMouseHintLeft ()
 
bool ShowMouseHintRight ()
 
string GetTextMouseHintRight ()
 

Static Public Member Functions

static bool TryUse (Act act, Card tg=null, Point pos=null, Card catalyst=null, bool first=true, bool mouse=true)
 
static bool SpecialHoldAction (Act act)
 
- Static Public Member Functions inherited from UIButton
static void UpdateButtons ()
 
static void TryHihlight ()
 
static void TryShowTip (Transform root=null, bool highlight=true, bool ignoreWhenRightClick=true)
 
static void TryShowTip< T > (Transform root=null, bool highlight=true, bool ignoreWhenRightClick=true)
 

Public Attributes

SourceElement.Row source
 
IDragParent dragParent
 
UIText textStock
 
Image imageType
 
Image imageFav
 
Transform attach
 
Transform transFav
 
Chara chara
 
Act act
 
bool dragged
 
- Public Attributes inherited from UIButton
UIText mainText
 
UIText subText
 
UIText subText2
 
UIText keyText
 
Image icon
 
Image imageCheck
 
Graphic[] targetGraphics
 
float scaleIcon = 1f
 
float slideX
 
float navigationFix
 
bool isChecked
 
bool instantClick = true
 
UISelectableGroup group
 
TooltipData tooltip
 
SoundData soundClick
 
SoundData soundHighlight
 
Transform animeTarget
 
Anime animeClick
 
Anime animeHold
 
ButtonType buttonType
 
BaseSkinRoot skinRoot
 
Action onDoubleClick
 
Action onRightClick
 
Action< int > onInputWheel
 
object refObj
 
int refInt
 
string refStr
 
bool animating
 
bool selected
 
Vector3 originalIconScale = Vector3.one
 
UIButton highlightTarget
 
Item item
 

Static Public Attributes

static Act hotkeyAct
 
static float hotkeyTimer
 
static bool usedMouseKey
 
static bool lockUse
 
- Static Public Attributes inherited from UIButton
static bool DoSlide
 
static bool locked
 
static UIButton lastButton
 
static UIButton lastHovered
 
static UIButton currentHighlight
 
static UIButton currentPressedButton
 
static float lastClicked
 
static float doubleClickTime = 0.4f
 
static Vector2 buttonPos
 
static Action onPressed
 
static List< UIButtonbuttons = new List<UIButton>()
 
static Action actionTooltip
 

Additional Inherited Members

- Protected Member Functions inherited from UIButton
override void Awake ()
 
override void OnEnable ()
 
override void DoStateTransition (SelectionState state, bool instant)
 
- Properties inherited from UIButton
List< Graphic > Graphics [get]
 
virtual bool CanDragLeftButton [get]
 

Detailed Description

Definition at line 6 of file ButtonAbility.cs.

Member Function Documentation

◆ CanAutoUse()

bool ButtonAbility.CanAutoUse ( Act  _act)
inline

Definition at line 250 of file ButtonAbility.cs.

251 {
252 if (_act.TargetType.CanSelectSelf)
253 {
255 {
256 return !_act.LocalAct;
257 }
258 return true;
259 }
260 return false;
261 }
virtual bool LocalAct
Definition: ACT.cs:169
virtual TargetType TargetType
Definition: ACT.cs:140
Definition: EClass.cs:5
static Zone _zone
Definition: EClass.cs:20
virtual bool IsRegion
Definition: Spatial.cs:501
virtual bool CanSelectSelf
Definition: TargetType.cs:37

References EClass._zone, TargetType.CanSelectSelf, Spatial.IsRegion, Act.LocalAct, and Act.TargetType.

Referenced by ShowMouseHintRight(), and Use().

◆ CanMiddleClick()

override bool ButtonAbility.CanMiddleClick ( )
inlinevirtual

Reimplemented from UIButton.

Definition at line 283 of file ButtonAbility.cs.

284 {
285 return EClass.ui.AllowInventoryInteractions;
286 }
static UI ui
Definition: EClass.cs:16

References EClass.ui.

◆ GetTextMouseHintLeft()

string ButtonAbility.GetTextMouseHintLeft ( )
inline

Implements IMouseHint.

Definition at line 268 of file ButtonAbility.cs.

269 {
270 return "";
271 }

◆ GetTextMouseHintRight()

string ButtonAbility.GetTextMouseHintRight ( )
inline

Implements IMouseHint.

Definition at line 278 of file ButtonAbility.cs.

279 {
280 return "actUse".lang();
281 }

◆ HoldAbility()

void ButtonAbility.HoldAbility ( )
inline

Definition at line 244 of file ButtonAbility.cs.

245 {
247 SE.SelectHotitem();
248 }
SourceElement.Row source
Definition: ButtonAbility.cs:8
static Player player
Definition: EClass.cs:12
void SetCurrentHotItem(HotItem item)
Definition: Player.cs:2046

References EClass.player, Player.SetCurrentHotItem(), and source.

Referenced by OnMiddleClick(), and Use().

◆ OnDrag()

void ButtonAbility.OnDrag ( PointerEventData  data)
inline

Definition at line 80 of file ButtonAbility.cs.

81 {
82 if (dragParent != null && data.button == PointerEventData.InputButton.Left)
83 {
84 if (!dragged)
85 {
86 dragged = true;
89 }
90 else
91 {
92 dragParent.OnDrag(this);
93 }
94 }
95 }
IDragParent dragParent
void OnPointerUpOnDrag(PointerEventData eventData)
Definition: UIButton.cs:488
void OnStartDrag(UIButton b)
void OnDrag(UIButton b)

References dragged, dragParent, IDragParent.OnDrag(), UIButton.OnPointerUpOnDrag(), and IDragParent.OnStartDrag().

◆ OnMiddleClick()

override void ButtonAbility.OnMiddleClick ( bool  forceClick)
inlinevirtual

Reimplemented from UIButton.

Definition at line 288 of file ButtonAbility.cs.

289 {
291 {
292 ToggleFav();
293 }
294 EInput.middleMouse.pressedLongAction = delegate
295 {
296 if (EClass.ui.AllowInventoryInteractions)
297 {
298 HoldAbility();
299 EInput.Consume();
300 }
301 };
302 }
void HoldAbility()
bool clicked
Definition: ButtonState.cs:37
Definition: EInput.cs:8
static ButtonState middleMouse
Definition: EInput.cs:353
static void Consume(int _skipFrame)
Definition: EInput.cs:656

References ButtonState.clicked, EInput.Consume(), HoldAbility(), EInput.middleMouse, ToggleFav(), and EClass.ui.

◆ OnPointerUp()

override void ButtonAbility.OnPointerUp ( PointerEventData  eventData)
inline

Definition at line 97 of file ButtonAbility.cs.

98 {
99 if (dragged)
100 {
101 dragged = false;
102 dragParent.OnEndDrag(this);
103 }
104 else
105 {
106 base.OnPointerUp(eventData);
107 }
108 }
void OnEndDrag(UIButton b, bool cancel=false)

References dragged, dragParent, and IDragParent.OnEndDrag().

◆ RefreshFavIcon()

void ButtonAbility.RefreshFavIcon ( )
inline

Definition at line 320 of file ButtonAbility.cs.

321 {
322 bool enable = EClass.player.favAbility.Contains(source.id);
323 imageFav.SetActive(enable);
324 }
HashSet< int > favAbility
Definition: Player.cs:868

References Player.favAbility, imageFav, EClass.player, and source.

Referenced by SetAct(), and ToggleFav().

◆ SetAct()

void ButtonAbility.SetAct ( Chara  _chara,
Element  e 
)
inline

Definition at line 37 of file ButtonAbility.cs.

38 {
39 source = e.source;
40 chara = _chara;
42 if (act == null)
43 {
44 Debug.Log(source.alias);
45 }
46 Sprite iconType = act.TargetType.IconType;
47 imageType.SetActive(iconType);
48 imageType.sprite = iconType;
51 {
52 textStock.SetActive(e is Spell);
53 textStock.text = e.vPotential.ToShortNumber();
54 onRightClick = delegate
55 {
56 if (EClass.ui.IsActive)
57 {
58 SE.BeepSmall();
59 }
60 else
61 {
62 Use();
63 }
64 };
65 }
66 else
67 {
69 }
70 SetTooltip("note", delegate(UITooltip t)
71 {
72 e.WriteNote(t.note, chara.elements, delegate
73 {
74 e._WriteNote(t.note, chara, act);
75 });
76 });
78 }
Definition: ACT.cs:6
static Act Create(int id)
Definition: ACT.cs:36
new void SetImage(Image image)
Definition: ACT.cs:452
UIText textStock
void RefreshFavIcon()
ElementContainerCard elements
Definition: Card.cs:37
static Game game
Definition: EClass.cs:8
SourceElement.Row source
Definition: ELEMENT.cs:263
int vPotential
Definition: ELEMENT.cs:246
virtual string Name
Definition: ELEMENT.cs:294
void WriteNote(UINote n, ElementContainer owner=null, Action< UINote > onWriteNote=null)
Definition: ELEMENT.cs:574
bool altAbility
Definition: Game.cs:267
Definition: SPELL.cs:468
virtual Sprite IconType
Definition: TargetType.cs:43
Image icon
Definition: UIButton.cs:110
UIText mainText
Definition: UIButton.cs:102
void SetTooltip(Action< UITooltip > onShowTooltip=null, bool enable=true)
Definition: UIButton.cs:361
Action onRightClick
Definition: UIButton.cs:146
void SetText(string s)
Definition: UIText.cs:159
UINote note
Definition: UITooltip.cs:21

References act, Game.altAbility, chara, ACT.Create(), Debug, Card.elements, EClass.game, UIButton.icon, TargetType.IconType, imageType, UIButton.mainText, Element.Name, UITooltip.note, UIButton.onRightClick, RefreshFavIcon(), Act.SetImage(), UIText.SetText(), UIButton.SetTooltip(), source, Element.source, Act.TargetType, textStock, EClass.ui, Use(), Element.vPotential, and Element.WriteNote().

Referenced by LayerAbility.SelectGroup().

◆ ShowMouseHintLeft()

bool ButtonAbility.ShowMouseHintLeft ( )
inline

Implements IMouseHint.

Definition at line 263 of file ButtonAbility.cs.

264 {
265 return false;
266 }

◆ ShowMouseHintRight()

bool ButtonAbility.ShowMouseHintRight ( )
inline

Implements IMouseHint.

Definition at line 273 of file ButtonAbility.cs.

274 {
275 return CanAutoUse(ACT.Create(source));
276 }
bool CanAutoUse(Act _act)

References CanAutoUse(), ACT.Create(), and source.

◆ SpecialHoldAction()

static bool ButtonAbility.SpecialHoldAction ( Act  act)
inlinestatic

Definition at line 209 of file ButtonAbility.cs.

210 {
211 if (!(EClass.pc.elements.GetElement(act.id) is Act { id: var id } act2))
212 {
213 return false;
214 }
215 if (id == 8230 || id == 8232)
216 {
217 bool flag = true;
218 int num = 0;
219 foreach (Thing item in EClass.pc.things.List((Thing t) => true, onlyAccessible: true))
220 {
221 if (!item.IsIdentified)
222 {
223 if ((EClass.pc.mana.value < act2.GetCost(EClass.pc).cost && !flag) || act2.vPotential <= 0)
224 {
225 break;
226 }
227 if (item.rarity < Rarity.Mythical || act2.id != 8230)
228 {
230 num++;
231 flag = false;
232 }
233 }
234 }
235 if (num == 0)
236 {
237 Msg.Say("identify_nothing");
238 }
239 return true;
240 }
241 return false;
242 }
Rarity
Definition: Rarity.cs:2
Definition: ACT.cs:62
Point pos
Definition: Card.cs:55
ThingContainer things
Definition: Card.cs:34
bool UseAbility(string idAct, Card tc=null, Point pos=null, bool pt=false)
Definition: Chara.cs:5228
Stats mana
Definition: Chara.cs:963
static Chara pc
Definition: EClass.cs:14
Element GetElement(string alias)
int id
Definition: ELEMENT.cs:240
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
virtual int value
Definition: Stats.cs:56
List< Thing > List(Func< Thing, bool > func, bool onlyAccessible=false)
Definition: Thing.cs:8
Item item
Definition: UIButton.cs:172

References act, Card.elements, ElementContainer.GetElement(), Element.id, UIButton.item, ThingContainer.List(), Chara.mana, EClass.pc, Card.pos, Msg.Say(), Element.source, Card.things, Chara.UseAbility(), and Stats.value.

Referenced by TryUse().

◆ ToggleFav()

void ButtonAbility.ToggleFav ( )
inline

Definition at line 304 of file ButtonAbility.cs.

305 {
306 if (EClass.player.favAbility.Contains(source.id))
307 {
308 EClass.player.favAbility.Remove(source.id);
309 SE.Tab();
310 }
311 else
312 {
314 SE.Tab();
315 }
318 }
UIDynamicList list
Definition: LayerAbility.cs:25
static LayerAbility Instance
Definition: LayerAbility.cs:21
override void Redraw()

References Player.favAbility, LayerAbility.Instance, LayerAbility.list, EClass.player, UIDynamicList.Redraw(), RefreshFavIcon(), and source.

Referenced by OnMiddleClick().

◆ TryUse()

static bool ButtonAbility.TryUse ( Act  act,
Card  tg = null,
Point  pos = null,
Card  catalyst = null,
bool  first = true,
bool  mouse = true 
)
inlinestatic

Definition at line 129 of file ButtonAbility.cs.

130 {
131 if (lockUse && first)
132 {
133 return false;
134 }
135 bool flag = false;
136 if (tg == null)
137 {
138 tg = EClass.pc;
139 }
140 if (pos == null)
141 {
142 pos = EClass.pc.pos.Copy();
143 }
144 if (first)
145 {
146 lockUse = true;
147 hotkeyAct = act;
148 if (EInput.GetHotkey() != -1)
149 {
150 mouse = false;
151 hotkeyTimer = 0f;
152 }
153 else
154 {
156 }
157 }
159 {
160 if ((mouse && EInput.rightMouse.pressedLong) || (!mouse && hotkeyTimer >= 0.45f))
161 {
163 flag = true;
164 hotkeyTimer = 1f;
165 }
166 if ((mouse && EInput.rightMouse.pressing) || (!mouse && EInput.GetHotkey() != -1 && hotkeyTimer < 1f))
167 {
169 EClass.core.actionsNextFrame.Add(delegate
170 {
171 TryUse(act, tg, pos, catalyst, first: false, mouse);
172 });
173 if (first)
174 {
175 EClass.core.actionsNextFrame.Add(delegate
176 {
177 EInput.rightMouse.down = false;
178 EInput.rightMouse.consumed = false;
179 EInput.rightMouse.pressing = true;
180 if (usedMouseKey)
181 {
182 EInput.rightMouse.usedKey = true;
183 }
184 else
185 {
186 EInput.rightMouse.usedMouse = true;
187 }
188 });
189 }
190 return false;
191 }
192 }
193 lockUse = false;
194 if (flag && SpecialHoldAction(act))
195 {
197 }
198 else if (EClass.pc.UseAbility(act.source.alias, tg, pos, flag))
199 {
201 }
202 if (catalyst != null)
203 {
204 LayerInventory.SetDirty(catalyst.Thing);
205 }
206 return false;
207 }
virtual bool HaveLongPressAction
Definition: ACT.cs:131
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
static Act hotkeyAct
static bool usedMouseKey
static float hotkeyTimer
static bool lockUse
static bool TryUse(Act act, Card tg=null, Point pos=null, Card catalyst=null, bool first=true, bool mouse=true)
static bool SpecialHoldAction(Act act)
bool usedKey
Definition: ButtonState.cs:55
bool pressing
Definition: ButtonState.cs:35
void Consume()
Definition: ButtonState.cs:184
bool pressedLong
Definition: ButtonState.cs:64
virtual Thing Thing
Definition: Card.cs:1934
Definition: Core.cs:14
static float delta
Definition: Core.cs:17
static Core core
Definition: EClass.cs:6
static ButtonState rightMouse
Definition: EInput.cs:351
static int GetHotkey()
Definition: EInput.cs:975
static void SetDirty(Thing t)
void EndTurn(bool consume=true)
Definition: Player.cs:1866
Point Copy()
Definition: Point.cs:467

References act, BaseCore.actionsNextFrame, ButtonState.Consume(), Point.Copy(), EClass.core, Core.delta, Player.EndTurn(), EInput.GetHotkey(), Act.HaveLongPressAction, hotkeyAct, hotkeyTimer, lockUse, EClass.pc, EClass.player, Card.pos, ButtonState.pressedLong, ButtonState.pressing, EInput.rightMouse, LayerInventory.SetDirty(), Element.source, SpecialHoldAction(), TryUse(), Chara.UseAbility(), ButtonState.usedKey, and usedMouseKey.

Referenced by TraitCatalyst.OnUse(), HotItemAct.TrySetAct(), TraitCatalyst.TrySetHeldAct(), TryUse(), and Use().

◆ Use()

void ButtonAbility.Use ( )
inline

Definition at line 110 of file ButtonAbility.cs.

111 {
112 if (!EClass.pc.HasNoGoal)
113 {
114 SE.BeepSmall();
115 }
116 else if (CanAutoUse(act))
117 {
118 if (TryUse(act) && EClass.pc.ai.IsNoGoal)
119 {
121 }
122 }
123 else
124 {
125 HoldAbility();
126 }
127 }
virtual bool IsNoGoal
Definition: AIAct.cs:74
AIAct ai
Definition: Chara.cs:187
bool HasNoGoal
Definition: Chara.cs:821

References act, Chara.ai, CanAutoUse(), Player.EndTurn(), Chara.HasNoGoal, HoldAbility(), AIAct.IsNoGoal, EClass.pc, EClass.player, and TryUse().

Referenced by SetAct().

Member Data Documentation

◆ act

Act ButtonAbility.act

Definition at line 24 of file ButtonAbility.cs.

Referenced by SetAct(), SpecialHoldAction(), TryUse(), and Use().

◆ attach

Transform ButtonAbility.attach

Definition at line 18 of file ButtonAbility.cs.

Referenced by LayerAbility.ClearHotElement().

◆ chara

Chara ButtonAbility.chara

Definition at line 22 of file ButtonAbility.cs.

Referenced by SetAct().

◆ dragged

bool ButtonAbility.dragged

Definition at line 27 of file ButtonAbility.cs.

Referenced by OnDrag(), and OnPointerUp().

◆ dragParent

IDragParent ButtonAbility.dragParent

Definition at line 10 of file ButtonAbility.cs.

Referenced by OnDrag(), and OnPointerUp().

◆ hotkeyAct

Act ButtonAbility.hotkeyAct
static

Definition at line 29 of file ButtonAbility.cs.

Referenced by TryUse().

◆ hotkeyTimer

float ButtonAbility.hotkeyTimer
static

Definition at line 31 of file ButtonAbility.cs.

Referenced by TryUse().

◆ imageFav

Image ButtonAbility.imageFav

Definition at line 16 of file ButtonAbility.cs.

Referenced by RefreshFavIcon().

◆ imageType

Image ButtonAbility.imageType

Definition at line 14 of file ButtonAbility.cs.

Referenced by SetAct().

◆ lockUse

bool ButtonAbility.lockUse
static

Definition at line 35 of file ButtonAbility.cs.

Referenced by TryUse().

◆ source

◆ textStock

UIText ButtonAbility.textStock

Definition at line 12 of file ButtonAbility.cs.

Referenced by SetAct().

◆ transFav

Transform ButtonAbility.transFav

Definition at line 20 of file ButtonAbility.cs.

◆ usedMouseKey

bool ButtonAbility.usedMouseKey
static

Definition at line 33 of file ButtonAbility.cs.

Referenced by TryUse().


The documentation for this class was generated from the following file: