1--SETABLE VARS--
2--almost all vars are in "blocks", "blocks per second" or just "seconds". Should be obvious enough what's what.
3portalgundelay = 0.2
4gellifetime = 2
5bulletbilllifetime = 20
6playertypelist = {"portal", "minecraft", "gelcannon"}
7
8joystickdeadzone = 0.2
9joystickaimdeadzone = 0.5
10
11walkacceleration = 8 --acceleration of walking on ground
12runacceleration = 16 --acceleration of running on ground
13walkaccelerationair = 8 --acceleration of walking in the air
14runaccelerationair = 16 --acceleration of running in the air
15minspeed = 0.7 --When friction is in effect and speed falls below this, speed is set to 0
16maxwalkspeed = 6.4 --fastest speedx when walking
17maxrunspeed = 9.0 --fastest speedx when running
18friction = 14 --amount of speed that is substracted when not pushing buttons, as well as speed added to acceleration when changing directions
19superfriction = 100 --see above, but when speed is greater than maxrunspeed
20frictionair = 0 --see above, but in air
21airslidefactor = 0.8 --multiply of acceleration in air when changing direction
22
23mariocombo = {100, 200, 400, 500, 800, 1000, 2000, 4000, 5000, 8000} --combo scores for bouncing on enemies
24koopacombo = {500, 800, 1000, 2000, 4000, 5000, 8000} --combo scores for series of koopa kills
25
26--star scores are identical so I'm just gonn be lazy
27firepoints = {	goomba = 100,
28				koopa = 200,
29				plant = 200,
30				bowser = 5000,
31				squid = 200,
32				cheep = 200,
33				flyingfish = 200,
34				hammerbro = 1000,
35				lakito = 200,
36				bulletbill = 200}
37
38yacceleration = 80 --gravity
39yaccelerationjumping = 30 --gravity while jumping (Only for mario)
40maxyspeed = 100 --SMB: 14
41--minportalspeedy = 3 --Things exiting floor portals can't be slower than this (REPLACED WITH OBJECT'S HEIGHT (SEE PHYSICS.LUA FUNC "PORTALCOORDS" UP->UP))
42jumpforce = 16--SMB: 16, Smaller(For portal?): 12.1
43jumpforceadd = 1.9 --how much jumpforce is added at top speed (linear)
44headforce = 2 --how fast mario will be sent back down when hitting a block with his head
45--bounceforce = 12 --when jumping on an enemy, speedy will be set to this to make mario bounce (negative)
46bounceheight = 14/16 --when jumping on enemy, the height that mario will fly up
47passivespeed = 4 --speed that mario is moved against the pointing direction when inside blocks (by crouch sliding under low blocks and standing up for example)
48
49--Variables that are different for underwater
50uwwalkacceleration = 8
51
52uwrunacceleration = 16
53uwwalkaccelerationair = 8
54uwmaxairwalkspeed = 5
55uwmaxwalkspeed = 3.6
56uwmaxrunspeed = 5
57uwfriction = 14
58uwsuperfriction = 100
59uwfrictionair = 0
60uwairslidefactor = 0.8
61uwjumpforce = 5.9
62uwjumpforceadd = 0
63uwyacceleration = 9
64uwyaccelerationjumping = 12
65
66uwmaxheight = 2.5
67uwpushdownspeed = 3
68
69bubblesmaxy = 2.5
70bubblesspeed = 2.3
71bubblesmargin = 0.5
72bubblestime = {1.2, 1.6}
73
74gelmaxrunspeed = 50
75gelmaxwalkspeed = 25
76gelrunacceleration = 25
77gelwalkacceleration = 12.5
78
79horbouncemul = 1.5
80horbouncespeedy = 20
81horbouncemaxspeedx = 15
82horbounceminspeedx = 2
83
84--items
85mushroomspeed = 3.6
86mushroomtime = 0.7 --time until it fully emerged out the block
87mushroomjumpforce = 13
88starjumpforce = 13
89staranimationdelay = 0.04
90mariostarblinkrate = 0.08 --/disco
91mariostarblinkrateslow = 0.16 --/disco
92mariostarduration = 12
93mariostarrunout = 1 --subtracts, doesn't add.
94
95goombaspeed = 2
96goombaacceleration = 8
97goombaanimationspeed = 0.2
98goombadeathtime = 0.5 --the "stomped" animation of goombas will last this long
99
100koopaspeed = 2
101koopasmallspeed = 12 --speed of turtle shells
102koopaanimationspeed = 0.2
103koopajumpforce = 10
104koopaflyinggravity = 30
105
106bowseranimationspeed = 0.5
107bowserspeedbackwards = 1.875
108bowserspeedforwards = 0.875
109bowserjumpforce = 7
110bowsergravity = 10.9
111bowserjumpdelay = 1
112bowserfallspeed = 8.25 --for animation
113
114bowserhammertable = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 1, 2, 1}
115bowserhammerdrawtime = 0.5
116
117bowserhealth = 5
118
119cheepwhitespeed = 1
120cheepredspeed = 1.8
121cheepyspeed = 0.3
122cheepheight = 1
123cheepanimationspeed = 0.35
124
125platformverdistance = 8.625
126platformhordistance = 3.3125
127platformvertime = 6.4
128platformhortime = 4
129platformbonusspeed = 3.75
130
131platformspawndelay = 2.18 --time between platform spawns
132
133platformjustspeed = 3.5
134
135seesawspeed = 4
136seesawgravity = 30
137seesawfriction = 4
138
139koopaflyingdistance = 7.5
140koopaflyingtime = 7
141
142lakitothrowtime = 4
143lakitorespawn = 16
144lakitospace = 4
145lakitodistancetime = 1.5
146lakitohidetime = 0.5
147lakitopassivex = 18-4/16 --from the flag (or axe (or right end of map))
148lakitopassivespeed = 3
149
150-- loiters between 4 blocks behind and 4 blocks ahead of you (total 9 blocks he goes above)
151-- spawns only 3 of the hedgehog things and then hides until they're offscreen/dead
152-- in 4-1 he disappears when you touch the first step (not stand on, touch from side while on the ground)
153-- can be killed by single fireflower
154-- the spiky dudes turn towards you after they fall down
155
156fireballspeed = 15
157fireballjumpforce = 10
158maxfireballs = 2
159fireanimationtime = 0.11
160
161shotspeedx = 4 --X speed (constant) of fire/shell killed enemies
162shotjumpforce = 8 --initial speedy (negative) when shot
163shotgravity = 60 --how fast enemies that have been killed by fire or shell accellerate downwards
164
165deathanimationjumpforce = 17
166deathanimationjumptime = 0.3
167deathgravity = 40
168deathtotaltime = 4
169
170portalanimationcount = 6 --frame count of portal animation
171portalanimation = 1
172portalanimationtimer = 0
173portalanimationdelay = 0.08 --frame delay of portal animation
174portalrotationalignmentspeed = 15 --how fast things return to a rotation of 0 rad(-ical)
175
176scrollrate = 5
177superscrollrate = 40
178maxscrollrate = maxrunspeed*2
179blockbouncetime = 0.2
180blockbounceheight = 0.4
181coinblocktime = 0.3
182coinblockdelay = 0.5/30
183
184runanimationspeed = 10
185swimanimationspeed = 10
186
187spriteset = 1
188background = 1
189speed = 1
190speedtarget = 1
191speedmodifier = 10
192
193scrollingscoretime = 0.8
194scrollingscoreheight = 2.5
195
196portalparticlespeed = 1
197portalparticletimer = 0
198portalparticletime = 0.05
199portalparticleduration = 0.5
200
201portaldotstime = 0.8
202portaldotsdistance = 1.2
203portaldotsinner = 10
204portaldotsouter = 70
205
206portalprojectilespeed = 100
207portalprojectilesinemul = 100
208portalprojectiledelay = 2
209portalprojectilesinesize = 0.3
210portalprojectileparticledelay = 0.002
211
212emanceparticlespeed = 3
213emanceparticlespeedmod = 0.3
214emanceimgwidth = 64
215emancelinecolor = {100, 100, 255, 10}
216
217boxfriction = 20
218boxfrictionair = 8
219
220faithplatetime = 0.3
221
222spacerunroom = 1.2/16 --How far you can fall but still be allowed onto the top of a block (For running over 1 tile wide gaps)
223
224doorspeed = 2
225groundlightdelay = 1
226
227geldispensespeed = 0.05
228gelmaxspeed = 30
229
230cubedispensertime = 1
231
232pushbuttontime = 1
233
234bulletbillspeed = 8.0
235bulletbilltimemax = 4.5
236bulletbilltimemin = 1.0
237bulletbillrange = 3
238
239hammerbropreparetime = 0.5
240hammerbrotime = {0.6, 1.6}
241hammerbrospeed = 1.5
242hammerbroanimationspeed = 0.15
243hammerbrojumptime = 3
244hammerbrojumpforce = 19
245hammerbrojumpforcedown = 6
246
247hammerspeed = 4
248hammerstarty = 8
249hammergravity = 25
250hammeranimationspeed = 0.05
251
252squidfallspeed = 0.9
253squidxspeed = 3
254squidupspeed = 3
255squidacceleration = 10
256squiddowndistance = 1
257
258firespeed = 4.69
259fireverspeed = 2
260fireanimationdelay = 0.05
261
262upfirestarty = 8 --not used
263upfireforce = 19
264upfiregravity = 20
265
266flyingfishgravity = 20
267flyingfishforce = 23
268
269userange = 1
270usesquaresize = 1
271
272blockdebrisanimationtime = 0.1
273blockdebrisgravity = 60
274
275castlefireangleadd = 11.25
276castlefiredelay = 3.4/(360/castlefireangleadd) --the number in front of the bracket is how long a full turn takes
277castlefireanimationdelay = 0.07
278
279--plants
280plantintime = 1.8
281plantouttime = 2
282plantanimationdelay = 0.15
283plantmovedist = 23/16
284plantmovespeed = 2.3
285
286vinespeed = 2.13
287vinemovespeed = 3.21
288vinemovedownspeed = vinemovespeed*2
289vineframedelay = 0.15
290vineframedelaydown = vineframedelay/2
291
292vineanimationstart = 4
293vineanimationgrowheight = 6
294vineanimationmariostart = vineanimationgrowheight/vinespeed
295vineanimationstop = 1.75
296vineanimationdropdelay = 0.5
297
298--animationstuff
299pipeanimationtime = 0.7
300pipeanimationdelay = 1
301pipeanimationdistancedown = 32/16
302pipeanimationdistanceright = 16/16
303pipeanimationrunspeed = 3
304pipeupdelay = 1
305
306growtime = 0.9
307shrinktime = 0.9
308growframedelay = 0.08
309shrinkframedelay = 0.08
310invicibleblinktime = 0.02
311invincibletime = 3.2
312
313blinktime = 0.5
314
315levelscreentime = 2.4 --2.4
316gameovertime = 7
317blacktimesub = 0.1
318sublevelscreentime = 0.2
319
320--flag animation
321flagclimbframedelay = 0.07
322scoredelay = 2
323flagdescendtime = 0.9
324flagydistance = 7+10/16
325flaganimationdelay = 0.6
326scoresubtractspeed = 1/60
327castleflagstarty = 1.5
328castleflagspeed = 3
329castlemintime = 7
330fireworkdelay = 0.55
331fireworksoundtime = 0.2
332endtime = 2
333
334--spring
335springtime = 0.2
336springhighforce = 41
337springforce = 24
338springytable = {0, 0.5, 1}
339
340--flag scores and positions
341flagscores = {100, 400, 800, 2000, 5000}
342flagvalues = {9.8125, 7.3125, 5.8125, 2.9375}
343
344--castle win animation
345castleanimationchaindisappear = 0.38 --delay from axe disappearing to chain disappearing; once this starts, bowser starts tapping feet with a delay of 0.0666666
346castleanimationbowserframedelay = 0.0666
347castleanimationbridgedisappeardelay = 0.06 --delay between each bridge block disappearing, also delay between chain and first block
348--bowser starts falling and stops moving immediately after the last block disappears
349castleanimationmariomove = 1.07 --time when mario starts moving after bowser starts falling and is also unfrozen. music also starts playing at this point
350castleanimationcameraaccelerate = 1.83 -- time when camera starts moving faster than mario, relative to start of his move
351castleanimationmariostop = 2.3 -- when mario stops next to toad, relative to start of his move
352castleanimationtextfirstline = 3.2 -- when camera stops and first line of text appears, relative to the start of his move
353castleanimationtextsecondline = 5.3 --second line appears
354castleanimationnextlevel = 9.47 -- splash screen for next level appears
355-- first bowser is white goomba - see http://www.mariowiki.com/False_Bowser
356-- first bowser takes 5 fireflower hits and dies as goomba
357-- when fireflower killing boss, axe doesn't make bridge disappear
358
359endanimationtextfirstline = 3.2 -- when camera stops and first line of text appears, relative to the start of his move
360endanimationtextsecondline = 7.4 --second line appears
361endanimationtextthirdline = 8.4 --third line appears
362endanimationtextfourthline = 9.4 --fourth line appears
363endanimationtextfifthline = 10.4 --fifth line appears
364endanimationend = 12 -- user can press any button
365
366drainspeed = 20
367drainmax = 10
368
369--minecraft stuff
370minecraftrange = 3
371minecraftbreaktime = 0.6
372
373rainboomdelay = 0.03
374rainboomframes = 49
375rainboomspeed = 45
376rainboomearthquake = 50
377
378backgroundstripes = 24
379
380konami = {"up", "up", "down", "down", "left", "right", "left", "right", "b", "a"}
381konamii = 1
382
383earthquakespeed = 40
384bullettime = false
385portalknockback = false
386bigmario = false
387goombaattack = false
388sonicrainboom = false
389playercollisions = false
390scalefactor = 5
391gelcannondelay = 0.05
392gelcannonspeed = 30
393infinitetime = false
394infinitelives = false
395
396pausemenuoptions = {"resume", "suspend", "volume", "quit to", "quit to"}
397pausemenuoptions2 = {"", "", "", "menu", "desktop"}
398
399guirepeatdelay = 0.07
400mappackhorscrollrange = 220
401
402maximumbulletbills = 5
403coinblocktime = 4