annotate gamelib/schematics.py @ 132:8e64bbd561bd

grab bag of extra tech
author Neil Muller <drnlmuller@gmail.com>
date Thu, 10 May 2012 16:50:26 +0200
parents a8a46c14d467
children 53277724645b
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',
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
20 'SPY',
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
21 'AI',
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
22 )
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
23
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
24
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
25 class Schematic(Science):
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
26 # For all Schematics
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
27 SCIENCE_TYPE = 'schematic'
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
28
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
29 # Acquisition
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
30 STARTING_PRODUCT = False
6
826b44731323 Start of basic lab implementation.
Jeremy Thurgood <firxen@gmail.com>
parents: 3
diff changeset
31 ACQUISITION_CHANCE = 0.8
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
32 CATEGORIES = ()
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
33
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
34 # Costs
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
35 UPGRADE_REQUIREMENT = 1
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
36 COST = None
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
37
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
38 # Power and reliability
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
39 PROTOTYPE_RELIABILITY = 0.4
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
40 PRODUCTION_RELIABILITY = 0.8
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
41 BASE_POWER = None
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
42 POWER_INCREMENT = None
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
43
58
52913ba12988 Check for multiple points in can_spend
Neil Muller <drnlmuller@gmail.com>
parents: 54
diff changeset
44 def can_spend(self, lab, spend):
52913ba12988 Check for multiple points in can_spend
Neil Muller <drnlmuller@gmail.com>
parents: 54
diff changeset
45 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
46 return lab.meet_requirements(self, extra)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
47
34
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
48 def is_a(self, category):
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
49 return category in self.CATEGORIES
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
50
54
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
51 def reliability(self):
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
52 if self.points:
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
53 exp = 1 + 0.5 * (self.points - 1)
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
54 return 1.0 - ((1.0 - self.PRODUCTION_RELIABILITY) ** exp)
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
55 return self.PROTOTYPE_RELIABILITY
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
56
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
57 def power(self):
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
58 power = self.BASE_POWER
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
59 if None not in (power, self.POWER_INCREMENT):
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
60 power += self.POWER_INCREMENT * self.points
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
61 return power
168cfac9a445 Power and reliability.
Jeremy Thurgood <firxen@gmail.com>
parents: 49
diff changeset
62
94
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
63 @classmethod
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
64 def sanity_check(cls):
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
65 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
66 assert issubclass(science, Science)
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
67 assert isinstance(points, int)
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
68 assert isinstance(cls.CATEGORIES, tuple)
245ef50de84d Sanity-check research, schematic and mission classes. (Ironic, no?)
Jeremy Thurgood <firxen@gmail.com>
parents: 91
diff changeset
69
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
70
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
71 class MachineGun(Schematic):
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
72 NAME = "machine gun"
15
8865ba0c9c38 Add cost to products
Neil Muller <drnlmuller@gmail.com>
parents: 14
diff changeset
73 COST = 100
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
74 CATEGORIES = (cat.HAND_WEAPON,)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
75 STARTING_PRODUCT = True
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
76
20
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
77 def __init__(self, points=0):
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
78 self.points = 1
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
79
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
80 def spend_point(self):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
81 raise NotImplementedError()
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
82
58
52913ba12988 Check for multiple points in can_spend
Neil Muller <drnlmuller@gmail.com>
parents: 54
diff changeset
83 def can_spend(self, lab, spend):
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
84 return False
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
85
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
86
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
87 class LightningGun(Schematic):
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
88 NAME = "lightning gun"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
89 COST = 300
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
90 CATEGORIES = (cat.HAND_WEAPON,)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
91 PREREQUISITES = (
115
ef63532cac13 Rearrange SCIENCE a bit.
Jeremy Thurgood <firxen@gmail.com>
parents: 94
diff changeset
92 (research.Electrickery, 1),
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
93 )
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
94
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
95
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
96 class TeslaTank(Schematic):
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
97 NAME = "tesla tank"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
98 COST = 1000
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
99 CATEGORIES = (cat.VEHICLE,)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
100 PREREQUISITES = (
115
ef63532cac13 Rearrange SCIENCE a bit.
Jeremy Thurgood <firxen@gmail.com>
parents: 94
diff changeset
101 (research.Electrickery, 3),
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
102 )
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
103
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
104
49
373c57ab4140 Product -> Schematic.
Jeremy Thurgood <firxen@gmail.com>
parents: 45
diff changeset
105 class DoomsdayVirus(Schematic):
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
106 NAME = "doomsday virus"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
107 COST = 100000
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
108 CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.PATHOGEN)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
109 PREREQUISITES = (
14
9d61abb3cfaf Better subclass handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 6
diff changeset
110 (research.Biogenetics, 5),
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
111 )
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
112
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
113
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
114 class PropagandaMachine(Schematic):
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
115 NAME = "propaganda machine"
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
116 COST = 1000
91
c57b5b46d3e0 Better mission data management.
Jeremy Thurgood <firxen@gmail.com>
parents: 85
diff changeset
117 CATEGORIES = (cat.MIND_CONTROL,)
85
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
118 PREREQUISITES = (
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
119 (research.Psychology, 2),
182fce9f70b6 Propaganda! Also, a fix to blueprint breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 58
diff changeset
120 )
116
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
121
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
122
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
123 class GiantSquid(Schematic):
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
124 NAME = "giant squid"
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
125 COST = 50000
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
126 CATEGORIES = (cat.BEAST, cat.AQUATIC)
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
127 PREREQUISITES = (
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
128 (research.MarineBiology, 20),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
129 (research.Biogenetics, 15),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
130 )
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
131
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
132
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
133 class SharksWithFrickinLasers(Schematic):
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
134 NAME = "sharks with frickin' lasers"
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
135 COST = 20000
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
136 CATEGORIES = (cat.BEAST, cat.AQUATIC)
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
137 PREREQUISITES = (
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
138 (research.MarineBiology, 10),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
139 (research.Lasers, 7),
a8a46c14d467 Marine beasts!
Jeremy Thurgood <firxen@gmail.com>
parents: 115
diff changeset
140 )
132
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
141
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
142
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
143 class OrbitalLaserPlatform(Schematic):
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
144 NAME = "An Orbital Laser Platform"
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
145 COST = 10000000
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
146 CATEGORIES = (cat.DOOMSDAY_DEVICE,)
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
147 PREREQUISITES = (
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
148 (research.Lasers, 5),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
149 (research.Space, 2),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
150 )
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
151
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
152
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
153 class GiantRobot(Schematic):
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
154 NAME = "A very large robot"
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
155 COST = 1000000
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
156 CATEGORIES = (cat.DOOMSDAY_DEVICE,)
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
157 PREREQUISITES = (
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
158 (research.Robotics, 5),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
159 (research.ArtificialIntelligence, 2),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
160 )
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
161
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
162
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
163 class SpySattelite(Schematic):
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
164 NAME = "A small spy sattelite"
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
165 COST = 10000
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
166 CATEGORIES = (cat.SPY,)
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
167 PREREQUISITES = (
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
168 (research.Space, 1),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
169 )
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
170
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
171
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
172 class ComputerAI(Schematic):
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
173 NAME = "AI Assistant"
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
174 COST = 10000
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
175 CATEGORIES = (cat.AI,)
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
176 PREREQUISITES = (
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
177 (research.ArtificialIntelligence, 1),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
178 )
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
179
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
180
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
181 class LaserGun(Schematic):
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
182 NAME = "Laser Gun"
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
183 COST = 300
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
184 CATEGORIES = (cat.HAND_WEAPON,)
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
185 PREREQUISITES = (
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
186 (research.Lasers, 1),
8e64bbd561bd grab bag of extra tech
Neil Muller <drnlmuller@gmail.com>
parents: 116
diff changeset
187 )