Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
AI_Grab.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2
3public class AI_Grab : AIAct
4{
5 public Card target;
6
7 public int num = -1;
8
9 public bool pickHeld;
10
11 public virtual Card GetTarget()
12 {
13 return target;
14 }
15
16 public virtual bool IsValidTarget(Card c)
17 {
18 if (c != null)
19 {
20 return c == target;
21 }
22 return false;
23 }
24
25 public override IEnumerable<Status> Run()
26 {
28 {
29 yield return Success();
30 }
31 target = GetTarget();
32 if (target == null)
33 {
34 yield return Cancel();
35 }
36 Card root = target.GetRootCard();
37 if (!root.ExistsOnMap)
38 {
39 yield return Cancel();
40 }
41 yield return DoGoto(root, 1);
42 if (!owner.TryHoldCard(target, (num == -1) ? target.Num : num))
43 {
44 yield return Cancel();
45 }
46 }
47}
48public class AI_Grab<T> : AI_Grab where T : Trait
49{
50 public override Card GetTarget()
51 {
52 Trait random = EClass._map.Installed.traits.GetTraitSet<T>().GetRandom();
53 if (random == null)
54 {
55 random = EClass._map.Stocked.traits.GetTraitSet<T>().GetRandom();
56 }
57 return random?.owner;
58 }
59
60 public override bool IsValidTarget(Card c)
61 {
62 if (c != null)
63 {
64 return c.trait is T;
65 }
66 return false;
67 }
68}
Definition: AIAct.cs:6
virtual Status Cancel()
Definition: AIAct.cs:291
new Chara owner
Definition: AIAct.cs:14
Status DoGoto(Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
Definition: AIAct.cs:432
int num
Definition: AI_Grab.cs:7
override IEnumerable< Status > Run()
Definition: AI_Grab.cs:25
virtual Card GetTarget()
Definition: AI_Grab.cs:11
bool pickHeld
Definition: AI_Grab.cs:9
virtual bool IsValidTarget(Card c)
Definition: AI_Grab.cs:16
override bool IsValidTarget(Card c)
Definition: AI_Grab.cs:60
Card target
Definition: AI_Grab.cs:5
override Card GetTarget()
Definition: AI_Grab.cs:50
Definition: Card.cs:11
bool ExistsOnMap
Definition: Card.cs:1961
Card GetRootCard()
Definition: Card.cs:3173
int Num
Definition: Card.cs:154
Card held
Definition: Chara.cs:67
bool TryHoldCard(Card t, int num=-1, bool pickHeld=false)
Definition: Chara.cs:4062
Definition: EClass.cs:5
static Map _map
Definition: EClass.cs:18
PropsInstalled Installed
Definition: Map.cs:123
PropsStocked Stocked
Definition: Map.cs:121
TraitManager traits
Definition: Props.cs:18
TraitSet GetTraitSet(Type t)
Definition: TraitManager.cs:94
Definition: Trait.cs:7
Card owner
Definition: Trait.cs:26