diff --git a/components/Characters/Rooster.tscn b/components/Characters/Rooster.tscn index 33e4583..e43148d 100644 --- a/components/Characters/Rooster.tscn +++ b/components/Characters/Rooster.tscn @@ -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") diff --git a/components/Weapons/Oxygener.tscn b/components/Weapons/Oxygener.tscn index ea9539e..bc40a5f 100644 --- a/components/Weapons/Oxygener.tscn +++ b/components/Weapons/Oxygener.tscn @@ -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]" diff --git a/scripts/Contents/Bullets/AcidBulletBase.gd b/scripts/Contents/Bullets/AcidBulletBase.gd index 10a0b8b..1857bbb 100644 --- a/scripts/Contents/Bullets/AcidBulletBase.gd +++ b/scripts/Contents/Bullets/AcidBulletBase.gd @@ -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]) diff --git a/scripts/Contents/Weapons/Oxygener.gd b/scripts/Contents/Weapons/Oxygener.gd index 2e88e25..dd48217 100644 --- a/scripts/Contents/Weapons/Oxygener.gd +++ b/scripts/Contents/Weapons/Oxygener.gd @@ -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