mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-29 23:12:28 +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"]
|
[node name="attack" parent="sounds" index="0"]
|
||||||
stream = ExtResource("4_tmgox")
|
stream = ExtResource("4_tmgox")
|
||||||
|
volume_db = 20.0
|
||||||
|
|
||||||
[node name="avatar" parent="container/info" index="0"]
|
[node name="avatar" parent="container/info" index="0"]
|
||||||
texture = ExtResource("4_a4r2b")
|
texture = ExtResource("4_a4r2b")
|
||||||
@@ -27,4 +28,4 @@ displayName = "人类灵魂"
|
|||||||
typeTopic = 3
|
typeTopic = 3
|
||||||
|
|
||||||
[node name="description" parent="container" index="2"]
|
[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():
|
func register():
|
||||||
damage = 2
|
damage = 2
|
||||||
func ai():
|
func ai():
|
||||||
canDamageSelf = !(timeLived() >= traceTime)
|
|
||||||
PresetBulletAI.forward(self, rotation)
|
PresetBulletAI.forward(self, rotation)
|
||||||
if timeLived() < traceTime:
|
if timeLived() < traceTime:
|
||||||
PresetBulletAI.trace(self, launcher.currentFocusedBoss.getTrackingAnchor(), 0.05)
|
PresetBulletAI.trace(self, launcher.currentFocusedBoss.getTrackingAnchor(), 0.05)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ var colors = [
|
|||||||
"#FDEB0F"
|
"#FDEB0F"
|
||||||
]
|
]
|
||||||
var index = 0
|
var index = 0
|
||||||
|
var spawnedChild = false
|
||||||
|
|
||||||
@onready var heart = $"%heart"
|
@onready var heart = $"%heart"
|
||||||
@onready var effect: GPUParticles2D = $"%effect"
|
@onready var effect: GPUParticles2D = $"%effect"
|
||||||
@@ -16,12 +17,16 @@ var index = 0
|
|||||||
func spawn():
|
func spawn():
|
||||||
modulate = Color(colors[index % colors.size()])
|
modulate = Color(colors[index % colors.size()])
|
||||||
effect.emitting = true
|
effect.emitting = true
|
||||||
|
|
||||||
func ai():
|
func ai():
|
||||||
rotation_degrees = 360.0 / colors.size() * index + timeLived() / 20000.0 * 360 - index / 6.0 * 360.0
|
rotation_degrees = 360.0 / colors.size() * index + timeLived() / 20000.0 * 360 - index / 6.0 * 360.0
|
||||||
heart.global_rotation_degrees = 0
|
heart.global_rotation_degrees = 0
|
||||||
PresetBulletAI.lockLauncher(self, launcher, true)
|
PresetBulletAI.lockLauncher(self, launcher, true)
|
||||||
func applyDot():
|
func applyDot():
|
||||||
if timeLived() > 20000 * ((6.0 - index) / 6.0):
|
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()))
|
BulletBase.generate(ComponentManager.getBullet("SoulBall"), launcher, heart.global_position, heart.global_position.angle_to_point(get_global_mouse_position()))
|
||||||
await TickTool.millseconds(100)
|
await TickTool.millseconds(100)
|
||||||
return true
|
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():
|
func register():
|
||||||
fields[FieldStore.Entity.MAX_HEALTH] = 1000
|
fields[FieldStore.Entity.MAX_HEALTH] = 1000
|
||||||
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.4
|
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.4
|
||||||
attackCooldownMap[0] = 200
|
attackCooldownMap[0] = 400
|
||||||
attackCooldownMap[1] = 12000
|
attackCooldownMap[1] = 12000
|
||||||
attackCooldownMap[2] = 2000
|
attackCooldownMap[2] = 2000
|
||||||
attackCooldownMap[3] = 3000
|
attackCooldownMap[3] = 3000
|
||||||
@@ -25,7 +25,7 @@ func ai():
|
|||||||
func attack(type):
|
func attack(type):
|
||||||
if type == 0:
|
if type == 0:
|
||||||
var weaponPos = findWeaponAnchor("normal")
|
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)))
|
BulletBase.generate(ComponentManager.getBullet("Diamond"), self, weaponPos + MathTool.randv2_range(20), rotation + deg_to_rad(randf_range(-90, 90)))
|
||||||
elif type == 1:
|
elif type == 1:
|
||||||
var laserCount = randi_range(2, 4)
|
var laserCount = randi_range(2, 4)
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ static var WAVE_TESTBOSS_CHICK = [
|
|||||||
Wave.create("Chick", 0, 0, true, 0, INF, 10),
|
Wave.create("Chick", 0, 0, true, 0, INF, 10),
|
||||||
]
|
]
|
||||||
static var WAVE_EMPTY = []
|
static var WAVE_EMPTY = []
|
||||||
static var data = WAVE_TESTBOSS_BEAR
|
static var data = WAVE_TESTBOSS_CHICK
|
||||||
|
|
||||||
static func customStart():
|
static func customStart():
|
||||||
if false:
|
if false:
|
||||||
|
|||||||
Reference in New Issue
Block a user