From 14480dbdb1ef735eb25520e8e5fedd4ddf699243 Mon Sep 17 00:00:00 2001 From: Alan O'Cull Date: Wed, 3 Apr 2024 19:24:04 -0400 Subject: [PATCH] armazon balance pass --- .gitattributes | 1 + assets/env/bezos_thinking.png | 3 + assets/env/bezos_thinking.png.import | 34 +++++ assets/env/env_main.tres | 34 +++++ assets/props/five/mat_five.tres | 7 +- main.gd | 15 +- main.tscn | 198 ++++++++++++--------------- project.godot | 2 + props/bombs/item_nuke.tscn | 4 +- props/shelves/shelf.gd | 13 ++ props/shelves/shelf.tscn | 12 +- score_screen.gd | 9 ++ score_screen.tscn | 94 +++++++++++++ scripts/packageitem.gd | 14 +- scripts/scoring.gd | 12 ++ 15 files changed, 326 insertions(+), 126 deletions(-) create mode 100644 assets/env/bezos_thinking.png create mode 100644 assets/env/bezos_thinking.png.import create mode 100644 assets/env/env_main.tres create mode 100644 props/shelves/shelf.gd create mode 100644 score_screen.gd create mode 100644 score_screen.tscn create mode 100644 scripts/scoring.gd diff --git a/.gitattributes b/.gitattributes index 12a0b33..b1864cd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,3 +10,4 @@ *.gltf filter=lfs diff=lfs merge=lfs -text *.res 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 diff --git a/assets/env/bezos_thinking.png b/assets/env/bezos_thinking.png new file mode 100644 index 0000000..69242d3 --- /dev/null +++ b/assets/env/bezos_thinking.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:912de788e5858949fd7a8e0fea1e0df24acc98256294b358271ab7d75e739e62 +size 514088 diff --git a/assets/env/bezos_thinking.png.import b/assets/env/bezos_thinking.png.import new file mode 100644 index 0000000..0fe4b05 --- /dev/null +++ b/assets/env/bezos_thinking.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://jwjefk17pc64" +path="res://.godot/imported/bezos_thinking.png-525eedae57498f83c0a1a61021354627.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/env/bezos_thinking.png" +dest_files=["res://.godot/imported/bezos_thinking.png-525eedae57498f83c0a1a61021354627.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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 diff --git a/assets/env/env_main.tres b/assets/env/env_main.tres new file mode 100644 index 0000000..74a0ab3 --- /dev/null +++ b/assets/env/env_main.tres @@ -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") diff --git a/assets/props/five/mat_five.tres b/assets/props/five/mat_five.tres index 4dc63e2..b2e717f 100644 --- a/assets/props/five/mat_five.tres +++ b/assets/props/five/mat_five.tres @@ -1,7 +1,8 @@ [gd_resource type="StandardMaterial3D" format=3 uid="uid://c2blaccl48fqs"] [resource] -albedo_color = Color(0, 1, 0, 1) +metallic_specular = 1.0 +roughness = 0.0 emission_enabled = true -emission = Color(0, 1, 0, 1) -emission_energy_multiplier = 5.0 +emission = Color(0, 5, 0, 1) +emission_energy_multiplier = 16.0 diff --git a/main.gd b/main.gd index aa49a9b..68800ba 100644 --- a/main.gd +++ b/main.gd @@ -51,7 +51,7 @@ func _ready() -> void: bezos.visible = false $events/bezos_cooldown.start(randf_range(bezos_cooldown_min, bezos_cooldown_max)) #$events/bezos_cooldown.start(2) - + Scoring.reset_score() get_node('%arm_ik').start() CameraRumble.grab.connect(anim_grab) @@ -65,7 +65,7 @@ func anim_grab(): @onready var stun_timer: float = 0 func _process(delta: float) -> void: 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 CameraRumble.rumble = clampf(CameraRumble.rumble - delta * 10.0, 0, 1000) @@ -153,12 +153,17 @@ func _on_box_entered(body_rid: RID, body: Node3D, body_shape_index: int, local_s if body is Package: if body.counted: return body.counted = true + + Scoring.increment_boxes() + # 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) if not body.items.size() > 0: do_penalty() boxes_in_row = 0 else: + Scoring.increment_score() + %points.text = str(Scoring.score) + " pts" boxes_in_row += 1 if boxes_in_row >= bonus_count: boxes_in_row = 0 @@ -174,8 +179,10 @@ func do_bonus(): func do_penalty(): wage -= wage_penalty - #if wage < 0: - # get_tree().quit() + if wage < 0: + #get_tree().quit() + get_tree().call_deferred("change_scene_to_file", "res://score_screen.tscn") + return emit_signal("penalty") func _on_trash(body_rid: RID, body: Node3D, body_shape_index: int, local_shape_index: int) -> void: diff --git a/main.tscn b/main.tscn index 74f862b..ba88248 100644 --- a/main.tscn +++ b/main.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=88 format=3 uid="uid://d2ftoqr7ydi38"] +[gd_scene load_steps=83 format=3 uid="uid://d2ftoqr7ydi38"] [ext_resource type="Script" path="res://main.gd" id="1_bcqi1"] [ext_resource type="Material" uid="uid://cgkuu3oelkm7o" path="res://assets/materials/garage_floor/mat_floor.tres" id="2_c6dsy"] -[ext_resource type="Texture2D" uid="uid://disx4eju0ps73" path="res://assets/hdris/empty_warehouse_01_2k.hdr" id="2_qo7bc"] [ext_resource type="PackedScene" uid="uid://ckrf64kt1nvna" path="res://props/items/item_shmaple.tscn" id="3_0p7ep"] [ext_resource type="Material" uid="uid://c4wkwwdrebxbc" path="res://assets/materials/concrete_wall_007/mat_concrete.tres" id="3_4b4gd"] [ext_resource type="PackedScene" uid="uid://d1mhxpdh486hr" path="res://props/items/item_cat.tscn" id="4_1o3cd"] @@ -50,6 +49,7 @@ [ext_resource type="ArrayMesh" uid="uid://24u0n6xn4p2d" path="res://assets/bezos/bezoball_low_final.obj" id="28_2lg2m"] [ext_resource type="PackedScene" uid="uid://bcy6n71n62h5o" path="res://props/items/item_moai.tscn" id="29_4lhsd"] [ext_resource type="Material" uid="uid://ce1j2h75mnkc5" path="res://assets/bezos/mat_bezos.tres" id="29_hasci"] +[ext_resource type="Environment" uid="uid://wgunkcucx28m" path="res://assets/env/env_main.tres" id="30_1njbs"] [ext_resource type="Texture2D" uid="uid://xd0o421fvato" path="res://assets/env/logo.png" id="30_cprtx"] [ext_resource type="PackedScene" uid="uid://d3w07g7udw5ig" path="res://assets/bezos/BALLZ.glb" id="36_w1osm"] [ext_resource type="PackedScene" uid="uid://bdccq5y56ruro" path="res://props/shelves/shelf.tscn" id="38_f3pj2"] @@ -57,37 +57,6 @@ [ext_resource type="Texture2D" uid="uid://c3uikn1b2sy2u" path="res://assets/props/posters/three_d_design.png" id="43_lq48c"] [ext_resource type="Material" uid="uid://bdk2p7q54ftfv" path="res://assets/props/blake3/mat_arrow.tres" id="53_slbh8"] -[sub_resource type="Gradient" id="Gradient_qqc4q"] -colors = PackedColorArray(0.08, 0.0608, 0.0752, 1, 1, 1, 1, 1) - -[sub_resource type="GradientTexture1D" id="GradientTexture1D_y6d2o"] -gradient = SubResource("Gradient_qqc4q") - -[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_c8cq0"] -panorama = ExtResource("2_qo7bc") - -[sub_resource type="Sky" id="Sky_t2ale"] -sky_material = SubResource("PanoramaSkyMaterial_c8cq0") - -[sub_resource type="Environment" id="Environment_cpfbt"] -background_mode = 2 -background_energy_multiplier = 0.69 -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 = 3 -tonemap_exposure = 0.84 -tonemap_white = 0.9 -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_y6d2o") - [sub_resource type="AnimationLibrary" id="AnimationLibrary_nadsl"] _data = { "GRAB": ExtResource("20_mcvde"), @@ -5284,7 +5253,6 @@ fadein_time = 0.05 fadeout_time = 0.05 [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_c1xvk"] -graph_offset = Vector2(-436.818, 45.2727) nodes/Animation/node = SubResource("AnimationNodeAnimation_fnfd8") nodes/Animation/position = Vector2(-200, 140) "nodes/Animation 2/node" = SubResource("AnimationNodeAnimation_xsp1s") @@ -5296,6 +5264,7 @@ node_connections = [&"output", 0, &"shot_attack", &"shot_attack", 0, &"Animation [node name="main" type="Node"] script = ExtResource("1_bcqi1") wage_penalty = 0.1 +bonus_count = 5 conveyor_speed = 0.7 convery_accel = 0.008 prop_spawn_dist = 1.3 @@ -5308,7 +5277,7 @@ props = Array[PackedScene]([ExtResource("9_4rk7e"), ExtResource("10_leqcn"), Ext [node name="world" type="Node3D" parent="."] [node name="WorldEnvironment" type="WorldEnvironment" parent="world"] -environment = SubResource("Environment_cpfbt") +environment = ExtResource("30_1njbs") [node name="ReflectionProbe" type="ReflectionProbe" parent="world"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.84619, -5.64636) @@ -5318,13 +5287,14 @@ enable_shadows = true [node name="SpotLight3D" type="SpotLight3D" parent="world"] transform = Transform3D(1, 0, 0, 0, 0.934733, 0.355352, 0, -0.355352, 0.934733, 0, 2.68605, 3.51837) +light_color = Color(1, 0.968627, 0.87451, 1) light_energy = 2.823 spot_range = 6.13117 spot_angle = 46.1437 [node name="SpotLight3D2" type="SpotLight3D" parent="world"] transform = Transform3D(1, 0, 0, 0, 0.0595678, 0.998224, 0, -0.998224, 0.0595678, 0, 10.1873, -9.5967) -light_color = Color(1, 0.101961, 0.101961, 1) +light_color = Color(0.909804, 0.435294, 0.490196, 1) light_energy = 2.823 spot_range = 25.4229 spot_attenuation = 0.732043 @@ -5353,31 +5323,31 @@ bones/2/scale = Vector3(1.01115, 1.01115, 1.01115) bones/3/rotation = Quaternion(0.52569, 0.289474, 0.105462, 0.792927) bones/3/scale = Vector3(0.731301, 0.731302, 0.731301) bones/4/rotation = Quaternion(0.0791671, 0.591145, 0.0117835, 0.802584) -bones/5/rotation = Quaternion(0.064732, 0.0390538, 0.0489371, 0.995937) -bones/6/rotation = Quaternion(0.148653, -0.0232256, -0.00737725, 0.988589) -bones/7/rotation = Quaternion(0.0989149, 0.0065539, -0.00186614, 0.995073) -bones/8/rotation = Quaternion(0.0288045, 0.899182, 0.429723, 0.0773259) +bones/5/rotation = Quaternion(-0.0903072, 0.0310028, 0.0543948, 0.993944) +bones/6/rotation = Quaternion(0.049692, -0.0223779, -0.00964877, 0.998467) +bones/7/rotation = Quaternion(-0.000442635, 0.00670694, -0.00120541, 0.999977) +bones/8/rotation = Quaternion(0.0105259, 0.832582, 0.548796, 0.0742895) bones/8/scale = Vector3(1, 1, 1) -bones/9/rotation = Quaternion(0.185325, -0.00979528, -0.00172842, 0.982627) -bones/10/rotation = Quaternion(-0.0180491, -0.00418089, -0.015674, 0.999706) +bones/9/rotation = Quaternion(-0.022277, -0.0181709, -0.00391638, 0.999579) +bones/10/rotation = Quaternion(-0.224809, -0.000841959, -0.0162008, 0.974268) bones/10/scale = Vector3(1, 1, 1) bones/11/rotation = Quaternion(0.00106178, 0.584364, -0.0154954, 0.811343) -bones/12/rotation = Quaternion(0.0801393, 0.0217532, 0.0243296, 0.996249) -bones/13/rotation = Quaternion(0.081645, -0.0345996, 0.0375262, 0.995354) +bones/12/rotation = Quaternion(-0.0181948, 0.0192559, 0.0263502, 0.999302) +bones/13/rotation = Quaternion(0.0188626, -0.0368921, 0.0352742, 0.998518) bones/13/scale = Vector3(1, 1, 1) -bones/14/rotation = Quaternion(0.0352186, -0.00692762, -0.011116, 0.999294) +bones/14/rotation = Quaternion(-0.0277198, -0.00621473, -0.0115299, 0.99953) bones/15/rotation = Quaternion(-0.0611887, 0.573124, -0.0421539, 0.816093) -bones/16/rotation = Quaternion(0.0383101, -0.0210182, 0.0344236, 0.998452) +bones/16/rotation = Quaternion(0.0281207, -0.0213683, 0.0342076, 0.998791) bones/16/scale = Vector3(1, 1, 1) -bones/17/rotation = Quaternion(0.0526036, -0.00515821, 0.0307915, 0.998127) +bones/17/rotation = Quaternion(0.0460958, -0.00535888, 0.0307568, 0.998449) bones/17/scale = Vector3(1, 1, 1) -bones/18/rotation = Quaternion(0.0236998, -0.0291246, 0.0247448, 0.998988) +bones/18/rotation = Quaternion(0.0171871, -0.0292853, 0.0245545, 0.999122) bones/18/scale = Vector3(1, 1, 1) bones/19/rotation = Quaternion(-0.15484, 0.544614, -0.0238322, 0.823925) -bones/20/rotation = Quaternion(0.0676451, -0.0126384, 0.0177676, 0.997471) -bones/21/rotation = Quaternion(0.0206376, 0.00145362, -0.0268861, 0.999424) +bones/20/rotation = Quaternion(0.134667, -0.0114131, 0.0185782, 0.990651) +bones/21/rotation = Quaternion(0.051579, 0.000620392, -0.0269184, 0.998306) bones/21/scale = Vector3(1, 1, 1) -bones/22/rotation = Quaternion(0.0227498, -0.0161194, 0.0696991, 0.997178) +bones/22/rotation = Quaternion(0.0536204, -0.0139533, 0.0701654, 0.995996) bones/22/scale = Vector3(1, 1, 1) [node name="Main_Body" parent="world/Armondo/rig/Skeleton3D" index="0"] @@ -5699,99 +5669,99 @@ bones/28/scale = Vector3(1.00001, 0.999972, 1.00001) bones/29/rotation = Quaternion(0.137653, 0.129111, 0.0826848, 0.978542) bones/29/scale = Vector3(0.979536, 1.0413, 0.981311) bones/30/rotation = Quaternion(0.024349, 0.587802, 0.0762459, 0.805036) -bones/31/rotation = Quaternion(0.242057, 0.04514, 0.0248795, 0.968892) -bones/32/rotation = Quaternion(0.134875, -0.0204553, 0.00535819, 0.990637) +bones/31/rotation = Quaternion(-0.0246638, 0.0368861, 0.036, 0.998366) +bones/32/rotation = Quaternion(-0.0426769, -0.021081, 0.00165063, 0.998865) bones/32/scale = Vector3(1, 1, 1) -bones/33/rotation = Quaternion(0.184105, 0.0053488, -0.00909135, 0.98285) -bones/34/rotation = Quaternion(-0.0932649, 0.747185, 0.345414, 0.560095) -bones/35/rotation = Quaternion(0.234566, -0.00777299, -0.00910263, 0.972026) -bones/36/rotation = Quaternion(0.035309, 0.00349147, 0.0261364, 0.999029) -bones/37/rotation = Quaternion(0.242057, 0.04514, 0.0248795, 0.968892) -bones/38/rotation = Quaternion(0.134875, -0.0204553, 0.00535819, 0.990637) +bones/33/rotation = Quaternion(0.0071547, 0.00687393, -0.00799986, 0.999919) +bones/34/rotation = Quaternion(-0.188124, 0.687709, 0.457229, 0.531608) +bones/35/rotation = Quaternion(0.00742151, -0.0149808, -0.0105665, 0.999804) +bones/36/rotation = Quaternion(-0.192855, -0.00254549, 0.0262442, 0.980873) +bones/37/rotation = Quaternion(-0.0246638, 0.0368861, 0.036, 0.998366) +bones/38/rotation = Quaternion(-0.0426769, -0.021081, 0.00165063, 0.998865) bones/38/scale = Vector3(1, 1, 1) -bones/39/rotation = Quaternion(0.184105, 0.0053488, -0.00909135, 0.98285) -bones/40/rotation = Quaternion(0.242057, 0.0451401, 0.024879, 0.968892) -bones/40/scale = Vector3(1, 0.892713, 1) -bones/41/rotation = Quaternion(-0.0932649, 0.747185, 0.345414, 0.560095) -bones/42/rotation = Quaternion(0.234566, -0.00777299, -0.00910263, 0.972026) -bones/43/rotation = Quaternion(0.035309, 0.00349147, 0.0261364, 0.999029) -bones/44/rotation = Quaternion(-0.0905008, 0.742685, 0.346148, 0.566048) -bones/44/scale = Vector3(1, 0.924507, 1) -bones/46/rotation = Quaternion(0.242058, 0.0451389, 0.0248794, 0.968892) +bones/39/rotation = Quaternion(0.0071547, 0.00687393, -0.00799986, 0.999919) +bones/40/rotation = Quaternion(-0.0246637, 0.0368861, 0.0360001, 0.998366) +bones/40/scale = Vector3(1.00283, 1.00604, 1.00283) +bones/41/rotation = Quaternion(-0.188124, 0.687709, 0.457229, 0.531608) +bones/42/rotation = Quaternion(0.00742151, -0.0149808, -0.0105665, 0.999804) +bones/43/rotation = Quaternion(-0.192855, -0.00254549, 0.0262442, 0.980873) +bones/44/rotation = Quaternion(-0.180105, 0.678315, 0.460448, 0.543543) +bones/44/scale = Vector3(1.0052, 1.07059, 1.0052) +bones/46/rotation = Quaternion(-0.0246627, 0.0368848, 0.0360002, 0.998366) bones/46/scale = Vector3(1, 1, 1) -bones/48/rotation = Quaternion(0.134876, -0.0204569, 0.0053587, 0.990637) +bones/48/rotation = Quaternion(-0.0426757, -0.0210825, 0.00165154, 0.998865) bones/48/scale = Vector3(1, 1, 1) -bones/50/rotation = Quaternion(0.184104, 0.00535082, -0.00909065, 0.98285) +bones/50/rotation = Quaternion(0.00715301, 0.00687601, -0.00799946, 0.999919) bones/50/scale = Vector3(1, 1, 1) -bones/52/rotation = Quaternion(-0.0755315, -3.70286e-08, 0.997143, -2.85504e-09) +bones/52/rotation = Quaternion(-0.0755315, -5.20828e-08, 0.997143, 3.94743e-09) bones/52/scale = Vector3(1, 1, 1) -bones/55/rotation = Quaternion(0.242057, 0.04514, 0.0248795, 0.968892) -bones/56/rotation = Quaternion(-0.0905002, 0.742684, 0.346148, 0.566049) -bones/58/rotation = Quaternion(0.234486, -8.09892e-06, -0.0109752, 0.972058) +bones/55/rotation = Quaternion(-0.0246638, 0.0368861, 0.036, 0.998366) +bones/56/rotation = Quaternion(-0.180104, 0.678315, 0.460448, 0.543543) +bones/58/rotation = Quaternion(0.0072362, 0.00248854, -0.0106894, 0.999914) bones/58/scale = Vector3(1, 1, 1) -bones/60/rotation = Quaternion(0.0353086, 0.00348867, 0.0261374, 0.999029) +bones/60/rotation = Quaternion(-0.192855, -0.00254796, 0.0262458, 0.980873) bones/62/rotation = Quaternion(0.884812, 3.32611e-06, 0.465948, -1.29939e-06) -bones/65/rotation = Quaternion(-0.0932649, 0.747185, 0.345414, 0.560095) +bones/65/rotation = Quaternion(-0.188124, 0.687709, 0.457229, 0.531608) bones/66/rotation = Quaternion(-0.0150627, 0.584674, 0.0037911, 0.811119) -bones/67/rotation = Quaternion(0.173028, 0.0238745, 0.0218131, 0.984386) +bones/67/rotation = Quaternion(-0.0896548, 0.0173604, 0.0272837, 0.995448) bones/67/scale = Vector3(1, 1, 1) -bones/68/rotation = Quaternion(0.184869, -0.0321809, 0.0279238, 0.981839) +bones/68/rotation = Quaternion(0.0143723, -0.0364791, 0.0220131, 0.998989) bones/68/scale = Vector3(1, 1, 1) -bones/69/rotation = Quaternion(0.200275, -0.0123083, -0.0424413, 0.978743) -bones/70/rotation = Quaternion(0.173028, 0.0238745, 0.0218131, 0.984386) +bones/69/rotation = Quaternion(0.0300815, -0.00487437, -0.0439214, 0.99857) +bones/70/rotation = Quaternion(-0.0896548, 0.0173604, 0.0272837, 0.995448) bones/70/scale = Vector3(1, 1, 1) -bones/71/rotation = Quaternion(0.184869, -0.0321809, 0.0279238, 0.981839) +bones/71/rotation = Quaternion(0.0143723, -0.0364791, 0.0220131, 0.998989) bones/71/scale = Vector3(1, 1, 1) -bones/72/rotation = Quaternion(0.200275, -0.0123083, -0.0424413, 0.978743) -bones/73/rotation = Quaternion(0.173028, 0.0238745, 0.0218129, 0.984386) -bones/73/scale = Vector3(1, 0.90047, 1) -bones/75/rotation = Quaternion(0.173029, 0.0238736, 0.0218129, 0.984386) +bones/72/rotation = Quaternion(0.0300815, -0.00487437, -0.0439214, 0.99857) +bones/73/rotation = Quaternion(-0.089655, 0.0173604, 0.0272839, 0.995448) +bones/73/scale = Vector3(1.00138, 1.00979, 1.00138) +bones/75/rotation = Quaternion(-0.0896541, 0.0173595, 0.0272837, 0.995448) bones/75/scale = Vector3(1, 1, 1) -bones/77/rotation = Quaternion(0.184871, -0.032183, 0.0279235, 0.981839) +bones/77/rotation = Quaternion(0.0143746, -0.0364812, 0.0220134, 0.998988) bones/77/scale = Vector3(1, 1, 1) -bones/79/rotation = Quaternion(0.200278, -0.0123113, -0.0424427, 0.978742) +bones/79/rotation = Quaternion(0.0300841, -0.00487762, -0.0439222, 0.99857) bones/80/rotation = Quaternion(-3.08873e-06, 3.24659e-06, 8.01869e-07, 1) -bones/81/rotation = Quaternion(0.028989, 8.18805e-09, 0.99958, -5.23975e-09) +bones/81/rotation = Quaternion(0.028989, -1.06754e-08, 0.99958, 1.15049e-09) bones/81/scale = Vector3(1, 1, 1) -bones/84/rotation = Quaternion(0.173028, 0.0238745, 0.0218131, 0.984386) +bones/84/rotation = Quaternion(-0.0896548, 0.0173604, 0.0272837, 0.995448) bones/84/scale = Vector3(1, 1, 1) bones/85/rotation = Quaternion(-0.0536367, 0.572428, -0.051421, 0.816581) bones/85/scale = Vector3(1, 1, 1) -bones/86/rotation = Quaternion(0.13415, -0.0175976, 0.0363963, 0.990136) -bones/87/rotation = Quaternion(0.158084, -0.0033776, 0.0159898, 0.98729) -bones/88/rotation = Quaternion(0.175479, -0.0280704, -0.00798769, 0.984051) -bones/89/rotation = Quaternion(0.13415, -0.0175976, 0.0363963, 0.990136) -bones/90/rotation = Quaternion(0.158084, -0.0033776, 0.0159898, 0.98729) -bones/91/rotation = Quaternion(0.175479, -0.0280704, -0.00798769, 0.984051) -bones/92/rotation = Quaternion(0.13415, -0.0175977, 0.0363962, 0.990136) -bones/92/scale = Vector3(1, 0.917952, 1) -bones/94/rotation = Quaternion(0.134151, -0.0175979, 0.0363966, 0.990136) +bones/86/rotation = Quaternion(-0.0904533, -0.0252843, 0.0315446, 0.99508) +bones/87/rotation = Quaternion(0.0137011, -0.00565363, 0.0153334, 0.999773) +bones/88/rotation = Quaternion(0.0313818, -0.0266214, -0.011961, 0.999081) +bones/89/rotation = Quaternion(-0.0904533, -0.0252843, 0.0315446, 0.99508) +bones/90/rotation = Quaternion(0.0137011, -0.00565363, 0.0153334, 0.999773) +bones/91/rotation = Quaternion(0.0313818, -0.0266214, -0.011961, 0.999081) +bones/92/rotation = Quaternion(-0.0904533, -0.0252844, 0.0315446, 0.99508) +bones/92/scale = Vector3(1.00026, 1.01031, 1.00026) +bones/94/rotation = Quaternion(-0.090453, -0.0252847, 0.0315449, 0.99508) bones/95/rotation = Quaternion(-2.952e-07, 2.49594e-07, -2.64961e-07, 1) -bones/96/rotation = Quaternion(0.158085, -0.0033785, 0.0159892, 0.98729) -bones/98/rotation = Quaternion(0.175476, -0.0280677, -0.00798612, 0.984051) +bones/96/rotation = Quaternion(0.013702, -0.0056544, 0.0153329, 0.999773) +bones/98/rotation = Quaternion(0.031379, -0.0266184, -0.0119597, 0.999082) bones/98/scale = Vector3(1, 1, 1) -bones/100/rotation = Quaternion(0.135625, -8.17917e-08, 0.99076, 5.94618e-09) -bones/103/rotation = Quaternion(0.13415, -0.0175976, 0.0363963, 0.990136) +bones/100/rotation = Quaternion(0.135625, -9.16855e-08, 0.99076, 6.60679e-09) +bones/103/rotation = Quaternion(-0.0904533, -0.0252843, 0.0315446, 0.99508) bones/104/rotation = Quaternion(-0.0646238, 0.533247, -0.142714, 0.831327) bones/104/scale = Vector3(1, 1, 1) -bones/105/rotation = Quaternion(0.0551059, -0.0070247, 0.0599204, 0.996656) -bones/106/rotation = Quaternion(0.112857, -0.00227401, -0.0382723, 0.992871) +bones/105/rotation = Quaternion(-0.126982, -0.0177998, 0.0576449, 0.990069) +bones/106/rotation = Quaternion(-0.017219, 0.0027228, -0.0382435, 0.999116) bones/106/scale = Vector3(1, 1, 1) -bones/107/rotation = Quaternion(0.175576, -0.00698625, 0.0334527, 0.983873) -bones/108/rotation = Quaternion(0.0551059, -0.0070247, 0.0599204, 0.996656) -bones/109/rotation = Quaternion(0.112857, -0.00227401, -0.0382723, 0.992871) +bones/107/rotation = Quaternion(0.0461369, -0.0112772, 0.0322609, 0.99835) +bones/108/rotation = Quaternion(-0.126982, -0.0177998, 0.0576449, 0.990069) +bones/109/rotation = Quaternion(-0.017219, 0.0027228, -0.0382435, 0.999116) bones/109/scale = Vector3(1, 1, 1) -bones/110/rotation = Quaternion(0.175576, -0.00698625, 0.0334527, 0.983873) -bones/111/rotation = Quaternion(0.0551059, -0.00702469, 0.0599202, 0.996656) -bones/111/scale = Vector3(1, 0.929485, 1) +bones/110/rotation = Quaternion(0.0461369, -0.0112772, 0.0322609, 0.99835) +bones/111/rotation = Quaternion(-0.126982, -0.0177998, 0.0576451, 0.990069) +bones/111/scale = Vector3(1.00965, 1.01251, 1.00965) bones/112/rotation = Quaternion(2.7474e-08, 3.72529e-09, -1.86265e-09, 1) -bones/113/rotation = Quaternion(0.0551063, -0.00702504, 0.0599202, 0.996656) +bones/113/rotation = Quaternion(-0.126982, -0.0178002, 0.057645, 0.990069) bones/113/scale = Vector3(1, 1, 1) -bones/115/rotation = Quaternion(0.11286, -0.00227629, -0.0382738, 0.992871) -bones/117/rotation = Quaternion(0.175572, -0.00698327, 0.0334527, 0.983873) +bones/115/rotation = Quaternion(-0.0172165, 0.00272035, -0.0382448, 0.999116) +bones/117/rotation = Quaternion(0.0461334, -0.0112743, 0.0322605, 0.998351) bones/118/rotation = Quaternion(3.45754e-06, -3.00538e-06, 5.0338e-07, 1) bones/119/rotation = Quaternion(0.164736, 2.91293e-07, 0.986338, 7.60808e-07) -bones/122/rotation = Quaternion(0.0551059, -0.0070247, 0.0599204, 0.996656) +bones/122/rotation = Quaternion(-0.126982, -0.0177998, 0.0576449, 0.990069) bones/123/rotation = Quaternion(-0.0646238, 0.533247, -0.142714, 0.831327) bones/123/scale = Vector3(1, 1, 1) bones/124/rotation = Quaternion(0.707107, 0, 0, 0.707107) diff --git a/project.godot b/project.godot index 053e8af..df9d332 100644 --- a/project.godot +++ b/project.godot @@ -21,6 +21,7 @@ config/icon="res://assets/env/bezos_ball.png" [autoload] CameraRumble="*res://scripts/camera_rumble.gd" +Scoring="*res://scripts/scoring.gd" [input] @@ -51,3 +52,4 @@ fullscreen={ [rendering] anti_aliasing/quality/msaa_3d=1 +environment/defaults/default_environment="res://assets/env/env_main.tres" diff --git a/props/bombs/item_nuke.tscn b/props/bombs/item_nuke.tscn index cfe0c59..e4b942d 100644 --- a/props/bombs/item_nuke.tscn +++ b/props/bombs/item_nuke.tscn @@ -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="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="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"] @@ -16,7 +15,6 @@ gravity_scale = 1.2 max_contacts_reported = 2 contact_monitor = true script = ExtResource("1_qrltu") -explosion = ExtResource("2_1x4qn") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] mesh = ExtResource("4_xhr4y") diff --git a/props/shelves/shelf.gd b/props/shelves/shelf.gd new file mode 100644 index 0000000..501c92e --- /dev/null +++ b/props/shelves/shelf.gd @@ -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) diff --git a/props/shelves/shelf.tscn b/props/shelves/shelf.tscn index 0e6f08e..db0f098 100644 --- a/props/shelves/shelf.tscn +++ b/props/shelves/shelf.tscn @@ -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="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"] [sub_resource type="BoxShape3D" id="BoxShape3D_da465"] @@ -9,6 +10,9 @@ size = Vector3(3.02141, 4.27834, 0.811) [node name="Shelf" type="RigidBody3D"] collision_mask = 9 mass = 100.0 +max_contacts_reported = 4 +contact_monitor = true +script = ExtResource("1_by2ku") [node name="Shelves" type="MeshInstance3D" parent="."] 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="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.15317, -0.005) 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"] diff --git a/score_screen.gd b/score_screen.gd new file mode 100644 index 0000000..e90532d --- /dev/null +++ b/score_screen.gd @@ -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() diff --git a/score_screen.tscn b/score_screen.tscn new file mode 100644 index 0000000..0e47942 --- /dev/null +++ b/score_screen.tscn @@ -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"] diff --git a/scripts/packageitem.gd b/scripts/packageitem.gd index e22c7ee..23ad15f 100644 --- a/scripts/packageitem.gd +++ b/scripts/packageitem.gd @@ -9,7 +9,9 @@ signal collide(time: float) @onready var last_position: Array[Vector3] = [] @onready var last_collision_count: int = 0 -@export var explosion: PackedScene +@export var explosion: PackedScene = preload("res://props/explosion/nuke_blast.tscn") +@onready var random_explosion_delay: float = -1.0 +const RANDOM_EXPLOSION_CHANCE: float = 1.0 / 50.0 func _init() -> void: freeze_mode = RigidBody3D.FREEZE_MODE_STATIC @@ -17,6 +19,12 @@ func _ready() -> void: pass func _physics_process(delta): + if random_explosion_delay > 0: + random_explosion_delay -= delta + if random_explosion_delay <= 0: + detonate() + return + if held: global_transform.origin = CameraRumble.get_mouse_pos() last_position.push_front(global_position) @@ -38,6 +46,10 @@ func _input_event(camera: Camera3D, event: InputEvent, position: Vector3, normal func pickup(): if held: return + + if randf() < RANDOM_EXPLOSION_CHANCE: + random_explosion_delay = randf_range(0.05,5.0) + #freeze = true CameraRumble.emit_signal("grab") CameraRumble.holding = true diff --git a/scripts/scoring.gd b/scripts/scoring.gd new file mode 100644 index 0000000..d25c3ef --- /dev/null +++ b/scripts/scoring.gd @@ -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