diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..bf6850f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "godotTools.editorPath.godot4": "d:\\Program Files\\Godot\\godot43.exe" +} \ No newline at end of file diff --git a/components/Abstracts/EntityBase.tscn b/components/Abstracts/EntityBase.tscn index 928d298..0bc70a6 100644 --- a/components/Abstracts/EntityBase.tscn +++ b/components/Abstracts/EntityBase.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=17 format=3 uid="uid://cvogxi7mktumf"] +[gd_scene load_steps=18 format=3 uid="uid://cvogxi7mktumf"] [ext_resource type="Script" path="res://scripts/Statemachine/EntityBase.gd" id="1_mvol6"] [ext_resource type="Texture2D" uid="uid://dwwpkn4q07ja2" path="res://icon.svg" id="2_7lpu0"] +[ext_resource type="AudioStream" uid="uid://cn876dtp1ypqx" path="res://resources/sounds/effect/Collect.wav" id="2_qt0aq"] [ext_resource type="PackedScene" uid="uid://dcjqjqere8ets" path="res://components/UI/EntityStateBar.tscn" id="2_uje1g"] [sub_resource type="SpriteFrames" id="SpriteFrames_wcqpm"] @@ -184,6 +185,9 @@ unique_name_in_owner = true [node name="hurt" type="AudioStreamPlayer2D" parent="sounds"] +[node name="collect" type="AudioStreamPlayer2D" parent="sounds"] +stream = ExtResource("2_qt0aq") + [node name="attack0" type="AudioStreamPlayer2D" parent="sounds"] [node name="texture" type="AnimatedSprite2D" parent="."] diff --git a/components/UI/FieldShow.tscn b/components/UI/FieldShow.tscn index 4b2d62f..00f38be 100644 --- a/components/UI/FieldShow.tscn +++ b/components/UI/FieldShow.tscn @@ -4,17 +4,31 @@ [ext_resource type="Theme" uid="uid://b6nox1qqh50ub" path="res://themes/smallText.tres" id="2_x62bb"] [node name="FieldShow" type="HBoxContainer"] +offset_right = 144.0 +offset_bottom = 18.0 script = ExtResource("1_gwocj") +metadata/_edit_horizontal_guides_ = [18.0] [node name="name" type="Label" parent="."] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 11 theme = ExtResource("2_x62bb") -text = "最大生命值" +text = "生命上限" +horizontal_alignment = 1 + +[node name="sep" type="ColorRect" parent="."] +custom_minimum_size = Vector2(20, 1) +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +size_flags_stretch_ratio = 16.0 [node name="value" type="Label" parent="."] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 10 +size_flags_vertical = 8 theme = ExtResource("2_x62bb") -text = "0" +text = "+0" +horizontal_alignment = 1 diff --git a/components/UI/ItemDropped.tscn b/components/UI/ItemDropped.tscn index 70351b3..a95047e 100644 --- a/components/UI/ItemDropped.tscn +++ b/components/UI/ItemDropped.tscn @@ -11,7 +11,7 @@ script = ExtResource("1_v2djl") [node name="texture" type="Sprite2D" parent="."] unique_name_in_owner = true -scale = Vector2(0.25, 0.25) +scale = Vector2(0.5, 0.5) texture = ExtResource("2_4hl42") [node name="hitbox" type="CollisionShape2D" parent="."] diff --git a/resources/sounds/effect/Collect.wav b/resources/sounds/effect/Collect.wav new file mode 100644 index 0000000..a2a47b6 Binary files /dev/null and b/resources/sounds/effect/Collect.wav differ diff --git a/resources/sounds/effect/Collect.wav.import b/resources/sounds/effect/Collect.wav.import new file mode 100644 index 0000000..b2dab00 --- /dev/null +++ b/resources/sounds/effect/Collect.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cn876dtp1ypqx" +path="res://.godot/imported/Collect.wav-4d772a4eda4ec839db8d846e0f5a9531.sample" + +[deps] + +source_file="res://resources/sounds/effect/Collect.wav" +dest_files=["res://.godot/imported/Collect.wav-4d772a4eda4ec839db8d846e0f5a9531.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/scripts/Contents/Panels/MakeFeed.gd b/scripts/Contents/Panels/MakeFeed.gd index 7b56dfb..632ae3a 100644 --- a/scripts/Contents/Panels/MakeFeed.gd +++ b/scripts/Contents/Panels/MakeFeed.gd @@ -60,5 +60,6 @@ func regenerateCards(): feeds.shuffle() for i in range(UIState.player.fields[FieldStore.Entity.FEED_COUNT_SHOW]): var feed = feeds[i] as Feed + feed.show() avaliableFeeds.remove_child(feed) feedCards.add_child(feed) diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index 5cc53ff..8159609 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -71,6 +71,7 @@ func _ready(): func(body): if body is ItemDropped: inventory[body.item] += body.stackCount + playSound("collect") body.queue_free() ) energyChanged.connect( diff --git a/scripts/Statemachine/FieldShow.gd b/scripts/Statemachine/FieldShow.gd index 9eef6ae..87d36ff 100644 --- a/scripts/Statemachine/FieldShow.gd +++ b/scripts/Statemachine/FieldShow.gd @@ -13,9 +13,9 @@ func _ready(): var formattedValue: String var dataType = FieldStore.entityMapType[field] if dataType == FieldStore.DataType.VALUE: - formattedValue = str(value) + formattedValue = MathTool.signBeforeStr(value) elif dataType == FieldStore.DataType.ANGLE: - formattedValue = str(value) + "°" + formattedValue = MathTool.signBeforeStr(value) + "°" elif dataType == FieldStore.DataType.PERCENT: - formattedValue = "%.1f" % (value * 100) + "%" + formattedValue = MathTool.signBeforeStr(float("%.1f" % (value * 100))) + "%" valueLabel.text = formattedValue diff --git a/scripts/Tools/MathTool.gd b/scripts/Tools/MathTool.gd index 1e69df1..5209f64 100644 --- a/scripts/Tools/MathTool.gd +++ b/scripts/Tools/MathTool.gd @@ -8,4 +8,6 @@ static func randv2_range(offset: float): randf_range(-offset, offset) ) static func randc_from(array: Array): - return array[randi() % array.size()] \ No newline at end of file + return array[randi() % array.size()] +static func signBeforeStr(value: float): + return ("+" if value > 0 else "-" if value < 0 else "") + str(abs(value)) \ No newline at end of file