diff --git a/project.godot b/project.godot index 8fa90eb..192998b 100644 --- a/project.godot +++ b/project.godot @@ -18,7 +18,6 @@ config/icon="res://icon.svg" [autoload] GameState="*res://src/Core/GameState.gd" -TimeSystem="*res://src/Core/TimeSystem.gd" Settings="*res://src/Core/Settings.gd" SaveSystem="*res://src/Core/SaveSystem.gd" diff --git a/src/Core/MainGame.gd b/src/Core/MainGame.gd index 99b2d39..1f5edaa 100644 --- a/src/Core/MainGame.gd +++ b/src/Core/MainGame.gd @@ -1,5 +1,17 @@ extends Node +var cnt := 0; +func _ready() -> void: + %DiscipleManager.spawn_initial_roster() + pass + +func _process(delta: float) -> void: + if cnt >= 1000: + var d : Disciple= %DiscipleManager.get_disciple(2); + %DiscipleManager.remove_disciple(d); + else: + cnt = cnt + 1; + pass func _on_top_bar_hud_sign_return_mainmenu() -> void: if GameState.mode == GameState.GameMode.NEW_GAME: @@ -8,3 +20,13 @@ func _on_top_bar_hud_sign_return_mainmenu() -> void: SaveSystem.save(GameState.profile_id) # 进游戏立即存首档,防开局就丢 get_tree().change_scene_to_file("res://src/UI/Panels/MainMenu/MainMenu.tscn") pass # Replace with function body. + +func _on_disciple_manager_disciple_added(disciple: Disciple) -> void: + $PanelContainer/Manager.add_disciple_card(disciple) + pass # Replace with function body. + + + +func _on_disciple_manager_disciple_removed(disciple: Disciple) -> void: + $PanelContainer/Manager.remove_disciple_card(disciple.id) + pass # Replace with function body. diff --git a/src/Core/MainGame.tscn b/src/Core/MainGame.tscn index ac9ad33..b17ba6e 100644 --- a/src/Core/MainGame.tscn +++ b/src/Core/MainGame.tscn @@ -1,12 +1,14 @@ [gd_scene format=3 uid="uid://c1exffg84ojqx"] -[ext_resource type="Script" uid="uid://cr4by5k8vgkcq" path="res://src/Core/MainGame.gd" id="1_8bu23"] +[ext_resource type="Script" uid="uid://cr4by5k8vgkcq" path="res://src/Core/MainGame.gd" id="1_2atgf"] +[ext_resource type="Script" uid="uid://bstiea1nx61b8" path="res://src/Character/DiscipleManager.gd" id="1_dl5bp"] [ext_resource type="PackedScene" uid="uid://d3njijtx7ws1m" path="res://src/UI/HUD/MainSceneHud.tscn" id="2_8bu23"] [ext_resource type="StyleBox" uid="uid://e86yw57h4v2s" path="res://resources/manager_style_box_flat.tres" id="3_dl5bp"] [ext_resource type="PackedScene" uid="uid://d1mbwdtarjqof" path="res://src/UI/Panels/Manager/Manager.tscn" id="4_58g0x"] +[ext_resource type="Script" uid="uid://b8f8t2phmhq2e" path="res://src/Core/TimeSystem.gd" id="5_58g0x"] [node name="MainGame" type="Node" unique_id=42551660] -script = ExtResource("1_8bu23") +script = ExtResource("1_2atgf") [node name="MainHud" parent="." unique_id=836125968 instance=ExtResource("2_8bu23")] size_flags_horizontal = 3 @@ -23,4 +25,16 @@ theme_override_styles/panel = ExtResource("3_dl5bp") [node name="Manager" parent="PanelContainer" unique_id=360636457 instance=ExtResource("4_58g0x")] layout_mode = 2 +[node name="DiscipleManager" type="Node" parent="." unique_id=1485476702] +unique_name_in_owner = true +script = ExtResource("1_dl5bp") +metadata/_custom_type_script = "uid://bstiea1nx61b8" + +[node name="TimeSystem" type="Node" parent="." unique_id=1280036358] +unique_name_in_owner = true +script = ExtResource("5_58g0x") +metadata/_custom_type_script = "uid://b8f8t2phmhq2e" + +[connection signal="disciple_added" from="DiscipleManager" to="." method="_on_disciple_manager_disciple_added"] +[connection signal="disciple_removed" from="DiscipleManager" to="." method="_on_disciple_manager_disciple_removed"] [connection signal="sign_return_mainmenu" from="MainHud" to="." method="_on_top_bar_hud_sign_return_mainmenu"] diff --git a/src/Core/TimeSystem.gd b/src/Core/TimeSystem.gd index 44a10d2..74e2a2a 100644 --- a/src/Core/TimeSystem.gd +++ b/src/Core/TimeSystem.gd @@ -1,6 +1,7 @@ ## 全局时间系统(Autoload 单例)。 ## 负责游戏时间的推进与播报,仅在世界场景中运行。 ## 历法:12 月 × 30 日 = 360 日/年。 +class_name TimeSystem extends Node const MONTHS_PER_YEAR := 12 diff --git a/src/UI/HUD/MainSceneHud.gd b/src/UI/HUD/MainSceneHud.gd index d64c4ee..be958d7 100644 --- a/src/UI/HUD/MainSceneHud.gd +++ b/src/UI/HUD/MainSceneHud.gd @@ -6,8 +6,8 @@ extends Control signal sign_return_mainmenu func _ready() -> void: - time_label.text = TimeSystem.get_date_text() - TimeSystem.month_passed.connect(_on_TimeMonthPassed) + time_label.text = %TimeSystem.get_date_text() + %TimeSystem.month_passed.connect(_on_TimeMonthPassed) pass func _on_ButtonEsc_ButtonUp() -> void: @@ -20,5 +20,5 @@ func _on_TimeMonthPassed(_year: int, _month: int) -> void: func _on_button_continue_button_up() -> void: - TimeSystem.advance_month() + %TimeSystem.advance_month() pass # Replace with function body.