diff --git a/assets/item_placement_marker/Highlight.material b/assets/item_placement_marker/Highlight.material index caef518..b4e1348 100644 Binary files a/assets/item_placement_marker/Highlight.material and b/assets/item_placement_marker/Highlight.material differ diff --git a/assets/rover_level/Arrow_MAT.tres b/assets/rover_level/Arrow_MAT.tres new file mode 100644 index 0000000..29e9c4e --- /dev/null +++ b/assets/rover_level/Arrow_MAT.tres @@ -0,0 +1,8 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=2] + +[ext_resource path="res://shaders/simple_rgba.gdshader" type="Shader" id=1] + +[resource] +shader = ExtResource( 1 ) +shader_param/color = Color( 0.435294, 0.905882, 0.470588, 1 ) +shader_param/alpha = 1.0 diff --git a/assets/rover_level/DoorGasket_MAT_001.material b/assets/rover_level/DoorGasket_MAT_001.material new file mode 100644 index 0000000..6ee3853 Binary files /dev/null and b/assets/rover_level/DoorGasket_MAT_001.material differ diff --git a/assets/rover_level/Hallway_MAT_001.material b/assets/rover_level/Hallway_MAT_001.material new file mode 100644 index 0000000..b21b804 Binary files /dev/null and b/assets/rover_level/Hallway_MAT_001.material differ diff --git a/assets/rover_level/Hallway_Window_MAT_001.material b/assets/rover_level/Hallway_Window_MAT_001.material new file mode 100644 index 0000000..1b5d587 Binary files /dev/null and b/assets/rover_level/Hallway_Window_MAT_001.material differ diff --git a/assets/rover_level/Moulding_MAT_001.material b/assets/rover_level/Moulding_MAT_001.material new file mode 100644 index 0000000..376c467 Binary files /dev/null and b/assets/rover_level/Moulding_MAT_001.material differ diff --git a/assets/rover_level/RoverGame.glb b/assets/rover_level/RoverGame.glb index 9dbcdd1..d109b13 100644 Binary files a/assets/rover_level/RoverGame.glb and b/assets/rover_level/RoverGame.glb differ diff --git a/assets/rover_level/Wall01_MAT_001.material b/assets/rover_level/Wall01_MAT_001.material new file mode 100644 index 0000000..8d55402 Binary files /dev/null and b/assets/rover_level/Wall01_MAT_001.material differ diff --git a/scenes/main.tscn b/scenes/main.tscn index db850bc..c235097 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -89,6 +89,9 @@ __meta__ = { "_edit_group_": true } +[node name="CollisionShape" parent="Level/Wall_Shortest Y2/Wall_Shortest Y2" index="0"] +transform = Transform( 1, 0, -7.45058e-09, 0, 1, 0, 0, 0, 1, -0.0327864, -5.72205e-06, 0.855087 ) + [node name="Player" parent="." instance=ExtResource( 3 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.35996 ) hunger_tick_time = 75.0 diff --git a/scenes/player.tscn b/scenes/player.tscn index 2691b97..faa99f0 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -527,7 +527,7 @@ nodes/Blink/position = Vector2( 120, 200 ) nodes/Move/node = SubResource( 16 ) nodes/Move/position = Vector2( -146.667, 200 ) nodes/output/position = Vector2( 586.667, 200 ) -node_connections = [ "Activate", 0, "Blink", "Activate", 1, "Animation 2", "Blink", 0, "Move", "Blink", 1, "Animation", "output", 0, "Activate" ] +node_connections = [ "output", 0, "Activate", "Activate", 0, "Blink", "Activate", 1, "Animation 2", "Blink", 0, "Move", "Blink", 1, "Animation" ] [sub_resource type="AnimationNodeStateMachinePlayback" id=17] @@ -714,7 +714,7 @@ mesh = SubResource( 1 ) skin = SubResource( 2 ) [node name="head_bone" type="BoneAttachment" parent="model_transform/DungMan/Armature/Skeleton" index="1"] -transform = Transform( 1, -2.19553e-16, 3.12257e-17, 1.20139e-18, 0.146168, 0.98926, -2.21759e-16, -0.98926, 0.146168, -3.30075e-16, -0.0808508, -1.51061 ) +transform = Transform( 1, -2.19238e-16, 3.51804e-17, -3.23758e-21, 0.158425, 0.987371, -2.22043e-16, -0.987371, 0.158425, -3.30314e-16, -0.0788449, -1.5077 ) bone_name = "Item" [node name="ItemSpawn" type="Spatial" parent="model_transform/DungMan/Armature/Skeleton/head_bone"] diff --git a/scenes/rover.tscn b/scenes/rover.tscn index 4738bde..b88825c 100644 --- a/scenes/rover.tscn +++ b/scenes/rover.tscn @@ -43,7 +43,7 @@ shape = SubResource( 9 ) transform = Transform( 2.3073, 0, 0, 0, 2.3073, 0, 0, 0, 2.3073, 0, 0, 0 ) [node name="exit_interact_box" type="Area" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1.71935 ) +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 2.37673, 0, 1, 1.02186 ) collision_layer = 2 collision_mask = 64 diff --git a/scenes/rover_game.tscn b/scenes/rover_game.tscn index 0d00bfd..cca289c 100644 --- a/scenes/rover_game.tscn +++ b/scenes/rover_game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://scenes/rover.tscn" type="PackedScene" id=1] [ext_resource path="res://item_types/crystal.tres" type="Resource" id=2] @@ -7,6 +7,8 @@ [ext_resource path="res://scripts/rover_camera.gd" type="Script" id=5] [ext_resource path="res://scripts/rover_game.gd" type="Script" id=6] [ext_resource path="res://item_types/geode.tres" type="Resource" id=7] +[ext_resource path="res://assets/rover_level/Material_002.material" type="Material" id=8] +[ext_resource path="res://assets/rover_level/Arrow_MAT.tres" type="Material" id=9] [sub_resource type="BoxShape" id=7] extents = Vector3( 2.00704, 1, 1 ) @@ -24,8 +26,24 @@ ssao_edge_sharpness = 0.0 [sub_resource type="BoxShape" id=8] extents = Vector3( 100, 1, 400 ) +[sub_resource type="ArrayMesh" id=11] +resource_name = "RoverGame_Cube008" +surfaces/0 = { +"aabb": AABB( -2.40302, -1, -6.1918, 4.80604, 2, 7.19181 ), +"array_data": PoolByteArray( 0, 0, 128, 191, 0, 0, 128, 191, 0, 0, 128, 63, 129, 0, 0, 127, 0, 54, 0, 60, 0, 0, 128, 191, 0, 0, 128, 191, 0, 0, 128, 63, 0, 129, 127, 63, 0, 48, 0, 52, 0, 0, 128, 191, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 0, 127, 0, 54, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 129, 0, 0, 127, 0, 57, 0, 60, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 127, 0, 57, 0, 0, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 129, 63, 0, 59, 0, 52, 0, 0, 128, 191, 0, 0, 128, 191, 64, 44, 58, 192, 129, 0, 0, 127, 0, 54, 0, 58, 0, 0, 128, 191, 0, 0, 128, 191, 64, 44, 58, 192, 0, 129, 127, 63, 0, 48, 0, 56, 0, 0, 128, 191, 0, 0, 128, 191, 64, 44, 58, 192, 0, 129, 127, 63, 0, 48, 0, 56, 0, 0, 128, 191, 0, 0, 128, 191, 64, 44, 58, 192, 0, 0, 127, 193, 0, 54, 0, 58, 0, 0, 128, 191, 0, 0, 128, 63, 64, 44, 58, 192, 129, 0, 0, 127, 0, 57, 0, 58, 0, 0, 128, 191, 0, 0, 128, 63, 64, 44, 58, 192, 0, 0, 127, 193, 0, 57, 0, 58, 0, 0, 128, 191, 0, 0, 128, 63, 64, 44, 58, 192, 0, 127, 127, 63, 0, 59, 0, 56, 0, 0, 128, 191, 0, 0, 128, 63, 64, 44, 58, 192, 0, 127, 127, 63, 0, 59, 0, 56, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 63, 0, 129, 127, 63, 0, 54, 0, 52, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 63, 0, 0, 0, 127, 0, 54, 0, 52, 0, 0, 128, 63, 0, 0, 128, 191, 0, 0, 128, 63, 127, 0, 0, 127, 0, 54, 0, 52, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 127, 0, 57, 0, 52, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 127, 129, 63, 0, 57, 0, 52, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 127, 0, 0, 127, 0, 57, 0, 52, 0, 0, 128, 63, 0, 0, 128, 191, 64, 44, 58, 192, 0, 129, 127, 63, 0, 54, 0, 56, 0, 0, 128, 63, 0, 0, 128, 191, 64, 44, 58, 192, 0, 129, 127, 63, 0, 54, 0, 56, 0, 0, 128, 63, 0, 0, 128, 191, 64, 44, 58, 192, 0, 0, 127, 193, 0, 54, 0, 56, 0, 0, 128, 63, 0, 0, 128, 191, 64, 44, 58, 192, 127, 0, 0, 127, 0, 54, 0, 56, 0, 0, 128, 63, 0, 0, 128, 63, 64, 44, 58, 192, 0, 0, 127, 193, 0, 57, 0, 56, 0, 0, 128, 63, 0, 0, 128, 63, 64, 44, 58, 192, 0, 127, 127, 63, 0, 57, 0, 56, 0, 0, 128, 63, 0, 0, 128, 63, 64, 44, 58, 192, 0, 127, 127, 63, 0, 57, 0, 56, 0, 0, 128, 63, 0, 0, 128, 63, 64, 44, 58, 192, 127, 0, 0, 127, 0, 57, 0, 56, 116, 69, 37, 190, 0, 0, 128, 63, 67, 35, 198, 192, 129, 51, 127, 63, 0, 57, 0, 58, 116, 69, 37, 190, 0, 0, 128, 63, 67, 35, 198, 192, 127, 127, 0, 127, 0, 57, 0, 58, 116, 69, 37, 190, 0, 0, 128, 63, 67, 35, 198, 192, 0, 127, 127, 63, 0, 59, 0, 56, 116, 69, 37, 190, 0, 0, 128, 63, 67, 35, 198, 192, 0, 127, 127, 63, 0, 59, 0, 56, 116, 69, 37, 190, 0, 0, 128, 191, 67, 35, 198, 192, 129, 51, 127, 63, 0, 54, 0, 58, 116, 69, 37, 190, 0, 0, 128, 191, 67, 35, 198, 192, 0, 129, 127, 63, 0, 48, 0, 56, 116, 69, 37, 190, 0, 0, 128, 191, 67, 35, 198, 192, 0, 129, 127, 63, 0, 48, 0, 56, 116, 69, 37, 190, 0, 0, 128, 191, 67, 35, 198, 192, 127, 127, 0, 127, 0, 54, 0, 58, 116, 69, 37, 62, 0, 0, 128, 191, 67, 35, 198, 192, 0, 129, 127, 63, 0, 54, 0, 56, 116, 69, 37, 62, 0, 0, 128, 191, 67, 35, 198, 192, 0, 129, 127, 63, 0, 54, 0, 56, 116, 69, 37, 62, 0, 0, 128, 191, 67, 35, 198, 192, 127, 127, 0, 127, 0, 54, 0, 56, 116, 69, 37, 62, 0, 0, 128, 191, 67, 35, 198, 192, 127, 51, 127, 63, 0, 54, 0, 56, 116, 69, 37, 62, 0, 0, 128, 63, 67, 35, 198, 192, 127, 127, 0, 127, 0, 57, 0, 56, 116, 69, 37, 62, 0, 0, 128, 63, 67, 35, 198, 192, 0, 127, 127, 63, 0, 57, 0, 56, 116, 69, 37, 62, 0, 0, 128, 63, 67, 35, 198, 192, 0, 127, 127, 63, 0, 57, 0, 56, 116, 69, 37, 62, 0, 0, 128, 63, 67, 35, 198, 192, 127, 51, 127, 63, 0, 57, 0, 56, 13, 203, 25, 192, 0, 0, 128, 63, 64, 44, 58, 192, 129, 51, 127, 63, 0, 57, 0, 58, 13, 203, 25, 192, 0, 0, 128, 63, 64, 44, 58, 192, 0, 0, 127, 193, 0, 57, 0, 58, 13, 203, 25, 192, 0, 0, 128, 63, 64, 44, 58, 192, 0, 127, 127, 63, 0, 59, 0, 56, 13, 203, 25, 192, 0, 0, 128, 191, 64, 44, 58, 192, 129, 51, 127, 63, 0, 54, 0, 58, 13, 203, 25, 192, 0, 0, 128, 191, 64, 44, 58, 192, 0, 129, 127, 63, 0, 48, 0, 56, 13, 203, 25, 192, 0, 0, 128, 191, 64, 44, 58, 192, 0, 0, 127, 193, 0, 54, 0, 58, 13, 203, 25, 64, 0, 0, 128, 63, 64, 44, 58, 192, 0, 0, 127, 193, 0, 57, 0, 56, 13, 203, 25, 64, 0, 0, 128, 63, 64, 44, 58, 192, 0, 127, 127, 63, 0, 57, 0, 56, 13, 203, 25, 64, 0, 0, 128, 63, 64, 44, 58, 192, 127, 51, 127, 63, 0, 57, 0, 56, 13, 203, 25, 64, 0, 0, 128, 191, 64, 44, 58, 192, 0, 129, 127, 63, 0, 54, 0, 56, 13, 203, 25, 64, 0, 0, 128, 191, 64, 44, 58, 192, 0, 0, 127, 193, 0, 54, 0, 56, 13, 203, 25, 64, 0, 0, 128, 191, 64, 44, 58, 192, 127, 51, 127, 63, 0, 54, 0, 56 ), +"array_index_data": PoolByteArray( 0, 0, 10, 0, 3, 0, 0, 0, 6, 0, 10, 0, 28, 0, 47, 0, 32, 0, 28, 0, 44, 0, 47, 0, 23, 0, 19, 0, 27, 0, 23, 0, 16, 0, 19, 0, 15, 0, 4, 0, 17, 0, 15, 0, 2, 0, 4, 0, 7, 0, 14, 0, 20, 0, 7, 0, 1, 0, 14, 0, 26, 0, 5, 0, 13, 0, 26, 0, 18, 0, 5, 0, 35, 0, 40, 0, 29, 0, 35, 0, 38, 0, 40, 0, 21, 0, 34, 0, 8, 0, 21, 0, 37, 0, 34, 0, 12, 0, 41, 0, 25, 0, 12, 0, 30, 0, 41, 0, 9, 0, 45, 0, 11, 0, 9, 0, 49, 0, 45, 0, 13, 0, 46, 0, 31, 0, 42, 0, 51, 0, 26, 0, 24, 0, 54, 0, 22, 0, 24, 0, 50, 0, 54, 0, 39, 0, 52, 0, 43, 0, 39, 0, 55, 0, 52, 0, 33, 0, 48, 0, 7, 0, 20, 0, 53, 0, 36, 0 ), +"blend_shape_data": [ ], +"format": 2194711, +"index_count": 84, +"material": ExtResource( 8 ), +"primitive": 4, +"skeleton_aabb": [ ], +"vertex_count": 56 +} + [node name="rover_game" type="Spatial"] script = ExtResource( 6 ) +arrow_viz_distance = 15.0 loot_items = [ ExtResource( 7 ), ExtResource( 2 ), ExtResource( 3 ) ] loot_weights = [ 60, 25, 15 ] @@ -34,8 +52,12 @@ __meta__ = { "_edit_group_": true } +[node name="Arrow" parent="RoverGame" index="7"] +visible = false + [node name="rover" parent="." instance=ExtResource( 1 )] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0511061, 50 ) +unique_name_in_owner = true +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0511061, 7.27312 ) mass = 2.0 [node name="Camera" type="Camera" parent="rover/visual" index="2"] @@ -219,7 +241,7 @@ transform = Transform( 0.866025, 2.18557e-08, -0.5, 0.5, -3.78552e-08, 0.866025, shadow_enabled = true [node name="exit_trigger" type="Area" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.225982, -7.75334 ) +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1.25529, 0, 0.225982, -7.17776 ) collision_layer = 64 collision_mask = 2 @@ -227,6 +249,12 @@ collision_mask = 2 transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.844644, -0.601815 ) shape = SubResource( 7 ) +[node name="LevelArrow" type="MeshInstance" parent="."] +unique_name_in_owner = true +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.689029, 16.3183 ) +mesh = SubResource( 11 ) +material/0 = ExtResource( 9 ) + [connection signal="rover_exit_level" from="rover" to="." method="_on_rover_rover_exit_level"] [connection signal="area_entered" from="collection_area" to="." method="_on_collection_area_area_entered"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/scripts/rover_game.gd b/scripts/rover_game.gd index ab220d9..25f0af8 100644 --- a/scripts/rover_game.gd +++ b/scripts/rover_game.gd @@ -7,8 +7,11 @@ const LootTable = preload("res://scripts/loot_table.gd") const RockScene = preload("res://scenes/rock.tscn") onready var timer : Timer = $Timer +onready var rover = $"%rover" +onready var level_arrow = $"%LevelArrow" export var play_time: float = 20.0 +export var arrow_viz_distance = 10.0 export (Array,Resource) var loot_items = [] export (Array,int) var loot_weights = [] @@ -37,6 +40,10 @@ func _on_collection_area_area_entered(area): func _process(delta): $"%progress_bar".value = timer.time_left * 100.0 / timer.wait_time + var dir_vec : Vector3 = level_arrow.transform.origin - rover.transform.origin + var distance = dir_vec.length() - arrow_viz_distance + var pct = 0.0 if distance < 0 else (distance / arrow_viz_distance) + level_arrow.get_active_material(0).set_shader_param("alpha", pct) func _on_Timer_timeout(): emit_signal("game_over") diff --git a/shaders/simple_rgba.gdshader b/shaders/simple_rgba.gdshader new file mode 100644 index 0000000..e43e681 --- /dev/null +++ b/shaders/simple_rgba.gdshader @@ -0,0 +1,11 @@ +shader_type spatial; +render_mode blend_mix, cull_disabled, depth_draw_alpha_prepass, shadows_disabled; + +uniform vec4 color : hint_color; +uniform float alpha : hint_range(0.0, 1.0) = 1.0; + +void fragment() +{ + ALPHA = alpha; + ALBEDO = color.rgb; +}