fix: ladder climb self-resets after 5 seconds

This commit is contained in:
tiger tiger tiger 2026-01-16 21:36:36 +01:00
parent c76f599e4b
commit 1bdcf6c78f
4 changed files with 68 additions and 67 deletions

View File

@ -18,6 +18,8 @@ func raise(body) -> void:
raiser = create_tween() raiser = create_tween()
raiser.tween_property(self, "position", start_position + Vector3(0,1.1,0), 1) raiser.tween_property(self, "position", start_position + Vector3(0,1.1,0), 1)
risen = true risen = true
await get_tree().create_timer(5).timeout
reset(false)
func reset(_discard) -> void: func reset(_discard) -> void:

View File

@ -5,7 +5,7 @@
[ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="3_foj4y"] [ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="3_foj4y"]
[ext_resource type="AudioStream" uid="uid://bbpo1hu35yer8" path="res://base-environments/youth_room/import/sounds/thunder.mp3" id="3_wcypa"] [ext_resource type="AudioStream" uid="uid://bbpo1hu35yer8" path="res://base-environments/youth_room/import/sounds/thunder.mp3" id="3_wcypa"]
[ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_x3dlb"] [ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_x3dlb"]
[ext_resource type="Script" path="res://base-environments/youth_room/climb_volume.gd" id="4_dqyng"] [ext_resource type="Script" uid="uid://hji6r2e8mcqo" path="res://base-environments/youth_room/climb_volume.gd" id="4_dqyng"]
[ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"] [ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"]
[ext_resource type="AudioStream" uid="uid://1tvopjmo6dp2" path="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3" id="5_fe1yj"] [ext_resource type="AudioStream" uid="uid://1tvopjmo6dp2" path="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3" id="5_fe1yj"]
[ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="5_kts6y"] [ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="5_kts6y"]

View File

@ -66,11 +66,11 @@ var source_dicts: Array[Dictionary] = [
}, },
] ]
var id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, true) var all_ids: Dictionary[StringName, StringName] = generate_id_reference(true, true)
var card_ids: Dictionary[StringName, StringName] = generate_id_reference(true, false)
var card_id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, false) var sticky_ids: Dictionary[StringName, StringName] = generate_id_reference(false, true)
var sticky_id_reference: Dictionary[StringName, StringName] = generate_id_reference(false, true) var obscure_ids: Dictionary[StringName, StringName] = generate_obscure_reference()
var obscure_reference: Dictionary[StringName, StringName] = generate_obscure_reference()
func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]: func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]:
var out:Dictionary[StringName, StringName] = {} var out:Dictionary[StringName, StringName] = {}
@ -105,8 +105,8 @@ func generate_obscure_reference():
func get_child_names_of(parent_id: StringName) -> Array[StringName]: func get_child_names_of(parent_id: StringName) -> Array[StringName]:
var out: Array[StringName] var out: Array[StringName]
for child_name: StringName in id_reference.keys(): for child_name: StringName in all_ids.keys():
if id_reference[child_name].contains(parent_id): if all_ids[child_name].contains(parent_id):
if child_name != parent_id: if child_name != parent_id:
out.append(child_name) out.append(child_name)
return out return out
@ -117,13 +117,11 @@ func get_children_of(parent_id: StringName) -> Array:
func get_obscure_name(card_name: StringName): func get_obscure_name(card_name: StringName):
if State.obscure_logs and not OS.is_debug_build(): if State.obscure_logs and not OS.is_debug_build():
return obscure_reference[card_name] return obscure_ids[card_name]
else: else:
return card_name return card_name
func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Array[Card]: func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Array[Card]:
#var total_cards := cards.size()
var x:int = 0 var x:int = 0
var y:int = 0 var y:int = 0
var i:int = 0 var i:int = 0
@ -186,7 +184,7 @@ func get_cards_by_scene_id(id: int) -> Array[Card]:
for card_name in source_dicts[id].keys(): for card_name in source_dicts[id].keys():
var card := card_prefab.instantiate() as Card var card := card_prefab.instantiate() as Card
card.init(card_name, id_reference[card_name]); card.init(card_name, all_ids[card_name]);
output.append(card) output.append(card)
return output return output
@ -199,20 +197,22 @@ func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Arr
} }
for card_name:StringName in names: for card_name:StringName in names:
if card_id_reference.has(card_name): if card_ids.has(card_name):
output["cards"].append(create_from_id(id_reference[card_name])) output["cards"].append(create_from_id(all_ids[card_name]))
else: else:
output["sticky_notes"].append(create_from_id(id_reference[card_name])) if not card_name in sticky_ids:
push_error("No card or sticky with name '%s'!" % card_name)
output["sticky_notes"].append(create_from_id(all_ids[card_name]))
return output return output
func create_from_id(id:StringName) -> Area2D: func create_from_id(id:StringName) -> Area2D:
var parsed: PackedStringArray = id.rsplit(".") var parsed: PackedStringArray = id.rsplit(".")
if card_id_reference.values().has(id): if card_ids.values().has(id):
var card := card_prefab.instantiate() as Card var card := card_prefab.instantiate() as Card
card.init(parsed[1], id); card.init(parsed[1], id);
return card return card
elif sticky_id_reference.values().has(id): elif sticky_ids.values().has(id):
var note := note_prefab.instantiate() as StickyNote var note := note_prefab.instantiate() as StickyNote
note.init(parsed[2], id) note.init(parsed[2], id)
return note return note
@ -233,13 +233,13 @@ func create_dev_board(parent: Control, _rect: Rect2) -> void:
panel.add_child(sub_parent, false, Node.INTERNAL_MODE_BACK) panel.add_child(sub_parent, false, Node.INTERNAL_MODE_BACK)
var y := 1 var y := 1
for card_name in source_dicts[x].keys(): for card_name in source_dicts[x].keys():
var card:Card = create_from_id(card_id_reference[card_name]) var card:Card = create_from_id(card_ids[card_name])
sub_parent.add_child(card, false, Node.INTERNAL_MODE_BACK) sub_parent.add_child(card, false, Node.INTERNAL_MODE_BACK)
card.position = Vector2(0, card.diameter * y - card.diameter/2) card.position = Vector2(0, card.diameter * y - card.diameter/2)
var z := 0 var z := 0
for sticky_name in get_child_names_of(card_name): for sticky_name in get_child_names_of(card_name):
var sticky: StickyNote = create_from_id(sticky_id_reference[sticky_name]) var sticky: StickyNote = create_from_id(sticky_ids[sticky_name])
card.add_child(sticky, false, Node.INTERNAL_MODE_BACK) card.add_child(sticky, false, Node.INTERNAL_MODE_BACK)
sticky.position = card.sticky_note_position + Vector2(0, 80) * z sticky.position = card.sticky_note_position + Vector2(0, 80) * z
z += 1 z += 1
@ -250,4 +250,3 @@ func create_dev_board(parent: Control, _rect: Rect2) -> void:
func _ready() -> void: func _ready() -> void:
create_dev_board(self, get_viewport().get_visible_rect()) create_dev_board(self, get_viewport().get_visible_rect())
TranslationServer.set_locale("en") TranslationServer.set_locale("en")