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.tween_property(self, "position", start_position + Vector3(0,1.1,0), 1)
risen = true
await get_tree().create_timer(5).timeout
reset(false)
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="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" 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="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"]

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_id_reference: Dictionary[StringName, StringName] = generate_id_reference(false, true)
var obscure_reference: Dictionary[StringName, StringName] = generate_obscure_reference()
var sticky_ids: Dictionary[StringName, StringName] = generate_id_reference(false, true)
var obscure_ids: Dictionary[StringName, StringName] = generate_obscure_reference()
func generate_id_reference(include_cards: bool, include_sticky: bool) -> 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]:
var out: Array[StringName]
for child_name: StringName in id_reference.keys():
if id_reference[child_name].contains(parent_id):
for child_name: StringName in all_ids.keys():
if all_ids[child_name].contains(parent_id):
if child_name != parent_id:
out.append(child_name)
return out
@ -117,13 +117,11 @@ func get_children_of(parent_id: StringName) -> Array:
func get_obscure_name(card_name: StringName):
if State.obscure_logs and not OS.is_debug_build():
return obscure_reference[card_name]
return obscure_ids[card_name]
else:
return card_name
func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Array[Card]:
#var total_cards := cards.size()
var x:int = 0
var y: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():
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)
return output
@ -199,20 +197,22 @@ func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Arr
}
for card_name:StringName in names:
if card_id_reference.has(card_name):
output["cards"].append(create_from_id(id_reference[card_name]))
if card_ids.has(card_name):
output["cards"].append(create_from_id(all_ids[card_name]))
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
func create_from_id(id:StringName) -> Area2D:
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
card.init(parsed[1], id);
return card
elif sticky_id_reference.values().has(id):
elif sticky_ids.values().has(id):
var note := note_prefab.instantiate() as StickyNote
note.init(parsed[2], id)
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)
var y := 1
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)
card.position = Vector2(0, card.diameter * y - card.diameter/2)
var z := 0
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)
sticky.position = card.sticky_note_position + Vector2(0, 80) * z
z += 1
@ -250,4 +250,3 @@ func create_dev_board(parent: Control, _rect: Rect2) -> void:
func _ready() -> void:
create_dev_board(self, get_viewport().get_visible_rect())
TranslationServer.set_locale("en")