-
Notifications
You must be signed in to change notification settings - Fork 0
/
Build.inc
106 lines (104 loc) · 2.62 KB
/
Build.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
; Version 3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; Build New Soldier ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.Data
TakeMoney MACRO Arms, Level, CanBuild
CopyFrom CanBuild, 0
GettingSoldierMoneyByIndex Arms, Level, GetterHandler
MOV EAX, GetterHandler
.IF( UserMoney >= EAX )
SubBy UserMoney, GetterHandler
CopyFrom CanBuild, 1
.ENDIF
ENDM
TriggleBuild MACRO League, Arms
PUSHA
MOV EAX, League
MOV EBX, Arms
.IF( EAX == 0)
.IF( EBX == 1)
BuildUserSoldierA
.ELSEIF( EBX == 2)
BuildUserSoldierB
.ELSEIF( EBX == 3)
BuildUserSoldierC
.ENDIF
.ELSE
.IF( EBX == 1)
BuildCompSoldierA
.ELSEIF( EBX == 2)
BuildCompSoldierB
.ELSEIF( EBX == 3)
BuildCompSoldierC
.ENDIF
.ENDIF
POPA
ENDM
BuildSoldierBufferTime MACRO League, Arms
PUSHA
.IF( Timer_UserBuild == 0)
CopyFrom Timer_UserBuild, 1
.ENDIF
MOV EAX, League
.IF( EAX == 0 )
PUSHArray User_BuildQueue, Arms
.ELSE
PUSHArray Comp_BuildQueue, Arms
.ENDIF
POPA
ENDM
BuildSoldier MACRO Object, League, Arms, Speed
PUSHA
INVOKE FindUsableSoldier, League, Arms
POPA
ENDM
.Code
FindUsableSoldier PROC, League:DWORD, Arms:DWORD
PUSHA
;WriteD League
;AnyKeyToContinue
.IF (League == 0)
LoopTimes 0
FindUser:
ObjectOffset ECX
.IF (UserSoldiers[EBX].Alive == 0)
SettingSoldierAlive UserSoldiers, ECX, 1
SettingSoldierArms UserSoldiers, ECX, Arms
SettingSoldierX UserSoldiers, ECX, 20
SettingSoldierLeague UserSoldiers, ECX, 0
SettingSoldierLevel UserSoldiers, ECX, UserCurrLevel
SettingSoldierWaitFor UserSoldiers, ECX, -1
SettingSoldierAttackTo UserSoldiers, ECX, -1
SettingSoldierState UserSoldiers, ECX, 0
SettingSoldierInitialHP UserSoldiers, ECX
SettingSoldierAttack UserSoldiers, ECX
POPA
RET
.ENDIF
NextInc 8, FindUser
.ELSEIF (League == 1)
LoopTimes 0
FindComp:
ObjectOffset ECX
.IF (CompSoldiers[EBX].Alive == 0)
SettingSoldierAlive CompSoldiers, ECX, 1
SettingSoldierArms CompSoldiers, ECX, Arms
SettingSoldierX CompSoldiers, ECX, 100
SettingSoldierLeague CompSoldiers, ECX, 1
SettingSoldierLevel CompSoldiers, ECX, CompCurrLevel
SettingSoldierWaitFor CompSoldiers, ECX, -1
SettingSoldierAttackTo CompSoldiers, ECX, -1
SettingSoldierState CompSoldiers, ECX, 0
SettingSoldierInitialHP CompSoldiers, ECX
SettingSoldierAttack CompSoldiers, ECX
POPA
RET
.ENDIF
NextInc 8, FindComp
.ENDIF
POPA
RET
FindUsableSoldier ENDP