Compare commits
No commits in common. "04cfdd01dc7ad1e8131e9020a710b221d971c78f" and "b13cf3d96bfff427567e4e4afacde4021cda3a1f" have entirely different histories.
04cfdd01dc
...
b13cf3d96b
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2024 Bartosz Budnik (BudzioT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
20
README.md
|
|
@ -1,20 +1,8 @@
|
|||
# Super Space Game
|
||||
|
||||
18 September, 2140 [EARTH STANDARD TIME]. Ash Milian wakes up from a coma. Remembering nothing about the world or their life, you must fly around the C022 solar system as a mercenary to find answers to who you are, and why you're here.
|
||||
A full remake of my previous Space Game with far more features, content and functionality. The only borrowed assets from the original game are specific sound effects.
|
||||
|
||||
A full remake of my previous Space Game with far more features, content and functionality. The only borrowed assets from the original game are sound effects, and also the code for stars. Turns out that's hard to do right.
|
||||
## Credits
|
||||
|
||||
I likely will finish this game after siege, although it will not be immediately.
|
||||
|
||||
## Hints for testers
|
||||
Above all else: THIS IS A PROTOTYPE. While I'm definitely making this into a proper game, it's still a prototype. It's not perfect. It's probably buggy. But I've put a lot of effort into it, so I get a gold star for effort (I will eats it :3)
|
||||
|
||||
- In your ship, you can press the SELECT/SHARE/BACK/- button on your controller (or CAPS LOCK on PC) to open the navpanel. You can fast travel and pick up contracts.
|
||||
- The only real content is in the intro and first contract.
|
||||
- In the intro, you probably shouldn't fight the enemies that chase you. They are very beefy.
|
||||
- The first contract is not finished.
|
||||
|
||||
The following hints require the console, which can be opened with the TILDE key (the key with ~ on it, usually below [ESC].)
|
||||
|
||||
- You can use `summon_enemy` in the console while in space to summon an enemy ship behind you.
|
||||
- Unable to unholster your gun? Use the console command `give_ground_gun pistol` and try again.
|
||||
Space station music themes from Roblox 3008 OST by uglyburger0
|
||||
Input icons by Kenney (they're really good, you can find them [here](https://kenney.nl/assets/input-prompts))
|
||||
|
|
|
|||
|
|
@ -22,9 +22,7 @@ static var button_dictionary = {
|
|||
JOY_BUTTON_LEFT_SHOULDER: "left_shoulder",
|
||||
JOY_BUTTON_RIGHT_SHOULDER: "left_shoulder",
|
||||
JOY_BUTTON_PADDLE1: "left_shoulder",
|
||||
JOY_BUTTON_BACK: "back",
|
||||
JOY_BUTTON_LEFT_STICK: "left_stick",
|
||||
JOY_BUTTON_RIGHT_STICK: "right_stick",
|
||||
JOY_BUTTON_BACK: "back"
|
||||
}
|
||||
|
||||
static var mouse_button_dictionary = {
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 508 B |
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6sh4c72e10ws"
|
||||
path="res://.godot/imported/left_stick.png-b6fd8c2882bba6bbb1bf517e0c2b20b2.ctex"
|
||||
path="res://.godot/imported/xbox_stick_side_l.png-9b2e6474d68e522ac5c74d5b2ae135cd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/super_awesome_input_icons/textures/generic/left_stick.png"
|
||||
dest_files=["res://.godot/imported/left_stick.png-b6fd8c2882bba6bbb1bf517e0c2b20b2.ctex"]
|
||||
source_file="res://addons/super_awesome_input_icons/textures/generic/xbox_stick_side_l.png"
|
||||
dest_files=["res://.godot/imported/xbox_stick_side_l.png-9b2e6474d68e522ac5c74d5b2ae135cd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 585 B After Width: | Height: | Size: 585 B |
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://h435fkxc3v6g"
|
||||
path="res://.godot/imported/right_stick.png-30fad7bf49d37f7e890b3dc790811c08.ctex"
|
||||
path="res://.godot/imported/xbox_stick_side_r.png-902b85f39a099dfd98c9b55995248612.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/super_awesome_input_icons/textures/generic/right_stick.png"
|
||||
dest_files=["res://.godot/imported/right_stick.png-30fad7bf49d37f7e890b3dc790811c08.ctex"]
|
||||
source_file="res://addons/super_awesome_input_icons/textures/generic/xbox_stick_side_r.png"
|
||||
dest_files=["res://.godot/imported/xbox_stick_side_r.png-902b85f39a099dfd98c9b55995248612.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
|
@ -1,12 +1,6 @@
|
|||
[gd_resource type="AudioBusLayout" load_steps=2 format=3 uid="uid://cbmx3klr6k4mt"]
|
||||
|
||||
[sub_resource type="AudioEffectLowPassFilter" id="AudioEffectLowPassFilter_j3pel"]
|
||||
resource_name = "LowPassFilter"
|
||||
cutoff_hz = 10000.0
|
||||
[gd_resource type="AudioBusLayout" format=3 uid="uid://cbmx3klr6k4mt"]
|
||||
|
||||
[resource]
|
||||
bus/0/effect/0/effect = SubResource("AudioEffectLowPassFilter_j3pel")
|
||||
bus/0/effect/0/enabled = false
|
||||
bus/1/name = &"Music"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ advanced_options=false
|
|||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="sounds/*"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="export/windows/ssg-prototype.exe"
|
||||
export_path="export/windows/super-space-game.exe"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
|
|
@ -65,301 +65,3 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi
|
|||
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.1]
|
||||
|
||||
name="macOS"
|
||||
platform="macOS"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="sounds/*"
|
||||
exclude_filter=""
|
||||
export_path="export/mac/ssg-prototype.app"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.1.options]
|
||||
|
||||
export/distribution_type=1
|
||||
binary_format/architecture="universal"
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
application/icon=""
|
||||
application/icon_interpolation=4
|
||||
application/bundle_identifier="com.toasterpanic.super-space-game-prototype"
|
||||
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_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}\""
|
||||
|
||||
[preset.2]
|
||||
|
||||
name="Linux"
|
||||
platform="Linux"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="sounds/*"
|
||||
exclude_filter=""
|
||||
export_path="export/linux/ssg-prototype.x86_64"
|
||||
patches=PackedStringArray()
|
||||
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=true
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=false
|
||||
binary_format/architecture="x86_64"
|
||||
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
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
|
|
|||
11
follower_click.gd
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
extends Marker2D
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
position = get_global_mouse_position()
|
||||
1
follower_click.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://c5cyiafgmvb8h
|
||||
|
|
@ -225,12 +225,6 @@ aim_down={
|
|||
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":3,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
toggle_holster={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194329,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":8,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
|
|
@ -242,6 +236,5 @@ toggle_holster={
|
|||
|
||||
textures/canvas_textures/default_texture_filter=0
|
||||
renderer/rendering_method="mobile"
|
||||
textures/vram_compression/import_etc2_astc=true
|
||||
environment/defaults/default_clear_color=Color(0, 0, 0, 1)
|
||||
2d/snap/snap_2d_transforms_to_pixel=true
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://bav8ogrhgycaw"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cfuclgb21yw7n" path="res://textures/navigation_marker.png" id="1_i4ju7"]
|
||||
[ext_resource type="Script" uid="uid://ddwxm6i060srm" path="res://scripts/navigation_marker.gd" id="2_yh82h"]
|
||||
|
||||
[node name="AlertnessMarker" type="Sprite2D"]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
texture = ExtResource("1_i4ju7")
|
||||
script = ExtResource("2_yh82h")
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b28c58tdwi3k5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c3m22vi3fsimq" path="res://scripts/contract_item.gd" id="1_y4oga"]
|
||||
|
||||
[node name="ContractItem" type="VBoxContainer"]
|
||||
script = ExtResource("1_y4oga")
|
||||
|
||||
[node name="Label" type="RichTextLabel" parent="."]
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "[font size=24]space station 1[/font]
|
||||
1000u away"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="Button" type="Button" parent="."]
|
||||
layout_mode = 2
|
||||
text = "select"
|
||||
|
||||
[connection signal="pressed" from="Button" to="." method="_on_button_pressed"]
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
[gd_scene load_steps=12 format=3 uid="uid://cs30mgkcn74is"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b88ykyte6oi3i" path="res://scripts/door_medium_horizontial.gd" id="1_8opqd"]
|
||||
[ext_resource type="Texture2D" uid="uid://djmlhid6f4xwi" path="res://textures/door_medium_horziontial.png" id="2_8opqd"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ydv31"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(384, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_tlrp8"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(320, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ruhr2"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(256, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_388o4"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(192, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_apq5w"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(128, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_kxlda"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(64, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5gimo"]
|
||||
atlas = ExtResource("2_8opqd")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_vvdds"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ydv31")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_tlrp8")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ruhr2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_388o4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_apq5w")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_kxlda")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5gimo")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"default",
|
||||
"speed": 12.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5gimo")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_kxlda")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_apq5w")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_388o4")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ruhr2")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_tlrp8")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ydv31")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"open",
|
||||
"speed": 12.0
|
||||
}]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhfm6"]
|
||||
size = Vector2(96, 32)
|
||||
|
||||
[node name="DoorMediumHorizontial" type="StaticBody2D"]
|
||||
scale = Vector2(2, 2)
|
||||
script = ExtResource("1_8opqd")
|
||||
|
||||
[node name="Sprite" type="AnimatedSprite2D" parent="."]
|
||||
sprite_frames = SubResource("SpriteFrames_vvdds")
|
||||
autoplay = "default"
|
||||
frame = 6
|
||||
frame_progress = 1.0
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, 16)
|
||||
shape = SubResource("RectangleShape2D_bhfm6")
|
||||
|
|
@ -36,11 +36,9 @@ bus = &"Sound Effects"
|
|||
|
||||
[node name="Fire" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("5_ipns3")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Explode" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("5_ipns3")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("6_w8i8w")
|
||||
|
|
|
|||
|
|
@ -1,133 +0,0 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://dh3psx6ilrtql"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bv7ymrwe6ciax" path="res://scripts/enemy_ground.gd" id="1_hqfmb"]
|
||||
[ext_resource type="AudioStream" uid="uid://dpkn65kpftlmr" path="res://sounds/alerted.mp3" id="2_egpqw"]
|
||||
[ext_resource type="AudioStream" uid="uid://boiv2kfau8gop" path="res://sounds/detecting.mp3" id="3_6bsrn"]
|
||||
[ext_resource type="Texture2D" uid="uid://c0cyhybh30ogt" path="res://textures/player-ground-sheet.png" id="4_tcxjb"]
|
||||
[ext_resource type="Texture2D" uid="uid://csrlh1sbdroud" path="res://textures/pistol.png" id="5_k5k1o"]
|
||||
[ext_resource type="AudioStream" uid="uid://5x8fl2mk082h" path="res://sounds/gunshot_1.mp3" id="6_sh8im"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_jo68p"]
|
||||
atlas = ExtResource("4_tcxjb")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_6gpfv"]
|
||||
atlas = ExtResource("4_tcxjb")
|
||||
region = Rect2(64, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fd1o3"]
|
||||
atlas = ExtResource("4_tcxjb")
|
||||
region = Rect2(192, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_yqhs4"]
|
||||
atlas = ExtResource("4_tcxjb")
|
||||
region = Rect2(128, 0, 64, 64)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_vmpfq"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_jo68p")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_6gpfv")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_fd1o3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_yqhs4")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_jo68p")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"idle",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_6gpfv")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_jo68p")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_fd1o3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_yqhs4")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"walk",
|
||||
"speed": 7.0
|
||||
}]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_jxmby"]
|
||||
radius = 21.0
|
||||
height = 48.0
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_tvsp8"]
|
||||
radius = 25.0
|
||||
height = 148.0
|
||||
|
||||
[node name="Enemy" type="CharacterBody2D"]
|
||||
script = ExtResource("1_hqfmb")
|
||||
|
||||
[node name="Alerted" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("2_egpqw")
|
||||
volume_db = 8.0
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Detecting" type="AudioStreamPlayer2D" parent="."]
|
||||
stream = ExtResource("3_6bsrn")
|
||||
bus = &"Sound Effects"
|
||||
parameters/looping = true
|
||||
|
||||
[node name="Sprite" type="AnimatedSprite2D" parent="."]
|
||||
scale = Vector2(2, 2)
|
||||
sprite_frames = SubResource("SpriteFrames_vmpfq")
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, 40)
|
||||
shape = SubResource("CapsuleShape2D_jxmby")
|
||||
|
||||
[node name="LineOfSight" type="RayCast2D" parent="."]
|
||||
target_position = Vector2(2048, 0)
|
||||
collision_mask = 2
|
||||
collide_with_areas = true
|
||||
|
||||
[node name="HeldItem" type="Node2D" parent="."]
|
||||
|
||||
[node name="Cast" type="RayCast2D" parent="HeldItem"]
|
||||
position = Vector2(64, 0)
|
||||
target_position = Vector2(204800, 0)
|
||||
collision_mask = 2
|
||||
collide_with_areas = true
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="HeldItem"]
|
||||
position = Vector2(56, 0)
|
||||
texture = ExtResource("5_k5k1o")
|
||||
|
||||
[node name="Gunshot" type="AudioStreamPlayer2D" parent="HeldItem"]
|
||||
stream = ExtResource("6_sh8im")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Hitbox" type="Area2D" parent="."]
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape2D" parent="Hitbox"]
|
||||
shape = SubResource("CapsuleShape2D_tvsp8")
|
||||
debug_color = Color(1, 0, 0, 0.41960785)
|
||||
|
||||
[node name="Navagent" type="NavigationAgent2D" parent="."]
|
||||
path_desired_distance = 34.0
|
||||
target_desired_distance = 34.0
|
||||
path_postprocessing = 1
|
||||
avoidance_enabled = true
|
||||
267
scenes/game.tscn
|
|
@ -1,8 +1,7 @@
|
|||
[gd_scene load_steps=37 format=3 uid="uid://by43ihcec8e8q"]
|
||||
[gd_scene load_steps=27 format=3 uid="uid://by43ihcec8e8q"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2sw6ymaf4t0s" path="res://scripts/game_ground.gd" id="1_6ra5r"]
|
||||
[ext_resource type="Script" uid="uid://dowu512otgyyf" path="res://scripts/player_ground.gd" id="3_8gbjj"]
|
||||
[ext_resource type="AudioStream" uid="uid://cwidt34ehvre4" path="res://sounds/ui_select.mp3" id="3_26mqe"]
|
||||
[ext_resource type="AudioStream" uid="uid://cdl70q0x28717" path="res://sounds/dialogue.mp3" id="3_rncil"]
|
||||
[ext_resource type="Texture2D" uid="uid://c0cyhybh30ogt" path="res://textures/player-ground-sheet.png" id="4_2c1ag"]
|
||||
[ext_resource type="Texture2D" uid="uid://csrlh1sbdroud" path="res://textures/pistol.png" id="5_8gbjj"]
|
||||
|
|
@ -11,13 +10,8 @@
|
|||
[ext_resource type="Shader" uid="uid://d3hoh7ec2w8q7" path="res://scripts/outline.gdshader" id="7_vuhkc"]
|
||||
[ext_resource type="Shader" uid="uid://d2e0541hawkml" path="res://scripts/vignette.gdshader" id="9_5vwr8"]
|
||||
[ext_resource type="Shader" uid="uid://bk7q00br1ms30" path="res://scripts/retro.gdshader" id="9_257nh"]
|
||||
[ext_resource type="PackedScene" uid="uid://bav8ogrhgycaw" path="res://scenes/alertness_marker.tscn" id="9_hby33"]
|
||||
[ext_resource type="Script" uid="uid://s7dwusi00l3v" path="res://scripts/alertness_marker.gd" id="10_e3s4u"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwa4uu7hrw2l0" path="res://textures/save_indicator.png" id="13_176r3"]
|
||||
[ext_resource type="PackedScene" uid="uid://b6bq2viqao61m" path="res://scenes/pause_menu.tscn" id="14_vuhkc"]
|
||||
[ext_resource type="Texture2D" uid="uid://dauoebs801ngm" path="res://addons/super_awesome_input_icons/textures/keyboard/question.png" id="16_e3s4u"]
|
||||
[ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="16_hby33"]
|
||||
[ext_resource type="PackedScene" uid="uid://behjlujs230r2" path="res://scenes/mission_objectives.tscn" id="18_e3s4u"]
|
||||
[ext_resource type="PackedScene" uid="uid://dhcfrsf726k68" path="res://scenes/dialogue_select_button.tscn" id="19_qqas2"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_jo68p"]
|
||||
|
|
@ -114,33 +108,6 @@ font_size = 48
|
|||
outline_size = 4
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_176r3"]
|
||||
font_size = 32
|
||||
outline_size = 4
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vuhkc"]
|
||||
atlas = ExtResource("13_176r3")
|
||||
region = Rect2(0, 0, 16, 16)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_26mqe"]
|
||||
atlas = ExtResource("13_176r3")
|
||||
region = Rect2(16, 0, 16, 16)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_257nh"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vuhkc")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_26mqe")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 2.0
|
||||
}]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ypt7u"]
|
||||
shader = ExtResource("9_257nh")
|
||||
shader_parameter/shake = 0.002000000095
|
||||
|
|
@ -162,14 +129,7 @@ y_sort_enabled = true
|
|||
script = ExtResource("1_6ra5r")
|
||||
|
||||
[node name="Dialogue" type="AudioStreamPlayer" parent="."]
|
||||
process_mode = 3
|
||||
stream = ExtResource("3_rncil")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="UiSelect" type="AudioStreamPlayer" parent="."]
|
||||
process_mode = 3
|
||||
stream = ExtResource("3_26mqe")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="PlayerGround" type="CharacterBody2D" parent="."]
|
||||
position = Vector2(349, -58)
|
||||
|
|
@ -217,9 +177,6 @@ collision_mask = 2
|
|||
shape = SubResource("CapsuleShape2D_8gbjj")
|
||||
debug_color = Color(1, 0, 0, 0.41960785)
|
||||
|
||||
[node name="AlertnessMarker" parent="PlayerGround" instance=ExtResource("9_hby33")]
|
||||
script = ExtResource("10_e3s4u")
|
||||
|
||||
[node name="UI" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="Vignette" type="ColorRect" parent="UI"]
|
||||
|
|
@ -302,155 +259,6 @@ layout_mode = 2
|
|||
text = "TO INTERACT"
|
||||
label_settings = SubResource("LabelSettings_c2suo")
|
||||
|
||||
[node name="MoveTutorial" type="HFlowContainer" parent="UI/Control"]
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0.53333336)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_bottom = -245.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="End2" type="Label" parent="UI/Control/MoveTutorial"]
|
||||
layout_mode = 2
|
||||
text = "MOVE"
|
||||
label_settings = SubResource("LabelSettings_176r3")
|
||||
|
||||
[node name="InputIconTextureRect" type="TextureRect" parent="UI/Control/MoveTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "ground_up"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect2" type="TextureRect" parent="UI/Control/MoveTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "ground_down"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect3" type="TextureRect" parent="UI/Control/MoveTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "ground_left"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect4" type="TextureRect" parent="UI/Control/MoveTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "ground_right"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="UnholsterTutorial" type="HFlowContainer" parent="UI/Control"]
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0.53333336)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_bottom = -245.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="End2" type="Label" parent="UI/Control/UnholsterTutorial"]
|
||||
layout_mode = 2
|
||||
text = "TOGGLE WEAPON"
|
||||
label_settings = SubResource("LabelSettings_176r3")
|
||||
|
||||
[node name="InputIconTextureRect" type="TextureRect" parent="UI/Control/UnholsterTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "toggle_holster"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="GunTutorial" type="HFlowContainer" parent="UI/Control"]
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0.53333336)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_bottom = -245.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="End2" type="Label" parent="UI/Control/GunTutorial"]
|
||||
layout_mode = 2
|
||||
text = "FIRE"
|
||||
label_settings = SubResource("LabelSettings_176r3")
|
||||
|
||||
[node name="InputIconTextureRect" type="TextureRect" parent="UI/Control/GunTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "fire"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="End3" type="Label" parent="UI/Control/GunTutorial"]
|
||||
layout_mode = 2
|
||||
text = " | AIM"
|
||||
label_settings = SubResource("LabelSettings_176r3")
|
||||
|
||||
[node name="InputIconTextureRect5" type="TextureRect" parent="UI/Control/GunTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "aim_up"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect6" type="TextureRect" parent="UI/Control/GunTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "aim_down"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect7" type="TextureRect" parent="UI/Control/GunTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "aim_left"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect8" type="TextureRect" parent="UI/Control/GunTutorial"]
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("16_e3s4u")
|
||||
expand_mode = 1
|
||||
script = ExtResource("16_hby33")
|
||||
action_name = "aim_right"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="DialogueOptions" type="VBoxContainer" parent="UI/Control"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(128, 0)
|
||||
|
|
@ -495,35 +303,6 @@ metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
|||
[node name="Button" parent="UI/Control/DialogueOptions" instance=ExtResource("19_qqas2")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="SaveIndicator" type="Control" parent="UI/Control"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(64, 64)
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -64.0
|
||||
offset_top = -64.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="SaveIcon" type="AnimatedSprite2D" parent="UI/Control/SaveIndicator"]
|
||||
position = Vector2(32, 32)
|
||||
scale = Vector2(4, 4)
|
||||
sprite_frames = SubResource("SpriteFrames_257nh")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.6029871
|
||||
|
||||
[node name="PauseMenu" parent="UI/Control" instance=ExtResource("14_vuhkc")]
|
||||
layout_mode = 1
|
||||
|
||||
[node name="MissionObjectives" parent="UI/Control" instance=ExtResource("18_e3s4u")]
|
||||
layout_mode = 1
|
||||
offset_left = -256.0
|
||||
offset_bottom = 69.0
|
||||
|
||||
[node name="Shader" type="ColorRect" parent="UI"]
|
||||
material = SubResource("ShaderMaterial_ypt7u")
|
||||
anchors_preset = 15
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://behjlujs230r2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ceua7bjh8xokf" path="res://scripts/mission_objectives.gd" id="1_pg0np"]
|
||||
[ext_resource type="FontFile" uid="uid://donsvh2l775rb" path="res://fonts/Doto.ttf" id="2_80tcl"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_2tk4m"]
|
||||
font = ExtResource("2_80tcl")
|
||||
font_size = 32
|
||||
shadow_size = 4
|
||||
shadow_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_e3s4u"]
|
||||
font_size = 18
|
||||
shadow_size = 4
|
||||
shadow_color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="MissionObjectives" type="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(256, 0)
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -40.0
|
||||
offset_bottom = 40.0
|
||||
grow_horizontal = 0
|
||||
script = ExtResource("1_pg0np")
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
text = "WAKING UP"
|
||||
label_settings = SubResource("LabelSettings_2tk4m")
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Label2" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
text = "- RUN!"
|
||||
label_settings = SubResource("LabelSettings_e3s4u")
|
||||
autowrap_mode = 3
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://dx7buubd8c45c"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://wd3la6kvbm6e" path="res://scripts/objective_list_item.gd" id="1_7qfvb"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_a2dn8"]
|
||||
font_size = 18
|
||||
|
||||
[sub_resource type="Animation" id="Animation_a2dn8"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:scale:y")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [1.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7qfvb"]
|
||||
resource_name = "show"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.75),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 1, 1, 1), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:scale:y")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_v5l3y"]
|
||||
resource_name = "hide"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:scale:y")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.8666667, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [1.0, 0.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 1, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_v5l3y"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_a2dn8"),
|
||||
&"hide": SubResource("Animation_v5l3y"),
|
||||
&"show": SubResource("Animation_7qfvb")
|
||||
}
|
||||
|
||||
[node name="ObjectiveListItem" type="Label"]
|
||||
modulate = Color(0, 0, 0, 1)
|
||||
custom_minimum_size = Vector2(256, 0)
|
||||
text = "WAKING UP"
|
||||
label_settings = SubResource("LabelSettings_a2dn8")
|
||||
autowrap_mode = 3
|
||||
script = ExtResource("1_7qfvb")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_v5l3y")
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://c2s1tterykyu5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ck38qwl4qytnt" path="res://scripts/particle_group.gd" id="1_8186p"]
|
||||
[ext_resource type="Texture2D" uid="uid://ccfofitk3x5jj" path="res://textures/particles/laser.png" id="2_a658j"]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_ipns3"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.49242425, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||
point_count = 3
|
||||
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_416m4"]
|
||||
curve = SubResource("Curve_ipns3")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8186p"]
|
||||
particle_flag_disable_z = true
|
||||
angle_min = -720.0
|
||||
angle_max = 720.0
|
||||
spread = 180.0
|
||||
initial_velocity_min = 30.3
|
||||
initial_velocity_max = 260.81
|
||||
gravity = Vector3(0, 400, 0)
|
||||
damping_min = 8.0
|
||||
damping_max = 14.000001
|
||||
scale_min = 0.29999998
|
||||
scale_max = 0.5
|
||||
alpha_curve = SubResource("CurveTexture_416m4")
|
||||
collision_use_scale = true
|
||||
|
||||
[node name="Blood" type="Node2D"]
|
||||
script = ExtResource("1_8186p")
|
||||
|
||||
[node name="GPUParticles2D" type="GPUParticles2D" parent="."]
|
||||
emitting = false
|
||||
amount = 24
|
||||
texture = ExtResource("2_a658j")
|
||||
lifetime = 0.4
|
||||
one_shot = true
|
||||
explosiveness = 1.0
|
||||
process_material = SubResource("ParticleProcessMaterial_8186p")
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://b6bq2viqao61m"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dqiaioigmj5wb" path="res://scripts/pause_menu.gd" id="1_5d2l8"]
|
||||
[ext_resource type="Theme" uid="uid://dtc7h6gpwpend" path="res://scenes/ui.tres" id="2_7l7mv"]
|
||||
[ext_resource type="AudioStream" uid="uid://cwidt34ehvre4" path="res://sounds/ui_select.mp3" id="2_v4r4p"]
|
||||
[ext_resource type="AudioStream" uid="uid://bff3l15ivkcyi" path="res://sounds/ui_back.mp3" id="3_1s2dm"]
|
||||
[ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="3_v4r4p"]
|
||||
[ext_resource type="PackedScene" uid="uid://cy4nbqbm222os" path="res://scenes/settings.tscn" id="4_1s2dm"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_264po"]
|
||||
bg_color = Color(0, 0, 0, 1)
|
||||
border_color = Color(0.53333336, 0.53333336, 0.53333336, 1)
|
||||
corner_detail = 1
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_1kice"]
|
||||
font_size = 48
|
||||
outline_size = 2
|
||||
|
||||
[node name="PauseMenu" type="Panel"]
|
||||
process_mode = 3
|
||||
visible = false
|
||||
self_modulate = Color(1, 1, 1, 0.53333336)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_264po")
|
||||
script = ExtResource("1_5d2l8")
|
||||
|
||||
[node name="UiSelect" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_v4r4p")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="UiBack" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("3_1s2dm")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Panel" type="PanelContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -130.0
|
||||
offset_top = -26.0
|
||||
offset_right = 130.0
|
||||
offset_bottom = 26.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("2_7l7mv")
|
||||
|
||||
[node name="Flow" type="HFlowContainer" parent="Panel"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/Flow"]
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
text = "PAUSED"
|
||||
label_settings = SubResource("LabelSettings_1kice")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HFlowContainer" type="HFlowContainer" parent="Panel/Flow"]
|
||||
custom_minimum_size = Vector2(257, 0)
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="InputIconTextureRect2" type="TextureRect" parent="Panel/Flow/HFlowContainer"]
|
||||
custom_minimum_size = Vector2(48, 48)
|
||||
layout_mode = 2
|
||||
expand_mode = 1
|
||||
script = ExtResource("3_v4r4p")
|
||||
action_name = "ui_up"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect3" type="TextureRect" parent="Panel/Flow/HFlowContainer"]
|
||||
custom_minimum_size = Vector2(48, 48)
|
||||
layout_mode = 2
|
||||
expand_mode = 1
|
||||
script = ExtResource("3_v4r4p")
|
||||
action_name = "ui_down"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="InputIconTextureRect" type="TextureRect" parent="Panel/Flow/HFlowContainer"]
|
||||
custom_minimum_size = Vector2(48, 48)
|
||||
layout_mode = 2
|
||||
expand_mode = 1
|
||||
script = ExtResource("3_v4r4p")
|
||||
action_name = "dialogue_continue"
|
||||
metadata/_custom_type_script = "uid://b2maxk5g6yb0i"
|
||||
|
||||
[node name="Resume" type="Button" parent="Panel/Flow"]
|
||||
custom_minimum_size = Vector2(257, 0)
|
||||
layout_mode = 2
|
||||
focus_neighbor_top = NodePath("../QuitToTitle")
|
||||
text = "Resume"
|
||||
|
||||
[node name="Settings" type="Button" parent="Panel/Flow"]
|
||||
custom_minimum_size = Vector2(257, 0)
|
||||
layout_mode = 2
|
||||
text = "Settings"
|
||||
|
||||
[node name="QuitToTitle" type="Button" parent="Panel/Flow"]
|
||||
custom_minimum_size = Vector2(257, 0)
|
||||
layout_mode = 2
|
||||
focus_neighbor_bottom = NodePath("../Resume")
|
||||
text = "Quit to Title"
|
||||
|
||||
[node name="Label2" type="Label" parent="Panel/Flow"]
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
text = "PAUSED"
|
||||
label_settings = SubResource("LabelSettings_1kice")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Settings" parent="." instance=ExtResource("4_1s2dm")]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
offset_left = -322.0
|
||||
offset_right = 322.0
|
||||
|
||||
[connection signal="pressed" from="Panel/Flow/Resume" to="." method="_on_resume_pressed"]
|
||||
[connection signal="pressed" from="Panel/Flow/Settings" to="." method="_on_settings_pressed"]
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://udpwphfxtuf2"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bahp733iqv2us" path="res://textures/desk.png" id="1_551uk"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_aadnw"]
|
||||
size = Vector2(191, 32)
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
scale = Vector2(2, 2)
|
||||
texture = ExtResource("1_551uk")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(-32, 48)
|
||||
shape = SubResource("RectangleShape2D_aadnw")
|
||||
|
|
@ -1,11 +1,9 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://cy4nbqbm222os"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://cy4nbqbm222os"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://dtc7h6gpwpend" path="res://scenes/ui.tres" id="1_r6d6q"]
|
||||
[ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="2_6wm04"]
|
||||
[ext_resource type="Script" uid="uid://jacd1qlw1q5p" path="res://scripts/settings.gd" id="2_f4mfi"]
|
||||
[ext_resource type="FontFile" uid="uid://donsvh2l775rb" path="res://fonts/Doto.ttf" id="3_f4mfi"]
|
||||
[ext_resource type="AudioStream" uid="uid://cwidt34ehvre4" path="res://sounds/ui_select.mp3" id="3_gis3k"]
|
||||
[ext_resource type="AudioStream" uid="uid://bff3l15ivkcyi" path="res://sounds/ui_back.mp3" id="4_83j8s"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_1kice"]
|
||||
font_size = 48
|
||||
|
|
@ -30,14 +28,6 @@ grow_vertical = 2
|
|||
theme = ExtResource("1_r6d6q")
|
||||
script = ExtResource("2_f4mfi")
|
||||
|
||||
[node name="UiSelect" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("3_gis3k")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="UiBack" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("4_83j8s")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Scroll" type="ScrollContainer" parent="."]
|
||||
custom_minimum_size = Vector2(640, 0)
|
||||
layout_mode = 2
|
||||
|
|
@ -221,7 +211,7 @@ text = "Southpaw"
|
|||
layout_mode = 2
|
||||
text = "NO"
|
||||
|
||||
[connection signal="button_up" from="Scroll/Flow/Back" to="." method="_on_back_pressed"]
|
||||
[connection signal="pressed" from="Scroll/Flow/Back" to="." method="_on_back_pressed"]
|
||||
[connection signal="value_changed" from="Scroll/Flow/Flow2/MasterVolume" to="." method="_on_master_volume_value_changed"]
|
||||
[connection signal="value_changed" from="Scroll/Flow/Flow3/MusicVolume" to="." method="_on_music_volume_value_changed"]
|
||||
[connection signal="value_changed" from="Scroll/Flow/Flow4/SFXVolume" to="." method="_on_sfx_volume_value_changed"]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://b1x7evhkxm385"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://b1x7evhkxm385"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://md1biuc6ygmv" path="res://scripts/title.gd" id="1_pyl7j"]
|
||||
[ext_resource type="FontFile" uid="uid://n1nd5m2kwexu" path="res://fonts/Michroma.ttf" id="1_wosw1"]
|
||||
|
|
@ -8,7 +8,6 @@
|
|||
[ext_resource type="Shader" uid="uid://bk7q00br1ms30" path="res://scripts/retro.gdshader" id="2_p6dhs"]
|
||||
[ext_resource type="Script" uid="uid://b2maxk5g6yb0i" path="res://addons/super_awesome_input_icons/classes/input_icon_texture_rect.gd" id="2_pyl7j"]
|
||||
[ext_resource type="FontFile" uid="uid://donsvh2l775rb" path="res://fonts/Doto.ttf" id="3_b3w7a"]
|
||||
[ext_resource type="AudioStream" uid="uid://bff3l15ivkcyi" path="res://sounds/ui_back.mp3" id="3_w65of"]
|
||||
[ext_resource type="PackedScene" uid="uid://cy4nbqbm222os" path="res://scenes/settings.tscn" id="6_yql1r"]
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_yql1r"]
|
||||
|
|
@ -40,20 +39,14 @@ script = ExtResource("1_pyl7j")
|
|||
|
||||
[node name="UiSelect" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_hiwto")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="UiBack" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("3_w65of")
|
||||
bus = &"Sound Effects"
|
||||
|
||||
[node name="Title" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_ia1n6")
|
||||
volume_db = -4.0
|
||||
autoplay = true
|
||||
bus = &"Music"
|
||||
parameters/looping = true
|
||||
|
||||
[node name="Stars" type="GPUParticles2D" parent="."]
|
||||
[node name="GPUParticles2D" type="GPUParticles2D" parent="."]
|
||||
position = Vector2(-1420, 0)
|
||||
amount = 512
|
||||
texture = ExtResource("2_4rr2b")
|
||||
|
|
@ -313,61 +306,7 @@ theme_override_font_sizes/bold_italics_font_size = 32
|
|||
theme_override_font_sizes/italics_font_size = 32
|
||||
theme_override_font_sizes/mono_font_size = 32
|
||||
bbcode_enabled = true
|
||||
text = "[font size=20]space ambient music: minecraft nether music (by C418)[/font]"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Label5" type="RichTextLabel" parent="UI/Control/Credits"]
|
||||
custom_minimum_size = Vector2(640, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_fonts/normal_font = ExtResource("1_wosw1")
|
||||
theme_override_fonts/bold_font = ExtResource("3_b3w7a")
|
||||
theme_override_font_sizes/normal_font_size = 32
|
||||
theme_override_font_sizes/bold_font_size = 32
|
||||
theme_override_font_sizes/bold_italics_font_size = 32
|
||||
theme_override_font_sizes/italics_font_size = 32
|
||||
theme_override_font_sizes/mono_font_size = 32
|
||||
bbcode_enabled = true
|
||||
text = "[font size=20]space station music: SCP-3008 soundtrack by uglyburger0[/font]"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Label6" type="RichTextLabel" parent="UI/Control/Credits"]
|
||||
custom_minimum_size = Vector2(640, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_fonts/normal_font = ExtResource("1_wosw1")
|
||||
theme_override_fonts/bold_font = ExtResource("3_b3w7a")
|
||||
theme_override_font_sizes/normal_font_size = 32
|
||||
theme_override_font_sizes/bold_font_size = 32
|
||||
theme_override_font_sizes/bold_italics_font_size = 32
|
||||
theme_override_font_sizes/italics_font_size = 32
|
||||
theme_override_font_sizes/mono_font_size = 32
|
||||
bbcode_enabled = true
|
||||
text = "[font size=20]title screen music: delosound on pixabay[/font]"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Label7" type="RichTextLabel" parent="UI/Control/Credits"]
|
||||
custom_minimum_size = Vector2(640, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_fonts/normal_font = ExtResource("1_wosw1")
|
||||
theme_override_fonts/bold_font = ExtResource("3_b3w7a")
|
||||
theme_override_font_sizes/normal_font_size = 32
|
||||
theme_override_font_sizes/bold_font_size = 32
|
||||
theme_override_font_sizes/bold_italics_font_size = 32
|
||||
theme_override_font_sizes/italics_font_size = 32
|
||||
theme_override_font_sizes/mono_font_size = 32
|
||||
bbcode_enabled = true
|
||||
text = "[font size=20]special thanks to hack club for getting me to finish projects for once[/font]"
|
||||
text = "[font size=20]soundtrack by delosound on pixabay[/font]"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
|
@ -507,10 +446,7 @@ color = Color(1, 1, 1, 0)
|
|||
|
||||
[connection signal="pressed" from="UI/Control/ControllerInfo/Box/Flow/Continue" to="." method="_on_continue_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/Title/Buttons/NewGame" to="." method="_on_new_game_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/Title/Buttons/LoadGame" to="." method="_on_load_game_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/Title/Buttons/Settings" to="." method="_on_settings_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/Title/Buttons/Credits" to="." method="_on_credits_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/Title/Buttons/Quit" to="." method="_on_quit_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/Credits/Buttons/ExitCredits" to="." method="_on_exit_credits_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/OverrideSave/Buttons/YesOverride" to="." method="_on_yes_override_pressed"]
|
||||
[connection signal="pressed" from="UI/Control/OverrideSave/Buttons/NoOverride" to="." method="_on_no_override_pressed"]
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
extends Sprite2D
|
||||
|
||||
@export var enemy: Node2D = null
|
||||
|
||||
func _ready() -> void:
|
||||
if !enemy:
|
||||
queue_free()
|
||||
return
|
||||
|
||||
while enemy.reaction_timer > 0:
|
||||
look_at(enemy.global_position)
|
||||
|
||||
#if enemy.get_node("LineOfSight").get_collider().get_name() == "PlayerGround": #modulate =
|
||||
|
||||
queue_free()
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://s7dwusi00l3v
|
||||
|
|
@ -17,31 +17,10 @@ var sprinting = false
|
|||
var equipped_ground_gun = "pistol"
|
||||
var ammo_in_mag = 12
|
||||
|
||||
func set_ground_gun(value):
|
||||
func set_ground_gun(value: String):
|
||||
equipped_ground_gun = value
|
||||
|
||||
if value:
|
||||
$HeldItem/Sprite.texture = load("res://textures/" + equipped_ground_gun + ".png")
|
||||
ammo_in_mag = global.ground_guns
|
||||
|
||||
func navigate_to(goal: Vector2):
|
||||
if has_node("Navagent"):
|
||||
$Navagent.target_position = goal
|
||||
|
||||
while !$Navagent.is_navigation_finished():
|
||||
var next_position = $Navagent.get_next_path_position()
|
||||
next_position.y -= 32
|
||||
|
||||
var axes = global_position.direction_to(next_position)
|
||||
|
||||
horizontial_movement = axes.x
|
||||
vertical_movement = axes.y
|
||||
|
||||
# This is a bad way to do this, to be honest. However, I am lazy
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
|
||||
horizontial_movement = 0
|
||||
vertical_movement = 0
|
||||
$HeldItem/Sprite.texture = load("res://textures/" + equipped_ground_gun + ".png")
|
||||
ammo_in_mag = global.ground_guns
|
||||
|
||||
func _ready() -> void:
|
||||
$Sprite.play()
|
||||
|
|
@ -57,7 +36,7 @@ func _process(delta: float) -> void:
|
|||
$Sprite.position.y = 64
|
||||
$Sprite.animation = "idle"
|
||||
|
||||
if has_node("HeldItem"): $HeldItem.visible = false
|
||||
$HeldItem.visible = false
|
||||
|
||||
return
|
||||
|
||||
|
|
@ -95,48 +74,34 @@ func _process(delta: float) -> void:
|
|||
$Sprite.animation = "idle"
|
||||
|
||||
fire_delay -= delta
|
||||
if has_node("HeldItem"):
|
||||
if !equipped_ground_gun:
|
||||
$HeldItem.visible = false
|
||||
else:
|
||||
$HeldItem.visible = true
|
||||
if firing and (fire_delay < 0):
|
||||
if has_node("HeldItem") and (equipped_ground_gun != null):
|
||||
$HeldItem/Cast.force_raycast_update()
|
||||
|
||||
if firing and (fire_delay < 0):
|
||||
|
||||
$HeldItem/Cast.force_raycast_update()
|
||||
var hit_target = $HeldItem/Cast.get_collider()
|
||||
|
||||
if hit_target:
|
||||
if "health" in hit_target.get_parent():
|
||||
hit_target.get_parent().health -= 10
|
||||
|
||||
var hit_target = $HeldItem/Cast.get_collider()
|
||||
|
||||
if hit_target:
|
||||
if "health" in hit_target.get_parent():
|
||||
hit_target.get_parent().health -= global.ground_guns[equipped_ground_gun].damage
|
||||
|
||||
var blood = preload("res://scenes/particles/blood.tscn").instantiate()
|
||||
blood.global_position = $HeldItem/Cast.get_collision_point()
|
||||
|
||||
get_parent().add_child(blood)
|
||||
|
||||
blood.play()
|
||||
else:
|
||||
var bullet_impact = preload("res://scenes/particles/bullet_impact.tscn").instantiate()
|
||||
bullet_impact.global_position = $HeldItem/Cast.get_collision_point()
|
||||
|
||||
get_parent().add_child(bullet_impact)
|
||||
|
||||
|
||||
bullet_impact.play()
|
||||
|
||||
var bullet_trail = preload("res://scenes/particles/bullet_trail.tscn").instantiate()
|
||||
bullet_trail.global_position = $HeldItem/Sprite.global_position
|
||||
|
||||
bullet_trail.points[1] = ($HeldItem/Cast.get_collision_point() - bullet_trail.global_position)
|
||||
|
||||
get_parent().add_child(bullet_trail)
|
||||
|
||||
bullet_trail.play()
|
||||
|
||||
$HeldItem/Gunshot.play()
|
||||
|
||||
fire_delay = global.ground_guns[equipped_ground_gun].fire_rate
|
||||
var bullet_impact = preload("res://scenes/particles/bullet_impact.tscn").instantiate()
|
||||
bullet_impact.global_position = $HeldItem/Cast.get_collision_point()
|
||||
|
||||
get_parent().add_child(bullet_impact)
|
||||
|
||||
bullet_impact.play()
|
||||
|
||||
var bullet_trail = preload("res://scenes/particles/bullet_trail.tscn").instantiate()
|
||||
bullet_trail.global_position = $HeldItem/Sprite.global_position
|
||||
|
||||
bullet_trail.points[1] = ($HeldItem/Cast.get_collision_point() - bullet_trail.global_position)
|
||||
|
||||
get_parent().add_child(bullet_trail)
|
||||
|
||||
bullet_trail.play()
|
||||
|
||||
$HeldItem/Gunshot.play()
|
||||
|
||||
fire_delay = 0.5
|
||||
|
||||
move_and_slide()
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
extends VBoxContainer
|
||||
|
||||
var contract = null
|
||||
var game = null
|
||||
|
||||
func update() -> void:
|
||||
$Label.text = """[font size=24]%s[/font]
|
||||
%s""" % [global.missions[contract].name, global.missions[contract].desc]
|
||||
|
||||
func _on_button_pressed() -> void:
|
||||
game._contracts_item_pressed(contract)
|
||||
|
||||
func _ready() -> void:
|
||||
update()
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://c3m22vi3fsimq
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
extends "res://scripts/character_ground.gd"
|
||||
|
||||
@onready var game = get_parent()
|
||||
|
||||
func _ready() -> void:
|
||||
super()
|
||||
|
||||
health = 50
|
||||
|
||||
func _interact(player: Node2D) -> void:
|
||||
player.get_node("Camera").enabled = false
|
||||
$Camera.enabled = true
|
||||
$InteractArea.monitoring = false
|
||||
|
||||
player.busy = true
|
||||
|
||||
await game.dialogue("Ready to leave?", "doctor_1", false)
|
||||
|
||||
var option = await game.make_choice({
|
||||
"yes": "Yes",
|
||||
"no": "No"
|
||||
})
|
||||
|
||||
if option == "yes":
|
||||
await game.dialogue("Alrighty!", "doctor_1")
|
||||
|
||||
await game.dialogue("We have your stuff back here, let me go grab it real quick...", "doctor_1")
|
||||
|
||||
|
||||
await game.dialogue("Here's your bag.", "doctor_1")
|
||||
|
||||
await game.dialogue("Should have everything - tablet, ship keys, a pistol...", "doctor_1")
|
||||
|
||||
game.get_node("DistantGunshots1").play()
|
||||
|
||||
await get_tree().create_timer(2).timeout
|
||||
|
||||
await game.dialogue("...the hell?", "doctor_1", false)
|
||||
|
||||
await get_tree().create_timer(1.5).timeout
|
||||
|
||||
game.get_node("IntrusionAlarm").play()
|
||||
|
||||
game.get_node("Map").modulate = Color(0.5, 0.35, 0.35)
|
||||
|
||||
await get_tree().create_timer(1).timeout
|
||||
|
||||
await game.dialogue("Oh, no.", "doctor_1", true)
|
||||
|
||||
await get_tree().create_timer(0.5).timeout
|
||||
|
||||
await game.dialogue("We need to leave. Now.", "doctor_1", true)
|
||||
|
||||
await get_tree().create_timer(0.5).timeout
|
||||
|
||||
$Camera.enabled = false
|
||||
player.get_node("Camera").enabled = true
|
||||
|
||||
player.busy = false
|
||||
|
||||
await game.dialogue("Follow me.", "doctor_1", false)
|
||||
|
||||
global.stats.mission_progress = 1
|
||||
|
||||
await navigate_to(game.get_node("DoctorEscapeWaypoint1").position)
|
||||
|
||||
while !game.get_node("DoctorEscapeWaypoint1/Area").get_overlapping_bodies().has(player): await get_tree().create_timer(0.2).timeout
|
||||
|
||||
player.busy = true
|
||||
|
||||
await game.dialogue("You good with that gun?", "doctor_1", true)
|
||||
|
||||
var option_2 = await game.make_choice({
|
||||
"yes": "Yes",
|
||||
"no": "No"
|
||||
})
|
||||
|
||||
if option_2 == "yes": await game.dialogue("Good to know.", "doctor_1", true)
|
||||
else: await game.dialogue("Well, you're still probably better than I would be.", "doctor_1", true)
|
||||
|
||||
global.stats.story_progress = 2
|
||||
|
||||
game.save_game()
|
||||
|
||||
checkpoint_1()
|
||||
|
||||
elif option == "no":
|
||||
await game.dialogue("Well, I'm here whenever you need me.", "doctor_1")
|
||||
|
||||
|
||||
player.get_node("Camera").enabled = true
|
||||
$Camera.enabled = false
|
||||
$InteractArea.monitoring = true
|
||||
|
||||
player.busy = false
|
||||
|
||||
return
|
||||
|
||||
|
||||
func checkpoint_1():
|
||||
$InteractArea.monitoring = false
|
||||
|
||||
var player = game.get_node("PlayerGround")
|
||||
|
||||
await game.dialogue("You should probably get it out.", "doctor_1", false)
|
||||
|
||||
player.busy = false
|
||||
|
||||
global.stats.equipped_ground_gun = "pistol"
|
||||
|
||||
game.get_node("UI/Control/UnholsterTutorial").visible = true
|
||||
|
||||
while global.stats.gun_holstered: await get_tree().create_timer(0.2).timeout
|
||||
|
||||
game.get_node("UI/Control/UnholsterTutorial").visible = false
|
||||
|
||||
await game.dialogue("Let's go.", "doctor_1", false)
|
||||
|
||||
game.checkpoint()
|
||||
|
||||
await navigate_to(game.get_node("DoctorEscapeWaypoint2").position)
|
||||
|
||||
while !game.get_node("DoctorEscapeWaypoint2/Area").get_overlapping_bodies().has(player): await get_tree().create_timer(0.2).timeout
|
||||
|
||||
game.get_node("Dnbd").play()
|
||||
game.get_node("IntrusionAlarm").stop()
|
||||
|
||||
await game.dialogue("OH GOD!", "doctor_1", false)
|
||||
|
||||
game.get_node("MedbayDoorLargeVertical").free()
|
||||
|
||||
vertical_movement = 0.1
|
||||
|
||||
game.get_node("Camper1/HeldItem").look_at(global_position)
|
||||
game.get_node("Camper2/HeldItem").look_at(global_position)
|
||||
|
||||
game.get_node("Camper1").firing = true
|
||||
await get_tree().create_timer(0.06).timeout
|
||||
game.get_node("Camper2").firing = true
|
||||
|
||||
|
||||
await game.dialogue("RUN!", "doctor_1", false)
|
||||
|
||||
global.stats.mission_progress = 2
|
||||
|
||||
while health > 0: await get_tree().create_timer(0.2).timeout
|
||||
|
||||
await game.end_dialogue()
|
||||
|
||||
game.get_node("Camper1").firing = false
|
||||
await get_tree().create_timer(0.06).timeout
|
||||
game.get_node("Camper2").firing = false
|
||||
|
||||
await get_tree().create_timer(0.333).timeout
|
||||
|
||||
game.get_node("Camper1").concious = true
|
||||
game.get_node("Camper2").concious = true
|
||||
|
||||
game.get_node("Camper3").global_position = game.get_node("CamperSpawn1").global_position
|
||||
game.get_node("Camper4").global_position = game.get_node("CamperSpawn2").global_position
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://mmptv0l2ahhh
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
extends "res://scripts/character_ground.gd"
|
||||
|
||||
@onready var game = get_parent()
|
||||
|
||||
func _ready() -> void:
|
||||
equipped_ground_gun = "docgun"
|
||||
|
||||
super()
|
||||
|
||||
health = 999
|
||||
|
||||
func _on_state_1_body_entered(body: Node2D) -> void:
|
||||
if body != game.get_node("PlayerGround"): return
|
||||
|
||||
global.stats.mission_progress = 3
|
||||
|
||||
game.get_node("HospitalEscapeD2State1").monitoring = false
|
||||
|
||||
print("test")
|
||||
|
||||
vertical_movement = -1
|
||||
horizontial_movement = -1
|
||||
|
||||
while global_position.y > -1376.0: await get_tree().create_timer(0.1).timeout
|
||||
|
||||
vertical_movement = 0
|
||||
horizontial_movement = 0
|
||||
|
||||
await game.dialogue("Get over here!", "doctor_2", false)
|
||||
|
||||
func _on_state_2_body_entered(body: Node2D) -> void:
|
||||
if body != game.get_node("PlayerGround"): return
|
||||
|
||||
game.get_node("HospitalEscapeD2State2").monitoring = false
|
||||
game.get_node("HospitalEscapeD2State2").queue_free()
|
||||
|
||||
firing = true
|
||||
|
||||
while game.get_node("Camper1").health > 0:
|
||||
$HeldItem.look_at(game.get_node("Camper1").global_position)
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
while game.get_node("Camper2").health > 0:
|
||||
$HeldItem.look_at(game.get_node("Camper2").global_position)
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
while game.get_node("Camper4").health > 0:
|
||||
$HeldItem.look_at(game.get_node("Camper4").global_position)
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
firing = false
|
||||
|
||||
await get_tree().create_timer(0.666).timeout
|
||||
|
||||
set_ground_gun(null)
|
||||
|
||||
game.get_node("Dnbd").playing = false
|
||||
game.get_node("IntrusionAlarm").play()
|
||||
|
||||
await game.dialogue("You need to go, now.", "doctor_2", true)
|
||||
|
||||
await navigate_to(game.get_node("Doctor2DoorWaypoint").global_position)
|
||||
|
||||
var player = game.get_node("PlayerGround")
|
||||
|
||||
if (global_position - player.global_position).length() > 200:
|
||||
await game.dialogue("Come.", "doctor_2", false)
|
||||
|
||||
while (global_position - player.global_position).length() > 200: await get_tree().create_timer(0.25).timeout
|
||||
|
||||
player.busy = true
|
||||
|
||||
await game.dialogue("Is the other doctor dead?", "doctor_2", false)
|
||||
|
||||
var option = await game.make_choice({
|
||||
"yes": "Yes",
|
||||
"no": "No"
|
||||
})
|
||||
|
||||
if option == "yes":
|
||||
await game.dialogue("Shit. I liked hating him.", "doctor_2", true)
|
||||
else:
|
||||
await game.dialogue("Damnit. Was hoping he was.", "doctor_2", true)
|
||||
|
||||
await game.dialogue("Anyways, there's probably some of those bastards in there, so be careful.", "doctor_2", true)
|
||||
|
||||
await game.dialogue("Your ship is on the first row, furthest to the left.", "doctor_2", false)
|
||||
|
||||
var option_2 = null
|
||||
|
||||
while option_2 != "got_it":
|
||||
option_2 = await game.make_choice({
|
||||
"whoarethey": "Who are they?",
|
||||
"whataboutyou": "What about you?",
|
||||
"got_it": "Got it",
|
||||
})
|
||||
|
||||
if option_2 == "whoarethey":
|
||||
await game.dialogue("Who are these people, anyways?", "player", true)
|
||||
|
||||
await game.dialogue("You don't know?... oh wait, that makes sense.", "doctor_2", true)
|
||||
await game.dialogue("Those guys are from HADA, the Humble Anarchist's Defense Alliance.", "doctor_2", true)
|
||||
await game.dialogue("Nasty people. They do a lot of things...", "doctor_2", true)
|
||||
await game.dialogue("but they also iketo try and destroy anything they see as a threat to their ideals.", "doctor_2", true)
|
||||
await game.dialogue("They almost never fully succeed, but that doesn't mean they don't leave a mark.", "doctor_2", true)
|
||||
elif option_2 == "whataboutyou":
|
||||
await game.dialogue("What are you going to do?", "player", true)
|
||||
|
||||
await game.dialogue("I will be camping it out.", "doctor_2", true)
|
||||
await game.dialogue("I live here. If I left all my stuff behind like this, I would hate myself.", "doctor_2", true)
|
||||
await game.dialogue("That's not something you should worry about excessively, though. You don't even know me.", "doctor_2", true)
|
||||
|
||||
global.stats.story_progress = 3
|
||||
|
||||
game.save_game()
|
||||
|
||||
checkpoint_2()
|
||||
|
||||
func checkpoint_2():
|
||||
game.get_node("Dnbd").playing = false
|
||||
game.get_node("IntrusionAlarm").play()
|
||||
|
||||
var player = game.get_node("PlayerGround")
|
||||
|
||||
player.busy = true
|
||||
|
||||
await game.dialogue("I wish you luck.", "doctor_2", true)
|
||||
|
||||
game.get_node("Dnbd").playing = true
|
||||
|
||||
player.health = 100
|
||||
|
||||
game.get_node("Camper5").global_position = game.get_node("CamperSpawn3").global_position
|
||||
game.get_node("Camper6").global_position = game.get_node("CamperSpawn4").global_position
|
||||
|
||||
player.busy = false
|
||||
|
||||
game.get_node("Doctor2DoorToOpen").set_open(true)
|
||||
|
||||
|
||||
|
||||
func _on_state_3_body_entered(body: Node2D) -> void:
|
||||
game.get_node("Doctor2DoorToOpen").set_open(false)
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://cytses4dvcif2
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
extends StaticBody2D
|
||||
|
||||
@export var open: bool = false
|
||||
|
||||
func set_open(value: bool) -> void:
|
||||
open = value
|
||||
if open:
|
||||
$CollisionShape.disabled = true
|
||||
$Sprite.animation = "open"
|
||||
|
||||
else:
|
||||
$CollisionShape.disabled = false
|
||||
$Sprite.animation = "default"
|
||||
|
||||
$Sprite.play()
|
||||
|
||||
func _ready() -> void:
|
||||
set_open(open)
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://b88ykyte6oi3i
|
||||
|
|
@ -3,6 +3,9 @@ extends "res://scripts/character_ground.gd"
|
|||
var last_aim_direction = Vector2(0, 0)
|
||||
var alerted = false
|
||||
|
||||
var inaccuracy = 15
|
||||
|
||||
var reaction_time = 0.35
|
||||
var reaction_halve_distance = 720
|
||||
var reaction_timer = 0
|
||||
|
||||
|
|
@ -26,26 +29,9 @@ var last_seen_player_position = null
|
|||
@onready var player = null
|
||||
var game = null
|
||||
|
||||
## The enemy's starting gun. Leave blank for no weapon
|
||||
@export var starting_gun: String = &"pistol"
|
||||
## The enemy's starting health.
|
||||
|
||||
@export var starting_health: int = 50
|
||||
## Is the enemy's AI enabled?
|
||||
@export var concious: bool = true
|
||||
## Will the enemy always chase the player?
|
||||
@export var always_sees_player: bool = false
|
||||
## The time it takes for an enemy to start shooting / notice the player.
|
||||
@export var reaction_time: float = 0.35
|
||||
## A path for the enemy to follow while idle.
|
||||
@export var points: Array[Node2D] = []
|
||||
## Time to wait between points while idle.
|
||||
@export var wait_time_between_points: int = 5
|
||||
|
||||
var current_node = null
|
||||
|
||||
var current_point = 0
|
||||
|
||||
@export var inaccuracy: int = 15
|
||||
|
||||
func _ready() -> void:
|
||||
super()
|
||||
|
|
@ -60,24 +46,16 @@ func _process(delta: float) -> void:
|
|||
if dead:
|
||||
$Detecting.stop()
|
||||
return
|
||||
|
||||
if !concious:
|
||||
$Detecting.stop()
|
||||
return
|
||||
|
||||
if !player:
|
||||
if game:
|
||||
player = game.get_node("PlayerGround")
|
||||
else: return
|
||||
|
||||
if always_sees_player:
|
||||
ai_mode = AI_MODE_ATTACK
|
||||
last_seen_player_position = player.global_position
|
||||
|
||||
if ai_mode == AI_MODE_IDLE:
|
||||
$LineOfSight.look_at(player.global_position)
|
||||
|
||||
if $LineOfSight.get_collider() && player.is_ancestor_of($LineOfSight.get_collider()):
|
||||
if player.is_ancestor_of($LineOfSight.get_collider()):
|
||||
var divider = clamp((player.global_position - global_position).length() / reaction_halve_distance, 1, 8) * 1.5
|
||||
reaction_timer += delta / divider
|
||||
|
||||
|
|
@ -96,24 +74,6 @@ func _process(delta: float) -> void:
|
|||
if reaction_timer < 0:
|
||||
reaction_timer = 0
|
||||
|
||||
|
||||
if points.size() > 0:
|
||||
if !current_node: current_node = points[0]
|
||||
|
||||
if $Navagent.is_navigation_finished():
|
||||
if points.find(current_node) + 1 > points.size() - 1:
|
||||
current_node = points[0]
|
||||
else:
|
||||
current_node = points[points.find(current_node) + 1]
|
||||
else:
|
||||
var next_position = $Navagent.get_next_path_position()
|
||||
next_position.y -= 32
|
||||
var axes = global_position.direction_to(next_position)
|
||||
|
||||
horizontial_movement = axes.x
|
||||
vertical_movement = axes.y
|
||||
|
||||
if !$Navagent.target_position or ($Navagent.target_position != current_node.position): $Navagent.target_position = current_node.position
|
||||
|
||||
elif ai_mode == AI_MODE_ATTACK:
|
||||
$Detecting.playing = false
|
||||
|
|
@ -159,8 +119,6 @@ func _process(delta: float) -> void:
|
|||
|
||||
last_seen_player_position = player.global_position
|
||||
elif ai_state == AI_STATE_CHASE_LAST_SEEN:
|
||||
firing = false
|
||||
|
||||
if $Navagent.is_navigation_finished():
|
||||
last_seen_player_position = null
|
||||
ai_mode = AI_MODE_IDLE
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
extends Sprite2D
|
||||
|
||||
@onready var game = get_owner()
|
||||
@export var active_mission_requirement: String = ""
|
||||
|
||||
func _on_enter_hitbox_body_entered(body: Node2D) -> void:
|
||||
if active_mission_requirement != "":
|
||||
if global.stats.active_mission != active_mission_requirement: return
|
||||
|
||||
if body.get_name() == "Player":
|
||||
game.enter_physical(get_name())
|
||||
|
|
|
|||
|
|
@ -62,8 +62,6 @@ func _interact(player: Node2D) -> void:
|
|||
await game.dialogue("Okay, your tank should be filled to 25%.")
|
||||
else:
|
||||
await game.dialogue("Sorry, but you don't have enough marks for that.")
|
||||
|
||||
game.save_game()
|
||||
|
||||
player.get_node("Camera").enabled = true
|
||||
$Camera.enabled = false
|
||||
|
|
|
|||
|
|
@ -11,20 +11,14 @@ var enemy_scene = preload("res://scenes/enemy.tscn")
|
|||
var star_scene = preload("res://scenes/star.tscn")
|
||||
|
||||
@onready var spawn_points = {
|
||||
"space_station_1": $Orbits/SpaceStation1/space_station_1/ExitPoint,
|
||||
"space_station_2": $Orbits/SpaceStation2/space_station_2/ExitPoint
|
||||
"SpaceStation1": $Orbits/SpaceStation1/SpaceStation1/ExitPoint
|
||||
}
|
||||
|
||||
@onready var navigation_points = [
|
||||
{
|
||||
"name": "Space Station 01",
|
||||
"name": "Space Station 1",
|
||||
"id": "ss1",
|
||||
"point": $Orbits/SpaceStation1/space_station_1
|
||||
},
|
||||
{
|
||||
"name": "Space Station 02",
|
||||
"id": "ss2",
|
||||
"point": $Orbits/SpaceStation2/space_station_2
|
||||
"point": $Orbits/SpaceStation1/SpaceStation1
|
||||
}
|
||||
]
|
||||
|
||||
|
|
@ -47,23 +41,6 @@ func world_to_chunk(position: Vector2) -> Vector2:
|
|||
func chunk_to_world(position: Vector2) -> Vector2:
|
||||
return Vector2(floori(position.x * 1024), floori(position.y * 1024))
|
||||
|
||||
## Saves the game.
|
||||
func save_game() -> void:
|
||||
$UI/Control/SaveIndicator.visible = true
|
||||
|
||||
global.stats.position = {
|
||||
"x": $Player.global_position.x,
|
||||
"y": $Player.global_position.y
|
||||
}
|
||||
|
||||
global.stats.location = "space"
|
||||
|
||||
global.save_game()
|
||||
|
||||
await get_tree().create_timer(2).timeout
|
||||
|
||||
$UI/Control/SaveIndicator.visible = false
|
||||
|
||||
func enter_physical(map):
|
||||
get_tree().paused = true
|
||||
|
||||
|
|
@ -83,8 +60,6 @@ func enter_physical(map):
|
|||
|
||||
global.stats.location = map
|
||||
|
||||
global.stats.position = null
|
||||
|
||||
get_tree().change_scene_to_file("res://scenes/ground.tscn")
|
||||
|
||||
|
||||
|
|
@ -93,6 +68,10 @@ func _ready() -> void:
|
|||
LimboConsole.register_command(summon_enemy, "summon_enemy", "Summons an enemy.")
|
||||
|
||||
var events = InputMap.action_get_events("forward")
|
||||
|
||||
if (global.stats.location != "space") and (spawn_points.has(global.stats.location)):
|
||||
$Player.global_position = spawn_points[global.stats.location].global_position
|
||||
$Player.rotation = spawn_points[global.stats.location].rotation
|
||||
|
||||
for n in navigation_points:
|
||||
var navigation_item = preload("res://scenes/navigation_item.tscn").instantiate()
|
||||
|
|
@ -102,14 +81,6 @@ func _ready() -> void:
|
|||
|
||||
$UI/Control/Navpanel/NavigationRoutes/Scroll/Box.add_child(navigation_item)
|
||||
|
||||
for n in global.contracts:
|
||||
var contract_item = preload("res://scenes/contract_item.tscn").instantiate()
|
||||
|
||||
contract_item.contract = n
|
||||
contract_item.game = self
|
||||
|
||||
$UI/Control/Navpanel/ContractsList/Scroll/Box.add_child(contract_item)
|
||||
|
||||
var i = 0
|
||||
while i < 1024 / 3:
|
||||
var star = star_scene.instantiate()
|
||||
|
|
@ -138,36 +109,14 @@ func _ready() -> void:
|
|||
$Stars.add_child(star)
|
||||
|
||||
i += 1
|
||||
|
||||
if (global.stats.location != "space") and (spawn_points.has(global.stats.location)):
|
||||
$Player.global_position = spawn_points[global.stats.location].global_position
|
||||
$Player.rotation = spawn_points[global.stats.location].rotation
|
||||
elif global.stats.position:
|
||||
$Player.global_position.x = global.stats.position.x
|
||||
$Player.global_position.y = global.stats.position.y
|
||||
|
||||
global.stats.position = null
|
||||
|
||||
global.stats.location = "space"
|
||||
|
||||
if global.stats.story_progress < 4: global.stats.story_progress = 4
|
||||
|
||||
if global.stats.loaded:
|
||||
save_game()
|
||||
else:
|
||||
global.stats.loaded = true
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if get_tree().paused:
|
||||
return
|
||||
|
||||
if global.stats.navigation_goal:
|
||||
if !global.stats.navigation_goal.point || (typeof(global.stats.navigation_goal.point) == TYPE_STRING):
|
||||
if global.stats.navigation_goal.id:
|
||||
for n in navigation_points:
|
||||
if n.id == global.stats.navigation_goal.id:
|
||||
global.stats.navigation_goal.point = n.point
|
||||
break
|
||||
if not global.stats.navigation_goal.point:
|
||||
global.stats.navigation_goal = null
|
||||
else:
|
||||
if !$Navring.has_node("NavigationMarker"):
|
||||
var navigation_marker = preload("res://scenes/navigation_marker.tscn").instantiate()
|
||||
|
|
@ -189,10 +138,9 @@ func _process(delta: float) -> void:
|
|||
|
||||
$UI/Control/Navpanel/Navigation/Hyperboost.visible = true
|
||||
|
||||
if global.stats.navigation_goal.point and (typeof(global.stats.navigation_goal.point) != TYPE_STRING):
|
||||
var goal_distance = (global.stats.navigation_goal.point.position - $Player.position).length()
|
||||
var goal_distance = (global.stats.navigation_goal.point.position - $Player.position).length()
|
||||
|
||||
$UI/Control/Navpanel/Navigation/Destination.text = global.stats.navigation_goal.name + " (" + str(floori(goal_distance)) + "u)"
|
||||
$UI/Control/Navpanel/Navigation/Destination.text = global.stats.navigation_goal.name + " (" + str(floori(goal_distance)) + "u)"
|
||||
else:
|
||||
if $Navring.has_node("NavigationMarker"):
|
||||
$Navring.get_node("NavigationMarker").queue_free()
|
||||
|
|
@ -303,8 +251,6 @@ func _set_navpanel_menu(menu: String) -> void:
|
|||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("pause"):
|
||||
$UiSelect.play()
|
||||
|
||||
$UI/Control/PauseMenu.visible = true
|
||||
|
||||
$UI/Control/PauseMenu/Panel/Flow/Resume.grab_focus()
|
||||
|
|
@ -327,8 +273,6 @@ func _input(event: InputEvent) -> void:
|
|||
|
||||
if ($UI/Control/Navpanel/NavigationRoutes.visible) or ($UI/Control/Navpanel/NavigationHyperboost.visible):
|
||||
_set_navpanel_menu("Navigation")
|
||||
elif $UI/Control/Navpanel/ContractsList.visible:
|
||||
_set_navpanel_menu("Contracts")
|
||||
elif $UI/Control/Navpanel/Start.visible:
|
||||
$UI/Control/Navpanel.visible = false
|
||||
else:
|
||||
|
|
@ -370,15 +314,6 @@ func _navigation_item_pressed(goal) -> void:
|
|||
$UiSelect.play()
|
||||
_set_navpanel_menu("Navigation")
|
||||
|
||||
func _contracts_item_pressed(contract) -> void:
|
||||
if global.stats.active_mission: return
|
||||
|
||||
global.stats.active_mission = contract
|
||||
global.stats.mission_progress = 0
|
||||
|
||||
$UiSelect.play()
|
||||
_set_navpanel_menu("Contracts")
|
||||
|
||||
|
||||
func _on_navigation_back_pressed() -> void:
|
||||
$UiBack.play()
|
||||
|
|
@ -394,15 +329,3 @@ func _on_enable_hyperboost_pressed() -> void:
|
|||
$UiSelect.play()
|
||||
_set_navpanel_menu("Navigation")
|
||||
$Player.hyperboosting = true
|
||||
|
||||
func _on_new_contract_pressed() -> void:
|
||||
$UiSelect.play()
|
||||
_set_navpanel_menu("ContractsList")
|
||||
|
||||
func _on_contracts_pressed() -> void:
|
||||
$UiSelect.play()
|
||||
_set_navpanel_menu("Contracts")
|
||||
|
||||
func _on_contracts_back_pressed() -> void:
|
||||
$UiBack.play()
|
||||
_set_navpanel_menu("Contracts")
|
||||
|
|
|
|||
|
|
@ -18,37 +18,10 @@ var dialogue_speed = {
|
|||
"player_woozy": 0.2,
|
||||
}
|
||||
|
||||
func save_game() -> void:
|
||||
$UI/Control/SaveIndicator.visible = true
|
||||
|
||||
global.stats.position = {
|
||||
"x": $PlayerGround.global_position.x,
|
||||
"y": $PlayerGround.global_position.y
|
||||
}
|
||||
|
||||
global.save_game()
|
||||
|
||||
await get_tree().create_timer(2).timeout
|
||||
|
||||
$UI/Control/SaveIndicator.visible = false
|
||||
|
||||
func checkpoint() -> void:
|
||||
var packed_scene = PackedScene.new()
|
||||
packed_scene.pack(get_tree().get_current_scene())
|
||||
|
||||
global.checkpoint = packed_scene
|
||||
|
||||
func give_ground_gun(string: String) -> void:
|
||||
global.stats.equipped_ground_gun = string
|
||||
|
||||
func _ready() -> void:
|
||||
$UI/Control/Dialogue.visible = false
|
||||
|
||||
LimboConsole.register_command(give_ground_gun, "give_ground_gun", "Gives a gun for ground mode")
|
||||
|
||||
print(global.stats.location)
|
||||
|
||||
var location_scene = load("res://scenes/locations/" + global.stats.location + ".tscn").instantiate()
|
||||
var location_scene = load("res://scenes/locations/space_station_1.tscn").instantiate()
|
||||
|
||||
for n in location_scene.get_children():
|
||||
location_scene.remove_child(n)
|
||||
|
|
@ -67,20 +40,6 @@ func _ready() -> void:
|
|||
n._ground_ready()
|
||||
|
||||
location_scene.free()
|
||||
|
||||
if global.stats.position:
|
||||
print("AAA ", global.stats.position)
|
||||
$PlayerGround.global_position.x = global.stats.position.x
|
||||
$PlayerGround.global_position.y = global.stats.position.y
|
||||
|
||||
global.stats.position = null
|
||||
else:
|
||||
$PlayerGround.global_position = $PlayerSpawn.global_position
|
||||
|
||||
if global.stats.loaded:
|
||||
save_game()
|
||||
else:
|
||||
global.stats.loaded = true
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if current_interaction_area:
|
||||
|
|
@ -175,15 +134,5 @@ func set_vignette_parameter(name: String, value: float) -> void:
|
|||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_released("dialogue_continue"):
|
||||
dialogue_continue.emit()
|
||||
if event.is_action_pressed("pause"):
|
||||
$UiSelect.play()
|
||||
|
||||
$UI/Control/PauseMenu.visible = true
|
||||
|
||||
$UI/Control/PauseMenu/Panel/Flow/Resume.grab_focus()
|
||||
|
||||
get_tree().paused = true
|
||||
|
||||
func _exit_tree() -> void:
|
||||
LimboConsole.unregister_command(give_ground_gun)
|
||||
dialogue_continue.emit()
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ func _ready() -> void:
|
|||
load_settings()
|
||||
|
||||
LimboConsole.register_command(set_story_progress, "set_story_progress", "Sets the current story_progress variable")
|
||||
LimboConsole.register_command(set_active_mission, "set_active_mission", "Sets the current active_mission variable")
|
||||
|
||||
var ground_location = null
|
||||
|
||||
|
|
@ -29,69 +28,16 @@ var orbit_zones = [
|
|||
|
||||
]
|
||||
|
||||
var missions = {
|
||||
"waking_up": {
|
||||
"id": "waking_up",
|
||||
"name": "Waking Up",
|
||||
"desc": "Welcome back, spaceperson.",
|
||||
"rewards": {
|
||||
"marks": 500
|
||||
},
|
||||
"objectives": {
|
||||
"desk": "Visit the doctor at their desk",
|
||||
"follow": "Follow the doctor",
|
||||
"run": "My suggestion: RUN!",
|
||||
"escape": "Escape to your ship"
|
||||
}
|
||||
},
|
||||
"test_contract": {
|
||||
"id": "test_contract",
|
||||
"name": "HEMA Removal",
|
||||
"desc": "Space station 02 is currently overrun with HEMA mercenaries. We know they have a bomb in the storage warehouse. We want someone to plant that bomb on the station.",
|
||||
"rewards": {
|
||||
"marks": 500
|
||||
},
|
||||
"objectives": {
|
||||
"arrive": "Enter Space Station 02 (navigate to it via your navagent)",
|
||||
"collect_bomb": "Collect the bomb in the back room",
|
||||
"plant_bomb": "Plant the bomb in the main foyer",
|
||||
"escape": "Escape"
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
var contracts = [ "test_contract" ]
|
||||
|
||||
var ground_guns = {
|
||||
"pistol": {
|
||||
"name": "Oni",
|
||||
"type": "kinetic",
|
||||
"type": "energy",
|
||||
"damage": 10,
|
||||
"magazine_size": 12,
|
||||
"fire_rate": 0.3
|
||||
},
|
||||
"docgun": {
|
||||
"name": "Docgun",
|
||||
"type": "kinetic",
|
||||
"damage": 150,
|
||||
"magazine_size": 12,
|
||||
"fire_rate": 0.25
|
||||
},
|
||||
"smg": {
|
||||
"name": "Ripper",
|
||||
"type": "energy",
|
||||
"damage": 8,
|
||||
"magazine_size": 24,
|
||||
"fire_rate": 1.0/6.0
|
||||
}
|
||||
}
|
||||
|
||||
var checkpoint = null
|
||||
|
||||
func load_checkpoint():
|
||||
if checkpoint:
|
||||
get_tree().change_scene_to_packed(checkpoint)
|
||||
|
||||
func generate_save():
|
||||
var save_dict = {
|
||||
"stats": stats
|
||||
|
|
@ -128,7 +74,8 @@ func load_game():
|
|||
print("JSON Parse Error: ", json.get_error_message(), " in ", parse_result, " at line ", json.get_error_line())
|
||||
return
|
||||
|
||||
if json.data.stats: stats = json.data.stats
|
||||
if json.data.settings: settings = json.data.settings
|
||||
if json.data.stats: settings = json.data.stats
|
||||
|
||||
func load_settings():
|
||||
if not FileAccess.file_exists("user://settings.json"):
|
||||
|
|
@ -151,28 +98,20 @@ func delete_game():
|
|||
|
||||
func set_story_progress(value: int) -> void:
|
||||
stats.story_progress = value
|
||||
|
||||
func set_active_mission(value = null) -> void:
|
||||
stats.active_mission = value
|
||||
|
||||
var default_stats = {
|
||||
"loaded": false,
|
||||
"fuel": 75,
|
||||
"fuel": 12,
|
||||
"fuel_tank_size": 1,
|
||||
"speed": 512,
|
||||
"boost_tank_size": 1,
|
||||
"marks": 200,
|
||||
"location": "space_station_1",
|
||||
"position": Vector2(),
|
||||
"rotation": 0,
|
||||
"story_progress": 0,
|
||||
"location": "space",
|
||||
"ship_position": Vector2(),
|
||||
"ship_rotation": 0,
|
||||
"story_progress": 1,
|
||||
"navigation_goal": null,
|
||||
"equipped_ground_gun": null,
|
||||
"gun_holstered": true,
|
||||
|
||||
"active_mission": null,
|
||||
"mission_progress": 0,
|
||||
"completed_missions": [],
|
||||
"equipped_ground_gun": "pistol"
|
||||
}
|
||||
|
||||
var stats = default_stats.duplicate_deep()
|
||||
|
|
|
|||
|
|
@ -4,13 +4,9 @@ extends Area2D
|
|||
var game = null
|
||||
|
||||
func _on_body_entered(body: Node2D) -> void:
|
||||
if !game: return
|
||||
|
||||
if (body.get_name() == "PlayerGround") or (game.get_node("PlayerGround").is_ancestor_of(body)):
|
||||
if body.get_name() == "PlayerGround":
|
||||
game.current_interaction_area = self
|
||||
|
||||
func _on_body_exited(body: Node2D) -> void:
|
||||
if !game: return
|
||||
|
||||
if (body.get_name() == "PlayerGround") or (game.get_node("PlayerGround").is_ancestor_of(body)):
|
||||
if body.get_name() == "PlayerGround":
|
||||
if game.current_interaction_area == self: game.current_interaction_area = null
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
extends VBoxContainer
|
||||
|
||||
var last_mission_progres = -1
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if global.stats.active_mission:
|
||||
visible = true
|
||||
|
||||
var mission = global.missions[global.stats.active_mission]
|
||||
|
||||
if last_mission_progres != global.stats.mission_progress:
|
||||
last_mission_progres = global.stats.mission_progress
|
||||
|
||||
|
||||
if mission.objectives.values().size() - 1 < global.stats.mission_progress:
|
||||
global.stats.completed_missions.push_front(global.stats.active_mission)
|
||||
global.stats.mission_progress = 0
|
||||
global.stats.active_mission = null
|
||||
|
||||
return
|
||||
|
||||
$Label.text = mission.name
|
||||
$Label2.text = "- " + mission.objectives.values()[global.stats.mission_progress]
|
||||
else:
|
||||
visible = false
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://ceua7bjh8xokf
|
||||
|
|
@ -3,7 +3,5 @@ extends Sprite2D
|
|||
@export var destination: Node2D = null
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if !destination: return
|
||||
|
||||
look_at(destination.global_position)
|
||||
rotation += deg_to_rad(90)
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
extends Label
|
||||
|
||||
var progress = 1
|
||||
var hiding = false
|
||||
|
||||
func _ready() -> void:
|
||||
$AnimationPlayer.play("show")
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if hiding: return
|
||||
|
||||
if global.stats.mission_progress >= progress:
|
||||
hiding = true
|
||||
|
||||
$AnimationPlayer.play("hide")
|
||||
|
||||
await $AnimationPlayer.animation_finished
|
||||
|
||||
queue_free()
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://wd3la6kvbm6e
|
||||
|
|
@ -3,8 +3,6 @@ extends Panel
|
|||
@onready var game = get_parent().get_parent().get_parent()
|
||||
|
||||
func _resume() -> void:
|
||||
$UiBack.play()
|
||||
|
||||
while Input.is_action_pressed("pause"):
|
||||
await get_tree().create_timer(0).timeout
|
||||
|
||||
|
|
@ -16,25 +14,5 @@ func _on_resume_pressed() -> void:
|
|||
_resume()
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("pause"):
|
||||
if $Settings.visible:
|
||||
# This is probably no good!
|
||||
$Settings._on_back_pressed()
|
||||
|
||||
$Settings.visible = false
|
||||
$Panel/Flow/Resume.grab_focus()
|
||||
elif visible:
|
||||
_resume()
|
||||
|
||||
|
||||
func _on_settings_pressed() -> void:
|
||||
if visible:
|
||||
$UiSelect.play()
|
||||
$Settings.visible = true
|
||||
$Settings/Scroll/Flow/Back.grab_focus()
|
||||
|
||||
func _on_settings_back_pressed() -> void:
|
||||
if visible:
|
||||
$UiBack.play()
|
||||
$Settings.visible = false
|
||||
$Panel/Flow/Resume.grab_focus()
|
||||
if event.is_action_pressed("pause"): _resume()
|
||||
|
|
|
|||
|
|
@ -1,31 +1,15 @@
|
|||
extends "res://scripts/character_ground.gd"
|
||||
|
||||
var last_aim_direction = Vector2(0, 0)
|
||||
var processing_death = false
|
||||
|
||||
func _ready() -> void:
|
||||
super()
|
||||
|
||||
if global.stats.gun_holstered:
|
||||
set_ground_gun(null)
|
||||
else:
|
||||
set_ground_gun(global.stats.equipped_ground_gun)
|
||||
set_ground_gun(global.stats.equipped_ground_gun)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
super(delta)
|
||||
|
||||
if dead:
|
||||
if processing_death: return
|
||||
|
||||
processing_death = true
|
||||
|
||||
await get_tree().create_timer(1).timeout
|
||||
|
||||
if global.checkpoint:
|
||||
global.load_game()
|
||||
get_tree().change_scene_to_file("res://scenes/ground.tscn")
|
||||
return
|
||||
|
||||
if input_icon.using_gamepad:
|
||||
if !((Input.get_axis("aim_left", "aim_right") == 0) and (Input.get_axis("aim_up", "aim_down") == 0)):
|
||||
$HeldItem.rotation = Vector2(
|
||||
|
|
@ -52,19 +36,5 @@ func _process(delta: float) -> void:
|
|||
else:
|
||||
$HeldItem/Crosshair.visible = false
|
||||
$HeldItem/Line.visible = false
|
||||
|
||||
if Input.is_action_just_pressed("toggle_holster"):
|
||||
if global.stats.equipped_ground_gun:
|
||||
global.stats.gun_holstered = !global.stats.gun_holstered
|
||||
|
||||
if global.stats.gun_holstered:
|
||||
set_ground_gun(null)
|
||||
else:
|
||||
set_ground_gun(global.stats.equipped_ground_gun)
|
||||
else:
|
||||
global.stats.gun_holstered = true
|
||||
|
||||
set_ground_gun(null)
|
||||
|
||||
|
||||
firing = Input.is_action_pressed("fire")
|
||||
|
|
|
|||
33
scripts/player_ground_v2.gd
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
## Is the player busy in an interaction?
|
||||
var busy = false
|
||||
|
||||
func _ready() -> void:
|
||||
$Sprite.play()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if "_process_2" in self: _process_2(delta)
|
||||
|
||||
var horizontial_movement = Input.get_axis("ground_left", "ground_right")
|
||||
var vertical_movement = Input.get_axis("ground_up", "ground_down")
|
||||
|
||||
if busy:
|
||||
velocity = Vector2()
|
||||
else:
|
||||
velocity = Vector2(256 * horizontial_movement, 256 * vertical_movement)
|
||||
|
||||
if horizontial_movement > 0.1:
|
||||
$Sprite.scale.x = -2
|
||||
if horizontial_movement < -0.1:
|
||||
$Sprite.scale.x = 2
|
||||
|
||||
if velocity.length() > 8:
|
||||
$Sprite.animation = "walk"
|
||||
if abs(horizontial_movement) > abs(vertical_movement): $Sprite.speed_scale = abs(horizontial_movement)
|
||||
else: $Sprite.speed_scale = abs(vertical_movement)
|
||||
else:
|
||||
$Sprite.animation = "idle"
|
||||
|
||||
|
||||
move_and_slide()
|
||||
1
scripts/player_ground_v2.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b6xubbxfsaqby
|
||||
|
|
@ -9,19 +9,19 @@ func _on_master_volume_value_changed(value: float) -> void:
|
|||
global.settings.master_volume = value
|
||||
$Scroll/Flow/Flow2/MasterVolume/Label.text = str(floori(value * 100)) + "%"
|
||||
AudioServer.set_bus_volume_linear(0, value)
|
||||
$UiSelect.play()
|
||||
|
||||
|
||||
func _on_music_volume_value_changed(value: float) -> void:
|
||||
global.settings.music_volume = value
|
||||
$Scroll/Flow/Flow3/MusicVolume/Label.text = str(floori(value * 100)) + "%"
|
||||
AudioServer.set_bus_volume_linear(1, value)
|
||||
$UiSelect.play()
|
||||
|
||||
|
||||
func _on_sfx_volume_value_changed(value: float) -> void:
|
||||
global.settings.sfx_volume = value
|
||||
$Scroll/Flow/Flow4/SFXVolume/Label.text = str(floori(value * 100)) + "%"
|
||||
AudioServer.set_bus_volume_linear(2, value)
|
||||
$UiSelect.play()
|
||||
|
||||
|
||||
func _on_back_pressed() -> void:
|
||||
global.save_settings()
|
||||
|
|
|
|||
|
|
@ -188,59 +188,13 @@ func _ground_ready() -> void:
|
|||
|
||||
await game.dialogue("When you're feeling ready, I'll be at the end of the hall.", "doctor_1")
|
||||
|
||||
await game.get_node("Doctor").navigate_to(game.get_node("DoctorHallWaypoint").position)
|
||||
|
||||
game.get_node("Doctor").global_position = game.get_node("DoctorDeskWaypoint").position
|
||||
|
||||
global.stats.story_progress = 1
|
||||
|
||||
player.busy = false
|
||||
|
||||
global.stats.active_mission = "waking_up"
|
||||
|
||||
game.get_node("UI/Control/MoveTutorial").visible = true
|
||||
|
||||
while i < 100:
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
game.set_vignette_parameter("softness", i * 0.04)
|
||||
|
||||
i += 2
|
||||
|
||||
while player.velocity.length() == 0:
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
|
||||
game.get_node("UI/Control/MoveTutorial").visible = false
|
||||
|
||||
elif global.stats.story_progress == 1:
|
||||
pass
|
||||
elif global.stats.story_progress == 2:
|
||||
print("PROGRESS 2")
|
||||
game.get_node("Uglyburger").stop()
|
||||
|
||||
game.get_node("IntrusionAlarm").play()
|
||||
|
||||
game.get_node("Map").modulate = Color(0.5, 0.35, 0.35)
|
||||
|
||||
game.get_node("Doctor/InteractArea").monitoring = false
|
||||
|
||||
#player.global_position = game.get_node("Checkpoint1PlayerSpawn").global_position
|
||||
game.get_node("Doctor").global_position = game.get_node("Checkpoint1DoctorSpawn").global_position
|
||||
|
||||
game.get_node("Doctor").checkpoint_1()
|
||||
elif global.stats.story_progress == 3:
|
||||
print("PROGRESS 3")
|
||||
game.get_node("Uglyburger").stop()
|
||||
|
||||
game.get_node("HospitalEscapeD2State1").monitoring = false
|
||||
game.get_node("HospitalEscapeD2State2").monitoring = false
|
||||
|
||||
game.get_node("Map").modulate = Color(0.5, 0.35, 0.35)
|
||||
|
||||
game.get_node("Doctor").queue_free()
|
||||
|
||||
game.get_node("Doctor2").global_position = game.get_node("Doctor2DoorWaypoint").global_position
|
||||
|
||||
game.get_node("Doctor2").firing = false
|
||||
|
||||
game.get_node("Doctor2").checkpoint_2()
|
||||
|
|
|
|||
133
scripts/title.gd
|
|
@ -103,7 +103,7 @@ func _on_credits_pressed() -> void:
|
|||
func _on_exit_credits_pressed() -> void:
|
||||
if transitioning: return
|
||||
|
||||
$UiBack.play()
|
||||
$UiSelect.play()
|
||||
|
||||
transitioning = true
|
||||
|
||||
|
|
@ -174,7 +174,7 @@ func _on_settings_pressed() -> void:
|
|||
func _on_settings_back_pressed() -> void:
|
||||
if transitioning: return
|
||||
|
||||
$UiBack.play()
|
||||
$UiSelect.play()
|
||||
|
||||
transitioning = true
|
||||
|
||||
|
|
@ -216,20 +216,18 @@ func _on_new_game_pressed() -> void:
|
|||
transitioning = true
|
||||
|
||||
get_viewport().gui_release_focus()
|
||||
var i = 0
|
||||
|
||||
|
||||
if FileAccess.file_exists("user://savegame.save"):
|
||||
var i = 0
|
||||
|
||||
while i < 6:
|
||||
$UI/Control/Title.modulate.a -= 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/Title.visible = false
|
||||
while i < 6:
|
||||
$UI/Control/Title.modulate.a -= 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/Title.visible = false
|
||||
|
||||
if global.stats.loaded:
|
||||
$UI/Control/OverrideSave.visible = true
|
||||
|
||||
$UI/Control/OverrideSave.modulate.a = 0
|
||||
|
|
@ -244,117 +242,10 @@ func _on_new_game_pressed() -> void:
|
|||
i += 1
|
||||
|
||||
$UI/Control/OverrideSave/Buttons/NoOverride.grab_focus()
|
||||
|
||||
transitioning = false
|
||||
|
||||
return
|
||||
else:
|
||||
var i = 0
|
||||
|
||||
while i < 6:
|
||||
$UI/Control/Title.modulate.a -= 0.2
|
||||
$Stars.modulate.a -= 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/Title.visible = false
|
||||
|
||||
if global.stats.location == "space":
|
||||
get_tree().change_scene_to_file("res://scenes/game.tscn")
|
||||
else:
|
||||
get_tree().change_scene_to_file("res://scenes/ground.tscn")
|
||||
|
||||
func _on_load_game_pressed() -> void:
|
||||
if transitioning: return
|
||||
|
||||
$UiSelect.play()
|
||||
|
||||
transitioning = true
|
||||
|
||||
get_viewport().gui_release_focus()
|
||||
var i = 0
|
||||
|
||||
while i < 6:
|
||||
$UI/Control/Title.modulate.a -= 0.2
|
||||
$Stars.modulate.a -= 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/Title.visible = false
|
||||
|
||||
await global.load_game()
|
||||
|
||||
global.stats.loaded = false
|
||||
|
||||
if global.stats.location == "space":
|
||||
get_tree().change_scene_to_file("res://scenes/game.tscn")
|
||||
else:
|
||||
get_tree().change_scene_to_file("res://scenes/ground.tscn")
|
||||
|
||||
|
||||
func _on_yes_override_pressed() -> void:
|
||||
if transitioning: return
|
||||
|
||||
$UiSelect.play()
|
||||
|
||||
transitioning = true
|
||||
|
||||
get_viewport().gui_release_focus()
|
||||
var i = 0
|
||||
|
||||
while i < 6:
|
||||
$UI/Control/OverrideSave.modulate.a -= 0.2
|
||||
$Stars.modulate.a -= 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/OverrideSave.visible = false
|
||||
|
||||
global.stats = global.default_stats.duplicate_deep()
|
||||
|
||||
if global.stats.location == "space":
|
||||
get_tree().change_scene_to_file("res://scenes/game.tscn")
|
||||
else:
|
||||
get_tree().change_scene_to_file("res://scenes/ground.tscn")
|
||||
|
||||
|
||||
func _on_no_override_pressed() -> void:
|
||||
if transitioning: return
|
||||
|
||||
$UiBack.play()
|
||||
|
||||
transitioning = true
|
||||
|
||||
get_viewport().gui_release_focus()
|
||||
var i = 0
|
||||
|
||||
while i < 6:
|
||||
$UI/Control/OverrideSave.modulate.a -= 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/OverrideSave.visible = false
|
||||
$UI/Control/Title.visible = true
|
||||
|
||||
$UI/Control/Title.modulate.a = 0
|
||||
|
||||
i = 0
|
||||
|
||||
while i < 6:
|
||||
$UI/Control/Title.modulate.a += 0.2
|
||||
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
|
||||
i += 1
|
||||
|
||||
$UI/Control/Title/Buttons/NewGame.grab_focus()
|
||||
|
||||
transitioning = false
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://f6l56kvndidj"
|
||||
path="res://.godot/imported/background_gunshots.mp3-9d148338da2f4c84e6a101a6a8dec405.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sounds/background_gunshots.mp3"
|
||||
dest_files=["res://.godot/imported/background_gunshots.mp3-9d148338da2f4c84e6a101a6a8dec405.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://c13fyse8fxmio"
|
||||
path="res://.godot/imported/intrusion_alarm.mp3-9e530e5459da68390295ed718d582217.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sounds/intrusion_alarm.mp3"
|
||||
dest_files=["res://.godot/imported/intrusion_alarm.mp3-9e530e5459da68390295ed718d582217.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://cqco8ncle0u0j"
|
||||
path="res://.godot/imported/dnbd.mp3-c371aef019a254e92edc32d9620186a2.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sounds/music/dnbd.mp3"
|
||||
dest_files=["res://.godot/imported/dnbd.mp3-c371aef019a254e92edc32d9620186a2.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://7cvp5b3mq1tn"
|
||||
path="res://.godot/imported/dnbd_sudden.mp3-154358d4b626b7474adf08b4244e8089.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sounds/music/dnbd_sudden.mp3"
|
||||
dest_files=["res://.godot/imported/dnbd_sudden.mp3-154358d4b626b7474adf08b4244e8089.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
BIN
sounds/yay.mp3
|
|
@ -1,19 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://b5tvttwjwgpb1"
|
||||
path="res://.godot/imported/yay.mp3-25ed624d349ce4768f62d6fb0b734c96.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sounds/yay.mp3"
|
||||
dest_files=["res://.godot/imported/yay.mp3-25ed624d349ce4768f62d6fb0b734c96.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
39
test_fluid.tscn
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cmp1bhx77d1j5"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d4kq5akkly15i" path="res://addons/godot-rapier2d/faucet_2d.gd" id="1_dv1o8"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lv57a"]
|
||||
size = Vector2(404, 20)
|
||||
|
||||
[sub_resource type="FluidEffect2DSurfaceTensionAKINCI" id="FluidEffect2DSurfaceTensionAKINCI_dv1o8"]
|
||||
fluid_tension_coefficient = 100.0
|
||||
|
||||
[node name="TestFluid" type="Node2D"]
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
position = Vector2(591, 545)
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2(29, 0)
|
||||
shape = SubResource("RectangleShape2D_lv57a")
|
||||
|
||||
[node name="CollisionShape2D2" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2(-191, -134)
|
||||
rotation = 1.2401063
|
||||
shape = SubResource("RectangleShape2D_lv57a")
|
||||
|
||||
[node name="CollisionShape2D3" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2(258, -172)
|
||||
rotation = -1.3760309
|
||||
shape = SubResource("RectangleShape2D_lv57a")
|
||||
|
||||
[node name="Fluid2D" type="Fluid2D" parent="."]
|
||||
debug_draw = true
|
||||
density = 1000.0
|
||||
effects = Array[Resource]([SubResource("FluidEffect2DSurfaceTensionAKINCI_dv1o8")])
|
||||
position = Vector2(653, -76)
|
||||
script = ExtResource("1_dv1o8")
|
||||
interval = 0.1
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
position = Vector2(591, 323)
|
||||
BIN
textures/bag.png
|
Before Width: | Height: | Size: 266 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://oh8y7lbiprs4"
|
||||
path="res://.godot/imported/bag.png-1d3569746a0afa7a50020e78aeb3fcf6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/bag.png"
|
||||
dest_files=["res://.godot/imported/bag.png-1d3569746a0afa7a50020e78aeb3fcf6.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
|
||||
|
Before Width: | Height: | Size: 237 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bahp733iqv2us"
|
||||
path="res://.godot/imported/desk.png-569ac858ccfa866c549921982f2d651c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/desk.png"
|
||||
dest_files=["res://.godot/imported/desk.png-569ac858ccfa866c549921982f2d651c.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
|
||||
|
Before Width: | Height: | Size: 451 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://kg37aadtiumw"
|
||||
path="res://.godot/imported/docgun.png-7020161270f57741a5c61a0720a68af0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/docgun.png"
|
||||
dest_files=["res://.godot/imported/docgun.png-7020161270f57741a5c61a0720a68af0.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
|
||||
|
Before Width: | Height: | Size: 284 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://iim42wat824h"
|
||||
path="res://.godot/imported/door_large_horizontial.png-be3fcc0a643e3e0a242a5070b84d40a0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/door_large_horizontial.png"
|
||||
dest_files=["res://.godot/imported/door_large_horizontial.png-be3fcc0a643e3e0a242a5070b84d40a0.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
|
||||
|
Before Width: | Height: | Size: 208 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b0c5hws6ki8p5"
|
||||
path="res://.godot/imported/door_large_vertical.png-63c570800cfc026639fdfc69bb1882e3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/door_large_vertical.png"
|
||||
dest_files=["res://.godot/imported/door_large_vertical.png-63c570800cfc026639fdfc69bb1882e3.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
|
||||
|
Before Width: | Height: | Size: 779 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://djmlhid6f4xwi"
|
||||
path="res://.godot/imported/door_medium_horziontial.png-60b5ecd0bd81d95adb1ce6c5aa367884.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/door_medium_horziontial.png"
|
||||
dest_files=["res://.godot/imported/door_medium_horziontial.png-60b5ecd0bd81d95adb1ce6c5aa367884.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
|
||||
|
Before Width: | Height: | Size: 215 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bgui3ranlk441"
|
||||
path="res://.godot/imported/locker.png-291655332e65b890583d6d9343e4a2f5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/locker.png"
|
||||
dest_files=["res://.godot/imported/locker.png-291655332e65b890583d6d9343e4a2f5.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
|
||||
|
Before Width: | Height: | Size: 224 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cwa4uu7hrw2l0"
|
||||
path="res://.godot/imported/save_indicator.png-9ea36dce7f4f02849ef94f4ba75ec5ee.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/save_indicator.png"
|
||||
dest_files=["res://.godot/imported/save_indicator.png-9ea36dce7f4f02849ef94f4ba75ec5ee.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
|
||||
BIN
textures/smg.png
|
Before Width: | Height: | Size: 481 B |
|
|
@ -1,40 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dk5ctkygv2n0i"
|
||||
path="res://.godot/imported/smg.png-6e5b1b02de92e8359738de08c577925f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://textures/smg.png"
|
||||
dest_files=["res://.godot/imported/smg.png-6e5b1b02de92e8359738de08c577925f.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
|
||||