-
Notifications
You must be signed in to change notification settings - Fork 0
/
all-units.template
209 lines (162 loc) · 6.96 KB
/
all-units.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
[core]
name: uranium
tags: uranium
#resourceRate: 1
generation_delay: 40
[graphics]
[global_resource_uranium]
displayName: Uranium
displayNameShort: U
priority: 1
displayColor:#C0C0C0
#reference to by price: t=1000
#-------WAFFZ AI PRIORITIES STUFF------
#Air Counter Attack
[action_AirAttack]
text: Air Raid!
isVisible: if self.isControlledByAI()
ai_isHighPriority: if self.numberOfUnitsInEnemyTeam(withTag='air', withinRange=250, greaterThan=1)
ai_isDisabled: if not self.numberOfUnitsInEnemyTeam(withTag='air', withinRange=250, greaterThan=1)
temporarilyAddTags: attackByAir
#No More Air Units attacking
[action_noAir]
text: no more air
isVisible: if self.isControlledByAI() and self.tags(includes='attackByAir')
ai_isHighPriority: if numberOfUnitsInEnemyTeam(withTag='air', withinRange=400, lessThan=1) and self.tags(includes='attackByAir')
temporarilyRemoveTags: attackByAir
#--
#DIFFUCTLY TEST (Used by some actions to tell what diffuctly the AI is on)
[global_resource_DIFF]
displayName: diff
#hidden: true
#---
#ATTACK BUILDERS
[action_attackhigh]
text: Attack Builders
isVisible: if self.isControlledByAI() and not self.tags(includes='buildi') and not self.tags(includes='defme')
ai_isHighPriority: if numberOfUnitsInEnemyTeam(withTag='Aibuilder', withinRange=400, greaterThan=0) and self.hasTakenDamage(laterThanSeconds=3)
addWaypoint_type: attack
addWaypoint_prepend: true
#addWaypoint_maxTime: 5s
addWaypoint_target_nearestUnit_tagged: aibuilder
addWaypoint_target_nearestUnit_team: enemy
addWaypoint_target_mapMustBeReachable: false
buildSpeed: 0s
addActionCooldownTime: 15s
#---
#RETREAT AND DEFEND
[action_Retreat]
buildSpeed: 0s
text: Retreat
description: Tell this Unit to go to a Repair Bay
isVisible: if not self.tags(includes='buildi')
addWaypoint_type: follow
addWaypoint_target_nearestUnit_tagged: fallback
addWaypoint_target_nearestUnit_team: own
clearAllWaypoints: true
addActionCooldownTime: 6s
[action_AiStrongRetreat]
text: retreat (AI)
isVisible: false
autoTrigger: if numberOfUnitsInTeam(withinRange=450, lessThan=4) and self.resource(type='diff', greaterThan=6) and self.isControlledByAI() and not self.hasActiveWaypoint(type='follow') or self.hp(lessThan=${core.maxHp * 0.45}) and not self.hasActiveWaypoint(type='move') and self.resource(type='diff', greaterThan=6) and self.isControlledByAI() and not self.hasActiveWaypoint(type='build')
addWaypoint_type: move
addWaypoint_target_nearestUnit_tagged: fallback
addWaypoint_target_nearestUnit_team: own
#addWaypoint_prepend: true
clearAllWaypoints: true
requireConditional: if not self.tags(includes='aibuilder')
[action_DEFENDER]
text: AI Defender
buildSpeed: 0s
description: Assign Unit to Defend Base
isVisible: if self.isControlledByAI() and not self.tags(includes='defMe') and not self.tags(includes='turret') and not self.tags(includes='hint') and not numberOfUnitsInTeam(withinRange=150, greaterThan=2) and not self.tags(includes='buildi')
ai_isHighPriority: if numberOfUnitsInTeam(withTag='Defender', lessThan=2, withinRange=400) and self.hp(full=true) and not numberOfUnitsInEnemyTeam(withinRange=300, greaterThan=2) and self.timeAlive(laterThanSeconds=10) and self.resource(type='diff', greaterThan=9) or self.globalTeamTags(includes='defensive') and numberOfUnitsInTeam(withTag='Defender', lessThan=15)
ai_isDisabled: if self.tags(includes='defMe')
temporarilyAddTags: Defender
addActionCooldownTime: 60s
addActionCooldownApplyToActions: TOOMANYDEFENDER
[action_TOOMANYDEFENDER]
text: AI No Defender
buildSpeed: 0s
description: unAssign Unit to Defend Base (To many Defenders [5])
isVisible: if self.isControlledByAI() and not self.tags(includes='defMe') and not self.tags(includes='turret') and self.tags(includes='defender')
ai_isHighPriority: if numberOfUnitsInTeam(withTag='Defender', greaterThan=4, withinRange=400) and not numberOfUnitsInEnemyTeam(withinRange=300, greaterThan=3) and not self.globalTeamTags(includes='defensive')
ai_isDisabled: if self.globalTeamTags(includes='defensive')
temporarilyRemoveTags: Defender
[action_Defend]
buildSpeed: 0s
text: Defend
autoTrigger: if self.tags(includes='Defender') and not self.hasActiveWaypoint(type='guard')
isVisible: if self.tags(includes='Defender')
addWaypoint_type: guard
clearAllWaypoints: true
addWaypoint_target_randomUnit_tagged: defme
addWaypoint_target_randomUnit_team: own
addWaypoint_target_randomUnit_maxRange: 500
#----
#RALLY
[action_RallyA]
#Attack
text: Attack Rally
description: Charge Twords Attack Rallys
isVisible: if self.isControlledByAI and not self.tags(includes='defme') and not self.tags(includes='buildi')
ai_isHighPriority: if self.numberOfUnitsInAllyNotOwnTeam(withTag='Atrally', greaterThan=0) and numberOfUnitsInTeam(withTag='AtaRally', lessThan=15) and not self.tags(includes='defme')
buildSpeed: 0.1s
addWaypoint_type: attackMove
addWaypoint_target_nearestUnit_tagged: Atrally
addWaypoint_target_nearestUnit_team: ally
#clearAllWaypoints: true
temporarilyAddTags: AttRallyMove
[action_attForce]
text: Attack Rally Force
#autoTrigger: if self.tags(includes='AttRallyMove')
buildSpeed: 0s
isVisible: if self.isControlledByAI() and not self.tags(includes='buildi')
ai_isHighPriority: if self.tags(includes='Atrally')
addWaypoint_type: attackMove
addWaypoint_target_nearestUnit_tagged: AssuRally
addWaypoint_target_nearestUnit_team: ally
[action_RallyAssu]
#Assault
text: Assault Rally
description: Charge Twords Attack Rallys
isVisible: if self.isControlledByAI() and not self.tags(includes='defme') and not self.tags(includes='buildi')
ai_isHighPriority: if self.numberOfUnitsInAllyNotOwnTeam(withTag='AssuRally', greaterThan=0) and not self.tags(includes='defme')
buildSpeed: 0.1s
addWaypoint_prepend: true
addWaypoint_type: attackMove
addWaypoint_target_nearestUnit_tagged: AssuRally
addWaypoint_target_nearestUnit_team: ally
temporarilyAddTags: AssultBegin
clearAllWaypoints: true
[action_assultForce]
text: Assualt Rally Force
isVisible: if self.isControlledByAI() and not self.tags(includes='buildi')
ai_isHighPriority: if self.tags(includes='AssuRally')
buildSpeed: 0s
addWaypoint_type: attackMove
addWaypoint_target_nearestUnit_tagged: AssuRally
addWaypoint_target_nearestUnit_team: ally
addWaypoint_prepend: true
[action_RallyD]
#Defend
text: Defend Rally
description: Defend Rally
isVisible: if self.isControlledByAI() and not self.tags(includes='defme') and not self.tags(includes='buildi')
ai_isHighPriority: if self.numberOfUnitsInAllyNotOwnTeam(withTag='Drally', greaterThan=0) and numberOfUnitsInTeam(withTag='DefRallyMove', lessThan=5) and not self.tags(includes='defme')
buildSpeed: 0.1s
addWaypoint_type: guard
addWaypoint_target_nearestUnit_tagged: Drally
addWaypoint_target_nearestUnit_team: ally
clearAllWaypoints: true
temporarilyAddTags: RallyMove, DefRallyMove
[action_cancle]
#Cancel
text: Rally Over
description: Rally Task Completetd
isVisible: if self.isControlledByAI
ai_isHighPriority: if self.numberOfUnitsInAllyNotOwnTeam(withTag='rally', lessThan=0)
buildSpeed: 0.1s
temporarilyRemoveTags: RallyMove, AtaRally, DefRallyMove, AssultBegin
#---
#-----------------------