Mercurial > sypikslang
diff gamelib/schematics.py @ 146:2587f8c34f84
Science juggling and visualization improvements.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Fri, 11 May 2012 16:20:49 +0200 |
parents | 53277724645b |
children | 3abb05f7e720 |
line wrap: on
line diff
--- a/gamelib/schematics.py Fri May 11 14:58:00 2012 +0200 +++ b/gamelib/schematics.py Fri May 11 16:20:49 2012 +0200 @@ -17,7 +17,7 @@ 'MIND_CONTROL', 'BEAST', 'AQUATIC', - 'SPY', + 'INTELLIGENCE', 'AI', ) @@ -34,6 +34,7 @@ # Costs UPGRADE_REQUIREMENT = 1 COST = None + MAX_UPGRADE = 5 # Power and reliability PROTOTYPE_RELIABILITY = 0.4 @@ -45,7 +46,9 @@ IMAGE_NAME = "physics" def can_spend(self, lab, spend): - extra = self.UPGRADE_REQUIREMENT * self.points + spend + if self.points + spend > self.MAX_UPGRADE: + return False + extra = self.UPGRADE_REQUIREMENT * (self.points + spend) return lab.meet_requirements(self, extra) def is_a(self, category): @@ -77,15 +80,12 @@ CATEGORIES = (cat.HAND_WEAPON,) STARTING_PRODUCT = True + BASE_POWER = 10 + PRODUCTION_RELIABILITY = 1.0 + def __init__(self, points=0): self.points = 1 - def spend_point(self): - raise NotImplementedError() - - def can_spend(self, lab, spend): - return False - class LightningGun(Schematic): NAME = "lightning gun" @@ -95,15 +95,21 @@ (research.Electrickery, 1), ) + BASE_POWER = 10 + class TeslaTank(Schematic): NAME = "tesla tank" - COST = 1000 + COST = 40000 CATEGORIES = (cat.VEHICLE,) PREREQUISITES = ( - (research.Electrickery, 3), + (research.Electrickery, 5), + (research.Robotics, 1), ) + BASE_POWER = 100 + POWER_INCREMENT = 10 + class DoomsdayVirus(Schematic): NAME = "doomsday virus" @@ -143,41 +149,52 @@ ) -class OrbitalLaserPlatform(Schematic): - NAME = "An Orbital Laser Platform" - COST = 10000000 - CATEGORIES = (cat.DOOMSDAY_DEVICE,) +class GiantRobot(Schematic): + NAME = "giant robot" + COST = 2500000 + CATEGORIES = (cat.DOOMSDAY_DEVICE, cat.AI) PREREQUISITES = ( - (research.Lasers, 5), - (research.Space, 2), + (research.Robotics, 15), + (research.ArtificialIntelligence, 10), ) -class GiantRobot(Schematic): - NAME = "A very large robot" - COST = 1000000 - CATEGORIES = (cat.DOOMSDAY_DEVICE,) +class ObservationDrone(Schematic): + NAME = "observation drone" + COST = 6000 + CATEGORIES = (cat.INTELLIGENCE,) PREREQUISITES = ( - (research.Robotics, 5), - (research.ArtificialIntelligence, 2), + (research.Robotics, 3), ) -class SpySattelite(Schematic): - NAME = "A small spy sattelite" - COST = 10000 - CATEGORIES = (cat.SPY,) +class SpySatellite(Schematic): + NAME = "spy satellite" + COST = 100000 + CATEGORIES = (cat.INTELLIGENCE,) PREREQUISITES = ( + (research.Rocketry, 5), (research.Space, 1), ) -class ComputerAI(Schematic): - NAME = "AI Assistant" +class OrbitalLaserPlatform(Schematic): + NAME = "orbital laser platform" + COST = 10000000 + CATEGORIES = (cat.DOOMSDAY_DEVICE,) + PREREQUISITES = ( + (SpySatellite, 3), + (research.Lasers, 15), + (research.Space, 5), + ) + + +class TacticalAI(Schematic): + NAME = "tactical AI" COST = 10000 - CATEGORIES = (cat.AI,) + CATEGORIES = (cat.AI, cat.INTELLIGENCE) PREREQUISITES = ( - (research.ArtificialIntelligence, 1), + (research.ArtificialIntelligence, 3), ) @@ -186,5 +203,5 @@ COST = 300 CATEGORIES = (cat.HAND_WEAPON,) PREREQUISITES = ( - (research.Lasers, 1), + (research.Lasers, 2), )