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"):