Skip to content

Commit 6ed83ce

Browse files
committed
Add templated data files.
1 parent e2a0aff commit 6ed83ce

File tree

3 files changed

+324
-0
lines changed

3 files changed

+324
-0
lines changed

protoss.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
pylon
2+
3+
Mode( )
4+
gateway/warpgate
5+
6+
cyberneticscore
7+
dark shrine
8+
themplar archives
9+
twilight council
10+
robotics bay
11+
robotics facility
12+
stargate
13+
Fleet Beacon
14+
15+
class Nexus(BaseData.Nexus):
16+
produces = {
17+
0x0210100: 'Train Probe',
18+
}
19+
Forge
20+
Photon Cannon
21+
22+
23+
Probe
24+
Zealot
25+
Stalker
26+
High Templar
27+
Dark Templar
28+
Archon
29+
Sentry
30+
Immortal
31+
Observer
32+
Colossus
33+
34+
@Mode('Phasing')
35+
Warp Prism
36+
37+
@Channels
38+
Pheonix
39+
40+
Carrier
41+
Void Ray
42+
Mothership

terran.py

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
def Mode(target_name, on, off):
2+
on_name, on_code = on
3+
off_name, off_code = off
4+
5+
def get_class(cls):
6+
target = cls[target_name]
7+
target.__name__ = cls.__name__+target.__name
8+
target.abilities[off_code] = off_name
9+
cls.abilities[on_code] = on_name
10+
11+
return get_class
12+
13+
def Lifts(liftoff, land):
14+
return Mode('Flying', on=('Liftoff', liftoff), off=('Land', land))
15+
16+
def Lowers(lower, raise):
17+
return Mode('Lowered', on=('Lower', lower), off=('Raise', raise))
18+
19+
def Addon(target_name, start, cancel):
20+
def get_class(cls):
21+
if isinstance(target_name, Building):
22+
target = target_name
23+
else:
24+
target = cls[target_name]
25+
26+
cls.abilities[start] = 'Build {0} ({1})'.format(target_name, cls.__name__)
27+
cls.abilities[start] = 'Cancel {0} ({1})'.format(target_name, cls.__name__)
28+
29+
return get_class
30+
31+
class TerranBuilding(Terran, Building):
32+
abilities = {
33+
0x012e00: 'Cancel build',
34+
0x012e01: 'Halt build',
35+
}
36+
37+
class TerranMain(TerranBuilding):
38+
abilities = {
39+
0x011710: 'Set rally point',
40+
0x011720: 'Set rally target',
41+
0x020a00: 'Train SCV',
42+
0x012b00: 'Cancel Production'
43+
}
44+
45+
46+
@Lifts(liftoff=0x020000, land=0x020110)
47+
@Transport(0x013e01, None, 0x013e33, 0x013e04)
48+
class CommandCenter(TerranMain):
49+
code = 0x2d01
50+
51+
class Flying(object):
52+
code = 0x4001
53+
54+
@Lifts(liftoff=0x31500, land=0x31610)
55+
@UpgradedFrom(CommandCenter, start=0x031200, None)
56+
class OrbitalCommand(TerranMain):
57+
code = 0xa001
58+
abilities = {
59+
0x010910: 'Calldown: MULE (location)',
60+
0x010920: 'Calldown: MULE (target)',
61+
0x012020: 'Calldown: Extra Supplies',
62+
0x013110: 'Scanner Sweep',
63+
}
64+
65+
class Flying(object):
66+
code = 0xa201
67+
68+
@UpgradedFrom(CommandCenter, start=0x030d00, None)
69+
class PlanetaryFortress(TerranMain):
70+
code = 0x9e01
71+
72+
@Lowers(lower=0x020c00, raise=0x020d00)
73+
class SupplyDepot(TerranBuilding):
74+
code = 0x2e01
75+
76+
class Refinery(TerranBuilding):
77+
pass
78+
79+
80+
@Lifts(liftoff=0x02300, land=0x020d10)
81+
@Addon('Techlab', 0x020300, 0x02c206)
82+
@Addon('Reactor', 0x020301, 0x02c206)
83+
class Barracks(TerranBuilding):
84+
code = 0x3001
85+
86+
class TechLab(Addon):
87+
code = 0x00
88+
upgrades = {
89+
90+
}
91+
92+
class Reactor(Addon):
93+
code = 0x01
94+
95+
@Addon(TechLab, 0x020300, 0x02c206)
96+
@Addon(Reactor, 0x020301, 0x02c206)
97+
class Flying(object):
98+
code = 0x020401
99+
100+
101+
class EngineeringBay(TerranBuilding):
102+
upgrades = {
103+
104+
}
105+
106+
class MissileTurret(TerranBuilding, Attacker):
107+
pass
108+
109+
@Transport(0x00,0x01,0x02,0x03)
110+
class Bunker(TerranBuilding, Attacker):
111+
abilities = {
112+
0x02390: 'Salvage',
113+
}
114+
115+
class RadarTower(TerranBuilding):
116+
pass
117+
118+
class GhostAcademy(TerranBuilding):
119+
upgrades = {
120+
121+
}
122+
123+
@Lifts(0x01,0x02)
124+
@Addon('Techlab', 0x020300, 0x02c206)
125+
@Addon('Reactor', 0x020301, 0x02c206)
126+
class Factory(TerranBuilding):
127+
code = 0x3001
128+
129+
class TechLab(Addon):
130+
code = 0x00
131+
upgrades = {
132+
133+
}
134+
135+
class Reactor(Addon):
136+
code = 0x01
137+
138+
@Addon(TechLab, 0x020300, 0x02c206)
139+
@Addon(Reactor, 0x020301, 0x02c206)
140+
class Flying(object):
141+
code = 0x020401
142+
143+
@Lifts(0x01,0x02)
144+
@Addon('Techlab', 0x020300, 0x02c206)
145+
@Addon('Reactor', 0x020301, 0x02c206)
146+
class Starport(TerranBuilding):
147+
code = 0x3001
148+
149+
class TechLab(Addon):
150+
code = 0x00
151+
upgrades = {
152+
153+
}
154+
155+
class Reactor(Addon):
156+
code = 0x01
157+
158+
@Addon(TechLab, 0x020300, 0x02c206)
159+
@Addon(Reactor, 0x020301, 0x02c206)
160+
class Flying(object):
161+
code = 0x020401
162+
163+
class Armory(TerranBuilding):
164+
code = 0x03093
165+
upgrades = {
166+
167+
}
168+
169+
class FusionCore(TerranBuilding):
170+
code = 0x0983
171+
upgrades = {
172+
173+
}
174+
175+
176+
class SCV(Terran, Mechanical):
177+
code = 0x08372
178+
179+
abilities = {
180+
181+
}
182+
183+
builds = {
184+
185+
}
186+
187+
class Marine(Terran, Bio, Army):
188+
code = 0x8037
189+
abilities = {
190+
191+
}
192+
193+
class Maurader(Terran, Bio, Army):
194+
code = 0x9389
195+
abilities = {
196+
197+
}
198+
199+
@Cloaks(0x03980,0x0892)
200+
@Channels('Call down Nuke', 0x0983, 0x8938)
201+
class Ghost(Terran, Bio, Army):
202+
code = 0x83839
203+
abilities = {
204+
205+
}
206+
207+
208+
@Mode('Assault',0x091,0x803)
209+
class Viking(Terran, Mechanical, Army):
210+
code = 0x8793
211+
212+
class Assault(Terran, Mechanical, Army):
213+
code = 0x8803
214+
215+
@Mode('Siege', 0x0893, 0x893)
216+
class SiegeTank(Terran, Mechanical, Army):
217+
code = 0x0938
218+
219+
class Siege(Terran, Mechanical, Army):
220+
code = 0x8983
221+
222+
@Channels('250mm Cannons',0x893,0x89)
223+
class Thor(Terran, Mechanical, Army):
224+
code = 0x03083

zerg.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
@Burrows(burrow=0x023a00, unburrow=0x023b00)
2+
class Zergling(Zerg, Army):
3+
code = 0x8501
4+
5+
class Burrowed(Zerg, Army):
6+
code = 0x9301
7+
8+
@Burrows(burrow=0x023200, unburrow=0x023300)
9+
@MorphedFrom(Zergling, start=0x003800, cancel=0x012900)
10+
class Baneling(Zerg, Army):
11+
code = 0x2301
12+
abilities = {
13+
14+
}
15+
16+
class Cocoon(Zerg, Cocoon):
17+
code = 0x2201
18+
19+
class Burrowed(Zerg, Army):
20+
code = 0x8f01
21+
22+
23+
@Burrows(burrow=0x09830, unburrow=0x8938)
24+
class Roach(Zerg, Army):
25+
code = 0x0389
26+
27+
class Burrowed(Zerg, Army):
28+
code = 0x0830
29+
30+
@Channels('Neural Parasite', 0x0803, 0x803)
31+
class Infestor(Zerg, Army):
32+
code = 0x08377
33+
abilities = {
34+
35+
}
36+
37+
class Burrowed(Zerg, Army):
38+
code = 0x07037
39+
abilities = {
40+
41+
}
42+
43+
class Corrupter(Zerg, Army):
44+
code = 0x0983097
45+
abilities = {
46+
47+
}
48+
49+
@MorphedFrom(Corrupter, start=0x0370, cancel=0x0703)
50+
class Broodlord(Zerg, Army):
51+
code = 0x8073
52+
53+
class Cocoon(Zerg, Cocoon):
54+
code = 0x0730
55+
56+
@MutatedFrom(Hatchery, 0x0730, 0x0730)
57+
@MutatedFrom(Spire, 0x0730, 0x0730)
58+
@MutatedFrom(Lair, 0x0730, 0x0730)

0 commit comments

Comments
 (0)