Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
TraitCatalyst.cs
Go to the documentation of this file.
1public class TraitCatalyst : TraitTool
2{
3 private Act _act;
4
5 public Act act => _act ?? (_act = CreateAct());
6
7 public virtual bool IsRod => true;
8
9 public virtual Act CreateAct()
10 {
11 return ACT.Create(owner.Thing.sourceCard.vals[0].IsEmpty("AI_SelfHarm"));
12 }
13
14 public override bool CanUse(Chara c)
15 {
17 {
18 return false;
19 }
21 }
22
23 public override bool OnUse(Chara c)
24 {
25 return ButtonAbility.TryUse(act, null, null, owner);
26 }
27
28 public override void TrySetHeldAct(ActPlan p)
29 {
30 Card tg = null;
31 p.pos.ListCards().ForeachReverse(delegate(Card a)
32 {
33 if (EClass.pc.CanSee(a) && !a.HasHost && act.IsValidTC(a))
34 {
35 tg = a;
36 return true;
37 }
38 return false;
39 });
40 if (!act.CanPerform(EClass.pc, tg, p.pos))
41 {
42 return;
43 }
44 p.TrySetAct(act.source.GetName(), delegate
45 {
46 if (tg != null && !tg.ExistsOnMap)
47 {
48 return false;
49 }
50 Point point = ((tg != null && tg.ExistsOnMap) ? tg.pos : p.pos);
51 if (!act.CanPerform(EClass.pc, tg, point))
52 {
53 return false;
54 }
55 return (p.performed && act.CanPressRepeat) ? EClass.pc.UseAbility(act.source.alias, tg, point) : ButtonAbility.TryUse(act, tg, point, owner);
57 }
58}
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
Definition: ACT.cs:6
static Act Create(int id)
Definition: ACT.cs:36
Point pos
Definition: ActPlan.cs:149
bool TrySetAct(string lang, Func< bool > onPerform, Card tc, CursorInfo cursor=null, int dist=1, bool isHostileAct=false, bool localAct=true, bool canRepeat=false)
Definition: ActPlan.cs:344
bool performed
Definition: ActPlan.cs:153
Definition: ACT.cs:62
virtual bool CanPressRepeat
Definition: ACT.cs:119
virtual bool LocalAct
Definition: ACT.cs:169
virtual bool IsValidTC(Card c)
Definition: ACT.cs:199
virtual TargetType TargetType
Definition: ACT.cs:140
virtual bool CanPerform()
Definition: ACT.cs:301
static bool TryUse(Act act, Card tg=null, Point pos=null, Card catalyst=null, bool first=true, bool mouse=true)
string[] vals
Definition: CardRow.cs:37
Definition: Card.cs:11
bool ExistsOnMap
Definition: Card.cs:1961
Point pos
Definition: Card.cs:55
virtual Thing Thing
Definition: Card.cs:1934
virtual bool HasHost
Definition: Card.cs:2283
Definition: Chara.cs:10
bool UseAbility(string idAct, Card tc=null, Point pos=null, bool pt=false)
Definition: Chara.cs:5228
bool CanSee(Card c)
Definition: Chara.cs:1027
Definition: EClass.cs:5
static Zone _zone
Definition: EClass.cs:20
static Chara pc
Definition: EClass.cs:14
SourceElement.Row source
Definition: ELEMENT.cs:263
Definition: Point.cs:9
List< Card > ListCards(bool includeMasked=false)
Definition: Point.cs:1015
virtual bool IsRegion
Definition: Spatial.cs:501
virtual bool CanSelectSelf
Definition: TargetType.cs:37
override CardRow sourceCard
Definition: Thing.cs:47
virtual bool IsRod
Definition: TraitCatalyst.cs:7
virtual Act CreateAct()
Definition: TraitCatalyst.cs:9
override void TrySetHeldAct(ActPlan p)
override bool CanUse(Chara c)
override bool OnUse(Chara c)
Card owner
Definition: Trait.cs:26
bool IsCrime(Chara c, Act act)
Definition: Zone.cs:3259