Elin Modding Docs Doc
Loading...
Searching...
No Matches
TraitDetector.cs
1using System;
2
3// Token: 0x02000435 RID: 1077
4public class TraitDetector : TraitItem
5{
6 // Token: 0x17000974 RID: 2420
7 // (get) Token: 0x06001E6D RID: 7789 RVA: 0x000AEF87 File Offset: 0x000AD187
8 public override bool IsTool
9 {
10 get
11 {
12 return true;
13 }
14 }
15
16 // Token: 0x17000975 RID: 2421
17 // (get) Token: 0x06001E6E RID: 7790 RVA: 0x000AEF8A File Offset: 0x000AD18A
18 public override bool CanStack
19 {
20 get
21 {
22 return false;
23 }
24 }
25
26 // Token: 0x17000976 RID: 2422
27 // (get) Token: 0x06001E6F RID: 7791 RVA: 0x000AEF8D File Offset: 0x000AD18D
28 public string term
29 {
30 get
31 {
32 return this.owner.c_idRefName;
33 }
34 }
35
36 // Token: 0x06001E70 RID: 7792 RVA: 0x000AEF9C File Offset: 0x000AD19C
37 public override void TrySetHeldAct(ActPlan p)
38 {
39 if (p.IsSelf)
40 {
41 p.TrySetAct(this.LangUse, () => this.OnUse(EClass.pc), this.owner, null, 1, false, true, false);
42 }
43 }
44
45 // Token: 0x06001E71 RID: 7793 RVA: 0x000AEFD5 File Offset: 0x000AD1D5
46 public override bool OnUse(Chara c)
47 {
48 Dialog.InputName("dialogDetector", this.term, delegate(bool cancel, string text)
49 {
50 if (!cancel)
51 {
52 this.owner.c_idRefName = text;
53 this.Search();
54 }
55 }, Dialog.InputType.Default);
56 return false;
57 }
58
59 // Token: 0x06001E72 RID: 7794 RVA: 0x000AEFF6 File Offset: 0x000AD1F6
60 public override void OnHeld()
61 {
62 this.Search();
63 }
64
65 // Token: 0x06001E73 RID: 7795 RVA: 0x000AEFFE File Offset: 0x000AD1FE
66 public override void OnTickHeld()
67 {
68 this.interval--;
69 if (this.interval <= 0)
70 {
71 this.Search();
72 }
73 }
74
75 // Token: 0x06001E74 RID: 7796 RVA: 0x000AF020 File Offset: 0x000AD220
76 public void Search()
77 {
78 if (this.term.IsEmpty())
79 {
80 return;
81 }
82 Card card = null;
83 int num = 999;
84 foreach (Thing thing in EClass._map.things)
85 {
86 int num2 = EClass.pc.Dist(thing);
87 if ((thing.id.ToLower().Contains(this.term.ToLower()) || thing.Name.ToLower().Contains(this.term.ToLower())) && num2 < num)
88 {
89 num = num2;
90 card = thing;
91 }
92 }
93 this.interval = 10;
94 if (card == null)
95 {
96 EClass.pc.PlaySound("detect_none", 1f, true);
97 }
98 else
99 {
100 EClass.pc.PlaySound("detect_" + ((num <= 1) ? "detected" : ((num < 5) ? "near" : ((num < 15) ? "medium" : ((num < 30) ? "far" : ((num < 50) ? "veryFar" : "superFar"))))), 1f, true);
101 this.interval = ((num <= 1) ? 1 : ((num < 5) ? 2 : ((num < 15) ? 4 : ((num < 30) ? 7 : 10))));
102 }
103 this.owner.PlayAnime(AnimeID.HitObj, false);
104 }
105
106 // Token: 0x06001E75 RID: 7797 RVA: 0x000AF18C File Offset: 0x000AD38C
107 public override void SetName(ref string s)
108 {
109 if (!this.term.IsEmpty())
110 {
111 s = "_detect".lang(s, this.term, null, null, null);
112 }
113 }
114
115 // Token: 0x040010CA RID: 4298
116 public int interval;
117}
Definition Card.cs:13
Definition Chara.cs:12
Definition Thing.cs:10