Elin Decompiled Documentation EA 23.331 Nightly
Loading...
Searching...
No Matches
TaskPoint.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using Newtonsoft.Json;
4using UnityEngine;
5
6public class TaskPoint : Task, IInspect
7{
8 private static Point tempPos = new Point();
9
10 [JsonProperty]
11 public Point pos = new Point();
12
13 public bool isRepeated;
14
15 public override bool HasProgress => false;
16
17 public virtual int destDist => 0;
18
19 public virtual bool destIgnoreConnection => true;
20
21 public virtual bool isBlock => false;
22
23 public virtual bool Loop => false;
24
25 public bool CanInspect => !isDestroyed;
26
27 public string InspectName => base.source.GetName();
28
30
31 public Vector3 InspectPosition => pos.Position();
32
33 public override bool CanManualCancel()
34 {
35 if (base.IsChildRunning)
36 {
37 return child is AI_Goto;
38 }
39 return false;
40 }
41
43 {
44 Point point = pos.Copy();
45 pos = p;
46 HitResult hitResult = GetHitResult();
47 pos = point;
48 return hitResult;
49 }
50
51 public override bool CanPerform()
52 {
53 if (owner == null)
54 {
55 owner = Act.CC;
56 }
58 pos.Set(Act.TP);
59 HitResult hitResult = GetHitResult();
61 if (hitResult != HitResult.Valid)
62 {
63 return hitResult == HitResult.Warning;
64 }
65 return true;
66 }
67
68 public override bool _CanPerformTask(Chara chara, int radius)
69 {
70 if (radius != -1 && chara.pos.Distance(pos) > radius)
71 {
72 return false;
73 }
75 {
76 return false;
77 }
78 return true;
79 }
80
81 public override IEnumerable<Status> Run()
82 {
83 if (owner.IsPC && AM_Adv.actCount > 0)
84 {
86 {
88 if (CanPerform())
89 {
90 break;
91 }
92 yield return Status.Running;
93 }
96 {
97 yield return Destroy();
98 }
99 }
100 do
101 {
103 {
104 yield return DoGoto(pos, destDist, destIgnoreConnection);
106 {
107 Debug.Log(AM_Adv.actCount + "/" + pos?.ToString() + "/" + owner.pos);
108 Debug.Log(destDist + "/" + owner.pos.Distance(pos));
109 yield return Destroy();
110 }
111 }
112 if (!CanProgress())
113 {
114 yield return Destroy();
115 }
116 if (HasProgress)
117 {
118 yield return DoProgress();
119 }
120 else
121 {
122 yield return KeepRunning();
124 }
125 if (owner != null && owner.IsPC)
126 {
128 }
129 if (child != null && child.status == Status.Fail)
130 {
131 yield return Cancel();
132 }
133 }
134 while (Loop);
135 }
136
137 public void OnInspect()
138 {
139 }
140
141 public void WriteNote(UINote n, Action<UINote> onWriteNote = null, IInspect.NoteMode mode = IInspect.NoteMode.Default, Recipe recipe = null)
142 {
143 n.Clear();
145 n.Build();
146 }
147}
HitResult
Definition: HitResult.cs:2
Status status
Definition: AIAct.cs:16
new Chara owner
Definition: AIAct.cs:14
AIAct child
Definition: AIAct.cs:20
Status
Definition: AIAct.cs:8
virtual new string Name
Definition: AIAct.cs:68
virtual void OnProgressComplete()
Definition: AIAct.cs:588
Status DoProgress()
Definition: AIAct.cs:531
Status DoGoto(Point pos, int dist=0, bool ignoreConnection=false, Func< Status > _onChildFail=null)
Definition: AIAct.cs:446
Status KeepRunning()
Definition: AIAct.cs:335
Definition: AM_Adv.cs:7
PointTarget mouseTarget
Definition: AM_Adv.cs:171
static int actCount
Definition: AM_Adv.cs:102
Definition: ACT.cs:62
static Point TP
Definition: ACT.cs:81
static Chara CC
Definition: ACT.cs:77
static AM_Adv Adv
Definition: ActionMode.cs:15
bool pressing
Definition: ButtonState.cs:35
Point pos
Definition: Card.cs:60
bool isSurrounded
Definition: Cell.cs:242
Definition: Chara.cs:10
override bool IsPC
Definition: Chara.cs:630
Definition: EInput.cs:8
static ButtonState rightMouse
Definition: EInput.cs:362
Definition: Point.cs:9
ref Vector3 Position(int height)
Definition: Point.cs:553
Point Copy()
Definition: Point.cs:491
override string ToString()
Definition: Point.cs:524
Point Set(int _x, int _z)
Definition: Point.cs:503
int Distance(Point p)
Definition: Point.cs:995
Cell cell
Definition: Point.cs:51
Definition: Recipe.cs:7
Point pos
Definition: TaskPoint.cs:11
virtual bool Loop
Definition: TaskPoint.cs:23
virtual bool isBlock
Definition: TaskPoint.cs:21
override bool CanPerform()
Definition: TaskPoint.cs:51
HitResult GetHitResult(Point p)
Definition: TaskPoint.cs:42
bool isRepeated
Definition: TaskPoint.cs:13
override IEnumerable< Status > Run()
Definition: TaskPoint.cs:81
Vector3 InspectPosition
Definition: TaskPoint.cs:31
void OnInspect()
Definition: TaskPoint.cs:137
void WriteNote(UINote n, Action< UINote > onWriteNote=null, IInspect.NoteMode mode=IInspect.NoteMode.Default, Recipe recipe=null)
Definition: TaskPoint.cs:141
bool CanInspect
Definition: TaskPoint.cs:25
override bool _CanPerformTask(Chara chara, int radius)
Definition: TaskPoint.cs:68
virtual bool destIgnoreConnection
Definition: TaskPoint.cs:19
static Point tempPos
Definition: TaskPoint.cs:8
string InspectName
Definition: TaskPoint.cs:27
Point InspectPoint
Definition: TaskPoint.cs:29
override bool HasProgress
Definition: TaskPoint.cs:15
override bool CanManualCancel()
Definition: TaskPoint.cs:33
virtual int destDist
Definition: TaskPoint.cs:17
Definition: Task.cs:4
override Status Cancel()
Definition: Task.cs:54
bool isDestroyed
Definition: Task.cs:7
Status Destroy()
Definition: Task.cs:31
override bool CanProgress()
Definition: Task.cs:68
virtual HitResult GetHitResult()
Definition: Task.cs:16
Definition: UINote.cs:6
UIItem AddHeaderCard(string text, Sprite sprite=null)
Definition: UINote.cs:84
void Clear()
Definition: UINote.cs:35
void Build()
Definition: UINote.cs:49
NoteMode
Definition: IInspect.cs:7