diff --git a/components/Characters/HCN.tscn b/components/Characters/HCN.tscn index 2caca8f..851c152 100644 --- a/components/Characters/HCN.tscn +++ b/components/Characters/HCN.tscn @@ -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")] diff --git a/scripts/Contents/Weapons/BigLaser.gd b/scripts/Contents/Weapons/BigLaser.gd index 7421485..b6a06f9 100644 --- a/scripts/Contents/Weapons/BigLaser.gd +++ b/scripts/Contents/Weapons/BigLaser.gd @@ -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 diff --git a/scripts/Statemachine/BulletBase.gd b/scripts/Statemachine/BulletBase.gd index f437b88..fcfe966 100644 --- a/scripts/Statemachine/BulletBase.gd +++ b/scripts/Statemachine/BulletBase.gd @@ -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): diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index 57b03da..5ce5655 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -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")