fixed pipes, being terrible and i hate them

This commit is contained in:
JHDev2006
2025-10-01 21:48:17 +01:00
parent 77d0e9f6c3
commit f088c9b606
8 changed files with 1635 additions and 1402 deletions

View File

@@ -36,6 +36,6 @@
"can_air_turn": false,
},
"small_hitbox_scale": [0.5, 0.5],
"small_hitbox_scale": [1, 1],
"big_hitbox_scale": [1.0, 1.0]
}

File diff suppressed because it is too large Load Diff

View File

@@ -217,30 +217,30 @@ position = Vector2(2520, -16)
position = Vector2(2616, -16)
[connection signal="collected" from="Tiles/Coin" to="Tiles/Coin/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85596" to="Tiles/@Node2D@85596/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85597" to="Tiles/@Node2D@85597/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85598" to="Tiles/@Node2D@85598/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85599" to="Tiles/@Node2D@85599/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85600" to="Tiles/@Node2D@85600/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85601" to="Tiles/@Node2D@85601/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85602" to="Tiles/@Node2D@85602/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85603" to="Tiles/@Node2D@85603/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85604" to="Tiles/@Node2D@85604/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85605" to="Tiles/@Node2D@85605/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85606" to="Tiles/@Node2D@85606/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85607" to="Tiles/@Node2D@85607/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85608" to="Tiles/@Node2D@85608/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85609" to="Tiles/@Node2D@85609/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85610" to="Tiles/@Node2D@85610/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85611" to="Tiles/@Node2D@85611/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85612" to="Tiles/@Node2D@85612/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85613" to="Tiles/@Node2D@85613/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85614" to="Tiles/@Node2D@85614/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85615" to="Tiles/@Node2D@85615/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85616" to="Tiles/@Node2D@85616/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85617" to="Tiles/@Node2D@85617/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85618" to="Tiles/@Node2D@85618/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85619" to="Tiles/@Node2D@85619/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85620" to="Tiles/@Node2D@85620/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85621" to="Tiles/@Node2D@85621/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@85622" to="Tiles/@Node2D@85622/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177168" to="Tiles/@Node2D@177168/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177169" to="Tiles/@Node2D@177169/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177170" to="Tiles/@Node2D@177170/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177171" to="Tiles/@Node2D@177171/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177172" to="Tiles/@Node2D@177172/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177173" to="Tiles/@Node2D@177173/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177174" to="Tiles/@Node2D@177174/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177175" to="Tiles/@Node2D@177175/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177176" to="Tiles/@Node2D@177176/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177177" to="Tiles/@Node2D@177177/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177178" to="Tiles/@Node2D@177178/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177179" to="Tiles/@Node2D@177179/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177180" to="Tiles/@Node2D@177180/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177181" to="Tiles/@Node2D@177181/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177182" to="Tiles/@Node2D@177182/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177183" to="Tiles/@Node2D@177183/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177184" to="Tiles/@Node2D@177184/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177185" to="Tiles/@Node2D@177185/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177186" to="Tiles/@Node2D@177186/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177187" to="Tiles/@Node2D@177187/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177188" to="Tiles/@Node2D@177188/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177189" to="Tiles/@Node2D@177189/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177190" to="Tiles/@Node2D@177190/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177191" to="Tiles/@Node2D@177191/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177192" to="Tiles/@Node2D@177192/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177193" to="Tiles/@Node2D@177193/LevelPersistance" method="set_as_active"]
[connection signal="collected" from="Tiles/@Node2D@177194" to="Tiles/@Node2D@177194/LevelPersistance" method="set_as_active"]

View File

@@ -21,6 +21,7 @@ shape = SubResource("RectangleShape2D_lv0oh")
debug_color = Color(0, 0.6, 0, 0.419608)
[node name="Hitbox" type="Area2D" parent="."]
priority = -1
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
shape = SubResource("RectangleShape2D_5qh6k")

View File

@@ -53,11 +53,9 @@ func update_direction_textures() -> void:
func on_mouse_entered(area_idx := 0) -> void:
mouse_in_areas |= (1 << area_idx)
print(mouse_in_areas)
func on_mouse_exited(area_idx := 0) -> void:
mouse_in_areas &= ~(1 << area_idx)
print(mouse_in_areas)
func is_mouse_in_area(area_idx := 0) -> bool:
return mouse_in_areas & (1 << area_idx) != 0

View File

@@ -43,6 +43,11 @@ func run_pipe_check() -> void:
exit_pipe()
func _physics_process(_delta: float) -> void:
if enter_direction >= 2:
$Hitbox.scale.y = 8
else:
$Hitbox.scale.y = 1
if Engine.is_editor_hint() == false:
in_game()
update_visuals()
@@ -98,12 +103,13 @@ func in_game() -> void:
if exit_only:
return
for i in hitbox.get_overlapping_areas():
if i.owner is Player:
if i.owner is Player and can_enter:
run_player_check(i.owner)
func run_player_check(player: Player) -> void:
# guzlad: Added support for characters with a hitbox height below 1.0 to enter pipes underwater
if Global.player_action_pressed(get_input_direction(enter_direction), player.player_id) and can_enter and (player.is_on_floor() or enter_direction == 1 or player.gravity_vector != Vector2.DOWN or (!player.is_on_floor() and enter_direction == 3)) and player.state_machine.state.name == "Normal":
print(player.is_actually_on_floor())
if Global.player_action_pressed(get_input_direction(enter_direction), player.player_id) and (player.is_on_floor() or enter_direction == 1):
can_enter = false
pipe_entered.emit()
DiscoLevel.can_meter_tick = false

View File

@@ -748,6 +748,7 @@ func get_character_sprite_path(power_stateto_use := power_state.state_name) -> S
func enter_pipe(pipe: PipeArea, warp_to_level := true) -> void:
z_index = -10
can_bump_sfx = false
Global.can_pause = false
Global.can_time_tick = false
pipe_enter_direction = pipe.get_vector(pipe.enter_direction)
@@ -792,7 +793,7 @@ func exit_pipe(pipe: PipeArea) -> void:
pipe_enter_direction = -pipe.get_vector(pipe.enter_direction)
AudioManager.play_sfx("pipe", global_position)
state_machine.transition_to("Pipe")
await get_tree().create_timer(0.6, false).timeout
await get_tree().create_timer(0.65, false).timeout
Global.can_pause = true
state_machine.transition_to("Normal")
Global.can_time_tick = true

View File

@@ -9,6 +9,7 @@ func enter(_msg := {}) -> void:
physics_update(0)
func physics_update(delta: float) -> void:
player.velocity = Vector2.ZERO
player.global_position += (ENTER_SPEED * (player.pipe_enter_direction * player.pipe_move_direction)) * delta
if player.pipe_enter_direction.x != 0:
player.sprite.speed_scale = 1