[gd_scene load_steps=12 format=3 uid="uid://1feccd321600"] [ext_resource type="Script" path="res://scenes/maps/level_runtime.gd" id="1_rt"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_grey"] albedo_color = Color(0.08, 0.09, 0.11, 1) metallic = 0.7 roughness = 0.15 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_blue"] albedo_color = Color(0, 0.05, 0.1, 1) emission_enabled = true emission = Color(0.1, 0.6, 1.0, 1) emission_energy_multiplier = 3.5 roughness = 0.4 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_glass"] albedo_color = Color(0.2, 0.8, 0.9, 0.2) transparency = 1 roughness = 0.05 metallic = 0.9 emission_enabled = true emission = Color(0.1, 0.4, 0.8, 1) emission_energy_multiplier = 0.5 [sub_resource type="Shader" id="Shader_lava"] code = "shader_type spatial; uniform sampler2D noise_tex : repeat_enable; uniform vec4 emission_color : source_color; varying vec3 world_pos; void vertex() { world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz; } void fragment() { vec3 blend = abs(NORMAL); blend /= dot(blend, vec3(1.0)); vec2 flow = TIME * vec2(0.02, 0.05); vec2 uvX = world_pos.zy * 0.1 + flow; vec2 uvY = world_pos.xz * 0.1 + flow; vec2 uvZ = world_pos.xy * 0.1 + flow; float nX = texture(noise_tex, uvX).r; float nY = texture(noise_tex, uvY).r; float nZ = texture(noise_tex, uvZ).r; float n = nX * blend.x + nY * blend.y + nZ * blend.z; float lava = smoothstep(0.3, 0.6, n); ALBEDO = vec3(0.05, 0.01, 0.0); EMISSION = emission_color.rgb * lava * 6.0; }" [sub_resource type="FastNoiseLite" id="FastNoiseLite_lava"] noise_type = 2 frequency = 0.05 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lava"] seamless = true noise = SubResource("FastNoiseLite_lava") [sub_resource type="ShaderMaterial" id="StandardMaterial3D_orange"] shader = SubResource("Shader_lava") shader_parameter/emission_color = Color(1.0, 0.4, 0.0, 1) shader_parameter/noise_tex = SubResource("NoiseTexture2D_lava") [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_xxxx"] sky_top_color = Color(0.05, 0.08, 0.12, 1) sky_horizon_color = Color(0.15, 0.2, 0.25, 1) ground_bottom_color = Color(0.02, 0.03, 0.05, 1) ground_horizon_color = Color(0.15, 0.2, 0.25, 1) [sub_resource type="Sky" id="Sky_xxxx"] sky_material = SubResource("ProceduralSkyMaterial_xxxx") [sub_resource type="Environment" id="Environment_xxxx"] background_mode = 2 sky = SubResource("Sky_xxxx") ambient_light_source = 2 ambient_light_color = Color(0.2, 0.25, 0.35, 1) ambient_light_energy = 1.0 tonemap_mode = 3 glow_enabled = true glow_intensity = 1.5 glow_bloom = 0.2 glow_hdr_threshold = 1.0 sdfgi_enabled = true sdfgi_use_occlusion = true ssao_enabled = true ssil_enabled = true volumetric_fog_enabled = true volumetric_fog_density = 0.015 volumetric_fog_albedo = Color(0.3, 0.5, 0.8, 1) volumetric_fog_emission = Color(0.02, 0.05, 0.1, 1) [node name="MapRoot" type="CSGCombiner3D"] use_collision = true script = ExtResource("1_rt") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_xxxx") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 0, 20, 0) shadow_enabled = true light_color = Color(0.8, 0.9, 1.0, 1) light_energy = 0.3 [node name="Spawn1" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 4, 0) [node name="Spawn2" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 4, 0) [node name="Spawn3" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 2, -45) [node name="Spawn4" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 2, -45) [node name="Spawn5" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 2, -15) [node name="Spawn6" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 2, -15) [node name="Spawn7" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 8, 0) [node name="Spawn8" type="Marker3D" parent="." groups=["spawn_points"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 8, 0) [node name="FloorBound" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0) size = Vector3(120, 4, 120) material = SubResource("StandardMaterial3D_grey") [node name="CeilingBound" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 30, 0) size = Vector3(120, 2, 120) material = SubResource("StandardMaterial3D_grey") [node name="WallN" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 14, -60) size = Vector3(120, 32, 2) material = SubResource("StandardMaterial3D_grey") [node name="WallS" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 14, 60) size = Vector3(120, 32, 2) material = SubResource("StandardMaterial3D_grey") [node name="WallE" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 60, 14, 0) size = Vector3(2, 32, 120) material = SubResource("StandardMaterial3D_grey") [node name="WallW" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -60, 14, 0) size = Vector3(2, 32, 120) material = SubResource("StandardMaterial3D_grey") [node name="CenterPlat" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0) size = Vector3(20, 2, 20) material = SubResource("StandardMaterial3D_grey") [node name="CenterDivot" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0) size = Vector3(16, 2, 16) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="CenterNeon" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0) size = Vector3(6, 0.5, 6) material = SubResource("StandardMaterial3D_blue") [node name="PillarC1" type="CSGCylinder3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 2, -8) radius = 1 height = 10 material = SubResource("StandardMaterial3D_orange") [node name="PillarC2" type="CSGCylinder3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2, -8) radius = 1 height = 10 material = SubResource("StandardMaterial3D_orange") [node name="PillarC3" type="CSGCylinder3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 2, 8) radius = 1 height = 10 material = SubResource("StandardMaterial3D_orange") [node name="PillarC4" type="CSGCylinder3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2, 8) radius = 1 height = 10 material = SubResource("StandardMaterial3D_orange") [node name="BridgeN" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, -18) size = Vector3(6, 1, 16) material = SubResource("StandardMaterial3D_glass") [node name="BridgeS" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 18) size = Vector3(6, 1, 16) material = SubResource("StandardMaterial3D_glass") [node name="BridgeE" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 6, 0) size = Vector3(16, 1, 6) material = SubResource("StandardMaterial3D_glass") [node name="BridgeW" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 6, 0) size = Vector3(16, 1, 6) material = SubResource("StandardMaterial3D_glass") [node name="GrappleAnchor1" type="CSGBox3D" parent="."] transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, -15, 20, -15) size = Vector3(2, 2, 2) material = SubResource("StandardMaterial3D_orange") [node name="GrappleAnchor2" type="CSGBox3D" parent="."] transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, 15, 20, 15) size = Vector3(2, 2, 2) material = SubResource("StandardMaterial3D_orange") [node name="GrappleAnchor3" type="CSGBox3D" parent="."] transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, 15, 20, -15) size = Vector3(2, 2, 2) material = SubResource("StandardMaterial3D_orange") [node name="GrappleAnchor4" type="CSGBox3D" parent="."] transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, -15, 20, 15) size = Vector3(2, 2, 2) material = SubResource("StandardMaterial3D_orange") [node name="WalkwayN" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, -30) size = Vector3(70, 1, 10) material = SubResource("StandardMaterial3D_grey") [node name="WalkwayS" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 30) size = Vector3(70, 1, 10) material = SubResource("StandardMaterial3D_grey") [node name="WalkwayE" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 6, 0) size = Vector3(10, 1, 70) material = SubResource("StandardMaterial3D_grey") [node name="WalkwayW" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 6, 0) size = Vector3(10, 1, 70) material = SubResource("StandardMaterial3D_grey") [node name="WallRun1" type="CSGBox3D" parent="."] transform = Transform3D(0.984807753012208, 0, 0.17364817766693033, 0, 1, 0, -0.17364817766693033, 0, 0.984807753012208, -30, 8, 40) size = Vector3(24, 16, 2) material = SubResource("StandardMaterial3D_orange") [node name="WallRun2" type="CSGBox3D" parent="."] transform = Transform3D(0.984807753012208, 0, -0.17364817766693033, 0, 1, 0, 0.17364817766693033, 0, 0.984807753012208, 0, 10, 50) size = Vector3(24, 16, 2) material = SubResource("StandardMaterial3D_orange") [node name="WallRun3" type="CSGBox3D" parent="."] transform = Transform3D(0.984807753012208, 0, 0.17364817766693033, 0, 1, 0, -0.17364817766693033, 0, 0.984807753012208, 30, 12, 40) size = Vector3(24, 16, 2) material = SubResource("StandardMaterial3D_orange") [node name="TunnelWallBlock" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, -45) size = Vector3(120, 8, 30) material = SubResource("StandardMaterial3D_grey") [node name="TunnelCutMain" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, -45) size = Vector3(120, 5, 10) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="SlideBulkhead1" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 3.5, -45) size = Vector3(4, 4, 10) material = SubResource("StandardMaterial3D_blue") [node name="SlideBulkhead2" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 3.5, -45) size = Vector3(4, 4, 10) material = SubResource("StandardMaterial3D_blue") [node name="TunnelExitW" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 2.5, -35) size = Vector3(10, 5, 20) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="TunnelExitE" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 2.5, -35) size = Vector3(10, 5, 20) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="TunnelExitCenter" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, -35) size = Vector3(10, 5, 20) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="RampNW" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.9366721892483976, 0.35020738125946743, 0, -0.35020738125946743, 0.9366721892483976, -30, 3, -20) size = Vector3(10, 16, 1) material = SubResource("StandardMaterial3D_orange") [node name="RampNE" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.9366721892483976, 0.35020738125946743, 0, -0.35020738125946743, 0.9366721892483976, 30, 3, -20) size = Vector3(10, 16, 1) material = SubResource("StandardMaterial3D_orange") [node name="RampSW" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.9366721892483976, -0.35020738125946743, 0, 0.35020738125946743, 0.9366721892483976, -30, 3, 20) size = Vector3(10, 16, 1) material = SubResource("StandardMaterial3D_orange") [node name="RampSE" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.9366721892483976, -0.35020738125946743, 0, 0.35020738125946743, 0.9366721892483976, 30, 3, 20) size = Vector3(10, 16, 1) material = SubResource("StandardMaterial3D_orange") [node name="RampEN" type="CSGBox3D" parent="."] transform = Transform3D(0.9366721892483976, 0.35020738125946743, 0, -0.35020738125946743, 0.9366721892483976, 0, 0, 0, 1, 20, 3, -30) size = Vector3(1, 16, 10) material = SubResource("StandardMaterial3D_orange") [node name="RampES" type="CSGBox3D" parent="."] transform = Transform3D(0.9366721892483976, 0.35020738125946743, 0, -0.35020738125946743, 0.9366721892483976, 0, 0, 0, 1, 20, 3, 30) size = Vector3(1, 16, 10) material = SubResource("StandardMaterial3D_orange") [node name="RampWN" type="CSGBox3D" parent="."] transform = Transform3D(0.9366721892483976, -0.35020738125946743, 0, 0.35020738125946743, 0.9366721892483976, 0, 0, 0, 1, -20, 3, -30) size = Vector3(1, 16, 10) material = SubResource("StandardMaterial3D_orange") [node name="RampWS" type="CSGBox3D" parent="."] transform = Transform3D(0.9366721892483976, -0.35020738125946743, 0, 0.35020738125946743, 0.9366721892483976, 0, 0, 0, 1, -20, 3, 30) size = Vector3(1, 16, 10) material = SubResource("StandardMaterial3D_orange") [node name="EastBase" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 4, 0) size = Vector3(20, 8, 30) material = SubResource("StandardMaterial3D_grey") [node name="EastBaseRoom" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 5, 0) size = Vector3(18, 6, 28) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="EastBaseWindow" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 6, 0) size = Vector3(2, 4, 16) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="EastBaseRoof" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 16, 0) size = Vector3(20, 1, 30) material = SubResource("StandardMaterial3D_grey") [node name="WestBase" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 4, 0) size = Vector3(20, 8, 30) material = SubResource("StandardMaterial3D_grey") [node name="WestBaseRoom" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 5, 0) size = Vector3(18, 6, 28) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="WestBaseWindow" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 6, 0) size = Vector3(2, 4, 16) material = SubResource("StandardMaterial3D_grey") operation = 2 [node name="WestBaseRoof" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 16, 0) size = Vector3(20, 1, 30) material = SubResource("StandardMaterial3D_grey") [node name="CoverNE1" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 2, -15) size = Vector3(2, 4, 8) material = SubResource("StandardMaterial3D_orange") [node name="CoverNW1" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 2, -15) size = Vector3(2, 4, 8) material = SubResource("StandardMaterial3D_orange") [node name="CoverSE1" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 2, 15) size = Vector3(2, 4, 8) material = SubResource("StandardMaterial3D_orange") [node name="CoverSW1" type="CSGBox3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 2, 15) size = Vector3(2, 4, 8) material = SubResource("StandardMaterial3D_orange") [node name="LightCenter" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 15, 0) light_color = Color(0.2, 0.6, 1.0, 1) light_energy = 8.0 omni_range = 40.0 shadow_enabled = true [node name="LightUWW" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 2, 0) light_color = Color(1.0, 0.4, 0.1, 1) light_energy = 3.0 omni_range = 20.0 shadow_enabled = true [node name="LightUWE" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 2, 0) light_color = Color(1.0, 0.4, 0.1, 1) light_energy = 3.0 omni_range = 20.0 shadow_enabled = true [node name="LightTunW" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 3, -45) light_color = Color(0.1, 0.8, 1.0, 1) light_energy = 2.0 omni_range = 15.0 shadow_enabled = true [node name="LightTunE" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 3, -45) light_color = Color(0.1, 0.8, 1.0, 1) light_energy = 2.0 omni_range = 15.0 shadow_enabled = true [node name="LightSpawnE" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 4, 0) light_color = Color(1.0, 1.0, 1.0, 1) light_energy = 1.5 omni_range = 12.0 shadow_enabled = true [node name="LightSpawnW" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 4, 0) light_color = Color(1.0, 1.0, 1.0, 1) light_energy = 1.5 omni_range = 12.0 shadow_enabled = true