mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(子弹): 添加白色灵魂子弹并调整相关配置
添加新的WhiteSoul子弹类型,继承自BulletBase 调整SevenSoul子弹逻辑,使其能生成WhiteSoul子弹 修改Chick角色的攻击冷却时间和子弹数量 更新SevenSoul武器的伤害描述和音效音量 将默认测试波次改为Chick 移除Diamond子弹的自伤逻辑
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://gnenrlcspjuq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_k41ea"]
|
||||
[ext_resource type="Script" path="res://scripts/Contents/Bullets/WhiteSoul.gd" id="2_ld7n7"]
|
||||
[ext_resource type="Texture2D" uid="uid://wy10fc3bqppg" path="res://resources/bullets/seven-soul/soul.png" id="2_mqva0"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_3yyb4"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("2_mqva0")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_r03vp"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_bd63g"]
|
||||
curve = SubResource("Curve_r03vp")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_rtb8e"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.75), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_7ga5a"]
|
||||
curve = SubResource("Curve_rtb8e")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_u4kq5"]
|
||||
particle_flag_disable_z = true
|
||||
direction = Vector3(0, -1, 0)
|
||||
spread = 0.0
|
||||
initial_velocity_min = 150.0
|
||||
initial_velocity_max = 150.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.8
|
||||
scale_max = 0.8
|
||||
scale_curve = SubResource("CurveTexture_7ga5a")
|
||||
alpha_curve = SubResource("CurveTexture_bd63g")
|
||||
|
||||
[node name="WhiteSoul" instance=ExtResource("1_k41ea")]
|
||||
texture_filter = 1
|
||||
script = ExtResource("2_ld7n7")
|
||||
speed = 1.0
|
||||
|
||||
[node name="texture" parent="." index="0"]
|
||||
rotation = -1.5708
|
||||
sprite_frames = SubResource("SpriteFrames_3yyb4")
|
||||
|
||||
[node name="trail" type="GPUParticles2D" parent="texture" index="1"]
|
||||
amount = 10
|
||||
process_material = SubResource("ParticleProcessMaterial_u4kq5")
|
||||
texture = ExtResource("2_mqva0")
|
||||
local_coords = true
|
||||
@@ -18,6 +18,7 @@ cooldown = 2000.0
|
||||
|
||||
[node name="attack" parent="sounds" index="0"]
|
||||
stream = ExtResource("4_tmgox")
|
||||
volume_db = 20.0
|
||||
|
||||
[node name="avatar" parent="container/info" index="0"]
|
||||
texture = ExtResource("4_a4r2b")
|
||||
@@ -27,4 +28,4 @@ displayName = "人类灵魂"
|
||||
typeTopic = 3
|
||||
|
||||
[node name="description" parent="container" index="2"]
|
||||
text = "[center]召唤7条人类灵魂,每条以10Hz的频率造成[color=cyan]2[/color]→[color=yellow]3[/color]点伤害。[/center]"
|
||||
text = "[center]召唤7条人类灵魂,每条以10Hz的频率造成[color=cyan]1[/color]→[color=yellow]2[/color]点伤害。[/center]"
|
||||
|
||||
@@ -6,7 +6,6 @@ const traceTime = 1500
|
||||
func register():
|
||||
damage = 2
|
||||
func ai():
|
||||
canDamageSelf = !(timeLived() >= traceTime)
|
||||
PresetBulletAI.forward(self, rotation)
|
||||
if timeLived() < traceTime:
|
||||
PresetBulletAI.trace(self, launcher.currentFocusedBoss.getTrackingAnchor(), 0.05)
|
||||
|
||||
@@ -9,6 +9,7 @@ var colors = [
|
||||
"#FDEB0F"
|
||||
]
|
||||
var index = 0
|
||||
var spawnedChild = false
|
||||
|
||||
@onready var heart = $"%heart"
|
||||
@onready var effect: GPUParticles2D = $"%effect"
|
||||
@@ -16,12 +17,16 @@ var index = 0
|
||||
func spawn():
|
||||
modulate = Color(colors[index % colors.size()])
|
||||
effect.emitting = true
|
||||
|
||||
func ai():
|
||||
rotation_degrees = 360.0 / colors.size() * index + timeLived() / 20000.0 * 360 - index / 6.0 * 360.0
|
||||
heart.global_rotation_degrees = 0
|
||||
PresetBulletAI.lockLauncher(self, launcher, true)
|
||||
func applyDot():
|
||||
if timeLived() > 20000 * ((6.0 - index) / 6.0):
|
||||
if !spawnedChild:
|
||||
BulletBase.generate(ComponentManager.getBullet("WhiteSoul"), launcher, heart.global_position, rotation)
|
||||
spawnedChild = true
|
||||
BulletBase.generate(ComponentManager.getBullet("SoulBall"), launcher, heart.global_position, heart.global_position.angle_to_point(get_global_mouse_position()))
|
||||
await TickTool.millseconds(100)
|
||||
return true
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
extends BulletBase
|
||||
|
||||
func register():
|
||||
speed = 1
|
||||
func ai():
|
||||
speed *= 1.1
|
||||
damage = speed
|
||||
PresetBulletAI.forward(self, rotation)
|
||||
@@ -6,7 +6,7 @@ class_name Chick
|
||||
func register():
|
||||
fields[FieldStore.Entity.MAX_HEALTH] = 1000
|
||||
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.4
|
||||
attackCooldownMap[0] = 200
|
||||
attackCooldownMap[0] = 400
|
||||
attackCooldownMap[1] = 12000
|
||||
attackCooldownMap[2] = 2000
|
||||
attackCooldownMap[3] = 3000
|
||||
@@ -25,7 +25,7 @@ func ai():
|
||||
func attack(type):
|
||||
if type == 0:
|
||||
var weaponPos = findWeaponAnchor("normal")
|
||||
for i in randi_range(10, 20):
|
||||
for i in randi_range(7, 16):
|
||||
BulletBase.generate(ComponentManager.getBullet("Diamond"), self, weaponPos + MathTool.randv2_range(20), rotation + deg_to_rad(randf_range(-90, 90)))
|
||||
elif type == 1:
|
||||
var laserCount = randi_range(2, 4)
|
||||
|
||||
@@ -30,7 +30,7 @@ static var WAVE_TESTBOSS_CHICK = [
|
||||
Wave.create("Chick", 0, 0, true, 0, INF, 10),
|
||||
]
|
||||
static var WAVE_EMPTY = []
|
||||
static var data = WAVE_TESTBOSS_BEAR
|
||||
static var data = WAVE_TESTBOSS_CHICK
|
||||
|
||||
static func customStart():
|
||||
if false:
|
||||
|
||||
Reference in New Issue
Block a user