added scoring system, score saving, end of game, second boss, boss patterns, and full stage logic

This commit is contained in:
magicalfeyfenny 2021-06-15 03:06:56 -04:00
parent b9bc334b61
commit d8a1b248d8
378 changed files with 7100 additions and 271 deletions

60
cutscene_dialogue.txt Normal file
View File

@ -0,0 +1,60 @@
0
3
Wriggle
2
Mystia
So, what are you up to?
0
3
Wriggle
2
Mystia
on this fine day of Tuesday
1
1
Wriggle
2
Mystia
not much my good binch
1
1
Wriggle
2
Mystia
just drinking my soup
0
1
Wriggle
5
Mystia
cool cool
1
2
Wriggle
1
Mystia
btw did you hear we're files now
0
3
Wriggle
1
Mystia
arent we all like files, you know, in a philosophical sense
1
3
Wriggle
3
Mystia
yeah *sips her soup*
1
3
Wriggle
2
Mystia
anyway i must go now my planet needs me
0
2
Wriggle
2
Mystia
nooooooooooooo

View File

@ -1,36 +0,0 @@
0
3
Wriggle
2
Mystia
"So, what are you up to?"
0
3
Wriggle
2
Mystia
"on this fine day of Tuesday"
1
1
Wriggle
2
Mystia
"not much my good binch"
1
1
Wriggle
2
Mystia
"just drinking my soup"
0
1
Wriggle
5
Mystia
"cool cool"
1
2
Wriggle
1
Mystia
"btw did you hear we're files now"

View File

@ -27,7 +27,7 @@ You're saying I'm worse than a devil?
Wriggle
3
Byakuren
Neither devils nor bugs are bad things in my book. Devils are pretty cool.#You're also pretty cool, and also just pretty~~
Neither devils nor bugs are bad things in my book. Devils are pretty #cool. You're also pretty cool, and also just pretty~~
0
3
Wriggle

72
stage1_Nue_dialogue.txt Normal file
View File

@ -0,0 +1,72 @@
1
0
Wriggle
1
Nue
hello it is i hot topic girl
0
3
Wriggle
1
Nue
Why do you look like a badly-drawn ghost?
1
3
Wriggle
2
Nue
The devs were being lazy
1
0
Wriggle
2
Nue
look aroudn and you can see the evidence of that everywhere
0
3
Wriggle
0
Nue
It just looks like a normal day in Gensokyo ot me
1
3
Wriggle
3
Nue
Huh. I thought the really basic post-midboss patterns were a dead#giveaway.
0
1
Wriggle
3
Nue
I just assumed that meant I was at the final stage.
1
1
Wriggle
0
Nue
I am a final boss, of sorts.
1
0
Wriggle
1
Nue
I needed someone with pink hair for a... uh... cosplay shoot.#Yeah. A cosplay shoot.
0
3
Wriggle
1
Nue
Pink hair... wait does she have wings?
1
3
Wriggle
3
Nue
Yes, and uh you appear to be glowing somehow? Are you the #legendary super saiyabug?
1
4
Wriggle
3
Nue
Um... uh... >///< Yeah! I'm the most powerful bug in the world! #Prepare to face your fate, hot topic girl!

View File

@ -0,0 +1,72 @@
1
0
Wriggle
5
Nue
gosh that was certainly a date >////<
0
1
Wriggle
5
Nue
Did I make the goth girl blush with my shine?
1
1
Wriggle
5
Nue
y-yeah... you uh certainly showed me nya
0
3
Wriggle
5
Nue
Wait but you're not a cat why are you nya-ing?
1
3
Wriggle
0
Nue
im too powerful to not nya all the most powerful girls nya
0
1
Wriggle
0
Nue
nya~
1
1
Wriggle
1
Nue
nya~
1
1
Wriggle
1
Mystia
hello i am here now sorry i was doing stuff
1
1
Wriggle
1
Nue
i'm stuff
0
1
Wriggle
1
Nue
haha you're fucking my birbfriend
1
1
Wriggle
1
Mystia
Fun fact about fireflies: when their butts glow it's because they're horny
0
3
Wriggle
1
Mystia
>///////////////////////////////////////////<

View File

@ -0,0 +1,48 @@
1
0
Wriggle
5
Byakuren
that was a good date you may proceed
0
3
Wriggle
5
Byakuren
Wait where am i proceeding to? you said you knew whwere the#UFO went?
0
4
Wriggle
5
Byakuren
Are you secretly running an underground UFO travel agency?
1
4
Wriggle
5
Byakuren
Yes my associate is ahead please... pass through... bullet...
0
2
Wriggle
5
Byakuren
noooooo don't die
1
2
Wriggle
2
Byakuren
don't worry everything will be daijoubu#*fades away then reappears like instantly*
0
2
Wriggle
1
Byakuren
i can still hear her voice...
1
2
Wriggle
1
Byakuren
gay gay homosexual gay

View File

@ -0,0 +1,60 @@
0
3
Wriggle
2
Mystia
So, what are you up to?
0
3
Wriggle
2
Mystia
on this fine day of Tuesday
1
1
Wriggle
2
Mystia
not much my good binch
1
1
Wriggle
2
Mystia
just drinking my soup
0
1
Wriggle
5
Mystia
cool cool
1
2
Wriggle
1
Mystia
btw did you hear we're files now
0
3
Wriggle
1
Mystia
arent we all like files, you know, in a philosophical sense
1
3
Wriggle
3
Mystia
yeah *sips her soup*
1
3
Wriggle
2
Mystia
anyway i must go now my planet needs me
0
2
Wriggle
2
Mystia
nooooooooooooo

View File

@ -1,36 +0,0 @@
0
3
Wriggle
2
Mystia
"So, what are you up to?"
0
3
Wriggle
2
Mystia
"on this fine day of Tuesday"
1
1
Wriggle
2
Mystia
"not much my good binch"
1
1
Wriggle
2
Mystia
"just drinking my soup"
0
1
Wriggle
5
Mystia
"cool cool"
1
2
Wriggle
1
Mystia
"btw did you hear we're files now"

View File

@ -0,0 +1,72 @@
1
0
Wriggle
1
Nue
hello it is i hot topic girl
0
3
Wriggle
1
Nue
Why do you look like a badly-drawn ghost?
1
3
Wriggle
2
Nue
The devs were being lazy
1
0
Wriggle
2
Nue
look aroudn and you can see the evidence of that everywhere
0
3
Wriggle
0
Nue
It just looks like a normal day in Gensokyo ot me
1
3
Wriggle
3
Nue
Huh. I thought the really basic post-midboss patterns were a dead#giveaway.
0
1
Wriggle
3
Nue
I just assumed that meant I was at the final stage.
1
1
Wriggle
0
Nue
I am a final boss, of sorts.
1
0
Wriggle
1
Nue
I needed someone with pink hair for a... uh... cosplay shoot.#Yeah. A cosplay shoot.
0
3
Wriggle
1
Nue
Pink hair... wait does she have wings?
1
3
Wriggle
3
Nue
Yes, and uh you appear to be glowing somehow? Are you the #legendary super saiyabug?
1
4
Wriggle
3
Nue
Um... uh... >///< Yeah! I'm the most powerful bug in the world! #Prepare to face your fate, hot topic girl!

View File

@ -0,0 +1,72 @@
1
0
Wriggle
5
Nue
gosh that was certainly a date >////<
0
1
Wriggle
5
Nue
Did I make the goth girl blush with my shine?
1
1
Wriggle
5
Nue
y-yeah... you uh certainly showed me nya
0
3
Wriggle
5
Nue
Wait but you're not a cat why are you nya-ing?
1
3
Wriggle
0
Nue
im too powerful to not nya all the most powerful girls nya
0
1
Wriggle
0
Nue
nya~
1
1
Wriggle
1
Nue
nya~
1
1
Wriggle
1
Mystia
hello i am here now sorry i was doing stuff
1
1
Wriggle
1
Nue
i'm stuff
0
1
Wriggle
1
Nue
haha you're fucking my birbfriend
1
1
Wriggle
1
Mystia
Fun fact about fireflies: when their butts glow it's because they're horny
0
3
Wriggle
1
Mystia
>///////////////////////////////////////////<

View File

@ -0,0 +1,48 @@
1
0
Wriggle
5
Byakuren
that was a good date you may proceed
0
3
Wriggle
5
Byakuren
Wait where am i proceeding to? you said you knew whwere the#UFO went?
0
4
Wriggle
5
Byakuren
Are you secretly running an underground UFO travel agency?
1
4
Wriggle
5
Byakuren
Yes my associate is ahead please... pass through... bullet...
0
2
Wriggle
5
Byakuren
noooooo don't die
1
2
Wriggle
2
Byakuren
don't worry everything will be daijoubu#*fades away then reappears like instantly*
0
2
Wriggle
1
Byakuren
i can still hear her voice...
1
2
Wriggle
1
Byakuren
gay gay homosexual gay

View File

@ -32,10 +32,49 @@ draw_text( 910 + 1, 18 - 1, "Shine: " );
draw_text( 135 + 1, 18 + 1, "Lives: " );
draw_text( 525 + 1, 18 + 1, "Spell: " );
draw_text( 910 + 1, 18 + 1, "Shine: " );
draw_set_font(fn_dialogue_names);
draw_text( 130 + 1, 0 + 1, "Score: " );
draw_text( 730 + 1, 0 + 1, "High: " );
draw_text( 2 + 1, 102 + 1, "x" + string( obj_wriggle.score_multiply ) );
draw_set_halign(fa_right);
draw_text( 700 + 1, 0 + 1, obj_wriggle.score_current );
draw_text( 1260 + 1, 0 + 1, obj_wriggle.score_high );
draw_set_halign(fa_left);
draw_text( 130 + 1, 0 - 1, "Score: " );
draw_text( 730 + 1, 0 - 1, "High: " );
draw_text( 2, 102 - 1, "x" + string( obj_wriggle.score_multiply ) );
draw_set_halign(fa_right);
draw_text( 700 + 1, 0 - 1, obj_wriggle.score_current );
draw_text( 1260 + 1, 0 - 1, obj_wriggle.score_high );
draw_set_halign(fa_left);
draw_text( 130 - 1, 0 + 1, "Score: " );
draw_text( 730 - 1, 0 + 1, "High: " );
draw_text( 2 - 1, 102 + 1, "x" + string( obj_wriggle.score_multiply ) );
draw_set_halign(fa_right);
draw_text( 700 - 1, 0 + 1, obj_wriggle.score_current );
draw_text( 1260 - 1, 0 + 1, obj_wriggle.score_high );
draw_set_halign(fa_left);
draw_text( 130 - 1, 0 - 1, "Score: " );
draw_text( 730 - 1, 0 - 1, "High: " );
draw_text( 2 - 1, 102 - 1, "x" + string( obj_wriggle.score_multiply ) );
draw_set_halign(fa_right);
draw_text( 700 - 1, 0 - 1, obj_wriggle.score_current );
draw_text( 1260 - 1, 0 - 1, obj_wriggle.score_high );
draw_set_halign(fa_left);
draw_set_font(fn_GUI);
draw_set_color(c_white);
draw_text( 135, 18, "Lives: " );
draw_text( 525, 18, "Spell: " );
draw_text( 910, 18, "Shine: " );
draw_set_font(fn_dialogue_names);
draw_text( 130, 0, "Score: " );
draw_text( 730, 0, "High: " );
draw_text( 2, 102, "x" + string( obj_wriggle.score_multiply ) );
draw_set_halign(fa_right);
draw_text( 700, 0, obj_wriggle.score_current );
draw_text( 1260, 0, obj_wriggle.score_high );
draw_set_halign(fa_left);
draw_set_font(fn_GUI);
if ( instance_exists(obj_boss_parent) ) {
with( obj_boss_parent ) {

View File

@ -0,0 +1,16 @@
if (!invuln) {
hp -= other.damage;
}
obj_wriggle.hyper_current += .01;
if ( point_distance(x, y, obj_wriggle.x, obj_wriggle.y) < 200 ) {
obj_wriggle.hyper_current += .03;
}
if (hp < 60) {
audio_play_sound( snd_enemy_hit_deep, 0, false );
} else {
audio_play_sound( snd_enemy_hit, 0, false );
}
with (other) {
instance_destroy();
}

View File

@ -1,6 +1,6 @@
effect_create_below(ef_ring, x, y, 2, c_orange);
effect_create_below(ef_ellipse, x, y, 2, c_fuchsia);
effect_create_below(ef_ring, x, y, 2, c_white);
effect_create_below(ef_ellipse, x, y, 2, c_white);
effect_create_below(ef_firework, x, y, 2, c_yellow);
effect_create_below(ef_smokeup, x, y, 2, c_silver);
audio_play_sound(snd_boss_destroy, 10, false);
obj_stage_controller.timeline_running = true;
obj_stage_controller.timeline_running = true;

View File

@ -32,6 +32,7 @@ if ( phase_mode == MODE_CHARGE ) {
if ( !charge_timer ) {
phase_mode = MODE_ACTIVE;
}
y = _y;
}
//dialogue
@ -50,6 +51,7 @@ if ( phase_mode == MODE_APPROACH ) {
vspeed = 15 - min( 15, (BOSS_APPROACH_TIME - charge_timer) / 2 );
image_angle += 24;
if ( !charge_timer ) {
_y = y;
if ( file_exists( stagename + "_" + bossname + "_dialogue.txt" ) ) { // "stage#_bossname_dialogue.txt"
scr_dialogue_start( stagename + "_" + bossname + "_dialogue.txt" );
phase_mode = MODE_CHAT;

View File

@ -24,8 +24,8 @@
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":1,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_player_shot","path":"objects/obj_player_shot/obj_player_shot.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_player_shot_parent","path":"objects/obj_player_shot_parent/obj_player_shot_parent.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],

View File

@ -0,0 +1,18 @@
// Inherit the parent event
event_inherited();
phases = 7;
current_phase = 0;
phase_hp = [];
phase_hp[7] = 6500;
phase_hp[6] = 5000;
phase_hp[5] = 4200;
phase_hp[4] = 3000;
phase_hp[3] = 3100;
phase_hp[2] = 3500;
phase_hp[1] = 3400;
phase_hp[0] = 3000;
stagename = "stage1";
bossname = "Nue";
boss_title = "An unidentified flying object";
hp = phase_hp[current_phase];

View File

@ -0,0 +1,7 @@
effect_create_below(ef_ring, x, y, 2, c_black);
effect_create_below(ef_ellipse, x, y, 2, c_red);
effect_create_below(ef_firework, x, y, 2, c_fuchsia);
effect_create_below(ef_smokeup, x, y, 2, c_silver);
audio_play_sound(snd_boss_destroy, 10, false);
scr_dialogue_start( "stage1_afterboss_dialogue.txt" );
obj_stage_controller.timeline_running = true;

View File

@ -0,0 +1,136 @@
charge_timer--;
if (hp <= 0) {
with (obj_enemy_bullet_parent) {
instance_destroy();
}
if ( current_phase < phases ) {
current_phase++;
hp = phase_hp[current_phase];
charge_timer = BOSS_CHARGE_TIME;
phase_mode = MODE_CHARGE;
audio_play_sound( snd_boss_spellbreak, 1, false );
} else {
instance_destroy();
}
}
//attack patterns
if ( phase_mode == MODE_ACTIVE ) {
invuln = false;
if ( obj_wriggle.emergency ) {
charge_timer++;
//stop shooting
} else if ( !obj_wriggle.emergency ) {
y += (( abs(charge_timer) % 60 ) - 30 ) / 30;
switch (current_phase) {
case 0: {
if ( !(abs(charge_timer) % 20) ) {
scr_pattern_fire( PATTERN_LANE_RING, 5, obj_bullet_blade );
}
if ( !(abs(charge_timer) % 120) ) {
scr_pattern_fire( PATTERN_RING, 6, obj_bullet_ball );
scr_pattern_fire( PATTERN_RING, 5, obj_bullet_ball );
}
break;
}
case 1: {
if ( !(abs(charge_timer) % 30) ) {
scr_pattern_fire( PATTERN_VERT_WALL, 3, obj_bullet_bead );
}
if ( !(abs(charge_timer) % 10) ) {
scr_pattern_fire( PATTERN_RANDOM_SPRAY, 4, obj_bullet_pellet );
}
break;
}
case 2: {
if ( !(abs(charge_timer) % 180) ) {
scr_pattern_fire( PATTERN_SHOTGUN, 3, obj_bullet_blade);
}
if ( !(abs(charge_timer) % 20) ) {
scr_pattern_fire( PATTERN_RANDOM_RING, 5, obj_bullet_card);
}
break;
}
case 3: {
if ( !(abs(charge_timer) % 13) ) {
scr_pattern_fire( PATTERN_STREAM_RING, 4, obj_bullet_blade);
}
if ( !(abs(charge_timer) % 40) ) {
scr_pattern_fire( PATTERN_RANDOM_BURST, 5, obj_bullet_bead);
}
break;
}
case 4: {
if ( !(abs(charge_timer) % 40) ) {
scr_pattern_fire( PATTERN_SHOTGUN_RING, 4, obj_bullet_diamond );
}
break;
}
case 5: {
if ( !(abs(charge_timer) % 20) ) {
scr_pattern_fire( PATTERN_LANE, 4, obj_bullet_ball );
}
if ( !(abs(charge_timer) % 60) ) {
scr_pattern_fire( PATTERN_LANE_RING, 3, obj_bullet_blade );
}
break;
}
case 6: {
if ( !(abs(charge_timer) % 60) ) {
scr_pattern_fire( PATTERN_SHOTGUN_RING, 4, obj_bullet_diamond );
}
if ( !((abs(charge_timer) % 30) ) ){
scr_pattern_fire( PATTERN_LANE_RING, 5, obj_bullet_blade );
}
break;
}
case 7: {
if ( !(abs(charge_timer) % 13) ) {
scr_pattern_fire( irandom(12), 2 + random(4), choose(obj_bullet_ball, obj_bullet_bead, obj_bullet_blade, obj_bullet_card, obj_bullet_diamond, obj_bullet_pellet));
}
break;
}
default: {
break;
}
}
}
}
//animations in-between phases
if ( phase_mode == MODE_CHARGE ) {
invuln = true;
if ( !charge_timer ) {
phase_mode = MODE_ACTIVE;
}
}
//dialogue
if ( phase_mode == MODE_CHAT ) {
invuln = true;
if ( !obj_dialogue.dialogue_mode ) {
audio_stop_sound( snd_music_stage1 );
audio_play_sound( snd_music_st1boss, 0, true );
charge_timer = BOSS_CHARGE_TIME;
phase_mode = MODE_CHARGE;
}
}
//jumping on-screen
if ( phase_mode == MODE_APPROACH ) {
invuln = true;
hspeed = (15 - min( 15, (BOSS_APPROACH_TIME - charge_timer) / 2 ) ) * face_dir;
vspeed = 15 - min( 15, (BOSS_APPROACH_TIME - charge_timer) / 2 );
image_angle += 24;
if ( !charge_timer ) {
if ( file_exists( stagename + "_" + bossname + "_dialogue.txt" ) ) { // "stage#_bossname_dialogue.txt"
scr_dialogue_start( stagename + "_" + bossname + "_dialogue.txt" );
phase_mode = MODE_CHAT;
} else {
charge_timer = BOSS_CHARGE_TIME;
phase_mode = MODE_CHARGE;
}
}
}

View File

@ -0,0 +1,41 @@
{
"spriteId": {
"name": "spr_nue",
"path": "sprites/spr_nue/spr_nue.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_boss_parent",
"path": "objects/obj_boss_parent/obj_boss_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":1,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_boss_stage1_final",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,39 @@
{
"spriteId": {
"name": "spr_byakuren",
"path": "sprites/spr_byakuren/spr_byakuren.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_boss_parent",
"path": "objects/obj_boss_parent/obj_boss_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_boss_stage1_mid",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,7 @@
effect_create_below(ef_ring, x, y, 2, c_orange);
effect_create_below(ef_ellipse, x, y, 2, c_fuchsia);
effect_create_below(ef_firework, x, y, 2, c_yellow);
effect_create_below(ef_smokeup, x, y, 2, c_silver);
audio_play_sound(snd_boss_destroy, 10, false);
scr_dialogue_start( "stage1_aftermid_dialogue.txt" );
obj_stage_controller.timeline_running = true;

View File

@ -0,0 +1,106 @@
charge_timer--;
if (hp <= 0) {
with (obj_enemy_bullet_parent) {
instance_destroy();
}
if ( current_phase < phases ) {
current_phase++;
hp = phase_hp[current_phase];
charge_timer = BOSS_CHARGE_TIME;
phase_mode = MODE_CHARGE;
audio_play_sound( snd_boss_spellbreak, 1, false );
} else {
instance_destroy();
}
}
//attack patterns
if ( phase_mode == MODE_ACTIVE ) {
invuln = false;
if ( obj_wriggle.emergency ) {
charge_timer++;
//stop shooting
} else if ( !obj_wriggle.emergency ) {
y += (( abs(charge_timer) % 60 ) - 30 ) / 30;
switch (current_phase) {
case 0: {
if ( !(abs(charge_timer) % 10) ) {
scr_pattern_fire( PATTERN_RANDOM_RING, 3, obj_bullet_card );
}
if ( !(abs(charge_timer) % 15) ) {
scr_pattern_fire( PATTERN_LANE, 6, obj_bullet_diamond );
}
break;
}
case 1: {
if ( !(abs(charge_timer) % 20) ) {
scr_pattern_fire( PATTERN_HORIZ_WALL, 2, obj_bullet_card );
scr_pattern_fire( PATTERN_VERT_WALL, 2, obj_bullet_card );
}
if ( !(abs(charge_timer) % 120) ) {
scr_pattern_fire( PATTERN_SHOTGUN, 4, obj_bullet_blade );
}
break;
}
case 2: {
if ( !(abs(charge_timer) % 180) ) {
scr_pattern_fire( PATTERN_AIMED_WAVE, 3, obj_bullet_diamond);
scr_pattern_fire( PATTERN_AIMED_WAVE, 2, obj_bullet_diamond);
scr_pattern_fire( PATTERN_LANE, 5, obj_bullet_ball);
}
break;
}
case 3: {
if ( !(abs(charge_timer) % 5) ) {
scr_pattern_fire( PATTERN_STREAM, 6, obj_bullet_card);
}
if ( !(abs(charge_timer) % 30) ) {
scr_pattern_fire( PATTERN_RANDOM_BURST, 4, obj_bullet_ball);
}
break;
}
default: {
break;
}
}
}
}
//animations in-between phases
if ( phase_mode == MODE_CHARGE ) {
invuln = true;
if ( !charge_timer ) {
phase_mode = MODE_ACTIVE;
}
y = _y;
}
//dialogue
if ( phase_mode == MODE_CHAT ) {
invuln = true;
if ( !obj_dialogue.dialogue_mode ) {
charge_timer = BOSS_CHARGE_TIME;
phase_mode = MODE_CHARGE;
}
}
//jumping on-screen
if ( phase_mode == MODE_APPROACH ) {
invuln = true;
hspeed = (15 - min( 15, (BOSS_APPROACH_TIME - charge_timer) / 2 ) ) * face_dir;
vspeed = 15 - min( 15, (BOSS_APPROACH_TIME - charge_timer) / 2 );
image_angle += 24;
if ( !charge_timer ) {
_y = y;
if ( file_exists( stagename + "_" + bossname + "_dialogue.txt" ) ) { // "stage#_bossname_dialogue.txt"
scr_dialogue_start( stagename + "_" + bossname + "_dialogue.txt" );
phase_mode = MODE_CHAT;
} else {
charge_timer = BOSS_CHARGE_TIME;
phase_mode = MODE_CHARGE;
}
}
}

View File

@ -25,6 +25,8 @@
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":1,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],

View File

@ -27,8 +27,8 @@
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "obj_bullet_ball",

View File

@ -27,8 +27,8 @@
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "obj_bullet_bead",

View File

@ -27,8 +27,8 @@
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "obj_bullet_blade",

View File

@ -27,8 +27,8 @@
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "obj_bullet_card",

View File

@ -27,8 +27,8 @@
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "obj_bullet_diamond",

View File

@ -27,8 +27,8 @@
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "obj_bullet_pellet",

View File

@ -0,0 +1,4 @@
image_speed = 0;
image_turner = 60;
image_xscale = 1 / 60;
image_yscale = 1 / 60;

View File

@ -0,0 +1,3 @@
scr_scores( SCORE_WRITE );
audio_stop_all();
room_goto(rm_title);

View File

@ -0,0 +1,9 @@
image_turner--;
if ( image_turner > 0 ) {
image_angle += 18;
image_xscale = 1 / image_turner;
image_yscale = 1 / image_turner;
} else {
image_speed = 2;
}

View File

@ -0,0 +1,38 @@
{
"spriteId": {
"name": "spr_congratulations",
"path": "sprites/spr_congratulations/spr_congratulations.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":7,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "stage",
"path": "folders/stage.yy",
},
"resourceVersion": "1.0",
"name": "obj_congratulations",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,4 @@
if ( instance_exists( obj_cutscene_ufo ) ) {
move_towards_point(obj_cutscene_ufo.x, obj_cutscene_ufo.y, 6);
image_angle += 15;
}

View File

@ -0,0 +1,36 @@
{
"spriteId": {
"name": "spr_cutscene_mystia",
"path": "sprites/spr_cutscene_mystia/spr_cutscene_mystia.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "cutscene",
"path": "folders/cutscene.yy",
},
"resourceVersion": "1.0",
"name": "obj_cutscene_mystia",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1 @@
hspeed = -5;

View File

@ -0,0 +1 @@
room_goto_next();

View File

@ -0,0 +1,37 @@
{
"spriteId": {
"name": "spr_cutscene_ufo",
"path": "sprites/spr_cutscene_ufo/spr_cutscene_ufo.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":7,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "cutscene",
"path": "folders/cutscene.yy",
},
"resourceVersion": "1.0",
"name": "obj_cutscene_ufo",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1 @@
scr_dialogue_start( "cutscene_dialogue.txt" );

View File

@ -0,0 +1,3 @@
if ( !obj_dialogue.dialogue_mode && !instance_exists(obj_cutscene_ufo) ) {
instance_create_layer(1260, 100, "Instances", obj_cutscene_ufo );
}

View File

@ -0,0 +1,37 @@
{
"spriteId": {
"name": "spr_cutscene_wriggle",
"path": "sprites/spr_cutscene_wriggle/spr_cutscene_wriggle.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "cutscene",
"path": "folders/cutscene.yy",
},
"resourceVersion": "1.0",
"name": "obj_cutscene_wriggle",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -20,7 +20,7 @@ if (dialogue_mode) {
actor_left_sprite = asset_get_index( "spr_" + string_lower(actor_left) + "_4_angry" );
break;
case 5:
actor_left_sprite = asset_get_index( "spr_" + string_lower(actor_left) + "_5_sad" );
actor_left_sprite = asset_get_index( "spr_" + string_lower(actor_left) + "_5_ouch" );
break;
default:
actor_left_sprite = -1;
@ -48,7 +48,7 @@ if (dialogue_mode) {
actor_right_sprite = asset_get_index( "spr_" + string_lower(actor_right) + "_4_angry" );
break;
case 5:
actor_right_sprite = asset_get_index( "spr_" + string_lower(actor_right) + "_5_sad" );
actor_right_sprite = asset_get_index( "spr_" + string_lower(actor_right) + "_5_ouch" );
break;
default:
actor_right_sprite = -1;

View File

@ -1,5 +0,0 @@
hp -= other.damage;
with (other) {
instance_destroy();
}

View File

@ -1 +1,3 @@
effect_create_below( ef_spark, x, y, 0, c_fuchsia );
effect_create_below( ef_spark, x, y, 0, c_fuchsia );
obj_wriggle.score_current += SCORE_BULLET_VALUE * ( obj_wriggle.score_multiply ) * (obj_wriggle.hyper_tier + 1);

View File

@ -0,0 +1,3 @@
gpu_set_blendmode( bm_max );
draw_self();
gpu_set_blendmode( bm_normal );

View File

@ -18,6 +18,7 @@ if ( point_distance( x, y, obj_wriggle.x, obj_wriggle.y ) < 64 ) {
obj_wriggle.hyper_current += .1;
audio_play_sound(snd_graze, 0, false);
effect_create_below(ef_spark, obj_wriggle.x, obj_wriggle.y, 0, c_white);
obj_wriggle.score_current += SCORE_GRAZE_VALUE * ( obj_wriggle.score_multiply ) * (obj_wriggle.hyper_tier + 1);
}
if ( x < BOUNDARY_LEFT - 128 || x > BOUNDARY_RIGHT + 128 || y < BOUNDARY_TOP - 128 || y > BOUNDARY_BOTTOM + 128 ) {

View File

@ -22,6 +22,7 @@
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_wriggle","path":"objects/obj_wriggle/obj_wriggle.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":1,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],

View File

@ -0,0 +1,7 @@
// Inherit the parent event
event_inherited();
hp = 140;
pattern_delay = 40 + irandom(20);
pattern_delay_target = 120;

View File

@ -0,0 +1,9 @@
// Inherit the parent event
event_inherited();
pattern_delay -= (1 + obj_wriggle.hyper_tier);
if ( pattern_delay <= 0 && x > 300 ) {
scr_pattern_fire( PATTERN_RANDOM_BURST, 1, obj_bullet_pellet );
pattern_delay = pattern_delay_target;
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_A",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy_burst",
"path": "sprites/spr_fairy_burst/spr_fairy_burst.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_burst",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_lane",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_shotgun",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fluff",
"path": "sprites/spr_fluff/spr_fluff.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_popcorn",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -4,6 +4,6 @@ event_inherited();
pattern_delay -= (1 + obj_wriggle.hyper_tier);
if ( pattern_delay <= 0 && x > 300 ) {
scr_pattern_fire( PATTERN_LANE, 6, obj_bullet_ball );
scr_pattern_fire( PATTERN_LANE, 6, obj_bullet_card );
pattern_delay = pattern_delay_target;
}

View File

@ -1,7 +1,7 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
"name": "spr_fairy_lane",
"path": "sprites/spr_fairy_lane/spr_fairy_lane.yy",
},
"solid": false,
"visible": true,

View File

@ -0,0 +1,7 @@
// Inherit the parent event
event_inherited();
hp = 700;
pattern_delay = 70 + irandom(20);
pattern_delay_target = 120;

View File

@ -0,0 +1,9 @@
// Inherit the parent event
event_inherited();
pattern_delay -= (1 + obj_wriggle.hyper_tier);
if ( pattern_delay <= 0 && x > 300 ) {
scr_pattern_fire( PATTERN_RING, 1, obj_bullet_ball );
pattern_delay = pattern_delay_target;
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_A",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy_burst",
"path": "sprites/spr_fairy_burst/spr_fairy_burst.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_burst",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_lane",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy_large",
"path": "sprites/spr_fairy_large/spr_fairy_large.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_large_ring",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_fairy_shotgun",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,40 @@
{
"spriteId": {
"name": "spr_fluff",
"path": "sprites/spr_fluff/spr_fluff.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_enemy_parent",
"path": "objects/obj_enemy_parent/obj_enemy_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
},
"resourceVersion": "1.0",
"name": "obj_enemy_popcorn",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -1,7 +1,7 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
"name": "spr_fairy_shotgun",
"path": "sprites/spr_fairy_shotgun/spr_fairy_shotgun.yy",
},
"solid": false,
"visible": true,

View File

@ -1,7 +1,7 @@
{
"spriteId": {
"name": "spr_fairy",
"path": "sprites/spr_fairy/spr_fairy.yy",
"name": "spr_fairy_wave",
"path": "sprites/spr_fairy_wave/spr_fairy_wave.yy",
},
"solid": false,
"visible": true,

View File

@ -1,4 +1,8 @@
effect_create_below( ef_ellipse, x, y, 1, c_teal );
effect_create_below( ef_smoke, x, y, 0, c_silver );
audio_play_sound( snd_enemy_destroy, 0, false );
obj_wriggle.hyper_current += 2;
obj_wriggle.hyper_current += 2;
if ( !obj_wriggle.bombing ) {
obj_wriggle.score_multiply += 100 + (20 * (obj_wriggle.hyper_tier));
}
obj_wriggle.score_current += SCORE_ENEMY_VALUE * ( obj_wriggle.score_multiply ) * (obj_wriggle.hyper_tier + 1);

View File

@ -18,7 +18,7 @@
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_player_shot","path":"objects/obj_player_shot/obj_player_shot.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_player_shot_parent","path":"objects/obj_player_shot_parent/obj_player_shot_parent.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_wriggle","path":"objects/obj_wriggle/obj_wriggle.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},

View File

@ -8,8 +8,8 @@
"spriteMaskId": null,
"persistent": false,
"parentObjectId": {
"name": "obj_player_shot",
"path": "objects/obj_player_shot/obj_player_shot.yy",
"name": "obj_player_shot_parent",
"path": "objects/obj_player_shot_parent/obj_player_shot_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,

View File

@ -0,0 +1,7 @@
if ( obj_wriggle.hyper_time && damage > 5 ) {
with (other) {
instance_destroy();
}
damage--;
obj_wriggle.score_multiply++;
}

View File

@ -7,7 +7,10 @@
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"parentObjectId": {
"name": "obj_player_shot_parent",
"path": "objects/obj_player_shot_parent/obj_player_shot_parent.yy",
},
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
@ -21,8 +24,7 @@
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_enemy_bullet_parent","path":"objects/obj_enemy_bullet_parent/obj_enemy_bullet_parent.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],

View File

@ -0,0 +1,5 @@
if ( obj_wriggle.hyper_time && damage >= 5 ) {
with (other) {
instance_destroy();
}
}

View File

@ -1,3 +1,4 @@
if ( x > BOUNDARY_RIGHT + 128 || x < BOUNDARY_LEFT - 128 || y > BOUNDARY_BOTTOM + 128 || y < BOUNDARY_TOP - 128 ) {
instance_destroy();
}
}

View File

@ -0,0 +1,38 @@
{
"spriteId": {
"name": "spr_player_shot",
"path": "sprites/spr_player_shot/spr_player_shot.yy",
},
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":4,"collisionObjectId":{"name":"obj_enemy_bullet_parent","path":"objects/obj_enemy_bullet_parent/obj_enemy_bullet_parent.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "player",
"path": "folders/player.yy",
},
"resourceVersion": "1.0",
"name": "obj_player_shot",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -0,0 +1,34 @@
{
"spriteId": null,
"solid": false,
"visible": true,
"spriteMaskId": null,
"persistent": false,
"parentObjectId": null,
"physicsObject": false,
"physicsSensor": false,
"physicsShape": 1,
"physicsGroup": 1,
"physicsDensity": 0.5,
"physicsRestitution": 0.1,
"physicsLinearDamping": 0.1,
"physicsAngularDamping": 0.1,
"physicsFriction": 0.2,
"physicsStartAwake": true,
"physicsKinematic": false,
"physicsShapePoints": [],
"eventList": [
{"isDnD":false,"eventNum":0,"eventType":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
{"isDnD":false,"eventNum":0,"eventType":8,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},
],
"properties": [],
"overriddenProperties": [],
"parent": {
"name": "player",
"path": "folders/player.yy",
},
"resourceVersion": "1.0",
"name": "obj_player_shot_parent",
"tags": [],
"resourceType": "GMObject",
}

View File

@ -1,6 +1,8 @@
lives_current = LIVES_INIT;
bombs_current = BOMBS_INIT;
hyper_current = HYPER_INIT;
score_current = SCORE_ZERO;
score_high = scr_scores( SCORE_READ );
face_dir = RIGHT;
@ -12,6 +14,7 @@ recovery = 0;
emergency = 0;
hyper_time = 0;
hyper_tier = 0;
score_multiply = 1;
h_move = 0;
v_move = 0;
shoot_delay = 0;

View File

@ -1,3 +1,7 @@
if (score_current > score_high ) {
score_high = score_current;
}
hitbox_rotator++;
bombing--;
recovery--;
@ -26,9 +30,11 @@ if ( hyper_time <= 0 ) {
}
if ( lives_current > LIVES_MAX ) {
lives_current = LIVES_MAX;
score_current += 10000;
}
if ( bombs_current > BOMBS_MAX ) {
bombs_current = BOMBS_MAX;
score_current += 10000;
}
if ( hyper_current > HYPER_MAX ) {
hyper_current = HYPER_MAX;
@ -43,6 +49,7 @@ if ( emergency == 0 ) {
hyper_current += HYPER_COST;
hyper_time = 0;
bombing = 0;
score_multiply = score_multiply / 2;
respawn = RESPAWN_TIMER;
x = SPAWN_X;
y = SPAWN_Y;
@ -76,6 +83,7 @@ if ( input_bomb && !bombing && !recovery && !respawn && !obj_dialogue.dialogue_m
bombing = 300;
invuln = 360;
emergency = -5;
score_multiply = score_multiply * (.8);
if (hyper_time > 0) {
hyper_time = 0;
}
@ -98,6 +106,7 @@ if ( input_bomb && !bombing && !recovery && !respawn && !obj_dialogue.dialogue_m
bombs_current -= 1; //costs 1 bomb
bombing = 180;
invuln = 180;
score_multiply = score_multiply * (.8);
if (hyper_time > 0) {
hyper_time = 0;
}
@ -106,6 +115,12 @@ if ( input_bomb && !bombing && !recovery && !respawn && !obj_dialogue.dialogue_m
}
}
}
score_multiply--;
if (score_multiply == 0) {
score_multiply = 1;
}
score_multiply = ceil( score_multiply );
//movement logic
if ( !emergency && !respawn ) {
@ -221,12 +236,13 @@ if ( !emergency && !respawn && !obj_dialogue.dialogue_mode ) {
//death logic
if ( lives_current == 0 ) {
//TODO: add score and continue logic
scr_scores( SCORE_WRITE );
audio_stop_all();
room_goto(rm_title);
}
/* debug */
if (keyboard_check( vk_escape ) ) {
game_end();
}
}

View File

@ -0,0 +1,60 @@
{
"isDnd": false,
"volume": 1.0,
"parentRoom": null,
"views": [
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
{"inherit":false,"visible":false,"xview":0,"yview":0,"wview":1280,"hview":720,"xport":0,"yport":0,"wport":1280,"hport":720,"hborder":32,"vborder":32,"hspeed":-1,"vspeed":-1,"objectId":null,},
],
"layers": [
{"instances":[
{"properties":[],"isDnd":false,"objectId":{"name":"obj_cutscene_wriggle","path":"objects/obj_cutscene_wriggle/obj_cutscene_wriggle.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":416.0,"y":288.0,"resourceVersion":"1.0","name":"inst_6EF46644","tags":[],"resourceType":"GMRInstance",},
{"properties":[],"isDnd":false,"objectId":{"name":"obj_cutscene_mystia","path":"objects/obj_cutscene_mystia/obj_cutscene_mystia.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":992.0,"y":384.0,"resourceVersion":"1.0","name":"inst_13614F48","tags":[],"resourceType":"GMRInstance",},
{"properties":[],"isDnd":false,"objectId":{"name":"obj_dialogue","path":"objects/obj_dialogue/obj_dialogue.yy",},"inheritCode":false,"hasCreationCode":false,"colour":4294967295,"rotation":0.0,"scaleX":1.0,"scaleY":1.0,"imageIndex":0,"imageSpeed":1.0,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":96.0,"y":448.0,"resourceVersion":"1.0","name":"inst_7486C099","tags":[],"resourceType":"GMRInstance",},
],"visible":true,"depth":0,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Instances","tags":[],"resourceType":"GMRInstanceLayer",},
{"spriteId":{"name":"spr_cutscene_bg","path":"sprites/spr_cutscene_bg/spr_cutscene_bg.yy",},"colour":4294967295,"x":0,"y":0,"htiled":false,"vtiled":false,"hspeed":0.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":100,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"Background","tags":[],"resourceType":"GMRBackgroundLayer",},
],
"inheritLayers": false,
"creationCodeFile": "",
"inheritCode": false,
"instanceCreationOrder": [
{"name":"inst_7486C099","path":"rooms/rm_cutscene/rm_cutscene.yy",},
{"name":"inst_13614F48","path":"rooms/rm_cutscene/rm_cutscene.yy",},
{"name":"inst_6EF46644","path":"rooms/rm_cutscene/rm_cutscene.yy",},
],
"inheritCreationOrder": false,
"sequenceId": null,
"roomSettings": {
"inheritRoomSettings": false,
"Width": 1280,
"Height": 720,
"persistent": false,
},
"viewSettings": {
"inheritViewSettings": false,
"enableViews": false,
"clearViewBackground": false,
"clearDisplayBuffer": true,
},
"physicsSettings": {
"inheritPhysicsSettings": false,
"PhysicsWorld": false,
"PhysicsWorldGravityX": 0.0,
"PhysicsWorldGravityY": 10.0,
"PhysicsWorldPixToMetres": 0.1,
},
"parent": {
"name": "thpj3",
"path": "thpj3.yyp",
},
"resourceVersion": "1.0",
"name": "rm_cutscene",
"tags": [],
"resourceType": "GMRoom",
}

View File

@ -59,6 +59,13 @@
#macro PATTERN_LANE 3
#macro PATTERN_RANDOM_BURST 4
#macro PATTERN_RING 5
#macro PATTERN_RANDOM_RING 6
#macro PATTERN_HORIZ_WALL 7
#macro PATTERN_VERT_WALL 8
#macro PATTERN_RANDOM_SPRAY 9
#macro PATTERN_LANE_RING 10
#macro PATTERN_SHOTGUN_RING 11
#macro PATTERN_STREAM_RING 12
#macro MODE_APPROACH 0
#macro MODE_CHAT 1
@ -67,6 +74,16 @@
#macro BOSS_CHARGE_TIME 120
#macro BOSS_APPROACH_TIME 30
#macro SCORE_READ 0
#macro SCORE_WRITE 1
#macro SCORE_INIT 2
#macro SCORE_ZERO 0
#macro SCORE_BULLET_VALUE 100
#macro SCORE_ENEMY_VALUE 10000
#macro SCORE_GRAZE_VALUE 10
function scr_initialize() {
randomize();
scr_scores( SCORE_INIT );
}

View File

@ -6,7 +6,7 @@
function scr_pattern_fire( _pattern, _speed, _bullet ) {
switch ( _pattern ) {
case PATTERN_STREAM:
case PATTERN_STREAM: {
audio_play_sound( snd_enemy_bullet, 1, false );
exy = instance_create_layer( x, y, "enemy", _bullet );
with (exy) {
@ -29,7 +29,8 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) {
}
}
break;
case PATTERN_AIMED_WAVE:
}
case PATTERN_AIMED_WAVE: {
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 5 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
@ -41,7 +42,8 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) {
}
}
break;
case PATTERN_SHOTGUN:
}
case PATTERN_SHOTGUN: {
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 3 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
@ -71,7 +73,8 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) {
}
}
break;
case PATTERN_LANE:
}
case PATTERN_LANE: {
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 5 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
@ -82,7 +85,8 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) {
}
}
break;
case PATTERN_RANDOM_BURST:
}
case PATTERN_RANDOM_BURST: {
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 6 + (obj_wriggle.hyper_tier * 3); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
@ -93,7 +97,8 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) {
}
}
break;
case PATTERN_RING:
}
case PATTERN_RING: {
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 12 + (obj_wriggle.hyper_tier * 6); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
@ -104,7 +109,127 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) {
}
}
break;
default:
}
case PATTERN_RANDOM_RING: {
audio_play_sound( snd_enemy_bullet, 1, false );
var j = random(4);
for ( var i = 0; i < 24 + (obj_wriggle.hyper_tier * 3); i++ ) {
exy = instance_create_layer( x - 50 + random(100), y - 200 + random(400), "enemy", _bullet );
with (exy) {
speed = _speed;
friction = -.02 * obj_wriggle.hyper_tier;
direction = i * (360 / (24 + obj_wriggle.hyper_tier * 3)) + j;
}
}
break;
}
case PATTERN_HORIZ_WALL: {
audio_play_sound( snd_enemy_bullet, 1, false );
var j = random(10);
for ( var i = 0; i < 7 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( 1280, 120 + i * (600 / (5 + obj_wriggle.hyper_tier)) + j, "enemy", _bullet );
with (exy) {
speed = _speed;
friction = -.02 * obj_wriggle.hyper_tier;
direction = 180;
}
}
break;
}
case PATTERN_VERT_WALL: {
audio_play_sound( snd_enemy_bullet, 1, false );
var j = random(10);
for ( var i = 0; i < 10 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( 20 + i * (1250 / (5 + obj_wriggle.hyper_tier * 2)) + j, 20, "enemy", _bullet );
with (exy) {
speed = _speed;
friction = -.02 * obj_wriggle.hyper_tier;
direction = 270;
}
}
break;
}
case PATTERN_RANDOM_SPRAY: {
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 6 + (obj_wriggle.hyper_tier * 3); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
with (exy) {
speed = _speed + random(2);
friction = -.02 * obj_wriggle.hyper_tier;
direction = 100 + random(160);
}
}
break;
}
case PATTERN_LANE_RING: {
audio_play_sound( snd_enemy_bullet, 1, false );
var k = random(8);
for ( var j = 0; j < 20 + (obj_wriggle.hyper_tier * 3); j++ ) {
for ( var i = 0; i < 5 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
with (exy) {
speed = _speed - (i / 2);
friction = -.02 * obj_wriggle.hyper_tier;
direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y ) + j * (360 / ( 20 + obj_wriggle.hyper_tier * 3)) + k;
}
}
}
break;
}
case PATTERN_SHOTGUN_RING: {
audio_play_sound( snd_enemy_bullet, 1, false );
var k = random(6);
for ( var j = 0; j < 6 + (obj_wriggle.hyper_tier); j++ ) {
for ( var i = 0; i < 3 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
with (exy) {
speed = _speed - 1;
friction = -.02 * obj_wriggle.hyper_tier;
direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y )
- (10 + 10 * obj_wriggle.hyper_tier) + ( i * (20 + 10 * obj_wriggle.hyper_tier) / (5 + obj_wriggle.hyper_tier * 2) )
+ j * (360 / (6 + obj_wriggle.hyper_tier) ) + k;
}
}
for ( var i = 0; i < 3 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
with (exy) {
speed = _speed - .5;
friction = -.02 * obj_wriggle.hyper_tier;
direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y )
- (10 + 10 * obj_wriggle.hyper_tier) + ( i * (20 + 10 * obj_wriggle.hyper_tier) / (2 + obj_wriggle.hyper_tier * 2) )
+ j * (360 / (6 + obj_wriggle.hyper_tier) ) + k;
}
}
for ( var i = 0; i < 3 + (obj_wriggle.hyper_tier * 2); i++ ) {
exy = instance_create_layer( x, y, "enemy", _bullet );
with (exy) {
speed = _speed;
friction = -.02 * obj_wriggle.hyper_tier;
direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y )
- (10 + 10 * obj_wriggle.hyper_tier) + ( i * (20 + 10 * obj_wriggle.hyper_tier) / (2 + obj_wriggle.hyper_tier * 2) )
+ j * (360 / (6 + obj_wriggle.hyper_tier) ) + k;
}
}
}
break;
}
case PATTERN_STREAM_RING: {
var _x = x;
var _y = y;
audio_play_sound( snd_enemy_bullet, 1, false );
for ( var i = 0; i < 15 + (obj_wriggle.hyper_tier * 5); i++ ) {
exy = instance_create_layer( x + (lengthdir_x(150, i * (360 / (15 + obj_wriggle.hyper_tier * 5 )))),
y + (lengthdir_y(150, i * (360 / (15 + obj_wriggle.hyper_tier * 5 )))), "enemy", _bullet );
with (exy) {
speed = _speed;
friction = -.02 * obj_wriggle.hyper_tier;
direction = point_direction( _x, _y, obj_wriggle.x, obj_wriggle.y );
}
}
break;
}
default: {
break;
}
}
}

View File

@ -0,0 +1,39 @@
/// @function scr_scores( _mode);
/// @param {real} _mode
function scr_scores( _mode ) {
switch ( _mode ) {
case SCORE_READ:
if ( file_exists( "scores.txt" ) ) {
var file = file_text_open_read( "scores.txt" );
var hiscore = 0;
var readscore = 0;
while ( !file_text_eof(file) ) {
readscore = file_text_read_real( file );
if ( hiscore < readscore ) {
hiscore = readscore;
}
file_text_readln(file);
}
}
return hiscore;
case SCORE_WRITE:
if ( file_exists( "scores.txt" ) ) {
var file = file_text_open_append( "scores.txt" );
file_text_write_real( file, obj_wriggle.score_current );
file_text_writeln(file);
file_text_close(file);
}
return 0;
case SCORE_INIT:
if ( !file_exists( "scores.txt" ) ) {
var file = file_text_open_write( "scores.txt" );
file_text_write_real( file, 0 );
file_text_writeln(file);
file_text_close(file);
}
return 0;
default:
return -1;
}
}

View File

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "thpj3",
"path": "thpj3.yyp",
},
"resourceVersion": "1.0",
"name": "scr_scores",
"tags": [],
"resourceType": "GMScript",
}

View File

@ -0,0 +1,23 @@
{
"compression": 0,
"volume": 1.0,
"preload": false,
"bitRate": 128,
"sampleRate": 44100,
"type": 0,
"bitDepth": 1,
"audioGroupId": {
"name": "audiogroup_default",
"path": "audiogroups/audiogroup_default",
},
"soundFile": "snd_music_st1boss",
"duration": 0.0,
"parent": {
"name": "stage",
"path": "folders/stage.yy",
},
"resourceVersion": "1.0",
"name": "snd_music_st1boss",
"tags": [],
"resourceType": "GMSound",
}

View File

@ -77,8 +77,8 @@
],
"nineSlice": null,
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "spr_bullet_ball",

View File

@ -77,8 +77,8 @@
],
"nineSlice": null,
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "spr_bullet_bead",

View File

@ -77,8 +77,8 @@
],
"nineSlice": null,
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "spr_bullet_blade",

View File

@ -69,8 +69,8 @@
],
"nineSlice": null,
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "spr_bullet_card",

View File

@ -156,8 +156,8 @@
],
"nineSlice": null,
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "spr_bullet_diamond",

View File

@ -77,8 +77,8 @@
],
"nineSlice": null,
"parent": {
"name": "enemies",
"path": "folders/enemies.yy",
"name": "bullets",
"path": "folders/enemies/bullets.yy",
},
"resourceVersion": "1.0",
"name": "spr_bullet_pellet",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -8,8 +8,8 @@
"collisionTolerance": 0,
"swfPrecision": 2.525,
"bbox_left": 26,
"bbox_right": 228,
"bbox_top": 3,
"bbox_right": 230,
"bbox_top": 2,
"bbox_bottom": 250,
"HTile": false,
"VTile": false,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@ -9,7 +9,7 @@
"swfPrecision": 2.525,
"bbox_left": 0,
"bbox_right": 255,
"bbox_top": 56,
"bbox_top": 16,
"bbox_bottom": 599,
"HTile": false,
"VTile": false,
@ -24,9 +24,9 @@
"gridX": 0,
"gridY": 0,
"frames": [
{"compositeImage":{"FrameId":{"name":"50a9b008-ee6b-4489-bb9c-2f24ac5fd609","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"50a9b008-ee6b-4489-bb9c-2f24ac5fd609","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"LayerId":{"name":"103eb838-b55c-4b6f-bb02-e60e8dd580e3","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"spr_byakuren_0_neutral","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"resourceVersion":"1.0","name":"50a9b008-ee6b-4489-bb9c-2f24ac5fd609","tags":[],"resourceType":"GMSpriteFrame",},
{"compositeImage":{"FrameId":{"name":"87bdd3b0-c568-464a-841b-256855d03c3a","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"LayerId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},"images":[
{"FrameId":{"name":"87bdd3b0-c568-464a-841b-256855d03c3a","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"LayerId":{"name":"103eb838-b55c-4b6f-bb02-e60e8dd580e3","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMSpriteBitmap",},
],"parent":{"name":"spr_byakuren_0_neutral","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"resourceVersion":"1.0","name":"87bdd3b0-c568-464a-841b-256855d03c3a","tags":[],"resourceType":"GMSpriteFrame",},
],
"sequence": {
"spriteId": {"name":"spr_byakuren_0_neutral","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},
@ -41,7 +41,7 @@
"moments": {"Keyframes":[],"resourceVersion":"1.0","resourceType":"KeyframeStore<MomentsEventKeyframe>",},
"tracks": [
{"name":"frames","spriteId":null,"keyframes":{"Keyframes":[
{"id":"c5fe93c1-cec8-45c0-859a-134b42f28534","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"50a9b008-ee6b-4489-bb9c-2f24ac5fd609","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
{"id":"4bb19809-6404-4106-8fca-5d645249a02e","Key":0.0,"Length":1.0,"Stretch":false,"Disabled":false,"IsCreationKey":false,"Channels":{"0":{"Id":{"name":"87bdd3b0-c568-464a-841b-256855d03c3a","path":"sprites/spr_byakuren_0_neutral/spr_byakuren_0_neutral.yy",},"resourceVersion":"1.0","resourceType":"SpriteFrameKeyframe",},},"resourceVersion":"1.0","resourceType":"Keyframe<SpriteFrameKeyframe>",},
],"resourceVersion":"1.0","resourceType":"KeyframeStore<SpriteFrameKeyframe>",},"trackColour":0,"inheritsTrackColour":true,"builtinName":0,"traits":0,"interpolation":1,"tracks":[],"events":[],"modifiers":[],"isCreationTrack":false,"resourceVersion":"1.0","tags":[],"resourceType":"GMSpriteFramesTrack",},
],
"visibleRange": null,

Some files were not shown because too many files have changed in this diff Show More