Elin Modding Docs Doc
Loading...
Searching...
No Matches
TaskList.2.cs
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4
5// Token: 0x02000250 RID: 592
6public class TaskList<T> : TaskList where T : Task
7{
8 // Token: 0x06001055 RID: 4181 RVA: 0x0007309B File Offset: 0x0007129B
9 public override bool TryAdd(Task t)
10 {
11 return this.TryAdd(t as T);
12 }
13
14 // Token: 0x06001056 RID: 4182 RVA: 0x000730AE File Offset: 0x000712AE
15 public override void Remove(Task t)
16 {
17 this.Remove(t as T);
18 }
19
20 // Token: 0x06001057 RID: 4183 RVA: 0x000730C1 File Offset: 0x000712C1
21 public override void SetAstLastItem(Task t)
22 {
23 this.SetAstLastItem(t as T);
24 }
25
26 // Token: 0x06001058 RID: 4184 RVA: 0x000730D4 File Offset: 0x000712D4
27 public override void OnLoad()
28 {
29 foreach (T t in this.items)
30 {
31 this.OnAdd(t);
32 }
33 }
34
35 // Token: 0x06001059 RID: 4185 RVA: 0x00073128 File Offset: 0x00071328
36 protected virtual bool TryAdd(T t)
37 {
38 this.items.Add(t);
39 this.OnAdd(t);
40 t.OnAdd();
41 return true;
42 }
43
44 // Token: 0x0600105A RID: 4186 RVA: 0x00073149 File Offset: 0x00071349
45 public virtual void OnAdd(T t)
46 {
47 t.taskList = this;
48 }
49
50 // Token: 0x0600105B RID: 4187 RVA: 0x00073157 File Offset: 0x00071357
51 protected virtual void Remove(T t)
52 {
53 this.items.Remove(t);
54 }
55
56 // Token: 0x0600105C RID: 4188 RVA: 0x00073166 File Offset: 0x00071366
57 public virtual void SetAstLastItem(T t)
58 {
59 this.items.Remove(t);
60 this.items.Add(t);
61 }
62
63 // Token: 0x0600105D RID: 4189 RVA: 0x00073184 File Offset: 0x00071384
64 public override Task GetTask(Chara chara, int radius = -1)
65 {
66 if (this.items.Count == 0)
67 {
68 return null;
69 }
70 foreach (T t in this.items)
71 {
72 if (t.owner == null && t.nextTry <= EClass.game.sessionMin && t.CanPerformTask(chara, radius))
73 {
74 return t;
75 }
76 }
77 return null;
78 }
79
80 // Token: 0x0600105E RID: 4190 RVA: 0x00073220 File Offset: 0x00071420
81 public bool HaveTask(Point p)
82 {
83 using (List<T>.Enumerator enumerator = this.items.GetEnumerator())
84 {
85 while (enumerator.MoveNext())
86 {
87 if ((enumerator.Current as TaskPoint).pos.Equals(p))
88 {
89 return true;
90 }
91 }
92 }
93 return false;
94 }
95
96 // Token: 0x0600105F RID: 4191 RVA: 0x0007328C File Offset: 0x0007148C
97 public void DestroyAll<T1>() where T1 : T
98 {
99 foreach (T t in this.items.Copy<T>())
100 {
101 if (t is T1)
102 {
103 t.Destroy();
104 }
105 }
106 }
107
108 // Token: 0x06001060 RID: 4192 RVA: 0x000732F0 File Offset: 0x000714F0
109 public void DestroyAll(Func<T, bool> func)
110 {
111 foreach (T t in this.items.Copy<T>())
112 {
113 if (func(t))
114 {
115 t.Destroy();
116 }
117 }
118 }
119
120 // Token: 0x04000DB2 RID: 3506
121 [JsonProperty]
122 public List<T> items = new List<T>();
123}
Definition Chara.cs:12
Definition Point.cs:11
Definition Task.cs:6