1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat(角色): 添加KukeMC的重型水晶攻击和环形着色器

refactor(武器): 将攻击类型从VALUE改为INTEGER
调整大激光武器的能量消耗为200

style(界面): 更新武器卡牌文本显示为整数
移除调试标记和多余属性

fix(角色): 调整KukeChild的移动速度
移除KukeMC的射击偏移常量
This commit is contained in:
2025-09-17 22:25:27 +08:00
parent 0736230aed
commit 19d87cae18
8 changed files with 34 additions and 13 deletions
+2 -1
View File
@@ -28,6 +28,7 @@ offset_right = 350.0
offset_bottom = 304.0
theme_override_styles/panel = SubResource("StyleBoxFlat_n2ewr")
script = ExtResource("1_g802t")
debugRebuild = true
metadata/_edit_lock_ = true
[node name="sounds" type="Node2D" parent="."]
@@ -111,7 +112,7 @@ displayName = "未命名饲料"
unique_name_in_owner = true
layout_mode = 2
bbcode_enabled = true
text = "[center]造成[color=cyan]10.00[/color]点伤害。[/center]"
text = "[center]造成[color=cyan]10[/color]点伤害。[/center]"
fit_content = true
[node name="costs" type="GridContainer" parent="container"]
@@ -0,0 +1,16 @@
[gd_scene load_steps=5 format=3 uid="uid://dxd6ikymj0fge"]
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_mf7ha"]
[ext_resource type="Script" path="res://scripts/Statemachine/ShaderStage.gd" id="2_75div"]
[ext_resource type="Shader" path="res://shaders/Ring.gdshader" id="2_utujj"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_1i43q"]
shader = ExtResource("2_utujj")
shader_parameter/inner = 0.5
shader_parameter/outer = 0.75
[node name="BulletBase" instance=ExtResource("1_mf7ha")]
[node name="track" type="Node2D" parent="texture" index="1"]
material = SubResource("ShaderMaterial_1i43q")
script = ExtResource("2_75div")
+2 -6
View File
@@ -20,9 +20,8 @@ storeType = {
"time": 0.0
}
descriptionTemplate = "每$time秒造成$atk点伤害。"
needEnergy = 100.0
needEnergy = 200.0
cooldown = 6000.0
debugRebuild = true
[node name="attack" parent="sounds" index="0"]
stream = ExtResource("4_cb5nh")
@@ -31,10 +30,7 @@ stream = ExtResource("4_cb5nh")
texture = ExtResource("2_qe8gb")
[node name="energy" parent="container/info/infos/energyInfo" index="1"]
text = "100.0"
[node name="beachball" parent="container/info/infos/beachballInfo" index="1"]
text = "500"
text = "200.0"
[node name="name" parent="container/info" index="2"]
displayName = "湮灭激光"
+1 -2
View File
@@ -4,8 +4,7 @@ var masterMine: KukeMC
func register():
fields[FieldStore.Entity.MAX_HEALTH] = 25
fields[FieldStore.Entity.OFFSET_SHOOT] = 5
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.25
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.35
attackCooldownMap[0] = 50
func ai():
PresetEntityAI.follow(self, currentFocusedBoss, 700)
+3 -2
View File
@@ -3,7 +3,6 @@ class_name KukeMC
func register():
fields[FieldStore.Entity.MAX_HEALTH] = 2500
fields[FieldStore.Entity.OFFSET_SHOOT] = 25
fields[FieldStore.Entity.MOVEMENT_SPEED] = 0.5
attackCooldownMap[0] = 2000
attackCooldownMap[1] = 5000
@@ -30,6 +29,7 @@ func ai():
func attack(type):
if type == 0:
for i in randi_range(8, 16):
fields[FieldStore.Entity.OFFSET_SHOOT] = 25
BulletBase.generate(preload("res://components/Bullets/PurpleCrystal.tscn"), self, findWeaponAnchor("normal"), position.angle_to_point(currentFocusedBoss.position))
await TickTool.millseconds(randi_range(10, 50))
elif type == 1:
@@ -38,9 +38,10 @@ func attack(type):
child.currentFocusedBoss = currentFocusedBoss
child.masterMine = self
elif type == 2:
var count = randi_range(50, 60)
var count = randi_range(60, 80)
for i in count:
var count1 = 3
for j in count1:
fields[FieldStore.Entity.OFFSET_SHOOT] = 0
BulletBase.generate(preload("res://components/Bullets/PurpleCrystal.tscn"), self, findWeaponAnchor("normal"), 360.0 / count * i + 360.0 / count1 * j)
await TickTool.millseconds(50)
+1 -1
View File
@@ -17,7 +17,7 @@ static var WAVE_NORMAL = [
]
static var WAVE_TESTBOSS = [
# Wave.create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 0, INF, 10),
Wave.create(preload("res://components/Characters/KukeMC.tscn"), 0, 0, true, 1, INF, 10),
Wave.create(preload("res://components/Characters/KukeMC.tscn"), 0, 0, true, 0, INF, 10),
# Wave.create(preload("res://components/Characters/Bear.tscn"), 0, 0, true, 2, INF, 10),
]
static var data = WAVE_TESTBOSS
+1 -1
View File
@@ -11,7 +11,7 @@ class_name Weapon
"atk": 10
}
@export var storeType: Dictionary = {
"atk": FieldStore.DataType.VALUE
"atk": FieldStore.DataType.INTEGER
}
@export var descriptionTemplate: String = "造成$atk点伤害。"
@export var needEnergy: float = 0
+8
View File
@@ -0,0 +1,8 @@
shader_type canvas_item;
uniform float inner:hint_range(0.0, 1.0, 0.01)=0.5;
uniform float outer:hint_range(0.0, 1.0, 0.01)=0.75;
void fragment() {
vec2 center=vec2(0.5);
float dist=distance(UV,center)*2.0;
COLOR.a=float(inner<dist&&dist<outer);
}