Initial jam build, 2 endings— secret ending glitches and doesn't show

title upon completion.
This commit is contained in:
Henry 2026-03-05 11:43:13 +00:00
parent ab0a4e24f7
commit 7b47e847ae
14 changed files with 496 additions and 58 deletions

View file

@ -6,9 +6,9 @@ runnable=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
include_filter="*"
exclude_filter=""
export_path="../../Downloads/2026-03-04 115917 -The Third Place/index.html"
export_path="../../Downloads/2026-03-05 113654 The Third Place/index.html"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
@ -28,7 +28,7 @@ custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
variant/thread_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_desktop=false
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
@ -37,7 +37,7 @@ html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/ensure_cross_origin_isolation_headers=true
progressive_web_app/ensure_cross_origin_isolation_headers=false
progressive_web_app/offline_page=""
progressive_web_app/display=3
progressive_web_app/orientation=2
@ -47,3 +47,335 @@ 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.1]
name="macOS"
platform="macOS"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../Downloads/The Third Place.dmg"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
export/distribution_type=0
binary_format/architecture="universal"
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
application/liquid_glass_icon=""
application/icon=""
application/icon_interpolation=4
application/bundle_identifier="com.the-third-place"
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=false
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=1
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_history/collected=false
privacy/collected_data/search_history/linked_to_user=false
privacy/collected_data/search_history/used_for_tracking=false
privacy/collected_data/search_history/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
pkill -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\"
rm -rf \"{temp_dir}\""
[preset.2]
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../Downloads/The Third Place.exe"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.2.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
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=""
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
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}'"

View file

@ -6,24 +6,36 @@ var bullet_scene = preload("res://scenes/enemy_bullet.tscn")
var start_pos = Vector2.ZERO
var speed = 0
var tween_speed: float = 1.4
var pause: bool = false
var horse_counter = 1
var exploding = false
var horse_counter: int = 0
var horse_phase: bool = true
var exploding:bool = false
var heart_taken: bool = false
var heart_broken: bool = false
@onready var boss = $AnimationPlayer
@onready var screensize = get_viewport_rect().size
func _ready():
EventBus.ending.connect(_on_ending)
boss_intro()
$Heart.monitoring = false
$Heart.monitorable = false
func _process(delta: float) -> void:
if pause == true: return
func boss_intro():
# Move boss into screen
position = Vector2(screensize.x / 2, -screensize.y)
var tween = create_tween().set_ease(Tween.EASE_OUT)
tween.tween_property(self, "position:y", 100, 2)
await tween.finished
boss_intro()
func boss_intro():
# Introduce Lady of Whispers
print("Boss intro!")
await get_tree().create_timer(2).timeout
boss.play("align")
@ -32,57 +44,119 @@ func boss_intro():
await get_tree().create_timer(4).timeout
boss.play("whisper")
await get_tree().create_timer(1).timeout
boss_horse()
# Check to see if horse phase is available
horse_phase_check()
func horse_phase_check():
if horse_phase == true: boss_horse()
if horse_phase == false:
print("No more horse!")
$Sprite2D.frame = 0
if horse_phase == false and heart_broken == true:
$Sprite2D.frame = 4
func boss_horse():
$Horse.horse_phase = true
print("Boss horse!")
await get_tree().create_timer(2).timeout
EventBus.flash_screen.emit(.25)
$Heart.hide()
$Horse.show()
$Sprite2D.frame = 7
$Horse.start()
var horse_player = $Horse/AnimationPlayer
horse_player.play("run")
await get_tree().create_timer(10).timeout
EventBus.flash_screen.emit(.25)
$Horse.hide()
$Horse.end()
await get_tree().create_timer(5).timeout
horse_counter += 1
lady_of_whispers()
if heart_taken == false:
print("Boss horse!")
await get_tree().create_timer(2).timeout
EventBus.flash_screen.emit(.25)
$Heart.hide()
$Heart.monitoring = false
$Sprite2D.frame = 7
$Horse.show()
$Horse.start()
var horse_player = $Horse/AnimationPlayer
horse_player.play("run")
await get_tree().create_timer(10).timeout
EventBus.flash_screen.emit(.25)
$Horse.hide()
$Horse.end()
await get_tree().create_timer(5).timeout
horse_counter += 1
lady_of_whispers()
if heart_taken == true or heart_broken == true:
horse_phase = false
horse_phase_check()
func lady_of_whispers():
if horse_counter == 2:
print("Lady of Whispers offers you a heart!")
boss.play("rise")
await get_tree().create_timer(4).timeout
# boss.play("whisper")
offer_heart()
if horse_counter <= 1:
print("Lady of Whispers!")
boss.play("rise")
await get_tree().create_timer(4).timeout
boss.play("whisper")
await boss.animation_finished
await get_tree().create_timer(1).timeout
boss_horse()
horse_phase_check()
func hit_detection():
return
func offer_heart():
$Heart.show()
print("Lady of Whispers offers you a heart!")
boss.play("rise")
await get_tree().create_timer(4).timeout
boss_horse()
horse_counter = 0
print("Horse Counter:",horse_counter)
$Heart.show()
$Heart.monitoring = true
$Heart.monitorable = true
heart_check()
func heart_check():
print("Heart check!")
if heart_taken == false:
await get_tree().create_timer(4).timeout
horse_counter = 0
print("Horse Counter:",horse_counter)
if heart_taken == true or heart_broken == true:
$Heart.monitoring = false
$Heart.monitorable = false
horse_phase = false
horse_phase_check()
func _on_ending(value: int):
if value == 1:
heart_taken = true
horse_phase = false
#horse_phase_check()
print("Fix your broken heart or die")
$Sprite2D.frame = 0
var tween = create_tween()
tween.tween_property(self, "position:y", 180, 2).set_ease(Tween.EASE_OUT)
tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(Tween.EASE_IN)
await get_tree().create_timer(8).timeout
EventBus.goose_talk.emit(3)
self.monitoring = false
self.monitorable = false
if value == 2:
heart_broken = true
horse_phase = false
horse_phase_check()
print("Some hearts are too wild.")
$Heart.hide()
$Heart.monitoring = false
$Heart.monitorable = false
EventBus.flash_screen.emit(.25)
$Sprite2D.frame = 4
await get_tree().create_timer(4).timeout
EventBus.goose_talk.emit(4)
self.monitoring = false
self.monitorable = false
EventBus.win_game.emit()

View file

@ -217,6 +217,7 @@ wait_time = 0.05
one_shot = true
[node name="Heart" type="Area2D" parent="." unique_id=1098254590 groups=["heart"]]
visible = false
position = Vector2(0, -71)
[node name="Sprite2D" type="Sprite2D" parent="Heart" unique_id=520903474]

View file

@ -60,7 +60,6 @@ func _process(delta):
rotater.rotation_degrees -= 2.5 # Adjust rotation speed
func spawn_bullet():
print("I'm spawning bullets!")
var bullet = bullet_scene.instantiate()
get_tree().root.add_child(bullet)
bullet.position = rotater.global_position
@ -73,7 +72,6 @@ func spawn_bullet():
func _on_shoot_timer_timeout() -> void:
print("Shoot timer timeout!")
spawn_bullet()
#for s in rotater.get_children():
#var b = bullet_scene.instantiate()

View file

@ -81,9 +81,9 @@ func _on_area_entered(area: Area2D) -> void:
if area.is_in_group("heart"):
print("I've shot the heart!")
area.hit_detection()
queue_free()
print("Heart hit!")
EventBus.ending.emit(2)
#area.hit_detection()
#func bullet_fx():

View file

@ -254,6 +254,7 @@ libraries/ = SubResource("AnimationLibrary_7ellt")
[node name="ImpactCRT" type="AudioStreamPlayer2D" parent="." unique_id=518408763]
stream = ExtResource("6_gas3w")
volume_db = -16.028
[connection signal="timeout" from="MoveTimer" to="." method="_on_timer_timeout"]
[connection signal="timeout" from="ShootTimer" to="." method="_on_shoot_timer_timeout"]

View file

@ -15,4 +15,9 @@ signal goose_talk(frame_index: int)
signal flash_screen(duration: float)
signal cloud_speed()
# Ending
signal ending(value: int)
signal win_game()
signal secret_win_game()
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations

View file

@ -16,7 +16,7 @@ texture = ExtResource("1_wo8sg")
[node name="Bubble" type="Sprite2D" parent="DapperGoose" unique_id=2012258473]
position = Vector2(-108, -21)
texture = ExtResource("3_g7ad0")
hframes = 4
hframes = 8
[node name="Quacking" type="Timer" parent="DapperGoose" unique_id=1836315393]
wait_time = 3.0

View file

@ -26,6 +26,8 @@ func _ready():
#EventBus.enemy_died.connect(_on_enemy_died)
EventBus.enemy_hit.connect(_on_enemy_hit)
EventBus.flash_screen.connect(_on_flash_screen)
EventBus.win_game.connect(_on_win_game)
EventBus.secret_win_game.connect(_on_secret_win_game)
#func spawn_enemies():
@ -78,7 +80,7 @@ func _on_player_died():
# get_tree().call_group("enemies", "queue_free")
# $Player.set_process(false)
# get_tree().call_group("enemies", "set_process", false)
EventBus.goose_talk.emit(3)
EventBus.goose_talk.emit(7)
instance.queue_free()
game_over.show()
$LevelAudio.stop()
@ -91,6 +93,7 @@ func _on_player_died():
func new_game():
$CanvasLayer/Title.hide()
# Ensure enemies are cleared.
get_tree().call_group("boss", "queue_free")
get_tree().call_group("enemies", "queue_free")
get_tree().call_group("shards", "queue_free")
get_tree().call_group("enemy_bullets", "queue_free")
@ -115,7 +118,7 @@ func new_game():
# Do some DapperGoose talk
await get_tree().create_timer(1.5).timeout
EventBus.goose_talk.emit(2)
EventBus.goose_talk.emit(6)
# Tell the enemies to spawn!
#await get_tree().create_timer(.5).timeout
@ -143,11 +146,21 @@ func _on_start_pressed():
$Welcome.play()
new_game()
func win_game():
func _on_secret_win_game():
playing = false
game_over.show()
#await get_tree().create_timer(8).timeout
game_over.hide()
$CanvasLayer/Title.show()
start_button.show()
func _on_win_game():
playing = false
game_over.show()
$Player._on_player_victory()
await get_tree().create_timer(2).timeout
await get_tree().create_timer(8).timeout
game_over.hide()
$CanvasLayer/Title.show()
start_button.show()

View file

@ -139,7 +139,8 @@ volume_db = -0.5
[node name="LevelAudio" type="AudioStreamPlayer2D" parent="." unique_id=2125260365]
stream = ExtResource("12_trceg")
volume_db = -13.178
volume_db = -20.0
pitch_scale = 0.8
[node name="Wave" parent="." unique_id=2117861058 instance=ExtResource("11_ya4ey")]

View file

@ -12,7 +12,7 @@ signal damage_taken
var shield: int = 0:
set = _on_set_shield
var pause: bool = false
var can_shoot = false
var shader_active: bool = false:
set(value):
@ -32,6 +32,7 @@ func _ready():
set_process(false)
print(shield)
EventBus.set_shield.connect(_on_set_shield)
#EventBus.player_victory.connect(_on_player_victory)
# start()
func start():
@ -55,6 +56,8 @@ func start():
# EventBus.shield_changed.emit(max_shield, old_value, shield)
func _process(delta):
if pause == true: return
var input = Input.get_vector("left", "right", "up", "down")
if input.x > 0:
$Ship.frame = 2
@ -129,9 +132,16 @@ func _on_area_entered(area):
if area.is_in_group("boss"):
print("Entered boss!")
shield -= int(max_shield / 2)
_on_damage_taken()
if area.is_in_group("heart"):
print("Got the heart!")
pause = true
reparent(area)
ship.frame = 0
EventBus.ending.emit(1)
func _on_damage_taken():
@ -150,8 +160,10 @@ func _on_player_victory() -> void:
print("Victory!")
# get_node("EnemyBullet").monitoring = false #TODO make sure bullets stop monitoring!
set_process(false)
$Ship.frame = 1
await get_tree().create_timer(1).timeout
#$Ship.frame = 1
self.monitorable = false
self.monitoring = false
await get_tree().create_timer(4).timeout
# $Ship/Boosters/BoosterBurst.show()
var tween = create_tween()
tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(tween.EASE_IN)

View file

@ -142,6 +142,7 @@ region_rect = Rect2(0, 0, 96, 16)
[node name="HeadInflate" type="AudioStreamPlayer2D" parent="." unique_id=374500278]
stream = ExtResource("10_y4r1p")
volume_db = -9.973
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="damage_taken" from="." to="." method="_on_damage_taken"]

View file

@ -25,7 +25,7 @@ func _ready():
func spawn_enemies():
if wave_count == 1: #This is for CHICKENS
if wave_count == 3: #This is for CHICKENS
print("Enemy Wave: ", wave_count)
enemy = CHICKEN
for x in range(COLS):
@ -38,7 +38,7 @@ func spawn_enemies():
await get_tree().process_frame
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
if wave_count == 3: #This is for CRTs
if wave_count == 1: #This is for CRTs
print("Enemy Wave: ", wave_count)
enemy = CRT
var cols_mod = COLS - 1
@ -53,7 +53,7 @@ func spawn_enemies():
enemy_count = rows_mod * cols_mod
await get_tree().process_frame
if wave_count == 0 : #This if for Mirror
if wave_count == 2 : #This if for Mirror
print("Enemy Wave: ", wave_count)
# Spawn Table
@ -89,7 +89,7 @@ func spawn_enemies():
s.start_all_animations()
if wave_count == 2 : #This is for Boss
if wave_count == 0 : #This is for Boss
# Hide the player
@ -126,7 +126,7 @@ func wave_status():
wave_complete = false
else:
EventBus.goose_talk.emit(1)
EventBus.goose_talk.emit(wave_count)
wave_initialize()
wave_complete = true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After