mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +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="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="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://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")]
|
[node name="HCN" unique_id=1711205167 instance=ExtResource("1_eeneu")]
|
||||||
script = ExtResource("2_f7uj3")
|
script = ExtResource("2_f7uj3")
|
||||||
displayName = "氰化氢"
|
displayName = "氰化氢"
|
||||||
|
|
||||||
[node name="AcidWind" parent="weaponStore" parent_id_path=PackedInt32Array(1319091445) index="0" unique_id=1599717188 instance=ExtResource("3_2fpmn")]
|
[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
|
var bigLaser: BigLaser = bullet
|
||||||
bigLaser.dotTime = readStore("time") * 1000
|
bigLaser.dotTime = readStore("time") * 1000
|
||||||
bigLaser.baseDamage = readStore("atk")
|
bigLaser.baseDamage = readStore("atk")
|
||||||
bigLaser.executeAtk = readStoreExtra("executeAtk")
|
# bigLaser.executeAtk = readStoreExtra("executeAtk")
|
||||||
|
bigLaser.executeAtk = 1
|
||||||
await TickTool.frame()
|
await TickTool.frame()
|
||||||
bigLaser.animator.speed_scale = 5 / (5 + readStoreExtra("duration"))
|
bigLaser.animator.speed_scale = 5 / (5 + readStoreExtra("duration"))
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -141,10 +141,10 @@ func setupCuttable(cutSpeed: float):
|
|||||||
)
|
)
|
||||||
func getDamage():
|
func getDamage():
|
||||||
return baseDamage * damageMultipliers[usingDamageMultiplier]
|
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 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)
|
var damage = baseDmg + baseDmg * int(crit) * launcher.fields.get(FieldStore.Entity.CRIT_DAMAGE)
|
||||||
return damageOverride(damage, entity)
|
return damageOverride(damage, something)
|
||||||
func determineCrit():
|
func determineCrit():
|
||||||
return MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE])
|
return MathTool.rate(launcher.fields.get(FieldStore.Entity.CRIT_RATE) + GameRule.critRateInfluenceByLuckValue * launcher.fields[FieldStore.Entity.LUCK_VALUE])
|
||||||
func hitEntity(target: Node):
|
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"):
|
func bulletHit(bullet: BulletBase, crit: bool, damageOverride = "none"):
|
||||||
# 当受伤时
|
# 当受伤时
|
||||||
hurtAnimator.play("hurt")
|
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
|
var perfectMiss = false
|
||||||
if sprinting:
|
if sprinting:
|
||||||
playSound("miss")
|
playSound("miss")
|
||||||
|
|||||||
Reference in New Issue
Block a user