-
Notifications
You must be signed in to change notification settings - Fork 0
/
AI.inc
184 lines (143 loc) · 3.72 KB
/
AI.inc
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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; Timers ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.Data
; counter -> AI_Timer
AI_Timer DWORD 1
Mod_A_Timer DWORD 0
Mod_B_Timer DWORD 0
Mod_C_Timer DWORD 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; Rule Mods ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.Data
;You can design the ai mods here
;here is an example
; [[ Ative by Certain Event ]]
;ResetEvent EQU <CopyFrom isAttacked, 0>
;Mod_When_Attack MACRO isAttacked
; MOV EAX, isAttacked
; .IF ( EAX == 1 )
;
; AutoBuild Mod_When_Attack_Timer, 0, BuildCompSoldierB
; AutoBuild Mod_When_Attack_Timer, 2, BuildCompSoldierB
; AutoBuild Mod_When_Attack_Timer, 4, BuildCompSoldierB
; AutoBuild Mod_When_Attack_Timer, 6, BuildCompSoldierC
; BuildOnce Mod_When_Attack_Timer, 6, Beats4x, ResetEvent
; .ENDIF
;ENDM
; [[ Ative by Time Range ]]
;Mod_B MACRO Time_Open, Time_Close
; .IF ( AI_Timer >= Time_Open && AI_Timer <= Time_Close )
;
;
; AutoBuild Mod_B_Timer, 8, Beats4X, BuildCompSoldierA
; AutoBuild Mod_B_Timer, 16, Beats4X, BuildCompSoldierB
; LoopBuild Mod_B_Timer, 16, Beats4x
;
; .ENDIF
;ENDM
; [[ UpGrade ]]
Mod_UpGrade MACRO When
.IF ( AI_Timer == When )
.IF( CompCurrLevel < 3)
CopyFrom CompLevelUpFlag, 1
.ENDIF
.ENDIF
ENDM
; [[ UpGrade ]]
Mod_Reset MACRO When
.IF ( AI_Timer == When )
CopyFrom AI_Timer, 0
.ENDIF
ENDM
Mod_A MACRO Time_Open, Time_Close
.IF ( AI_Timer >= Time_Open && AI_Timer <= Time_Close )
AutoBuild Mod_A_Timer, 0, Beats4x, BuildCompSoldierA
AutoBuild Mod_A_Timer, 4, Beats4x, BuildCompSoldierA
AutoBuild Mod_A_Timer, 8, Beats4x, BuildCompSoldierB
LoopBuild Mod_A_Timer, 8, Beats4x
.ENDIF
ENDM
Mod_B MACRO Time_Open, Time_Close
.IF ( AI_Timer >= Time_Open && AI_Timer <= Time_Close )
AutoBuild Mod_B_Timer, 0, Beats4x, BuildCompSoldierA
AutoBuild Mod_B_Timer, 4, Beats4x, BuildCompSoldierA
AutoBuild Mod_B_Timer, 8, Beats4x, BuildCompSoldierC
LoopBuild Mod_B_Timer, 8, Beats4x
.ENDIF
ENDM
Mod_C MACRO Time_Open, Time_Close
.IF ( AI_Timer >= Time_Open && AI_Timer <= Time_Close )
AutoBuild Mod_C_Timer, 2, Beats4x, BuildCompSoldierB
AutoBuild Mod_C_Timer, 2, Beats4x, BuildCompSoldierC
LoopBuild Mod_C_Timer, 4, Beats4x
.ENDIF
ENDM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; Main Functions ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.Data
LoopBuild MACRO Timer, Limit, BeatsX
.IF ( BeatsX == 1 )
INC Timer
.ENDIF
.IF ( Timer > Limit )
CopyFrom Timer, 0
.ENDIF
ENDM
BuildOnce MACRO Timer, Limit, BeatsX, WhenTimesUp
.IF ( Timer < Limit )
.IF ( BeatsX == 1 )
INC Timer
.ENDIF
.ELSE
WhenTimesUp
.ENDIF
ENDM
AutoBuild MACRO Timer, When, isTrigger, Soldier
.IF ( Timer == When && isTrigger == 1)
Soldier
.ENDIF
ENDM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;;;;;; ;;;;;;;;;;;
;;;; ; ;;;;;;;;;;; ;;;;;;;;;;;;;;
;;;; ;; ;;;;;;;;;;; ;;;;;;;;;;;;;
;;;; ;;; ;;;;;;;;;;; ;;;;;;;;;;;;
;;;; ;;;; ;;;;;;;;;;; ;;;;;;;;;;;
;;;; ;;;;;;;;;;; ;;;;;;;;;;
;;;; ;;;;;; ;;;;;;;;;;; ;;;;;;;;;
;;;; ;;;;;;; ;;;;;;; ;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.Data
AI MACRO
TimerBeat AI_Timer, Beats4x
;DefaultColor
;WriteSAtCenter 60, 10, Attacking
;Translate 20,10
;Write '['
;
;WriteI AI_Timer
;Write ']'
;;AnyKeyToContinue
;TranslatePrevious
Mod_A 0, 10
Mod_A 12, 22
Mod_B 24, 34
Mod_C 38, 48
Mod_A 50, 60
Mod_A 62, 72
Mod_B 74, 84
Mod_C 88, 98
Mod_UpGrade 101
Mod_Reset 101
ENDM