Mercurial > sypikslang
annotate gamelib/schematics.py @ 172:8e743d774cba
Add failure flavour text
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 12 May 2012 00:32:24 +0200 |
parents | e48c22c31dcb |
children | 0d8d3c83a453 |
rev | line source |
---|---|
54 | 1 # -*- test-case-name: gamelib.tests.test_schematics -*- |
2 | |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
3 from gamelib import research |
45
1e8f7e694f0c
Refactor missions and sciences a bit to reduce duplication.
Jeremy Thurgood <firxen@gmail.com>
parents:
34
diff
changeset
|
4 from gamelib.game_base import Science |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
5 |
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
6 |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
7 class SchematicCategorySet(object): |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
8 def __init__(self, *categories): |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
9 for cat in categories: |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
10 setattr(self, cat, cat.lower().replace('_', ' ')) |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
11 |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
12 cat = SchematicCategorySet( |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
13 'HAND_WEAPON', |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
14 'VEHICLE', |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
15 'DOOMSDAY_DEVICE', |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
16 'PATHOGEN', |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
17 'MIND_CONTROL', |
116 | 18 'BEAST', |
19 'AQUATIC', | |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
20 'INTELLIGENCE', |
132 | 21 'AI', |
151
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
22 'COUNTERMEASURE', |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
23 ) |
32 | 24 |
148 | 25 K = 1000 |
26 M = 1000 * K | |
27 | |
32 | 28 |
49 | 29 class Schematic(Science): |
54 | 30 # For all Schematics |
31 SCIENCE_TYPE = 'schematic' | |
32 | |
33 # Acquisition | |
34 STARTING_PRODUCT = False | |
6
826b44731323
Start of basic lab implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
3
diff
changeset
|
35 ACQUISITION_CHANCE = 0.8 |
54 | 36 CATEGORIES = () |
37 | |
38 # Costs | |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
39 UPGRADE_REQUIREMENT = 1 |
54 | 40 COST = None |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
41 MAX_UPGRADE = 5 |
54 | 42 |
43 # Power and reliability | |
44 PROTOTYPE_RELIABILITY = 0.4 | |
45 PRODUCTION_RELIABILITY = 0.8 | |
46 BASE_POWER = None | |
47 POWER_INCREMENT = None | |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
48 |
145
53277724645b
Science button juggling.
Jeremy Thurgood <firxen@gmail.com>
parents:
132
diff
changeset
|
49 # FIXME: Icons for equipment. |
53277724645b
Science button juggling.
Jeremy Thurgood <firxen@gmail.com>
parents:
132
diff
changeset
|
50 IMAGE_NAME = "physics" |
53277724645b
Science button juggling.
Jeremy Thurgood <firxen@gmail.com>
parents:
132
diff
changeset
|
51 |
159
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
52 FAILURE_TEXT = "Your equipment failed in an excitingly disastrous manner." |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
53 |
58
52913ba12988
Check for multiple points in can_spend
Neil Muller <drnlmuller@gmail.com>
parents:
54
diff
changeset
|
54 def can_spend(self, lab, spend): |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
55 if self.points + spend > self.MAX_UPGRADE: |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
56 return False |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
57 extra = self.UPGRADE_REQUIREMENT * (self.points + spend) |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
58 return lab.meet_requirements(self, extra) |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
59 |
34 | 60 def is_a(self, category): |
61 return category in self.CATEGORIES | |
62 | |
54 | 63 def reliability(self): |
64 if self.points: | |
65 exp = 1 + 0.5 * (self.points - 1) | |
66 return 1.0 - ((1.0 - self.PRODUCTION_RELIABILITY) ** exp) | |
67 return self.PROTOTYPE_RELIABILITY | |
68 | |
69 def power(self): | |
70 power = self.BASE_POWER | |
71 if None not in (power, self.POWER_INCREMENT): | |
72 power += self.POWER_INCREMENT * self.points | |
73 return power | |
74 | |
94
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
75 @classmethod |
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
76 def sanity_check(cls): |
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
77 for science, points in cls.PREREQUISITES: |
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
78 assert issubclass(science, Science) |
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
79 assert isinstance(points, int) |
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
80 assert isinstance(cls.CATEGORIES, tuple) |
245ef50de84d
Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents:
91
diff
changeset
|
81 |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
82 |
49 | 83 class MachineGun(Schematic): |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
84 NAME = "machine gun" |
15 | 85 COST = 100 |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
86 CATEGORIES = (cat.HAND_WEAPON,) |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
87 STARTING_PRODUCT = True |
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
88 |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
89 BASE_POWER = 10 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
90 PRODUCTION_RELIABILITY = 1.0 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
91 |
20 | 92 def __init__(self, points=0): |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
93 self.points = 1 |
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
94 |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
95 |
49 | 96 class LightningGun(Schematic): |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
97 NAME = "lightning gun" |
32 | 98 COST = 300 |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
99 CATEGORIES = (cat.HAND_WEAPON,) |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
100 PREREQUISITES = ( |
115 | 101 (research.Electrickery, 1), |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
102 ) |
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
103 |
148 | 104 BASE_POWER = 15 |
105 POWER_INCREMENT = 3 | |
106 PRODUCTION_RELIABILITY = 0.7 | |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
107 |
159
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
108 FAILURE_TEXT = ( |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
109 "Your lightning gun dropped an insulator, leaking volts and coulombs" |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
110 " all over the place.") |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
111 |
3
6ab4f1ab9eab
Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
112 |
49 | 113 class TeslaTank(Schematic): |
159
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
114 NAME = "Tesla tank" |
148 | 115 COST = 40 * K |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
116 CATEGORIES = (cat.VEHICLE,) |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
117 PREREQUISITES = ( |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
118 (research.Electrickery, 5), |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
119 (research.Robotics, 1), |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
120 ) |
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
121 |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
122 BASE_POWER = 100 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
123 POWER_INCREMENT = 10 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
124 |
159
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
125 FAILURE_TEXT = ( |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
126 "The cheap knock-off capacitors in the primary charge module of the" |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
127 " Tesla tank knocked off, leading to much excitement.") |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
128 |
17
10d3db1f1e08
Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
15
diff
changeset
|
129 |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
130 class PropagandaMachine(Schematic): |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
131 NAME = "propaganda machine" |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
132 COST = 1000 |
91
c57b5b46d3e0
Better mission data management.
Jeremy Thurgood <firxen@gmail.com>
parents:
85
diff
changeset
|
133 CATEGORIES = (cat.MIND_CONTROL,) |
85
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
134 PREREQUISITES = ( |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
135 (research.Psychology, 2), |
182fce9f70b6
Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents:
58
diff
changeset
|
136 ) |
116 | 137 |
148 | 138 BASE_POWER = 10 |
139 POWER_INCREMENT = 2 | |
140 | |
159
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
141 FAILURE_TEXT = ( |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
142 "The propaganda machine printed reams of carefully structured" |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
143 " nonsense, which the proofreaders didn't catch until too late.") |
f1efd252e8b0
Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents:
151
diff
changeset
|
144 |
116 | 145 |
146 class GiantSquid(Schematic): | |
147 NAME = "giant squid" | |
148 | 148 COST = 50 * K |
116 | 149 CATEGORIES = (cat.BEAST, cat.AQUATIC) |
150 PREREQUISITES = ( | |
151 (research.MarineBiology, 20), | |
152 (research.Biogenetics, 15), | |
153 ) | |
154 | |
148 | 155 BASE_POWER = 200 |
156 POWER_INCREMENT = 20 | |
157 | |
116 | 158 |
159 class SharksWithFrickinLasers(Schematic): | |
160 NAME = "sharks with frickin' lasers" | |
148 | 161 COST = 15 * K |
116 | 162 CATEGORIES = (cat.BEAST, cat.AQUATIC) |
163 PREREQUISITES = ( | |
164 (research.MarineBiology, 10), | |
165 (research.Lasers, 7), | |
166 ) | |
132 | 167 |
148 | 168 BASE_POWER = 75 |
169 POWER_INCREMENT = 10 | |
132 | 170 |
171 | |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
172 class ObservationDrone(Schematic): |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
173 NAME = "observation drone" |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
174 COST = 6000 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
175 CATEGORIES = (cat.INTELLIGENCE,) |
132 | 176 PREREQUISITES = ( |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
177 (research.Robotics, 3), |
132 | 178 ) |
179 | |
148 | 180 BASE_POWER = 25 |
181 POWER_INCREMENT = 5 | |
182 | |
132 | 183 |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
184 class SpySatellite(Schematic): |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
185 NAME = "spy satellite" |
148 | 186 COST = 100 * K |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
187 CATEGORIES = (cat.INTELLIGENCE,) |
132 | 188 PREREQUISITES = ( |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
189 (research.Rocketry, 5), |
132 | 190 (research.Space, 1), |
191 ) | |
192 | |
148 | 193 BASE_POWER = 250 |
194 POWER_INCREMENT = 50 | |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
195 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
196 |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
197 class TacticalAI(Schematic): |
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
198 NAME = "tactical AI" |
148 | 199 COST = 10 * K |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
200 CATEGORIES = (cat.AI, cat.INTELLIGENCE) |
132 | 201 PREREQUISITES = ( |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
202 (research.ArtificialIntelligence, 3), |
132 | 203 ) |
204 | |
205 | |
206 class LaserGun(Schematic): | |
151
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
207 NAME = "laser gun" |
132 | 208 COST = 300 |
209 CATEGORIES = (cat.HAND_WEAPON,) | |
210 PREREQUISITES = ( | |
146
2587f8c34f84
Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents:
145
diff
changeset
|
211 (research.Lasers, 2), |
132 | 212 ) |
170 | 213 BASE_POWER = 20 |
214 POWER_INCREMENT = 2 | |
215 PRODUCTION_RELIABILITY = 0.6 | |
148 | 216 |
172
8e743d774cba
Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
217 FAILURE_TEXT = ( |
8e743d774cba
Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
218 "The carefully crafted electronics of the laser fail in a spectacular" |
8e743d774cba
Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
219 " shower of sparks and bangs.") |
8e743d774cba
Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
220 |
148 | 221 |
151
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
222 class EmpMissile(Schematic): |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
223 NAME = "EMP missile" |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
224 COST = 1500 |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
225 CATEGORIES = (cat.COUNTERMEASURE,) |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
226 PREREQUISITES = ( |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
227 (research.Electrickery, 5), |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
228 (research.Rocketry, 2), |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
229 ) |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
230 |
372d886f9e70
New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents:
148
diff
changeset
|
231 |
148 | 232 class DoomsdayVirus(Schematic): |
233 NAME = "doomsday virus" | |
234 COST = 100 * K | |
235 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.PATHOGEN) | |
236 PREREQUISITES = ( | |
237 (research.Biogenetics, 5), | |
238 ) | |
239 | |
240 BASE_POWER = 1000 | |
241 POWER_INCREMENT = 500 | |
242 | |
243 PRODUCTION_RELIABILITY = 0.6 | |
244 | |
245 | |
246 class GiantRobot(Schematic): | |
247 NAME = "giant robot" | |
248 COST = int(1.5 * M) | |
249 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.AI) | |
250 PREREQUISITES = ( | |
251 (research.Robotics, 15), | |
252 (research.ArtificialIntelligence, 10), | |
253 ) | |
254 | |
255 BASE_POWER = 700 | |
256 POWER_INCREMENT = 300 | |
257 | |
258 PRODUCTION_RELIABILITY = 0.7 | |
259 | |
260 | |
261 class OrbitalLaserPlatform(Schematic): | |
262 NAME = "orbital laser platform" | |
263 COST = 10 * M | |
264 CATEGORIES = (cat.DOOMSDAY_DEVICE,) | |
265 PREREQUISITES = ( | |
266 (SpySatellite, 3), | |
267 (research.Lasers, 15), | |
268 (research.Space, 5), | |
269 ) | |
270 | |
271 BASE_POWER = 1500 | |
272 POWER_INCREMENT = 200 |