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
|
[object_type]
always_active="yes"
id="level_controller_neverending"
next_animation="'normal'"
on_create="if(level.in_editor, die(),
[set(alpha, 0),
set(vars.last_xpos, level.player.x),
set(level.player.vars.unlocked_items, ['heart_object', 'target', 'target', 'target', 'target', ]),
set(vars.scroll_xpos, level.dimensions[0]),
set(level.dimensions, [level.dimensions[0], level.dimensions[1], level.dimensions[0] + 10000000, level.dimensions[3]]),
add_level_module(str(first_segment), level.dimensions[0], level.dimensions[1]),
add(vars.segments, [first_segment]),
set(vars.left_edge, level.dimensions[0]), set(vars.right_edge, level.dimensions[0] + level.segment_width)]
where first_segment = (level.player.x - level.dimensions[0])/level.segment_width
)"
on_process="[if(level.player.x >= (vars.last_xpos + 80),
[add(level.player.score, (level.player.x - vars.last_xpos)/10),
set(vars.last_xpos, level.player.x)]),
if(level.player.midpoint_x > vars.cosmic_shift_threshhold, [cosmic_shift(-vars.cosmic_shift_amount, 0),
add(vars.scroll_xpos, -vars.cosmic_shift_amount),
add(vars.last_xpos, -vars.cosmic_shift_amount),
add(vars.left_edge, -vars.cosmic_shift_amount), add(vars.right_edge, -vars.cosmic_shift_amount)],
[
#if the level has gone beyond auto-scrolling, make
the auto-scrolling catch up#
if(level.dimensions[0] > vars.scroll_xpos + vars.scroll_amount/10,
[set(vars.scroll_xpos, level.dimensions[0]),
set(vars.scroll_amount, 0)],
add(vars.scroll_amount, vars.scroll_speed)),
set(level.dimensions, [max(level.dimensions[0], level.player.midpoint_x-400, vars.scroll_xpos + vars.scroll_amount/10), level.dimensions[1], level.dimensions[2], level.dimensions[3]]),
if(level.player.midpoint_x < level.dimensions[0], set(level.player.midpoint_x, level.dimensions[0])),
if(level.player.midpoint_x + 40 < level.dimensions[0], add(level.player.hitpoints, -1)),
if(level.player.midpoint_x > vars.right_edge - 800,
if(new_segment = null(),
fire_event('recycle_segment'),
[
add(vars.segments, [new_segment]),
add_level_module(new_segment, vars.right_edge, level.dimensions[1]),
add(vars.right_edge, level.segment_width),
add(level.player.difficulty, 1),
if(vars.scroll_speed_incr and (vars.scroll_speed < vars.scroll_speed_cap) and ((level.player.difficulty%vars.scroll_speed_incr) = 0), add(vars.scroll_speed, 1))
])
where new_segment = choose(filter(query(level, 'segments_after_' + vars.segments.last), 'n', query(level, 'segment_difficulty_start_' + n) <= level.player.difficulty and (not (n in vars.segments))))
),
if(level.player.midpoint_x > vars.left_edge + 800 + level.segment_width,
fire_event('recycle_segment'))
])]"
on_recycle_segment="[remove_level_module(vars.segments[0]),
add(vars.left_edge, level.segment_width),
set(vars.segments, filter(vars.segments, 'n', n != vars.segments[0]))]"
respawns="no"
zorder="50"
[editor_info]
category="controllers"
[var]
name="scroll_speed"
value="0"
[/var]
[var]
name="scroll_speed_incr"
value="0"
[/var]
[var]
name="scroll_speed_cap"
value="0"
[/var]
[/editor_info]
[vars]
cosmic_shift_amount="15360"
cosmic_shift_threshhold="16384"
last_xpos="0"
left_edge="0"
right_edge="0"
scroll_amount="0"
scroll_speed="0"
scroll_speed_cap="0"
scroll_speed_incr="0"
scroll_xpos="0"
segments="[]"
[/vars]
[animation]
duration="1000000"
frame_info="1,1,2,1,644,449,25,26"
frames="1"
id="normal"
image="compiled-2.png"
rect="643,448,670,475"
[/animation]
[/object_type]
|