diff --git a/assets/ui/end_screen_frame.svg b/assets/ui/end_screen_frame.svg
index 3b652670..d4c41984 100644
--- a/assets/ui/end_screen_frame.svg
+++ b/assets/ui/end_screen_frame.svg
@@ -28,7 +28,7 @@
inkscape:document-units="mm"
inkscape:zoom="0.45495383"
inkscape:cx="967.1311"
- inkscape:cy="747.32857"
+ inkscape:cy="746.22957"
inkscape:current-layer="layer1" />
@@ -38,12 +38,12 @@
id="layer1">
diff --git a/assets/ui/frame.svg b/assets/ui/frame.svg
index 0e99522b..6682aab4 100644
--- a/assets/ui/frame.svg
+++ b/assets/ui/frame.svg
@@ -26,9 +26,9 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
- inkscape:zoom="0.69040128"
- inkscape:cx="396.87064"
- inkscape:cy="715.5259"
+ inkscape:zoom="1.3808026"
+ inkscape:cx="142.67065"
+ inkscape:cy="916.49598"
inkscape:current-layer="layer1" />
@@ -38,12 +38,12 @@
id="layer1">
diff --git a/modules/break_utopia/level_end.cpp b/modules/break_utopia/level_end.cpp
index 09492a1e..95c23b76 100644
--- a/modules/break_utopia/level_end.cpp
+++ b/modules/break_utopia/level_end.cpp
@@ -27,6 +27,11 @@ void LevelEnd::_bind_methods() {
void LevelEnd::body_entered(Node *body) {
if (cast_to(body) != nullptr) {
Node *scene{ this->intermission_screen->instantiate() };
+ Ref result{ memnew(LevelResult) };
+ result->store_current_state();
+ if (IntermissionScreen * intermission{ cast_to(scene->get_node(NodePath("%IntermissionScreen"))) }) {
+ intermission->set_result(result);
+ }
callable_mp(get_tree(), &SceneTree::change_scene_to_node).call_deferred(scene);
}
}
@@ -43,3 +48,7 @@ void LevelEnd::_notification(int what) {
return;
}
}
+
+void IntermissionScreen::_bind_methods() {
+ BIND_HPROPERTY(Variant::OBJECT, result, PROPERTY_HINT_RESOURCE_TYPE, "LevelResult");
+}
diff --git a/modules/break_utopia/level_end.h b/modules/break_utopia/level_end.h
index 45c88192..2e19ffc4 100644
--- a/modules/break_utopia/level_end.h
+++ b/modules/break_utopia/level_end.h
@@ -3,6 +3,8 @@
#include "break_utopia/macros.h"
#include "core/io/resource.h"
#include "scene/3d/physics/area_3d.h"
+#include "scene/gui/control.h"
+#include "scene/main/viewport.h"
#include "scene/resources/packed_scene.h"
class LevelResult : public Resource {
@@ -37,3 +39,12 @@ private:
public:
GET_SET_FNS(Ref, intermission_screen);
};
+
+class IntermissionScreen : public Control {
+ GDCLASS(IntermissionScreen, Control);
+ static void _bind_methods();
+ Ref result{};
+
+public:
+ GET_SET_FNS(Ref, result);
+};
diff --git a/modules/break_utopia/register_types.cpp b/modules/break_utopia/register_types.cpp
index 9a28e892..2111a082 100644
--- a/modules/break_utopia/register_types.cpp
+++ b/modules/break_utopia/register_types.cpp
@@ -33,6 +33,7 @@ void initialize_break_utopia_module(ModuleInitializationLevel p_level) {
ClassDB::register_class();
ClassDB::register_class();
ClassDB::register_class();
+ ClassDB::register_class();
}
void uninitialize_break_utopia_module(ModuleInitializationLevel p_level) {
diff --git a/project/assets/effects/glow_material.tres b/project/assets/effects/glow_material.tres
index a875020b..9cdd30c7 100644
--- a/project/assets/effects/glow_material.tres
+++ b/project/assets/effects/glow_material.tres
@@ -3,6 +3,6 @@
[resource]
cull_mode = 1
shading_mode = 0
-albedo_color = Color(0.9, 0, 0.47999996, 1)
+albedo_color = Color(0.99899036, 1.8289685e-06, 0.53277034, 1)
grow = true
grow_amount = 0.02
diff --git a/project/assets/models/character/character.blend b/project/assets/models/character/character.blend
index 1f2ba117..488a4058 100644
Binary files a/project/assets/models/character/character.blend and b/project/assets/models/character/character.blend differ
diff --git a/project/assets/models/props/blockade.blend b/project/assets/models/props/blockade.blend
index 6ae2da3b..806d055f 100644
Binary files a/project/assets/models/props/blockade.blend and b/project/assets/models/props/blockade.blend differ
diff --git a/project/assets/models/props/fragments/blockade_fragments.blend b/project/assets/models/props/fragments/blockade_fragments.blend
new file mode 100644
index 00000000..9132afbc
Binary files /dev/null and b/project/assets/models/props/fragments/blockade_fragments.blend differ
diff --git a/project/assets/models/props/fragments/blockade_fragments.blend.import b/project/assets/models/props/fragments/blockade_fragments.blend.import
new file mode 100644
index 00000000..ada577ee
--- /dev/null
+++ b/project/assets/models/props/fragments/blockade_fragments.blend.import
@@ -0,0 +1,60 @@
+[remap]
+
+importer="scene"
+importer_version=1
+type="PackedScene"
+uid="uid://bffa2rkc5vprr"
+path="res://.godot/imported/blockade_fragments.blend-c168b8a5186bf18457ebd8a8b1b10f88.scn"
+
+[deps]
+
+source_file="res://assets/models/props/fragments/blockade_fragments.blend"
+dest_files=["res://.godot/imported/blockade_fragments.blend-c168b8a5186bf18457ebd8a8b1b10f88.scn"]
+
+[params]
+
+nodes/root_type=""
+nodes/root_name=""
+nodes/root_script=null
+nodes/apply_root_scale=true
+nodes/root_scale=1.0
+nodes/import_as_skeleton_bones=false
+nodes/use_name_suffixes=true
+nodes/use_node_type_suffixes=true
+meshes/ensure_tangents=true
+meshes/generate_lods=true
+meshes/create_shadow_meshes=true
+meshes/light_baking=1
+meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
+skins/use_named_skins=true
+animation/import=true
+animation/fps=30
+animation/trimming=false
+animation/remove_immutable_tracks=true
+animation/import_rest_as_RESET=false
+import_script/path=""
+materials/extract=0
+materials/extract_format=0
+materials/extract_path=""
+_subresources={}
+blender/nodes/visible=0
+blender/nodes/active_collection_only=false
+blender/nodes/punctual_lights=true
+blender/nodes/cameras=true
+blender/nodes/custom_properties=true
+blender/nodes/modifiers=1
+blender/meshes/colors=false
+blender/meshes/uvs=true
+blender/meshes/normals=true
+blender/meshes/export_geometry_nodes_instances=false
+blender/meshes/gpu_instances=false
+blender/meshes/tangents=true
+blender/meshes/skins=2
+blender/meshes/export_bones_deforming_mesh_only=false
+blender/materials/unpack_enabled=true
+blender/materials/export_materials=1
+blender/animation/limit_playback=true
+blender/animation/always_sample=true
+blender/animation/group_tracks=true
+gltf/naming_version=2
diff --git a/project/assets/models/props/fragments/blockade_fragments_chainlink_albedo.png b/project/assets/models/props/fragments/blockade_fragments_chainlink_albedo.png
new file mode 100644
index 00000000..0a57c774
Binary files /dev/null and b/project/assets/models/props/fragments/blockade_fragments_chainlink_albedo.png differ
diff --git a/project/assets/models/props/fragments/blockade_fragments_chainlink_albedo.png.import b/project/assets/models/props/fragments/blockade_fragments_chainlink_albedo.png.import
new file mode 100644
index 00000000..95ab9813
--- /dev/null
+++ b/project/assets/models/props/fragments/blockade_fragments_chainlink_albedo.png.import
@@ -0,0 +1,44 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bjsy15i4d7dmt"
+path.s3tc="res://.godot/imported/blockade_fragments_chainlink_albedo.png-803c6dd60a41c57a847ed2da61ee2a78.s3tc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc"],
+"vram_texture": true
+}
+generator_parameters={
+"md5": "70d1b975f745c18a590461cecd49d245"
+}
+
+[deps]
+
+source_file="res://assets/models/props/fragments/blockade_fragments_chainlink_albedo.png"
+dest_files=["res://.godot/imported/blockade_fragments_chainlink_albedo.png-803c6dd60a41c57a847ed2da61ee2a78.s3tc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/uastc_level=0
+compress/rdo_quality_loss=0.0
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/channel_remap/red=0
+process/channel_remap/green=1
+process/channel_remap/blue=2
+process/channel_remap/alpha=3
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/project/assets/ui/end_screen_frame.svg b/project/assets/ui/end_screen_frame.svg
index 7bcd751b..bbb0881c 100644
--- a/project/assets/ui/end_screen_frame.svg
+++ b/project/assets/ui/end_screen_frame.svg
@@ -15,11 +15,11 @@
id="layer1">
diff --git a/project/assets/ui/frame.svg b/project/assets/ui/frame.svg
index 6892c629..9b6c89bb 100644
--- a/project/assets/ui/frame.svg
+++ b/project/assets/ui/frame.svg
@@ -15,11 +15,11 @@
id="layer1">
diff --git a/project/objects/destructable_props/combo_gate.tscn b/project/objects/destructable_props/combo_gate.tscn
index 1858d619..8f18c438 100644
--- a/project/objects/destructable_props/combo_gate.tscn
+++ b/project/objects/destructable_props/combo_gate.tscn
@@ -2,6 +2,7 @@
[ext_resource type="PackedScene" uid="uid://b1j2onf8vl82j" path="res://assets/models/props/blockade.blend" id="1_pwcew"]
[ext_resource type="Texture2D" uid="uid://ccp6svl4d1jab" path="res://assets/ui/west_face.png" id="2_ao1rk"]
+[ext_resource type="PackedScene" uid="uid://bkdtw77ai1qrf" path="res://objects/destructable_props/combo_gate_destroyed.tscn" id="3_pgwac"]
[sub_resource type="BoxShape3D" id="BoxShape3D_ao1rk"]
size = Vector3(3.399414, 3.9816895, 0.4248047)
@@ -33,6 +34,7 @@ texture = ExtResource("2_ao1rk")
collision_layer = 11
collision_mask = 2
defense = 2
+destroyed_object = ExtResource("3_pgwac")
shake_object = NodePath("../blockade")
[node name="CollisionShape3D" type="CollisionShape3D" parent="DestructableObject" unique_id=992292980]
diff --git a/project/objects/destructable_props/combo_gate_destroyed.tscn b/project/objects/destructable_props/combo_gate_destroyed.tscn
new file mode 100644
index 00000000..958c8d64
--- /dev/null
+++ b/project/objects/destructable_props/combo_gate_destroyed.tscn
@@ -0,0 +1,28 @@
+[gd_scene format=3 uid="uid://bkdtw77ai1qrf"]
+
+[ext_resource type="PackedScene" uid="uid://bffa2rkc5vprr" path="res://assets/models/props/fragments/blockade_fragments.blend" id="1_c3uqf"]
+
+[sub_resource type="GDScript" id="GDScript_c3uqf"]
+resource_name = "ComboGateDestroyed"
+script/source = "extends Node3D
+
+var count : int = 0
+
+func _ready():
+ iter(self)
+
+func iter(node):
+ for child in node.get_children():
+ if child is RigidBody3D:
+ child.linear_velocity = ((child.global_position - global_position).normalized() + Vector3(1, 0 ,0).rotated(Vector3.UP, randf_range(0, PI*2)).normalized()) * 4
+ child.angular_velocity = Vector3(randf_range(4, 5), randf_range(4, 5), randf_range(4, 5))
+ count += 1
+ if count % 3 != 0:
+ get_tree().create_timer(5 + (count % 5)).timeout.connect(child.queue_free)
+ iter(child)
+"
+
+[node name="ComboGateDestroyed" type="Node3D" unique_id=269300662]
+
+[node name="blockade_fragments" parent="." unique_id=860386304 instance=ExtResource("1_c3uqf")]
+script = SubResource("GDScript_c3uqf")
diff --git a/project/objects/destructable_props/table.tscn b/project/objects/destructable_props/table.tscn
index 6f022b23..fd150438 100644
--- a/project/objects/destructable_props/table.tscn
+++ b/project/objects/destructable_props/table.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=4 format=3 uid="uid://ct650octef6l3"]
+[gd_scene format=3 uid="uid://ct650octef6l3"]
[ext_resource type="PackedScene" uid="uid://cwc5pk8n2n85j" path="res://objects/destructable_props/table_destroyed.tscn" id="1_370rb"]
[ext_resource type="PackedScene" uid="uid://48poptqvf7w4" path="res://assets/models/props/long_table.blend" id="2_7o4nk"]
@@ -6,15 +6,16 @@
[sub_resource type="BoxShape3D" id="BoxShape3D_j8sr1"]
size = Vector3(4.04395, 1.09866, 1.95508)
-[node name="Table" type="Node3D"]
+[node name="Table" type="Node3D" unique_id=86783406]
-[node name="HitBox" type="DestructableObject" parent="."]
+[node name="HitBox" type="DestructableObject" parent="." unique_id=2140583576 node_paths=PackedStringArray("shake_object")]
collision_layer = 3
defense = 2
destroyed_object = ExtResource("1_370rb")
+shake_object = NodePath("../long_table")
-[node name="CollisionShape3D" type="CollisionShape3D" parent="HitBox"]
+[node name="CollisionShape3D" type="CollisionShape3D" parent="HitBox" unique_id=1786095584]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.559225, 0)
shape = SubResource("BoxShape3D_j8sr1")
-[node name="long_table" parent="." instance=ExtResource("2_7o4nk")]
+[node name="long_table" parent="." unique_id=1803023856 instance=ExtResource("2_7o4nk")]
diff --git a/project/objects/player_body.tscn b/project/objects/player_body.tscn
index ec16fa86..0da60570 100644
--- a/project/objects/player_body.tscn
+++ b/project/objects/player_body.tscn
@@ -227,9 +227,9 @@ root_motion_track = NodePath("character2/Skeleton3D:root")
tree_root = SubResource("AnimationNodeStateMachine_yaurm")
anim_player = NodePath("../character/AnimationPlayer")
-[node name="character" parent="." unique_id=1193329137 instance=ExtResource("1_yaurm")]
+[node name="character" parent="." unique_id=1031558579 instance=ExtResource("1_yaurm")]
-[node name="BoneAttachment3D" type="BoneAttachment3D" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(1193329137, 519303389) index="2" unique_id=566409344]
+[node name="BoneAttachment3D" type="BoneAttachment3D" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(1031558579, 1094092726) index="2" unique_id=566409344]
transform = Transform3D(-0.74619925, -0.6650274, 0.030413395, 0.6645052, -0.7468186, -0.026356531, 0.040241107, 0.0005426332, 0.99918985, 0.6361852, 2.0346472, -0.14206453)
bone_name = "hammer_2"
bone_idx = 18
diff --git a/project/objects/ui/hud.tscn b/project/objects/ui/hud.tscn
index 56bf2466..e89dfdae 100644
--- a/project/objects/ui/hud.tscn
+++ b/project/objects/ui/hud.tscn
@@ -3,6 +3,11 @@
[ext_resource type="Texture2D" uid="uid://cr56o21nptvt6" path="res://assets/ui/frame.svg" id="1_cer2l"]
[ext_resource type="Texture2D" uid="uid://kn5w07mgntvq" path="res://assets/ui/frame_base.svg" id="2_25bap"]
[ext_resource type="StyleBox" uid="uid://dx4vl7rb650ph" path="res://objects/ui/textbox_style.tres" id="3_lscdw"]
+[ext_resource type="Texture2D" uid="uid://borgwswaglvre" path="res://assets/ui/style_letters/style_anarchic.png" id="4_ddhud"]
+[ext_resource type="Texture2D" uid="uid://ddnnht5030owy" path="res://assets/ui/style_letters/style_explosive.png" id="5_guo48"]
+[ext_resource type="Texture2D" uid="uid://cu6xs12a4v4lv" path="res://assets/ui/style_letters/style_destructive.png" id="6_xf154"]
+[ext_resource type="Texture2D" uid="uid://bsspt7d0wkkwc" path="res://assets/ui/style_letters/style_catastrophic.png" id="7_8u8q2"]
+[ext_resource type="Texture2D" uid="uid://b304c6efrbpup" path="res://assets/ui/style_letters/style_breaking.png" id="8_o8kss"]
[sub_resource type="GDScript" id="GDScript_ddhud"]
resource_name = "PauseFrame"
@@ -60,31 +65,28 @@ func _health_changed(health : float):
[sub_resource type="GDScript" id="GDScript_b61jh"]
script/source = "extends RichTextLabel
+@export var textures : Array[Texture2D]
+
func _ready():
LevelStatus.get_instance().style_changed.connect(_style_changed)
_style_changed(0)
func _style_changed(style):
+ %StyleTexture.texture = textures[style]
match int(floor(style)):
0:
- visible = false
+ text = \"\"
1: # F
- visible = true
text = \"Fatal\"
2: # E
- visible = true
text = \"Explosive\"
3: # D
- visible = true
text = \"Destructive\"
4: # C
- visible = true
text = \"Catastrophic\"
5: # B
- visible = true
text = \"Breaking\"
6: # A
- visible = true
text = \"Anarchist\"
"
@@ -155,38 +157,67 @@ value = 0.65
show_percentage = false
script = SubResource("GDScript_lscdw")
-[node name="PanelContainer" type="PanelContainer" parent="." unique_id=1876159707]
+[node name="Panel" type="Panel" parent="." unique_id=828550183]
layout_mode = 0
-offset_left = 0.9999995
-offset_top = -17.999996
-offset_right = 343.35724
-offset_bottom = 129.11588
-rotation = 0.049929842
+offset_left = 33.0
+offset_top = -31.0
+offset_right = 307.5043
+offset_bottom = 235.67764
+rotation = 0.18656573
theme_override_styles/panel = ExtResource("3_lscdw")
-[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer" unique_id=1476210021]
-layout_mode = 2
+[node name="PanelContainer" type="PanelContainer" parent="." unique_id=1876159707]
+layout_mode = 0
+offset_left = -1.999999
+offset_top = 214.00002
+offset_right = 297.5713
+offset_bottom = 319.0
+rotation = 0.04287675
+theme_override_styles/panel = ExtResource("3_lscdw")
-[node name="RichTextLabel" type="RichTextLabel" parent="PanelContainer/VBoxContainer" unique_id=1440807256]
+[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer" unique_id=1058345758]
layout_mode = 2
-size_flags_vertical = 3
+theme_override_constants/separation = -10
+
+[node name="RichTextLabel" type="RichTextLabel" parent="PanelContainer/HBoxContainer" unique_id=1440807256]
+layout_mode = 2
+size_flags_horizontal = 3
focus_mode = 0
mouse_filter = 2
theme_override_colors/default_color = Color(0, 0, 0, 1)
-theme_override_font_sizes/normal_font_size = 48
+theme_override_font_sizes/normal_font_size = 32
text = "Destructive"
fit_content = true
scroll_active = false
vertical_alignment = 1
script = SubResource("GDScript_b61jh")
+textures = Array[Texture2D]([null, null, ExtResource("5_guo48"), ExtResource("6_xf154"), ExtResource("7_8u8q2"), ExtResource("8_o8kss"), ExtResource("4_ddhud")])
+
+[node name="StyleTexture" type="TextureRect" parent="." unique_id=1404766304]
+unique_name_in_owner = true
+layout_mode = 0
+offset_left = 25.0
+offset_top = -2.0
+offset_right = 280.39163
+offset_bottom = 247.35599
+rotation = 0.05656576
+texture = ExtResource("4_ddhud")
+expand_mode = 1
[node name="PanelContainer2" type="PanelContainer" parent="." unique_id=789180801]
layout_mode = 1
-offset_left = -20.734081
-offset_top = 115.99999
-offset_right = 284.01514
-offset_bottom = 221.0
-rotation = 0.031108975
+anchors_preset = 3
+anchor_left = 1.0
+anchor_top = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -329.99988
+offset_top = -146.0
+offset_right = -25.250366
+offset_bottom = -41.0
+grow_horizontal = 0
+grow_vertical = 0
+rotation = 0.07959896
theme_override_styles/panel = ExtResource("3_lscdw")
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer2" unique_id=788268433]
diff --git a/project/scenes/level_end_screen.tscn b/project/scenes/level_end_screen.tscn
index 4c5dcede..010c2623 100644
--- a/project/scenes/level_end_screen.tscn
+++ b/project/scenes/level_end_screen.tscn
@@ -6,6 +6,10 @@
[ext_resource type="Texture2D" uid="uid://c0yeswk37c1h7" path="res://assets/ui/end_screen_frame.svg" id="3_c1u11"]
[ext_resource type="StyleBox" uid="uid://dx4vl7rb650ph" path="res://objects/ui/textbox_style.tres" id="4_pkge6"]
[ext_resource type="Texture2D" uid="uid://b304c6efrbpup" path="res://assets/ui/style_letters/style_breaking.png" id="5_tx4gm"]
+[ext_resource type="Texture2D" uid="uid://borgwswaglvre" path="res://assets/ui/style_letters/style_anarchic.png" id="7_fokjh"]
+[ext_resource type="Texture2D" uid="uid://ddnnht5030owy" path="res://assets/ui/style_letters/style_explosive.png" id="7_jlscs"]
+[ext_resource type="Texture2D" uid="uid://cu6xs12a4v4lv" path="res://assets/ui/style_letters/style_destructive.png" id="8_83m3j"]
+[ext_resource type="Texture2D" uid="uid://bsspt7d0wkkwc" path="res://assets/ui/style_letters/style_catastrophic.png" id="9_j4c8f"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_444kp"]
sky_horizon_color = Color(0.6527628, 0.6763377, 0.70551276, 1)
@@ -31,6 +35,39 @@ func _ready():
$AnimationPlayer.play(\"falling\")
"
+[sub_resource type="LevelResult" id="LevelResult_jlscs"]
+
+[sub_resource type="GDScript" id="GDScript_jlscs"]
+resource_name = "IntermissionScreenScoreLabel"
+script/source = "extends RichTextLabel
+
+func _ready():
+ text = \"Score: %d\" % %IntermissionScreen.result.score
+"
+
+[sub_resource type="GDScript" id="GDScript_83m3j"]
+resource_name = "IntermissionPercentageLabel"
+script/source = "extends RichTextLabel
+
+func _ready():
+ var result := (%IntermissionScreen as IntermissionScreen).result
+ if result.total_objects > 0:
+ text = \"Destroyed: %d\" % ((result.destroyed / result.total_objects) * 100)
+ else:
+ text = \"Destroyed: 0%\"
+"
+
+[sub_resource type="GDScript" id="GDScript_7q532"]
+resource_name = "IntermissionStyleLetter"
+script/source = "extends TextureRect
+
+@export var textures : Array[Texture2D]
+@onready var result := (%IntermissionScreen as IntermissionScreen).result
+
+func _ready():
+ texture = textures[result.style-1]
+"
+
[node name="LevelEndScreen" type="Node3D" unique_id=1188670411]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1630900158]
@@ -46,27 +83,28 @@ flip_faces = true
size = Vector3(6.0234375, 15.5095215, 6.79895)
material = ExtResource("1_444kp")
-[node name="character" parent="." unique_id=815638724 instance=ExtResource("1_48f2e")]
+[node name="character" parent="." unique_id=1031558579 instance=ExtResource("1_48f2e")]
script = SubResource("GDScript_48f2e")
-[node name="body" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(815638724, 861182108) index="0" unique_id=341965371]
+[node name="body" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(1031558579, 1094092726) index="0" unique_id=1162912264]
material_overlay = ExtResource("3_7q532")
-[node name="body_001" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(815638724, 861182108) index="1" unique_id=1376782923]
+[node name="body_001" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(1031558579, 1094092726) index="1" unique_id=1829355373]
material_overlay = ExtResource("3_7q532")
-[node name="hammer" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(815638724, 861182108) index="2" unique_id=746522655]
+[node name="hammer" parent="character/character2/Skeleton3D" parent_id_path=PackedInt32Array(1031558579, 1094092726) index="2" unique_id=1132059472]
material_overlay = ExtResource("3_7q532")
-[node name="UI" type="Control" parent="." unique_id=1653265546]
-layout_mode = 3
+[node name="IntermissionScreen" type="IntermissionScreen" parent="." unique_id=167990140]
+unique_name_in_owner = true
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
+result = SubResource("LevelResult_jlscs")
-[node name="TextureRect" type="TextureRect" parent="UI" unique_id=226567850]
+[node name="TextureRect" type="TextureRect" parent="IntermissionScreen" unique_id=226567850]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -76,66 +114,79 @@ grow_vertical = 2
texture = ExtResource("3_c1u11")
expand_mode = 1
-[node name="PanelContainer" type="PanelContainer" parent="UI" unique_id=171117788]
+[node name="PanelContainer" type="PanelContainer" parent="IntermissionScreen" unique_id=171117788]
layout_mode = 0
offset_left = 168.99997
offset_top = 57.0
offset_right = 836.2428
-offset_bottom = 205.0
+offset_bottom = 175.0
rotation = 0.09742515
theme_override_styles/panel = ExtResource("4_pkge6")
-[node name="RichTextLabel" type="RichTextLabel" parent="UI/PanelContainer" unique_id=129594155]
+[node name="RichTextLabel" type="RichTextLabel" parent="IntermissionScreen/PanelContainer" unique_id=129594155]
layout_mode = 2
theme_override_colors/default_color = Color(0, 0, 0, 1)
-theme_override_font_sizes/normal_font_size = 64
+theme_override_font_sizes/normal_font_size = 42
text = "Score: 123456"
fit_content = true
scroll_active = false
+script = SubResource("GDScript_jlscs")
-[node name="PanelContainer2" type="PanelContainer" parent="UI" unique_id=979281030]
+[node name="PanelContainer2" type="PanelContainer" parent="IntermissionScreen" unique_id=979281030]
layout_mode = 0
-offset_left = 118.0
-offset_top = 343.99997
-offset_right = 803.8578
-offset_bottom = 491.99997
+offset_left = 140.0
+offset_top = 297.0
+offset_right = 825.8578
+offset_bottom = 415.0
rotation = -0.025691543
theme_override_styles/panel = ExtResource("4_pkge6")
-[node name="RichTextLabel" type="RichTextLabel" parent="UI/PanelContainer2" unique_id=1687861345]
+[node name="RichTextLabel" type="RichTextLabel" parent="IntermissionScreen/PanelContainer2" unique_id=1687861345]
layout_mode = 2
theme_override_colors/default_color = Color(0, 0, 0, 1)
-theme_override_font_sizes/normal_font_size = 64
+theme_override_font_sizes/normal_font_size = 42
text = "Destruction: 200%"
fit_content = true
scroll_active = false
+script = SubResource("GDScript_83m3j")
-[node name="PanelContainer3" type="PanelContainer" parent="UI" unique_id=402491634]
+[node name="Panel" type="Panel" parent="IntermissionScreen" unique_id=1703835801]
layout_mode = 0
-offset_left = 99.00001
-offset_top = 543.0
-offset_right = 739.14355
-offset_bottom = 691.0
+offset_left = 264.27393
+offset_top = 554.0
+offset_right = 559.411
+offset_bottom = 851.73035
+rotation = 0.17307885
+theme_override_styles/panel = ExtResource("4_pkge6")
+
+[node name="PanelContainer3" type="PanelContainer" parent="IntermissionScreen" unique_id=402491634]
+layout_mode = 0
+offset_left = 179.00002
+offset_top = 478.0
+offset_right = 520.1164
+offset_bottom = 596.0
rotation = 0.13659918
theme_override_styles/panel = ExtResource("4_pkge6")
-[node name="RichTextLabel" type="RichTextLabel" parent="UI/PanelContainer3" unique_id=1708404379]
+[node name="RichTextLabel" type="RichTextLabel" parent="IntermissionScreen/PanelContainer3" unique_id=1708404379]
layout_mode = 2
theme_override_colors/default_color = Color(0, 0, 0, 1)
-theme_override_font_sizes/normal_font_size = 64
+theme_override_font_sizes/normal_font_size = 42
text = "Style:"
fit_content = true
scroll_active = false
-[node name="TextureRect2" type="TextureRect" parent="UI" unique_id=668257733]
+[node name="TextureRect2" type="TextureRect" parent="IntermissionScreen" unique_id=668257733]
layout_mode = 1
-offset_left = 339.00003
-offset_top = 535.0
-offset_right = 746.6963
-offset_bottom = 901.0
-rotation = -0.035710998
+offset_left = 238.0
+offset_top = 607.00006
+offset_right = 509.90198
+offset_bottom = 851.0938
+rotation = 0.034808658
size_flags_horizontal = 8
texture = ExtResource("5_tx4gm")
expand_mode = 1
+script = SubResource("GDScript_7q532")
+textures = Array[Texture2D]([null, ExtResource("7_jlscs"), ExtResource("8_83m3j"), ExtResource("9_j4c8f"), ExtResource("5_tx4gm"), ExtResource("7_fokjh")])
[editable path="character"]
diff --git a/project/scenes/main_menu.tscn b/project/scenes/main_menu.tscn
index 95dd947b..a06026b4 100644
--- a/project/scenes/main_menu.tscn
+++ b/project/scenes/main_menu.tscn
@@ -88,7 +88,7 @@ transform = Transform3D(0.7274735, -0.09339222, -0.6797502, 4.4703484e-08, 0.990
keep_aspect = 0
fov = 58.302567
-[node name="character" parent="." unique_id=1121355691 instance=ExtResource("2_ekxnf")]
+[node name="character" parent="." unique_id=1031558579 instance=ExtResource("2_ekxnf")]
transform = Transform3D(0.99800366, 0, -0.06315637, 0, 1, 0, 0.06315637, 0, 0.99800366, -3.1153452, 0.2585796, 0.84043175)
script = SubResource("GDScript_ekxnf")
diff --git a/project/scenes/test_level.tscn b/project/scenes/test_level.tscn
index 68a9baea..b83fa856 100644
--- a/project/scenes/test_level.tscn
+++ b/project/scenes/test_level.tscn
@@ -177,15 +177,10 @@ use_collision = true
collision_layer = 5
collision_mask = 5
-[node name="CSGBox3D3" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=1106412156]
-transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.00604, 1.78183, 1.52303)
-flip_faces = true
-size = Vector3(13.0256, 3.9247, 12.0219)
-
[node name="CSGBox3D7" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=1810177399]
-transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.08339, 1.78183, -15.576)
+transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.0833905, 1.78183, -6.984256)
flip_faces = true
-size = Vector3(13.0256, 3.9247, 12.0219)
+size = Vector3(30.20909, 3.9247, 12.0219)
[node name="CSGBox3D5" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=709562439]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 6.6595173, 1.78183, -7.0210905)
@@ -202,21 +197,6 @@ transform = Transform3D(-1, 0, -8.742279e-08, 0, 1, 0, 8.742279e-08, 0, -1, 16.3
flip_faces = true
size = Vector3(15.387126, 3.9247, 14.189308)
-[node name="CSGBox3D8" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=2012956993]
-transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.01214, 2.55284, -7.03223)
-flip_faces = true
-size = Vector3(4.24414, 2.17948, 11.6148)
-
-[node name="CSGBox3D9" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=1950176907]
-transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -1.096, 1.19392, -5.06365)
-flip_faces = true
-size = Vector3(1.5, 2.749, 3.1123047)
-
-[node name="CSGBox3D13" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=1674531504]
-transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 4.733099, 1.19392, -9.101494)
-flip_faces = true
-size = Vector3(1.5, 2.749, 3.1123047)
-
[node name="CSGBox3D12" type="CSGBox3D" parent="Environment/CSGCombiner3D" unique_id=1443450172]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.4652538, 1.8695965, -3.1749)
operation = 1