1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-10 13:47:12 +08:00

加了后坐力然后优化了能量显示的逻辑,司马trae

This commit is contained in:
2025-08-28 21:57:04 +08:00
parent 77e6711358
commit 9015d2b723
7 changed files with 11 additions and 15 deletions
+3
View File
@@ -3,3 +3,6 @@
[ext_resource type="PackedScene" uid="uid://8gjjfju6p3fh" path="res://components/Bullets/Common/LaserCommoner.tscn" id="1_ukbip"]
[node name="BigLaser" instance=ExtResource("1_ukbip")]
needEnergy = 100.0
knockback = 10.0
recoil = 4.0
+2 -11
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=3 uid="uid://8gjjfju6p3fh"]
[gd_scene load_steps=18 format=3 uid="uid://8gjjfju6p3fh"]
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_f67dy"]
[ext_resource type="Script" path="res://scripts/Contents/Bullets/BigLaser.gd" id="2_tdbxh"]
@@ -31,14 +31,8 @@ point_count = 2
[sub_resource type="CurveTexture" id="CurveTexture_nimkb"]
curve = SubResource("Curve_7w1gn")
[sub_resource type="Gradient" id="Gradient_ki7oc"]
colors = PackedColorArray(0.546875, 0.546875, 0.546875, 1, 1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_csn21"]
gradient = SubResource("Gradient_ki7oc")
[sub_resource type="Gradient" id="Gradient_krx08"]
offsets = PackedFloat32Array(0, 0.450382)
offsets = PackedFloat32Array(0, 0.553435)
colors = PackedColorArray(1, 1, 1, 1, 1, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_l66oc"]
@@ -58,7 +52,6 @@ gravity = Vector3(0, 0, 0)
scale_min = 3.0
scale_max = 15.0
color_ramp = SubResource("GradientTexture1D_l66oc")
color_initial_ramp = SubResource("GradientTexture1D_csn21")
alpha_curve = SubResource("CurveTexture_iykvy")
[sub_resource type="Animation" id="Animation_1rif1"]
@@ -218,10 +211,8 @@ fields = {
1: 25,
2: 1
}
needEnergy = 100.0
autoSpawnAnimation = true
freeAfterSpawn = true
knockback = 10.0
[node name="texture" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_yip5k")
+1 -1
View File
@@ -15,4 +15,4 @@ func applyDot():
await TickTool.millseconds(100 / launcher.fields[FieldStore.Entity.ATTACK_SPEED])
return true
func succeedToHit(_dmg: float):
fields[FieldStore.Bullet.DAMAGE] *= 1.05
fields[FieldStore.Bullet.DAMAGE] *= 1.03
+1 -1
View File
@@ -12,7 +12,7 @@ static var current: int = 0
static var data: Array[Wave] = [
# entity, minCount, maxCount, isBoss, from, to, per
create(preload("res://components/Characters/Hen.tscn"), 1, 5, false, 0, INF, 1),
create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 8, INF, 5),
create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 0, INF, 5),
]
static func create(
+2
View File
@@ -15,6 +15,7 @@ class_name BulletBase
@export var autoLoopAnimation: bool = false
@export var freeAfterSpawn: bool = false
@export var knockback: float = 0 # 击退力,物理引擎单位
@export var recoil: float = 0 # 后坐力,物理引擎单位
@onready var animator: AnimationPlayer = $"%animator"
@onready var hitbox: CollisionShape2D = $"%hitbox"
@@ -46,6 +47,7 @@ func _process(_delta: float) -> void:
destroy()
func _physics_process(_delta: float) -> void:
if is_instance_valid(launcher) and (launcher.isPlayer() or is_instance_valid(launcher.currentFocusedBoss)):
launcher.position -= Vector2.from_angle(rotation) * recoil
ai()
func hit(target: Node):
+1 -1
View File
@@ -83,7 +83,7 @@ func _ready():
currentFocusedBoss = get_tree().get_nodes_in_group("players")[0]
applyLevel()
health = fields.get(FieldStore.Entity.MAX_HEALTH)
energy = fields.get(FieldStore.Entity.MAX_ENERGY) * 0.5
energy = fields.get(FieldStore.Entity.MAX_ENERGY)
healthChanged.connect(
func(newHealth):
if is_instance_valid(statebar):
+1 -1
View File
@@ -26,7 +26,7 @@ func _process(_delta):
bossbar.visible = !!bossbar.entity
func _physics_process(_delta):
if is_instance_valid(player):
energyLabel.text = "%.2f" % player.energy
energyLabel.text = "%.2f" % clamp(player.energy, 0, player.fields.get(FieldStore.Entity.MAX_ENERGY))
energyMaxLabel.text = "%.1f" % player.fields.get(FieldStore.Entity.MAX_ENERGY)
for i in items.get_children():
var item = i as ItemShow