diff --git a/DungeonShooting_Godot/excel/ActivityBase.xlsx b/DungeonShooting_Godot/excel/ActivityBase.xlsx index 33627b4..49ee83e 100644 --- a/DungeonShooting_Godot/excel/ActivityBase.xlsx +++ b/DungeonShooting_Godot/excel/ActivityBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/BulletBase.xlsx b/DungeonShooting_Godot/excel/BulletBase.xlsx index be74a03..bdc5175 100644 --- a/DungeonShooting_Godot/excel/BulletBase.xlsx +++ b/DungeonShooting_Godot/excel/BulletBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/WeaponBase.xlsx b/DungeonShooting_Godot/excel/WeaponBase.xlsx index 56de75b..9aff6cb 100644 --- a/DungeonShooting_Godot/excel/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/prefab/bullet/normal/Bullet0007.tscn b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0007.tscn new file mode 100644 index 0000000..9fe3cb3 --- /dev/null +++ b/DungeonShooting_Godot/prefab/bullet/normal/Bullet0007.tscn @@ -0,0 +1,67 @@ +[gd_scene load_steps=8 format=3 uid="uid://cybey66bhe4ro"] + +[ext_resource type="Script" path="res://src/game/activity/bullet/normal/Bullet.cs" id="1_h4tn7"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="2_fgeyt"] +[ext_resource type="SpriteFrames" uid="uid://bkwoy70bnm74k" path="res://resource/spriteFrames/bullet/Bullet0007.tres" id="3_c1ec6"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_v77gw"] +resource_local_to_scene = true +shader = ExtResource("2_fgeyt") +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 +shader_parameter/grey = 0.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_r6pkp"] +resource_local_to_scene = true +shader = ExtResource("2_fgeyt") +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 = false +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = false +shader_parameter/grey = 0.0 + +[sub_resource type="CircleShape2D" id="CircleShape2D_0vxfv"] +radius = 2.0 + +[sub_resource type="CircleShape2D" id="CircleShape2D_e2yn3"] +radius = 2.0 + +[node name="Bullet0007" type="CharacterBody2D" node_paths=PackedStringArray("CollisionArea", "CollisionShape2D", "Particles2D", "ShadowSprite", "AnimatedSprite", "Collision")] +collision_layer = 2 +collision_mask = 0 +script = ExtResource("1_h4tn7") +CollisionArea = NodePath("AnimatedSprite/CollisionArea") +CollisionShape2D = NodePath("AnimatedSprite/CollisionArea/CollisionShape2D") +Particles2D = [] +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" type="Sprite2D" parent="."] +z_index = -1 +material = SubResource("ShaderMaterial_v77gw") + +[node name="AnimatedSprite" type="AnimatedSprite2D" parent="."] +modulate = Color(1.8, 1.8, 1.8, 1) +material = SubResource("ShaderMaterial_r6pkp") +sprite_frames = ExtResource("3_c1ec6") + +[node name="CollisionArea" type="Area2D" parent="AnimatedSprite"] +collision_layer = 0 +collision_mask = 0 +monitorable = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="AnimatedSprite/CollisionArea"] +position = Vector2(-2.38419e-07, 0) +shape = SubResource("CircleShape2D_0vxfv") + +[node name="Collision" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_e2yn3") diff --git a/DungeonShooting_Godot/prefab/weapon/Weapon0014.tscn b/DungeonShooting_Godot/prefab/weapon/Weapon0014.tscn new file mode 100644 index 0000000..b880d0d --- /dev/null +++ b/DungeonShooting_Godot/prefab/weapon/Weapon0014.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=8 format=3 uid="uid://dvhan2bubtey0"] + +[ext_resource type="PackedScene" uid="uid://cxltmhhp4rbyk" path="res://prefab/weapon/WeaponTemplate.tscn" id="1_3op5w"] +[ext_resource type="Script" path="res://src/game/activity/weapon/gun/Gun.cs" id="2_toxwq"] +[ext_resource type="Shader" path="res://resource/material/Blend.gdshader" id="3_ch83c"] +[ext_resource type="SpriteFrames" uid="uid://taxfr2lcy0f3" path="res://resource/spriteFrames/weapon/Weapon0014.tres" id="4_xdmw2"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sy2aq"] +resource_local_to_scene = true +shader = ExtResource("3_ch83c") +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 = true +shader_parameter/outline_color = Color(0, 0, 0, 1) +shader_parameter/outline_rainbow = false +shader_parameter/outline_use_blend = true +shader_parameter/grey = 0.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_x2qcg"] +resource_local_to_scene = true +shader = ExtResource("3_ch83c") +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 +shader_parameter/grey = 0.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4pn1i"] +size = Vector2(10.75, 7.75) + +[node name="Weapon0014" node_paths=PackedStringArray("FirePoint", "ShellPoint", "AnimationPlayer", "ShadowSprite", "AnimatedSprite", "Collision") instance=ExtResource("1_3op5w")] +script = ExtResource("2_toxwq") +FirePoint = NodePath("AnimatedSprite/FirePoint") +ShellPoint = NodePath("AnimatedSprite/ShellPoint") +AnimationPlayer = NodePath("AnimationPlayer") +ShadowSprite = NodePath("ShadowSprite") +AnimatedSprite = NodePath("AnimatedSprite") +Collision = NodePath("Collision") + +[node name="ShadowSprite" parent="." index="0"] +material = SubResource("ShaderMaterial_sy2aq") + +[node name="AnimatedSprite" parent="." index="1"] +material = SubResource("ShaderMaterial_x2qcg") +position = Vector2(4, 0) +sprite_frames = ExtResource("4_xdmw2") + +[node name="ShellPoint" parent="AnimatedSprite" index="0"] +position = Vector2(-3, -2) + +[node name="FirePoint" parent="AnimatedSprite" index="1"] +position = Vector2(9, -2) + +[node name="Collision" parent="." index="2"] +visible = true +position = Vector2(4, 0) +shape = SubResource("RectangleShape2D_4pn1i") diff --git a/DungeonShooting_Godot/resource/config/ActivityBase.json b/DungeonShooting_Godot/resource/config/ActivityBase.json index a288198..d5e4bf7 100644 --- a/DungeonShooting_Godot/resource/config/ActivityBase.json +++ b/DungeonShooting_Godot/resource/config/ActivityBase.json @@ -196,6 +196,20 @@ "ShowInMapEditor": true }, { + "Id": "weapon0014", + "Type": 5, + "Name": "\u5DE6\u8F6E", + "Quality": 4, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "", + "Prefab": "res://prefab/weapon/Weapon0014.tscn", + "Icon": "res://resource/sprite/weapon/weapon0014/Weapon0014.png", + "ShowInMapEditor": true + }, + { "Id": "bullet0001", "Type": 6, "Name": "", @@ -280,6 +294,20 @@ "ShowInMapEditor": false }, { + "Id": "bullet0007", + "Type": 6, + "Name": "", + "Quality": 0, + "Price": 0, + "Intro": "", + "Details": "", + "IsStatic": false, + "__Material": "0003", + "Prefab": "res://prefab/bullet/normal/Bullet0007.tscn", + "Icon": "", + "ShowInMapEditor": false + }, + { "Id": "shell0001", "Type": 7, "Name": "", diff --git a/DungeonShooting_Godot/resource/config/BulletBase.json b/DungeonShooting_Godot/resource/config/BulletBase.json index 07bee32..c4e5105 100644 --- a/DungeonShooting_Godot/resource/config/BulletBase.json +++ b/DungeonShooting_Godot/resource/config/BulletBase.json @@ -246,6 +246,41 @@ ] }, { + "Id": "0008", + "Name": "\u5B50\u5F394", + "Type": 1, + "Prefab": "bullet0007", + "HarmRange": [ + 4 + ], + "RepelRange": [ + 15 + ], + "DeviationAngleRange": [ + 0 + ], + "SpeedRange": [ + 350, + 380 + ], + "LifeTimeRange": [ + -1 + ], + "DistanceRange": [ + 400, + 450 + ], + "VerticalSpeed": [ + 0 + ], + "BounceCount": [ + 0 + ], + "Penetration": [ + 0 + ] + }, + { "Id": "1001", "Name": "\u6FC0\u51491", "Type": 2, diff --git a/DungeonShooting_Godot/resource/config/WeaponBase.json b/DungeonShooting_Godot/resource/config/WeaponBase.json index dba12d2..609b751 100644 --- a/DungeonShooting_Godot/resource/config/WeaponBase.json +++ b/DungeonShooting_Godot/resource/config/WeaponBase.json @@ -52,6 +52,7 @@ "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -125,6 +126,7 @@ "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -198,6 +200,7 @@ "__Bullet": "0002", "__Shell": "shell0002", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0.2, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -271,6 +274,7 @@ "__Bullet": "0002", "__Shell": "shell0002", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0.2, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -344,6 +348,7 @@ "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -417,6 +422,7 @@ "__Bullet": "0001", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -489,6 +495,7 @@ "__Bullet": "2001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -561,6 +568,7 @@ "__Bullet": "2001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -634,6 +642,7 @@ "__Bullet": "0004", "__Shell": "shell0003", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0.2, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -707,6 +716,7 @@ "__Bullet": "0004", "__Shell": "shell0003", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0.2, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -780,6 +790,7 @@ "__Bullet": "0002", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -853,6 +864,7 @@ "__Bullet": "0002", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -926,6 +938,7 @@ "__Bullet": "0003", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -999,6 +1012,7 @@ "__Bullet": "0003", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1072,6 +1086,7 @@ "__Bullet": "1001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1145,6 +1160,7 @@ "__Bullet": "1001", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1218,6 +1234,7 @@ "__Bullet": "0005", "__Shell": "shell0004", "ReloadThrowShell": true, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0.46, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1291,6 +1308,7 @@ "__Bullet": "0005", "__Shell": "shell0004", "ReloadThrowShell": true, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0.46, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1364,6 +1382,7 @@ "__Bullet": "0007", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1437,6 +1456,7 @@ "__Bullet": "0007", "__Shell": "", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1510,6 +1530,7 @@ "__Bullet": "0003", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1583,6 +1604,7 @@ "__Bullet": "0003", "__Shell": "shell0001", "ReloadThrowShell": false, + "ThrowShellCount": 0, "ThrowShellDelayTime": 0, "CanMeleeAttack": true, "MeleeAttackHarmRange": [ @@ -1602,5 +1624,153 @@ "BeLoadedSoundDelayTime": 0, "__OtherSoundMap": null, "__AiAttackAttr": "0006" + }, + { + "Id": "0014", + "Remark": "\u5DE6\u8F6E", + "__Activity": "weapon0014", + "Weight": 20, + "WeightType": 1, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 5, + "MaxAmmoCapacity": 120, + "StandbyAmmoCapacity": 80, + "ReloadTime": 1, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0.05, + "ContinuousCountRange": [ + 1 + ], + "TriggerInterval": 0, + "StartFiringSpeed": 600, + "FinalFiringSpeed": 600, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 2, + "FinalScatteringRange": 25, + "ScatteringRangeAddValue": 5, + "ScatteringRangeBackSpeed": 25, + "ScatteringRangeBackDelayTime": 0.5, + "CameraShake": 4, + "BacklashRange": [ + 3, + 5 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 20, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0008", + "__Shell": "shell0001", + "ReloadThrowShell": true, + "ThrowShellCount": 5, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0004", + "__BeginReloadSound": "reloading0001", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0015", + "ReloadFinishSoundAdvanceTime": 0.43, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "" + }, + { + "Id": "0014_ai", + "Remark": "\u5DE6\u8F6E", + "__Activity": "", + "Weight": 20, + "WeightType": 1, + "IsMelee": false, + "ContinuousShoot": false, + "AmmoCapacity": 5, + "MaxAmmoCapacity": 120, + "StandbyAmmoCapacity": 80, + "ReloadTime": 1, + "AloneReload": false, + "AloneReloadCount": 1, + "AloneReloadBeginIntervalTime": 0, + "AloneReloadFinishIntervalTime": 0, + "AloneReloadCanShoot": false, + "LooseShoot": false, + "MinChargeTime": 0, + "ManualBeLoaded": false, + "AutoManualBeLoaded": false, + "BeLoadedTime": 0.05, + "ContinuousCountRange": [ + 1 + ], + "TriggerInterval": 0.8, + "StartFiringSpeed": 300, + "FinalFiringSpeed": 300, + "FiringSpeedAddSpeed": 0, + "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, + "FireBulletCountRange": [ + 1 + ], + "DelayedTime": 0, + "StartScatteringRange": 2, + "FinalScatteringRange": 25, + "ScatteringRangeAddValue": 5, + "ScatteringRangeBackSpeed": 25, + "ScatteringRangeBackDelayTime": 0.5, + "CameraShake": 4, + "BacklashRange": [ + 3, + 5 + ], + "BacklashRegressionSpeed": 35, + "UpliftAngle": 20, + "DefaultAngle": 0, + "UpliftAngleRestore": 1, + "FireEffect": "res://prefab/effect/weapon/ShotFire0001.tscn", + "__Bullet": "0008", + "__Shell": "shell0001", + "ReloadThrowShell": true, + "ThrowShellCount": 5, + "ThrowShellDelayTime": 0, + "CanMeleeAttack": true, + "MeleeAttackHarmRange": [ + 10 + ], + "MeleeAttackRepelRange": [ + 100 + ], + "__ShootSound": "shooting0004", + "__BeginReloadSound": "reloading0001", + "BeginReloadSoundDelayTime": 0, + "__ReloadSound": "", + "ReloadSoundDelayTime": 0, + "__ReloadFinishSound": "beLoaded0015", + "ReloadFinishSoundAdvanceTime": 0.43, + "__BeLoadedSound": "", + "BeLoadedSoundDelayTime": 0, + "__OtherSoundMap": null, + "__AiAttackAttr": "0003" } ] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json index 63a7e48..4a8139c 100644 --- a/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json +++ b/DungeonShooting_Godot/resource/map/tileMaps/Test1/inlet/Start/Preinstall.json @@ -1 +1 @@ -[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[{"Position":{"X":39,"Y":8},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-16,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":6},"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":66,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0010","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":47,"Y":-32},"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":23,"Y":37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0005","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":24,"Y":-30},"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":40,"Y":-10},"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":2,"Y":-37},"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":-2,"Y":47},"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":29,"Y":63},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0013","Weight":100,"Attr":{"CurrAmmon":"50","ResidueAmmo":"250"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-30,"Y":39},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-19,"Y":71},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":48,"Y":29},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0004","Weight":100,"Attr":{"CurrAmmon":"180","ResidueAmmo":"90"},"Altitude":8,"VerticalSpeed":0}]}]]}] \ No newline at end of file +[{"Name":"Preinstall1","Weight":100,"Remark":"","AutoFill":true,"WaveList":[[{"Position":{"X":39,"Y":8},"Size":{"X":0,"Y":0},"SpecialMarkType":1,"DelayTime":0,"MarkList":[]},{"Position":{"X":-16,"Y":-18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0001","Weight":100,"Attr":{"CurrAmmon":"30","ResidueAmmo":"210"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":66,"Y":6},"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":66,"Y":47},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0010","Weight":100,"Attr":{"CurrAmmon":"10","ResidueAmmo":"120"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":47,"Y":-32},"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":23,"Y":37},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0010","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":2,"Y":18},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0005","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":24,"Y":-30},"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":40,"Y":-10},"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":2,"Y":-37},"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":-2,"Y":47},"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":29,"Y":63},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0013","Weight":100,"Attr":{"CurrAmmon":"50","ResidueAmmo":"250"},"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-30,"Y":39},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":-19,"Y":71},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"prop0003","Weight":100,"Attr":null,"Altitude":8,"VerticalSpeed":0}]},{"Position":{"X":48,"Y":29},"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":20,"Y":94},"Size":{"X":16,"Y":16},"SpecialMarkType":0,"DelayTime":0,"MarkList":[{"Id":"weapon0014","Weight":100,"Attr":{"CurrAmmon":"5","ResidueAmmo":"60"},"Altitude":8,"VerticalSpeed":0}]}]]}] \ No newline at end of file diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png new file mode 100644 index 0000000..409f5ea --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png.import b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png.import new file mode 100644 index 0000000..d3df7c1 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/bullet/normal/bullet0007.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ktgwsn6cecn1" +path="res://.godot/imported/bullet0007.png-671d78db00259eec71ff1bbeb7323d38.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/bullet/normal/bullet0007.png" +dest_files=["res://.godot/imported/bullet0007.png-671d78db00259eec71ff1bbeb7323d38.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/weapon/weapon0014/Weapon0014.png b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png new file mode 100644 index 0000000..3113087 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png.import new file mode 100644 index 0000000..af570f3 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/Weapon0014.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d27ax1aqghn0k" +path="res://.godot/imported/Weapon0014.png-24bed8267d2ed0e312778ce83c4afa5a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/weapon/weapon0014/Weapon0014.png" +dest_files=["res://.godot/imported/Weapon0014.png-24bed8267d2ed0e312778ce83c4afa5a.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/weapon/weapon0014/gun2.png.import b/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/gun2.png.import deleted file mode 100644 index feb8eb6..0000000 --- a/DungeonShooting_Godot/resource/sprite/weapon/weapon0014/gun2.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://5geiuvv6hyov" -path="res://.godot/imported/gun2.png-78b331a2f245cfbe03b10da276435b64.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/sprite/weapon/gun2.png" -dest_files=["res://.godot/imported/gun2.png-78b331a2f245cfbe03b10da276435b64.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/bullet/Bullet0007.tres b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0007.tres new file mode 100644 index 0000000..c719795 --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/bullet/Bullet0007.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bkwoy70bnm74k"] + +[ext_resource type="Texture2D" uid="uid://ktgwsn6cecn1" path="res://resource/sprite/bullet/normal/bullet0007.png" id="1_5lygh"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_5lygh") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0014.tres b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0014.tres new file mode 100644 index 0000000..148385f --- /dev/null +++ b/DungeonShooting_Godot/resource/spriteFrames/weapon/Weapon0014.tres @@ -0,0 +1,14 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://taxfr2lcy0f3"] + +[ext_resource type="Texture2D" uid="uid://d27ax1aqghn0k" path="res://resource/sprite/weapon/weapon0014/Weapon0014.png" id="1_lpq2x"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_lpq2x") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs index acf351d..ba3d942 100644 --- a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs +++ b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs @@ -281,6 +281,12 @@ public bool ReloadThrowShell; /// + /// 抛壳数量 + /// + [JsonInclude] + public int ThrowShellCount; + + /// /// 投抛弹壳的延时时间 /// [JsonInclude] @@ -418,6 +424,7 @@ inst.Bullet = Bullet; inst.Shell = Shell; inst.ReloadThrowShell = ReloadThrowShell; + inst.ThrowShellCount = ThrowShellCount; inst.ThrowShellDelayTime = ThrowShellDelayTime; inst.CanMeleeAttack = CanMeleeAttack; inst.MeleeAttackHarmRange = MeleeAttackHarmRange; diff --git a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs index c1df506..49dcf5b 100644 --- a/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs +++ b/DungeonShooting_Godot/src/framework/activity/ActivityObject_Init.cs @@ -79,6 +79,11 @@ /// public const string Id_weapon0013 = "weapon0013"; /// + /// 名称: 左轮
+ /// 简介: + ///
+ public const string Id_weapon0014 = "weapon0014"; + /// /// 名称:
/// 简介: ///
@@ -112,6 +117,11 @@ /// 名称:
/// 简介: /// + public const string Id_bullet0007 = "bullet0007"; + /// + /// 名称:
+ /// 简介: + ///
public const string Id_shell0001 = "shell0001"; /// /// 名称:
diff --git a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs index 4443bef..4499111 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs @@ -1510,23 +1510,30 @@ //抛弹逻辑 private void ThrowShellHandler(float speedScale) { - if (Attribute.Shell == null) + var attribute = Attribute; + if (attribute.Shell == null) { return; } //创建一个弹壳 - if (Attribute.ThrowShellDelayTime > 0) + if (attribute.ThrowShellDelayTime > 0) { - this.CallDelay(Attribute.ThrowShellDelayTime, () => + this.CallDelay(attribute.ThrowShellDelayTime, () => { _reloadShellFlag = true; - FireManager.ThrowShell(this, Attribute.Shell, speedScale); + for (var i = 0; i < attribute.ThrowShellCount; i++) + { + FireManager.ThrowShell(this, attribute.Shell, speedScale); + } }); } - else if (Attribute.ThrowShellDelayTime == 0) + else if (attribute.ThrowShellDelayTime == 0) { _reloadShellFlag = true; - FireManager.ThrowShell(this, Attribute.Shell, speedScale); + for (var i = 0; i < attribute.ThrowShellCount; i++) + { + FireManager.ThrowShell(this, attribute.Shell, speedScale); + } } } diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs index 153224b..93a1a83 100644 --- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs +++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs @@ -77,6 +77,7 @@ public const string prefab_bullet_normal_Bullet0004_tscn = "res://prefab/bullet/normal/Bullet0004.tscn"; public const string prefab_bullet_normal_Bullet0005_tscn = "res://prefab/bullet/normal/Bullet0005.tscn"; public const string prefab_bullet_normal_Bullet0006_tscn = "res://prefab/bullet/normal/Bullet0006.tscn"; + public const string prefab_bullet_normal_Bullet0007_tscn = "res://prefab/bullet/normal/Bullet0007.tscn"; public const string prefab_currency_Gold1_tscn = "res://prefab/currency/Gold1.tscn"; public const string prefab_currency_Gold10_tscn = "res://prefab/currency/Gold10.tscn"; public const string prefab_currency_Gold5_tscn = "res://prefab/currency/Gold5.tscn"; @@ -174,6 +175,7 @@ public const string prefab_weapon_Weapon0009_tscn = "res://prefab/weapon/Weapon0009.tscn"; public const string prefab_weapon_Weapon0010_tscn = "res://prefab/weapon/Weapon0010.tscn"; public const string prefab_weapon_Weapon0013_tscn = "res://prefab/weapon/Weapon0013.tscn"; + public const string prefab_weapon_Weapon0014_tscn = "res://prefab/weapon/Weapon0014.tscn"; public const string prefab_weapon_WeaponTemplate_tscn = "res://prefab/weapon/WeaponTemplate.tscn"; public const string resource_config_ActivityBase_json = "res://resource/config/ActivityBase.json"; public const string resource_config_ActivityMaterial_json = "res://resource/config/ActivityMaterial.json"; @@ -277,6 +279,7 @@ public const string resource_sprite_bullet_normal_bullet0004_png = "res://resource/sprite/bullet/normal/bullet0004.png"; public const string resource_sprite_bullet_normal_bullet0005_png = "res://resource/sprite/bullet/normal/bullet0005.png"; public const string resource_sprite_bullet_normal_bullet0006_png = "res://resource/sprite/bullet/normal/bullet0006.png"; + public const string resource_sprite_bullet_normal_bullet0007_png = "res://resource/sprite/bullet/normal/bullet0007.png"; public const string resource_sprite_bullet_normal_bullet2_png = "res://resource/sprite/bullet/normal/bullet2.png"; public const string resource_sprite_common_Circle_png = "res://resource/sprite/common/Circle.png"; public const string resource_sprite_common_Circle2_png = "res://resource/sprite/common/Circle2.png"; @@ -468,6 +471,7 @@ public const string resource_sprite_weapon_weapon0013_weapon0013_png = "res://resource/sprite/weapon/weapon0013/weapon0013.png"; public const string resource_sprite_weapon_weapon0013_weapon0014export_png = "res://resource/sprite/weapon/weapon0013/weapon0014-export.png"; public const string resource_sprite_weapon_weapon0013_weapon0014_png = "res://resource/sprite/weapon/weapon0013/weapon0014.png"; + public const string resource_sprite_weapon_weapon0014_Weapon0014_png = "res://resource/sprite/weapon/weapon0014/Weapon0014.png"; public const string resource_sprite_weapon_weapon0015_gun3_png = "res://resource/sprite/weapon/weapon0015/gun3.png"; public const string resource_sprite_weapon_weapon0016_gun4_png = "res://resource/sprite/weapon/weapon0016/gun4.png"; public const string resource_sprite_weapon_weapon0017_gun5_png = "res://resource/sprite/weapon/weapon0017/gun5.png"; @@ -480,6 +484,7 @@ public const string resource_spriteFrames_bullet_Bullet0004_tres = "res://resource/spriteFrames/bullet/Bullet0004.tres"; public const string resource_spriteFrames_bullet_Bullet0005_tres = "res://resource/spriteFrames/bullet/Bullet0005.tres"; public const string resource_spriteFrames_bullet_Bullet0006_tres = "res://resource/spriteFrames/bullet/Bullet0006.tres"; + public const string resource_spriteFrames_bullet_Bullet0007_tres = "res://resource/spriteFrames/bullet/Bullet0007.tres"; public const string resource_spriteFrames_bullet_Collision0001_tres = "res://resource/spriteFrames/bullet/Collision0001.tres"; public const string resource_spriteFrames_bullet_Collision0002_tres = "res://resource/spriteFrames/bullet/Collision0002.tres"; public const string resource_spriteFrames_other_RoomDoor_E_Down_tres = "res://resource/spriteFrames/other/RoomDoor_E_Down.tres"; @@ -524,6 +529,7 @@ public const string resource_spriteFrames_weapon_Weapon0009_tres = "res://resource/spriteFrames/weapon/Weapon0009.tres"; public const string resource_spriteFrames_weapon_Weapon0010_tres = "res://resource/spriteFrames/weapon/Weapon0010.tres"; public const string resource_spriteFrames_weapon_Weapon0013_tres = "res://resource/spriteFrames/weapon/Weapon0013.tres"; + public const string resource_spriteFrames_weapon_Weapon0014_tres = "res://resource/spriteFrames/weapon/Weapon0014.tres"; public const string resource_theme_mainTheme_tres = "res://resource/theme/mainTheme.tres"; public const string resource_theme_theme1_tres = "res://resource/theme/theme1.tres"; public const string scene_Main_tscn = "res://scene/Main.tscn";