# HG changeset patch # User Jeremy Thurgood # Date 1336747157 -7200 # Node ID 3abb05f7e7208de81f4efcb9f9487b016c298da1 # Parent 3d24b18d1785bcf1d53a06aded5d00feb4739d7b More science juggling. diff -r 3d24b18d1785 -r 3abb05f7e720 gamelib/schematics.py --- 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 diff -r 3d24b18d1785 -r 3abb05f7e720 gamelib/tests/test_lab.py --- 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):