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:
@@ -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")]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user