Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
AI_Read.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2
3public class AI_Read : AIAct
4{
5 public Card target;
6
7 public override bool LocalAct
8 {
9 get
10 {
11 if (target != null)
12 {
13 if (!(target.trait is TraitStoryBook))
14 {
15 return !(target.trait is TraitDeedRelocate);
16 }
17 return false;
18 }
19 return true;
20 }
21 }
22
23 public override bool IsHostileAct
24 {
25 get
26 {
27 if (target != null)
28 {
29 return target.isNPCProperty;
30 }
31 return false;
32 }
33 }
34
35 public override void OnSetOwner()
36 {
37 if (target != null && target.trait.GetActDuration(owner) == 0 && target != null && (target.GetRootCard() == owner || target.parent == null))
38 {
39 owner.Say("read", owner, target.Duplicate(1));
40 Chara chara = owner;
43 Success();
44 }
45 }
46
47 public override IEnumerable<Status> Run()
48 {
49 if (target != null && (target.GetRootCard() == owner || target.parent == null))
50 {
52 }
53 else if (target != null)
54 {
55 yield return DoGrab(target, 1);
56 }
57 else
58 {
59 yield return DoGrab<TraitDrink>();
60 }
62 if (target == null)
63 {
64 yield return Cancel();
65 }
67 {
68 owner.Say("read", owner, target.Duplicate(1));
70 yield return Success();
71 }
73 {
74 maxProgress = target.trait.GetActDuration(owner),
75 interval = 2,
76 canProgress = () => owner.held == target,
77 onProgressBegin = delegate
78 {
79 owner.Say("read_start", owner, target.GetName(NameStyle.Full, 1));
80 owner.PlaySound("read_book");
81 },
82 onProgress = delegate(Progress_Custom p)
83 {
85 {
86 p.Cancel();
87 }
88 },
89 onProgressComplete = delegate
90 {
91 owner.PlaySound("read_book_end");
92 owner.Say("read_end", owner, target.GetName(NameStyle.Full, 1));
94 }
95 };
96 yield return Do(seq);
97 }
98}
NameStyle
Definition: NameStyle.cs:2
Definition: AIAct.cs:6
Status DoGrab(Card card, int num=-1, bool pickHeld=false, Func< Status > _onChildFail=null)
Definition: AIAct.cs:492
Status Do(AIAct _seq, Func< Status > _onChildFail=null)
Definition: AIAct.cs:416
virtual Status Cancel()
Definition: AIAct.cs:291
new Chara owner
Definition: AIAct.cs:14
override bool LocalAct
Definition: AI_Read.cs:8
override IEnumerable< Status > Run()
Definition: AI_Read.cs:47
override bool IsHostileAct
Definition: AI_Read.cs:24
override void OnSetOwner()
Definition: AI_Read.cs:35
Card target
Definition: AI_Read.cs:5
Definition: Card.cs:11
virtual string GetName(NameStyle style, int num=-1)
Definition: Card.cs:2475
bool isNPCProperty
Definition: Card.cs:526
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5404
ICardParent parent
Definition: Card.cs:51
Trait trait
Definition: Card.cs:49
virtual Thing Thing
Definition: Card.cs:1934
Card GetRootCard()
Definition: Card.cs:3173
Thing Duplicate(int num)
Definition: Card.cs:3191
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6046
Definition: Chara.cs:10
Card held
Definition: Chara.cs:67
override bool IsPCParty
Definition: Chara.cs:600
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4084
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
Definition: Thing.cs:1959
virtual int GetActDuration(Chara c)
Definition: Trait.cs:567
virtual bool TryProgress(AIProgress p)
Definition: Trait.cs:842
virtual void OnRead(Chara c)
Definition: Trait.cs:924