annotate gamelib/products.py @ 38:7e18a67995f6

fixed pep8 issues
author Rizmari Versfeld <rizziepit@gmail.com>
date Mon, 07 May 2012 00:13:11 +0200
parents 20ed2843adec
children 1e8f7e694f0c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 from gamelib import research
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
3
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
4 # Kinds of product.
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
5 HAND_WEAPON = 'hand weapon'
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
6 VEHICLE = 'vehicle'
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
7 DOOMSDAY_DEVICE = 'doomsday device'
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
8 PATHOGEN = 'pathogen'
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
9
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
10
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
11 class Product(object):
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
12 NAME = None
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
13 PREREQUISITES = ()
6
826b44731323 Start of basic lab implementation.
Jeremy Thurgood <firxen@gmail.com>
parents: 3
diff changeset
14 ACQUISITION_CHANCE = 0.8
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
15 COST = None
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
16 UPGRADE_REQUIREMENT = 1
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
17 STARTING_PRODUCT = False
24
23720d0fd9a0 Make SCIENCE_TYPE explicit.
Jeremy Thurgood <firxen@gmail.com>
parents: 20
diff changeset
18 SCIENCE_TYPE = 'product'
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
19 CATEGORIES = ()
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
20
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
21 def __init__(self, points=0):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
22 self.points = points
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
23
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
24 def spend_point(self):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
25 self.points += 1
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
26
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
27 def can_spend(self, lab):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
28 extra = self.UPGRADE_REQUIREMENT * self.points + 1
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
29 return lab.meet_requirements(self, extra)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
30
34
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
31 def is_a(self, category):
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
32 return category in self.CATEGORIES
20ed2843adec More categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 32
diff changeset
33
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
34
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
35 class MachineGun(Product):
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
36 NAME = "Machine gun"
15
8865ba0c9c38 Add cost to products
Neil Muller <drnlmuller@gmail.com>
parents: 14
diff changeset
37 COST = 100
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
38 CATEGORIES = (HAND_WEAPON,)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
39 STARTING_PRODUCT = True
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
40
20
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
41 def __init__(self, points=0):
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
42 self.points = 1
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
43
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
44 def spend_point(self):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
45 raise NotImplementedError()
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
46
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
47 def can_spend(self, lab):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
48 return False
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
49
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
50
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
51 class LightningGun(Product):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
52 NAME = "Lightning gun"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
53 COST = 300
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
54 CATEGORIES = (HAND_WEAPON,)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
55 PREREQUISITES = (
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
56 (research.Tesla, 1),
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
57 )
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
58
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
59
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
60 class TeslaTank(Product):
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
61 NAME = "Tesla tank"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
62 COST = 1000
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
63 CATEGORIES = (VEHICLE,)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
64 PREREQUISITES = (
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
65 (research.Tesla, 3),
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
66 )
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
67
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 15
diff changeset
68
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
69 class DoomsdayVirus(Product):
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
70 NAME = "Doomsday virus"
32
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
71 COST = 100000
00aff02bc6fc Product categories.
Jeremy Thurgood <firxen@gmail.com>
parents: 24
diff changeset
72 CATEGORIES = (DOOMSDAY_DEVICE, PATHOGEN)
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
73 PREREQUISITES = (
14
9d61abb3cfaf Better subclass handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 6
diff changeset
74 (research.Biogenetics, 5),
3
6ab4f1ab9eab Very basics of research and products.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
75 )