Elin Decompiled Documentation EA 23.130 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 if (chara.IsPC)
45 {
47 }
48 }
49 }
50
51 public override IEnumerable<Status> Run()
52 {
53 if (target != null && (target.GetRootCard() == owner || target.parent == null))
54 {
56 }
57 else if (target != null)
58 {
59 yield return DoGrab(target, 1);
60 }
61 else
62 {
63 yield return DoGrab<TraitDrink>();
64 }
66 if (target == null)
67 {
68 yield return Cancel();
69 }
71 {
72 owner.Say("read", owner, target.Duplicate(1));
74 yield return Success();
75 }
77 {
78 maxProgress = target.trait.GetActDuration(owner),
79 interval = 2,
80 canProgress = () => owner.held == target,
81 onProgressBegin = delegate
82 {
83 owner.Say("read_start", owner, target.GetName(NameStyle.Full, 1));
84 owner.PlaySound("read_book");
85 },
86 onProgress = delegate(Progress_Custom p)
87 {
89 {
90 p.Cancel();
91 }
92 },
93 onProgressComplete = delegate
94 {
95 owner.PlaySound("read_book_end");
96 owner.Say("read_end", owner, target.GetName(NameStyle.Full, 1));
98 }
99 };
100 yield return Do(seq);
101 }
102}
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:51
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:2515
bool isNPCProperty
Definition: Card.cs:526
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:5585
ICardParent parent
Definition: Card.cs:51
Trait trait
Definition: Card.cs:49
virtual Thing Thing
Definition: Card.cs:1958
Card GetRootCard()
Definition: Card.cs:3217
Thing Duplicate(int num)
Definition: Card.cs:3235
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:6232
Definition: Chara.cs:10
Card held
Definition: Chara.cs:70
override bool IsPC
Definition: Chara.cs:602
override bool IsPCParty
Definition: Chara.cs:605
void HoldCard(Card t, int num=-1)
Definition: Chara.cs:4104
Definition: EClass.cs:5
static Player player
Definition: EClass.cs:12
void EndTurn(bool consume=true)
Definition: Player.cs:1882
Thing Identify(bool show=true, IDTSource idtSource=IDTSource.Identify)
Definition: Thing.cs:1976
virtual int GetActDuration(Chara c)
Definition: Trait.cs:605
virtual bool TryProgress(AIProgress p)
Definition: Trait.cs:880
virtual void OnRead(Chara c)
Definition: Trait.cs:962