From e94dbb2bea3a0d67d2b790a644b8a8ee0f98821a Mon Sep 17 00:00:00 2001 From: AlexKhayrullin Date: Sun, 31 Dec 2023 07:30:03 +0200 Subject: [PATCH] Altered RRZ boss collisions for Super & invincible Altered hands' collisions to avoid the softlock described in this issue (1.x repo) : https://github.com/overbound/SonicTimeTwisted/issues/252 --- src/objects/objGolem/Step_0.gml | 1 + src/objects/objGolemHand/Collision_objPlayer.gml | 1 + .../player_reaction_golem_hand/player_reaction_golem_hand.gml | 2 +- .../player_reaction_golem_hand_target.gml | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/objects/objGolem/Step_0.gml b/src/objects/objGolem/Step_0.gml index eb1a1d4d..4caad47d 100644 --- a/src/objects/objGolem/Step_0.gml +++ b/src/objects/objGolem/Step_0.gml @@ -57,6 +57,7 @@ if (timer) { depth_mask = 3; //reaction_script2 = player_reaction_golem_hand_target; reaction_script2 = player_reaction_golem_hand; + through = objLevel.player[0].superform || objLevel.player[0].invincibility; } if (other.sideDown == sideOn) { diff --git a/src/objects/objGolemHand/Collision_objPlayer.gml b/src/objects/objGolemHand/Collision_objPlayer.gml index c8ffa1ad..5a9f3819 100644 --- a/src/objects/objGolemHand/Collision_objPlayer.gml +++ b/src/objects/objGolemHand/Collision_objPlayer.gml @@ -1,3 +1,4 @@ +through = other.superform || other.invincibility; if depth_mask == 4 && reaction_script2 != noone { with other script_execute(other.reaction_script2,other); reaction_script2 = noone; diff --git a/src/scripts/player_reaction_golem_hand/player_reaction_golem_hand.gml b/src/scripts/player_reaction_golem_hand/player_reaction_golem_hand.gml index f6ca8181..94518475 100644 --- a/src/scripts/player_reaction_golem_hand/player_reaction_golem_hand.gml +++ b/src/scripts/player_reaction_golem_hand/player_reaction_golem_hand.gml @@ -1,6 +1,6 @@ function player_reaction_golem_hand(argument0, argument1) { // player_reaction_golem_hand(local_id, code) - if invulnerable || instashield || state==player_state_hurt || state==player_state_dead return false; + if invulnerable || superform || invincibility || instashield || state==player_state_hurt || state==player_state_dead return false; if argument0.depth_mask == 3 { if argument1!=2 { diff --git a/src/scripts/player_reaction_golem_hand_target/player_reaction_golem_hand_target.gml b/src/scripts/player_reaction_golem_hand_target/player_reaction_golem_hand_target.gml index c728b1bb..5386d09f 100644 --- a/src/scripts/player_reaction_golem_hand_target/player_reaction_golem_hand_target.gml +++ b/src/scripts/player_reaction_golem_hand_target/player_reaction_golem_hand_target.gml @@ -10,7 +10,7 @@ function player_reaction_golem_hand_target(argument0) { argument0.alarm[0] = 25; return true; } - if (spinning or state==player_state_glide or state==player_state_glide_slide) && argument0.hit == 0 + if (spinning or superform or invincibility or state==player_state_glide or state==player_state_glide_slide) && argument0.hit == 0 { xspeed = -xspeed;