From 90bc4247f3e0ec8bf7f27bb862b1974ef55c7c01 Mon Sep 17 00:00:00 2001 From: magicalfeyfenny Date: Fri, 11 Jun 2021 07:39:22 -0400 Subject: [PATCH] started adding boss logic --- thpj3/objects/obj_bomber/Step_0.gml | 8 ++- thpj3/objects/obj_darkfade/Create_0.gml | 2 + thpj3/objects/obj_darkfade/Draw_0.gml | 8 +++ thpj3/objects/obj_darkfade/Step_0.gml | 13 +++++ thpj3/objects/obj_darkfade/obj_darkfade.yy | 35 ++++++++++++ .../Collision_obj_wriggle.gml | 2 +- .../Collision_obj_wriggle.gml | 2 +- thpj3/objects/obj_enemy_parent/Step_0.gml | 5 +- thpj3/objects/obj_enemy_test/Create_0.gml | 3 +- thpj3/objects/obj_enemy_test/Step_0.gml | 4 +- .../obj_midboss/Collision_obj_player_shot.gml | 7 +++ thpj3/objects/obj_midboss/Create_0.gml | 26 +++++++++ thpj3/objects/obj_midboss/Destroy_0.gml | 1 + thpj3/objects/obj_midboss/Step_0.gml | 54 +++++++++++++++++++ thpj3/objects/obj_midboss/obj_midboss.yy | 39 ++++++++++++++ thpj3/objects/obj_wriggle/Step_0.gml | 2 + thpj3/rooms/rm_stage1/rm_stage1.yy | 4 +- .../scr_dialogue_start/scr_dialogue_start.yy | 4 +- .../scripts/scr_initialize/scr_initialize.gml | 10 +++- .../scr_pattern_fire/scr_pattern_fire.gml | 28 +++++++++- .../scr_pattern_fire/scr_pattern_fire.yy | 4 +- thpj3/thpj3.yyp | 28 +++++----- .../tl_stage1_logic/tl_stage1_logic.yy | 4 +- 23 files changed, 262 insertions(+), 31 deletions(-) create mode 100644 thpj3/objects/obj_darkfade/Create_0.gml create mode 100644 thpj3/objects/obj_darkfade/Draw_0.gml create mode 100644 thpj3/objects/obj_darkfade/Step_0.gml create mode 100644 thpj3/objects/obj_darkfade/obj_darkfade.yy create mode 100644 thpj3/objects/obj_midboss/Collision_obj_player_shot.gml create mode 100644 thpj3/objects/obj_midboss/Create_0.gml create mode 100644 thpj3/objects/obj_midboss/Destroy_0.gml create mode 100644 thpj3/objects/obj_midboss/Step_0.gml create mode 100644 thpj3/objects/obj_midboss/obj_midboss.yy diff --git a/thpj3/objects/obj_bomber/Step_0.gml b/thpj3/objects/obj_bomber/Step_0.gml index f74de34..a54465a 100644 --- a/thpj3/objects/obj_bomber/Step_0.gml +++ b/thpj3/objects/obj_bomber/Step_0.gml @@ -4,6 +4,12 @@ if ( !obj_wriggle.bombing ) { if ( instance_exists( obj_enemy_parent ) ) { with( obj_enemy_parent ) { - hp -= 2; + if ( variable_instance_exists( self.id, "invuln" ) ) { + if ( !invuln ) { + hp -= 2; + } + } else { + hp -= 2; + } } } \ No newline at end of file diff --git a/thpj3/objects/obj_darkfade/Create_0.gml b/thpj3/objects/obj_darkfade/Create_0.gml new file mode 100644 index 0000000..3236d7b --- /dev/null +++ b/thpj3/objects/obj_darkfade/Create_0.gml @@ -0,0 +1,2 @@ +color_current = 70; +color_target = 70; \ No newline at end of file diff --git a/thpj3/objects/obj_darkfade/Draw_0.gml b/thpj3/objects/obj_darkfade/Draw_0.gml new file mode 100644 index 0000000..863049d --- /dev/null +++ b/thpj3/objects/obj_darkfade/Draw_0.gml @@ -0,0 +1,8 @@ +draw_set_color( make_color_rgb( color_current, color_current, color_current ) ); +if ( obj_wriggle.emergency) { + draw_set_color( make_color_rgb( 0, color_current, color_current ) ); +} +gpu_set_blendmode( bm_subtract ); +draw_rectangle(-1, -1, window_get_width() + 1, window_get_height() + 1, false); +gpu_set_blendmode( bm_normal ); +draw_set_color( c_white ); \ No newline at end of file diff --git a/thpj3/objects/obj_darkfade/Step_0.gml b/thpj3/objects/obj_darkfade/Step_0.gml new file mode 100644 index 0000000..c336da8 --- /dev/null +++ b/thpj3/objects/obj_darkfade/Step_0.gml @@ -0,0 +1,13 @@ +if (obj_wriggle.hyper_time) { + color_target = 120; +} else if (obj_wriggle.bombing) { + color_target = 30; +} else { + color_target = 70; +} + +if ( color_current < color_target ) { + color_current++; +} else if ( color_current > color_target ) { + color_current--; +} \ No newline at end of file diff --git a/thpj3/objects/obj_darkfade/obj_darkfade.yy b/thpj3/objects/obj_darkfade/obj_darkfade.yy new file mode 100644 index 0000000..990744f --- /dev/null +++ b/thpj3/objects/obj_darkfade/obj_darkfade.yy @@ -0,0 +1,35 @@ +{ + "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":0,"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":3,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "stage", + "path": "folders/stage.yy", + }, + "resourceVersion": "1.0", + "name": "obj_darkfade", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/thpj3/objects/obj_enemy_bullet_parent/Collision_obj_wriggle.gml b/thpj3/objects/obj_enemy_bullet_parent/Collision_obj_wriggle.gml index 3c2bb0b..a2bf0c0 100644 --- a/thpj3/objects/obj_enemy_bullet_parent/Collision_obj_wriggle.gml +++ b/thpj3/objects/obj_enemy_bullet_parent/Collision_obj_wriggle.gml @@ -1,6 +1,6 @@ if (!other.invuln) { with (other) { - emergency = 15; + emergency = DEATHBOMB_WINDOW; } } instance_destroy(); \ No newline at end of file diff --git a/thpj3/objects/obj_enemy_parent/Collision_obj_wriggle.gml b/thpj3/objects/obj_enemy_parent/Collision_obj_wriggle.gml index efe385a..3262bfd 100644 --- a/thpj3/objects/obj_enemy_parent/Collision_obj_wriggle.gml +++ b/thpj3/objects/obj_enemy_parent/Collision_obj_wriggle.gml @@ -1,5 +1,5 @@ if (!other.invuln) { with (other) { - emergency = 15; + emergency = DEATHBOMB_WINDOW; } } \ No newline at end of file diff --git a/thpj3/objects/obj_enemy_parent/Step_0.gml b/thpj3/objects/obj_enemy_parent/Step_0.gml index ada2952..6cd166a 100644 --- a/thpj3/objects/obj_enemy_parent/Step_0.gml +++ b/thpj3/objects/obj_enemy_parent/Step_0.gml @@ -4,11 +4,10 @@ if ( hp <= 0 || obj_dialogue.dialogue_mode ) { //TODO: point system for kills } } -if ( obj_wriggle.emergency ) { +if ( obj_wriggle.emergency && !temp_speed ) { temp_speed = speed; speed = 0; -} -if ( !obj_wriggle.emergency && temp_speed ) { +} else if ( !obj_wriggle.emergency && temp_speed ) { speed = temp_speed; temp_speed = 0; } \ No newline at end of file diff --git a/thpj3/objects/obj_enemy_test/Create_0.gml b/thpj3/objects/obj_enemy_test/Create_0.gml index 39ad4e7..83cdfec 100644 --- a/thpj3/objects/obj_enemy_test/Create_0.gml +++ b/thpj3/objects/obj_enemy_test/Create_0.gml @@ -1,4 +1,5 @@ // Inherit the parent event event_inherited(); -pattern_delay = 10; \ No newline at end of file +pattern_delay = 40; +pattern_delay_target = 60; \ No newline at end of file diff --git a/thpj3/objects/obj_enemy_test/Step_0.gml b/thpj3/objects/obj_enemy_test/Step_0.gml index ffe4734..288470e 100644 --- a/thpj3/objects/obj_enemy_test/Step_0.gml +++ b/thpj3/objects/obj_enemy_test/Step_0.gml @@ -4,6 +4,6 @@ event_inherited(); pattern_delay -= (1 + obj_wriggle.hyper_tier); if ( pattern_delay <= 0 ) { - scr_pattern_fire( PATTERN_STREAM, 5, obj_bullet_test ); - pattern_delay = 10; + scr_pattern_fire( PATTERN_AIMED_WAVE, 5, obj_bullet_test ); + pattern_delay = pattern_delay_target; } \ No newline at end of file diff --git a/thpj3/objects/obj_midboss/Collision_obj_player_shot.gml b/thpj3/objects/obj_midboss/Collision_obj_player_shot.gml new file mode 100644 index 0000000..41d5c97 --- /dev/null +++ b/thpj3/objects/obj_midboss/Collision_obj_player_shot.gml @@ -0,0 +1,7 @@ +if (!invuln) { + hp -= other.damage; +} + +with (other) { + instance_destroy(); +} \ No newline at end of file diff --git a/thpj3/objects/obj_midboss/Create_0.gml b/thpj3/objects/obj_midboss/Create_0.gml new file mode 100644 index 0000000..911dfc2 --- /dev/null +++ b/thpj3/objects/obj_midboss/Create_0.gml @@ -0,0 +1,26 @@ +invuln = true; +phase_mode = MODE_APPROACH; +face_dir = LEFT; +temp_speed = 0; +charge_timer = BOSS_APPROACH_TIME; + +phases = 3; +current_phase = 0; +phase_hp = []; +phase_hp[3] = 3200; +phase_hp[2] = 3500; +phase_hp[1] = 3000; +phase_hp[0] = 2500; + +hp = phase_hp[current_phase]; + +with ( obj_enemy_bullet_parent ) { + instance_destroy(); +} +with ( obj_enemy_parent ) { + if ( self.id != other.id ) { + instance_destroy(); + } +} + +obj_stage_controller.timeline_running = false; \ No newline at end of file diff --git a/thpj3/objects/obj_midboss/Destroy_0.gml b/thpj3/objects/obj_midboss/Destroy_0.gml new file mode 100644 index 0000000..a2f29ab --- /dev/null +++ b/thpj3/objects/obj_midboss/Destroy_0.gml @@ -0,0 +1 @@ +obj_stage_controller.timeline_running = true; \ No newline at end of file diff --git a/thpj3/objects/obj_midboss/Step_0.gml b/thpj3/objects/obj_midboss/Step_0.gml new file mode 100644 index 0000000..60d568d --- /dev/null +++ b/thpj3/objects/obj_midboss/Step_0.gml @@ -0,0 +1,54 @@ +charge_timer--; + +if (hp <= 0) { + if ( current_phase < phases ) { + current_phase++; + hp = phase_hp[current_phase]; + charge_timer = BOSS_CHARGE_TIME; + phase_mode = MODE_CHARGE; + } else { + instance_destroy(); + } +} + +if ( phase_mode == MODE_ACTIVE ) { + invuln = false; + + if ( obj_wriggle.emergency && !temp_speed ) { + temp_speed = speed; + speed = 0; + } else if ( !obj_wriggle.emergency && temp_speed ) { + speed = temp_speed; + temp_speed = 0; + } +} + +if ( phase_mode == MODE_CHARGE ) { + invuln = true; + if ( !charge_timer ) { + phase_mode = MODE_ACTIVE; + } +} + +if ( phase_mode == MODE_CHAT ) { + invuln = true; + if ( !obj_dialogue.dialogue_mode ) { + charge_timer = BOSS_CHARGE_TIME; + phase_mode = MODE_CHARGE; + } +} + +if ( phase_mode == MODE_APPROACH ) { + invuln = true; + hspeed = (10 - min( 10, BOSS_APPROACH_TIME - charge_timer ) ) * face_dir; + vspeed = 10 - min( 10, BOSS_APPROACH_TIME - charge_timer ); + if ( !charge_timer ) { + if ( file_exists( "stage1_midboss_chat.txt" ) ) { + scr_dialogue_start( "stage1_midboss_chat.txt" ); + phase_mode = MODE_CHAT; + } else { + charge_timer = BOSS_CHARGE_TIME; + phase_mode = MODE_CHARGE; + } + } +} \ No newline at end of file diff --git a/thpj3/objects/obj_midboss/obj_midboss.yy b/thpj3/objects/obj_midboss/obj_midboss.yy new file mode 100644 index 0000000..bf29140 --- /dev/null +++ b/thpj3/objects/obj_midboss/obj_midboss.yy @@ -0,0 +1,39 @@ +{ + "spriteId": null, + "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":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",}, + ], + "properties": [], + "overriddenProperties": [], + "parent": { + "name": "thpj3", + "path": "thpj3.yyp", + }, + "resourceVersion": "1.0", + "name": "obj_midboss", + "tags": [], + "resourceType": "GMObject", +} \ No newline at end of file diff --git a/thpj3/objects/obj_wriggle/Step_0.gml b/thpj3/objects/obj_wriggle/Step_0.gml index 233a216..aa249ee 100644 --- a/thpj3/objects/obj_wriggle/Step_0.gml +++ b/thpj3/objects/obj_wriggle/Step_0.gml @@ -37,6 +37,8 @@ if ( emergency == 0 ) { lives_current -= 1; bombs_current = BOMBS_INIT; hyper_current += HYPER_COST; + hyper_time = 0; + bombing = 0; respawn = RESPAWN_TIMER; x = SPAWN_X; y = SPAWN_Y; diff --git a/thpj3/rooms/rm_stage1/rm_stage1.yy b/thpj3/rooms/rm_stage1/rm_stage1.yy index 059d8a4..a0e8fbf 100644 --- a/thpj3/rooms/rm_stage1/rm_stage1.yy +++ b/thpj3/rooms/rm_stage1/rm_stage1.yy @@ -22,11 +22,12 @@ ],"visible":true,"depth":200,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"player","tags":[],"resourceType":"GMRInstanceLayer",}, {"instances":[ {"properties":[],"isDnd":false,"objectId":{"name":"obj_stage_controller","path":"objects/obj_stage_controller/obj_stage_controller.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":0.0,"y":0.0,"resourceVersion":"1.0","name":"inst_41ECD54B","tags":[],"resourceType":"GMRInstance",}, + {"properties":[],"isDnd":false,"objectId":{"name":"obj_darkfade","path":"objects/obj_darkfade/obj_darkfade.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":32.0,"y":32.0,"resourceVersion":"1.0","name":"inst_38CD0D4A","tags":[],"resourceType":"GMRInstance",}, ],"visible":true,"depth":300,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"controllers","tags":[],"resourceType":"GMRInstanceLayer",}, {"spriteId":{"name":"spr_bg_ground","path":"sprites/spr_bg_ground/spr_bg_ground.yy",},"colour":4294967295,"x":0,"y":0,"htiled":true,"vtiled":false,"hspeed":-10.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":400,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"ground","tags":[],"resourceType":"GMRBackgroundLayer",}, {"spriteId":{"name":"spr_bg_forest","path":"sprites/spr_bg_forest/spr_bg_forest.yy",},"colour":4294967295,"x":0,"y":0,"htiled":true,"vtiled":false,"hspeed":-5.0,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":500,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"forest","tags":[],"resourceType":"GMRBackgroundLayer",}, {"assets":[ - {"ignore":false,"spriteId":{"name":"spr_title_moon","path":"sprites/spr_title_moon/spr_title_moon.yy",},"headPosition":0.0,"rotation":0.0,"scaleX":0.46875,"scaleY":0.46875,"animationSpeed":1.0,"colour":4294967295,"inheritedItemId":null,"frozen":false,"inheritItemSettings":false,"x":1024.0,"y":128.0,"resourceVersion":"1.0","name":"graphic_6AB766E1","tags":[],"resourceType":"GMRSpriteGraphic",}, + {"spriteId":{"name":"spr_title_moon","path":"sprites/spr_title_moon/spr_title_moon.yy",},"headPosition":0.0,"rotation":0.0,"scaleX":0.46875,"scaleY":0.46875,"animationSpeed":1.0,"colour":4294967295,"inheritedItemId":null,"frozen":false,"ignore":false,"inheritItemSettings":false,"x":1024.0,"y":128.0,"resourceVersion":"1.0","name":"graphic_6AB766E1","tags":[],"resourceType":"GMRSpriteGraphic",}, ],"visible":true,"depth":600,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"moon","tags":[],"resourceType":"GMRAssetLayer",}, {"spriteId":{"name":"spr_bg_stars","path":"sprites/spr_bg_stars/spr_bg_stars.yy",},"colour":4294967295,"x":0,"y":0,"htiled":true,"vtiled":false,"hspeed":-0.3,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":700,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"stars","tags":[],"resourceType":"GMRBackgroundLayer",}, {"spriteId":{"name":"spr_bg_sky","path":"sprites/spr_bg_sky/spr_bg_sky.yy",},"colour":4294967295,"x":0,"y":0,"htiled":true,"vtiled":false,"hspeed":-0.3,"vspeed":0.0,"stretch":false,"animationFPS":30.0,"animationSpeedType":0,"userdefinedAnimFPS":false,"visible":true,"depth":800,"userdefinedDepth":false,"inheritLayerDepth":false,"inheritLayerSettings":false,"gridX":32,"gridY":32,"layers":[],"hierarchyFrozen":false,"resourceVersion":"1.0","name":"sky","tags":[],"resourceType":"GMRBackgroundLayer",}, @@ -38,6 +39,7 @@ {"name":"inst_79020E92","path":"rooms/rm_stage1/rm_stage1.yy",}, {"name":"inst_1FC80063","path":"rooms/rm_stage1/rm_stage1.yy",}, {"name":"inst_41ECD54B","path":"rooms/rm_stage1/rm_stage1.yy",}, + {"name":"inst_38CD0D4A","path":"rooms/rm_stage1/rm_stage1.yy",}, ], "inheritCreationOrder": false, "sequenceId": null, diff --git a/thpj3/scripts/scr_dialogue_start/scr_dialogue_start.yy b/thpj3/scripts/scr_dialogue_start/scr_dialogue_start.yy index 72aae02..a374fdd 100644 --- a/thpj3/scripts/scr_dialogue_start/scr_dialogue_start.yy +++ b/thpj3/scripts/scr_dialogue_start/scr_dialogue_start.yy @@ -2,8 +2,8 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "dialogue", - "path": "folders/dialogue.yy", + "name": "thpj3", + "path": "thpj3.yyp", }, "resourceVersion": "1.0", "name": "scr_dialogue_start", diff --git a/thpj3/scripts/scr_initialize/scr_initialize.gml b/thpj3/scripts/scr_initialize/scr_initialize.gml index aebb32a..ff330cd 100644 --- a/thpj3/scripts/scr_initialize/scr_initialize.gml +++ b/thpj3/scripts/scr_initialize/scr_initialize.gml @@ -31,7 +31,7 @@ #macro HYPER_INIT 0 #macro HYPER_COST 100 #macro HYPER_MAX 300 -#macro DEATHBOMB_WINDOW 15 +#macro DEATHBOMB_WINDOW 40 #macro RESPAWN_TIMER 60 #macro RESPAWN_INVULN 120 @@ -54,6 +54,14 @@ #macro SHOT_OPTION_SPEED 20 #macro PATTERN_STREAM 0 +#macro PATTERN_AIMED_WAVE 1 + +#macro MODE_APPROACH 0 +#macro MODE_CHAT 1 +#macro MODE_CHARGE 2 +#macro MODE_ACTIVE 3 +#macro BOSS_CHARGE_TIME 120 +#macro BOSS_APPROACH_TIME 30 function scr_initialize() { randomize(); diff --git a/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.gml b/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.gml index b4cf4d4..0b1c816 100644 --- a/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.gml +++ b/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.gml @@ -9,9 +9,35 @@ function scr_pattern_fire( _pattern, _speed, _bullet ) { case PATTERN_STREAM: exy = instance_create_layer( x, y, "enemy", _bullet ); with (exy) { - speed = _speed + obj_wriggle.hyper_tier; + speed = _speed; + friction = -.05 * obj_wriggle.hyper_tier; direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y ); } + if ( obj_wriggle.hyper_tier > HYPER_TIER_1 ) { + exy = instance_create_layer( x, y, "enemy", _bullet ); + with (exy) { + speed = _speed; + friction = -.05 * obj_wriggle.hyper_tier; + direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y ) + 20; + } + exy = instance_create_layer( x, y, "enemy", _bullet ); + with (exy) { + speed = _speed; + friction = -.05 * obj_wriggle.hyper_tier; + direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y ) - 20; + } + } + break; + case PATTERN_AIMED_WAVE: + for ( var i = 0; i < 5 + (obj_wriggle.hyper_tier * 2); i++ ) { + exy = instance_create_layer( x, y, "enemy", _bullet ); + with (exy) { + speed = _speed; + friction = -.05 * obj_wriggle.hyper_tier; + direction = point_direction( x, y, obj_wriggle.x, obj_wriggle.y ) + - (30 + 10 * obj_wriggle.hyper_tier) + ( i * (60 + 10 * obj_wriggle.hyper_tier) / (5 + obj_wriggle.hyper_tier * 2) ); + } + } break; default: break; diff --git a/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.yy b/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.yy index a3bd5b3..734f649 100644 --- a/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.yy +++ b/thpj3/scripts/scr_pattern_fire/scr_pattern_fire.yy @@ -2,8 +2,8 @@ "isDnD": false, "isCompatibility": false, "parent": { - "name": "enemies", - "path": "folders/enemies.yy", + "name": "thpj3", + "path": "thpj3.yyp", }, "resourceVersion": "1.0", "name": "scr_pattern_fire", diff --git a/thpj3/thpj3.yyp b/thpj3/thpj3.yyp index e8dd36d..f3ce76a 100644 --- a/thpj3/thpj3.yyp +++ b/thpj3/thpj3.yyp @@ -13,11 +13,12 @@ {"id":{"name":"spr_title_star","path":"sprites/spr_title_star/spr_title_star.yy",},"order":7,}, {"id":{"name":"obj_bullet_test","path":"objects/obj_bullet_test/obj_bullet_test.yy",},"order":4,}, {"id":{"name":"spr_fluff","path":"sprites/spr_fluff/spr_fluff.yy",},"order":1,}, - {"id":{"name":"scr_dialogue_start","path":"scripts/scr_dialogue_start/scr_dialogue_start.yy",},"order":3,}, - {"id":{"name":"rm_disclaimer","path":"rooms/rm_disclaimer/rm_disclaimer.yy",},"order":3,}, + {"id":{"name":"scr_dialogue_start","path":"scripts/scr_dialogue_start/scr_dialogue_start.yy",},"order":13,}, + {"id":{"name":"rm_disclaimer","path":"rooms/rm_disclaimer/rm_disclaimer.yy",},"order":2,}, {"id":{"name":"spr_options","path":"sprites/spr_options/spr_options.yy",},"order":4,}, {"id":{"name":"obj_title_text","path":"objects/obj_title_text/obj_title_text.yy",},"order":3,}, {"id":{"name":"obj_wriggle","path":"objects/obj_wriggle/obj_wriggle.yy",},"order":5,}, + {"id":{"name":"obj_midboss","path":"objects/obj_midboss/obj_midboss.yy",},"order":11,}, {"id":{"name":"spr_title_bg","path":"sprites/spr_title_bg/spr_title_bg.yy",},"order":5,}, {"id":{"name":"spr_wriggle","path":"sprites/spr_wriggle/spr_wriggle.yy",},"order":2,}, {"id":{"name":"obj_enemy_bullet_parent","path":"objects/obj_enemy_bullet_parent/obj_enemy_bullet_parent.yy",},"order":5,}, @@ -27,11 +28,11 @@ {"id":{"name":"spr_option_shot","path":"sprites/spr_option_shot/spr_option_shot.yy",},"order":0,}, {"id":{"name":"spr_bullet_test","path":"sprites/spr_bullet_test/spr_bullet_test.yy",},"order":0,}, {"id":{"name":"spr_bg_ground","path":"sprites/spr_bg_ground/spr_bg_ground.yy",},"order":3,}, - {"id":{"name":"rm_stage1","path":"rooms/rm_stage1/rm_stage1.yy",},"order":6,}, + {"id":{"name":"rm_stage1","path":"rooms/rm_stage1/rm_stage1.yy",},"order":5,}, {"id":{"name":"spr_title_title","path":"sprites/spr_title_title/spr_title_title.yy",},"order":8,}, {"id":{"name":"spr_bg_stars","path":"sprites/spr_bg_stars/spr_bg_stars.yy",},"order":5,}, {"id":{"name":"spr_bg_sky","path":"sprites/spr_bg_sky/spr_bg_sky.yy",},"order":4,}, - {"id":{"name":"scr_initialize","path":"scripts/scr_initialize/scr_initialize.yy",},"order":12,}, + {"id":{"name":"scr_initialize","path":"scripts/scr_initialize/scr_initialize.yy",},"order":6,}, {"id":{"name":"spr_text_arrow","path":"sprites/spr_text_arrow/spr_text_arrow.yy",},"order":1,}, {"id":{"name":"fn_contact","path":"fonts/fn_contact/fn_contact.yy",},"order":0,}, {"id":{"name":"obj_bomber","path":"objects/obj_bomber/obj_bomber.yy",},"order":10,}, @@ -42,11 +43,12 @@ {"id":{"name":"obj_title_star","path":"objects/obj_title_star/obj_title_star.yy",},"order":2,}, {"id":{"name":"spr_bomber_topologic","path":"sprites/spr_bomber_topologic/spr_bomber_topologic.yy",},"order":12,}, {"id":{"name":"spr_text_box","path":"sprites/spr_text_box/spr_text_box.yy",},"order":2,}, - {"id":{"name":"scr_pattern_fire","path":"scripts/scr_pattern_fire/scr_pattern_fire.yy",},"order":2,}, + {"id":{"name":"scr_pattern_fire","path":"scripts/scr_pattern_fire/scr_pattern_fire.yy",},"order":12,}, {"id":{"name":"obj_title_title","path":"objects/obj_title_title/obj_title_title.yy",},"order":4,}, - {"id":{"name":"tl_stage1_logic","path":"timelines/tl_stage1_logic/tl_stage1_logic.yy",},"order":1,}, - {"id":{"name":"obj_title_screen","path":"objects/obj_title_screen/obj_title_screen.yy",},"order":5,}, + {"id":{"name":"tl_stage1_logic","path":"timelines/tl_stage1_logic/tl_stage1_logic.yy",},"order":14,}, + {"id":{"name":"obj_title_screen","path":"objects/obj_title_screen/obj_title_screen.yy",},"order":4,}, {"id":{"name":"obj_dialogue","path":"objects/obj_dialogue/obj_dialogue.yy",},"order":0,}, + {"id":{"name":"obj_darkfade","path":"objects/obj_darkfade/obj_darkfade.yy",},"order":6,}, {"id":{"name":"rm_title","path":"rooms/rm_title/rm_title.yy",},"order":0,}, ], "Options": [ @@ -68,12 +70,12 @@ {"roomId":{"name":"rm_stage1","path":"rooms/rm_stage1/rm_stage1.yy",},}, ], "Folders": [ - {"folderPath":"folders/title.yy","order":2,"resourceVersion":"1.0","name":"title","tags":[],"resourceType":"GMFolder",}, - {"folderPath":"folders/disclaimer.yy","order":4,"resourceVersion":"1.0","name":"disclaimer","tags":[],"resourceType":"GMFolder",}, - {"folderPath":"folders/dialogue.yy","order":13,"resourceVersion":"1.0","name":"dialogue","tags":[],"resourceType":"GMFolder",}, - {"folderPath":"folders/player.yy","order":30,"resourceVersion":"1.0","name":"player","tags":[],"resourceType":"GMFolder",}, - {"folderPath":"folders/enemies.yy","order":31,"resourceVersion":"1.0","name":"enemies","tags":[],"resourceType":"GMFolder",}, - {"folderPath":"folders/stage.yy","order":32,"resourceVersion":"1.0","name":"stage","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/title.yy","order":1,"resourceVersion":"1.0","name":"title","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/disclaimer.yy","order":3,"resourceVersion":"1.0","name":"disclaimer","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/dialogue.yy","order":7,"resourceVersion":"1.0","name":"dialogue","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/player.yy","order":8,"resourceVersion":"1.0","name":"player","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/enemies.yy","order":9,"resourceVersion":"1.0","name":"enemies","tags":[],"resourceType":"GMFolder",}, + {"folderPath":"folders/stage.yy","order":10,"resourceVersion":"1.0","name":"stage","tags":[],"resourceType":"GMFolder",}, ], "AudioGroups": [ {"targets":-1,"resourceVersion":"1.3","name":"audiogroup_default","resourceType":"GMAudioGroup",}, diff --git a/thpj3/timelines/tl_stage1_logic/tl_stage1_logic.yy b/thpj3/timelines/tl_stage1_logic/tl_stage1_logic.yy index 88c075e..96f4b5d 100644 --- a/thpj3/timelines/tl_stage1_logic/tl_stage1_logic.yy +++ b/thpj3/timelines/tl_stage1_logic/tl_stage1_logic.yy @@ -5,8 +5,8 @@ {"moment":200,"evnt":{"isDnD":false,"eventNum":200,"eventType":0,"collisionObjectId":null,"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMEvent",},"resourceVersion":"1.0","name":"","tags":[],"resourceType":"GMMoment",}, ], "parent": { - "name": "stage", - "path": "folders/stage.yy", + "name": "thpj3", + "path": "thpj3.yyp", }, "resourceVersion": "1.0", "name": "tl_stage1_logic",