You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
332 lines
10 KiB
332 lines
10 KiB
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
|
<object>
|
|
<spriteName>sBeamExpl</spriteName>
|
|
<solid>0</solid>
|
|
<visible>-1</visible>
|
|
<depth>0</depth>
|
|
<persistent>0</persistent>
|
|
<parentName><undefined></parentName>
|
|
<maskName><undefined></maskName>
|
|
<events>
|
|
<event eventtype="0" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>//global.clear = 0; ??????
|
|
visible = 0; // hide me!
|
|
// initially triallogic will merely act as a spawn point but does more than that
|
|
alarm[0] = 1; // alarm for spawning samus
|
|
// variables
|
|
timer_started = 0;
|
|
timer = 0; // in tics
|
|
|
|
// GENERATING THE LEVEL
|
|
// grid for making visuals later
|
|
var grid = ds_grid_create(200,150);
|
|
// open the file yoinked from global.level_is
|
|
var file = file_text_open_read("stages/"+global.level_is);
|
|
// skip the strings, they aren't important
|
|
repeat (3){
|
|
file_text_readln(file);
|
|
}
|
|
// get a var from the last one
|
|
var fr = file_text_read_string(file);
|
|
if (fr == ""){
|
|
var hdn = 1;
|
|
}else{
|
|
var hdn = real(fr);
|
|
}
|
|
file_text_readln(file);
|
|
|
|
// objs
|
|
while (!file_text_eof(file)){
|
|
var xx = file_text_read_real(file);
|
|
file_text_readln(file);
|
|
var yy = file_text_read_real(file);
|
|
file_text_readln(file);
|
|
var ty = file_text_read_real(file);
|
|
file_text_readln(file);
|
|
switch (ty){
|
|
case 0: // normal solid
|
|
instance_create(xx,yy,oSolid1);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),1);
|
|
break;
|
|
case 1: // slope 1
|
|
instance_create(xx,yy,oSlope1);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),2);
|
|
break;
|
|
case 2: // slope 2
|
|
instance_create(xx,yy,oSlope2);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),3);
|
|
break;
|
|
case 3: // crack block
|
|
instance_create(xx,yy,oBlockStep);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 4: // beamblock
|
|
instance_create(xx,yy,oBlockShoot);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 5: // bombblock
|
|
instance_create(xx,yy,oBlockBomb);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 6: // missileblock
|
|
with (instance_create(xx,yy,oBlockMissile)){
|
|
regentime = -1;
|
|
}
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 7: // superblock
|
|
with (instance_create(xx,yy,oBlockSMissile)){
|
|
regentime = -1;
|
|
}
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 8: // pbombblock
|
|
with (instance_create(xx,yy,oBlockPBomb)){
|
|
regentime = -1;
|
|
}
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 9: // screwblock
|
|
instance_create(xx,yy,oBlockScrew);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 10: // speedblock
|
|
instance_create(xx,yy,oBlockSpeed);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),4);
|
|
break;
|
|
case 11: // spawn. also for filling grid
|
|
x = xx+8;
|
|
y = yy+16;
|
|
var s_x = x;
|
|
var s_y = y-8;
|
|
break;
|
|
case 12: // FREEDOM
|
|
instance_create(xx,yy,oTrialGoal);
|
|
break;
|
|
case 13: // spikes
|
|
instance_create(xx,yy,oSpikes4);
|
|
ds_grid_set(grid,floor(xx/16),floor(yy/16),5);
|
|
break;
|
|
// items
|
|
case 14: // spiderball
|
|
instance_create(xx,yy+16,oTTSpider);
|
|
break;
|
|
case 15: // jumpball
|
|
instance_create(xx,yy+16,oTTSpring);
|
|
break;
|
|
case 16: // hijump
|
|
instance_create(xx,yy+16,oTTHijump);
|
|
break;
|
|
case 17: // spacejump
|
|
instance_create(xx,yy+16,oTTSpace);
|
|
break;
|
|
case 18: // bombs
|
|
instance_create(xx,yy+16,oTTBomb);
|
|
break;
|
|
case 19: // missile
|
|
instance_create(xx,yy+16,oTTMissile);
|
|
break;
|
|
case 20: // super
|
|
instance_create(xx,yy+16,oTTSuper);
|
|
break;
|
|
case 21: // power
|
|
instance_create(xx,yy+16,oTTPower);
|
|
break;
|
|
case 22: // screw
|
|
instance_create(xx,yy+16,oTTScrew);
|
|
break;
|
|
case 23: // speed
|
|
instance_create(xx,yy+16,oTTBooster);
|
|
break;
|
|
}
|
|
}
|
|
|
|
// now make visuals off of the grid
|
|
for (var i = 0; i < 200; ++i;){
|
|
for (var v = 0; v < 150; ++v;){
|
|
switch (ds_grid_get(grid,i,v)){
|
|
case 1:
|
|
tile_add(tlTimeTrial,0,0,16,16,i*16,v*16,-100);
|
|
break;
|
|
case 2:
|
|
tile_add(tlTimeTrial,32,0,16,16,i*16,v*16,-100);
|
|
break;
|
|
case 3:
|
|
tile_add(tlTimeTrial,48,0,16,16,i*16,v*16,-100);
|
|
break;
|
|
case 4:
|
|
if (hdn){ // only make block sprites if hdn isn't false
|
|
tile_add(tlTimeTrial,16,0,16,16,i*16,v*16,-122);
|
|
}
|
|
break;
|
|
case 5: // spikes
|
|
var place = 0;
|
|
// messy code.. but it works
|
|
if (ds_grid_get(grid,i,v-1) == 1){
|
|
place = 2; // place on ceiling
|
|
}
|
|
if (ds_grid_get(grid,i,v+1) == 1){
|
|
place = 1; // place on floor
|
|
}
|
|
if (ds_grid_get(grid,i+1,v) != 5 && ds_grid_get(grid,i-1,v) != 5){
|
|
// don't perform wall checks if there are spikes on the sides, otherwise..
|
|
if (ds_grid_get(grid,i-1,v) == 1){
|
|
place = 3; // place on left wall
|
|
}
|
|
if (ds_grid_get(grid,i+1,v) == 1){
|
|
place = 4; // place on right wall
|
|
}
|
|
}
|
|
switch (place){
|
|
case 2:
|
|
tile_add(tlTimeTrial,32,16,16,16,i*16,v*16,-122);
|
|
break;
|
|
case 3:
|
|
tile_add(tlTimeTrial,16,16,16,16,i*16,v*16,-122);
|
|
break;
|
|
case 4:
|
|
tile_add(tlTimeTrial,48,16,16,16,i*16,v*16,-122);
|
|
break;
|
|
default:
|
|
tile_add(tlTimeTrial,0,16,16,16,i*16,v*16,-122);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
// kill the grid because memory leaks are bad
|
|
ds_grid_destroy(grid);
|
|
// and kill the file because i didn't do that apparently..?
|
|
file_text_close(file);
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="2" enumb="1">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>goal_trial();
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="2" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>oCharacter.x = x;
|
|
oCharacter.y = y;
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="3" enumb="0">
|
|
<action>
|
|
<libid>1</libid>
|
|
<id>603</id>
|
|
<kind>7</kind>
|
|
<userelative>0</userelative>
|
|
<isquestion>0</isquestion>
|
|
<useapplyto>-1</useapplyto>
|
|
<exetype>2</exetype>
|
|
<functionname></functionname>
|
|
<codestring></codestring>
|
|
<whoName>self</whoName>
|
|
<relative>0</relative>
|
|
<isnot>0</isnot>
|
|
<arguments>
|
|
<argument>
|
|
<kind>1</kind>
|
|
<string>if (timer_started == 1){
|
|
timer += 1;
|
|
}
|
|
|
|
if (timer_started == 0) && !(oCharacter.state == 33){
|
|
mus_stop_all();
|
|
mus_loop(musTrialsPlay);
|
|
timer_started = 1;
|
|
}
|
|
|
|
/* this was debug code for screenshots
|
|
if (keyboard_check(vk_alt)){
|
|
room_speed = 6;
|
|
}else{
|
|
room_speed = 60;
|
|
}
|
|
*/
|
|
|
|
// slow down time before transitioning to the next screen once the course is complete
|
|
if (timer_started == -1){
|
|
room_speed -= 1;
|
|
if (room_speed < 15){
|
|
room_speed = 60;
|
|
goal_trial();
|
|
}
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
</events>
|
|
<PhysicsObject>0</PhysicsObject>
|
|
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
|
<PhysicsObjectShape>0</PhysicsObjectShape>
|
|
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
|
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
|
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
|
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
|
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
|
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
|
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
|
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
|
<PhysicsShapePoints/>
|
|
</object>
|