File: primitives.py

package info (click to toggle)
lightyears 1.5.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,804 kB
  • sloc: python: 5,532; sh: 39; makefile: 6
file content (180 lines) | stat: -rw-r--r-- 3,681 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#
# 20,000 Light Years Into Space
# This game is licensed under GPL v2, and copyright (C) Jack Whitham 2006-07.
#


import math
import enum



# Arbitrary constants
class Season(enum.Enum):
    QUIET = 104
    STORM = 105
    ALIEN = 106
    QUAKE = 107
    START = 108

class MenuCommand(enum.Enum):
    BUILD_NODE = 1
    BUILD_PIPE = 2
    DESTROY = 3
    UPGRADE = 4
    NEUTRAL = 5
    OPEN_MENU = 6
    SAVE = 201
    LOAD = 202
    HIDE = 203
    QUIT = 204
    FULLSCREEN = 205
    TUTORIAL = 206
    NEW_GAME = 207
    MENU = 209
    REVIEW = 210
    BEGINNER = 211
    INTERMEDIATE = 212
    EXPERT = 213
    PREV = 214
    NEXT = 215
    UPDATES = 216
    WEBSITE = 217
    MANUAL = 218
    MUTE = 219
    PEACEFUL = 220
    FAST_FORWARD = 221
    SAVE0 = 400
    SAVE1 = 401
    SAVE2 = 402
    SAVE3 = 403
    SAVE4 = 404
    SAVE5 = 405
    SAVE6 = 406
    SAVE7 = 407
    SAVE8 = 408
    SAVE9 = 409
    UNUSED = 410
    CANCEL = 411

# Playback and record
class PlayMode(enum.Enum):
    OFF = 301
    PLAYBACK = 302
    RECORD = 303
    PLAYTHRU = 304

# Sound effects
class Sounds(enum.Enum):
    bamboo = "ack1"
    bamboo1 = "ack2"
    bamboo2 = "ack3"
    crisp = "ack4"
    destroy = "ack5"
    double = "ack6"
    mechanical_1 = "ack7"
    ring = "ack8"
    whoosh1 = "ack9"
    emergency = "alert1"
    stormbeeps = "alert2"
    firealrm = "alert3"
    clicker = "aliens"
    aliensappr = "aliensappr"
    alient2 = "alient2"
    applause = "dack1"
    computer = "dack2"
    cityups = "cityups"
    click = "click"
    click_s = "click_s"
    earthquake = "earthquake"
    error = "error"
    krankor = "krankor"
    quakewarn = "quakewarn"
    steamcrit = "steamcrit"
    steamres = "steamres"
    stormdmg = "stormdmg"
    stormwarn = "stormwarn"

# Graphics
class Images(enum.Enum):
    i006metal = "006metal_jpg"
    i32 = "32_png"
    back = "back_jpg"
    bolt = "bolt_png"
    bricks = "bricks_png"
    bricks2 = "bricks2_png"
    city1 = "city1_png"
    destroy = "destroy_png"
    fastforward = "fastforward_png"
    greenrust = "greenrust_jpg"
    header = "header_jpg"
    headersm = "headersm_jpg"
    letters = "letters_png"
    mainmenu = "mainmenu_jpg"
    maker = "maker_png"
    maker_u = "maker_u_png"
    menuicon = "menuicon_png"
    node = "node_png"
    node_u = "node_u_png"
    rivets = "rivets_jpg"
    stormsample = "stormsample_png"
    upgrade = "upgrade_png"
    well = "well_png"

# Mathematical constants
HALF_PI = math.pi * 0.5
TWO_PI = math.pi * 2.0
TWO_THIRDS_PI = ( math.pi * 2.0 ) / 3.0


# Game constants, for tuning:
# steam:
INITIAL_NODE_CAPACITY = 50
CAPACITY_UPGRADE = 15
RESISTANCE_FACTOR = 0.55 # 0.65
WORK_STEAM_DEMAND = 4.52
STATIC_STEAM_DEMAND = 2.85

# work and health:
HEALTH_UNIT = 10
WORK_UNIT_SIZE = 1
NODE_HEALTH_UNITS = 20
STORM_DAMAGE = 1

# work and upgrades:
NODE_MAX_TECH_LEVEL = 5
NODE_UPGRADE_WORK = 10
CITY_UPGRADE_WORK = 15
PIPE_MAX_TECH_LEVEL = 3
PIPE_UPGRADE_WORK_FACTOR = 1.0
PIPE_UPGRADE_RESISTANCE_FACTOR = 0.8

# timing:
LENGTH_OF_SEASON = 120 # seconds (game days)

# pressure:
PRESSURE_DANGER = 4.0
PRESSURE_WARNING = 6.0
PRESSURE_OK = 8.0
PRESSURE_GOOD = 10.0

# the grid:
GRID_CENTRE = (25,25)
GRID_SIZE = (50,50)

# misc:
CITY_BOX_SIZE = 10
CITY_COLOUR = (192,128,0)
MINIMUM_WIDTH = 1024
MINIMUM_HEIGHT = 768
EXPECTED_ASPECT_RATIO = 1024 / 768
CGISCRIPT = "http://www.jwhitham.org/cgi-bin/LYU.cgi?"
VERSION = (1, 5, 0)
TITLE = "20,000 Light-Years Into Space"
COPYRIGHT = "Copyright (C) Jack Whitham 2006-21"

# Debian paths
DEB_FONT = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"
DEB_ICON = '/usr/share/pixmaps/lightyears.xpm'
DEB_MANUAL = '/usr/share/doc/lightyears/manual.pdf'