Compare commits

...

8 Commits

72 changed files with 1107 additions and 5335 deletions

1
.gitattributes vendored
View File

@ -10,3 +10,4 @@
*.gltf filter=lfs diff=lfs merge=lfs -text *.gltf filter=lfs diff=lfs merge=lfs -text
*.res filter=lfs diff=lfs merge=lfs -text *.res filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text *.ttf filter=lfs diff=lfs merge=lfs -text
assets/props/posters/three_d_design.png filter=lfs diff=lfs merge=lfs -text

BIN
assets/audio/env/buzzer_correct.wav (Stored with Git LFS) vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dd8yivlir4hat"
path="res://.godot/imported/buzzer_correct.wav-a792e451afd4d65aa55ada1736ad630b.sample"
[deps]
source_file="res://assets/audio/env/buzzer_correct.wav"
dest_files=["res://.godot/imported/buzzer_correct.wav-a792e451afd4d65aa55ada1736ad630b.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
assets/audio/env/buzzer_wrong.wav (Stored with Git LFS) vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cch7qvsk0gngt"
path="res://.godot/imported/buzzer_wrong.wav-14db855656c8913c7c25effa9684a485.sample"
[deps]
source_file="res://assets/audio/env/buzzer_wrong.wav"
dest_files=["res://.godot/imported/buzzer_wrong.wav-14db855656c8913c7c25effa9684a485.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

10
assets/audio/env/wage_increase.tres vendored Normal file
View File

@ -0,0 +1,10 @@
[gd_resource type="AudioStreamRandomizer" load_steps=2 format=3 uid="uid://yy14fup8b4pu"]
[ext_resource type="AudioStream" uid="uid://dmv0xdrcjlky6" path="res://assets/audio/env/wage_increase.wav" id="1_nscs2"]
[resource]
playback_mode = 2
random_pitch = 1.2
streams_count = 1
stream_0/stream = ExtResource("1_nscs2")
stream_0/weight = 1.0

BIN
assets/audio/env/wage_increase.wav (Stored with Git LFS) vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dmv0xdrcjlky6"
path="res://.godot/imported/wage_increase.wav-031fe4c2f0cfc428f033889054664828.sample"
[deps]
source_file="res://assets/audio/env/wage_increase.wav"
dest_files=["res://.godot/imported/wage_increase.wav-031fe4c2f0cfc428f033889054664828.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
assets/audio/env/warehouse_ambiance.wav (Stored with Git LFS) vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://b3xmfa1tt1u0k"
path="res://.godot/imported/warehouse_ambiance.wav-41f3daa803086dbfed1a991f6a994c51.sample"
[deps]
source_file="res://assets/audio/env/warehouse_ambiance.wav"
dest_files=["res://.godot/imported/warehouse_ambiance.wav-41f3daa803086dbfed1a991f6a994c51.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
assets/audio/env/warehouse_quiet.wav (Stored with Git LFS) vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bfgk3wmo0gm38"
path="res://.godot/imported/warehouse_quiet.wav-b576f9d2d1e7c6d350db4a4b4b58a5b2.sample"
[deps]
source_file="res://assets/audio/env/warehouse_quiet.wav"
dest_files=["res://.godot/imported/warehouse_quiet.wav-b576f9d2d1e7c6d350db4a4b4b58a5b2.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 207 KiB

BIN
assets/env/bezos_thinking.png (Stored with Git LFS) vendored Normal file

Binary file not shown.

View File

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d30qiv54t56cq" uid="uid://jwjefk17pc64"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" path="res://.godot/imported/bezos_thinking.png-525eedae57498f83c0a1a61021354627.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://icon.svg" source_file="res://assets/env/bezos_thinking.png"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] dest_files=["res://.godot/imported/bezos_thinking.png-525eedae57498f83c0a1a61021354627.ctex"]
[params] [params]
@ -32,6 +32,3 @@ process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

34
assets/env/env_main.tres vendored Normal file
View File

@ -0,0 +1,34 @@
[gd_resource type="Environment" load_steps=6 format=3 uid="uid://wgunkcucx28m"]
[ext_resource type="Texture2D" uid="uid://disx4eju0ps73" path="res://assets/hdris/empty_warehouse_01_2k.hdr" id="1_pxvi5"]
[sub_resource type="Gradient" id="Gradient_ntjuk"]
offsets = PackedFloat32Array(0, 0.0386266, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.02, 0.0088, 0.01944, 1, 1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_0ld3d"]
gradient = SubResource("Gradient_ntjuk")
[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_c8cq0"]
panorama = ExtResource("1_pxvi5")
[sub_resource type="Sky" id="Sky_t2ale"]
sky_material = SubResource("PanoramaSkyMaterial_c8cq0")
[resource]
background_mode = 2
background_energy_multiplier = 0.4
sky = SubResource("Sky_t2ale")
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_energy = 0.65
reflected_light_source = 2
tonemap_mode = 2
tonemap_exposure = 1.5
ssao_enabled = true
ssil_enabled = true
ssil_intensity = 2.0
glow_enabled = true
adjustment_enabled = true
adjustment_contrast = 1.5
adjustment_color_correction = SubResource("GradientTexture1D_0ld3d")

View File

@ -1,7 +1,8 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://c2blaccl48fqs"] [gd_resource type="StandardMaterial3D" format=3 uid="uid://c2blaccl48fqs"]
[resource] [resource]
albedo_color = Color(0, 1, 0, 1) metallic_specular = 1.0
roughness = 0.0
emission_enabled = true emission_enabled = true
emission = Color(0, 1, 0, 1) emission = Color(0, 5, 0, 1)
emission_energy_multiplier = 5.0 emission_energy_multiplier = 16.0

BIN
assets/props/posters/three_d_design.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3uikn1b2sy2u"
path.s3tc="res://.godot/imported/three_d_design.png-3f693da7e6e5db023af901c4cb9dc953.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/props/posters/three_d_design.png"
dest_files=["res://.godot/imported/three_d_design.png-3f693da7e6e5db023af901c4cb9dc953.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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=0

View File

@ -1,4 +1,4 @@
[gd_resource type="AudioBusLayout" load_steps=4 format=3 uid="uid://y8ex3sirvm5l"] [gd_resource type="AudioBusLayout" load_steps=5 format=3 uid="uid://y8ex3sirvm5l"]
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_ev1xl"] [sub_resource type="AudioEffectReverb" id="AudioEffectReverb_ev1xl"]
resource_name = "Reverb" resource_name = "Reverb"
@ -18,6 +18,12 @@ band_db/16000_hz = -5.6
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_fa1qn"] [sub_resource type="AudioEffectReverb" id="AudioEffectReverb_fa1qn"]
resource_name = "Reverb" resource_name = "Reverb"
[sub_resource type="AudioEffectCompressor" id="AudioEffectCompressor_vg38f"]
resource_name = "Compressor"
threshold = -7.0
ratio = 18.1
gain = 9.2
[resource] [resource]
bus/1/name = &"Explosion" bus/1/name = &"Explosion"
bus/1/solo = false bus/1/solo = false
@ -43,3 +49,5 @@ bus/3/mute = false
bus/3/bypass_fx = false bus/3/bypass_fx = false
bus/3/volume_db = 0.0 bus/3/volume_db = 0.0
bus/3/send = &"Master" bus/3/send = &"Master"
bus/3/effect/0/effect = SubResource("AudioEffectCompressor_vg38f")
bus/3/effect/0/enabled = false

View File

@ -38,7 +38,7 @@ application/icon_interpolation=4
application/file_version="" application/file_version=""
application/product_version="" application/product_version=""
application/company_name="" application/company_name=""
application/product_name="" application/product_name="Armazon"
application/file_description="" application/file_description=""
application/copyright="" application/copyright=""
application/trademarks="" application/trademarks=""
@ -60,3 +60,43 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'" Remove-Item -Recurse -Force '{temp_dir}'"
[preset.1]
name="Linux/X11"
platform="Linux/X11"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../GodotExports/Armazon.x86_64"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
[preset.1.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=true
texture_format/bptc=true
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=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}\""

View File

@ -1 +0,0 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 950 B

41
main.gd
View File

@ -25,7 +25,7 @@ const BOX = preload("res://props/box/box.tscn")
@export var stun_timer_max: float = 1.0 @export var stun_timer_max: float = 1.0
@export_group("Props") @export_group("Props")
@export var props: Array[PackedScene] = [] @export var spawnlist: SpawnList = preload("res://props/spawnlists/props_vanilla.tres")
@onready var conveyor: StaticBody3D = %conveyor @onready var conveyor: StaticBody3D = %conveyor
@onready var box_spawner: Node3D = %box_spawner @onready var box_spawner: Node3D = %box_spawner
@ -51,9 +51,15 @@ func _ready() -> void:
bezos.visible = false bezos.visible = false
$events/bezos_cooldown.start(randf_range(bezos_cooldown_min, bezos_cooldown_max)) $events/bezos_cooldown.start(randf_range(bezos_cooldown_min, bezos_cooldown_max))
#$events/bezos_cooldown.start(2) #$events/bezos_cooldown.start(2)
Scoring.reset_score()
get_node('%arm_ik').start() get_node('%arm_ik').start()
CameraRumble.grab.connect(anim_grab) CameraRumble.grab.connect(anim_grab)
CameraRumble.nuclear_blast.connect(on_nuclear_blast, CONNECT_ONE_SHOT)
func on_nuclear_blast():
print("Nuclear blast")
$audio/ambiance1.stop()
$audio/ambiance2.play(randf() * 20.0)
func anim_grab(): func anim_grab():
animtree.set("parameters/shot_grab/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE) animtree.set("parameters/shot_grab/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
@ -65,7 +71,7 @@ func anim_grab():
@onready var stun_timer: float = 0 @onready var stun_timer: float = 0
func _process(delta: float) -> void: func _process(delta: float) -> void:
timer += delta timer += delta
$world/light_parent/light.transform.basis = Basis.from_euler(Vector3(0,cos(timer * PI / 3.7) * 0.1,0)) $world/light_parent/light.transform.basis = Basis.from_euler(Vector3(0,cos(timer * PI / 3.9) * 0.2,0))
camera.v_offset = (cos(timer * 10) * CameraRumble.rumble) * 0.01 camera.v_offset = (cos(timer * 10) * CameraRumble.rumble) * 0.01
CameraRumble.rumble = clampf(CameraRumble.rumble - delta * 10.0, 0, 1000) CameraRumble.rumble = clampf(CameraRumble.rumble - delta * 10.0, 0, 1000)
@ -138,8 +144,8 @@ func _physics_process(delta: float) -> void:
current_prop = spawn_random_prop(prop_spawn) current_prop = spawn_random_prop(prop_spawn)
func spawn_random_prop(parent: Node3D) -> PackageItem: func spawn_random_prop(parent: Node3D) -> PackageItem:
var scn = props.pick_random() as PackedScene var propinfo: PropInfo = spawnlist.spawnlist.pick_random()
var prop: PackageItem = scn.instantiate() var prop: PackageItem = propinfo.prop.instantiate()
parent.add_child(prop) parent.add_child(prop)
return prop return prop
@ -153,32 +159,50 @@ func _on_box_entered(body_rid: RID, body: Node3D, body_shape_index: int, local_s
if body is Package: if body is Package:
if body.counted: return if body.counted: return
body.counted = true body.counted = true
Scoring.increment_boxes()
# print("box has: ", body.items.size()) # print("box has: ", body.items.size())
# Ensure package is loaded, but don't penalize overloaded packages (players tend to do that when conveyor is slow) # Ensure package is loaded, but don't penalize overloaded packages (players tend to do that when conveyor is slow)
if not body.items.size() > 0: if not body.items.size() > 0:
do_penalty() do_penalty()
boxes_in_row = 0 boxes_in_row = 0
else: else:
Scoring.increment_score()
%points.text = str(Scoring.score) + " pts"
boxes_in_row += 1 boxes_in_row += 1
if boxes_in_row >= bonus_count: if boxes_in_row >= bonus_count:
boxes_in_row = 0 boxes_in_row = 0
do_bonus() do_bonus()
do_success()
for item in body.items: for item in body.items:
item.queue_free() item.queue_free()
body.queue_free() body.queue_free()
func do_success():
$world/box_scoring/light_correct.visible = true
$world/box_scoring/light_correct/Timer.start(0.2)
$world/box_scoring/buzzer_correct.play()
func do_bonus(): func do_bonus():
wage += wage_bonus wage += wage_bonus
emit_signal("bonus") emit_signal("bonus")
$audio/wage_increase.play()
func do_penalty(): func do_penalty():
wage -= wage_penalty wage -= wage_penalty
if wage < 0: if wage < 0:
get_tree().quit() #get_tree().quit()
get_tree().call_deferred("change_scene_to_file", "res://score_screen.tscn")
return
emit_signal("penalty") emit_signal("penalty")
func _on_trash(body_rid: RID, body: Node3D, body_shape_index: int, local_shape_index: int) -> void: $world/box_scoring/light_incorrect.visible = true
$world/box_scoring/light_incorrect/Timer.start(0.2)
$world/box_scoring/buzzer_incorrect.play()
func _on_trash(_body_rid: RID, body: Node3D, _body_shape_index: int, _local_shape_index: int) -> void:
body.queue_free() body.queue_free()
## QUICKTIME EVENT ## QUICKTIME EVENT
@ -214,7 +238,8 @@ func quicktime_check():
prop.touched.emit() prop.touched.emit()
if dodge_timer > 0: if dodge_timer > 0:
print("successfull dodge") #print("successfull dodge")
pass
else: else:
$audio/oof.play() $audio/oof.play()
stun_timer = stun_timer_max stun_timer = stun_timer_max

5465
main.tscn

File diff suppressed because it is too large Load Diff

View File

@ -12,15 +12,17 @@ config_version=5
config/name="Armazon" config/name="Armazon"
config/description="Pack boxes safely and efficiently to maximize customer satisfaction." config/description="Pack boxes safely and efficiently to maximize customer satisfaction."
config/version="1.0.0"
run/main_scene="res://main.tscn" run/main_scene="res://main.tscn"
config/features=PackedStringArray("4.2", "Forward Plus") config/features=PackedStringArray("4.2", "Forward Plus")
boot_splash/bg_color=Color(0.384314, 0.133333, 0.121569, 1) boot_splash/bg_color=Color(0.384314, 0.133333, 0.121569, 1)
boot_splash/image="res://assets/env/bezos_ball.png" boot_splash/image="res://assets/env/bezos_ball.png"
config/icon="res://icon.svg" config/icon="res://assets/env/bezos_ball.png"
[autoload] [autoload]
CameraRumble="*res://scripts/camera_rumble.gd" CameraRumble="*res://scripts/camera_rumble.gd"
Scoring="*res://scripts/scoring.gd"
[input] [input]
@ -47,7 +49,10 @@ fullscreen={
3d_physics/layer_1="all" 3d_physics/layer_1="all"
3d_physics/layer_2="box" 3d_physics/layer_2="box"
3d_physics/layer_3="item" 3d_physics/layer_3="item"
3d_physics/layer_4="terrain"
3d_physics/layer_5="prop_physics"
[rendering] [rendering]
anti_aliasing/quality/msaa_3d=1 anti_aliasing/quality/msaa_3d=1
environment/defaults/default_environment="res://assets/env/env_main.tres"

View File

@ -1,7 +1,6 @@
[gd_scene load_steps=7 format=3 uid="uid://wcv3kkpq0k8d"] [gd_scene load_steps=6 format=3 uid="uid://wcv3kkpq0k8d"]
[ext_resource type="Script" path="res://scripts/packageitem.gd" id="1_qrltu"] [ext_resource type="Script" path="res://scripts/packageitem.gd" id="1_qrltu"]
[ext_resource type="PackedScene" uid="uid://ddqsts05d4e70" path="res://props/explosion/nuke_blast.tscn" id="2_1x4qn"]
[ext_resource type="ArrayMesh" uid="uid://dr3cnp6q5d5nu" path="res://assets/props/nuke/nuke.obj" id="4_xhr4y"] [ext_resource type="ArrayMesh" uid="uid://dr3cnp6q5d5nu" path="res://assets/props/nuke/nuke.obj" id="4_xhr4y"]
[ext_resource type="AudioStream" uid="uid://jayxq7lbhlkq" path="res://assets/audio/alarm.wav" id="5_iqgh0"] [ext_resource type="AudioStream" uid="uid://jayxq7lbhlkq" path="res://assets/audio/alarm.wav" id="5_iqgh0"]
[ext_resource type="Material" uid="uid://b0onobnp4eo7n" path="res://assets/props/nuke/mat_nuke.tres" id="5_rovnd"] [ext_resource type="Material" uid="uid://b0onobnp4eo7n" path="res://assets/props/nuke/mat_nuke.tres" id="5_rovnd"]
@ -16,7 +15,6 @@ gravity_scale = 1.2
max_contacts_reported = 2 max_contacts_reported = 2
contact_monitor = true contact_monitor = true
script = ExtResource("1_qrltu") script = ExtResource("1_qrltu")
explosion = ExtResource("2_1x4qn")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."] [node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = ExtResource("4_xhr4y") mesh = ExtResource("4_xhr4y")

View File

@ -11,6 +11,7 @@ falloff_exponent = 2.0
impulse = 5000 impulse = 5000
radius = 10.0 radius = 10.0
rumble_amount = 25.0 rumble_amount = 25.0
nuclear = true
[node name="GPUParticles3D" type="GPUParticles3D" parent="."] [node name="GPUParticles3D" type="GPUParticles3D" parent="."]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0) transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)

View File

@ -0,0 +1,66 @@
[gd_scene load_steps=7 format=3 uid="uid://w3ehjryl0efb"]
[ext_resource type="Script" path="res://scripts/packageitem.gd" id="1_qlmmm"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_6fr6a"]
rough = true
absorbent = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gshgp"]
emission_enabled = true
emission = Color(0.818476, 0.77792, 0.721426, 1)
emission_energy_multiplier = 0.3
[sub_resource type="SphereMesh" id="SphereMesh_355go"]
material = SubResource("StandardMaterial3D_gshgp")
radius = 0.15
height = 0.3
[sub_resource type="SphereShape3D" id="SphereShape3D_4koj6"]
radius = 2.75
[sub_resource type="SphereShape3D" id="SphereShape3D_54whn"]
radius = 0.15
[node name="ItemMoon" type="RigidBody3D"]
collision_layer = 4
collision_mask = 10
collision_priority = 2.0
mass = 500.0
physics_material_override = SubResource("PhysicsMaterial_6fr6a")
gravity_scale = 0.01
max_contacts_reported = 2
contact_monitor = true
linear_velocity = Vector3(0, -2, 0)
linear_damp_mode = 1
linear_damp = 10.0
script = ExtResource("1_qlmmm")
has_prop_physics = false
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("SphereMesh_355go")
[node name="OmniLight3D" type="OmniLight3D" parent="."]
light_energy = 0.5
light_negative = true
distance_fade_enabled = true
distance_fade_begin = 4.0
distance_fade_length = 5.0
[node name="gravity_field" type="Area3D" parent="."]
collision_layer = 0
collision_mask = 16
input_ray_pickable = false
priority = 1
gravity_space_override = 1
gravity_point = true
gravity_point_unit_distance = 1.0
gravity_point_center = Vector3(0, 0, 0)
gravity_direction = Vector3(0, 0, 0)
gravity = 3.33
[node name="CollisionShape3D" type="CollisionShape3D" parent="gravity_field"]
shape = SubResource("SphereShape3D_4koj6")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("SphereShape3D_54whn")

View File

@ -0,0 +1,5 @@
extends PackageItem
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
print("POS: ", global_position, "\t\tvelo: ", linear_velocity)

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://bjhxhdkt5ieq3"]
[ext_resource type="PackedScene" uid="uid://b30yr3jq1bycl" path="res://props/items/item_anvil.tscn" id="1_xdche"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_ykvr2"]
[resource]
script = ExtResource("1_ykvr2")
name = "Anvil"
description = "Just make sure your hand is always above it"
spawn_weight = 1.0
prop = ExtResource("1_xdche")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://6jqmmojbwpc7"]
[ext_resource type="PackedScene" uid="uid://12takpx3tv5l" path="res://props/items/item_bagel.tscn" id="1_6or65"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_8awy0"]
[resource]
script = ExtResource("1_8awy0")
name = "Bagel"
description = "https://youtu.be/yo_vI2eoRuk"
spawn_weight = 1.0
prop = ExtResource("1_6or65")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://ha11uefhiahj"]
[ext_resource type="PackedScene" uid="uid://dkrnww4871lqb" path="res://props/items/item_bananana.tscn" id="1_hrnws"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_htdt2"]
[resource]
script = ExtResource("1_htdt2")
name = "Bananananana"
description = "Ea t"
spawn_weight = 1.0
prop = ExtResource("1_hrnws")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://biiob121j7ov8"]
[ext_resource type="PackedScene" uid="uid://c11xj7mywm8rf" path="res://props/items/item_bean.tscn" id="1_43krm"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_gmegh"]
[resource]
script = ExtResource("1_gmegh")
name = "Bean"
description = "The shades are hot-glued on"
spawn_weight = 1.0
prop = ExtResource("1_43krm")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://caqayvsnig7al"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_j8jpx"]
[ext_resource type="PackedScene" uid="uid://boo1j06sv5yjm" path="res://props/items/item_bloaf.tscn" id="1_l8ki6"]
[resource]
script = ExtResource("1_j8jpx")
name = "Bread Loaf"
description = "After extensive research and testing, we decided that this was, in-fact, the optimal shape for packing bread"
spawn_weight = 1.0
prop = ExtResource("1_l8ki6")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://2xn7vrfe4wb0"]
[ext_resource type="PackedScene" uid="uid://csba3vko1iq71" path="res://props/items/item_bucket.tscn" id="1_cpirk"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_f1py0"]
[resource]
script = ExtResource("1_f1py0")
name = "Bucket"
description = "Dear God"
spawn_weight = 1.0
prop = ExtResource("1_cpirk")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://cbl1wtccbnj8v"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_jo374"]
[ext_resource type="PackedScene" uid="uid://tvcdw7mklvsl" path="res://props/items/item_burger.tscn" id="1_usdo6"]
[resource]
script = ExtResource("1_jo374")
name = "Burger"
description = "Burger is made of mud to preserve freshness"
spawn_weight = 1.0
prop = ExtResource("1_usdo6")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://dte536hmvykmk"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_1qmlv"]
[ext_resource type="PackedScene" uid="uid://d1mhxpdh486hr" path="res://props/items/item_cat.tscn" id="1_67hqm"]
[resource]
script = ExtResource("1_1qmlv")
name = "Cat"
description = "Okay seriously wtf is this thing"
spawn_weight = 1.0
prop = ExtResource("1_67hqm")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://d1txn8rcj3rka"]
[ext_resource type="PackedScene" uid="uid://5x0xil816wg3" path="res://props/items/item_chair.tscn" id="1_3ysd3"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_i3xl5"]
[resource]
script = ExtResource("1_i3xl5")
name = "Chair"
description = "Take a seat."
spawn_weight = 1.0
prop = ExtResource("1_3ysd3")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://b8flly7quyy8d"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_410v7"]
[ext_resource type="PackedScene" uid="uid://b1lwr13r7dy3d" path="res://props/items/item_cone.tscn" id="1_mmlt3"]
[resource]
script = ExtResource("1_410v7")
name = "Prop"
description = "Prop description"
spawn_weight = 1.0
prop = ExtResource("1_mmlt3")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://jnwx37xvk0ug"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_73exn"]
[ext_resource type="PackedScene" uid="uid://752pj3dweh48" path="res://props/items/item_cylinder.tscn" id="1_ybfhd"]
[resource]
script = ExtResource("1_73exn")
name = "Good Cylinders™ Standard-Issue Grey Cylinder"
description = "This literally cost us 10¢"
spawn_weight = 1.0
prop = ExtResource("1_ybfhd")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://c2qoonw18e155"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_jwex6"]
[ext_resource type="PackedScene" uid="uid://dk6t7f80k4oy8" path="res://props/items/item_fish.tscn" id="1_knmt2"]
[resource]
script = ExtResource("1_jwex6")
name = "Fresh? Fish?"
description = "Would"
spawn_weight = 1.0
prop = ExtResource("1_knmt2")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://cldo1m7f5sjpb"]
[ext_resource type="PackedScene" uid="uid://x3v5bs08trt0" path="res://props/items/item_five.tscn" id="1_ut71s"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_vjyp8"]
[resource]
script = ExtResource("1_vjyp8")
name = "5"
description = "5"
spawn_weight = 1.0
prop = ExtResource("1_ut71s")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://mvd0w4j551hr"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_4rb6b"]
[ext_resource type="PackedScene" uid="uid://cvyn0aqnktraw" path="res://props/items/item_gun.tscn" id="1_bl8o0"]
[resource]
script = ExtResource("1_4rb6b")
name = "Gun"
description = "Shipped pre-loaded and with the safety off, so you can use it with no hassle"
spawn_weight = 1.0
prop = ExtResource("1_bl8o0")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://c4jxcaxrn1mxr"]
[ext_resource type="PackedScene" uid="uid://dgf2johp1nob7" path="res://props/bombs/item_lemonade.tscn" id="1_ofvjt"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_r3lrr"]
[resource]
script = ExtResource("1_r3lrr")
name = "Lemonade"
description = "I DON'T WANT YOUR DAMN LEMONS"
spawn_weight = 1.0
prop = ExtResource("1_ofvjt")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://bmqpamfrmlc5e"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_egq40"]
[ext_resource type="PackedScene" uid="uid://hoiv06m0w6lw" path="res://props/items/item_malk.tscn" id="1_vlvs3"]
[resource]
script = ExtResource("1_egq40")
name = "CD Milk"
description = "The latest household commodity in liquid media"
spawn_weight = 1.0
prop = ExtResource("1_vlvs3")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://4gbumey8uvui"]
[ext_resource type="PackedScene" uid="uid://dypmkc8m7p7af" path="res://props/items/item_metalrod.tscn" id="1_4shnp"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_7iy8n"]
[resource]
script = ExtResource("1_7iy8n")
name = "Metal Pipe"
description = "Trust me, it gets WAY funnier after the 26th time"
spawn_weight = 1.0
prop = ExtResource("1_4shnp")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://c7glpav7te6i8"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_ii0w7"]
[ext_resource type="PackedScene" uid="uid://bcy6n71n62h5o" path="res://props/items/item_moai.tscn" id="1_j5yps"]
[resource]
script = ExtResource("1_ii0w7")
name = "Ancient Carved Stone"
description = "what did they mean by this..."
spawn_weight = 1.0
prop = ExtResource("1_j5yps")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://bmya2lb0deun4"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_brwfd"]
[ext_resource type="PackedScene" uid="uid://w3ehjryl0efb" path="res://props/items/item_moon.tscn" id="1_gton6"]
[resource]
script = ExtResource("1_brwfd")
name = "The Moon"
description = "It's slightly moldy from being handled without space gloves"
spawn_weight = 1.0
prop = ExtResource("1_gton6")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://die5vnwi43a0y"]
[ext_resource type="PackedScene" uid="uid://wcv3kkpq0k8d" path="res://props/bombs/item_nuke.tscn" id="1_46qvd"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_gxdeh"]
[resource]
script = ExtResource("1_gxdeh")
name = "Atomic Bomb"
description = "Comes pre-armed with plutonium"
spawn_weight = 1.0
prop = ExtResource("1_46qvd")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://dfnoose1iaccl"]
[ext_resource type="PackedScene" uid="uid://dh10j4qwu6gmo" path="res://props/bombs/item_pipebomb.tscn" id="1_0lury"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_3ukin"]
[resource]
script = ExtResource("1_3ukin")
name = "Pipe Bomb"
description = "Useful"
spawn_weight = 1.0
prop = ExtResource("1_0lury")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://djipn0xemredj"]
[ext_resource type="PackedScene" uid="uid://ds6wtux7vaaia" path="res://props/items/item_pizzahut.tscn" id="1_jssv1"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_sdtgs"]
[resource]
script = ExtResource("1_sdtgs")
name = "Pizza Hut"
description = "Combination Taco Bell and Pizza Hut"
spawn_weight = 1.0
prop = ExtResource("1_jssv1")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://b7l5oshgyj4d8"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_a08yc"]
[ext_resource type="PackedScene" uid="uid://ba13afk2ubd6j" path="res://props/items/item_redarrow.tscn" id="1_g018b"]
[resource]
script = ExtResource("1_a08yc")
name = "→"
description = "see i'm pointing to it on my screen right now"
spawn_weight = 1.0
prop = ExtResource("1_g018b")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://b843uo8k0ltpq"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_f0djw"]
[ext_resource type="PackedScene" uid="uid://bx8ujp23n33t8" path="res://props/items/item_rock.tscn" id="1_r8ghr"]
[resource]
script = ExtResource("1_f0djw")
name = "Five Minute Rock"
description = "And you're making it take LONGER with how SLOW YOU'RE PACKING it"
spawn_weight = 1.0
prop = ExtResource("1_r8ghr")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://b3urvtn6jgffj"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_a47sx"]
[ext_resource type="PackedScene" uid="uid://ckrf64kt1nvna" path="res://props/items/item_shmaple.tscn" id="1_jjpi6"]
[resource]
script = ExtResource("1_a47sx")
name = "Shmamploo"
description = "Intensive dissolving fluid. Kid safe."
spawn_weight = 1.0
prop = ExtResource("1_jjpi6")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://djqx46s0ip4gh"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_1p8yt"]
[ext_resource type="PackedScene" uid="uid://0ddfb2i4b03d" path="res://props/items/item_shroom.tscn" id="1_dmfoh"]
[resource]
script = ExtResource("1_1p8yt")
name = "Mushroom"
description = "m u s h r o o m"
spawn_weight = 1.0
prop = ExtResource("1_dmfoh")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://0wf7sqtd5o1y"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_oq157"]
[ext_resource type="PackedScene" uid="uid://ddley72a8vmq2" path="res://props/items/item_skeleton.tscn" id="1_ublsl"]
[resource]
script = ExtResource("1_oq157")
name = "Skeleton Arm"
description = "Okay but seriously, this is badass"
spawn_weight = 1.0
prop = ExtResource("1_ublsl")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://cn8s8ilhah8e0"]
[ext_resource type="PackedScene" uid="uid://dpe7cw4bye1to" path="res://props/items/item_umbrella.tscn" id="1_kt3ae"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_myikc"]
[resource]
script = ExtResource("1_myikc")
name = "Umbrella"
description = "It's raining... somewhere else"
spawn_weight = 1.0
prop = ExtResource("1_kt3ae")

View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="PropInfo" load_steps=3 format=3 uid="uid://fob61eoh8udf"]
[ext_resource type="Script" path="res://scripts/spawning/propinfo.gd" id="1_7xj2g"]
[ext_resource type="PackedScene" uid="uid://cugp3qcnsxajf" path="res://props/items/item_worm.tscn" id="1_dgbxq"]
[resource]
script = ExtResource("1_7xj2g")
name = "Worm"
description = "Waaaay better at packing boxes than you, slowpoke"
spawn_weight = 1.0
prop = ExtResource("1_dgbxq")

13
props/shelves/shelf.gd Normal file
View File

@ -0,0 +1,13 @@
extends RigidBody3D
func detonate():
var blast: Explosion = preload("res://props/explosion/explosion.tscn").instantiate()
get_parent().add_child(blast)
blast.global_transform = global_transform
queue_free()
func _on_body_entered(body: Node) -> void:
if body.name == "conveyor":
$Timer.start()
call_deferred("set_contact_monitor", false)
body_entered.disconnect(_on_body_entered)

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://bdccq5y56ruro"] [gd_scene load_steps=5 format=3 uid="uid://bdccq5y56ruro"]
[ext_resource type="ArrayMesh" uid="uid://cl4vvh1y3i7a" path="res://assets/props/blake3/Shelves.obj" id="1_bh5mi"] [ext_resource type="ArrayMesh" uid="uid://cl4vvh1y3i7a" path="res://assets/props/blake3/Shelves.obj" id="1_bh5mi"]
[ext_resource type="Script" path="res://props/shelves/shelf.gd" id="1_by2ku"]
[ext_resource type="Material" uid="uid://dlcqn8a0dycmj" path="res://assets/props/blake3/mat_blake3.tres" id="2_2kntf"] [ext_resource type="Material" uid="uid://dlcqn8a0dycmj" path="res://assets/props/blake3/mat_blake3.tres" id="2_2kntf"]
[sub_resource type="BoxShape3D" id="BoxShape3D_da465"] [sub_resource type="BoxShape3D" id="BoxShape3D_da465"]
@ -9,6 +10,9 @@ size = Vector3(3.02141, 4.27834, 0.811)
[node name="Shelf" type="RigidBody3D"] [node name="Shelf" type="RigidBody3D"]
collision_mask = 9 collision_mask = 9
mass = 100.0 mass = 100.0
max_contacts_reported = 4
contact_monitor = true
script = ExtResource("1_by2ku")
[node name="Shelves" type="MeshInstance3D" parent="."] [node name="Shelves" type="MeshInstance3D" parent="."]
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0) transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0)
@ -19,3 +23,9 @@ surface_material_override/0 = ExtResource("2_2kntf")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.15317, -0.005) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.15317, -0.005)
shape = SubResource("BoxShape3D_da465") shape = SubResource("BoxShape3D_da465")
[node name="Timer" type="Timer" parent="."]
wait_time = 10.0
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="timeout" from="Timer" to="." method="detonate"]

View File

@ -0,0 +1,13 @@
[gd_resource type="Resource" script_class="SpawnList" load_steps=8 format=3 uid="uid://cj03kcritq6yg"]
[ext_resource type="Script" path="res://scripts/spawning/spawnlist.gd" id="1_f0qsa"]
[ext_resource type="Resource" uid="uid://bmya2lb0deun4" path="res://props/propinfo/propinfo_moon.tres" id="2_y08ma"]
[ext_resource type="Resource" uid="uid://jnwx37xvk0ug" path="res://props/propinfo/propinfo_cylinder.tres" id="12_ucmsf"]
[ext_resource type="Resource" uid="uid://cldo1m7f5sjpb" path="res://props/propinfo/propinfo_five.tres" id="14_wkybk"]
[ext_resource type="Resource" uid="uid://mvd0w4j551hr" path="res://props/propinfo/propinfo_gun.tres" id="15_hedd7"]
[ext_resource type="Resource" uid="uid://c7glpav7te6i8" path="res://props/propinfo/propinfo_moai.tres" id="19_drrre"]
[ext_resource type="Resource" uid="uid://0wf7sqtd5o1y" path="res://props/propinfo/propinfo_skeleton.tres" id="27_ubbpf"]
[resource]
script = ExtResource("1_f0qsa")
spawnlist = Array[Resource("res://scripts/spawning/propinfo.gd")]([ExtResource("2_y08ma"), ExtResource("19_drrre"), ExtResource("12_ucmsf"), ExtResource("27_ubbpf"), ExtResource("15_hedd7"), ExtResource("14_wkybk")])

View File

@ -0,0 +1,35 @@
[gd_resource type="Resource" script_class="SpawnList" load_steps=30 format=3 uid="uid://di730irs7s1kw"]
[ext_resource type="Script" path="res://scripts/spawning/spawnlist.gd" id="1_u3wvi"]
[ext_resource type="Resource" uid="uid://bjhxhdkt5ieq3" path="res://props/propinfo/propinfo_anvil.tres" id="2_6xy4d"]
[ext_resource type="Resource" uid="uid://6jqmmojbwpc7" path="res://props/propinfo/propinfo_bagel.tres" id="3_mwh8e"]
[ext_resource type="Resource" uid="uid://ha11uefhiahj" path="res://props/propinfo/propinfo_bananana.tres" id="4_8oc3o"]
[ext_resource type="Resource" uid="uid://biiob121j7ov8" path="res://props/propinfo/propinfo_bean.tres" id="5_4ipxa"]
[ext_resource type="Resource" uid="uid://caqayvsnig7al" path="res://props/propinfo/propinfo_bloaf.tres" id="6_46o2v"]
[ext_resource type="Resource" uid="uid://2xn7vrfe4wb0" path="res://props/propinfo/propinfo_bucket.tres" id="7_jl2iv"]
[ext_resource type="Resource" uid="uid://cbl1wtccbnj8v" path="res://props/propinfo/propinfo_burger.tres" id="8_08828"]
[ext_resource type="Resource" uid="uid://dte536hmvykmk" path="res://props/propinfo/propinfo_cat.tres" id="9_ma711"]
[ext_resource type="Resource" uid="uid://d1txn8rcj3rka" path="res://props/propinfo/propinfo_chair.tres" id="10_gemkv"]
[ext_resource type="Resource" uid="uid://b8flly7quyy8d" path="res://props/propinfo/propinfo_cone.tres" id="11_31mvk"]
[ext_resource type="Resource" uid="uid://jnwx37xvk0ug" path="res://props/propinfo/propinfo_cylinder.tres" id="12_1fnem"]
[ext_resource type="Resource" uid="uid://c2qoonw18e155" path="res://props/propinfo/propinfo_fish.tres" id="13_j8qoa"]
[ext_resource type="Resource" uid="uid://cldo1m7f5sjpb" path="res://props/propinfo/propinfo_five.tres" id="14_l8mx3"]
[ext_resource type="Resource" uid="uid://mvd0w4j551hr" path="res://props/propinfo/propinfo_gun.tres" id="15_exete"]
[ext_resource type="Resource" uid="uid://c4jxcaxrn1mxr" path="res://props/propinfo/propinfo_lemonade.tres" id="16_6lbqn"]
[ext_resource type="Resource" uid="uid://bmqpamfrmlc5e" path="res://props/propinfo/propinfo_malk.tres" id="17_c6lg6"]
[ext_resource type="Resource" uid="uid://4gbumey8uvui" path="res://props/propinfo/propinfo_metalrod.tres" id="18_1sdy4"]
[ext_resource type="Resource" uid="uid://c7glpav7te6i8" path="res://props/propinfo/propinfo_moai.tres" id="19_n0cxb"]
[ext_resource type="Resource" uid="uid://die5vnwi43a0y" path="res://props/propinfo/propinfo_nuke.tres" id="20_hm6pv"]
[ext_resource type="Resource" uid="uid://dfnoose1iaccl" path="res://props/propinfo/propinfo_pipebomb.tres" id="21_tiard"]
[ext_resource type="Resource" uid="uid://djipn0xemredj" path="res://props/propinfo/propinfo_pizzahut.tres" id="22_reyr4"]
[ext_resource type="Resource" uid="uid://b7l5oshgyj4d8" path="res://props/propinfo/propinfo_redarrow.tres" id="23_vpfu3"]
[ext_resource type="Resource" uid="uid://b843uo8k0ltpq" path="res://props/propinfo/propinfo_rock.tres" id="24_kts05"]
[ext_resource type="Resource" uid="uid://b3urvtn6jgffj" path="res://props/propinfo/propinfo_shmaple.tres" id="25_wbxu6"]
[ext_resource type="Resource" uid="uid://djqx46s0ip4gh" path="res://props/propinfo/propinfo_shroom.tres" id="26_wyvse"]
[ext_resource type="Resource" uid="uid://0wf7sqtd5o1y" path="res://props/propinfo/propinfo_skeleton.tres" id="27_lkbi1"]
[ext_resource type="Resource" uid="uid://cn8s8ilhah8e0" path="res://props/propinfo/propinfo_umbrella.tres" id="28_dbkrt"]
[ext_resource type="Resource" uid="uid://fob61eoh8udf" path="res://props/propinfo/propinfo_worm.tres" id="29_6oivx"]
[resource]
script = ExtResource("1_u3wvi")
spawnlist = Array[Resource("res://scripts/spawning/propinfo.gd")]([ExtResource("2_6xy4d"), ExtResource("3_mwh8e"), ExtResource("4_8oc3o"), ExtResource("5_4ipxa"), ExtResource("6_46o2v"), ExtResource("7_jl2iv"), ExtResource("8_08828"), ExtResource("9_ma711"), ExtResource("10_gemkv"), ExtResource("11_31mvk"), ExtResource("12_1fnem"), ExtResource("13_j8qoa"), ExtResource("14_l8mx3"), ExtResource("15_exete"), ExtResource("16_6lbqn"), ExtResource("17_c6lg6"), ExtResource("18_1sdy4"), ExtResource("19_n0cxb"), ExtResource("20_hm6pv"), ExtResource("21_tiard"), ExtResource("22_reyr4"), ExtResource("23_vpfu3"), ExtResource("24_kts05"), ExtResource("25_wbxu6"), ExtResource("26_wyvse"), ExtResource("27_lkbi1"), ExtResource("28_dbkrt"), ExtResource("29_6oivx")])

View File

@ -1,11 +1,10 @@
# Armazon # Armazon
As a Nile packaging employee, ensuring customer satisfaction is key. Box customer packages safely and efficiently. Don't dilly-dally, or your pay will be docked accordingly. You are an arm working for Nile Shipping and Products. Pack boxes safely and efficiently, while avoiding your abusive manager.
Made in a joint effort between Blake Edwards, Matt Schuler, and Alan O'Cull for the 2024 Global Game Jam. Made in a joint effort between Blake Edwards, Matt Schuler, and Alan O'Cull for the 2024 Global Game Jam. Theme was "Make Me Laugh."
## TODO ## Controls
Props to rescale: - Left click and drag to move props
- Fish - Spacebar to dodge
- Bread - Escape to exit
- Lead Pipe - F11 for fullscreen
- Ball Character

9
score_screen.gd Normal file
View File

@ -0,0 +1,9 @@
extends Control
func _ready() -> void:
%score.text = str(Scoring.score) + " pts"
%boxes.text = str(Scoring.boxes_passed) + " boxes"
func _on_retry_pressed() -> void:
get_tree().change_scene_to_file("res://main.tscn")
func _on_quit_pressed() -> void:
get_tree().quit()

94
score_screen.tscn Normal file
View File

@ -0,0 +1,94 @@
[gd_scene load_steps=4 format=3 uid="uid://bdhrrm2akjpth"]
[ext_resource type="Theme" uid="uid://bh1i8c8v60go0" path="res://ui_theme.tres" id="1_3k18l"]
[ext_resource type="Texture2D" uid="uid://jwjefk17pc64" path="res://assets/env/bezos_thinking.png" id="1_iu6ib"]
[ext_resource type="Script" path="res://score_screen.gd" id="2_ijyl7"]
[node name="ScoreScreen" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_3k18l")
script = ExtResource("2_ijyl7")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.0901961, 0, 0.0666667, 1)
[node name="TextureRect2" type="TextureRect" parent="."]
self_modulate = Color(1, 0.78, 0.78, 0.176)
layout_mode = 1
anchors_preset = -1
anchor_left = 0.05
anchor_top = -0.1
anchor_right = 0.4
anchor_bottom = 0.3
grow_horizontal = 2
grow_vertical = 2
rotation = 0.354302
texture = ExtResource("1_iu6ib")
expand_mode = 1
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_iu6ib")
expand_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "you were fired lol"
[node name="score" type="Label" parent="VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.905882, 0.858824, 0.376471, 1)
text = "0 pts"
[node name="boxes" type="Label" parent="VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "0 boxes"
[node name="VBoxContainer2" type="VBoxContainer" parent="."]
modulate = Color(5, 5, 5, 1)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
alignment = 2
[node name="retry" type="Button" parent="VBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 8
text = "they still need me"
[node name="quit" type="Button" parent="VBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 8
text = "bye"
[connection signal="pressed" from="VBoxContainer2/retry" to="." method="_on_retry_pressed"]
[connection signal="pressed" from="VBoxContainer2/quit" to="." method="_on_quit_pressed"]

View File

@ -1,6 +1,7 @@
extends Node extends Node
signal grab() signal grab()
signal nuclear_blast()
@onready var rumble: float = 0 @onready var rumble: float = 0
@onready var holding: bool = false @onready var holding: bool = false

View File

@ -20,6 +20,7 @@ class_name Explosion
@onready var blast_visual: CSGSphere3D = null @onready var blast_visual: CSGSphere3D = null
@export var rumble_amount: float = 10 @export var rumble_amount: float = 10
@export var nuclear: bool = false
func _ready() -> void: func _ready() -> void:
if Engine.is_editor_hint(): if Engine.is_editor_hint():
@ -60,6 +61,8 @@ func _ready() -> void:
var t = $light.create_tween() var t = $light.create_tween()
t.tween_property($light,'light_energy',0,0.6) t.tween_property($light,'light_energy',0,0.6)
CameraRumble.rumble += rumble_amount CameraRumble.rumble += rumble_amount
if nuclear:
CameraRumble.emit_signal("nuclear_blast")
func _exit_tree() -> void: func _exit_tree() -> void:
if not Engine.is_editor_hint(): if not Engine.is_editor_hint():
@ -108,8 +111,9 @@ func _physics_process(_delta: float) -> void:
var hitPos: Vector3 = rayRes.get("position") var hitPos: Vector3 = rayRes.get("position")
var factor: float = falloff(ray_params.from.distance_to(rayRes.get("position"))) var factor: float = falloff(ray_params.from.distance_to(rayRes.get("position")))
var bodyState = PhysicsServer3D.body_get_direct_state(rid) var bodyState: PhysicsDirectBodyState3D = PhysicsServer3D.body_get_direct_state(rid)
if is_instance_valid(bodyState): if is_instance_valid(bodyState):
bodyState.sleeping = false # Force objects to wake up
bodyState.apply_impulse(dir * impulse, hitPos - pos) bodyState.apply_impulse(dir * impulse, hitPos - pos)
func falloff(dist: float) -> float: func falloff(dist: float) -> float:

View File

@ -9,14 +9,23 @@ signal collide(time: float)
@onready var last_position: Array[Vector3] = [] @onready var last_position: Array[Vector3] = []
@onready var last_collision_count: int = 0 @onready var last_collision_count: int = 0
@export var explosion: PackedScene @export var explosion: PackedScene = preload("res://props/explosion/nuke_blast.tscn")
@export var has_prop_physics: bool = true
@onready var random_explosion_delay: float = -1.0
const RANDOM_EXPLOSION_CHANCE: float = 1.0 / 50.0
func _init() -> void: func _init() -> void:
freeze_mode = RigidBody3D.FREEZE_MODE_STATIC freeze_mode = RigidBody3D.FREEZE_MODE_STATIC
func _ready() -> void: func _ready() -> void:
pass set_collision_layer_value(5,has_prop_physics)
func _physics_process(delta): func _physics_process(delta):
if random_explosion_delay > 0:
random_explosion_delay -= delta
if random_explosion_delay <= 0:
detonate()
return
if held: if held:
global_transform.origin = CameraRumble.get_mouse_pos() global_transform.origin = CameraRumble.get_mouse_pos()
last_position.push_front(global_position) last_position.push_front(global_position)
@ -38,6 +47,10 @@ func _input_event(camera: Camera3D, event: InputEvent, position: Vector3, normal
func pickup(): func pickup():
if held: return if held: return
if randf() < RANDOM_EXPLOSION_CHANCE:
random_explosion_delay = randf_range(0.05,5.0)
#freeze = true #freeze = true
CameraRumble.emit_signal("grab") CameraRumble.emit_signal("grab")
CameraRumble.holding = true CameraRumble.holding = true

12
scripts/scoring.gd Normal file
View File

@ -0,0 +1,12 @@
extends Node
@onready var score: int = 0
@onready var boxes_passed: int = 0
func reset_score():
score = 0
boxes_passed = 0
func increment_boxes():
boxes_passed += 1
func increment_score():
score += 1

View File

@ -0,0 +1,7 @@
extends Resource
class_name PropInfo
@export var name: String = "Prop"
@export_multiline var description: String = "Prop description"
@export_range(0.01,5.0,0.01) var spawn_weight: float = 1.0
@export var prop: PackedScene = null

View File

@ -0,0 +1,4 @@
extends Resource
class_name SpawnList
@export var spawnlist: Array[PropInfo]

View File

@ -5,3 +5,7 @@
[resource] [resource]
default_font = ExtResource("1_4bf7c") default_font = ExtResource("1_4bf7c")
default_font_size = 48 default_font_size = 48
Label/colors/font_shadow_color = Color(0, 0, 0, 0.807843)
Label/constants/shadow_offset_x = 2
Label/constants/shadow_offset_y = 2
Label/constants/shadow_outline_size = 16