Compare commits

...

36 Commits

Author SHA1 Message Date
2252a80bb9 feat(i18n): EN fixes.
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m44s
2025-11-12 01:19:53 +01:00
29c9cd4828 feat(scoreboard): Label with note. 2025-11-12 01:19:23 +01:00
6d426fe4fb feat(save): new savegames for post-intro and con ajo 2025-11-12 00:30:53 +01:00
e5259f500f feat(build): Fix patches conflict. Merged audio PR with conflicting ones
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m45s
2025-11-12 00:05:32 +01:00
d99320fcc8 fix(web): submit score params in path, hopefully fixes #270
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m44s
2025-11-11 23:16:33 +01:00
44d838fedf feat(i18n): French fixes 2025-11-11 23:12:24 +01:00
8e0f13a10c feat(build): Update patches & rejected files list. 2025-11-11 22:12:03 +01:00
8aacb4b615 fix(web): refresh page if service worker was installed, fixes #267 2025-11-11 20:53:47 +01:00
990acac845 chore: cleanup 2025-11-11 20:07:44 +01:00
af6ae3e137 uids 2025-11-11 20:00:19 +01:00
72f2d1b091 i18n 2025-11-11 15:08:55 +01:00
7f380e7ccd feat(i18n): Credits fix EN. Closes #157
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m45s
2025-11-11 01:08:53 +01:00
cfe374f350 feat(i18n): Credits #157 2025-11-11 01:07:56 +01:00
93f2651889 feat(i18n): Missing translations #157 2025-11-11 00:57:22 +01:00
acc55fb462 feat(build): exe artifact 2025-11-10 02:13:19 +01:00
33b9af05d9 feat(build): Windows export.
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m41s
2025-11-10 01:38:11 +01:00
12c4167c23 feat(i18n): Generate translations #157 2025-11-09 21:57:49 +01:00
d01336a938 feat(i18n): Remove english #157 2025-11-09 20:55:02 +01:00
cb5acb0a0d feat(rtmi): Remove inventory shadow
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m29s
2025-11-09 18:48:12 +01:00
34e5cdb80f feat(scoreboard): Changed submit score url. #266 2025-11-09 18:43:23 +01:00
8337f3d150 fix(video): Acortar intro. Closes #265 2025-11-09 18:10:14 +01:00
94c0363156 feat(i18n): basque corrections by Naiara 2025-11-09 17:59:12 +01:00
c9fee9ad87 feat(achievements): i18n #253 2025-11-09 17:27:20 +01:00
279fd91aa1 feat(achievements): Remove timer from pause menu. #253 2025-11-09 17:20:11 +01:00
481c7993c4 Web thread export. #254
All checks were successful
Gymkhana exports / All exports (push) Successful in 2m34s
2025-11-09 16:10:41 +01:00
080ea1dfe1 fix(sounds): Bajar fregaderos. Closes #256 2025-11-09 15:50:00 +01:00
01835d0a4e feat(achievements) Summary menu. #253 2025-11-09 15:34:00 +01:00
981df00da2 fix(build): Key env var #263 2025-11-09 15:34:00 +01:00
ed20451c36 feat(credits): Fade all elements. 2025-11-09 15:34:00 +01:00
1c74528184 feat(achievements): new achievement hambrientas, closes #261 2025-11-09 15:33:24 +01:00
2f1971c52a feat(i18n): some eu translations 2025-11-09 15:22:27 +01:00
e5949dc0cf fix(story): horn was not visible in intro, fixes #255 2025-11-09 15:05:25 +01:00
67228746b5 fix(speech): fix cut audio, fixes #259 2025-11-09 15:01:45 +01:00
9eec24157d fix(speech): fix missing audio, fixes #260 2025-11-09 14:50:12 +01:00
021c862f7b feat(romer): only smart people will get romero, closes #257 2025-11-09 14:37:15 +01:00
3fa3f48476 fix(rtmi): Layer order.
All checks were successful
Gymkhana exports / All exports (push) Successful in 1m50s
2025-11-08 20:48:12 +01:00
454 changed files with 2106 additions and 3465 deletions

3
.cursorignore Normal file
View File

@@ -0,0 +1,3 @@
*.import
*.uid
*.translation

View File

@@ -9,7 +9,7 @@ env:
GODOT_VERSION: 4.5
EXPORT_NAME: LasGymkhanikasDeUli
PROJECT_PATH: .
APPWRITE_API_KEY: ${{ secrets.APPWRITE_API_KEY }}
APPWRITE_API_KEY: "${{ secrets.APPWRITE_API_KEY }}"
jobs:
all-exports:
@@ -36,3 +36,4 @@ jobs:
build/**/*.appimage
build/**/*.tar.gz
build/**/*.zip
build/**/*.exe

View File

@@ -1,9 +0,0 @@
## Development
- Oier
- Eneko
## Collaborations
- Pico
- Miette
- Niko
- Urtzi

File diff suppressed because it is too large Load Diff

View File

@@ -1,83 +0,0 @@
Subject: [PATCH] feat(deploy): Itch.io publishing. #203
---
Index: .gitea/workflows/push-release.yml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/.gitea/workflows/push-release.yml b/.gitea/workflows/push-release.yml
--- a/.gitea/workflows/push-release.yml (revision 1c1f32e2aa839ccf963326d88f5f21bb3085ba1d)
+++ b/.gitea/workflows/push-release.yml (revision 8d2907c071001995b91dc6234ec511729fd49137)
@@ -34,16 +34,6 @@
files: |
build/**/*.appimage
build/**/*.tar.gz
- - name: Publish AMD to itch.io
- uses: yeslayla/butler-publish-itchio-action@master
- env:
- BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
- CHANNEL: linux
- PACKAGE: build/debug/amd64/*.appimage
- - name: Publish ARM to itch.io
- uses: yeslayla/butler-publish-itchio-action@master
- env:
- BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }}
- CHANNEL: linux
- PACKAGE: build/debug/arm64/*.appimage
- VERSION_FILE: build/version.txt
\ No newline at end of file
+ - name: Publishing
+ run: |
+ ./publish.sh
\ No newline at end of file
Index: bash_colors.sh
===================================================================
diff --git a/bash_colors.sh b/bash_colors.sh
new file mode 100644
--- /dev/null (revision 8d2907c071001995b91dc6234ec511729fd49137)
+++ b/bash_colors.sh (revision 8d2907c071001995b91dc6234ec511729fd49137)
@@ -0,0 +1,6 @@
+NOCOLOR='\033[0m' # No Color
+BLUE='\e[34m' # BrightBlue
+BOLD_BLUE='\033[1;94m' # BrightBlue
+GREEN='\e[49;32m' # Green
+ORANGE='\033[1;33m'
+RED='\033[1;31m'
\ No newline at end of file
Index: publish.sh
===================================================================
diff --git a/publish.sh b/publish.sh
new file mode 100644
--- /dev/null (revision 8d2907c071001995b91dc6234ec511729fd49137)
+++ b/publish.sh (revision 8d2907c071001995b91dc6234ec511729fd49137)
@@ -0,0 +1,29 @@
+#!/bin/bash
+source bash_colors.sh
+
+ITCHIO_ENABLED=true
+
+VERSION=`cat build/version.txt`
+echo -e "Publishing ${GREEN}v${VERSION}${NOCOLOR}"
+
+# Publish to Itch.io
+if [ "$ITCHIO_ENABLED" = true ] ; then
+ echo -e "${BLUE}Publishing to Itch.io${NOCOLOR}"
+ if ! command -v butler >/dev/null 2>&1
+ then
+ echo -e "${RED}butler could not be found. Aborting!${NOCOLOR}"
+ exit 1
+ fi
+
+
+
+ echo -e "${ORANGE}Publishing AMD64${NOCOLOR}"
+ butler push build/debug/amd64/LasGymkhanikasDeUli--debug.x86_64.appimage uliwood/las-gymkhanikas-de-uli-turno-cocina:linux-amd64 --userversion $VERSION
+
+ echo -e "${ORANGE}Publishing ARM64${NOCOLOR}"
+ butler push build/debug/arm64/LasGymkhanikasDeUli--debug.arm_64.appimage uliwood/las-gymkhanikas-de-uli-turno-cocina:linux-arm64 --userversion $VERSION
+
+
+ else
+ echo -e "${ORANGE}Itch.io not enabled.{NOCOLOR}"
+fi
\ No newline at end of file

View File

@@ -0,0 +1,11 @@
class_name RTMIAchievementSummaryMenu
extends PanelContainer
func ready() -> void:
%SummaryPanel.hide_position()
func _on_rtmi_menu_button_pressed() -> void:
hide()
func refresh() -> void:
%SummaryPanel.refresh()

View File

@@ -0,0 +1 @@
uid://bp676ele1a2dk

View File

@@ -0,0 +1,54 @@
[gd_scene load_steps=5 format=3 uid="uid://bcu6ik8qq0dl6"]
[ext_resource type="PackedScene" uid="uid://cbq03pmsdusib" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary_panel.tscn" id="1_iv6go"]
[ext_resource type="Script" uid="uid://bp676ele1a2dk" path="res://addons/escoria-ui-return-monkey-island/achievements/menu/rtmi_achievements_menu.gd" id="1_krbpm"]
[ext_resource type="Script" uid="uid://elqkwjm0r5c7" path="res://addons/escoria-ui-return-monkey-island/menus/rtmi_menu_button.gd" id="2_ntqhu"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_krbpm"]
bg_color = Color(0.21960784, 0.21960784, 0.21960784, 1)
[node name="AchievementsMenu" type="PanelContainer"]
process_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_krbpm")
script = ExtResource("1_krbpm")
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 2
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/PanelContainer"]
layout_mode = 2
theme_override_constants/margin_left = 20
theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 20
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
[node name="SummaryPanel" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer" instance=ExtResource("1_iv6go")]
unique_name_in_owner = true
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
theme_override_font_sizes/normal_font_size = 16
text = "ACHIEVEMENTS_MENU_NOTE"
vertical_alignment = 1
[node name="Back" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
text = "OPTIONS_BACK"
script = ExtResource("2_ntqhu")
metadata/_custom_type_script = "uid://elqkwjm0r5c7"
[connection signal="pressed" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Back" to="." method="_on_rtmi_menu_button_pressed"]

View File

@@ -46,6 +46,8 @@ func get_unlocked_achievements_total() -> int:
unlocked_achievements_total += 1
return unlocked_achievements_total
func is_perfect_score() -> bool:
return get_achievements_total() == get_unlocked_achievements_total()
func reset_achievements() -> void:
_achievement_tracker.clear()
@@ -65,7 +67,6 @@ func unlock_achievement(achievement_id) -> void:
_achievement_tracker.set(achievement_id, true)
unlocked.emit(achievement_id)
func is_unlocked(achievement_id: String) -> bool:
if not has(achievement_id):
escoria.logger.error(self, "Achievement '%s' not found.")

View File

@@ -73,22 +73,12 @@ func get_scores(collection: String) -> Array[RTMIScoreRow]:
func submit_score(collection: String, name: String, time: int) -> bool:
var hash = ("%s_%s_%s_%s" % [collection, name, time, score_submit_key]).sha256_text()
var request_data: String = (
JSON
. new()
. stringify(
{
"collectionId": collection,
"score":
{
"name": name,
"time": time,
},
"hash": hash
}
)
)
var response_data = await _score_http_request(http_requests[SUBMIT], score_submit_url, HTTPClient.METHOD_POST, request_data)
var url = "%s/%s/%s/%s/%s" % [score_submit_url, collection, name.uri_encode(), time, hash]
var response_data = await _score_http_request(http_requests[SUBMIT], url)
if response_data == null:
push_error("Error submitting score: response data is null")
return false
if not response_data.success:
push_error("Error submitting score: error=%s" % response_data.errorMsg)
@@ -134,7 +124,7 @@ func _score_http_request(
return response_data
func format_time(time: int) -> String:
static func format_time(time: int) -> String:
var hours = time / 3600
var minutes = (time % 3600) / 60
var seconds = time % 60

View File

@@ -41,6 +41,11 @@ unique_name_in_owner = true
layout_mode = 2
collection = "perfect"
[node name="Label" type="Label" parent="CenterContainer/VBoxContainer"]
layout_mode = 2
text = "SCOREBOARD_NOTE"
horizontal_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
layout_mode = 2
alignment = 1

View File

@@ -6,88 +6,42 @@ signal score_submitted()
const CHARACTER_LIMIT: int = 32
const ALLOWED_CHARACTERS = "[à-ÿÀ-ŸA-Za-z0-9 _-]"
var perfect = false
var collection: String
@onready var input_name: LineEdit = %InputName
@onready var total_time: Label = %TotalTime
@onready var pos: Label = %Position
@onready var achievement_count: Label = %AchievementCount
@onready var unlocked_achievements_container: VBoxContainer = %UnlockedAchievementsContainer
@onready var submit_button: RTMIMenuButton = %SubmitButton
@onready var spinner: Spinner = %Spinner
@onready var summary_panel: RTMIAchievementSummaryPanel = %SummaryPanel
func _ready() -> void:
_fill()
input_name.text_changed.connect(_on_input_name_changed)
input_name.grab_focus()
func show():
super.show()
summary_panel.show_position()
check_perfect()
check_score()
func _input(event: InputEvent) -> void:
if event.is_action_pressed("ui_enter"):
_on_submit_button_up()
func _fill():
_clear()
total_time.text = gymkhana.score_manager.format_time(gymkhana.achievement_manager.played_time)
var achievements = gymkhana.achievement_manager.get_achievements()
var unlocked = 0
for achievement_key in achievements:
var label = Label.new()
label.text = tr(gymkhana.achievement_manager.generate_achievement_literal(
achievement_key, "title"
))
label.add_theme_color_override("font_color", Color.DIM_GRAY)
if achievements.get(achievement_key):
label.add_theme_color_override("font_color", Color.GREEN)
unlocked += 1
unlocked_achievements_container.add_child(label)
achievement_count.text = "%s / %s" % [unlocked, achievements.size()]
if unlocked == achievements.size():
submit_button.text = tr("SUBMIT_PERFECT_SCORE")
perfect = true
collection = gymkhana.score_manager.PERFECT if perfect else gymkhana.score_manager.FASTEST
check_score()
func check_score():
if perfect:
func check_perfect():
if gymkhana.achievement_manager.is_perfect_score():
escoria.game_scene.launch_confetti()
escoria.globals_manager.set_global("turno_cocina_perfect_score", true)
submit_button.text = tr("SUBMIT_PERFECT_SCORE")
func check_score():
var played_time = floor(randf() * 1000)
collection = gymkhana.score_manager.PERFECT if gymkhana.achievement_manager.is_perfect_score() else gymkhana.score_manager.FASTEST
var pos_int = await gymkhana.score_manager.calculate_score_position(collection, gymkhana.achievement_manager.played_time)
pos.text = "#" + str(pos_int + 1)
summary_panel.score_position = pos_int + 1
func _clear() -> void:
for child in unlocked_achievements_container.get_children():
unlocked_achievements_container.remove_child(child)
child.queue_free()
func _get_all_achievements() -> Array:
var unlocked_achievements: Array = []
var all_achievements = gymkhana.achievement_manager.get_achievements()
for achievement in all_achievements:
if all_achievements.get(achievement) == true:
unlocked_achievements.append(achievement)
return unlocked_achievements
func _on_input_name_changed(_new_text: String):
var valid = _validate_name()
if not valid:
_set_label_error()
return

View File

@@ -1,6 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://ch5d4emoxq6t4"]
[gd_scene load_steps=6 format=3 uid="uid://ch5d4emoxq6t4"]
[ext_resource type="Script" uid="uid://wor3bvk7tdh0" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary.gd" id="1_vcqj7"]
[ext_resource type="PackedScene" uid="uid://cbq03pmsdusib" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary_panel.tscn" id="2_0xx2m"]
[ext_resource type="Script" uid="uid://elqkwjm0r5c7" path="res://addons/escoria-ui-return-monkey-island/menus/rtmi_menu_button.gd" id="2_3d1qx"]
[ext_resource type="Script" uid="uid://doqt8bqgwakt" path="res://addons/tattomoosa.spinner/spinner.gd" id="3_co5jd"]
@@ -22,101 +23,9 @@ theme_override_constants/margin_bottom = 10
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="TotalTimeLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 20
text = "TOTAL_TIME"
horizontal_alignment = 1
[node name="TotalTime" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"]
[node name="SummaryPanel" parent="MarginContainer/VBoxContainer" instance=ExtResource("2_0xx2m")]
unique_name_in_owner = true
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "0h 00m 00s"
horizontal_alignment = 1
vertical_alignment = 2
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="PositionLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2"]
layout_mode = 2
theme_override_font_sizes/font_size = 20
text = "POSITION"
horizontal_alignment = 1
[node name="Position" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "-"
horizontal_alignment = 1
vertical_alignment = 2
[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_styles/separator = SubResource("StyleBoxEmpty_co5jd")
[node name="MarginContainer2" type="MarginContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="AchievementTitle" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
theme_override_font_sizes/font_size = 12
text = "ACHIEVEMENT_SUMMARY"
[node name="AchievementCount" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 12
text = "1 / 7"
horizontal_alignment = 2
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_top = 10
theme_override_constants/margin_bottom = 10
[node name="UnlockedAchievementsContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 4
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label3" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label4" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label5" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label6" type="Label" parent="MarginContainer/VBoxContainer/MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="HSeparator3" type="HSeparator" parent="MarginContainer/VBoxContainer"]
layout_mode = 2

View File

@@ -0,0 +1,48 @@
class_name RTMIAchievementSummaryPanel
extends VBoxContainer
@onready var total_time: Label = %TotalTime
@onready var pos: Label = %Position
@onready var achievement_count: Label = %AchievementCount
@onready var unlocked_achievements_container: VBoxContainer = %UnlockedAchievementsContainer
var score_position: int = 0:
set(new_value):
score_position = new_value
%Position.text = "#%d" % new_value
func _ready() -> void:
_fill()
func refresh() -> void:
_fill()
func _fill():
_clear()
total_time.text = RTMIScoreManager.format_time(gymkhana.achievement_manager.played_time)
var achievements = gymkhana.achievement_manager.get_achievements()
for achievement_key in achievements:
var label = Label.new()
label.text = tr(gymkhana.achievement_manager.generate_achievement_literal(
achievement_key, "title"
))
label.add_theme_color_override("font_color", Color.DIM_GRAY)
if achievements.get(achievement_key):
label.add_theme_color_override("font_color", Color.GREEN)
unlocked_achievements_container.add_child(label)
achievement_count.text = "%s / %s" % [gymkhana.achievement_manager.get_unlocked_achievements_total(), achievements.size()]
func _clear() -> void:
for child in unlocked_achievements_container.get_children():
unlocked_achievements_container.remove_child(child)
child.queue_free()
func show_position() -> void:
%PositionContainer.show()
func hide_position() -> void:
%PositionContainer.hide()

View File

@@ -0,0 +1,105 @@
[gd_scene load_steps=3 format=3 uid="uid://cbq03pmsdusib"]
[ext_resource type="Script" uid="uid://b7llgro3vx5rr" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary_panel.gd" id="1_cgp0k"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_co5jd"]
[node name="SummaryPanel" type="VBoxContainer"]
script = ExtResource("1_cgp0k")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="TotalTimeLabel" type="Label" parent="HBoxContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 20
text = "TOTAL_TIME"
horizontal_alignment = 1
[node name="TotalTime" type="Label" parent="HBoxContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "0h 00m 00s"
horizontal_alignment = 1
vertical_alignment = 2
[node name="PositionContainer" type="VBoxContainer" parent="HBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
[node name="PositionLabel" type="Label" parent="HBoxContainer/PositionContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 20
text = "POSITION"
horizontal_alignment = 1
[node name="Position" type="Label" parent="HBoxContainer/PositionContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "-"
horizontal_alignment = 1
vertical_alignment = 2
[node name="HSeparator" type="HSeparator" parent="."]
layout_mode = 2
theme_override_styles/separator = SubResource("StyleBoxEmpty_co5jd")
[node name="MarginContainer2" type="MarginContainer" parent="."]
layout_mode = 2
[node name="HBoxContainer2" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="AchievementTitle" type="Label" parent="HBoxContainer2"]
layout_mode = 2
theme_override_font_sizes/font_size = 12
text = "ACHIEVEMENT_SUMMARY"
[node name="AchievementCount" type="Label" parent="HBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
theme_override_font_sizes/font_size = 12
text = "1 / 7"
horizontal_alignment = 2
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 2
theme_override_constants/margin_top = 10
theme_override_constants/margin_bottom = 10
[node name="UnlockedAchievementsContainer" type="VBoxContainer" parent="MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 4
[node name="Label" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label2" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label3" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label4" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label5" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"
[node name="Label6" type="Label" parent="MarginContainer/UnlockedAchievementsContainer"]
layout_mode = 2
text = "ACHIEVEMENT TEXT PLACEHOLDER"

View File

@@ -60,13 +60,13 @@ const ESC_UI_CHANGE_VERB_ACTION = "esc_change_verb"
@export var language_selector: RTMILanguageSelector
@export var confetti: RTMIConfetti
@export var tools: Container
@export var achievement_summary: RTMIAchievementSummaryMenu
# Tracks the mouse's current position onscreen.
var _current_mouse_pos = Vector2.ZERO
func _init():
gymkhana.item_count_manager = ESCItemCountManager.new()
gymkhana.tooltip_manager = ESCTootltipManager.new()
gymkhana.global_observer = RTMIGlobalObserver.new()
@@ -267,7 +267,6 @@ func element_focused(element_id: String) -> void:
tooltip_node.set_target(target_obj.tooltip_name)
tooltip_node.set_target_object(target_obj)
if escoria.action_manager.has_actions(target_obj):
if target_obj is ESCItemWithTooltip:
if target_obj.is_interactive:
@@ -443,6 +442,11 @@ func unpause_game():
escoria.main.current_scene.game.show_ui()
escoria.main.current_scene.show()
escoria.set_game_paused(false)
if achievement_summary.visible:
achievement_summary.visible = false
if %highscores.visible:
%highscores.visible = false
gymkhana.music_manager.resume()
gymkhana.achievement_manager.resume_tracking_time()
@@ -571,6 +575,7 @@ func _on_MenuButton_pressed() -> void:
else:
pause_game()
# Clears the tooltip content (if an ESCTooltip node exists in UI)
# MODIFIED FOR RTMIUI
func clear_tooltip():
@@ -617,6 +622,7 @@ func _on_say_finished() -> void:
await get_tree().create_timer(0.01).timeout
update_highlights()
func _is_input_all():
return escoria.inputs_manager.input_mode == ESCInputsManager.INPUT_ALL
@@ -671,5 +677,11 @@ func update_highlights():
if room_child is ESCItemWithTooltip:
room_child.get_component("outline").update_highlight()
func launch_confetti():
confetti.launch()
func show_achievement_summary() -> void:
achievement_summary.show()
achievement_summary.refresh()

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=32 format=3 uid="uid://cabos3cse6b71"]
[gd_scene load_steps=33 format=3 uid="uid://cabos3cse6b71"]
[ext_resource type="PackedScene" uid="uid://bl50queikqfjc" path="res://addons/escoria-ui-return-monkey-island/inventory/inventory_ui.tscn" id="1"]
[ext_resource type="Script" path="res://addons/escoria-core/game/scenes/dialogs/esc_dialog_player.gd" id="2"]
@@ -25,6 +25,7 @@
[ext_resource type="Texture2D" uid="uid://y2hfekr163su" path="res://addons/escoria-ui-return-monkey-island/icons/exit_fullscreen_hover.svg" id="15_j7gr8"]
[ext_resource type="Texture2D" uid="uid://e2xk0aimdte" path="res://addons/escoria-ui-return-monkey-island/icons/music-double-note-disabled.svg" id="16"]
[ext_resource type="Texture2D" uid="uid://nsthsaybnd71" path="res://addons/escoria-ui-return-monkey-island/icons/fullscreen.svg" id="18_ixq7a"]
[ext_resource type="PackedScene" uid="uid://bcu6ik8qq0dl6" path="res://addons/escoria-ui-return-monkey-island/achievements/menu/rtmi_achievements_menu.tscn" id="18_j7gr8"]
[ext_resource type="PackedScene" uid="uid://d3kgkl2r5xe4d" path="res://addons/escoria-ui-return-monkey-island/achievements/rtmi_achievement_notification_container.tscn" id="18_ssxmx"]
[ext_resource type="PackedScene" uid="uid://c0066wpl3qky4" path="res://addons/escoria-ui-return-monkey-island/menus/language_selector/language_selector.tscn" id="19_we0hb"]
[ext_resource type="Shader" uid="uid://iehp1eakxyak" path="res://addons/escoria-ui-return-monkey-island/shaders/vignette.gdshader" id="20_parhr"]
@@ -41,7 +42,7 @@ shader_parameter/vignette_strength = 0.9
shader_parameter/dither_strength = 0.03
shader_parameter/vignette_color = Color(0, 0, 0, 1)
[node name="game" type="Node2D" node_paths=PackedStringArray("inventory_ui", "rtmi_tooltip_node", "dev_tools_node", "video_player", "language_selector", "confetti")]
[node name="game" type="Node2D" node_paths=PackedStringArray("inventory_ui", "rtmi_tooltip_node", "dev_tools_node", "video_player", "language_selector", "confetti", "achievement_summary")]
script = ExtResource("5")
inventory_ui = NodePath("game_layer/ui_layer/Inventory")
rtmi_tooltip_node = NodePath("game_layer/tooltip_layer/tooltip")
@@ -49,6 +50,7 @@ dev_tools_node = NodePath("game_layer/ui_layer/DevTools")
video_player = NodePath("menu_layer/video_player")
language_selector = NodePath("menu_layer/language_selector")
confetti = NodePath("CanvasLayer/Confetti")
achievement_summary = NodePath("menu_layer/AchievementsMenu")
main_menu = NodePath("menu_layer/main_menu")
pause_menu = NodePath("menu_layer/pause_menu")
mouse_tooltip_margin = 70.0
@@ -96,7 +98,7 @@ theme = ExtResource("9")
script = ExtResource("2")
[node name="tooltip_layer" type="CanvasLayer" parent="game_layer"]
layer = 2
layer = 4
[node name="tooltip" parent="game_layer/tooltip_layer" instance=ExtResource("4")]
z_index = 10
@@ -145,6 +147,9 @@ visible = false
unique_name_in_owner = true
visible = false
[node name="AchievementsMenu" parent="menu_layer" instance=ExtResource("18_j7gr8")]
visible = false
[node name="buttons_layer" type="CanvasLayer" parent="."]
layer = 10

View File

@@ -103,9 +103,3 @@ func warm_esc_cache() -> void:
for file in files:
# We need to use the compiler from the escoria singelton for the cache to work.
escoria.esc_compiler.load_esc_file(file)
func toogle_fullscreen():
pass
func set_fullscreen(value: bool):
pass

View File

@@ -8,8 +8,6 @@ func _ready():
escoria.game_scene.hide_ui()
hide()
gymkhana.achievement_manager.time_updated.connect(_on_time_updated)
if OS.get_name() == "Web":
%quit.visible = false
@@ -95,3 +93,7 @@ func _on_time_updated(current_time):
func _on_highscores_button_up() -> void:
escoria.game_scene.show_highscores()
func _on_achievements_pressed() -> void:
escoria.game_scene.show_achievement_summary()

View File

@@ -64,18 +64,6 @@ layout_mode = 2
texture = ExtResource("3")
stretch_mode = 3
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
[node name="CurrentTimeLabel" type="Label" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "CURRENT_PLAYING_TIME"
[node name="CurrentTime" type="Label" parent="VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "1min 20s"
[node name="menuitems" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 10
@@ -87,6 +75,12 @@ size_flags_vertical = 3
text = "CONTINUE_GAME"
script = ExtResource("6_31lra")
[node name="achievements" type="Button" parent="VBoxContainer/menuitems"]
layout_mode = 2
text = "ACHIEVEMENTS"
script = ExtResource("6_31lra")
metadata/_custom_type_script = "uid://elqkwjm0r5c7"
[node name="highscores" type="Button" parent="VBoxContainer/menuitems"]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
@@ -123,8 +117,8 @@ text = "OPTIONS"
script = ExtResource("6_31lra")
[node name="quit" type="Button" parent="VBoxContainer/menuitems"]
custom_minimum_size = Vector2(0, 30)
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 30)
layout_mode = 2
size_flags_vertical = 3
text = "QUIT"
@@ -134,6 +128,7 @@ script = ExtResource("6_31lra")
[connection signal="back_button_pressed" from="load_game" to="." method="_on_load_game_back_button_pressed"]
[connection signal="back_button_pressed" from="options" to="." method="_on_options_back_button_pressed"]
[connection signal="pressed" from="VBoxContainer/menuitems/continue" to="." method="_on_continue_pressed"]
[connection signal="pressed" from="VBoxContainer/menuitems/achievements" to="." method="_on_achievements_pressed"]
[connection signal="button_up" from="VBoxContainer/menuitems/highscores" to="." method="_on_highscores_button_up"]
[connection signal="pressed" from="VBoxContainer/menuitems/new_game" to="." method="_on_new_game_pressed"]
[connection signal="pressed" from="VBoxContainer/menuitems/save_game" to="." method="_on_save_game_pressed"]

View File

@@ -1,5 +1,5 @@
extends Resource
class_name RTMIUiSettings
extends Resource
const SETTINGS_ROOT = "escoria/rtmi_ui"

View File

@@ -2,7 +2,6 @@
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3hnbv"]
bg_color = Color(0, 0, 0, 1)
shadow_size = 16
[resource]
MarginContainer/constants/margin_bottom = 8

View File

@@ -4,5 +4,5 @@ project_id="68fff7ac0029558ca82c"
database_id="68fff91900295af283bf"
[score_submit]
url="https://gymkhana.functions.app.fosil.eu"
url="https://gymkhana.fosil.eu/submit-score"
key="API_KEY_PLACEHOLDER"

View File

@@ -9,7 +9,7 @@ DEFAULT_DESTINATION_PATH="../escoria-demo-game"
DESTINATION_PATH="${1:-$DEFAULT_DESTINATION_PATH}"
REMOTE_PATCHES=(
"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/777.patch"
#"https://patch-diff.githubusercontent.com/raw/godot-escoria/escoria-demo-game/pull/777.patch"
)
PROJECT_PATH=$PWD
@@ -44,7 +44,7 @@ echo -e "${BLUE}Applying remote patches...${NOCOLOR}"
echo -e ==========================
for REMOTE_PATCH in "${REMOTE_PATCHES[@]}"; do
echo -e "Patch: ${ORANGE}$REMOTE_PATCH${NOCOLOR}"
curl $REMOTE_PATCH | git apply -v --index
curl $REMOTE_PATCH | git apply -v --reject --index
done
echo -e
@@ -52,9 +52,14 @@ echo -e "${BLUE}Applying local patches...${NOCOLOR}"
echo -e ==========================
for FILE in $PROJECT_PATH/patches/*; do
echo -e "Patch: ${ORANGE}$FILE${NOCOLOR}"
git apply -v --index $FILE
git apply -v --reject --index $FILE
done
echo -e
echo -e "${BLUE}Rejected files...${NOCOLOR}"
echo -e ==========================
find -name "*.rej"
popd > /dev/null
echo -e "${BLUE}Done!🎉${NOCOLOR}"

View File

@@ -37,27 +37,38 @@ PLATFORMS=(
"amd"
"arm"
"web"
"web-multi"
"win"
)
declare -A PLATFORM_NAMES
PLATFORM_NAMES["amd"]=$EXPORT_NAME
PLATFORM_NAMES["arm"]=$EXPORT_NAME
PLATFORM_NAMES["web"]="index"
PLATFORM_NAMES["web-multi"]="index"
PLATFORM_NAMES["win"]=$EXPORT_NAME
declare -A PLATFORM_EXTENSIONS
PLATFORM_EXTENSIONS["amd"]=".x86_64.appimage"
PLATFORM_EXTENSIONS["arm"]=".arm_64.appimage"
PLATFORM_EXTENSIONS["web"]=".html"
PLATFORM_EXTENSIONS["web-multi"]=".html"
PLATFORM_EXTENSIONS["win"]=".exe"
declare -A PLATFORM_EXPORTS
PLATFORM_EXPORTS["amd"]="Linux"
PLATFORM_EXPORTS["arm"]="LinuxARM"
PLATFORM_EXPORTS["web"]="Web"
PLATFORM_EXPORTS["web-multi"]="WebThread"
PLATFORM_EXPORTS["win"]="Windows"
declare -A PLATFORM_OVERRIDES
PLATFORM_OVERRIDES["amd"]="debug"
PLATFORM_OVERRIDES["arm"]="debug"
PLATFORM_OVERRIDES["web"]="web"
PLATFORM_OVERRIDES["web-multi"]="web"
PLATFORM_OVERRIDES["win"]="debug"
CURRENT_EXPORT_DIR=$EXPORT_DIR/release
@@ -77,8 +88,7 @@ for TYPE in "${BUILD_TYPES[@]}"; do
cp $PROJECT_PATH/override.cfg.${PLATFORM_OVERRIDES[$PLATFORM]} $PROJECT_PATH/override.cfg
echo "escoria/main/game_version=\"$VERSION\"" >> $PROJECT_PATH/override.cfg
if [ "$PLATFORM" == "web" ]; then CURRENT_EXPORT_NAME=${PLATFORM_NAMES[$PLATFORM]}; else CURRENT_EXPORT_NAME=$CURRENT_EXPORT_NAME; fi
if [[ "$PLATFORM" == *"web"* ]]; then CURRENT_EXPORT_NAME=${PLATFORM_NAMES[$PLATFORM]}; else CURRENT_EXPORT_NAME=$CURRENT_EXPORT_NAME; fi
godot --headless $STD_OUTPUT --export-$TYPE "${PLATFORM_EXPORTS[$PLATFORM]}" "$CURRENT_EXPORT_DIR/$PLATFORM/$CURRENT_EXPORT_NAME${PLATFORM_EXTENSIONS[$PLATFORM]}"
done
@@ -86,6 +96,12 @@ for TYPE in "${BUILD_TYPES[@]}"; do
tar cfz ../web-$TYPE.tar.gz .
zip ../web-$TYPE.zip *
cd $PROJECT_PATH
cd $CURRENT_EXPORT_DIR/web-multi
tar cfz ../web-multi-$TYPE.tar.gz .
zip ../web-multi-$TYPE.zip *
cd $PROJECT_PATH
done
rm $PROJECT_PATH/override.cfg

View File

@@ -139,3 +139,372 @@ texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
[preset.3]
name="WebThread"
platform="Web"
runnable=false
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter="*.esc, *.csv, *.ncsv, *.cfg, *.srt"
exclude_filter="*.xcf, saves/*, scripts/*,vscode-extension-ashes/*"
export_path="build/web-multi/index.html"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.3.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
variant/thread_support=true
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell="res://platform/web/full-size.html"
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=true
progressive_web_app/ensure_cross_origin_isolation_headers=true
progressive_web_app/offline_page=""
progressive_web_app/display=0
progressive_web_app/orientation=1
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
threads/emscripten_pool_size=8
threads/godot_pool_size=4
[preset.4]
name="Windows"
platform="Windows Desktop"
runnable=true
advanced_options=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter="*.esc, *.csv, *.ncsv, *.cfg, *.srt"
exclude_filter="*.xcf, saves/*, scripts/*,vscode-extension-ashes/*"
export_path=""
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.4.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=true
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=true
binary_format/architecture="x86_64"
codesign/enable=false
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon="uid://d22lbvlnub5a7"
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name="Uliwood"
application/product_name="Las Gymkhanikas de Uli"
application/file_description=""
application/copyright=""
application/trademarks=""
application/export_angle=0
application/export_d3d12=0
application/d3d12_agility_sdk_multiarch=true
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
Start-ScheduledTask -TaskName godot_remote_debug
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"
[preset.5]
name="mac"
platform="macOS"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.5.options]
export/distribution_type=1
binary_format/architecture="universal"
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
application/icon="uid://d22lbvlnub5a7"
application/icon_interpolation=4
application/bundle_identifier="org.uliwood.gymkhana"
application/signature=""
application/app_category="Games"
application/short_version=""
application/version=""
application/copyright=""
application/copyright_localized={}
application/min_macos_version_x86_64="10.12"
application/min_macos_version_arm64="11.00"
application/export_angle=0
display/high_res=true
shader_baker/enabled=true
application/additional_plist_content=""
xcode/platform_build="14C18"
xcode/sdk_version="13.1"
xcode/sdk_build="22C55"
xcode/sdk_name="macosx13.1"
xcode/xcode_version="1420"
xcode/xcode_build="14C18"
codesign/codesign=0
codesign/installer_identity=""
codesign/apple_team_id=""
codesign/identity=""
codesign/entitlements/custom_file=""
codesign/entitlements/allow_jit_code_execution=false
codesign/entitlements/allow_unsigned_executable_memory=false
codesign/entitlements/allow_dyld_environment_variables=false
codesign/entitlements/disable_library_validation=false
codesign/entitlements/audio_input=false
codesign/entitlements/camera=false
codesign/entitlements/location=false
codesign/entitlements/address_book=false
codesign/entitlements/calendars=false
codesign/entitlements/photos_library=false
codesign/entitlements/apple_events=false
codesign/entitlements/debugging=false
codesign/entitlements/app_sandbox/enabled=false
codesign/entitlements/app_sandbox/network_server=false
codesign/entitlements/app_sandbox/network_client=false
codesign/entitlements/app_sandbox/device_usb=false
codesign/entitlements/app_sandbox/device_bluetooth=false
codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/entitlements/app_sandbox/files_user_selected=0
codesign/entitlements/app_sandbox/helper_executables=[]
codesign/entitlements/additional=""
codesign/custom_options=PackedStringArray()
notarization/notarization=0
privacy/microphone_usage_description=""
privacy/microphone_usage_description_localized={}
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
privacy/location_usage_description=""
privacy/location_usage_description_localized={}
privacy/address_book_usage_description=""
privacy/address_book_usage_description_localized={}
privacy/calendar_usage_description=""
privacy/calendar_usage_description_localized={}
privacy/photos_library_usage_description=""
privacy/photos_library_usage_description_localized={}
privacy/desktop_folder_usage_description=""
privacy/desktop_folder_usage_description_localized={}
privacy/documents_folder_usage_description=""
privacy/documents_folder_usage_description_localized={}
privacy/downloads_folder_usage_description=""
privacy/downloads_folder_usage_description_localized={}
privacy/network_volumes_usage_description=""
privacy/network_volumes_usage_description_localized={}
privacy/removable_volumes_usage_description=""
privacy/removable_volumes_usage_description_localized={}
privacy/tracking_enabled=false
privacy/tracking_domains=PackedStringArray()
privacy/collected_data/name/collected=false
privacy/collected_data/name/linked_to_user=false
privacy/collected_data/name/used_for_tracking=false
privacy/collected_data/name/collection_purposes=0
privacy/collected_data/email_address/collected=false
privacy/collected_data/email_address/linked_to_user=false
privacy/collected_data/email_address/used_for_tracking=false
privacy/collected_data/email_address/collection_purposes=0
privacy/collected_data/phone_number/collected=false
privacy/collected_data/phone_number/linked_to_user=false
privacy/collected_data/phone_number/used_for_tracking=false
privacy/collected_data/phone_number/collection_purposes=0
privacy/collected_data/physical_address/collected=false
privacy/collected_data/physical_address/linked_to_user=false
privacy/collected_data/physical_address/used_for_tracking=false
privacy/collected_data/physical_address/collection_purposes=0
privacy/collected_data/other_contact_info/collected=false
privacy/collected_data/other_contact_info/linked_to_user=false
privacy/collected_data/other_contact_info/used_for_tracking=false
privacy/collected_data/other_contact_info/collection_purposes=0
privacy/collected_data/health/collected=false
privacy/collected_data/health/linked_to_user=false
privacy/collected_data/health/used_for_tracking=false
privacy/collected_data/health/collection_purposes=0
privacy/collected_data/fitness/collected=false
privacy/collected_data/fitness/linked_to_user=false
privacy/collected_data/fitness/used_for_tracking=false
privacy/collected_data/fitness/collection_purposes=0
privacy/collected_data/payment_info/collected=false
privacy/collected_data/payment_info/linked_to_user=false
privacy/collected_data/payment_info/used_for_tracking=false
privacy/collected_data/payment_info/collection_purposes=0
privacy/collected_data/credit_info/collected=false
privacy/collected_data/credit_info/linked_to_user=false
privacy/collected_data/credit_info/used_for_tracking=false
privacy/collected_data/credit_info/collection_purposes=0
privacy/collected_data/other_financial_info/collected=false
privacy/collected_data/other_financial_info/linked_to_user=false
privacy/collected_data/other_financial_info/used_for_tracking=false
privacy/collected_data/other_financial_info/collection_purposes=0
privacy/collected_data/precise_location/collected=false
privacy/collected_data/precise_location/linked_to_user=false
privacy/collected_data/precise_location/used_for_tracking=false
privacy/collected_data/precise_location/collection_purposes=0
privacy/collected_data/coarse_location/collected=false
privacy/collected_data/coarse_location/linked_to_user=false
privacy/collected_data/coarse_location/used_for_tracking=false
privacy/collected_data/coarse_location/collection_purposes=0
privacy/collected_data/sensitive_info/collected=false
privacy/collected_data/sensitive_info/linked_to_user=false
privacy/collected_data/sensitive_info/used_for_tracking=false
privacy/collected_data/sensitive_info/collection_purposes=0
privacy/collected_data/contacts/collected=false
privacy/collected_data/contacts/linked_to_user=false
privacy/collected_data/contacts/used_for_tracking=false
privacy/collected_data/contacts/collection_purposes=0
privacy/collected_data/emails_or_text_messages/collected=false
privacy/collected_data/emails_or_text_messages/linked_to_user=false
privacy/collected_data/emails_or_text_messages/used_for_tracking=false
privacy/collected_data/emails_or_text_messages/collection_purposes=0
privacy/collected_data/photos_or_videos/collected=false
privacy/collected_data/photos_or_videos/linked_to_user=false
privacy/collected_data/photos_or_videos/used_for_tracking=false
privacy/collected_data/photos_or_videos/collection_purposes=0
privacy/collected_data/audio_data/collected=false
privacy/collected_data/audio_data/linked_to_user=false
privacy/collected_data/audio_data/used_for_tracking=false
privacy/collected_data/audio_data/collection_purposes=0
privacy/collected_data/gameplay_content/collected=false
privacy/collected_data/gameplay_content/linked_to_user=false
privacy/collected_data/gameplay_content/used_for_tracking=false
privacy/collected_data/gameplay_content/collection_purposes=0
privacy/collected_data/customer_support/collected=false
privacy/collected_data/customer_support/linked_to_user=false
privacy/collected_data/customer_support/used_for_tracking=false
privacy/collected_data/customer_support/collection_purposes=0
privacy/collected_data/other_user_content/collected=false
privacy/collected_data/other_user_content/linked_to_user=false
privacy/collected_data/other_user_content/used_for_tracking=false
privacy/collected_data/other_user_content/collection_purposes=0
privacy/collected_data/browsing_history/collected=false
privacy/collected_data/browsing_history/linked_to_user=false
privacy/collected_data/browsing_history/used_for_tracking=false
privacy/collected_data/browsing_history/collection_purposes=0
privacy/collected_data/search_hhistory/collected=false
privacy/collected_data/search_hhistory/linked_to_user=false
privacy/collected_data/search_hhistory/used_for_tracking=false
privacy/collected_data/search_hhistory/collection_purposes=0
privacy/collected_data/user_id/collected=false
privacy/collected_data/user_id/linked_to_user=false
privacy/collected_data/user_id/used_for_tracking=false
privacy/collected_data/user_id/collection_purposes=0
privacy/collected_data/device_id/collected=false
privacy/collected_data/device_id/linked_to_user=false
privacy/collected_data/device_id/used_for_tracking=false
privacy/collected_data/device_id/collection_purposes=0
privacy/collected_data/purchase_history/collected=false
privacy/collected_data/purchase_history/linked_to_user=false
privacy/collected_data/purchase_history/used_for_tracking=false
privacy/collected_data/purchase_history/collection_purposes=0
privacy/collected_data/product_interaction/collected=false
privacy/collected_data/product_interaction/linked_to_user=false
privacy/collected_data/product_interaction/used_for_tracking=false
privacy/collected_data/product_interaction/collection_purposes=0
privacy/collected_data/advertising_data/collected=false
privacy/collected_data/advertising_data/linked_to_user=false
privacy/collected_data/advertising_data/used_for_tracking=false
privacy/collected_data/advertising_data/collection_purposes=0
privacy/collected_data/other_usage_data/collected=false
privacy/collected_data/other_usage_data/linked_to_user=false
privacy/collected_data/other_usage_data/used_for_tracking=false
privacy/collected_data/other_usage_data/collection_purposes=0
privacy/collected_data/crash_data/collected=false
privacy/collected_data/crash_data/linked_to_user=false
privacy/collected_data/crash_data/used_for_tracking=false
privacy/collected_data/crash_data/collection_purposes=0
privacy/collected_data/performance_data/collected=false
privacy/collected_data/performance_data/linked_to_user=false
privacy/collected_data/performance_data/used_for_tracking=false
privacy/collected_data/performance_data/collection_purposes=0
privacy/collected_data/other_diagnostic_data/collected=false
privacy/collected_data/other_diagnostic_data/linked_to_user=false
privacy/collected_data/other_diagnostic_data/used_for_tracking=false
privacy/collected_data/other_diagnostic_data/collection_purposes=0
privacy/collected_data/environment_scanning/collected=false
privacy/collected_data/environment_scanning/linked_to_user=false
privacy/collected_data/environment_scanning/used_for_tracking=false
privacy/collected_data/environment_scanning/collection_purposes=0
privacy/collected_data/hands/collected=false
privacy/collected_data/hands/linked_to_user=false
privacy/collected_data/hands/used_for_tracking=false
privacy/collected_data/hands/collection_purposes=0
privacy/collected_data/head/collected=false
privacy/collected_data/head/linked_to_user=false
privacy/collected_data/head/used_for_tracking=false
privacy/collected_data/head/collection_purposes=0
privacy/collected_data/other_data_types/collected=false
privacy/collected_data/other_data_types/linked_to_user=false
privacy/collected_data/other_data_types/used_for_tracking=false
privacy/collected_data/other_data_types/collection_purposes=0
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""

View File

@@ -1,3 +1,6 @@
:ready
global achievement_hambrientas
:action1
say($player, "El cuerno de Uli, la llamada para comer.", "cocina_cuerno_action1_say")
@@ -29,5 +32,8 @@
stop
play_video("res://gymkhana/videos/turno_cocina/cuerno_antes_de_tiempo.ogv")
accept_input("ALL")
if not achievement_hambrientas:
unlock_achievement("hambrientas")
set_global("achievement_hambrientas", true)
stop
say($player, "Si lo toco aquí no me va a oir la gente que esté en la huerta, debería buscar un sitio mejor.","cocina_cuerno_action4_say")

View File

@@ -41,8 +41,3 @@
say($player, "4 patatas medianas", "cocina_libro_de_cocina_action3_3")
say($player, "1 kilo exacto de lentejas", "cocina_libro_de_cocina_action3_4")
say($player, "Una cabeza de ajo.", "cocina_libro_de_cocina_action3_5")
inc_global("turno_cocina_libro_leido_count")
if turno_cocina_libro_leido_count == 4:
set_global("turno_cocina_hint_romero", true)
say($player, "Tambien hay un dibujo de una hierba con la palabra ROMERO.","cocina_libro_de_cocina_action3_romero")
set_global("turno_cocina_libro_leido_count", 0)

View File

@@ -2,12 +2,7 @@
say($player, "Hay muchas hierbas.", "cocina_detras_romero_action1_say")
:action2
if !turno_cocina_hint_romero:
say($player, "No sabría cual coger. ¿Y si alguna es venenosa?", "cocina_detras_romero_action2_unknown_say")
else:
say($player, "¡Esta parece romero, si lo echo a las lentejas estarán bien ricas!", "cocina_detras_romero_action2_known_say")
inventory_add($turno_cocina_romero)
set_active($turno_cocina_romero,false)
say($player, "No sabría cual coger. ¿Y si alguna es venenosa?", "cocina_detras_romero_action2_unknown_say")
:action3
say($player, "Romero, el ingrediente secreto para unas lentejas de rechupete.", "cocina_detras_romero_action3_say")

View File

@@ -35,7 +35,7 @@
set_active($cocina_fregadero_der, false)
set_active($cocina_puerta_delante, false)
set_active($cocina_puerta_detras, false)
set_active($turno_cocina_cuerno, false)
set_interactive($turno_cocina_cuerno, false)
set_interactive($cocina_patata, false)
set_active($cocina_debajo_sofa, false)
set_active($turno_cocina_jarra, false)
@@ -57,8 +57,8 @@
set_active($cocina_fregadero_der, true)
set_active($cocina_puerta_delante, true)
set_active($cocina_puerta_detras, true)
set_active($turno_cocina_cuerno, true)
set_active($cocina_patata, true)
set_interactive($turno_cocina_cuerno, true)
set_interactive($cocina_patata, true)
set_active($cocina_debajo_sofa, true)
if turno_cocina_mikel_playing:

View File

@@ -51,6 +51,12 @@ func _on_show_credits_button_up() -> void:
. set_trans(Tween.TRANS_SINE)
. connect("finished", _on_summary_hide_finish)
)
(
create_tween()
. tween_property(%Credits, "modulate:a", 0.0, 0.8)
. from(1.0)
. set_trans(Tween.TRANS_SINE)
)
var script = escoria.esc_compiler.load_esc_file(
"res://gymkhana/rooms/turno_cocina/creditos/esc/creditos.esc", "creditos"
)

View File

@@ -1,17 +1,17 @@
[gd_scene load_steps=21 format=3 uid="uid://csb7hwb1v016e"]
[ext_resource type="Script" uid="uid://c7fcpp72w3dnj" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_room.gd" id="1"]
[ext_resource type="PackedScene" uid="uid://cjmsexhyhi4vs" path="res://gymkhana/characters/oier/oier.tscn" id="2"]
[ext_resource type="Texture2D" uid="uid://dc7j1xq3x7gwp" path="res://gymkhana/rooms/turno_cocina/creditos/assets/background.png" id="3"]
[ext_resource type="Texture2D" uid="uid://dvofjrubnnone" path="res://gymkhana/rooms/turno_cocina/creditos/assets/background.png" id="3"]
[ext_resource type="PackedScene" uid="uid://fgwob47tewuf" path="res://gymkhana/rooms/turno_cocina/creditos/ScrollingText.tscn" id="4"]
[ext_resource type="PackedScene" uid="uid://bgiskd55j17fc" path="res://gymkhana/rooms/turno_cocina/creditos/EnekoDancing.tscn" id="5"]
[ext_resource type="Texture2D" uid="uid://budal8dqwrifr" path="res://gymkhana/logo-small.png" id="6"]
[ext_resource type="Texture2D" uid="uid://bgfi7t6khinjw" path="res://gymkhana/logo-small.png" id="6"]
[ext_resource type="Script" uid="uid://ib2j5oleakyb" path="res://gymkhana/rooms/turno_cocina/creditos/SceneHandler.gd" id="7"]
[ext_resource type="PackedScene" uid="uid://dg3q322t7b34f" path="res://gymkhana/rooms/turno_cocina/creditos/OierDancing.tscn" id="9"]
[ext_resource type="PackedScene" uid="uid://ch5d4emoxq6t4" path="res://addons/escoria-ui-return-monkey-island/achievements/summary/rtmi_achievement_summary.tscn" id="9_oudlg"]
[ext_resource type="Script" uid="uid://elqkwjm0r5c7" path="res://addons/escoria-ui-return-monkey-island/menus/rtmi_menu_button.gd" id="10_f1tcv"]
[ext_resource type="Script" uid="uid://ceym82rf2qnxu" path="res://addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd" id="11_f1tcv"]
[ext_resource type="Script" uid="uid://85bledusisk1" path="res://addons/escoria-core/game/core-scripts/esc_dialog_location.gd" id="12_ys4o4"]
[ext_resource type="Script" path="res://addons/escoria-core/game/core-scripts/esc_dialog_location.gd" id="12_ys4o4"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ys4o4"]
@@ -88,6 +88,7 @@ unique_name_in_owner = true
layout_mode = 2
[node name="Credits" type="Button" parent="Summary/CenterContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
theme_override_font_sizes/font_size = 10

Some files were not shown because too many files have changed in this diff Show More