From 2b34a1d695b86434587636f011406f76be927793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sun, 14 Sep 2025 15:00:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=92=E8=89=B2):=20=E8=B0=83=E6=95=B4K?= =?UTF-8?q?ukeMC=E5=8F=8A=E5=85=B6=E5=AD=90=E4=BB=A3=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=92=8C=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整KukeMC的最大生命值和攻击冷却时间,新增生成子代功能 为KukeChild修改属性并改用新子弹PurpleCrystalSmall 移除PurpleCrystal中无用属性 --- components/Bullets/PurpleCrystal.tscn | 2 -- components/Bullets/PurpleCrystalSmall.tscn | 35 ++++++++++++++++++++++ scripts/Contents/Characters/KukeChild.gd | 16 +++++----- scripts/Contents/Characters/KukeMC.gd | 9 ++++-- 4 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 components/Bullets/PurpleCrystalSmall.tscn diff --git a/components/Bullets/PurpleCrystal.tscn b/components/Bullets/PurpleCrystal.tscn index bc1991c..b46dbc2 100644 --- a/components/Bullets/PurpleCrystal.tscn +++ b/components/Bullets/PurpleCrystal.tscn @@ -19,8 +19,6 @@ animations = [{ [node name="PurpleCrystal" instance=ExtResource("1_45mh7")] script = ExtResource("2_4lnlm") -displayName = "紫水晶" -lifeDistance = 700.0 [node name="texture" parent="." index="0"] sprite_frames = SubResource("SpriteFrames_r86b3") diff --git a/components/Bullets/PurpleCrystalSmall.tscn b/components/Bullets/PurpleCrystalSmall.tscn new file mode 100644 index 0000000..56d4f11 --- /dev/null +++ b/components/Bullets/PurpleCrystalSmall.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=6 format=3 uid="uid://c6wjncfsm2rxw"] + +[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_7tnrb"] +[ext_resource type="Script" path="res://scripts/Contents/Bullets/PurpleCrystal.gd" id="2_it0pa"] +[ext_resource type="Texture2D" uid="uid://c7hyatbuieaj" path="res://resources/bullets/purple-crystal/frames/0.svg" id="3_3f3gq"] + +[sub_resource type="SpriteFrames" id="SpriteFrames_r86b3"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3_3f3gq") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="CircleShape2D" id="CircleShape2D_gdnkp"] +radius = 2.23607 + +[node name="PurpleCrystalSmall" instance=ExtResource("1_7tnrb")] +modulate = Color(1.5, 1.5, 1.5, 1) +script = ExtResource("2_it0pa") +displayName = "微型紫水晶" +speed = 12.0 +damage = 1.0 +lifeDistance = 1400.0 + +[node name="texture" parent="." index="0"] +scale = Vector2(0.8, 0.8) +sprite_frames = SubResource("SpriteFrames_r86b3") + +[node name="hitbox" parent="." index="1"] +position = Vector2(-17, 0) +shape = SubResource("CircleShape2D_gdnkp") diff --git a/scripts/Contents/Characters/KukeChild.gd b/scripts/Contents/Characters/KukeChild.gd index 2fb3138..2b12b05 100644 --- a/scripts/Contents/Characters/KukeChild.gd +++ b/scripts/Contents/Characters/KukeChild.gd @@ -4,18 +4,16 @@ var masterMine: KukeMC func register(): fields[FieldStore.Entity.MAX_HEALTH] = 25 - fields[FieldStore.Entity.OFFSET_SHOOT] = 2 + fields[FieldStore.Entity.OFFSET_SHOOT] = 5 fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.25 - fields[FieldStore.Entity.DAMAGE_MULTIPILER] = 0.1 - attackCooldownMap[0] = 200 + attackCooldownMap[0] = 100 func ai(): - PresetEntityAI.follow(self, currentFocusedBoss, 500) + PresetEntityAI.follow(self, currentFocusedBoss, 700) tryAttack(0) - if timeLived() > 10000: - masterMine.tryHeal(100) + if timeLived() > 8000: + masterMine.tryHeal(200) tryDie(null) func attack(type): if type == 0: - for i in randi_range(1, 3): - BulletBase.generate(preload("res://components/Bullets/PurpleCrystal.tscn"), self, findWeaponAnchor("normal"), position.angle_to_point(currentFocusedBoss.position)) - await TickTool.millseconds(randi_range(5, 25)) + BulletBase.generate(preload("res://components/Bullets/PurpleCrystalSmall.tscn"), self, findWeaponAnchor("normal"), position.angle_to_point(currentFocusedBoss.position)) + await TickTool.millseconds(randi_range(5, 25)) diff --git a/scripts/Contents/Characters/KukeMC.gd b/scripts/Contents/Characters/KukeMC.gd index 9aa6dd0..49a6578 100644 --- a/scripts/Contents/Characters/KukeMC.gd +++ b/scripts/Contents/Characters/KukeMC.gd @@ -2,11 +2,16 @@ extends EntityBase class_name KukeMC func register(): - fields[FieldStore.Entity.MAX_HEALTH] = 3500 + fields[FieldStore.Entity.MAX_HEALTH] = 2500 fields[FieldStore.Entity.OFFSET_SHOOT] = 25 fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.5 attackCooldownMap[0] = 8000 - attackCooldownMap[1] = 5000 + attackCooldownMap[1] = 10000 +func spawn(): + for i in 5: + var child = EntityBase.generate(preload("res://components/Characters/KukeChild.tscn"), position + MathTool.randv2_range(500)) + child.currentFocusedBoss = currentFocusedBoss + child.masterMine = self func ai(): PresetEntityAI.follow(self, currentFocusedBoss, 500) for bullet in get_tree().get_nodes_in_group("bullets"):