Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e24677f
Creacion del proyecto | equipo 6
enaviaynga May 27, 2026
e287832
Merge pull request #43 from enaviaynga/experimentos
MarshellSE May 27, 2026
b79cb8b
Mecanica pushable_block implementada
MarshellSE Jun 6, 2026
4d59c4f
Merge pull request #45 from GameLab6-UTP-Grupo5-Equipo6/feature/pusha…
MarshellSE Jun 6, 2026
6c5d6db
Logica de oleadas implementada
MarshellSE Jun 8, 2026
4db7966
Hilo unido para la siguiente escena
MarshellSE Jun 8, 2026
0b473cd
Merge pull request #46 from GameLab6-UTP-Grupo5-Equipo6/feature/comba…
MarshellSE Jun 8, 2026
c1810b6
Combates mejorados
MarshellSE Jun 8, 2026
fedc33e
Merge pull request #47 from GameLab6-UTP-Grupo5-Equipo6/feature/comba…
MarshellSE Jun 8, 2026
5e836fe
Texturas de escenario
MarshellSE Jun 13, 2026
603c050
Merge pull request #48 from GameLab6-UTP-Grupo5-Equipo6/feature/textures
MarshellSE Jun 13, 2026
dbfcd57
Empezando el laberinto
MarshellSE Jun 15, 2026
14e0fb6
Merge pull request #49 from GameLab6-UTP-Grupo5-Equipo6/feature/labyr…
MarshellSE Jun 15, 2026
d58f3e0
preparativos para el boss final
MarshellSE Jun 15, 2026
2a7d52b
Merge pull request #50 from GameLab6-UTP-Grupo5-Equipo6/feature/boss
MarshellSE Jun 15, 2026
de7e037
Laberinto completado
joseMercad0 Jun 17, 2026
e2af206
Logica del boss completada
MarshellSE Jun 19, 2026
098efe1
Merge pull request #52 from GameLab6-UTP-Grupo5-Equipo6/feature/boss
MarshellSE Jun 19, 2026
96608c3
Texturas importadas
MarshellSE Jun 19, 2026
83e3523
Merge pull request #53 from GameLab6-UTP-Grupo5-Equipo6/feature/texturas
MarshellSE Jun 19, 2026
a9ee1c7
laberinto desarrollado
joseMercad0 Jun 19, 2026
5a3231c
Merge pull request #51 from GameLab6-UTP-Grupo5-Equipo6/feature/laber…
joseMercad0 Jun 19, 2026
64e7e70
Agregar Jefe Final Estatico
Razen1477 Jun 19, 2026
ed43ca1
Merge pull request #54 from GameLab6-UTP-Grupo5-Equipo6/RamaRonaldo
Razen1477 Jun 19, 2026
05edf42
Fix
MarshellSE Jun 22, 2026
85be2b2
Merge pull request #55 from GameLab6-UTP-Grupo5-Equipo6/feature/ajustes
MarshellSE Jun 22, 2026
7e41607
Ajustesv3
MarshellSE Jun 23, 2026
4a35300
Merge pull request #56 from GameLab6-UTP-Grupo5-Equipo6/feature/ajustev2
MarshellSE Jun 23, 2026
bc63c4a
Musica
MarshellSE Jun 23, 2026
eed8b42
Merge pull request #57 from GameLab6-UTP-Grupo5-Equipo6/feature/music
MarshellSE Jun 23, 2026
4743f55
Ajustesv3
MarshellSE Jun 23, 2026
afefc8d
Merge pull request #58 from GameLab6-UTP-Grupo5-Equipo6/feature/ajust…
MarshellSE Jun 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
[gd_scene format=4 uid="uid://cwvgojq5k7eta"]

[ext_resource type="TileSet" uid="uid://byr2ytqav02w5" path="res://scenes/quests/story_quests/infinite_knight/tiles/infinite_knight_exterior_floors.tres" id="1_sgmv7"]
[ext_resource type="Texture2D" uid="uid://dxeao6fu17xod" path="res://scenes/quests/story_quests/infinite_knight/0_intro/intro_components/Ojo.png" id="2_sgmv7"]
[ext_resource type="SpriteFrames" uid="uid://7q17ox014opg" path="res://scenes/quests/story_quests/infinite_knight/player_components/infinite_knight_player.tres" id="3_wtq3u"]
[ext_resource type="Script" uid="uid://x1mxt6bmei2o" path="res://scenes/ui_elements/cinematic/cinematic.gd" id="4_363fn"]
[ext_resource type="Resource" uid="uid://cu2kj2nnn0ha7" path="res://scenes/quests/story_quests/infinite_knight/0_intro/intro_components/infinite_knight_intro.dialogue" id="5_qs3vr"]
[ext_resource type="Texture2D" uid="uid://cs8dj6t3nq3kn" path="res://scenes/quests/story_quests/infinite_knight/2_combat/combat_components/background.png" id="7_hvge8"]
[ext_resource type="AudioStream" uid="uid://df38ngkb6wv5q" path="res://scenes/quests/story_quests/infinite_knight/player_components/intro.mp3" id="7_wtq3u"]

[sub_resource type="Animation" id="Animation_y447m"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("OnTheGround/Character:animation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [&"idle"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("OnTheGround/Character:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(400, 349)]
}

[sub_resource type="Animation" id="Animation_p14yf"]
resource_name = "walk_off"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("OnTheGround/Character:animation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [&"walk", &"idle"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("OnTheGround/Character:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(495, 478), Vector2(1010, 478)]
}

[sub_resource type="Animation" id="Animation_y11yo"]
resource_name = "walk_on"
length = 2.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("OnTheGround/Character:animation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [&"walk", &"idle"]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("OnTheGround/Character:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(-50, 478), Vector2(495, 478)]
}

[sub_resource type="AnimationLibrary" id="AnimationLibrary_dphfl"]
_data = {
&"RESET": SubResource("Animation_y447m"),
&"walk_off": SubResource("Animation_p14yf"),
&"walk_on": SubResource("Animation_y11yo")
}

[node name="InfiniteKnightIntro" type="Node2D" unique_id=2049284984]

[node name="TileMapLayers" type="Node2D" parent="." unique_id=591504591]

[node name="Ground" type="TileMapLayer" parent="TileMapLayers" unique_id=397514282]
tile_set = ExtResource("1_sgmv7")
metadata/_edit_lock_ = true

[node name="IntroImage" type="Sprite2D" parent="TileMapLayers" unique_id=1406016146]
position = Vector2(770, 227)
scale = Vector2(2, 2)
texture = ExtResource("2_sgmv7")

[node name="Sand" type="TileMapLayer" parent="TileMapLayers" unique_id=874671513]
tile_map_data = PackedByteArray("AAAAAAcABQABAAMAAAABAAcABQABAAMAAAACAAcABQABAAMAAAAMAAcABQABAAMAAAANAAcABQABAAMAAAAOAAcABQABAAMAAAD//wcAAQAGAAMAAAD+/wcAAQAGAAMAAAD9/wcAAQAGAAMAAAD8/wcAAQAGAAMAAAD7/wcAAQAGAAMAAAD6/wcAAQAGAAMAAAD5/wcAAQAGAAMAAAD4/wcAAQAFAAMAAAAPAAcAAQAGAAMAAAAQAAcAAQAGAAMAAAARAAcAAQAGAAMAAAASAAcAAQAGAAMAAAATAAcAAQAGAAMAAAAUAAcAAQAGAAMAAAAVAAcAAQAGAAMAAAAWAAcAAQAHAAMAAAADAAcABQABAAMAAAAJAAcABQABAAMAAAAKAAcABQABAAMAAAALAAcABQABAAMAAAAEAAcABQABAAMAAAAFAAcABQABAAMAAAAGAAcABQABAAMAAAAHAAcABQABAAMAAAAIAAcABQABAAMAAAAAAAgAAQAAAAMAAAABAAgAAQAAAAMAAAACAAgAAQAAAAMAAAADAAgAAQAAAAMAAAAEAAgAAQAAAAMAAAAFAAgAAQAAAAMAAAAGAAgAAQAAAAMAAAAHAAgAAQAAAAMAAAAIAAgAAQAAAAMAAAAJAAgAAQAAAAMAAAAKAAgAAQAAAAMAAAALAAgAAQAAAAMAAAAMAAgAAQAAAAMAAAANAAgAAQAAAAMAAAAOAAgAAQAAAAMAAAA=")
tile_set = ExtResource("1_sgmv7")

[node name="Camera2D" type="Camera2D" parent="." unique_id=1064875179]
position = Vector2(153, 366)
zoom = Vector2(1.333, 1.333)
limit_left = 0
limit_top = 0
limit_right = 960
limit_bottom = 540
position_smoothing_enabled = true
editor_draw_limits = true

[node name="OnTheGround" type="Node2D" parent="." unique_id=836096441]
y_sort_enabled = true

[node name="Character" type="AnimatedSprite2D" parent="OnTheGround" unique_id=169229228]
position = Vector2(400, 349)
sprite_frames = ExtResource("3_wtq3u")
animation = &"idle"
autoplay = "idle"

[node name="AnimationPlayer" type="AnimationPlayer" parent="OnTheGround" unique_id=49807179]
root_node = NodePath("../..")
libraries/ = SubResource("AnimationLibrary_dphfl")

[node name="ScreenOverlay" type="CanvasLayer" parent="." unique_id=826076597]

[node name="Cinematic" type="Node2D" parent="." unique_id=1398238637 node_paths=PackedStringArray("animation_player")]
script = ExtResource("4_363fn")
dialogue = ExtResource("5_qs3vr")
animation_player = NodePath("../OnTheGround/AnimationPlayer")
next_scene = "uid://c5jvk1n4s6bmd"
metadata/_custom_type_script = "uid://x1mxt6bmei2o"

[node name="ParallaxBackground" type="ParallaxBackground" parent="." unique_id=171719096]

[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground" unique_id=473666825]
motion_scale = Vector2(0.1, 0.1)

[node name="TextureRect" type="TextureRect" parent="ParallaxBackground/ParallaxLayer" unique_id=1919095767]
texture_filter = 1
offset_left = -1411.0
offset_top = -245.0
offset_right = -147.0
offset_bottom = 512.0
scale = Vector2(2, 2)
texture = ExtResource("7_hvge8")

[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="." unique_id=739703707]
stream = ExtResource("7_wtq3u")
volume_db = -10.0
autoplay = true
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ctm8vytfv82cn"
path="res://.godot/imported/Cliff_Tiles.png-c6a7cc88294cc63d38f37eb4bea23746.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://scenes/quests/story_quests/infinite_knight/0_intro/intro_components/Cliff_Tiles.png"
dest_files=["res://.godot/imported/Cliff_Tiles.png-c6a7cc88294cc63d38f37eb4bea23746.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://d4ixm142nilgq"
path="res://.godot/imported/Grass_Tiles_Light.png-db81fa060b93b0bc974ff75daaecaed3.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://scenes/quests/story_quests/infinite_knight/0_intro/intro_components/Grass_Tiles_Light.png"
dest_files=["res://.godot/imported/Grass_Tiles_Light.png-db81fa060b93b0bc974ff75daaecaed3.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dxeao6fu17xod"
path="res://.godot/imported/Ojo.png-45b27471ff7d1853b4f6e0bafc496abe.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://scenes/quests/story_quests/infinite_knight/0_intro/intro_components/Ojo.png"
dest_files=["res://.godot/imported/Ojo.png-45b27471ff7d1853b4f6e0bafc496abe.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: The Threadbare Authors
# SPDX-License-Identifier: MPL-2.0

~ start
do animation_player.play(&"walk_on")
do animation_player.animation_finished
El universo esta hecho pedazos el caballero se levanta desde los restos que quedo. No es un héroe buscando gloria; es un trabajador eterno preparándose para otra tarea dolorosa. Siente cómo la realidad se agrieta a lo lejos y sabe que es su turno de intervenir.
do animation_player.play(&"walk_off")
(Suspirando mientras mira el inmenso abismo) "Otra herida en la realidad... Supongo que es hora de volver para hallar una respuesta."
=> END
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[remap]

importer="dialogue_manager"
importer_version=15
type="Resource"
uid="uid://cu2kj2nnn0ha7"
path="res://.godot/imported/infinite_knight_intro.dialogue-fe56bb1f1086d2d6a55167ded788935b.tres"

[deps]

source_file="res://scenes/quests/story_quests/infinite_knight/0_intro/intro_components/infinite_knight_intro.dialogue"
dest_files=["res://.godot/imported/infinite_knight_intro.dialogue-fe56bb1f1086d2d6a55167ded788935b.tres"]

[params]

defaults=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
extends Node2D

@export var player: CharacterBody2D
@export var push_force: float = 150.0

const UI_NODES_TO_HIDE: Array[String] = ["AimInputHint", "ThrowInputHint", "RepelInputHint"]
var _hidden_ui_nodes: Array[CanvasItem] = []

func _ready() -> void:
_set_stealth_environment(true)

func _exit_tree() -> void:
_set_stealth_environment(false)

func _physics_process(_delta: float) -> void:
if not is_instance_valid(player): return

# Colisiones para objetos interactuables
for i in player.get_slide_collision_count():
var collision: KinematicCollision2D = player.get_slide_collision(i)
var collider: Object = collision.get_collider()

if collider is RigidBody2D and collider.is_in_group("pushable"):
collider.apply_central_impulse(-collision.get_normal() * push_force)

# Gestiona la UI global y anula componentes de combate localmente
func _set_stealth_environment(active: bool) -> void:
# Manejo de UI Hints
if active:
var root: Window = get_tree().root
for node_name in UI_NODES_TO_HIDE:
var node: Node = root.find_child(node_name, true, false)
if is_instance_valid(node) and node is CanvasItem:
node.visible = false
_hidden_ui_nodes.append(node)
else:
for node in _hidden_ui_nodes:
if is_instance_valid(node): node.visible = true
_hidden_ui_nodes.clear()
Comment on lines +29 to +39

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that this section (and line 6) is actually necessary. The hints won't appear because starting on line 44, you disabled the visibility. In input_hud.gd it sets the hint visibility equal to the logical and of the visibility and existence of the ability's node.

Since it is set to false on line 49, it will never appear even without the code above (lines 29 to 39).

Using hard-coded strings to reference components of the Player class might make it difficult to refactor if changes are made to Player. I wonder if it would be worth adding some functionality to the input hint where users can go ability by ability and tick off the ones to show or if it is sufficient to do it with visibility as it exists here.


# Manejo de habilidades del jugador
if not is_instance_valid(player): return

if active:
for component: String in ["player_hook", "player_repel"]:
var node: Node2D = player.get(component) as Node2D
if is_instance_valid(node):
node.process_mode = Node.PROCESS_MODE_DISABLED
node.visible = false
elif player.has_method("_toggle_abilities"):
player.call("_toggle_abilities")
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://2y17g4vb4tr7
Loading
Loading