changeset 148:3abb05f7e720

More science juggling.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 11 May 2012 16:39:17 +0200
parents 3d24b18d1785
children e49f2dba0ad4
files gamelib/schematics.py gamelib/tests/test_lab.py
diffstat 2 files changed, 68 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/schematics.py	Fri May 11 16:29:39 2012 +0200
+++ b/gamelib/schematics.py	Fri May 11 16:39:17 2012 +0200
@@ -21,6 +21,9 @@
     'AI',
     )
 
+K = 1000
+M = 1000 * K
+
 
 class Schematic(Science):
     # For all Schematics
@@ -95,12 +98,14 @@
         (research.Electrickery, 1),
         )
 
-    BASE_POWER = 10
+    BASE_POWER = 15
+    POWER_INCREMENT = 3
+    PRODUCTION_RELIABILITY = 0.7
 
 
 class TeslaTank(Schematic):
     NAME = "tesla tank"
-    COST = 40000
+    COST = 40 * K
     CATEGORIES = (cat.VEHICLE,)
     PREREQUISITES = (
         (research.Electrickery, 5),
@@ -111,15 +116,6 @@
     POWER_INCREMENT = 10
 
 
-class DoomsdayVirus(Schematic):
-    NAME = "doomsday virus"
-    COST = 100000
-    CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.PATHOGEN)
-    PREREQUISITES = (
-        (research.Biogenetics, 5),
-        )
-
-
 class PropagandaMachine(Schematic):
     NAME = "propaganda machine"
     COST = 1000
@@ -128,35 +124,34 @@
         (research.Psychology, 2),
         )
 
+    BASE_POWER = 10
+    POWER_INCREMENT = 2
+
 
 class GiantSquid(Schematic):
     NAME = "giant squid"
-    COST = 50000
+    COST = 50 * K
     CATEGORIES = (cat.BEAST, cat.AQUATIC)
     PREREQUISITES = (
         (research.MarineBiology, 20),
         (research.Biogenetics, 15),
         )
 
+    BASE_POWER = 200
+    POWER_INCREMENT = 20
+
 
 class SharksWithFrickinLasers(Schematic):
     NAME = "sharks with frickin' lasers"
-    COST = 20000
+    COST = 15 * K
     CATEGORIES = (cat.BEAST, cat.AQUATIC)
     PREREQUISITES = (
         (research.MarineBiology, 10),
         (research.Lasers, 7),
         )
 
-
-class GiantRobot(Schematic):
-    NAME = "giant robot"
-    COST = 2500000
-    CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.AI)
-    PREREQUISITES = (
-        (research.Robotics, 15),
-        (research.ArtificialIntelligence, 10),
-        )
+    BASE_POWER = 75
+    POWER_INCREMENT = 10
 
 
 class ObservationDrone(Schematic):
@@ -167,31 +162,26 @@
         (research.Robotics, 3),
         )
 
+    BASE_POWER = 25
+    POWER_INCREMENT = 5
+
 
 class SpySatellite(Schematic):
     NAME = "spy satellite"
-    COST = 100000
+    COST = 100 * K
     CATEGORIES = (cat.INTELLIGENCE,)
     PREREQUISITES = (
         (research.Rocketry, 5),
         (research.Space, 1),
         )
 
-
-class OrbitalLaserPlatform(Schematic):
-    NAME = "orbital laser platform"
-    COST = 10000000
-    CATEGORIES = (cat.DOOMSDAY_DEVICE,)
-    PREREQUISITES = (
-        (SpySatellite, 3),
-        (research.Lasers, 15),
-        (research.Space, 5),
-        )
+    BASE_POWER = 250
+    POWER_INCREMENT = 50
 
 
 class TacticalAI(Schematic):
     NAME = "tactical AI"
-    COST = 10000
+    COST = 10 * K
     CATEGORIES = (cat.AI, cat.INTELLIGENCE)
     PREREQUISITES = (
         (research.ArtificialIntelligence, 3),
@@ -205,3 +195,46 @@
     PREREQUISITES = (
         (research.Lasers, 2),
         )
+
+
+class DoomsdayVirus(Schematic):
+    NAME = "doomsday virus"
+    COST = 100 * K
+    CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.PATHOGEN)
+    PREREQUISITES = (
+        (research.Biogenetics, 5),
+        )
+
+    BASE_POWER = 1000
+    POWER_INCREMENT = 500
+
+    PRODUCTION_RELIABILITY = 0.6
+
+
+class GiantRobot(Schematic):
+    NAME = "giant robot"
+    COST = int(1.5 * M)
+    CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.AI)
+    PREREQUISITES = (
+        (research.Robotics, 15),
+        (research.ArtificialIntelligence, 10),
+        )
+
+    BASE_POWER = 700
+    POWER_INCREMENT = 300
+
+    PRODUCTION_RELIABILITY = 0.7
+
+
+class OrbitalLaserPlatform(Schematic):
+    NAME = "orbital laser platform"
+    COST = 10 * M
+    CATEGORIES = (cat.DOOMSDAY_DEVICE,)
+    PREREQUISITES = (
+        (SpySatellite, 3),
+        (research.Lasers, 15),
+        (research.Space, 5),
+        )
+
+    BASE_POWER = 1500
+    POWER_INCREMENT = 200
--- a/gamelib/tests/test_lab.py	Fri May 11 16:29:39 2012 +0200
+++ b/gamelib/tests/test_lab.py	Fri May 11 16:39:17 2012 +0200
@@ -28,7 +28,7 @@
     def test_find_new_schematics(self):
         lab = Lab(LAB_DATA)
         new_schematics = lab.find_new_schematics()
-        self.assertTrue(schematics.TeslaTank in new_schematics)
+        self.assertTrue(schematics.LightningGun in new_schematics)
         self.assertTrue(schematics.DoomsdayVirus not in new_schematics)
 
     def test_find_new_research(self):