Elin Modding Docs Doc
Loading...
Searching...
No Matches
GoalTask.cs
1using System;
2using System.Collections.Generic;
3
4// Token: 0x02000237 RID: 567
5public class GoalTask : Goal
6{
7 // Token: 0x1700041B RID: 1051
8 // (get) Token: 0x06000FDA RID: 4058 RVA: 0x00072053 File Offset: 0x00070253
9 public TaskManager.Designations Designations
10 {
11 get
12 {
13 return EClass._map.tasks.designations;
14 }
15 }
16
17 // Token: 0x06000FDB RID: 4059 RVA: 0x00072064 File Offset: 0x00070264
18 public override IEnumerable<AIAct.Status> Run()
19 {
20 if (this.manual)
21 {
22 yield return base.Do(this.task, null);
23 yield return base.Success(null);
24 }
25 if (EClass.rnd(2) == 0)
26 {
27 yield return base.Do(new AI_Clean(), null);
28 }
29 if (EClass.rnd(3) == 0 && EClass._map.props.deconstructing.Count > 0)
30 {
31 yield return base.Do(new AI_Deconstruct(), null);
32 }
33 this.area = null;
34 this.taskList = null;
35 if (!this.TryAssignDesignations())
36 {
37 yield return AIAct.Status.Running;
38 if (!this.TryAssignAreaTask())
39 {
40 yield return this.Cancel();
41 }
42 }
43 do
44 {
45 yield return base.Do(this.task, null);
46 }
47 while (this.taskList != null && (this.TryAssignTask(1) || this.TryAssignTask(3) || this.TryAssignTask(9)));
48 yield break;
49 }
50
51 // Token: 0x06000FDC RID: 4060 RVA: 0x00072074 File Offset: 0x00070274
52 public bool TryAssignAreaTask()
53 {
54 foreach (Area area in EClass._map.rooms.listArea)
55 {
56 if (this.TryAssignAreaTask(area))
57 {
58 this.area = area;
59 this.taskList = area.taskList;
60 return true;
61 }
62 }
63 return false;
64 }
65
66 // Token: 0x06000FDD RID: 4061 RVA: 0x000720EC File Offset: 0x000702EC
67 public bool TryAssignAreaTask(Area a)
68 {
69 this.task = a.taskList.GetTask(this.owner, -1);
70 return this.task != null;
71 }
72
73 // Token: 0x06000FDE RID: 4062 RVA: 0x00072110 File Offset: 0x00070310
74 public bool TryAssignDesignations()
75 {
76 TaskManager.Designations designations = this.Designations;
77 return (EClass.rnd(2) == 0 && this.TryAssignTask(designations.moveInstalled)) || (EClass.rnd(2) == 0 && this.TryAssignTask(designations.cut)) || (EClass.rnd(2) == 0 && this.TryAssignTask(designations.harvest)) || (EClass.rnd(2) == 0 && this.TryAssignTask(designations.mine)) || (EClass.rnd(2) == 0 && this.TryAssignTask(designations.dig)) || (EClass.rnd(2) == 0 && this.TryAssignTask(designations.build));
78 }
79
80 // Token: 0x06000FDF RID: 4063 RVA: 0x000721B5 File Offset: 0x000703B5
81 public bool TryAssignTask(TaskList list)
82 {
83 this.task = list.GetTask(this.owner, -1);
84 if (this.task != null)
85 {
86 this.taskList = list;
87 return true;
88 }
89 return false;
90 }
91
92 // Token: 0x06000FE0 RID: 4064 RVA: 0x000721DC File Offset: 0x000703DC
93 public bool TryAssignTask(int radius)
94 {
95 if (this.area == null)
96 {
97 this.task = this.taskList.GetTask(this.owner, radius);
98 return this.task != null;
99 }
100 if (this.area.isDestroyed)
101 {
102 return false;
103 }
104 this.task = this.taskList.GetTask(this.owner, radius);
105 return this.task != null;
106 }
107
108 // Token: 0x04000D95 RID: 3477
109 public Task task;
110
111 // Token: 0x04000D96 RID: 3478
112 public Area area;
113
114 // Token: 0x04000D97 RID: 3479
115 public bool manual;
116
117 // Token: 0x04000D98 RID: 3480
118 public TaskList taskList;
119}
Definition AIAct.cs:7
Definition Area.cs:6
Definition Goal.cs:5
Definition Task.cs:6