1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-27 22:41:56 +08:00

feat(武器): 为HCN角色添加BigLaser武器并调整伤害计算

- 在HCN角色中新增BigLaser武器
- 修改BigLaser的executeAtk为固定值1
- 调整bulletHit和calculateDamage方法,添加entity参数
This commit is contained in:
2026-05-10 15:00:10 +08:00
parent f7861a26c4
commit dfb5f8c926
4 changed files with 8 additions and 4 deletions
+3
View File
@@ -3,9 +3,12 @@
[ext_resource type="PackedScene" uid="uid://bs863g2s8r770" path="res://components/Abstracts/PlayerBase.tscn" id="1_eeneu"]
[ext_resource type="Script" uid="uid://bevc4f6apql4t" path="res://scripts/Contents/Characters/HCN.gd" id="2_f7uj3"]
[ext_resource type="PackedScene" uid="uid://yq7vmijwvgx1" path="res://components/Weapons/AcidWind.tscn" id="3_2fpmn"]
[ext_resource type="PackedScene" uid="uid://cxabqjo7skxev" path="res://components/Weapons/BigLaser.tscn" id="4_4gd8a"]
[node name="HCN" unique_id=1711205167 instance=ExtResource("1_eeneu")]
script = ExtResource("2_f7uj3")
displayName = "氰化氢"
[node name="AcidWind" parent="weaponStore" parent_id_path=PackedInt32Array(1319091445) index="0" unique_id=1599717188 instance=ExtResource("3_2fpmn")]
[node name="BigLaser" parent="weaponStore" parent_id_path=PackedInt32Array(1319091445) index="1" unique_id=906291376 instance=ExtResource("4_4gd8a")]
+2 -1
View File
@@ -57,7 +57,8 @@ func attack(entity: EntityBase):
var bigLaser: BigLaser = bullet
bigLaser.dotTime = readStore("time") * 1000
bigLaser.baseDamage = readStore("atk")
bigLaser.executeAtk = readStoreExtra("executeAtk")
# bigLaser.executeAtk = readStoreExtra("executeAtk")
bigLaser.executeAtk = 1
await TickTool.frame()
bigLaser.animator.speed_scale = 5 / (5 + readStoreExtra("duration"))
return true
+2 -2
View File
@@ -141,10 +141,10 @@ func setupCuttable(cutSpeed: float):
)
func getDamage():
return baseDamage * damageMultipliers[usingDamageMultiplier]
func calculateDamage(crit: bool, entity: Variant):
func calculateDamage(crit: bool, something: Variant):
var baseDmg = getDamage() * launcher.fields.get(FieldStore.Entity.DAMAGE_MULTIPILER) * randf_range(1 - GameRule.damageOffset, 1 + GameRule.damageOffset)
var damage = baseDmg + baseDmg * int(crit) * launcher.fields.get(FieldStore.Entity.CRIT_DAMAGE)
return damageOverride(damage, entity)
return damageOverride(damage, something)
func determineCrit():
return MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE])
func hitEntity(target: Node):
+1 -1
View File
@@ -285,7 +285,7 @@ func takeDamage(baseDamage: float, crit: bool = false, perfectMiss: bool = false
func bulletHit(bullet: BulletBase, crit: bool, damageOverride = "none"):
# 当受伤时
hurtAnimator.play("hurt")
var damage = bullet.calculateDamage(crit) if damageOverride == "none" else damageOverride
var damage = bullet.calculateDamage(crit, self ) if damageOverride == "none" else damageOverride
var perfectMiss = false
if sprinting:
playSound("miss")