diff --git a/DungeonShooting_Godot/DungeonShooting.csproj b/DungeonShooting_Godot/DungeonShooting.csproj index 36c02a1..97e725f 100644 --- a/DungeonShooting_Godot/DungeonShooting.csproj +++ b/DungeonShooting_Godot/DungeonShooting.csproj @@ -1,4 +1,4 @@ - + net7.0 true diff --git a/DungeonShooting_Godot/DungeonShooting.csproj.old.3 b/DungeonShooting_Godot/DungeonShooting.csproj.old.3 new file mode 100644 index 0000000..36c02a1 --- /dev/null +++ b/DungeonShooting_Godot/DungeonShooting.csproj.old.3 @@ -0,0 +1,11 @@ + + + net7.0 + true + + + + + + + \ No newline at end of file diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx index 54602fd..62bfa42 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx index f4d9774..ec9a07d 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx index d7fe0c7..e0fb367 100644 --- a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx index e8211c7..9ed95ae 100644 --- a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx index 609149c..de134b5 100644 --- a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx index 1f3aced..23a82e3 100644 --- a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn index c798c13..df7551b 100644 --- a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0004.tscn @@ -58,9 +58,10 @@ color = Color(0.619608, 0.619608, 0.619608, 1) anim_offset_max = 1.0 -[node name="Bullet0003" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "ShadowSprite", "AnimatedSprite", "Collision")] +[node name="Bullet0003" type="CharacterBody2D" node_paths=PackedStringArray("Particles", "CollisionArea", "ShadowSprite", "AnimatedSprite", "Collision")] collision_layer = 2 script = ExtResource("1_1jbgr") +Particles = NodePath("AnimatedSprite/GPUParticles2D") CollisionArea = NodePath("AnimatedSprite/CollisionArea") ShadowSprite = NodePath("ShadowSprite") AnimatedSprite = NodePath("AnimatedSprite") diff --git a/DungeonShooting_Godot/prefab/effect/enemy/Effect0001.tscn b/DungeonShooting_Godot/prefab/effect/enemy/Effect0001.tscn index 3f4322b..1dcd443 100644 --- a/DungeonShooting_Godot/prefab/effect/enemy/Effect0001.tscn +++ b/DungeonShooting_Godot/prefab/effect/enemy/Effect0001.tscn @@ -5,7 +5,6 @@ [ext_resource type="Texture2D" uid="uid://cn64eauvwx1uj" path="res://resource/sprite/role/enemy0001/enemy0001_Debris.png" id="3_6ewaj"] [ext_resource type="Texture2D" uid="uid://h7hkgbwj1li" path="res://resource/sprite/effects/common/Smoke.png" id="4_wu0t6"] - [sub_resource type="ShaderMaterial" id="ShaderMaterial_s1mj2"] resource_local_to_scene = true shader = ExtResource("2_h62s7") diff --git a/DungeonShooting_Godot/prefab/effect/enemy/EnemyBloodEffect.tscn b/DungeonShooting_Godot/prefab/effect/enemy/EnemyBloodEffect.tscn index 8b4aa0a..94e488c 100644 --- a/DungeonShooting_Godot/prefab/effect/enemy/EnemyBloodEffect.tscn +++ b/DungeonShooting_Godot/prefab/effect/enemy/EnemyBloodEffect.tscn @@ -10,7 +10,7 @@ particles_anim_v_frames = 1 particles_anim_loop = false -[node name="EnemyBloodEffect" type="GPUParticles2D"] +[node name="EnemyBloodEffect" type="GPUParticles2D" node_paths=PackedStringArray("Particles2D")] modulate = Color(0.811765, 0.0980392, 0.0980392, 0.627451) material = SubResource("CanvasItemMaterial_emuda") emitting = false @@ -22,4 +22,5 @@ explosiveness = 1.0 fixed_fps = 20 script = ExtResource("3_5cpi6") -DelayTime = 1.5 +DelayTime = 2.0 +Particles2D = [] diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn index ebbb22c..831a585 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0001.tscn @@ -1,9 +1,10 @@ [gd_scene load_steps=7 format=3 uid="uid://tdc6flkvlfbd"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0001.cs" id="1_exxhd"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0001.cs" id="1_exxhd"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_x6ey2"] [ext_resource type="SpriteFrames" uid="uid://wtvfyprel72y" path="res://resource/spriteFrames/prop/buff/BuffProp0001.tres" id="3_hfyao"] + [sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] resource_local_to_scene = true shader = ExtResource("2_x6ey2") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn index 7ef2c07..72073ce 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0002.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=7 format=3 uid="uid://da131v16ct8c4"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_2qy1s"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0002.cs" id="1_5ouvd"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0002.cs" id="1_5ouvd"] [ext_resource type="SpriteFrames" uid="uid://7t57gsyff470" path="res://resource/spriteFrames/prop/buff/BuffProp0002.tres" id="3_v4alm"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] @@ -9,20 +9,22 @@ shader = ExtResource("1_2qy1s") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_2qy1s") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn index 46f564b..d7b5f4a 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0003.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://ds21gbw4wyvn6"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0003.cs" id="1_h8d6p"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0003.cs" id="1_h8d6p"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_udh4b"] [ext_resource type="SpriteFrames" uid="uid://nqoieett75t3" path="res://resource/spriteFrames/prop/buff/BuffProp0003.tres" id="3_h72sh"] @@ -9,20 +9,22 @@ shader = ExtResource("1_udh4b") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_udh4b") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn index 58d9d29..d4a225f 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0004.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://cq8edil51uccc"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0004.cs" id="1_7bt71"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0004.cs" id="1_7bt71"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_j7hva"] [ext_resource type="SpriteFrames" uid="uid://bj0k3pipwp46x" path="res://resource/spriteFrames/prop/buff/BuffProp0004.tres" id="3_pdaqp"] @@ -9,20 +9,22 @@ shader = ExtResource("1_j7hva") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_j7hva") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn index 741717b..8996076 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0005.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://3xtqrx17y14p"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0005.cs" id="1_6dlc2"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0005.cs" id="1_6dlc2"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_qa4yg"] [ext_resource type="SpriteFrames" uid="uid://bvqp46degt1rg" path="res://resource/spriteFrames/prop/buff/BuffProp0005.tres" id="3_1mcnn"] @@ -9,20 +9,22 @@ shader = ExtResource("1_qa4yg") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_qa4yg") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn index 41ecf02..bfd6bbc 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0006.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://bfc03e4aftg21"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0006.cs" id="1_2cooj"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0006.cs" id="1_2cooj"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_c1mo1"] [ext_resource type="SpriteFrames" uid="uid://bxn65oovekw6k" path="res://resource/spriteFrames/prop/buff/BuffProp0006.tres" id="3_nd6lq"] @@ -9,20 +9,22 @@ shader = ExtResource("1_c1mo1") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_c1mo1") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn index 6598520..480eb36 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0007.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://cwfuv68ijkmfg"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0007.cs" id="1_71c3m"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0007.cs" id="1_71c3m"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_ofs5v"] [ext_resource type="SpriteFrames" uid="uid://et840sb4d1g3" path="res://resource/spriteFrames/prop/buff/BuffProp0007.tres" id="3_xxla0"] @@ -9,20 +9,22 @@ shader = ExtResource("1_ofs5v") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_ofs5v") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn index a29d7cd..9bf79ea 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0008.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://cn1tmegrfgr8h"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0008.cs" id="1_b5ys1"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0008.cs" id="1_b5ys1"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_tdrqb"] [ext_resource type="SpriteFrames" uid="uid://bs41p1hpkpucb" path="res://resource/spriteFrames/prop/buff/BuffProp0008.tres" id="3_5noil"] @@ -9,20 +9,22 @@ shader = ExtResource("1_tdrqb") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_tdrqb") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn index 7955262..d9d0e97 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0009.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://gh0dxgvshwpm"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0009.cs" id="1_e1yrg"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0009.cs" id="1_e1yrg"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_eq0bc"] [ext_resource type="SpriteFrames" uid="uid://sqcibio78nwc" path="res://resource/spriteFrames/prop/buff/BuffProp0009.tres" id="3_qrjbu"] @@ -9,20 +9,22 @@ shader = ExtResource("1_eq0bc") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_eq0bc") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn index 49eb575..cc67fe2 100644 --- a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0010.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=7 format=3 uid="uid://do5mmmapnyxg4"] [ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="1_5yy3i"] -[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffPropProp0010.cs" id="1_q6g7l"] +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0010.cs" id="1_q6g7l"] [ext_resource type="SpriteFrames" uid="uid://dxqtm7xgn2wms" path="res://resource/spriteFrames/prop/buff/BuffProp0010.tres" id="3_i5q7j"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] @@ -9,20 +9,22 @@ shader = ExtResource("1_5yy3i") shader_parameter/blend = Color(0, 0, 0, 0.470588) shader_parameter/schedule = 1.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = false shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] resource_local_to_scene = true shader = ExtResource("1_5yy3i") shader_parameter/blend = Color(1, 1, 1, 1) shader_parameter/schedule = 0.0 -shader_parameter/alpha = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) shader_parameter/show_outline = true shader_parameter/outline_color = Color(0, 0, 0, 1) shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true [sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] size = Vector2(12, 10) diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0012.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0012.tscn new file mode 100644 index 0000000..66f64ca --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0012.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=7 format=3 uid="uid://ph6x3vmkp11j"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0012.cs" id="1_w2r3p"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_kwnd5"] +[ext_resource type="SpriteFrames" uid="uid://rksmm8jwex7l" path="res://resource/spriteFrames/prop/buff/BuffProp0012.tres" id="3_fijh4"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("2_kwnd5") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("2_kwnd5") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0012" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_w2r3p") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_fijh4") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0013.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0013.tscn new file mode 100644 index 0000000..8adb67b --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0013.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=7 format=3 uid="uid://di6874mbwbpkd"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0013.cs" id="1_iy1yu"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_n5bm6"] +[ext_resource type="SpriteFrames" uid="uid://cdnrqfy0vfyu5" path="res://resource/spriteFrames/prop/buff/BuffProp0013.tres" id="3_4qjjr"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("2_n5bm6") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("2_n5bm6") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0013" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_iy1yu") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_4qjjr") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/prop/buff/BuffProp0014.tscn b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0014.tscn new file mode 100644 index 0000000..757b675 --- /dev/null +++ b/DungeonShooting_Godot/prefab/prop/buff/BuffProp0014.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=7 format=3 uid="uid://dw2tt5urcxtxe"] + +[ext_resource type="Script" path="res://src/game/activity/prop/buff/BuffProp0014.cs" id="1_3n5b4"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_ts4j6"] +[ext_resource type="SpriteFrames" uid="uid://ux70kddi6wwy" path="res://resource/spriteFrames/prop/buff/BuffProp0014.tres" id="3_byb1t"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkt4"] +resource_local_to_scene = true +shader = ExtResource("2_ts4j6") +shader_parameter/blend = Color(0, 0, 0, 0.470588) +shader_parameter/schedule = 1.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_b6ii6"] +resource_local_to_scene = true +shader = ExtResource("2_ts4j6") +shader_parameter/blend = Color(1, 1, 1, 1) +shader_parameter/schedule = 0.0 +shader_parameter/modulate = Color(1, 1, 1, 1) +shader_parameter/show_outline = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cpqup"] +size = Vector2(12, 10) + +[node name="BuffProp0014" type="CharacterBody2D" node_paths=PackedStringArray("ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 4 +script = ExtResource("1_3n5b4") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_mrkt4") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_b6ii6") +sprite_frames = ExtResource("3_byb1t") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_cpqup") diff --git a/DungeonShooting_Godot/prefab/ui/EditorTools.tscn b/DungeonShooting_Godot/prefab/ui/EditorTools.tscn index 1089ea7..cea4982 100644 --- a/DungeonShooting_Godot/prefab/ui/EditorTools.tscn +++ b/DungeonShooting_Godot/prefab/ui/EditorTools.tscn @@ -88,70 +88,6 @@ layout_mode = 2 text = "运行" -[node name="HBoxContainer6" type="HBoxContainer" parent="ScrollContainer/MarginContainer/VBoxContainer"] -layout_mode = 2 -theme_override_constants/separation = 5 - -[node name="Label" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -layout_mode = 2 -text = "创建地牢房间" - -[node name="RoomNameInput" type="LineEdit" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -custom_minimum_size = Vector2(250, 0) -layout_mode = 2 -placeholder_text = "请输入房间名称" - -[node name="Label2" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -layout_mode = 2 -text = "房间所属分组" - -[node name="RoomGroupSelect" type="OptionButton" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -layout_mode = 2 -item_count = 1 -selected = 0 -popup/item_0/text = "testGroup" -popup/item_0/id = 0 - -[node name="Label3" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -layout_mode = 2 -text = "房间类型" - -[node name="RoomTypeSelect" type="OptionButton" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -layout_mode = 2 -item_count = 7 -selected = 0 -popup/item_0/text = "battle (战斗房间)" -popup/item_0/id = 0 -popup/item_1/text = "inlet (起始房间)" -popup/item_1/id = 1 -popup/item_2/text = "outlet (结束房间)" -popup/item_2/id = 2 -popup/item_3/text = "boss (boss战房间)" -popup/item_3/id = 3 -popup/item_4/text = "reward (奖励房间)" -popup/item_4/id = 4 -popup/item_5/text = "shop (商店房间)" -popup/item_5/id = 5 -popup/item_6/text = "event (事件房间)" -popup/item_6/id = 6 - -[node name="Button" type="Button" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6"] -layout_mode = 2 -text = "创建 -" - -[node name="HBoxContainer2" type="HBoxContainer" parent="ScrollContainer/MarginContainer/VBoxContainer"] -layout_mode = 2 -theme_override_constants/separation = 5 - -[node name="Label" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer2"] -layout_mode = 2 -text = "重新打包地牢房间配置" - -[node name="Button" type="Button" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer2"] -layout_mode = 2 -text = "运行" - [node name="HBoxContainer7" type="HBoxContainer" parent="ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 theme_override_constants/separation = 5 diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json index 520add8..0f6f6c7 100644 --- a/DungeonShooting_Godot/resource/config/ActivityBase.json +++ b/DungeonShooting_Godot/resource/config/ActivityBase.json @@ -363,7 +363,7 @@ "Id": "prop0011", "Type": 9, "Name": "\u5F39\u5C04\u5B50\u5F39", - "Intro": "\u5B50\u5F39\u53CD\u5F39\u6B21\u6570 \u002B2", + "Intro": "\u5B50\u5F39\u53CD\u5F39\u6B21\u6570\u002B2", "Details": "", "IsStatic": false, "__Material": "", @@ -372,6 +372,42 @@ "ShowInMapEditor": true }, { + "Id": "prop0012", + "Type": 9, + "Name": "\u7A7F\u900F\u5B50\u5F39", + "Intro": "\u5B50\u5F39\u7A7F\u900F\u002B1", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/prop/buff/BuffProp0012.tscn", + "Icon": "res://resource/sprite/prop/buff/BuffProp0012.png", + "ShowInMapEditor": true + }, + { + "Id": "prop0013", + "Type": 9, + "Name": "\u6B66\u5668\u80CC\u5305", + "Intro": "\u6B66\u5668\u5BB9\u91CF\u002B1", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/prop/buff/BuffProp0013.tscn", + "Icon": "res://resource/sprite/prop/buff/BuffProp0013.png", + "ShowInMapEditor": true + }, + { + "Id": "prop0014", + "Type": 9, + "Name": "\u9053\u5177\u80CC\u5305", + "Intro": "\u9053\u5177\u5BB9\u91CF\u002B1", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/prop/buff/BuffProp0014.tscn", + "Icon": "res://resource/sprite/prop/buff/BuffProp0014.png", + "ShowInMapEditor": true + }, + { "Id": "prop5000", "Type": 9, "Name": "\u533B\u836F\u7BB1", diff --git a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json index 6da7e6d..c401b01 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/TestGroup1/inlet/Start1/Preinstall.json @@ -1 +1 @@ -[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":19,"Y":2},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":24,"Y":-14},"Size":{"X":0,"Y":0},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":6,"Y":34},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-42,"Y":9},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-63,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0005","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"40"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-31,"Y":-16},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-47,"Y":32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-25},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-80,"Y":14},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-75,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":38,"Y":1},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0011","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":57,"Y":56},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":67,"Y":28},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0.5,"MarkList":[{"Id":"prop5000","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":60,"Y":-19},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"prop5001","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":34,"Y":23},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1.5,"MarkList":[{"Id":"prop0002","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-11,"Y":8},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-20,"Y":33},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}]]}] \ No newline at end of file +[{"Name":"test1","Weight":100,"Remark":"","WaveList":[[{"Position":{"X":19,"Y":2},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":24,"Y":-14},"Size":{"X":0,"Y":0},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":6,"Y":34},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0002","Weight":100,"Attr":{"CurrAmmon":"7","ResidueAmmo":"70"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-42,"Y":9},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-63,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0005","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"40"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-31,"Y":-16},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0003","Weight":100,"Attr":{"CurrAmmon":"12","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-47,"Y":32},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0006","Weight":100,"Attr":{"CurrAmmon":"20","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":-25},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0007","Weight":100,"Attr":{"CurrAmmon":"60","ResidueAmmo":"300"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-80,"Y":14},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0008","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-75,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0009","Weight":100,"Attr":{"CurrAmmon":"1","ResidueAmmo":"25"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":46,"Y":1},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0011","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":36,"Y":49},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0012","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-90,"Y":-23},"Size":{"X":3,"Y":6},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0013","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-91,"Y":-6},"Size":{"X":0,"Y":0},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0014","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}],[{"Position":{"X":57,"Y":56},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":67,"Y":28},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0.5,"MarkList":[{"Id":"prop5000","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":60,"Y":-19},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1,"MarkList":[{"Id":"prop5001","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":34,"Y":23},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":1.5,"MarkList":[{"Id":"prop0002","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-11,"Y":8},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-20,"Y":33},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0012.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0012.png new file mode 100644 index 0000000..5660753 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0012.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0012.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0012.png.import new file mode 100644 index 0000000..b37352d --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0012.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djhhig4ct8fgo" +path="res://.godot/imported/BuffProp0012.png-767200b9890d9fc7fd455c0aa41ecaad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0012.png" +dest_files=["res://.godot/imported/BuffProp0012.png-767200b9890d9fc7fd455c0aa41ecaad.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/sprite/prop/buff/BuffProp0013.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0013.png new file mode 100644 index 0000000..b70b0b2 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0013.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0013.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0013.png.import new file mode 100644 index 0000000..4a815d4 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0013.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8ykm3jbhjpxh" +path="res://.godot/imported/BuffProp0013.png-bdbfb79e3feb60c437df3d4205954e6c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0013.png" +dest_files=["res://.godot/imported/BuffProp0013.png-bdbfb79e3feb60c437df3d4205954e6c.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/sprite/prop/buff/BuffProp0014.png b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0014.png new file mode 100644 index 0000000..049c1a0 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0014.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0014.png.import b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0014.png.import new file mode 100644 index 0000000..fe9a2a1 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/prop/buff/BuffProp0014.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddkno2rlclys0" +path="res://.godot/imported/BuffProp0014.png-3f30439d1b22d8ddbf02fe34bf967a18.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/prop/buff/BuffProp0014.png" +dest_files=["res://.godot/imported/BuffProp0014.png-3f30439d1b22d8ddbf02fe34bf967a18.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/spriteFrames/prop/buff/BuffProp0012.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0012.tres new file mode 100644 index 0000000..8416d7a --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0012.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://rksmm8jwex7l"] + +[ext_resource type="Texture2D" uid="uid://djhhig4ct8fgo" path="res://resource/sprite/prop/buff/BuffProp0012.png" id="1_kl6x5"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_kl6x5") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0013.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0013.tres new file mode 100644 index 0000000..ae3883a --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0013.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://cdnrqfy0vfyu5"] + +[ext_resource type="Texture2D" uid="uid://8ykm3jbhjpxh" path="res://resource/sprite/prop/buff/BuffProp0013.png" id="1_sshn3"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_sshn3") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0014.tres b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0014.tres new file mode 100644 index 0000000..141074b --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/prop/buff/BuffProp0014.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://ux70kddi6wwy"] + +[ext_resource type="Texture2D" uid="uid://ddkno2rlclys0" path="res://resource/sprite/prop/buff/BuffProp0014.png" id="1_0n30r"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_0n30r") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs index 2486e6a..4ba3050 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs @@ -160,10 +160,25 @@ public const string Id_prop0010 = "prop0010"; /// /// 名称: 弹射子弹
- /// 简介: 子弹反弹次数 +2 + /// 简介: 子弹反弹次数+2 ///
public const string Id_prop0011 = "prop0011"; /// + /// 名称: 穿透子弹
+ /// 简介: 子弹穿透+1 + ///
+ public const string Id_prop0012 = "prop0012"; + /// + /// 名称: 武器背包
+ /// 简介: 武器容量+1 + ///
+ public const string Id_prop0013 = "prop0013"; + /// + /// 名称: 道具背包
+ /// 简介: 道具容量+1 + ///
+ public const string Id_prop0014 = "prop0014"; + /// /// 名称: 医药箱
/// 简介: 使用后回复一颗红心 ///
diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs index 8cf2687..fa1826f 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs @@ -7,6 +7,21 @@ [Tool] public partial class BoomBullet : Bullet { + /// + /// 轨迹粒子 + /// + [Export] + public GpuParticles2D Particles; + + public override void InitData(BulletData data, uint attackLayer) + { + base.InitData(data, attackLayer); + if (Particles != null) + { + Particles.Restart(); + } + } + public override void OnLimeOver() { PlayBoom(); diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs index 72864cb..7745881 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/Bullet.cs @@ -225,7 +225,7 @@ OnCollisionTarget(activityObject); } - public void DoReclaim() + public virtual void DoReclaim() { ObjectPool.Reclaim(this); } diff --git a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs index ea3f772..7a4b86b 100644 --- a/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs +++ b/DungeonShooting_Godot/src/game/activity/prop/active/ActiveProp.cs @@ -312,5 +312,6 @@ public virtual void OnOverflowItem() { + Master.ThrowActiveProp(PackageIndex); } } \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0001.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0001.cs new file mode 100644 index 0000000..50c3417 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0001.cs @@ -0,0 +1,23 @@ + +using Godot; + +/// +/// 移速 buff, 移速 + 3 +/// +[Tool] +public partial class BuffProp0001 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.MoveSpeed += 30; + Master.RoleState.Acceleration += 400; + Master.RoleState.Friction += 300; + } + + public override void OnRemoveItem() + { + Master.RoleState.MoveSpeed -= 30; + Master.RoleState.Acceleration -= 400; + Master.RoleState.Friction -= 300; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0002.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0002.cs new file mode 100644 index 0000000..ec3b255 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0002.cs @@ -0,0 +1,20 @@ + +using Godot; + +/// +/// 血量上限buff, 心之容器 + 1 +/// +[Tool] +public partial class BuffProp0002 : BuffProp +{ + public override void OnPickUpItem() + { + Master.MaxHp += 2; + Master.Hp += 2; + } + + public override void OnRemoveItem() + { + Master.MaxHp -= 2; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0003.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0003.cs new file mode 100644 index 0000000..7ecf063 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0003.cs @@ -0,0 +1,20 @@ + +using Godot; + +/// +/// 护盾上限buff, 护盾 + 1 +/// +[Tool] +public partial class BuffProp0003 : BuffProp +{ + public override void OnPickUpItem() + { + Master.MaxShield += 1; + Master.Shield += 1; + } + + public override void OnRemoveItem() + { + Master.MaxShield -= 1; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0004.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0004.cs new file mode 100644 index 0000000..f66ab3b --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0004.cs @@ -0,0 +1,19 @@ + +using Godot; + +/// +/// 护盾恢复时间buff, 恢复时间 - 2.5s +/// +[Tool] +public partial class BuffProp0004 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.ShieldRecoveryTime -= 2.5f; + } + + public override void OnRemoveItem() + { + Master.RoleState.ShieldRecoveryTime += 2.5f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0005.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0005.cs new file mode 100644 index 0000000..37783e6 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0005.cs @@ -0,0 +1,24 @@ + +using Godot; + +/// +/// 提升伤害buff, 子弹伤害提升20% +/// +[Tool] +public partial class BuffProp0005 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcDamageEvent += CalcDamage; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcDamageEvent -= CalcDamage; + } + + private void CalcDamage(int originDamage, RefValue refValue) + { + refValue.Value += Mathf.CeilToInt(originDamage * 0.2f); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0006.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0006.cs new file mode 100644 index 0000000..8076c29 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0006.cs @@ -0,0 +1,19 @@ + +using Godot; + +/// +/// 延长无敌时间buff, 受伤后无敌时间 + 2s +/// +[Tool] +public partial class BuffProp0006 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.WoundedInvincibleTime += 2f; + } + + public override void OnRemoveItem() + { + Master.RoleState.WoundedInvincibleTime -= 2f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0007.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0007.cs new file mode 100644 index 0000000..e83b525 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0007.cs @@ -0,0 +1,27 @@ + +using Godot; + +/// +/// 受伤时有15%概率抵消伤害 +/// +[Tool] +public partial class BuffProp0007 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcHurtDamageEvent += CalcHurtDamageEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcHurtDamageEvent -= CalcHurtDamageEvent; + } + + private void CalcHurtDamageEvent(int originDamage, RefValue refValue) + { + if (refValue.Value > 0 && Utils.Random.RandomBoolean(0.15f)) + { + refValue.Value = 0; + } + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0008.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0008.cs new file mode 100644 index 0000000..e72de6d --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0008.cs @@ -0,0 +1,31 @@ + +using Godot; + +/// +/// 眼镜, 提高武器50%精准度 +/// +[Tool] +public partial class BuffProp0008 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcStartScatteringEvent += CalcStartScatteringEvent; + Master.RoleState.CalcFinalScatteringEvent += CalcFinalScatteringEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcStartScatteringEvent -= CalcStartScatteringEvent; + Master.RoleState.CalcFinalScatteringEvent -= CalcFinalScatteringEvent; + } + + private void CalcStartScatteringEvent(Weapon weapon, float originValue, RefValue refValue) + { + refValue.Value *= 0.5f; + } + + private void CalcFinalScatteringEvent(Weapon weapon, float originValue, RefValue refValue) + { + refValue.Value *= 0.5f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0009.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0009.cs new file mode 100644 index 0000000..ff94d5f --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0009.cs @@ -0,0 +1,31 @@ + +using Godot; + +/// +/// 高速子弹 子弹速度和射程提升25% +/// +[Tool] +public partial class BuffProp0009 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; + Master.RoleState.CalcBulletDistanceEvent += CalcBulletDistanceEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; + Master.RoleState.CalcBulletDistanceEvent -= CalcBulletDistanceEvent; + } + + private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) + { + speed.Value += originSpeed * 0.25f; + } + + private void CalcBulletDistanceEvent(Weapon weapon, float originDistance, RefValue distance) + { + distance.Value += originDistance * 0.25f; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0010.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0010.cs new file mode 100644 index 0000000..3e323e9 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0010.cs @@ -0,0 +1,62 @@ + +using Godot; + +/// +/// 分裂子弹 子弹数量翻倍, 但是精准度, 击退和伤害降低 +/// +[Tool] +public partial class BuffProp0010 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcBulletCountEvent += CalcBulletCountEvent; + Master.RoleState.CalcBulletDeviationAngleEvent += CalcBulletDeviationAngleEvent; + Master.RoleState.CalcDamageEvent += CalcDamageEvent; + Master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; + Master.RoleState.CalcBulletRepelEvent += CalcBulletRepelEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcBulletCountEvent -= CalcBulletCountEvent; + Master.RoleState.CalcBulletDeviationAngleEvent -= CalcBulletDeviationAngleEvent; + Master.RoleState.CalcDamageEvent -= CalcDamageEvent; + Master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; + Master.RoleState.CalcBulletRepelEvent -= CalcBulletRepelEvent; + } + + private void CalcBulletCountEvent(Weapon weapon, int originCount, RefValue refValue) + { + refValue.Value += originCount; + } + + private void CalcBulletDeviationAngleEvent(Weapon weapon, float originAngle, RefValue refValue) + { + refValue.Value += Utils.Random.RandomRangeFloat(-8, 8); + } + + private void CalcDamageEvent(int originDamage, RefValue refValue) + { + if (refValue.Value <= 0) + { + return; + } + + refValue.Value = Mathf.Max(1, refValue.Value - Mathf.FloorToInt(refValue.Value * 0.35f)); + } + + private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) + { + speed.Value += originSpeed * Utils.Random.RandomRangeFloat(-0.05f, 0.05f); + } + + private void CalcBulletRepelEvent(Weapon weapon, float originRepel, RefValue repel) + { + if (weapon.Attribute.IsMelee || repel.Value < 0) + { + return; + } + + repel.Value = Mathf.Max(1, repel.Value - Mathf.FloorToInt(repel.Value * 0.35f)); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0012.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0012.cs new file mode 100644 index 0000000..bc65ac3 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0012.cs @@ -0,0 +1,24 @@ + +using Godot; + +/// +/// 穿透子弹 子弹穿透+1 +/// +[Tool] +public partial class BuffProp0012 : BuffProp +{ + public override void OnPickUpItem() + { + Master.RoleState.CalcBulletPenetrationEvent += CalcBulletPenetrationEvent; + } + + public override void OnRemoveItem() + { + Master.RoleState.CalcBulletPenetrationEvent -= CalcBulletPenetrationEvent; + } + + private void CalcBulletPenetrationEvent(Weapon weapon, int origin, RefValue penetration) + { + penetration.Value += 1; + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0013.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0013.cs new file mode 100644 index 0000000..e43270a --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0013.cs @@ -0,0 +1,18 @@ +using Godot; + +/// +/// 武器背包 武器容量+1 +/// +[Tool] +public partial class BuffProp0013 : BuffProp +{ + public override void OnPickUpItem() + { + Master.WeaponPack.SetCapacity(Master.WeaponPack.Capacity + 1); + } + + public override void OnRemoveItem() + { + Master.WeaponPack.SetCapacity(Master.WeaponPack.Capacity - 1); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0014.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0014.cs new file mode 100644 index 0000000..b09db41 --- /dev/null +++ b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffProp0014.cs @@ -0,0 +1,18 @@ +using Godot; + +/// +/// 道具背包 道具容量+1 +/// +[Tool] +public partial class BuffProp0014 : BuffProp +{ + public override void OnPickUpItem() + { + Master.ActivePropsPack.SetCapacity(Master.ActivePropsPack.Capacity + 1); + } + + public override void OnRemoveItem() + { + Master.ActivePropsPack.SetCapacity(Master.ActivePropsPack.Capacity - 1); + } +} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0001.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0001.cs deleted file mode 100644 index 5ee7937..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0001.cs +++ /dev/null @@ -1,23 +0,0 @@ - -using Godot; - -/// -/// 移速 buff, 移速 + 3 -/// -[Tool] -public partial class BuffPropProp0001 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.MoveSpeed += 30; - Master.RoleState.Acceleration += 400; - Master.RoleState.Friction += 300; - } - - public override void OnRemoveItem() - { - Master.RoleState.MoveSpeed -= 30; - Master.RoleState.Acceleration -= 400; - Master.RoleState.Friction -= 300; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0002.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0002.cs deleted file mode 100644 index 198ad79..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0002.cs +++ /dev/null @@ -1,20 +0,0 @@ - -using Godot; - -/// -/// 血量上限buff, 心之容器 + 1 -/// -[Tool] -public partial class BuffPropProp0002 : BuffProp -{ - public override void OnPickUpItem() - { - Master.MaxHp += 2; - Master.Hp += 2; - } - - public override void OnRemoveItem() - { - Master.MaxHp -= 2; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0003.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0003.cs deleted file mode 100644 index 64f9fde..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0003.cs +++ /dev/null @@ -1,20 +0,0 @@ - -using Godot; - -/// -/// 护盾上限buff, 护盾 + 1 -/// -[Tool] -public partial class BuffPropProp0003 : BuffProp -{ - public override void OnPickUpItem() - { - Master.MaxShield += 1; - Master.Shield += 1; - } - - public override void OnRemoveItem() - { - Master.MaxShield -= 1; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0004.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0004.cs deleted file mode 100644 index e10d418..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0004.cs +++ /dev/null @@ -1,19 +0,0 @@ - -using Godot; - -/// -/// 护盾恢复时间buff, 恢复时间 - 2.5s -/// -[Tool] -public partial class BuffPropProp0004 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.ShieldRecoveryTime -= 2.5f; - } - - public override void OnRemoveItem() - { - Master.RoleState.ShieldRecoveryTime += 2.5f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0005.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0005.cs deleted file mode 100644 index 8beac22..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0005.cs +++ /dev/null @@ -1,24 +0,0 @@ - -using Godot; - -/// -/// 提升伤害buff, 子弹伤害提升20% -/// -[Tool] -public partial class BuffPropProp0005 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.CalcDamageEvent += CalcDamage; - } - - public override void OnRemoveItem() - { - Master.RoleState.CalcDamageEvent -= CalcDamage; - } - - private void CalcDamage(int originDamage, RefValue refValue) - { - refValue.Value += Mathf.CeilToInt(originDamage * 0.2f); - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0006.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0006.cs deleted file mode 100644 index 4c91d6d..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0006.cs +++ /dev/null @@ -1,19 +0,0 @@ - -using Godot; - -/// -/// 延长无敌时间buff, 受伤后无敌时间 + 2s -/// -[Tool] -public partial class BuffPropProp0006 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.WoundedInvincibleTime += 2f; - } - - public override void OnRemoveItem() - { - Master.RoleState.WoundedInvincibleTime -= 2f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0007.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0007.cs deleted file mode 100644 index 7c39b5c..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0007.cs +++ /dev/null @@ -1,27 +0,0 @@ - -using Godot; - -/// -/// 受伤时有15%概率抵消伤害 -/// -[Tool] -public partial class BuffPropProp0007 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.CalcHurtDamageEvent += CalcHurtDamageEvent; - } - - public override void OnRemoveItem() - { - Master.RoleState.CalcHurtDamageEvent -= CalcHurtDamageEvent; - } - - private void CalcHurtDamageEvent(int originDamage, RefValue refValue) - { - if (refValue.Value > 0 && Utils.Random.RandomBoolean(0.15f)) - { - refValue.Value = 0; - } - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0008.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0008.cs deleted file mode 100644 index 7946f62..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0008.cs +++ /dev/null @@ -1,31 +0,0 @@ - -using Godot; - -/// -/// 眼镜, 提高武器50%精准度 -/// -[Tool] -public partial class BuffPropProp0008 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.CalcStartScatteringEvent += CalcStartScatteringEvent; - Master.RoleState.CalcFinalScatteringEvent += CalcFinalScatteringEvent; - } - - public override void OnRemoveItem() - { - Master.RoleState.CalcStartScatteringEvent -= CalcStartScatteringEvent; - Master.RoleState.CalcFinalScatteringEvent -= CalcFinalScatteringEvent; - } - - private void CalcStartScatteringEvent(Weapon weapon, float originValue, RefValue refValue) - { - refValue.Value *= 0.5f; - } - - private void CalcFinalScatteringEvent(Weapon weapon, float originValue, RefValue refValue) - { - refValue.Value *= 0.5f; - } -} \ No newline at end of file diff --git a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0009.cs b/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0009.cs deleted file mode 100644 index 38b9e45..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0009.cs +++ /dev/null @@ -1,31 +0,0 @@ - -using Godot; - -/// -/// 高速子弹 子弹速度和射程提升25% -/// -[Tool] -public partial class BuffPropProp0009 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; - Master.RoleState.CalcBulletDistanceEvent += CalcBulletDistanceEvent; - } - - public override void OnRemoveItem() - { - Master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; - Master.RoleState.CalcBulletDistanceEvent -= CalcBulletDistanceEvent; - } - - private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) - { - speed.Value += originSpeed * 0.25f; - } - - private void CalcBulletDistanceEvent(Weapon weapon, float originDistance, RefValue distance) - { - distance.Value += originDistance * 0.25f; - } -} \ 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 deleted file mode 100644 index 9ec8e03..0000000 --- a/DungeonShooting_Godot/src/game/activity/prop/buff/BuffPropProp0010.cs +++ /dev/null @@ -1,62 +0,0 @@ - -using Godot; - -/// -/// 分裂子弹 子弹数量翻倍, 但是精准度, 击退和伤害降低 -/// -[Tool] -public partial class BuffPropProp0010 : BuffProp -{ - public override void OnPickUpItem() - { - Master.RoleState.CalcBulletCountEvent += CalcBulletCountEvent; - Master.RoleState.CalcBulletDeviationAngleEvent += CalcBulletDeviationAngleEvent; - Master.RoleState.CalcDamageEvent += CalcDamageEvent; - Master.RoleState.CalcBulletSpeedEvent += CalcBulletSpeedEvent; - Master.RoleState.CalcBulletRepelEvent += CalcBulletRepelEvent; - } - - public override void OnRemoveItem() - { - Master.RoleState.CalcBulletCountEvent -= CalcBulletCountEvent; - Master.RoleState.CalcBulletDeviationAngleEvent -= CalcBulletDeviationAngleEvent; - Master.RoleState.CalcDamageEvent -= CalcDamageEvent; - Master.RoleState.CalcBulletSpeedEvent -= CalcBulletSpeedEvent; - Master.RoleState.CalcBulletRepelEvent -= CalcBulletRepelEvent; - } - - private void CalcBulletCountEvent(Weapon weapon, int originCount, RefValue refValue) - { - refValue.Value += originCount; - } - - private void CalcBulletDeviationAngleEvent(Weapon weapon, float originAngle, RefValue refValue) - { - refValue.Value += Utils.Random.RandomRangeFloat(-8, 8); - } - - private void CalcDamageEvent(int originDamage, RefValue refValue) - { - if (refValue.Value <= 0) - { - return; - } - - refValue.Value = Mathf.Max(1, refValue.Value - Mathf.FloorToInt(refValue.Value * 0.35f)); - } - - private void CalcBulletSpeedEvent(Weapon weapon, float originSpeed, RefValue speed) - { - speed.Value += originSpeed * Utils.Random.RandomRangeFloat(-0.05f, 0.05f); - } - - private void CalcBulletRepelEvent(Weapon weapon, float originRepel, RefValue repel) - { - if (weapon.Attribute.IsMelee || repel.Value < 0) - { - return; - } - - repel.Value = Mathf.Max(1, repel.Value - Mathf.FloorToInt(repel.Value * 0.35f)); - } -} \ 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 737e95e..344294d 100644 --- a/DungeonShooting_Godot/src/game/activity/role/Role.cs +++ b/DungeonShooting_Godot/src/game/activity/role/Role.cs @@ -480,7 +480,7 @@ { _interactiveItemList.RemoveAt(i--); } - else + else if (!item.IsThrowing) { //找到可互动的物体了 if (!findFlag) diff --git a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs index f543bf1..47146fd 100644 --- a/DungeonShooting_Godot/src/game/activity/role/player/Player.cs +++ b/DungeonShooting_Godot/src/game/activity/role/player/Player.cs @@ -159,6 +159,10 @@ { UseActiveProp(); } + else if (InputManager.ExchangeProp) //切换道具 + { + ExchangeNextActiveProp(); + } else if (InputManager.RemoveProp) //扔掉道具 { ThrowActiveProp(); diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs index bf3436d..28c78f3 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs @@ -8,801 +8,529 @@ /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer /// - public EditorTools_ScrollContainer L_ScrollContainer + public ScrollContainer L_ScrollContainer { get { - if (_L_ScrollContainer == null) _L_ScrollContainer = new EditorTools_ScrollContainer(this, GetNodeOrNull("ScrollContainer")); + if (_L_ScrollContainer == null) _L_ScrollContainer = new ScrollContainer((EditorToolsPanel)this, GetNode("ScrollContainer")); return _L_ScrollContainer; } } - private EditorTools_ScrollContainer _L_ScrollContainer; + private ScrollContainer _L_ScrollContainer; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.Confirm /// - public EditorTools_Confirm L_Confirm + public Confirm L_Confirm { get { - if (_L_Confirm == null) _L_Confirm = new EditorTools_Confirm(this, GetNodeOrNull("Confirm")); + if (_L_Confirm == null) _L_Confirm = new Confirm((EditorToolsPanel)this, GetNode("Confirm")); return _L_Confirm; } } - private EditorTools_Confirm _L_Confirm; + private Confirm _L_Confirm; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.Tips /// - public EditorTools_Tips L_Tips + public Tips L_Tips { get { - if (_L_Tips == null) _L_Tips = new EditorTools_Tips(this, GetNodeOrNull("Tips")); + if (_L_Tips == null) _L_Tips = new Tips((EditorToolsPanel)this, GetNode("Tips")); return _L_Tips; } } - private EditorTools_Tips _L_Tips; + private Tips _L_Tips; public EditorTools() : base(nameof(EditorTools)) { } + public sealed override void OnInitNestedUi() + { + + } + /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer.Label /// - public class EditorTools_Label : UiNode + public class Label : UiNode { - public EditorTools_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + public Label(EditorToolsPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer.Button /// - public class EditorTools_Button : UiNode + public class Button : UiNode { - public EditorTools_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public Button(EditorToolsPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } + public override Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer /// - public class EditorTools_HBoxContainer : UiNode + public class HBoxContainer : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label /// - public EditorTools_Label L_Label + public Label L_Label { get { - if (_L_Label == null) _L_Label = new EditorTools_Label(UiPanel, Instance.GetNodeOrNull("Label")); + if (_L_Label == null) _L_Label = new Label(UiPanel, Instance.GetNode("Label")); return _L_Label; } } - private EditorTools_Label _L_Label; + private Label _L_Label; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button /// - public EditorTools_Button L_Button + public Button L_Button { get { - if (_L_Button == null) _L_Button = new EditorTools_Button(UiPanel, Instance.GetNodeOrNull("Button")); + if (_L_Button == null) _L_Button = new Button(UiPanel, Instance.GetNode("Button")); return _L_Button; } } - private EditorTools_Button _L_Button; + private Button _L_Button; - public EditorTools_HBoxContainer(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + public HBoxContainer(EditorToolsPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer3.Label /// - public class EditorTools1_Label : UiNode + public class Label_1 : UiNode { - public EditorTools1_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools1_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + public Label_1(EditorToolsPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label_1 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer3.LineEdit /// - public class EditorTools_LineEdit : UiNode + public class LineEdit : UiNode { - public EditorTools_LineEdit(EditorTools uiPanel, Godot.LineEdit node) : base(uiPanel, node) { } - public override EditorTools_LineEdit Clone() => new (UiPanel, (Godot.LineEdit)Instance.Duplicate()); + public LineEdit(EditorToolsPanel uiPanel, Godot.LineEdit node) : base(uiPanel, node) { } + public override LineEdit Clone() => new (UiPanel, (Godot.LineEdit)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer3.Button /// - public class EditorTools1_Button : UiNode + public class Button_1 : UiNode { - public EditorTools1_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools1_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public Button_1(EditorToolsPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } + public override Button_1 Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer3 /// - public class EditorTools_HBoxContainer3 : UiNode + public class HBoxContainer3 : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label /// - public EditorTools1_Label L_Label + public Label_1 L_Label { get { - if (_L_Label == null) _L_Label = new EditorTools1_Label(UiPanel, Instance.GetNodeOrNull("Label")); + if (_L_Label == null) _L_Label = new Label_1(UiPanel, Instance.GetNode("Label")); return _L_Label; } } - private EditorTools1_Label _L_Label; + private Label_1 _L_Label; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.LineEdit /// - public EditorTools_LineEdit L_LineEdit + public LineEdit L_LineEdit { get { - if (_L_LineEdit == null) _L_LineEdit = new EditorTools_LineEdit(UiPanel, Instance.GetNodeOrNull("LineEdit")); + if (_L_LineEdit == null) _L_LineEdit = new LineEdit(UiPanel, Instance.GetNode("LineEdit")); return _L_LineEdit; } } - private EditorTools_LineEdit _L_LineEdit; + private LineEdit _L_LineEdit; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button /// - public EditorTools1_Button L_Button + public Button_1 L_Button { get { - if (_L_Button == null) _L_Button = new EditorTools1_Button(UiPanel, Instance.GetNodeOrNull("Button")); + if (_L_Button == null) _L_Button = new Button_1(UiPanel, Instance.GetNode("Button")); return _L_Button; } } - private EditorTools1_Button _L_Button; + private Button_1 _L_Button; - public EditorTools_HBoxContainer3(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer3 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + public HBoxContainer3(EditorToolsPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer3 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer4.Label /// - public class EditorTools2_Label : UiNode + public class Label_2 : UiNode { - public EditorTools2_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools2_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + public Label_2(EditorToolsPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label_2 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer4.Button /// - public class EditorTools2_Button : UiNode + public class Button_2 : UiNode { - public EditorTools2_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools2_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public Button_2(EditorToolsPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } + public override Button_2 Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer4 /// - public class EditorTools_HBoxContainer4 : UiNode + public class HBoxContainer4 : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label /// - public EditorTools2_Label L_Label + public Label_2 L_Label { get { - if (_L_Label == null) _L_Label = new EditorTools2_Label(UiPanel, Instance.GetNodeOrNull("Label")); + if (_L_Label == null) _L_Label = new Label_2(UiPanel, Instance.GetNode("Label")); return _L_Label; } } - private EditorTools2_Label _L_Label; + private Label_2 _L_Label; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button /// - public EditorTools2_Button L_Button + public Button_2 L_Button { get { - if (_L_Button == null) _L_Button = new EditorTools2_Button(UiPanel, Instance.GetNodeOrNull("Button")); + if (_L_Button == null) _L_Button = new Button_2(UiPanel, Instance.GetNode("Button")); return _L_Button; } } - private EditorTools2_Button _L_Button; + private Button_2 _L_Button; - public EditorTools_HBoxContainer4(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer4 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + public HBoxContainer4(EditorToolsPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer4 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer5.Label /// - public class EditorTools3_Label : UiNode + public class Label_3 : UiNode { - public EditorTools3_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools3_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + public Label_3(EditorToolsPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label_3 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer5.Button /// - public class EditorTools3_Button : UiNode + public class Button_3 : UiNode { - public EditorTools3_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools3_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public Button_3(EditorToolsPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } + public override Button_3 Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer5 /// - public class EditorTools_HBoxContainer5 : UiNode + public class HBoxContainer5 : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label /// - public EditorTools3_Label L_Label + public Label_3 L_Label { get { - if (_L_Label == null) _L_Label = new EditorTools3_Label(UiPanel, Instance.GetNodeOrNull("Label")); + if (_L_Label == null) _L_Label = new Label_3(UiPanel, Instance.GetNode("Label")); return _L_Label; } } - private EditorTools3_Label _L_Label; + private Label_3 _L_Label; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button /// - public EditorTools3_Button L_Button + public Button_3 L_Button { get { - if (_L_Button == null) _L_Button = new EditorTools3_Button(UiPanel, Instance.GetNodeOrNull("Button")); + if (_L_Button == null) _L_Button = new Button_3(UiPanel, Instance.GetNode("Button")); return _L_Button; } } - private EditorTools3_Button _L_Button; + private Button_3 _L_Button; - public EditorTools_HBoxContainer5(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer5 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label - /// - public class EditorTools4_Label : UiNode - { - public EditorTools4_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools4_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomNameInput - /// - public class EditorTools_RoomNameInput : UiNode - { - public EditorTools_RoomNameInput(EditorTools uiPanel, Godot.LineEdit node) : base(uiPanel, node) { } - public override EditorTools_RoomNameInput Clone() => new (UiPanel, (Godot.LineEdit)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label2 - /// - public class EditorTools_Label2 : UiNode - { - public EditorTools_Label2(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools_Label2 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomGroupSelect - /// - public class EditorTools_RoomGroupSelect : UiNode - { - public EditorTools_RoomGroupSelect(EditorTools uiPanel, Godot.OptionButton node) : base(uiPanel, node) { } - public override EditorTools_RoomGroupSelect Clone() => new (UiPanel, (Godot.OptionButton)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label3 - /// - public class EditorTools_Label3 : UiNode - { - public EditorTools_Label3(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools_Label3 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomTypeSelect - /// - public class EditorTools_RoomTypeSelect : UiNode - { - public EditorTools_RoomTypeSelect(EditorTools uiPanel, Godot.OptionButton node) : base(uiPanel, node) { } - public override EditorTools_RoomTypeSelect Clone() => new (UiPanel, (Godot.OptionButton)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Button - /// - public class EditorTools4_Button : UiNode - { - public EditorTools4_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools4_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6 - /// - public class EditorTools_HBoxContainer6 : UiNode - { - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label - /// - public EditorTools4_Label L_Label - { - get - { - if (_L_Label == null) _L_Label = new EditorTools4_Label(UiPanel, Instance.GetNodeOrNull("Label")); - return _L_Label; - } - } - private EditorTools4_Label _L_Label; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.RoomNameInput - /// - public EditorTools_RoomNameInput L_RoomNameInput - { - get - { - if (_L_RoomNameInput == null) _L_RoomNameInput = new EditorTools_RoomNameInput(UiPanel, Instance.GetNodeOrNull("RoomNameInput")); - return _L_RoomNameInput; - } - } - private EditorTools_RoomNameInput _L_RoomNameInput; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label2 - /// - public EditorTools_Label2 L_Label2 - { - get - { - if (_L_Label2 == null) _L_Label2 = new EditorTools_Label2(UiPanel, Instance.GetNodeOrNull("Label2")); - return _L_Label2; - } - } - private EditorTools_Label2 _L_Label2; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.RoomGroupSelect - /// - public EditorTools_RoomGroupSelect L_RoomGroupSelect - { - get - { - if (_L_RoomGroupSelect == null) _L_RoomGroupSelect = new EditorTools_RoomGroupSelect(UiPanel, Instance.GetNodeOrNull("RoomGroupSelect")); - return _L_RoomGroupSelect; - } - } - private EditorTools_RoomGroupSelect _L_RoomGroupSelect; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label3 - /// - public EditorTools_Label3 L_Label3 - { - get - { - if (_L_Label3 == null) _L_Label3 = new EditorTools_Label3(UiPanel, Instance.GetNodeOrNull("Label3")); - return _L_Label3; - } - } - private EditorTools_Label3 _L_Label3; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.RoomTypeSelect - /// - public EditorTools_RoomTypeSelect L_RoomTypeSelect - { - get - { - if (_L_RoomTypeSelect == null) _L_RoomTypeSelect = new EditorTools_RoomTypeSelect(UiPanel, Instance.GetNodeOrNull("RoomTypeSelect")); - return _L_RoomTypeSelect; - } - } - private EditorTools_RoomTypeSelect _L_RoomTypeSelect; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button - /// - public EditorTools4_Button L_Button - { - get - { - if (_L_Button == null) _L_Button = new EditorTools4_Button(UiPanel, Instance.GetNodeOrNull("Button")); - return _L_Button; - } - } - private EditorTools4_Button _L_Button; - - public EditorTools_HBoxContainer6(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer6 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer2.Label - /// - public class EditorTools5_Label : UiNode - { - public EditorTools5_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools5_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer2.Button - /// - public class EditorTools5_Button : UiNode - { - public EditorTools5_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools5_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); - } - - /// - /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer2 - /// - public class EditorTools_HBoxContainer2 : UiNode - { - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label - /// - public EditorTools5_Label L_Label - { - get - { - if (_L_Label == null) _L_Label = new EditorTools5_Label(UiPanel, Instance.GetNodeOrNull("Label")); - return _L_Label; - } - } - private EditorTools5_Label _L_Label; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button - /// - public EditorTools5_Button L_Button - { - get - { - if (_L_Button == null) _L_Button = new EditorTools5_Button(UiPanel, Instance.GetNodeOrNull("Button")); - return _L_Button; - } - } - private EditorTools5_Button _L_Button; - - public EditorTools_HBoxContainer2(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer2 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + public HBoxContainer5(EditorToolsPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer5 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer7.Label /// - public class EditorTools6_Label : UiNode + public class Label_4 : UiNode { - public EditorTools6_Label(EditorTools uiPanel, Godot.Label node) : base(uiPanel, node) { } - public override EditorTools6_Label Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + public Label_4(EditorToolsPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label_4 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer7.Button /// - public class EditorTools6_Button : UiNode + public class Button_4 : UiNode { - public EditorTools6_Button(EditorTools uiPanel, Godot.Button node) : base(uiPanel, node) { } - public override EditorTools6_Button Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + public Button_4(EditorToolsPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } + public override Button_4 Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer7 /// - public class EditorTools_HBoxContainer7 : UiNode + public class HBoxContainer7 : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label /// - public EditorTools6_Label L_Label + public Label_4 L_Label { get { - if (_L_Label == null) _L_Label = new EditorTools6_Label(UiPanel, Instance.GetNodeOrNull("Label")); + if (_L_Label == null) _L_Label = new Label_4(UiPanel, Instance.GetNode("Label")); return _L_Label; } } - private EditorTools6_Label _L_Label; + private Label_4 _L_Label; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button /// - public EditorTools6_Button L_Button + public Button_4 L_Button { get { - if (_L_Button == null) _L_Button = new EditorTools6_Button(UiPanel, Instance.GetNodeOrNull("Button")); + if (_L_Button == null) _L_Button = new Button_4(UiPanel, Instance.GetNode("Button")); return _L_Button; } } - private EditorTools6_Button _L_Button; + private Button_4 _L_Button; - public EditorTools_HBoxContainer7(EditorTools uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_HBoxContainer7 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + public HBoxContainer7(EditorToolsPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer7 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer /// - public class EditorTools_VBoxContainer : UiNode + public class VBoxContainer : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer /// - public EditorTools_HBoxContainer L_HBoxContainer + public HBoxContainer L_HBoxContainer { get { - if (_L_HBoxContainer == null) _L_HBoxContainer = new EditorTools_HBoxContainer(UiPanel, Instance.GetNodeOrNull("HBoxContainer")); + if (_L_HBoxContainer == null) _L_HBoxContainer = new HBoxContainer(UiPanel, Instance.GetNode("HBoxContainer")); return _L_HBoxContainer; } } - private EditorTools_HBoxContainer _L_HBoxContainer; + private HBoxContainer _L_HBoxContainer; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer3 /// - public EditorTools_HBoxContainer3 L_HBoxContainer3 + public HBoxContainer3 L_HBoxContainer3 { get { - if (_L_HBoxContainer3 == null) _L_HBoxContainer3 = new EditorTools_HBoxContainer3(UiPanel, Instance.GetNodeOrNull("HBoxContainer3")); + if (_L_HBoxContainer3 == null) _L_HBoxContainer3 = new HBoxContainer3(UiPanel, Instance.GetNode("HBoxContainer3")); return _L_HBoxContainer3; } } - private EditorTools_HBoxContainer3 _L_HBoxContainer3; + private HBoxContainer3 _L_HBoxContainer3; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer4 /// - public EditorTools_HBoxContainer4 L_HBoxContainer4 + public HBoxContainer4 L_HBoxContainer4 { get { - if (_L_HBoxContainer4 == null) _L_HBoxContainer4 = new EditorTools_HBoxContainer4(UiPanel, Instance.GetNodeOrNull("HBoxContainer4")); + if (_L_HBoxContainer4 == null) _L_HBoxContainer4 = new HBoxContainer4(UiPanel, Instance.GetNode("HBoxContainer4")); return _L_HBoxContainer4; } } - private EditorTools_HBoxContainer4 _L_HBoxContainer4; + private HBoxContainer4 _L_HBoxContainer4; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer5 /// - public EditorTools_HBoxContainer5 L_HBoxContainer5 + public HBoxContainer5 L_HBoxContainer5 { get { - if (_L_HBoxContainer5 == null) _L_HBoxContainer5 = new EditorTools_HBoxContainer5(UiPanel, Instance.GetNodeOrNull("HBoxContainer5")); + if (_L_HBoxContainer5 == null) _L_HBoxContainer5 = new HBoxContainer5(UiPanel, Instance.GetNode("HBoxContainer5")); return _L_HBoxContainer5; } } - private EditorTools_HBoxContainer5 _L_HBoxContainer5; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer6 - /// - public EditorTools_HBoxContainer6 L_HBoxContainer6 - { - get - { - if (_L_HBoxContainer6 == null) _L_HBoxContainer6 = new EditorTools_HBoxContainer6(UiPanel, Instance.GetNodeOrNull("HBoxContainer6")); - return _L_HBoxContainer6; - } - } - private EditorTools_HBoxContainer6 _L_HBoxContainer6; - - /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer2 - /// - public EditorTools_HBoxContainer2 L_HBoxContainer2 - { - get - { - if (_L_HBoxContainer2 == null) _L_HBoxContainer2 = new EditorTools_HBoxContainer2(UiPanel, Instance.GetNodeOrNull("HBoxContainer2")); - return _L_HBoxContainer2; - } - } - private EditorTools_HBoxContainer2 _L_HBoxContainer2; + private HBoxContainer5 _L_HBoxContainer5; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer7 /// - public EditorTools_HBoxContainer7 L_HBoxContainer7 + public HBoxContainer7 L_HBoxContainer7 { get { - if (_L_HBoxContainer7 == null) _L_HBoxContainer7 = new EditorTools_HBoxContainer7(UiPanel, Instance.GetNodeOrNull("HBoxContainer7")); + if (_L_HBoxContainer7 == null) _L_HBoxContainer7 = new HBoxContainer7(UiPanel, Instance.GetNode("HBoxContainer7")); return _L_HBoxContainer7; } } - private EditorTools_HBoxContainer7 _L_HBoxContainer7; + private HBoxContainer7 _L_HBoxContainer7; - public EditorTools_VBoxContainer(EditorTools uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } - public override EditorTools_VBoxContainer Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); + public VBoxContainer(EditorToolsPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } + public override VBoxContainer Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer /// - public class EditorTools_MarginContainer : UiNode + public class MarginContainer : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.VBoxContainer /// - public EditorTools_VBoxContainer L_VBoxContainer + public VBoxContainer L_VBoxContainer { get { - if (_L_VBoxContainer == null) _L_VBoxContainer = new EditorTools_VBoxContainer(UiPanel, Instance.GetNodeOrNull("VBoxContainer")); + if (_L_VBoxContainer == null) _L_VBoxContainer = new VBoxContainer(UiPanel, Instance.GetNode("VBoxContainer")); return _L_VBoxContainer; } } - private EditorTools_VBoxContainer _L_VBoxContainer; + private VBoxContainer _L_VBoxContainer; - public EditorTools_MarginContainer(EditorTools uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { } - public override EditorTools_MarginContainer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate()); + public MarginContainer(EditorToolsPanel uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { } + public override MarginContainer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.ScrollContainer /// - public class EditorTools_ScrollContainer : UiNode + public class ScrollContainer : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.MarginContainer /// - public EditorTools_MarginContainer L_MarginContainer + public MarginContainer L_MarginContainer { get { - if (_L_MarginContainer == null) _L_MarginContainer = new EditorTools_MarginContainer(UiPanel, Instance.GetNodeOrNull("MarginContainer")); + if (_L_MarginContainer == null) _L_MarginContainer = new MarginContainer(UiPanel, Instance.GetNode("MarginContainer")); return _L_MarginContainer; } } - private EditorTools_MarginContainer _L_MarginContainer; + private MarginContainer _L_MarginContainer; - public EditorTools_ScrollContainer(EditorTools uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { } - public override EditorTools_ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate()); + public ScrollContainer(EditorToolsPanel uiPanel, Godot.ScrollContainer node) : base(uiPanel, node) { } + public override ScrollContainer Clone() => new (UiPanel, (Godot.ScrollContainer)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.Confirm /// - public class EditorTools_Confirm : UiNode + public class Confirm : UiNode { - public EditorTools_Confirm(EditorTools uiPanel, Godot.ConfirmationDialog node) : base(uiPanel, node) { } - public override EditorTools_Confirm Clone() => new (UiPanel, (Godot.ConfirmationDialog)Instance.Duplicate()); + public Confirm(EditorToolsPanel uiPanel, Godot.ConfirmationDialog node) : base(uiPanel, node) { } + public override Confirm Clone() => new (UiPanel, (Godot.ConfirmationDialog)Instance.Duplicate()); } /// /// 类型: , 路径: EditorTools.Tips /// - public class EditorTools_Tips : UiNode + public class Tips : UiNode { - public EditorTools_Tips(EditorTools uiPanel, Godot.AcceptDialog node) : base(uiPanel, node) { } - public override EditorTools_Tips Clone() => new (UiPanel, (Godot.AcceptDialog)Instance.Duplicate()); + public Tips(EditorToolsPanel uiPanel, Godot.AcceptDialog node) : base(uiPanel, node) { } + public override Tips Clone() => new (UiPanel, (Godot.AcceptDialog)Instance.Duplicate()); } /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer /// - public EditorTools_HBoxContainer S_HBoxContainer => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer; + public HBoxContainer S_HBoxContainer => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer3.LineEdit /// - public EditorTools_LineEdit S_LineEdit => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_LineEdit; + public LineEdit S_LineEdit => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer3.L_LineEdit; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer3 /// - public EditorTools_HBoxContainer3 S_HBoxContainer3 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer3; + public HBoxContainer3 S_HBoxContainer3 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer3; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer4 /// - public EditorTools_HBoxContainer4 S_HBoxContainer4 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer4; + public HBoxContainer4 S_HBoxContainer4 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer4; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer5 /// - public EditorTools_HBoxContainer5 S_HBoxContainer5 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer5; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomNameInput - /// - public EditorTools_RoomNameInput S_RoomNameInput => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6.L_RoomNameInput; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label2 - /// - public EditorTools_Label2 S_Label2 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6.L_Label2; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomGroupSelect - /// - public EditorTools_RoomGroupSelect S_RoomGroupSelect => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6.L_RoomGroupSelect; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.Label3 - /// - public EditorTools_Label3 S_Label3 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6.L_Label3; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6.RoomTypeSelect - /// - public EditorTools_RoomTypeSelect S_RoomTypeSelect => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6.L_RoomTypeSelect; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer6 - /// - public EditorTools_HBoxContainer6 S_HBoxContainer6 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6; - - /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer2 - /// - public EditorTools_HBoxContainer2 S_HBoxContainer2 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer2; + public HBoxContainer5 S_HBoxContainer5 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer5; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer7 /// - public EditorTools_HBoxContainer7 S_HBoxContainer7 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer7; + public HBoxContainer7 S_HBoxContainer7 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer7; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer /// - public EditorTools_VBoxContainer S_VBoxContainer => L_ScrollContainer.L_MarginContainer.L_VBoxContainer; + public VBoxContainer S_VBoxContainer => L_ScrollContainer.L_MarginContainer.L_VBoxContainer; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer /// - public EditorTools_MarginContainer S_MarginContainer => L_ScrollContainer.L_MarginContainer; + public MarginContainer S_MarginContainer => L_ScrollContainer.L_MarginContainer; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer /// - public EditorTools_ScrollContainer S_ScrollContainer => L_ScrollContainer; + public ScrollContainer S_ScrollContainer => L_ScrollContainer; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.Confirm /// - public EditorTools_Confirm S_Confirm => L_Confirm; + public Confirm S_Confirm => L_Confirm; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.Tips /// - public EditorTools_Tips S_Tips => L_Tips; + public Tips S_Tips => L_Tips; } diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs index 7e9eaf8..9116891 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs @@ -46,22 +46,16 @@ L_Confirm.Instance.Canceled += OnCanceled; L_Confirm.Instance.CloseRequested += OnCanceled; L_Confirm.Instance.Confirmed += OnConfirm; - - InitSelectOptions(); var container = L_ScrollContainer.L_MarginContainer.L_VBoxContainer; //重新生成 ResourcePath container.L_HBoxContainer.L_Button.Instance.Pressed += GenerateResourcePath; - //重新打包房间配置 - container.L_HBoxContainer2.L_Button.Instance.Pressed += GenerateRoomConfig; //重新生成ui代码 container.L_HBoxContainer4.L_Button.Instance.Pressed += OnGenerateCurrentUiCode; //创建ui container.L_HBoxContainer3.L_Button.Instance.Pressed += OnCreateUI; //重新生成UiManagerMethods.cs代码 container.L_HBoxContainer5.L_Button.Instance.Pressed += GenerateUiManagerMethods; - //创建地牢房间 - container.L_HBoxContainer6.L_Button.Instance.Pressed += GenerateDungeonRoom; //导出excel表 container.L_HBoxContainer7.L_Button.Instance.Pressed += ExportExcel; } @@ -78,52 +72,12 @@ var container = L_ScrollContainer.L_MarginContainer.L_VBoxContainer; container.L_HBoxContainer.L_Button.Instance.Pressed -= GenerateResourcePath; - container.L_HBoxContainer2.L_Button.Instance.Pressed -= GenerateRoomConfig; container.L_HBoxContainer4.L_Button.Instance.Pressed -= OnGenerateCurrentUiCode; container.L_HBoxContainer3.L_Button.Instance.Pressed -= OnCreateUI; container.L_HBoxContainer5.L_Button.Instance.Pressed -= GenerateUiManagerMethods; - container.L_HBoxContainer6.L_Button.Instance.Pressed -= GenerateDungeonRoom; container.L_HBoxContainer7.L_Button.Instance.Pressed -= ExportExcel; } - public override void Process(float delta) - { - if (_createRoomGroupValueMap == null || _createRoomTypeValueMap == null) - { - InitSelectOptions(); - } - } - - //创建ui的下拉框数据 - private void InitSelectOptions() - { - _createRoomGroupValueMap = new Dictionary(); - _createRoomTypeValueMap = new Dictionary(); - var container = L_ScrollContainer.L_MarginContainer.L_VBoxContainer; - var select1 = container.L_HBoxContainer6.L_RoomGroupSelect.Instance; - select1.Clear(); - var directoryInfo = new DirectoryInfo(GameConfig.RoomTileDir); - var directoryInfoArray = directoryInfo.GetDirectories(); - for (var i = 0; i < directoryInfoArray.Length; i++) - { - var text = directoryInfoArray[i].Name; - select1.AddItem(text, i); - _createRoomGroupValueMap.Add(i, text); - } - - var select2 = container.L_HBoxContainer6.L_RoomTypeSelect.Instance; - select2.Clear(); - var dungeonRoomTypes = Enum.GetValues(); - for (var i = 0; i < dungeonRoomTypes.Length; i++) - { - var typeName = DungeonManager.DungeonRoomTypeToString(dungeonRoomTypes[i]); - var text = typeName + " (" + - DungeonManager.DungeonRoomTypeToDescribeString(dungeonRoomTypes[i]) + ")"; - select2.AddItem(text, i); - _createRoomTypeValueMap.Add(i, typeName); - } - } - /// /// Tips 关闭信号回调 /// @@ -315,22 +269,7 @@ ShowTips("错误", "ResourcePath.cs生成失败! 前往控制台查看错误日志!"); } } - - /// - /// 重新打包房间配置 - /// - private void GenerateRoomConfig() - { - if (DungeonRoomGenerator.GenerateRoomConfig()) - { - ShowTips("提示", "打包地牢房间配置执行完成!"); - } - else - { - ShowTips("错误", "打包地牢房间配置执行失败! 前往控制台查看错误日志!"); - } - } - + /// /// 重新生成UiManagerMethods.cs代码 /// @@ -345,52 +284,7 @@ ShowTips("错误", "生成UiManagerMethods.cs代码执行失败! 前往控制台查看错误日志!"); } } - - /// - /// 创建地牢房间 - /// - private void GenerateDungeonRoom() - { - var node = L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer6; - var group = _createRoomGroupValueMap[node.L_RoomGroupSelect.Instance.Selected]; - var type = _createRoomTypeValueMap[node.L_RoomTypeSelect.Instance.Selected]; - var roomName = node.L_RoomNameInput.Instance.Text; - - var pathName = group + "/" + type + "/" + roomName; - - ShowConfirm("提示", "是否创建房间:" + pathName, (result) => - { - if (result) - { - //检查名称是否合规 - if (!Regex.IsMatch(roomName, "^\\w+$")) - { - ShowTips("错误", "房间名称'" + roomName + "'不符合名称约束, 房间名称只允许包含大写字母和数字!"); - return; - } - - //检查是否有同名的Ui - var path = GameConfig.RoomTileDir + pathName + ".tscn"; - if (File.Exists(path)) - { - ShowTips("错误", "已经存在相同名称'" + pathName + "'的房间了, 不能重复创建!"); - return; - } - - //执行创建操作 - if (DungeonRoomGenerator.CreateDungeonRoom(group, type, roomName, true)) - { - ShowTips("提示", "创建房间成功!"); - } - else - { - ShowTips("错误", "创建房间失败! 前往控制台查看错误日志!"); - } - - } - }); - } - + /// /// 导出excel表 ///