mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 15:38:14 +00:00
added the game
This commit is contained in:
60
Scripts/Parts/WarpPipeArea.gd
Normal file
60
Scripts/Parts/WarpPipeArea.gd
Normal file
@@ -0,0 +1,60 @@
|
||||
@tool
|
||||
class_name WarpPipeArea
|
||||
extends PipeArea
|
||||
|
||||
@export var world_num := 1:
|
||||
set(value):
|
||||
world_num = value
|
||||
update_visuals()
|
||||
@export var level_num := 1:
|
||||
set(value):
|
||||
level_num = value
|
||||
update_visuals()
|
||||
|
||||
static var has_warped := false
|
||||
|
||||
func _ready() -> void:
|
||||
update_visuals()
|
||||
has_warped = false
|
||||
|
||||
func update_visuals() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
$ArrowJoint.show()
|
||||
$ArrowJoint.rotation = get_vector(enter_direction).angle() - deg_to_rad(90)
|
||||
$ArrowJoint/Arrow.flip_v = exit_only
|
||||
$Node2D/CenterContainer/Label.text = str(world_num) + "-" + str(level_num)
|
||||
else:
|
||||
hide()
|
||||
|
||||
func run_player_check(player: Player) -> void:
|
||||
if Global.player_action_pressed(get_input_direction(enter_direction), player.player_id) and can_enter:
|
||||
can_enter = false
|
||||
Checkpoint.passed = false
|
||||
SpeedrunHandler.is_warp_run = true
|
||||
Global.reset_values()
|
||||
Level.first_load = true
|
||||
has_warped = true
|
||||
player.enter_pipe(self, Global.current_game_mode != Global.GameMode.MARATHON_PRACTICE and Global.current_campaign != "SMBANN")
|
||||
if Global.current_game_mode == Global.GameMode.MARATHON_PRACTICE:
|
||||
SpeedrunHandler.run_finished()
|
||||
await get_tree().create_timer(1, false).timeout
|
||||
Global.open_marathon_results()
|
||||
return
|
||||
elif Global.current_campaign == "SMBANN":
|
||||
Global.current_level.get_node("DiscoLevel").level_finished()
|
||||
await get_tree().create_timer(1, false).timeout
|
||||
AudioManager.stop_all_music()
|
||||
Global.tally_time()
|
||||
await Global.score_tally_finished
|
||||
Global.open_disco_results()
|
||||
await Global.disco_level_continued
|
||||
Global.level_num = level_num
|
||||
Global.world_num = world_num
|
||||
LevelTransition.level_to_transition_to = Level.get_scene_string(Global.world_num, Global.level_num)
|
||||
return
|
||||
await owner.tree_exiting
|
||||
if Global.current_game_mode != Global.GameMode.MARATHON_PRACTICE:
|
||||
Global.level_num = level_num
|
||||
Global.world_num = world_num
|
||||
LevelTransition.level_to_transition_to = Level.get_scene_string(Global.world_num, Global.level_num)
|
||||
|
Reference in New Issue
Block a user