annotate gamelib/schematics.py @ 260:8cad2a0ded67

Add spider image to schematics
author Neil Muller <drnlmuller@gmail.com>
date Sun, 13 May 2012 01:47:08 +0200
parents 44a09802fff4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
1 # -*- test-case-name: gamelib.tests.test_schematics -*-
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
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
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
18 'BEAST',
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
19 'AQUATIC',
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
20 'INTELLIGENCE',
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
21 'AI',
151
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
22 'COUNTERMEASURE',
191
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
23 'SPACE',
198
df350c2f8c10 Add another mission
Neil Muller <drnlmuller@gmail.com>
parents: 193
diff changeset
24 'WEATHER_MACHINE',
203
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
25 'CLONE',
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
26 )
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
27
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
28 K = 1000
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
29 M = 1000 * K
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
30
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
31
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
32 class Schematic(Science):
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
33 # For all Schematics
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
34 SCIENCE_TYPE = 'schematic'
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
35
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
36 # Acquisition
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
37 STARTING_PRODUCT = False
6
826b44731323 Start of basic lab implementation.
Jeremy Thurgood <firxen@gmail.com>
parents: 3
diff changeset
38 ACQUISITION_CHANCE = 0.8
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
39 CATEGORIES = ()
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
40
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
41 # Costs
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
42 UPGRADE_REQUIREMENT = 1
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
43 COST = None
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
44 MAX_UPGRADE = 5
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
45
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
46 # Power and reliability
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
47 PROTOTYPE_RELIABILITY = 0.4
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
48 PRODUCTION_RELIABILITY = 0.8
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
49 BASE_POWER = None
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
50 POWER_INCREMENT = None
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
51
145
53277724645b Science button juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 132
diff changeset
52 # FIXME: Icons for equipment.
53277724645b Science button juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 132
diff changeset
53 IMAGE_NAME = "physics"
53277724645b Science button juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 132
diff changeset
54
159
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
55 FAILURE_TEXT = "Your equipment failed in an excitingly disastrous manner."
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
56
58
52913ba12988 Check for multiple points in can_spend
Neil Muller <drnlmuller@gmail.com>
parents: 54
diff changeset
57 def can_spend(self, lab, spend):
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
58 if self.points + spend > self.MAX_UPGRADE:
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
59 return False
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
60 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
61 return lab.meet_requirements(self, extra)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
62
34
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
63 def is_a(self, category):
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
64 return category in self.CATEGORIES
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
65
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
66 def reliability(self):
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
67 if self.points:
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
68 exp = 1 + 0.5 * (self.points - 1)
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
69 return 1.0 - ((1.0 - self.PRODUCTION_RELIABILITY) ** exp)
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
70 return self.PROTOTYPE_RELIABILITY
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
71
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
72 def power(self):
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
73 power = self.BASE_POWER
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
74 if None not in (power, self.POWER_INCREMENT):
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
75 power += self.POWER_INCREMENT * self.points
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
76 return power
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
77
94
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
78 @classmethod
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
79 def sanity_check(cls):
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
80 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
81 assert issubclass(science, Science)
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
82 assert isinstance(points, int)
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
83 assert isinstance(cls.CATEGORIES, tuple)
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
84
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
85
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
86 class MachineGun(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
87 NAME = "Machine gun"
15
8865ba0c9c38 Add cost to products
Neil Muller <drnlmuller@gmail.com>
parents: 14
diff changeset
88 COST = 100
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
89 IMAGE_NAME = "schematics/handgun"
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
90 CATEGORIES = (cat.HAND_WEAPON,)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
91 STARTING_PRODUCT = True
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
92
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
93 BASE_POWER = 10
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
94 PRODUCTION_RELIABILITY = 1.0
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
95
20
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
96 def __init__(self, points=0):
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
97 self.points = 1
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
98
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
99
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
100 class LightningGun(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
101 NAME = "Lightning gun"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
102 COST = 300
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
103 IMAGE_NAME = "schematics/handgun"
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
104 CATEGORIES = (cat.HAND_WEAPON,)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
105 PREREQUISITES = (
115
ef63532cac13 Rearrange SCIENCE a bit.
Jeremy Thurgood <firxen@gmail.com>
parents: 94
diff changeset
106 (research.Electrickery, 1),
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
107 )
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
108
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
109 BASE_POWER = 15
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
110 POWER_INCREMENT = 3
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
111 PRODUCTION_RELIABILITY = 0.7
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
112
159
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
113 FAILURE_TEXT = (
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
114 "Your lightning gun dropped an insulator, leaking volts and coulombs"
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
115 " all over the place.")
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
116
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
117
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
118 class TeslaTank(Schematic):
159
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
119 NAME = "Tesla tank"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
120 COST = 40 * K
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
121 IMAGE_NAME = 'schematics/vehicle'
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
122 CATEGORIES = (cat.VEHICLE,)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
123 PREREQUISITES = (
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
124 (research.Electrickery, 5),
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
125 (research.Robotics, 1),
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
126 )
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
127
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
128 BASE_POWER = 100
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
129 POWER_INCREMENT = 10
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
130
159
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
131 FAILURE_TEXT = (
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
132 "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
133 " Tesla tank knocked off, leading to much excitement.")
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
134
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
135
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
136 class PropagandaMachine(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
137 NAME = "Propaganda machine"
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
138 COST = 1000
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
139 IMAGE_NAME = "schematics/mindcontrol"
91
c57b5b46d3e0 Better mission data management.
Jeremy Thurgood <firxen@gmail.com>
parents: 85
diff changeset
140 CATEGORIES = (cat.MIND_CONTROL,)
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
141 PREREQUISITES = (
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
142 (research.Psychology, 2),
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
143 )
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
144
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
145 BASE_POWER = 10
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
146 POWER_INCREMENT = 2
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
147
159
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
148 FAILURE_TEXT = (
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
149 "The propaganda machine printed reams of carefully structured"
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
150 " nonsense, which the proofreaders didn't catch until too late.")
f1efd252e8b0 Equipment power in missions.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
151
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
152
193
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
153 class MindControlRay(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
154 NAME = "Mind control ray"
193
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
155 COST = 4 * K
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
156 CATEGORIES = (cat.MIND_CONTROL,)
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
157 IMAGE_NAME = "schematics/mindcontrol"
193
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
158 PREREQUISITES = (
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
159 (research.Psychology, 6),
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
160 (research.MedicalExperiments, 6),
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
161 )
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
162
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
163 BASE_POWER = 40
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
164 POWER_INCREMENT = 6
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
165
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
166 FAILURE_TEXT = (
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
167 "The frequency tuner on the mind control ray was slightly"
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
168 " miscalibrated. A new genre of glitterpop was born, but this"
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
169 " entirely fails to advance your shadowy agenda.")
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
170
9e86ed5343d9 Mind control ray.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
171
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
172 class GiantSquid(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
173 NAME = "Giant squid"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
174 COST = 50 * K
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
175 CATEGORIES = (cat.BEAST, cat.AQUATIC)
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
176 PREREQUISITES = (
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
177 (research.MarineBiology, 20),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
178 (research.Biogenetics, 15),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
179 )
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
180 IMAGE_NAME = 'marinebiology'
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
181
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
182 BASE_POWER = 200
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
183 POWER_INCREMENT = 20
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
184
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
185
188
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
186 class SpiderGrenade(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
187 NAME = "Spider grenade"
188
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
188 COST = 500
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
189 CATEGORIES = (cat.HAND_WEAPON,)
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
190 PREREQUISITES = (
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
191 (research.Biogenetics, 3),
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
192 (research.Physics, 2),
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
193 )
260
8cad2a0ded67 Add spider image to schematics
Neil Muller <drnlmuller@gmail.com>
parents: 256
diff changeset
194 IMAGE_NAME = 'schematics/spider'
188
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
195
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
196 BASE_POWER = 22
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
197 POWER_INCREMENT = 2
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
198
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
199 PRODUCTION_RELIABILITY = 0.6
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
200
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
201 FAILURE_TEXT = (
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
202 "Explosions full of spiders. What could possibly go wrong? Oh god!"
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
203 " They're everywhere! EVERYWHERE! Get them off me!")
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
204
f78468bba66e Spider grenade.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
205
189
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
206 class CyberneticImplants(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
207 NAME = "Cybernetic implants"
189
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
208 COST = 1500
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
209 CATEGORIES = (cat.HAND_WEAPON, cat.INTELLIGENCE)
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
210 PREREQUISITES = (
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
211 (research.MedicalExperiments, 5),
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
212 (research.Robotics, 5),
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
213 )
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
214 IMAGE_NAME = 'schematics/robot'
189
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
215
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
216 BASE_POWER = 25
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
217 POWER_INCREMENT = 5
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
218
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
219 PRODUCTION_RELIABILITY = 0.9
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
220
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
221 FAILURE_TEXT = (
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
222 "Exciting buffer overflows in your neural interface. I'll spare you"
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
223 " the gruesome details.")
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
224
0ab75da0c7aa Cybernetic implants.
Jeremy Thurgood <firxen@gmail.com>
parents: 188
diff changeset
225
190
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
226 class TornadoMachine(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
227 NAME = "Tornado machine"
190
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
228 COST = 7 * K
198
df350c2f8c10 Add another mission
Neil Muller <drnlmuller@gmail.com>
parents: 193
diff changeset
229 CATEGORIES = (cat.VEHICLE, cat.WEATHER_MACHINE)
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
230 IMAGE_NAME = "schematics/weathermachine"
190
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
231 PREREQUISITES = (
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
232 (research.Meteorology, 6),
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
233 (research.Physics, 5),
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
234 )
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
235
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
236 BASE_POWER = 40
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
237 POWER_INCREMENT = 8
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
238
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
239 FAILURE_TEXT = (
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
240 "Tornados! Dropping cows on you! Hardly conducive to mission success.")
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
241
9d7d273a278f Tornado machine.
Jeremy Thurgood <firxen@gmail.com>
parents: 189
diff changeset
242
174
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
243 class MonsterBear(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
244 NAME = "Giant bear"
174
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
245 COST = 10 * K
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
246 CATEGORIES = (cat.BEAST,)
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
247 IMAGE_NAME = 'schematics/beast'
174
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
248 PREREQUISITES = (
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
249 (research.Biogenetics, 3),
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
250 )
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
251
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
252 BASE_POWER = 50
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
253 POWER_INCREMENT = 5
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
254
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
255
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
256 class SharksWithFrickinLasers(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
257 NAME = "Sharks with frickin' lasers"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
258 COST = 15 * K
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
259 IMAGE_NAME = 'schematics/shark'
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
260 CATEGORIES = (cat.BEAST, cat.AQUATIC)
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
261 PREREQUISITES = (
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
262 (research.MarineBiology, 10),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
263 (research.Lasers, 7),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
264 )
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
265
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
266 BASE_POWER = 75
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
267 POWER_INCREMENT = 10
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
268
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
269
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
270 class ObservationDrone(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
271 NAME = "Observation drone"
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
272 COST = 6000
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
273 CATEGORIES = (cat.INTELLIGENCE,)
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
274 PREREQUISITES = (
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
275 (research.Robotics, 3),
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
276 )
256
44a09802fff4 More schematic images
Neil Muller <drnlmuller@gmail.com>
parents: 254
diff changeset
277 IMAGE_NAME = 'schematics/eye'
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
278
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
279 BASE_POWER = 25
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
280 POWER_INCREMENT = 5
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
281
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
282
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
283 class SpySatellite(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
284 NAME = "Spy satellite"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
285 COST = 100 * K
191
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
286 CATEGORIES = (cat.INTELLIGENCE, cat.SPACE)
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
287 PREREQUISITES = (
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
288 (research.Rocketry, 5),
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
289 (research.Space, 1),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
290 )
256
44a09802fff4 More schematic images
Neil Muller <drnlmuller@gmail.com>
parents: 254
diff changeset
291 IMAGE_NAME = 'schematics/eye'
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
292
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
293 BASE_POWER = 250
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
294 POWER_INCREMENT = 50
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
295
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
296
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
297 class TacticalAI(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
298 NAME = "Tactical AI"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
299 COST = 10 * K
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
300 CATEGORIES = (cat.AI, cat.INTELLIGENCE)
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
301 PREREQUISITES = (
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
302 (research.ArtificialIntelligence, 3),
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
303 )
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
304 IMAGE_NAME = 'schematics/intelligence'
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
305
174
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
306 FAILURE_TEXT = (
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
307 "Everything seems to be going smoothly until the AI decides it"
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
308 " needs to rule the world itself. Fortuantely, you are able to purge"
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
309 " it from the system before it becomes a legitimate rival.")
0d8d3c83a453 Tweak schematics
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
310
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
311
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
312 class LaserGun(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
313 NAME = "Laser gun"
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
314 COST = 300
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
315 CATEGORIES = (cat.HAND_WEAPON,)
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
316 IMAGE_NAME = "schematics/handgun"
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
317 PREREQUISITES = (
146
2587f8c34f84 Science juggling and visualization improvements.
Jeremy Thurgood <firxen@gmail.com>
parents: 145
diff changeset
318 (research.Lasers, 2),
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
319 )
170
e48c22c31dcb power to the lasers
Neil Muller <drnlmuller@gmail.com>
parents: 159
diff changeset
320 BASE_POWER = 20
e48c22c31dcb power to the lasers
Neil Muller <drnlmuller@gmail.com>
parents: 159
diff changeset
321 POWER_INCREMENT = 2
e48c22c31dcb power to the lasers
Neil Muller <drnlmuller@gmail.com>
parents: 159
diff changeset
322 PRODUCTION_RELIABILITY = 0.6
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
323
172
8e743d774cba Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
324 FAILURE_TEXT = (
8e743d774cba Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
325 "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
326 " shower of sparks and bangs.")
8e743d774cba Add failure flavour text
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
327
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
328
151
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
329 class EmpMissile(Schematic):
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
330 NAME = "EMP missile"
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
331 COST = 1500
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
332 IMAGE_NAME = 'schematics/missiles'
151
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
333 CATEGORIES = (cat.COUNTERMEASURE,)
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
334 PREREQUISITES = (
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
335 (research.Electrickery, 5),
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
336 (research.Rocketry, 2),
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
337 )
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
338
372d886f9e70 New suggest_research() method on Lab.
Jeremy Thurgood <firxen@gmail.com>
parents: 148
diff changeset
339
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
340 class DoomsdayVirus(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
341 NAME = "Doomsday virus"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
342 COST = 100 * K
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
343 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.PATHOGEN)
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
344 IMAGE_NAME = "schematics/pathogen"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
345 PREREQUISITES = (
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
346 (research.Biogenetics, 5),
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
347 )
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
348
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
349 BASE_POWER = 1000
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
350 POWER_INCREMENT = 500
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
351
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
352 PRODUCTION_RELIABILITY = 0.6
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
353
238
837c51ebdbc8 failure text for doomsday virus
Neil Muller <drnlmuller@gmail.com>
parents: 216
diff changeset
354 FAILURE_TEXT = (
837c51ebdbc8 failure text for doomsday virus
Neil Muller <drnlmuller@gmail.com>
parents: 216
diff changeset
355 "You suddenly realise you've miscopied a vital allele when"
837c51ebdbc8 failure text for doomsday virus
Neil Muller <drnlmuller@gmail.com>
parents: 216
diff changeset
356 " constructing the virus, and that this will never work."
837c51ebdbc8 failure text for doomsday virus
Neil Muller <drnlmuller@gmail.com>
parents: 216
diff changeset
357 " You return to the lab to fix the problem.")
837c51ebdbc8 failure text for doomsday virus
Neil Muller <drnlmuller@gmail.com>
parents: 216
diff changeset
358
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
359
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
360 class GiantRobot(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
361 NAME = "Giant robot"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
362 COST = int(1.5 * M)
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
363 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.AI)
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
364 IMAGE_NAME = 'schematics/robot'
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
365 PREREQUISITES = (
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
366 (research.Robotics, 15),
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
367 (research.ArtificialIntelligence, 10),
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
368 )
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
369
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
370 BASE_POWER = 700
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
371 POWER_INCREMENT = 300
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
372
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
373 PRODUCTION_RELIABILITY = 0.7
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
374
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
375
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
376 class OrbitalLaserPlatform(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
377 NAME = "Orbital laser platform"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
378 COST = 10 * M
191
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
379 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.SPACE)
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
380 IMAGE_NAME = "schematics/doomsdaydevice"
148
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
381 PREREQUISITES = (
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
382 (SpySatellite, 3),
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
383 (research.Lasers, 15),
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
384 (research.Space, 5),
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
385 )
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
386
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
387 BASE_POWER = 1500
3abb05f7e720 More science juggling.
Jeremy Thurgood <firxen@gmail.com>
parents: 146
diff changeset
388 POWER_INCREMENT = 200
191
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
389
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
390
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
391 class WeatherControlStation(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
392 NAME = "Weather control station"
191
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
393 COST = 15 * M
198
df350c2f8c10 Add another mission
Neil Muller <drnlmuller@gmail.com>
parents: 193
diff changeset
394 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.SPACE, cat.WEATHER_MACHINE)
214
d378459567bb Hook up a bunch of icons
Neil Muller <drnlmuller@gmail.com>
parents: 208
diff changeset
395 IMAGE_NAME = "schematics/weathermachine"
191
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
396 PREREQUISITES = (
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
397 (SpySatellite, 3),
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
398 (research.Lasers, 5),
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
399 (research.Space, 8),
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
400 (research.Meteorology, 15),
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
401 )
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
402
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
403 BASE_POWER = 2200
0b746c72cb5b Weather control station.
Jeremy Thurgood <firxen@gmail.com>
parents: 190
diff changeset
404 POWER_INCREMENT = 150
203
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
405
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
406
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
407 class Android(Schematic):
216
ec97f80feae0 Capitilize schmatic names
Neil Muller <drnlmuller@gmail.com>
parents: 214
diff changeset
408 NAME = "Lifelike android"
203
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
409 COST = 50 * K
208
f9426f6cebf4 Fix bug
Neil Muller <drnlmuller@gmail.com>
parents: 204
diff changeset
410 CATEGORIES = (cat.INTELLIGENCE, cat.AI, cat.CLONE)
203
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
411 PREREQUISITES = (
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
412 (research.ArtificialIntelligence, 5),
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
413 (research.Robotics, 5),
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
414 )
254
2c684fade3af Fill in more schematic icons
Neil Muller <drnlmuller@gmail.com>
parents: 238
diff changeset
415 IMAGE_NAME = 'schematics/robot'
203
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
416
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
417 BASE_POWER = 10
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
418 POWER_INCREMENT = 1
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
419
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
420 PRODUCTION_RELIABILITY = 0.6
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
421
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
422 FAILURE_TEXT = (
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
423 "The sudden stuttering speech and sparks from the joints are the first"
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
424 " signs that things have gone horribly wrong. The ensuing explosion"
4159e34d7310 Replace the mayor
Neil Muller <drnlmuller@gmail.com>
parents: 198
diff changeset
425 " of the android is merely the inevitable conclusion of the diaster.")