File: functions.cfg

package info (click to toggle)
frogatto-data 1.0-2
  • links: PTS, VCS
  • area: non-free
  • in suites: squeeze
  • size: 155,116 kB
  • sloc: makefile: 1
file content (43 lines) | stat: -rw-r--r-- 2,224 bytes parent folder | download
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
[functions]
	[function]
	args="level,n"
	name="score"
	formula="set(level.player.vars.score, level.player.vars.score + n)"
	[/function]

	[function]
	args="level"
	name="kc"
	formula="[set(level.player.driver.max_hitpoints, 7), set(level.player.driver.hitpoints, 7)]"
	[/function]

	[function]
	args="parent*"
	name="spawn_item"
	formula="if(level.player.vars.next_unlocked_item, [spawn(level.player.vars.next_unlocked_item, parent.midpoint_x, parent.y, parent.facing), set(level.player.vars.next_unlocked_item, null())],
	         if(unlocked_items, spawn( choose(unlocked_items, 1d1000) , parent.midpoint_x, parent.y, parent.facing, [set(velocity_x, velocity_x/6 +1d600-300), set(velocity_y, velocity_y/6)])))

	where unlocked_items = filter(if(level.player.vehicle, level.player.vehicle.vars.unlocked_items, level.player.vars.unlocked_items), 'item', if(level.player.hitpoints = level.player.max_hitpoints and item = 'heart_object' or level.player.vars.powerup_time > 0 and strstr(item, 'powerup'), 0, 1))"

	#  if we want vehicle items AND player items when you're in a vehicle, then do the following:
	#where unlocked_items = if(level.player.vehicle, level.player.vehicle.vars.unlocked_items + level.player.driver.vars.unlocked_items, level.player.vars.unlocked_items) "
	[/function]


	[function]
	name="elastic_collision"
	args="a,b"
	#takes two objects as parameters, changes their velocities according to an elastic collision
	# note deep magic on if(a < b) - this compares the memory addresses, and is done to ensure collisions aren't calculated twice (once on each end of the collision).


	#formula=" [set(a, 'velocity_x', -1200 ), set(b, 'velocity_x', 1200) ]  "
#	formula=" [set(a, 'velocity_x', (a.velocity_x*1000 * (a.mass - b.mass)/(a.mass + b.mass) + (b.velocity_x*1000 * b.mass)/ (a.mass + b.mass))/1000 ), set(b, 'velocity_x', ((a.mass * a.velocity_x*1000)/(a.mass + b.mass) + b.velocity_x*1000 * (b.mass - a.mass )/(a.mass + b.mass))/10 ) ]"

	formula="if(a.mass and b.mass, [set(a.velocity_x, (momentum_x/2)/a.mass),
	          set(b.velocity_x, (momentum_x/2)/b.mass),
			  debug('collide ', momentum_x)]
			  where momentum_x = a.velocity_x*a.mass + b.velocity_x*b.mass)"
	
	[/function]
[/functions]