Elin Decompiled Documentation EA 23.319 Nightly Patch 1
Loading...
Searching...
No Matches
AI_OpenLock.cs
Go to the documentation of this file.
2{
4
5 public override bool HasProgress => true;
6
7 public override bool CanTargetInventory => true;
8
9 public override bool IsHostileAct
10 {
11 get
12 {
13 if (base.target != null)
14 {
15 return base.target.isNPCProperty;
16 }
17 return false;
18 }
19 }
20
21 public override AIProgress CreateProgress()
22 {
23 return new Progress_Custom
24 {
25 canProgress = CanProgress,
26 onProgressBegin = delegate
27 {
28 Thing thing = owner.things.FindBest<TraitLockpick>((Thing t) => -t.c_charges);
29 if (thing != null)
30 {
31 owner.Say("lockpick_start_pick", thing, base.target);
32 }
33 else
34 {
35 owner.Say("lockpick_start", owner, base.target);
36 }
37 owner.PlaySound("lock_pick");
38 },
39 onProgress = delegate(Progress_Custom p)
40 {
41 switch (base.target.trait.TryOpenLock(owner, msgFail: false))
42 {
43 case LockOpenState.Success:
45 EClass.Sound.Stop("lock_pick");
46 break;
47 case LockOpenState.NotEnoughSkill:
48 owner.Say("lockpick_end", owner, base.target);
49 p.Cancel();
50 EClass.Sound.Stop("lock_pick");
51 break;
52 default:
53 if (EClass._zone.IsCrime(owner, this))
54 {
56 }
57 break;
58 }
59 },
60 onProgressComplete = delegate
61 {
62 if (base.target.c_lockLv != 0 && owner != null)
63 {
64 owner.Say("lockpick_end", owner, base.target);
65 }
66 }
67 }.SetDuration(30, 10);
68 }
69}
LockOpenState
Definition: LockOpenState.cs:2
virtual Status Cancel()
Definition: AIAct.cs:305
new Chara owner
Definition: AIAct.cs:14
void CompleteProgress()
Definition: AIProgress.cs:64
override AIProgress CreateProgress()
Definition: AI_OpenLock.cs:21
override bool CanTargetInventory
Definition: AI_OpenLock.cs:7
override bool IsHostileAct
Definition: AI_OpenLock.cs:10
override bool HasProgress
Definition: AI_OpenLock.cs:5
override CursorInfo CursorIcon
Definition: AI_OpenLock.cs:3
override bool CanProgress()
SoundSource PlaySound(string id, float v=1f, bool spatial=true)
Definition: Card.cs:6562
Point pos
Definition: Card.cs:60
ThingContainer things
Definition: Card.cs:39
void Say(string lang, string ref1=null, string ref2=null)
Definition: Card.cs:7240
static CursorInfo Container
Definition: CursorSystem.cs:82
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:21
static SoundManager Sound
Definition: EClass.cs:47
bool TryWitnessCrime(Chara criminal, Chara target=null, int radius=4, Func< Chara, bool > funcWitness=null)
Definition: Point.cs:878
Definition: Thing.cs:8
bool IsCrime(Chara c, Act act)
Definition: Zone.cs:3714