Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
AM_Designation.cs
Go to the documentation of this file.
1using System;
2
4{
6
7 public T mold;
8
9 public override string idSound => "actionMode";
10
11 public override bool IsBuildMode => true;
12
13 public virtual bool CanInstaComplete(T t)
14 {
16 {
17 return ForcedInstaComplete(t);
18 }
19 return true;
20 }
21
22 public virtual bool ForcedInstaComplete(T t)
23 {
24 return false;
25 }
26
28 {
29 return HitResult.Outline;
30 }
31
32 public override void OnActivate()
33 {
35 }
36
37 public void CreateNewMold(bool processing = false)
38 {
39 mold = Activator.CreateInstance<T>();
40 OnCreateMold(processing);
41 }
42
43 public virtual void OnCreateMold(bool processing = false)
44 {
45 }
46
47 public override HitResult HitTest(Point point, Point start)
48 {
49 if (!base.Summary.CanExecute())
50 {
51 return HitResult.Invalid;
52 }
53 if (point.HasDesignation)
54 {
55 return HitResultOnDesignation(point);
56 }
57 mold.pos.Set(point);
58 HitResult hitResult = mold.GetHitResult();
59 if (hitResult != 0)
60 {
61 return hitResult;
62 }
63 return base.HitTest(point, start);
64 }
65
66 public override bool CanProcessTiles()
67 {
68 if (!base.Summary.CanExecute())
69 {
70 return false;
71 }
72 if (base.Summary.countValid == 0)
73 {
74 return false;
75 }
76 return base.CanProcessTiles();
77 }
78
79 public override void OnBeforeProcessTiles()
80 {
81 CreateNewMold(processing: true);
83 }
84
85 public override void OnProcessTiles(Point point, int dir)
86 {
87 mold.pos.Set(point);
88 if (list.TryAdd(mold))
89 {
91 CreateNewMold(processing: true);
92 }
93 T val = list.items.LastItem();
94 if (val != null && CanInstaComplete(val))
95 {
96 val.owner = EClass.player.Agent;
97 EClass.player.Agent.pos.Set(val.pos);
98 val.OnProgressComplete();
99 val.Destroy();
100 }
101 }
102
103 public override void OnAfterProcessTiles(Point start, Point end)
104 {
106 }
107
108 public override void OnRefreshSummary(Point point, HitResult result, HitSummary summary)
109 {
110 summary.count++;
111 if (result == HitResult.Valid || result == HitResult.Warning)
112 {
113 mold.pos.Set(point);
115 {
116 summary.money += CostMoney;
117 }
118 summary.countValid++;
119 }
120 }
121}
HitResult
Definition: HitResult.cs:2
override bool CanProcessTiles()
override bool IsBuildMode
virtual bool CanInstaComplete(T t)
TaskList< T > list
virtual bool ForcedInstaComplete(T t)
virtual void OnCreateMold(bool processing=false)
override void OnProcessTiles(Point point, int dir)
override void OnActivate()
void CreateNewMold(bool processing=false)
override string idSound
override HitResult HitTest(Point point, Point start)
override void OnAfterProcessTiles(Point start, Point end)
override void OnRefreshSummary(Point point, HitResult result, HitSummary summary)
virtual HitResult HitResultOnDesignation(Point p)
override void OnBeforeProcessTiles()
virtual int CostMoney
Definition: ActionMode.cs:211
Point pos
Definition: Card.cs:55
Definition: EClass.cs:5
static Map _map
Definition: EClass.cs:18
static Player player
Definition: EClass.cs:12
int countValid
Definition: HitSummary.cs:10
int count
Definition: HitSummary.cs:8
TaskManager tasks
Definition: Map.cs:34
bool instaComplete
Definition: Player.cs:956
Chara Agent
Definition: Player.cs:1075
Definition: Point.cs:9
bool HasDesignation
Definition: Point.cs:83
Point Set(int _x, int _z)
Definition: Point.cs:479
UndoManager undo
Definition: TaskManager.cs:64
void Add(Task t)
Definition: UndoManager.cs:60
void NewItem()
Definition: UndoManager.cs:51