diff --git a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn index 13605aa..ba77ea6 100644 --- a/DungeonShooting_Godot/prefab/ui/RoomUI.tscn +++ b/DungeonShooting_Godot/prefab/ui/RoomUI.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://bvpmtfupny8iu"] +[gd_scene load_steps=17 format=3 uid="uid://bvpmtfupny8iu"] [ext_resource type="Script" path="res://src/game/ui/roomUI/RoomUIPanel.cs" id="1_tfcrp"] [ext_resource type="Texture2D" uid="uid://b67i86mtqrn32" path="res://resource/sprite/ui/roomUI/icon_bullet.png" id="2_ruc0p"] @@ -7,10 +7,11 @@ [ext_resource type="Texture2D" uid="uid://cx3i1nkcc4307" path="res://resource/sprite/ui/roomUI/ReloadBarBlock.png" id="5_w3lq2"] [ext_resource type="Texture2D" uid="uid://blywnftxn1cfd" path="res://resource/sprite/ui/roomUI/Life_full.png" id="6_ggviq"] [ext_resource type="Texture2D" uid="uid://k621mhhkg65f" path="res://resource/sprite/ui/roomUI/MapBar.png" id="7_p6pvs"] -[ext_resource type="Material" uid="uid://cces3bhds7jyi" path="res://resource/material/Blend.tres" id="8_vboii"] [ext_resource type="Texture2D" uid="uid://cu0wlvrbntvyd" path="res://resource/sprite/prop/active/ActiveProp5000.png" id="10_5d4np"] +[ext_resource type="Texture2D" uid="uid://b8u6s5n37157" path="res://resource/sprite/ui/roomUI/Panel2.png" id="10_eokvx"] [ext_resource type="Texture2D" uid="uid://0swkya4hn82c" path="res://resource/sprite/ui/roomUI/Panel.png" id="10_q3fs8"] [ext_resource type="Texture2D" uid="uid://504f1r0mi33n" path="res://resource/sprite/weapon/weapon0005/Weapon0005.png" id="11_lsai4"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="12_fgyob"] [sub_resource type="Gradient" id="1"] colors = PackedColorArray(0.4, 0.498039, 1, 1, 0.4, 0.498039, 1, 0.313726) @@ -20,6 +21,26 @@ outline_size = 8 outline_color = Color(0, 0, 0, 1) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_msp2c"] +resource_local_to_scene = true +shader = ExtResource("12_fgyob") +shader_parameter/blend = Color(0, 0, 0, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0.941176, 0.941176, 0.941176, 1) +shader_parameter/outline_rainbow = false + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_7pkeh"] +resource_local_to_scene = true +shader = ExtResource("12_fgyob") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/alpha = 1.0 +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0.941176, 0.941176, 0.941176, 1) +shader_parameter/outline_rainbow = false + [node name="RoomUI" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -166,22 +187,24 @@ grow_vertical = 0 scale = Vector2(4, 4) -[node name="ActivePropPanel" type="NinePatchRect" parent="Control/ActivePropBar"] +[node name="ActivePropBg" type="NinePatchRect" parent="Control/ActivePropBar"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_left = 1.0 +offset_top = 1.0 +offset_right = -1.0 +offset_bottom = -1.0 grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("10_q3fs8") -region_rect = Rect2(0, 0, 8, 8) -patch_margin_left = 2 -patch_margin_top = 2 -patch_margin_right = 2 -patch_margin_bottom = 2 +region_rect = Rect2(2, 2, 4, 4) +patch_margin_left = 4 +patch_margin_right = 4 -[node name="ActivePropSprite" type="TextureRect" parent="Control/ActivePropBar/ActivePropPanel"] -material = ExtResource("8_vboii") +[node name="ActivePropSprite" type="TextureRect" parent="Control/ActivePropBar"] +material = SubResource("ShaderMaterial_msp2c") layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -191,7 +214,21 @@ texture = ExtResource("10_5d4np") stretch_mode = 3 -[node name="ActivePropCount" type="Label" parent="Control/ActivePropBar/ActivePropPanel"] +[node name="ActivePropGrey" type="ColorRect" parent="Control/ActivePropBar"] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 1.0 +offset_top = 1.0 +offset_right = -1.0 +offset_bottom = -1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.717647) + +[node name="ActivePropCount" type="Label" parent="Control/ActivePropBar"] layout_mode = 1 anchors_preset = 3 anchor_left = 1.0 @@ -210,6 +247,20 @@ horizontal_alignment = 2 vertical_alignment = 1 +[node name="ActivePropPanel" type="NinePatchRect" parent="Control/ActivePropBar"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("10_eokvx") +region_rect = Rect2(0, 0, 8, 8) +patch_margin_left = 2 +patch_margin_top = 2 +patch_margin_right = 2 +patch_margin_bottom = 2 + [node name="WeaponBar" type="Control" parent="Control"] layout_mode = 1 anchors_preset = 3 @@ -240,7 +291,7 @@ patch_margin_bottom = 2 [node name="WeaponSprite" type="TextureRect" parent="Control/WeaponBar/WeaponPanel"] -material = ExtResource("8_vboii") +material = SubResource("ShaderMaterial_7pkeh") layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 diff --git a/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json b/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json index b769e12..6c3fba1 100644 --- a/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json +++ b/DungeonShooting_Godot/resource/map/tiledata/testGroup/inlet/Room1.json @@ -1,38 +1,38 @@ { - "Position": { - "X": -1, - "Y": -1 - }, - "Size": { - "X": 12, - "Y": 8 - }, - "DoorAreaInfos": [], - "NavigationList": [ - { - "Type": 0, - "Points": [ - { - "X": 8, - "Y": 8 - }, - { - "X": 152, - "Y": 8 - }, - { - "X": 152, - "Y": 96 - }, - { - "X": 8, - "Y": 96 - } - ] - } - ], - "GroupName": "testGroup", - "RoomType": 1, - "FileName": "Room1", - "Weight": 100 + "Position": { + "X": -1, + "Y": -1 + }, + "Size": { + "X": 12, + "Y": 8 + }, + "DoorAreaInfos": [], + "NavigationList": [ + { + "Type": 0, + "Points": [ + { + "X": 8, + "Y": 8 + }, + { + "X": 152, + "Y": 8 + }, + { + "X": 152, + "Y": 96 + }, + { + "X": 8, + "Y": 96 + } + ] + } + ], + "GroupName": "testGroup", + "RoomType": 1, + "FileName": "Room1", + "Weight": 100 } \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/material/Blend.tres b/DungeonShooting_Godot/resource/material/Blend.tres index 739931d..dbd0411 100644 --- a/DungeonShooting_Godot/resource/material/Blend.tres +++ b/DungeonShooting_Godot/resource/material/Blend.tres @@ -5,7 +5,7 @@ [resource] resource_local_to_scene = true shader = ExtResource("1") -shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/blend = Color(0, 0, 0, 1) shader_parameter/schedule = 0.0 shader_parameter/alpha = 1.0 shader_parameter/show_outline = true diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png new file mode 100644 index 0000000..3c268a3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png.import b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png.import new file mode 100644 index 0000000..7e80777 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/ui/roomUI/Panel2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8u6s5n37157" +path="res://.godot/imported/Panel2.png-90481bd195612418c9b6e249156041ef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/ui/roomUI/Panel2.png" +dest_files=["res://.godot/imported/Panel2.png-90481bd195612418c9b6e249156041ef.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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=1 diff --git a/DungeonShooting_Godot/resource/theme/mainTheme.tres b/DungeonShooting_Godot/resource/theme/mainTheme.tres index 8fd1a0e..e509b7c 100644 --- a/DungeonShooting_Godot/resource/theme/mainTheme.tres +++ b/DungeonShooting_Godot/resource/theme/mainTheme.tres @@ -352,7 +352,7 @@ [sub_resource type="ImageTexture" id="58"] -[sub_resource type="Image" id="Image_bp5nu"] +[sub_resource type="Image" id="Image_lbl0u"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 66, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 66, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 39, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 75, 255, 255, 255, 39, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 39, 255, 255, 255, 67, 255, 255, 255, 67, 255, 255, 255, 39, 255, 255, 255, 1, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -362,7 +362,7 @@ } [sub_resource type="ImageTexture" id="60"] -image = SubResource("Image_bp5nu") +image = SubResource("Image_lbl0u") [sub_resource type="StyleBoxTexture" id="61"] content_margin_left = 2.0 @@ -372,7 +372,7 @@ texture = SubResource("60") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_7vkec"] +[sub_resource type="Image" id="Image_wrmul"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 248, 0, 248, 248, 248, 164, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 164, 248, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 247, 247, 0, 247, 247, 247, 97, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 248, 248, 248, 186, 247, 247, 247, 97, 247, 247, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 191, 191, 191, 4, 247, 247, 247, 98, 248, 248, 248, 167, 248, 248, 248, 167, 247, 247, 247, 98, 191, 191, 191, 4, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 247, 247, 247, 0, 248, 248, 248, 0, 248, 248, 248, 0, 247, 247, 247, 0, 191, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -382,7 +382,7 @@ } [sub_resource type="ImageTexture" id="63"] -image = SubResource("Image_7vkec") +image = SubResource("Image_wrmul") [sub_resource type="StyleBoxTexture" id="64"] content_margin_left = 2.0 @@ -392,7 +392,7 @@ texture = SubResource("63") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_fdr5k"] +[sub_resource type="Image" id="Image_s4k5p"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 0, 173, 173, 173, 163, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 163, 173, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 0, 172, 172, 172, 96, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 173, 173, 173, 185, 172, 172, 172, 96, 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 127, 127, 127, 4, 173, 173, 173, 97, 173, 173, 173, 166, 173, 173, 173, 166, 173, 173, 173, 97, 127, 127, 127, 4, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 173, 173, 173, 0, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -402,7 +402,7 @@ } [sub_resource type="ImageTexture" id="66"] -image = SubResource("Image_fdr5k") +image = SubResource("Image_s4k5p") [sub_resource type="StyleBoxTexture" id="67"] content_margin_left = 2.0 @@ -412,7 +412,7 @@ texture = SubResource("66") region_rect = Rect2(0, 0, 12, 12) -[sub_resource type="Image" id="Image_r34yi"] +[sub_resource type="Image" id="Image_mx0dj"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 16, 255, 255, 255, 21, 255, 255, 255, 21, 255, 255, 255, 16, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 4, 255, 255, 255, 16, 255, 255, 255, 16, 255, 255, 255, 4, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -422,7 +422,7 @@ } [sub_resource type="ImageTexture" id="69"] -image = SubResource("Image_r34yi") +image = SubResource("Image_mx0dj") [sub_resource type="StyleBoxTexture" id="70"] content_margin_left = 0.0 @@ -446,7 +446,7 @@ content_margin_right = 4.0 content_margin_bottom = 4.0 -[sub_resource type="Image" id="Image_mj58c"] +[sub_resource type="Image" id="Image_ckxm6"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 228, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 228, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 18, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 17, 255, 255, 255, 186, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 191, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 187, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 187, 255, 255, 255, 229, 255, 255, 255, 188, 255, 255, 255, 18, 255, 255, 255, 19, 255, 255, 255, 188, 255, 255, 255, 229, 255, 255, 255, 186, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 17, 255, 255, 255, 185, 255, 255, 255, 229, 255, 255, 255, 189, 255, 255, 255, 19, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 189, 255, 255, 255, 229, 255, 255, 255, 185, 255, 255, 255, 17, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 76, 255, 255, 255, 229, 255, 255, 255, 190, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 190, 255, 255, 255, 229, 255, 255, 255, 76, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 77, 255, 255, 255, 19, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 77, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -456,7 +456,7 @@ } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_mj58c") +image = SubResource("Image_ckxm6") [sub_resource type="StyleBoxFlat" id="57"] content_margin_left = 6.0 diff --git a/DungeonShooting_Godot/src/game/activity/package/Package.cs b/DungeonShooting_Godot/src/game/activity/package/Package.cs index 3541785..a8d72e3 100644 --- a/DungeonShooting_Godot/src/game/activity/package/Package.cs +++ b/DungeonShooting_Godot/src/game/activity/package/Package.cs @@ -1,8 +1,10 @@ using System; using System.Collections.Generic; -public class Package where T : ActivityObject, IPackageItem +public class Package : IDestroy where T : ActivityObject, IPackageItem { + public bool IsDestroyed { get; private set; } + /// /// 归属者 /// @@ -403,4 +405,23 @@ return -1; } + + public void Destroy() + { + if (IsDestroyed) + { + return; + } + + IsDestroyed = true; + for (var i = 0; i < ItemSlot.Length; i++) + { + var activityObject = ItemSlot[i]; + if (activityObject != null) + { + activityObject.Destroy(); + ItemSlot[i] = null; + } + } + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs index a2f2a7b..04cd731 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs @@ -50,39 +50,47 @@ private int _maxCount = 1; /// - /// 道具当前叠加数量 - /// - public int OverlaysCount { get; set; } = 1; - - /// - /// 道具最大叠加数量 - /// - public int MaxOverlaysCount { get; set; } = 1; - - /// /// 使用一次后的冷却时间, 单位: 秒 /// - public float CooldownTime { get; set; } = 1f; + public float CooldownTime { get; set; } = 2f; /// /// 当道具使用完后是否自动销毁 /// - public bool AutoDestroy { get; set; } = true; + public bool AutoDestroy { get; set; } = false; /// /// 道具充能进度, 必须要充能完成才能使用, 值范围: 0 - 1 /// - public float ChargeProgress { get; set; } = 1; + public float ChargeProgress + { + get => _chargeProgress; + set + { + var temp = _chargeProgress; + _chargeProgress = Mathf.Clamp(value, 0, 1); + if (temp != _chargeProgress) + { + OnChangeChargeProgress(); + } + } + } + + private float _chargeProgress = 1; + + + //冷却计时器 + private float _cooldownTimer = 0; /// - /// 是否可以使用 + /// 当检测是否可以使用时调用 /// - public abstract bool CanUse(); - + public abstract bool OnCheckUse(); + /// - /// 当道具被使用时调用 + /// 当道具被使用时调用, 函数返回值为消耗数量 /// - protected abstract void OnUse(); + protected abstract int OnUse(); protected override void OnPickUp(Role master) { @@ -92,22 +100,94 @@ { } + /// + /// 道具数量改变时调用 + /// protected virtual void OnChangeCount() { } + /// + /// 道具最大数量改变时调用 + /// protected virtual void OnChangeMaxCount() { } + + /// + /// 道具充能进度改变时调用 + /// + protected virtual void OnChangeChargeProgress() + { + } + + /// + /// 冷却完成时调用 + /// + protected virtual void OnCooldownFinish() + { + } + + public override void PackProcess(float delta) + { + if (_cooldownTimer > 0) + { + _cooldownTimer -= delta; + + //冷却完成 + if (_cooldownTimer <= 0) + { + _cooldownTimer = 0; + OnCooldownFinish(); + } + } + } + + /// + /// 检测是否可以使用当前道具 + /// + public bool CheckUse() + { + return ChargeProgress >= 1 && _cooldownTimer <= 0 && Count > 0 && OnCheckUse(); + } /// /// 触发使用道具 /// public void Use() { - if (ChargeProgress >= 1 && CanUse()) + if (Master == null) { - OnUse(); + return; } + if (CheckUse()) //可以使用道具 + { + var num = OnUse(); + if (num != 0) + { + Count -= num; + } + + //冷却计时器 + _cooldownTimer = CooldownTime; + if (Count == 0 && AutoDestroy) //用光了, 自动销毁 + { + Master.RemoveProp(this); + Destroy(); + } + } + } + + /// + /// 获取冷却进度 0 - 1 + /// + public float GetCooldownProgress() + { + if (_cooldownTimer <= 0) + { + return 1; + } + + return (CooldownTime - _cooldownTimer) / CooldownTime; } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs index 4e4202b..773ff62 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp5000.cs @@ -4,13 +4,22 @@ [Tool] public partial class ActiveProp5000 : ActiveProp { - public override bool CanUse() + public override void OnInit() + { + AutoDestroy = true; + MaxCount = 20; + Count = 20; + CooldownTime = 5; + } + + public override bool OnCheckUse() { return !Master.IsHpFull(); } - protected override void OnUse() + protected override int OnUse() { Master.Hp += 2; + return 1; } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs index 068f27d..104f51b 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs @@ -12,6 +12,7 @@ master.RoleState.CalcBulletCountEvent += CalcBulletCountEvent; master.RoleState.CalcBulletDeviationAngleEvent += CalcBulletDeviationAngleEvent; master.RoleState.CalcDamageEvent += CalcDamageEvent; + master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; } protected override void OnRemove(Role master) @@ -19,6 +20,7 @@ master.RoleState.CalcBulletCountEvent -= CalcBulletCountEvent; master.RoleState.CalcBulletDeviationAngleEvent -= CalcBulletDeviationAngleEvent; master.RoleState.CalcDamageEvent -= CalcDamageEvent; + master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; } private void CalcBulletCountEvent(Weapon weapon, int originCount, RefValue refValue) @@ -28,7 +30,7 @@ private void CalcBulletDeviationAngleEvent(Weapon weapon, float originAngle, RefValue refValue) { - refValue.Value += Utils.RandomRangeFloat(-10, 10); + refValue.Value += Utils.RandomRangeFloat(-8, 8); } private void CalcDamageEvent(int originDamage, RefValue refValue) @@ -40,4 +42,9 @@ refValue.Value = Mathf.Max(1, refValue.Value - Mathf.FloorToInt(originDamage * 0.4f)); } + + private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) + { + speed.Value += originSpeed * Utils.RandomRangeFloat(-0.05f, 0.05f); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/role/Role.cs b/DungeonShooting_Godot/src/game/activity/role/Role.cs index c796fa2..574fb4f 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Role.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Role.cs @@ -882,4 +882,16 @@ GD.PrintErr("尚未被支持的道具类型: " + prop.GetType().FullName); return false; } + + protected override void OnDestroy() + { + //销毁道具 + foreach (var buffProp in BuffPropPack) + { + buffProp.Destroy(); + } + BuffPropPack.Clear(); + ActivePropsPack.Destroy(); + WeaponPack.Destroy(); + } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs b/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs index 6ced339..a301de3 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/ActivePropBar.cs @@ -5,10 +5,15 @@ public class ActivePropBar { private RoomUI.UiNode_ActivePropBar _activePropBar; + private ShaderMaterial _shaderMaterial; + private Rect2 _startRect; public ActivePropBar(RoomUI.UiNode_ActivePropBar activePropBar) { _activePropBar = activePropBar; + _shaderMaterial = (ShaderMaterial)_activePropBar.L_ActivePropSprite.Instance.Material; + _startRect = _activePropBar.L_ActivePropGrey.Instance.GetRect(); + SetActivePropTexture(null); } @@ -29,6 +34,19 @@ { SetActivePropCount(prop.Count); SetActivePropTexture(prop.GetCurrentTexture()); + + //是否可以使用该道具 + if (prop.CheckUse()) + { + _shaderMaterial.SetShaderParameter("schedule", 0); + } + else + { + _shaderMaterial.SetShaderParameter("schedule", 0.6f); + } + + //冷却 + SetActivePropCooldownProgress(prop.GetCooldownProgress()); } else { @@ -36,11 +54,14 @@ } } + /// + /// 设置道具图标 + /// public void SetActivePropTexture(Texture2D texture) { if (texture != null) { - _activePropBar.L_ActivePropPanel.L_ActivePropSprite.Instance.Texture = texture; + _activePropBar.L_ActivePropSprite.Instance.Texture = texture; _activePropBar.Instance.Visible = true; } else @@ -49,16 +70,46 @@ } } + /// + /// 设置道具数量 + /// public void SetActivePropCount(int count) { if (count > 1) { - _activePropBar.L_ActivePropPanel.L_ActivePropCount.Instance.Visible = true; - _activePropBar.L_ActivePropPanel.L_ActivePropCount.Instance.Text = count.ToString(); + _activePropBar.L_ActivePropCount.Instance.Visible = true; + _activePropBar.L_ActivePropCount.Instance.Text = count.ToString(); } else { - _activePropBar.L_ActivePropPanel.L_ActivePropCount.Instance.Visible = false; + _activePropBar.L_ActivePropCount.Instance.Visible = false; + } + } + + /// + /// 设置道具冷却进度 + /// + /// 进度: 0 - 1 + public void SetActivePropCooldownProgress(float progress) + { + progress = 1 - progress; + var colorRect = _activePropBar.L_ActivePropGrey.Instance; + if (progress <= 0) + { + colorRect.Visible = false; + } + else + { + colorRect.Visible = true; + + var height = _startRect.Size.Y * progress; + var size = colorRect.Size; + size.Y = height; + colorRect.Size = size; + + var position = colorRect.Position; + position.Y = _startRect.Position.Y + (_startRect.Size.Y - height); + colorRect.Position = position; } } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs index 7afeaf4..245431f 100644 --- a/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs +++ b/DungeonShooting_Godot/src/game/ui/roomUI/RoomUI.cs @@ -240,7 +240,16 @@ } /// - /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropPanel.ActivePropSprite + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropBg + /// + public class UiNode_ActivePropBg : IUiNode + { + public UiNode_ActivePropBg(Godot.NinePatchRect node) : base(node) { } + public override UiNode_ActivePropBg Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropSprite /// public class UiNode_ActivePropSprite : IUiNode { @@ -249,7 +258,16 @@ } /// - /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropPanel.ActivePropCount + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropGrey + /// + public class UiNode_ActivePropGrey : IUiNode + { + public UiNode_ActivePropGrey(Godot.ColorRect node) : base(node) { } + public override UiNode_ActivePropGrey Clone() => new ((Godot.ColorRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar.ActivePropCount /// public class UiNode_ActivePropCount : IUiNode { @@ -262,8 +280,30 @@ /// public class UiNode_ActivePropPanel : IUiNode { + public UiNode_ActivePropPanel(Godot.NinePatchRect node) : base(node) { } + public override UiNode_ActivePropPanel Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: RoomUI.Control.ActivePropBar + /// + public class UiNode_ActivePropBar : IUiNode + { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropBar.ActivePropSprite + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropBg + /// + public UiNode_ActivePropBg L_ActivePropBg + { + get + { + if (_L_ActivePropBg == null) _L_ActivePropBg = new UiNode_ActivePropBg(Instance.GetNodeOrNull("ActivePropBg")); + return _L_ActivePropBg; + } + } + private UiNode_ActivePropBg _L_ActivePropBg; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropSprite /// public UiNode_ActivePropSprite L_ActivePropSprite { @@ -276,7 +316,20 @@ private UiNode_ActivePropSprite _L_ActivePropSprite; /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropBar.ActivePropCount + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropGrey + /// + public UiNode_ActivePropGrey L_ActivePropGrey + { + get + { + if (_L_ActivePropGrey == null) _L_ActivePropGrey = new UiNode_ActivePropGrey(Instance.GetNodeOrNull("ActivePropGrey")); + return _L_ActivePropGrey; + } + } + private UiNode_ActivePropGrey _L_ActivePropGrey; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropCount /// public UiNode_ActivePropCount L_ActivePropCount { @@ -288,15 +341,6 @@ } private UiNode_ActivePropCount _L_ActivePropCount; - public UiNode_ActivePropPanel(Godot.NinePatchRect node) : base(node) { } - public override UiNode_ActivePropPanel Clone() => new ((Godot.NinePatchRect)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: RoomUI.Control.ActivePropBar - /// - public class UiNode_ActivePropBar : IUiNode - { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: RoomUI.Control.ActivePropPanel ///