Elin Modding Docs Doc
Loading...
Searching...
No Matches
AI_PassTime.cs
1using System;
2using System.Collections.Generic;
3
4// Token: 0x020001FD RID: 509
5public class AI_PassTime : AIAct
6{
7 // Token: 0x170003B0 RID: 944
8 // (get) Token: 0x06000E86 RID: 3718 RVA: 0x0006D494 File Offset: 0x0006B694
9 public virtual AI_PassTime.Type type
10 {
11 get
12 {
13 return AI_PassTime.Type.passTime;
14 }
15 }
16
17 // Token: 0x170003B1 RID: 945
18 // (get) Token: 0x06000E87 RID: 3719 RVA: 0x0006D497 File Offset: 0x0006B697
19 public virtual int exp
20 {
21 get
22 {
23 return 0;
24 }
25 }
26
27 // Token: 0x170003B2 RID: 946
28 // (get) Token: 0x06000E88 RID: 3720 RVA: 0x0006D49A File Offset: 0x0006B69A
29 public virtual int turns
30 {
31 get
32 {
33 return 3000;
34 }
35 }
36
37 // Token: 0x170003B3 RID: 947
38 // (get) Token: 0x06000E89 RID: 3721 RVA: 0x0006D4A1 File Offset: 0x0006B6A1
39 public override bool IsAutoTurn
40 {
41 get
42 {
43 return true;
44 }
45 }
46
47 // Token: 0x06000E8A RID: 3722 RVA: 0x0006D4A4 File Offset: 0x0006B6A4
48 public override bool CanManualCancel()
49 {
50 return true;
51 }
52
53 // Token: 0x170003B4 RID: 948
54 // (get) Token: 0x06000E8B RID: 3723 RVA: 0x0006D4A7 File Offset: 0x0006B6A7
55 public override bool LocalAct
56 {
57 get
58 {
59 return this.type == AI_PassTime.Type.selfHarm;
60 }
61 }
62
63 // Token: 0x170003B5 RID: 949
64 // (get) Token: 0x06000E8C RID: 3724 RVA: 0x0006D4B2 File Offset: 0x0006B6B2
65 public override TargetType TargetType
66 {
67 get
68 {
69 if (this.type != AI_PassTime.Type.passTime)
70 {
71 return TargetType.Self;
72 }
73 return TargetType.Any;
74 }
75 }
76
77 // Token: 0x170003B6 RID: 950
78 // (get) Token: 0x06000E8D RID: 3725 RVA: 0x0006D4C8 File Offset: 0x0006B6C8
79 public bool IsFull
80 {
81 get
82 {
83 return this.owner == null || (this.owner.hp == this.owner.MaxHP && this.owner.mana.value == this.owner.mana.max);
84 }
85 }
86
87 // Token: 0x06000E8E RID: 3726 RVA: 0x0006D51B File Offset: 0x0006B71B
88 public override void OnStart()
89 {
90 this.startedFull = this.IsFull;
91 }
92
93 // Token: 0x06000E8F RID: 3727 RVA: 0x0006D529 File Offset: 0x0006B729
94 public override IEnumerable<AIAct.Status> Run()
95 {
96 if (this.target != null)
97 {
98 yield return base.DoGoto(this.target.pos, 0, false, null);
99 }
100 this.owner.Say(this.type.ToString() + "_start", this.owner, null, null);
101 int num2;
102 for (int i = 0; i < this.turns; i = num2 + 1)
103 {
104 if (this.exp > 0 && i % 5 == 0)
105 {
106 this.owner.ModExp(base.GetType().Name, this.exp);
107 }
108 if (this.type == AI_PassTime.Type.selfHarm)
109 {
110 if (EClass.rnd(10) == 0)
111 {
112 this.owner.AddCondition<ConBleed>(50, false);
113 }
114 else if (EClass.rnd(10) == 0)
115 {
116 this.owner.DamageHP(5 + EClass.rnd(5), AttackSource.None, null);
117 if (this.owner != null)
118 {
119 this.owner.Teleport(ActEffect.GetTeleportPos(EClass.pc.pos, 6), false, false);
120 }
121 }
122 }
123 else
124 {
125 foreach (Chara chara in EClass.pc.party.members)
126 {
127 bool flag = false;
128 using (List<Condition>.Enumerator enumerator2 = chara.conditions.GetEnumerator())
129 {
130 while (enumerator2.MoveNext())
131 {
132 if (enumerator2.Current.PreventRegen)
133 {
134 flag = true;
135 }
136 }
137 }
138 if (!flag)
139 {
140 int num = 1 + EClass.pc.Evalue(6003) / 5;
141 if (EClass.rnd(3) == 0)
142 {
143 chara.HealHP(num * (chara.IsPC ? 1 : 2), HealSource.None);
144 }
145 chara.mana.Mod(num * (chara.IsPC ? 1 : 2));
146 }
147 }
148 if (!this.startedFull && this.IsFull)
149 {
150 yield return base.Success(null);
151 }
152 if (this.owner.CanSleep() && EClass.rnd(10) == 0)
153 {
154 this.owner.Sleep(null, null, false, null, null);
155 yield return base.Success(null);
156 }
157 }
158 yield return base.KeepRunning();
159 num2 = i;
160 }
161 if (this.owner != null)
162 {
163 this.owner.Say(this.type.ToString() + "_end", this.owner, null, null);
164 }
165 yield break;
166 }
167
168 // Token: 0x06000E90 RID: 3728 RVA: 0x0006D53C File Offset: 0x0006B73C
169 public override void OnCancel()
170 {
171 if (this.owner != null)
172 {
173 this.owner.Say(this.type.ToString() + "_end", this.owner, null, null);
174 }
175 }
176
177 // Token: 0x04000D55 RID: 3413
178 public Thing target;
179
180 // Token: 0x04000D56 RID: 3414
181 public bool startedFull;
182
183 // Token: 0x020008F4 RID: 2292
184 public enum Type
185 {
186 // Token: 0x040025F4 RID: 9716
187 passTime,
188 // Token: 0x040025F5 RID: 9717
189 meditate,
190 // Token: 0x040025F6 RID: 9718
191 selfHarm
192 }
193}
Definition AIAct.cs:7
Definition Chara.cs:12
Definition Thing.cs:10