mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
refactor(武器系统): 优化Oxygener武器逻辑并更新描述
重构Oxygener武器的攻击逻辑,将浓硝酸子弹作为火焰子弹的附属效果 更新武器描述文本以匹配新的攻击机制 修改AcidBulletBase中storm变量的类型为更通用的Node2D 移除Rooster角色中不再使用的武器
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
[gd_scene load_steps=21 format=3 uid="uid://dky8574uqc18r"]
|
||||
[gd_scene load_steps=20 format=3 uid="uid://dky8574uqc18r"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cvogxi7mktumf" path="res://components/Abstracts/EntityBase.tscn" id="1_e5pl8"]
|
||||
[ext_resource type="Script" uid="uid://cthtupc6dtbav" path="res://scripts/Contents/Characters/Rooster.gd" id="2_oqdqd"]
|
||||
[ext_resource type="PackedScene" uid="uid://dgxvgsipl0gr1" path="res://components/Weapons/CursorKnife.tscn" id="3_0omr3"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0n3igy4hucrg" path="res://components/Weapons/PurpleCrystal.tscn" id="4_0omr3"]
|
||||
[ext_resource type="PackedScene" uid="uid://u0djqwuuysp8" path="res://components/Weapons/Volcano.tscn" id="3_da2ca"]
|
||||
[ext_resource type="AudioStream" uid="uid://cdrevrq7n6yqa" path="res://resources/sounds/effect/Boing.mp3" id="4_66s6c"]
|
||||
[ext_resource type="AudioStream" uid="uid://benyec5bqni0b" path="res://resources/sounds/effect/Chomp.wav" id="4_k0yme"]
|
||||
[ext_resource type="AudioStream" uid="uid://dmxh3bpk8vyy5" path="res://resources/sounds/effect/Coin.mp3" id="5_xnbhq"]
|
||||
@@ -102,11 +101,7 @@ process_material = SubResource("ParticleProcessMaterial_joj4g")
|
||||
[node name="weaponStore" parent="." index="2"]
|
||||
process_mode = 4
|
||||
|
||||
[node name="CursorKnife" parent="weaponStore" index="0" instance=ExtResource("3_0omr3")]
|
||||
offset_bottom = 350.0
|
||||
|
||||
[node name="PurpleCrystal" parent="weaponStore" index="1" instance=ExtResource("4_0omr3")]
|
||||
debugRebuild = false
|
||||
[node name="Volcano" parent="weaponStore" index="0" instance=ExtResource("3_da2ca")]
|
||||
|
||||
[node name="sprint" parent="sounds" index="0"]
|
||||
stream = ExtResource("4_66s6c")
|
||||
|
||||
@@ -22,7 +22,7 @@ storeType = {
|
||||
"max-n": 1,
|
||||
"min-n": 1
|
||||
}
|
||||
descriptionTemplate = "大概率高速喷出火焰,造成$fireatk点伤害。小概率喷出$min-n~$max-n滴[b]浓硝酸[/b],每滴造成$atk点伤害。[b]火焰[/b]具有高额击退效果,[b]浓硝酸[/b]液滴的射程较短。"
|
||||
descriptionTemplate = "高速喷出[b]火焰[/b],造成$fireatk点伤害。小概率喷出[b]硝化火[/b],召唤$min-n~$max-n滴[b]浓硝酸[/b]围绕在火焰旁,每滴造成$atk点伤害。[b]火焰[/b]具有高额击退效果,[b]浓硝酸[/b]液滴的射程较短。"
|
||||
cooldown = 50.0
|
||||
debugRebuild = true
|
||||
|
||||
@@ -35,4 +35,4 @@ quality = 0
|
||||
typeTopic = 2
|
||||
|
||||
[node name="description" parent="container" index="2"]
|
||||
text = "[center]大概率高速喷出火焰,造成[color=cyan]1.00[/color]点伤害。小概率喷出[color=cyan]3[/color]~[color=cyan]7[/color]滴[b]浓硝酸[/b],每滴造成[color=cyan]3.00[/color]点伤害。[b]火焰[/b]具有高额击退效果,[b]浓硝酸[/b]液滴的射程较短。[/center]"
|
||||
text = "[center]高速喷出[b]火焰[/b],造成[color=cyan]1.00[/color]点伤害。小概率喷出[b]硝化火[/b],召唤[color=cyan]3[/color]~[color=cyan]7[/color]滴[b]浓硝酸[/b]围绕在火焰旁,每滴造成[color=cyan]3.00[/color]点伤害。[b]火焰[/b]具有高额击退效果,[b]浓硝酸[/b]液滴的射程较短。[/center]"
|
||||
|
||||
@@ -12,7 +12,7 @@ var arg2 = 0
|
||||
var arg3 = 0
|
||||
|
||||
var randomPercent: float = 0
|
||||
var storm: AcidStormBullet = null
|
||||
var storm: Node2D = null
|
||||
|
||||
func register():
|
||||
scale.y *= MathTool.randomChoiceFrom([-1, 1])
|
||||
|
||||
@@ -7,17 +7,23 @@ func update(to: int, origin: Dictionary, _entity: EntityBase):
|
||||
origin["max-n"] += 2 * soulLevel
|
||||
return origin
|
||||
func attack(entity: EntityBase):
|
||||
var bulletName = MathTool.randomChoiceFromWeights(["OxygenFire", "AcidN"], [10, 1])
|
||||
for i in randi_range(readStore("min-n"), readStore("max-n")) if bulletName == "AcidN" else 1:
|
||||
for bullet in BulletBase.generate(
|
||||
ComponentManager.getBullet(bulletName),
|
||||
entity,
|
||||
entity.findWeaponAnchor("normal"),
|
||||
entity.position.angle_to_point(get_global_mouse_position()),
|
||||
):
|
||||
if bullet is OxygenFire:
|
||||
bullet.baseDamage = readStore("fireatk")
|
||||
elif bullet is AcidN:
|
||||
bullet.baseDamage = readStore("atk")
|
||||
bullet.lifeTime *= 0.5
|
||||
for bullet in BulletBase.generate(
|
||||
ComponentManager.getBullet("OxygenFire"),
|
||||
entity,
|
||||
entity.findWeaponAnchor("normal"),
|
||||
entity.position.angle_to_point(get_global_mouse_position()),
|
||||
):
|
||||
if bullet is OxygenFire:
|
||||
bullet.baseDamage = readStore("fireatk")
|
||||
if MathTool.rate(0.1):
|
||||
for i in randi_range(readStore("min-n"), readStore("max-n")):
|
||||
for n in BulletBase.generate(
|
||||
ComponentManager.getBullet("AcidN"),
|
||||
entity,
|
||||
bullet.position,
|
||||
0,
|
||||
):
|
||||
if n is AcidN:
|
||||
n.baseDamage = readStore("atk")
|
||||
n.storm = bullet
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user