381 lines
17 KiB
Plaintext
381 lines
17 KiB
Plaintext
[gd_scene load_steps=39 format=3 uid="uid://vgwrcfy1qawf"]
|
|
|
|
[ext_resource type="Script" uid="uid://c37h6na3e4twn" path="res://scripts/builder.gd" id="1_jybm7"]
|
|
[ext_resource type="Environment" uid="uid://jbptgqvstei3" path="res://scenes/main-environment.tres" id="1_yndf3"]
|
|
[ext_resource type="Script" uid="uid://uxn26t1x4ehr" path="res://scripts/structure.gd" id="2_54v6r"]
|
|
[ext_resource type="Resource" uid="uid://dv14kkhb6umkv" path="res://structures/road-straight.tres" id="2_bwyku"]
|
|
[ext_resource type="Texture2D" uid="uid://cbk07cxgshg26" path="res://sprites/selector.png" id="4_wr1wv"]
|
|
[ext_resource type="Resource" uid="uid://cntgl86ianngh" path="res://structures/building-small-a.tres" id="5_v5o2m"]
|
|
[ext_resource type="Resource" uid="uid://ccb475jeg7ym5" path="res://structures/grass-trees.tres" id="6_fwsy4"]
|
|
[ext_resource type="Resource" uid="uid://y6jafhfnhbrp" path="res://structures/grass-trees-tall.tres" id="7_t5ykj"]
|
|
[ext_resource type="Script" uid="uid://d3n8yylhejdoh" path="res://scripts/view.gd" id="8_yovpv"]
|
|
[ext_resource type="Resource" uid="uid://tm532uesguhk" path="res://structures/grass.tres" id="9_e755i"]
|
|
[ext_resource type="Script" uid="uid://otnxt4e77gmc" path="res://scripts/mission/mission_manager.gd" id="10_oe3re"]
|
|
[ext_resource type="Resource" uid="uid://mxrnqinnsqnt" path="res://structures/road-straight-lightposts.tres" id="11_20frt"]
|
|
[ext_resource type="Resource" uid="uid://ch8vtcpine1lc" path="res://structures/pavement.tres" id="11_ro3en"]
|
|
[ext_resource type="Resource" uid="uid://c4qbn3d85prxx" path="res://structures/power-plant.tres" id="12_xtc7p"]
|
|
[ext_resource type="PackedScene" uid="uid://dmsy06s02tcw4" path="res://scenes/generic_text_panel.tscn" id="13_7i6dj"]
|
|
[ext_resource type="Resource" uid="uid://bh65eqgid4kxy" path="res://structures/building-small-c.tres" id="13_kf5aa"]
|
|
[ext_resource type="Script" uid="uid://ctqqmg4ydlbse" path="res://scripts/mission/mission_ui.gd" id="13_xvw5w"]
|
|
[ext_resource type="Script" uid="uid://bt3emc1vt40gq" path="res://resources/generic_text_panel.resource.gd" id="14_76jlq"]
|
|
[ext_resource type="Script" uid="uid://dnquivpg0ead" path="res://scripts/mission/learning_panel.gd" id="14_q2ymb"]
|
|
[ext_resource type="Resource" uid="uid://dqqe3iofnleup" path="res://structures/pavement-fountain.tres" id="14_t5ykj"]
|
|
[ext_resource type="Resource" uid="uid://dveu4dnue0d54" path="res://structures/road-intersection.tres" id="15_e755i"]
|
|
[ext_resource type="FontFile" uid="uid://d0cxd77jybrcn" path="res://fonts/lilita_one_regular.ttf" id="17_vlub6"]
|
|
[ext_resource type="PackedScene" uid="uid://b4gkfwf4i3ydl" path="res://scenes/character.tscn" id="18_8lrh8"]
|
|
[ext_resource type="PackedScene" uid="uid://cgk66f6rg03mj" path="res://scenes/hud.tscn" id="18_hud"]
|
|
[ext_resource type="PackedScene" uid="uid://bqjnp7uypupog" path="res://scenes/controls_panel.tscn" id="19_controls"]
|
|
[ext_resource type="Script" uid="uid://b5nubrdeseay4" path="res://scripts/game_manager.gd" id="20_game_manager"]
|
|
[ext_resource type="PackedScene" uid="uid://b4s46k58ddpyc" path="res://scenes/sound_panel.tscn" id="21_sound_panel"]
|
|
[ext_resource type="Resource" uid="uid://dtal0tl2ee336" path="res://structures/store.tres" id="21_y11qv"]
|
|
[ext_resource type="PackedScene" uid="uid://btfwonjc8uj0w" path="res://scenes/mission_select_menu.tscn" id="24_ro3en"]
|
|
[ext_resource type="PackedScene" uid="uid://h4a5rdfug811" path="res://scenes/sticky_builder.tscn" id="25_qkpxi"]
|
|
[ext_resource type="Script" uid="uid://cjaik5ku37xqx" path="res://scripts/mission/mission_data.gd" id="26_tel4y"]
|
|
[ext_resource type="Resource" uid="uid://cua0khnbyusip" path="res://mission/unit_1.02/unlock_buildings.tres" id="27_qkpxi"]
|
|
|
|
[sub_resource type="Resource" id="Resource_1gdbm"]
|
|
script = ExtResource("14_76jlq")
|
|
panel_type = 0
|
|
title = "Welcome to Stem City "
|
|
body_text = "Welcome to Stem City!
|
|
|
|
Your goal is to build a thriving community from the ground up. As you complete missions, you'll unlock new structures to expand and improve your city.
|
|
|
|
As the new city planner, you need to establish a baseline understanding of your growing community. The mayor has requested a comprehensive census to guide future development.
|
|
|
|
|
|
|
|
|
|
Ready to start planning your city? Click Close to see the controls and begin your first mission!
|
|
|
|
|
|
"
|
|
button_text = "Close"
|
|
|
|
[sub_resource type="Resource" id="Resource_ja86h"]
|
|
script = ExtResource("14_76jlq")
|
|
panel_type = 1
|
|
title = "Welcome to Stem City"
|
|
body_text = "Congratulations, City Planner!
|
|
|
|
You've completed all the guided missions and unlocked the full potential of Stem City. Your understanding of urban planning and STEM concepts has helped create a thriving community.
|
|
|
|
But the journey doesn't end here! Continue expanding your city using all the structures you've unlocked. Experiment with different layouts, create new neighborhoods, and see how large you can grow your population.
|
|
|
|
The future of Stem City is now in your hands - keep building and exploring!
|
|
"
|
|
button_text = "Close"
|
|
|
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mission"]
|
|
bg_color = Color(0.145098, 0.172549, 0.231373, 0.941176)
|
|
border_width_left = 2
|
|
border_width_top = 2
|
|
border_width_right = 2
|
|
border_width_bottom = 2
|
|
border_color = Color(0.356863, 0.670588, 0.768627, 1)
|
|
corner_radius_top_left = 8
|
|
corner_radius_top_right = 8
|
|
corner_radius_bottom_right = 8
|
|
corner_radius_bottom_left = 8
|
|
shadow_size = 5
|
|
shadow_offset = Vector2(2, 2)
|
|
|
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lsmd5"]
|
|
bg_color = Color(0.196078, 0.196078, 0.196078, 0.960784)
|
|
border_width_left = 2
|
|
border_width_top = 2
|
|
border_width_right = 2
|
|
border_width_bottom = 2
|
|
border_color = Color(0.294118, 0.478431, 0.729412, 1)
|
|
corner_radius_top_left = 8
|
|
corner_radius_top_right = 8
|
|
corner_radius_bottom_right = 8
|
|
corner_radius_bottom_left = 8
|
|
shadow_size = 5
|
|
shadow_offset = Vector2(3, 3)
|
|
|
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_description"]
|
|
bg_color = Color(0.145098, 0.145098, 0.164706, 0.768627)
|
|
border_width_left = 1
|
|
border_width_top = 1
|
|
border_width_right = 1
|
|
border_width_bottom = 1
|
|
border_color = Color(0.294118, 0.478431, 0.729412, 0.301961)
|
|
corner_radius_top_left = 4
|
|
corner_radius_top_right = 4
|
|
corner_radius_bottom_right = 4
|
|
corner_radius_bottom_left = 4
|
|
|
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_graph"]
|
|
bg_color = Color(0.117647, 0.137255, 0.160784, 0.768627)
|
|
border_width_left = 1
|
|
border_width_top = 1
|
|
border_width_right = 1
|
|
border_width_bottom = 1
|
|
border_color = Color(0.294118, 0.478431, 0.729412, 0.301961)
|
|
corner_radius_top_left = 4
|
|
corner_radius_top_right = 4
|
|
corner_radius_bottom_right = 4
|
|
corner_radius_bottom_left = 4
|
|
|
|
[node name="Main" type="Node3D"]
|
|
script = ExtResource("20_game_manager")
|
|
intro_text_resource = SubResource("Resource_1gdbm")
|
|
outro_text_resource = SubResource("Resource_ja86h")
|
|
|
|
[node name="Builder" type="Node3D" parent="." node_paths=PackedStringArray("selector", "selector_container", "view_camera", "gridmap", "cash_display")]
|
|
script = ExtResource("1_jybm7")
|
|
structures = Array[ExtResource("2_54v6r")]([ExtResource("13_kf5aa"), ExtResource("5_v5o2m"), ExtResource("7_t5ykj"), ExtResource("6_fwsy4"), ExtResource("9_e755i"), ExtResource("14_t5ykj"), ExtResource("11_ro3en"), ExtResource("12_xtc7p"), ExtResource("15_e755i"), ExtResource("21_y11qv"), ExtResource("2_bwyku"), ExtResource("11_20frt")])
|
|
selector = NodePath("Selector")
|
|
selector_container = NodePath("Selector/Container")
|
|
view_camera = NodePath("../View/Camera")
|
|
gridmap = NodePath("../GridMap")
|
|
cash_display = NodePath("../CanvasLayer/HUD/PanelContainer/HBoxContainer/CashItem/CashLabel")
|
|
|
|
[node name="Selector" type="Node3D" parent="Builder"]
|
|
|
|
[node name="Sprite" type="Sprite3D" parent="Builder/Selector"]
|
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.06, 0)
|
|
texture = ExtResource("4_wr1wv")
|
|
|
|
[node name="Container" type="Node3D" parent="Builder/Selector"]
|
|
|
|
[node name="View" type="Node3D" parent="."]
|
|
transform = Transform3D(0.707107, -0.40558, 0.579228, 0, 0.819152, 0.573576, -0.707107, -0.40558, 0.579228, 0, 0, 0)
|
|
script = ExtResource("8_yovpv")
|
|
|
|
[node name="Camera" type="Camera3D" parent="View"]
|
|
transform = Transform3D(1, 0, 0, 0, 1, 7.15256e-07, 0, 0, 1, 0, 27.98, 49.5918)
|
|
environment = ExtResource("1_yndf3")
|
|
fov = 20.0
|
|
|
|
[node name="GridMap" type="GridMap" parent="."]
|
|
cell_size = Vector3(1, 1, 1)
|
|
cell_center_x = false
|
|
cell_center_y = false
|
|
cell_center_z = false
|
|
|
|
[node name="Sun" type="DirectionalLight3D" parent="."]
|
|
transform = Transform3D(0.430511, -0.372862, -0.821969, 0, 0.910684, -0.413104, 0.902585, 0.177846, 0.392059, 0, 0, 0)
|
|
light_energy = 2.0
|
|
light_indirect_energy = 3.0
|
|
light_volumetric_fog_energy = 3.07
|
|
shadow_enabled = true
|
|
shadow_opacity = 0.75
|
|
|
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
|
|
|
[node name="HUD" parent="CanvasLayer" instance=ExtResource("18_hud")]
|
|
|
|
[node name="ControlsPanel" parent="CanvasLayer" instance=ExtResource("19_controls")]
|
|
|
|
[node name="SoundPanel" parent="CanvasLayer" instance=ExtResource("21_sound_panel")]
|
|
anchors_preset = 8
|
|
|
|
[node name="GenericTextPanel" parent="CanvasLayer" instance=ExtResource("13_7i6dj")]
|
|
resource_data = ExtResource("14_76jlq")
|
|
|
|
[node name="MissionSelectMenu" parent="CanvasLayer" instance=ExtResource("24_ro3en")]
|
|
visible = false
|
|
|
|
[node name="StickyBuilder" parent="CanvasLayer" instance=ExtResource("25_qkpxi")]
|
|
offset_left = 7.0
|
|
offset_top = 124.0
|
|
offset_right = 162.0
|
|
offset_bottom = 364.0
|
|
|
|
[node name="MissionManager" type="Node" parent="." node_paths=PackedStringArray("mission_ui", "builder")]
|
|
script = ExtResource("10_oe3re")
|
|
missions = Array[ExtResource("26_tel4y")]([ExtResource("27_qkpxi")])
|
|
mission_ui = NodePath("MissionPanel")
|
|
builder = NodePath("../Builder")
|
|
character_scene = ExtResource("18_8lrh8")
|
|
|
|
[node name="MissionPanel" type="PanelContainer" parent="MissionManager" node_paths=PackedStringArray("mission_title_label", "mission_description_label", "objectives_container")]
|
|
anchors_preset = 1
|
|
anchor_left = 1.0
|
|
anchor_right = 1.0
|
|
offset_left = -487.365
|
|
offset_top = 20.0
|
|
offset_right = -57.365
|
|
offset_bottom = 203.0
|
|
grow_horizontal = 0
|
|
scale = Vector2(1.1, 1.1)
|
|
size_flags_vertical = 0
|
|
theme_override_styles/panel = SubResource("StyleBoxFlat_mission")
|
|
script = ExtResource("13_xvw5w")
|
|
mission_title_label = NodePath("MarginContainer/VBoxContainer/MissionTitleLabel")
|
|
mission_description_label = NodePath("MarginContainer/VBoxContainer/MissionDescriptionLabel")
|
|
objectives_container = NodePath("MarginContainer/VBoxContainer/ObjectivesContainer")
|
|
|
|
[node name="MarginContainer" type="MarginContainer" parent="MissionManager/MissionPanel"]
|
|
layout_mode = 2
|
|
theme_override_constants/margin_left = 20
|
|
theme_override_constants/margin_top = 20
|
|
theme_override_constants/margin_right = 20
|
|
theme_override_constants/margin_bottom = 20
|
|
|
|
[node name="VBoxContainer" type="VBoxContainer" parent="MissionManager/MissionPanel/MarginContainer"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
theme_override_constants/separation = 15
|
|
|
|
[node name="MissionTitleLabel" type="Label" parent="MissionManager/MissionPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
theme_override_fonts/font = ExtResource("17_vlub6")
|
|
theme_override_font_sizes/font_size = 24
|
|
text = "Mission Title"
|
|
horizontal_alignment = 1
|
|
autowrap_mode = 2
|
|
|
|
[node name="HSeparator" type="HSeparator" parent="MissionManager/MissionPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
|
|
[node name="MissionDescriptionLabel" type="Label" parent="MissionManager/MissionPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 1
|
|
theme_override_font_sizes/font_size = 16
|
|
text = "Mission description goes here..."
|
|
autowrap_mode = 2
|
|
text_overrun_behavior = 4
|
|
|
|
[node name="HSeparator2" type="HSeparator" parent="MissionManager/MissionPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
|
|
[node name="ObjectivesLabel" type="Label" parent="MissionManager/MissionPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
theme_override_colors/font_color = Color(0.678431, 0.847059, 1, 1)
|
|
theme_override_font_sizes/font_size = 18
|
|
text = "Objectives:"
|
|
|
|
[node name="ObjectivesContainer" type="VBoxContainer" parent="MissionManager/MissionPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
theme_override_constants/separation = 10
|
|
|
|
[node name="LearningPanel" type="PanelContainer" parent="MissionManager"]
|
|
visible = false
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 50.0
|
|
offset_top = 50.0
|
|
offset_right = -50.0
|
|
offset_bottom = -50.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
size_flags_horizontal = 3
|
|
size_flags_vertical = 3
|
|
theme_override_styles/panel = SubResource("StyleBoxFlat_lsmd5")
|
|
script = ExtResource("14_q2ymb")
|
|
|
|
[node name="MarginContainer" type="MarginContainer" parent="MissionManager/LearningPanel"]
|
|
layout_mode = 2
|
|
theme_override_constants/margin_left = 30
|
|
theme_override_constants/margin_top = 30
|
|
theme_override_constants/margin_right = 30
|
|
theme_override_constants/margin_bottom = 30
|
|
|
|
[node name="VBoxContainer" type="VBoxContainer" parent="MissionManager/LearningPanel/MarginContainer"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
theme_override_constants/separation = 20
|
|
|
|
[node name="TitleLabel" type="Label" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
theme_override_fonts/font = ExtResource("17_vlub6")
|
|
theme_override_font_sizes/font_size = 32
|
|
text = "Learning Module"
|
|
horizontal_alignment = 1
|
|
|
|
[node name="HSeparator" type="HSeparator" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
|
|
[node name="DescriptionPanel" type="PanelContainer" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
size_flags_stretch_ratio = 0.5
|
|
theme_override_styles/panel = SubResource("StyleBoxFlat_description")
|
|
|
|
[node name="MarginContainer" type="MarginContainer" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/DescriptionPanel"]
|
|
layout_mode = 2
|
|
theme_override_constants/margin_left = 15
|
|
theme_override_constants/margin_top = 15
|
|
theme_override_constants/margin_right = 15
|
|
theme_override_constants/margin_bottom = 15
|
|
|
|
[node name="DescriptionLabel" type="Label" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/DescriptionPanel/MarginContainer"]
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
theme_override_font_sizes/font_size = 20
|
|
text = "Description goes here..."
|
|
autowrap_mode = 2
|
|
|
|
[node name="GraphTitle" type="Label" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
theme_override_font_sizes/font_size = 24
|
|
text = "Graph:"
|
|
horizontal_alignment = 1
|
|
|
|
[node name="GraphContainer" type="Panel" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
custom_minimum_size = Vector2(0, 300)
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
size_flags_vertical = 3
|
|
size_flags_stretch_ratio = 2.0
|
|
theme_override_styles/panel = SubResource("StyleBoxFlat_graph")
|
|
|
|
[node name="AnswerContainer" type="VBoxContainer" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 10
|
|
|
|
[node name="QuestionLabel" type="Label" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/AnswerContainer"]
|
|
layout_mode = 2
|
|
theme_override_font_sizes/font_size = 18
|
|
text = "How many workers do we need to build 10 houses in a week?"
|
|
horizontal_alignment = 1
|
|
|
|
[node name="AnswerField" type="LineEdit" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/AnswerContainer"]
|
|
custom_minimum_size = Vector2(150, 40)
|
|
layout_mode = 2
|
|
size_flags_horizontal = 4
|
|
theme_override_font_sizes/font_size = 18
|
|
placeholder_text = "Enter answer"
|
|
alignment = 1
|
|
max_length = 5
|
|
|
|
[node name="CheckButton" type="Button" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/AnswerContainer"]
|
|
custom_minimum_size = Vector2(150, 40)
|
|
layout_mode = 2
|
|
size_flags_horizontal = 4
|
|
theme_override_font_sizes/font_size = 16
|
|
text = "Check Answer"
|
|
|
|
[node name="FeedbackLabel" type="Label" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/AnswerContainer"]
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
theme_override_font_sizes/font_size = 18
|
|
horizontal_alignment = 1
|
|
autowrap_mode = 2
|
|
text_overrun_behavior = 3
|
|
max_lines_visible = 6
|
|
|
|
[node name="HBoxContainer" type="HBoxContainer" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
alignment = 1
|
|
|
|
[node name="CompleteButton" type="Button" parent="MissionManager/LearningPanel/MarginContainer/VBoxContainer/HBoxContainer"]
|
|
custom_minimum_size = Vector2(200, 50)
|
|
layout_mode = 2
|
|
theme_override_font_sizes/font_size = 18
|
|
disabled = true
|
|
text = "Complete"
|
|
|
|
[node name="ObjectiveLabel" type="Label" parent="MissionManager"]
|
|
offset_right = 40.0
|
|
offset_bottom = 23.0
|
|
|
|
[connection signal="all_missions_completed" from="MissionManager" to="." method="_on_mission_manager_all_missions_completed"]
|
|
[connection signal="mission_started" from="MissionManager" to="." method="_on_mission_manager_mission_started"]
|
|
[connection signal="pressed" from="MissionManager/LearningPanel/MarginContainer/VBoxContainer/HBoxContainer/CompleteButton" to="MissionManager/LearningPanel" method="_on_complete_button_pressed"]
|