mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(武器): 添加酸蚀风暴武器及五种酸液子弹
实现酸蚀风暴武器系统,包含五种不同类型的酸液子弹: 1. 硫酸:命中时溅射1~3滴酸液 2. 硝酸:造成额外伤害 3. 盐酸:降低敌人移动和攻击速度 4. 碳酸:可无限穿透并逐渐扩大 5. 磷酸:增加敌人散射角 同时调整武器数值平衡,更新VSCode配置中的Godot引擎路径
This commit is contained in:
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"godotTools.editorPath.godot4": "d:\\Program Files\\Godot\\godot43.exe"
|
"godotTools.editorPath.godot4": "d:\\Program Files\\godot\\godot45.exe"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://qx8h1dcbyy1j"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_hfsul"]
|
||||||
|
[ext_resource type="Script" uid="uid://wt1fn2vjtlen" path="res://scripts/Contents/Bullets/AcidBulletBase.gd" id="2_y4hkm"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b47ixncbxcs4u" path="res://resources/bullets/acids/template.png" id="3_rku1t"]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_3gf7s"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("3_rku1t")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[node name="AcidBulletBase" instance=ExtResource("1_hfsul")]
|
||||||
|
script = ExtResource("2_y4hkm")
|
||||||
|
acidType = 0
|
||||||
|
displayName = "酸液"
|
||||||
|
lifeTime = 2000.0
|
||||||
|
|
||||||
|
[node name="texture" parent="." index="0"]
|
||||||
|
sprite_frames = SubResource("SpriteFrames_3gf7s")
|
||||||
|
|
||||||
|
[node name="hitbox" parent="." index="1"]
|
||||||
|
visible = false
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://d1pjay8rhvwap"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://qx8h1dcbyy1j" path="res://components/Bullets/AcidBulletBase.tscn" id="1_l70ci"]
|
||||||
|
[ext_resource type="Script" uid="uid://8h8e35gwre27" path="res://scripts/Contents/Bullets/AcidC.gd" id="2_nxpf5"]
|
||||||
|
|
||||||
|
[node name="AcidC" instance=ExtResource("1_l70ci")]
|
||||||
|
script = ExtResource("2_nxpf5")
|
||||||
|
speed = 5.0
|
||||||
|
penerate = 1.0
|
||||||
|
lifeTime = 4000.0
|
||||||
|
|
||||||
|
[node name="texture" parent="." index="0"]
|
||||||
|
modulate = Color(1, 0.7075234, 0.6972954, 1)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://basg7o28xjlli"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://qx8h1dcbyy1j" path="res://components/Bullets/AcidBulletBase.tscn" id="1_cxued"]
|
||||||
|
[ext_resource type="Script" uid="uid://dp8e5samuurdn" path="res://scripts/Contents/Bullets/AcidCl.gd" id="2_2nyoy"]
|
||||||
|
|
||||||
|
[node name="AcidCl" instance=ExtResource("1_cxued")]
|
||||||
|
script = ExtResource("2_2nyoy")
|
||||||
|
|
||||||
|
[node name="texture" parent="." index="0"]
|
||||||
|
modulate = Color(0.95498145, 1, 0.5526121, 1)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cwfguraet2bsc"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://qx8h1dcbyy1j" path="res://components/Bullets/AcidBulletBase.tscn" id="1_6376o"]
|
||||||
|
[ext_resource type="Script" uid="uid://ccjdi34ney8kl" path="res://scripts/Contents/Bullets/AcidN.gd" id="2_87vas"]
|
||||||
|
|
||||||
|
[node name="AcidN" instance=ExtResource("1_6376o")]
|
||||||
|
script = ExtResource("2_87vas")
|
||||||
|
|
||||||
|
[node name="texture" parent="." index="0"]
|
||||||
|
modulate = Color(0.56576514, 1, 0.9533231, 1)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://do52uadx856ys"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://qx8h1dcbyy1j" path="res://components/Bullets/AcidBulletBase.tscn" id="1_y3as2"]
|
||||||
|
[ext_resource type="Script" uid="uid://bef6n4hwn1niu" path="res://scripts/Contents/Bullets/AcidP.gd" id="2_yx8yh"]
|
||||||
|
|
||||||
|
[node name="AcidP" instance=ExtResource("1_y3as2")]
|
||||||
|
script = ExtResource("2_yx8yh")
|
||||||
|
|
||||||
|
[node name="texture" parent="." index="0"]
|
||||||
|
modulate = Color(1, 0.59425545, 0, 1)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://dofhep8hma20k"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://qx8h1dcbyy1j" path="res://components/Bullets/AcidBulletBase.tscn" id="1_h2wny"]
|
||||||
|
[ext_resource type="Script" uid="uid://dm4hwimsk8tx2" path="res://scripts/Contents/Bullets/AcidS.gd" id="2_m04ix"]
|
||||||
|
|
||||||
|
[node name="AcidS" instance=ExtResource("1_h2wny")]
|
||||||
|
script = ExtResource("2_m04ix")
|
||||||
|
|
||||||
|
[node name="texture" parent="." index="0"]
|
||||||
|
modulate = Color(0.31764707, 1, 0, 1)
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cvogxi7mktumf" path="res://components/Abstracts/EntityBase.tscn" id="1_e5pl8"]
|
[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="Script" uid="uid://cthtupc6dtbav" path="res://scripts/Contents/Characters/Rooster.gd" id="2_oqdqd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dwsyn746hr25d" path="res://components/Weapons/MushroomPickaxe.tscn" id="3_da2ca"]
|
[ext_resource type="PackedScene" uid="uid://yq7vmijwvgx1" path="res://components/Weapons/AcidWind.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://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://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"]
|
[ext_resource type="AudioStream" uid="uid://dmxh3bpk8vyy5" path="res://resources/sounds/effect/Coin.mp3" id="5_xnbhq"]
|
||||||
@@ -58,7 +58,7 @@ metadata/_edit_vertical_guides_ = [71.0]
|
|||||||
[node name="weaponStore" parent="." index="1"]
|
[node name="weaponStore" parent="." index="1"]
|
||||||
process_mode = 4
|
process_mode = 4
|
||||||
|
|
||||||
[node name="MushroomPickaxe" parent="weaponStore" index="0" instance=ExtResource("3_da2ca")]
|
[node name="AcidWind" parent="weaponStore" index="0" instance=ExtResource("3_da2ca")]
|
||||||
debugRebuild = false
|
debugRebuild = false
|
||||||
|
|
||||||
[node name="sprint" parent="sounds" index="0"]
|
[node name="sprint" parent="sounds" index="0"]
|
||||||
|
|||||||
@@ -1,41 +1,43 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://yq7vmijwvgx1"]
|
[gd_scene load_steps=4 format=3 uid="uid://yq7vmijwvgx1"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ckq2cq6m23hq3" path="res://components/Abstracts/WeaponCardBase.tscn" id="1_pyyxv"]
|
[ext_resource type="PackedScene" uid="uid://ckq2cq6m23hq3" path="res://components/Abstracts/WeaponCardBase.tscn" id="1_pyyxv"]
|
||||||
|
[ext_resource type="Script" uid="uid://bxa5hc7aokisg" path="res://scripts/Contents/Weapons/AcidWind.gd" id="2_1j38u"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ckr8tw7fsa7qx" path="res://resources/weapons/AcidWind.png" id="2_pnd3r"]
|
[ext_resource type="Texture2D" uid="uid://ckr8tw7fsa7qx" path="res://resources/weapons/AcidWind.png" id="2_pnd3r"]
|
||||||
|
|
||||||
[node name="AcidWind" instance=ExtResource("1_pyyxv")]
|
[node name="AcidWind" instance=ExtResource("1_pyyxv")]
|
||||||
|
script = ExtResource("2_1j38u")
|
||||||
avatarTexture = ExtResource("2_pnd3r")
|
avatarTexture = ExtResource("2_pnd3r")
|
||||||
displayName = "酸蚀风暴"
|
displayName = "酸蚀风暴"
|
||||||
quality = 4
|
quality = 4
|
||||||
typeTopic = 3
|
typeTopic = 3
|
||||||
costBeachball = 200
|
costBeachball = 200
|
||||||
store = {
|
store = {
|
||||||
"atk": 5,
|
"atk": 0.5,
|
||||||
"c-atk": 1.0,
|
"c-atk": 1.0,
|
||||||
"cl-atkspeed": 0.02,
|
"cl-atkspeed": 0.001,
|
||||||
"cl-speed": 0.03,
|
"cl-speed": 0.001,
|
||||||
"n-atk": 5.0,
|
"n-atk": 1.0,
|
||||||
"p-offset": 2.0,
|
"p-offset": 0.1,
|
||||||
"s-count-max": 3.0,
|
"s-count-max": 3.0,
|
||||||
"weakatk": 1.0
|
"weakatk": 0.25
|
||||||
}
|
}
|
||||||
storeType = {
|
storeType = {
|
||||||
"atk": 1,
|
"atk": 0,
|
||||||
"c-atk": 1,
|
"c-atk": 1,
|
||||||
"cl-atkspeed": 2,
|
"cl-atkspeed": 2,
|
||||||
"cl-speed": 2,
|
"cl-speed": 2,
|
||||||
"n-atk": 1,
|
"n-atk": 1,
|
||||||
"p-offset": 3,
|
"p-offset": 3,
|
||||||
"s-count-max": 1,
|
"s-count-max": 1,
|
||||||
"weakatk": 1
|
"weakatk": 0
|
||||||
}
|
}
|
||||||
descriptionTemplate = "高速随机喷射以下五种[b]酸[/b]之一,强酸可造成$atk点伤害,弱酸造成$weakatk点伤害。
|
descriptionTemplate = "高速随机喷射以下五种[b]酸[/b]之一,强酸可造成$atk点伤害,弱酸造成$weakatk点伤害。
|
||||||
[color=green][b]硫酸[/b][/color]:命中时溅射1~$s-count-max滴[b]硫酸[/b]。
|
[color=green][b]硫酸[/b][/color]:命中时溅射1~$s-count-max滴[b]硫酸[/b]。
|
||||||
[color=lightblue][b]硝酸[/b][/color]:额外造成$n-atk点伤害。
|
[color=lightblue][b]硝酸[/b][/color]:额外造成$n-atk点伤害。
|
||||||
[color=lightyellow][b]盐酸[/b][/color]:使敌人 [i]移动速度[/i] 降低$cl-speed,[i]攻击速度[/i] 降低$cl-atkspeed。
|
[color=lightyellow][b]盐酸[/b][/color]:使敌人 [i]移动速度[/i] 降低$cl-speed,[i]攻击速度[/i] 降低$cl-atkspeed。
|
||||||
[color=pink][b]碳酸[/b][/color]:命中时挥发为气体向前扩散,敌人接触造成$c-atk点伤害,可无限穿透。
|
[color=pink][b]碳酸[/b][/color]:可无限穿透,碰撞体积会越来越大,但飞行速度稍慢且有额外散射。
|
||||||
[color=orange][b]磷酸[/b][/color]:使敌人 [i]散射角[/i] 增加$p-offset。"
|
[color=orange][b]磷酸[/b][/color]:使敌人 [i]散射角[/i] 增加$p-offset。"
|
||||||
cooldown = 10.0
|
cooldown = 0.0
|
||||||
debugRebuild = true
|
debugRebuild = true
|
||||||
|
|
||||||
[node name="avatar" parent="container/info" index="0"]
|
[node name="avatar" parent="container/info" index="0"]
|
||||||
@@ -50,9 +52,9 @@ quality = 4
|
|||||||
typeTopic = 3
|
typeTopic = 3
|
||||||
|
|
||||||
[node name="description" parent="container" index="2"]
|
[node name="description" parent="container" index="2"]
|
||||||
text = "[center]高速随机喷射以下五种[b]酸[/b]之一,强酸可造成[color=cyan]5[/color]点伤害,弱酸造成[color=cyan]1[/color]点伤害。
|
text = "[center]高速随机喷射以下五种[b]酸[/b]之一,强酸可造成[color=cyan]0.50[/color]点伤害,弱酸造成[color=cyan]0.25[/color]点伤害。
|
||||||
[color=green][b]硫酸[/b][/color]:命中时溅射1~[color=cyan]3[/color]滴[b]硫酸[/b]。
|
[color=green][b]硫酸[/b][/color]:命中时溅射1~[color=cyan]3[/color]滴[b]硫酸[/b]。
|
||||||
[color=lightblue][b]硝酸[/b][/color]:额外造成[color=cyan]5[/color]点伤害。
|
[color=lightblue][b]硝酸[/b][/color]:额外造成[color=cyan]1[/color]点伤害。
|
||||||
[color=lightyellow][b]盐酸[/b][/color]:使敌人 [i]移动速度[/i] 降低[color=cyan]3%[/color],[i]攻击速度[/i] 降低[color=cyan]2%[/color]。
|
[color=lightyellow][b]盐酸[/b][/color]:使敌人 [i]移动速度[/i] 降低[color=cyan]0.1%[/color],[i]攻击速度[/i] 降低[color=cyan]0.1%[/color]。
|
||||||
[color=pink][b]碳酸[/b][/color]:命中时挥发为气体向前扩散,敌人接触造成[color=cyan]1[/color]点伤害,可无限穿透。
|
[color=pink][b]碳酸[/b][/color]:可无限穿透,碰撞体积会越来越大,但飞行速度稍慢且有额外散射。
|
||||||
[color=orange][b]磷酸[/b][/color]:使敌人 [i]散射角[/i] 增加[color=cyan]2.0°[/color]。[/center]"
|
[color=orange][b]磷酸[/b][/color]:使敌人 [i]散射角[/i] 增加[color=cyan]0.1°[/color]。[/center]"
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://di00g0wvglc8f"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ckq2cq6m23hq3" path="res://components/Abstracts/WeaponCardBase.tscn" id="1_oxen4"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ckr8tw7fsa7qx" path="res://resources/weapons/AcidWind.png" id="2_nvjyi"]
|
|
||||||
|
|
||||||
[node name="AcidWind" instance=ExtResource("1_oxen4")]
|
|
||||||
avatarTexture = ExtResource("2_nvjyi")
|
|
||||||
displayName = "酸蚀风暴"
|
|
||||||
quality = 4
|
|
||||||
typeTopic = 3
|
|
||||||
costBeachball = 200
|
|
||||||
store = {
|
|
||||||
"atk": 5,
|
|
||||||
"c-atk": 1.0,
|
|
||||||
"cl-atkspeed": 0.02,
|
|
||||||
"cl-speed": 0.03,
|
|
||||||
"n-atk": 5.0,
|
|
||||||
"p-offset": 2.0,
|
|
||||||
"s-count-max": 3.0,
|
|
||||||
"weakatk": 1.0
|
|
||||||
}
|
|
||||||
storeType = {
|
|
||||||
"atk": 1,
|
|
||||||
"c-atk": 1,
|
|
||||||
"cl-atkspeed": 2,
|
|
||||||
"cl-speed": 2,
|
|
||||||
"n-atk": 1,
|
|
||||||
"p-offset": 3,
|
|
||||||
"s-count-max": 1,
|
|
||||||
"weakatk": 1
|
|
||||||
}
|
|
||||||
descriptionTemplate = "高速随机喷射以下五种[b]酸[/b]之一,强酸可造成$atk点伤害,弱酸造成$weakatk点伤害。
|
|
||||||
[color=green][b]硫酸[/b][/color]:命中时溅射1~$s-count-max滴[b]硫酸[/b]。
|
|
||||||
[color=lightblue][b]硝酸[/b][/color]:额外造成$n-atk点伤害。
|
|
||||||
[color=lightyellow][b]盐酸[/b][/color]:使敌人 [i]移动速度[/i] 降低$cl-speed,[i]攻击速度[/i] 降低$cl-atkspeed。
|
|
||||||
[color=pink][b]碳酸[/b][/color]:命中时挥发为气体向前扩散,敌人接触造成$c-atk点伤害,可无限穿透。
|
|
||||||
[color=orange][b]磷酸[/b][/color]:使敌人 [i]散射角[/i] 增加$p-offset。"
|
|
||||||
cooldown = 10.0
|
|
||||||
debugRebuild = true
|
|
||||||
|
|
||||||
[node name="avatar" parent="container/info" index="0"]
|
|
||||||
texture = ExtResource("2_nvjyi")
|
|
||||||
|
|
||||||
[node name="beachball" parent="container/info/infos" index="1"]
|
|
||||||
count = 200
|
|
||||||
|
|
||||||
[node name="name" parent="container/info" index="2"]
|
|
||||||
displayName = "酸蚀风暴"
|
|
||||||
quality = 4
|
|
||||||
typeTopic = 3
|
|
||||||
|
|
||||||
[node name="description" parent="container" index="2"]
|
|
||||||
text = "[center]高速随机喷射以下五种[b]酸[/b]之一,强酸可造成[color=cyan]5[/color]点伤害,弱酸造成[color=cyan]1[/color]点伤害。
|
|
||||||
[color=green][b]硫酸[/b][/color]:命中时溅射1~[color=cyan]3[/color]滴[b]硫酸[/b]。
|
|
||||||
[color=lightblue][b]硝酸[/b][/color]:额外造成[color=cyan]5[/color]点伤害。
|
|
||||||
[color=lightyellow][b]盐酸[/b][/color]:使敌人 [i]移动速度[/i] 降低[color=cyan]3%[/color],[i]攻击速度[/i] 降低[color=cyan]2%[/color]。
|
|
||||||
[color=pink][b]碳酸[/b][/color]:命中时挥发为气体向前扩散,敌人接触造成[color=cyan]1[/color]点伤害,可无限穿透。
|
|
||||||
[color=orange][b]磷酸[/b][/color]:使敌人 [i]散射角[/i] 增加[color=cyan]2.0°[/color]。[/center]"
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 409 B |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b47ixncbxcs4u"
|
||||||
|
path="res://.godot/imported/template.png-5548fd3d6b9360eba28bb81cdcc9e388.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://resources/bullets/acids/template.png"
|
||||||
|
dest_files=["res://.godot/imported/template.png-5548fd3d6b9360eba28bb81cdcc9e388.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
extends BulletBase
|
||||||
|
class_name AcidBulletBase
|
||||||
|
|
||||||
|
enum AcidType {
|
||||||
|
STRONG,
|
||||||
|
WEAK,
|
||||||
|
}
|
||||||
|
@export var acidType: AcidType = AcidType.STRONG
|
||||||
|
|
||||||
|
var arg1: float = 0
|
||||||
|
var arg2: float = 0
|
||||||
|
var arg3: float = 0
|
||||||
|
|
||||||
|
func register():
|
||||||
|
scale.y *= MathTool.randomChoiceFrom([-1, 1])
|
||||||
|
func ai():
|
||||||
|
PresetBulletAI.forward(self, rotation)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://wt1fn2vjtlen
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
extends AcidBulletBase
|
||||||
|
class_name AcidC
|
||||||
|
|
||||||
|
func ai():
|
||||||
|
super.ai()
|
||||||
|
scale *= 1.01
|
||||||
|
modulate.a = 1 - timeLived() / lifeTime
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://8h8e35gwre27
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
extends AcidBulletBase
|
||||||
|
class_name AcidCl
|
||||||
|
|
||||||
|
func succeedToHit(_dmg: float, entity: EntityBase):
|
||||||
|
entity.fields[FieldStore.Entity.MOVEMENT_SPEED] = clamp(entity.fields[FieldStore.Entity.MOVEMENT_SPEED] - arg1, 0.15, INF)
|
||||||
|
entity.fields[FieldStore.Entity.ATTACK_SPEED] = clamp(entity.fields[FieldStore.Entity.ATTACK_SPEED] - arg2, 0.15, INF)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dp8e5samuurdn
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
extends AcidBulletBase
|
||||||
|
class_name AcidN
|
||||||
|
|
||||||
|
func succeedToHit(_dmg: float, entity: EntityBase):
|
||||||
|
entity.takeDamage(arg1)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://ccjdi34ney8kl
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
extends AcidBulletBase
|
||||||
|
class_name AcidP
|
||||||
|
|
||||||
|
func succeedToHit(_dmg: float, entity: EntityBase):
|
||||||
|
entity.fields[FieldStore.Entity.OFFSET_SHOOT] = clamp(entity.fields[FieldStore.Entity.OFFSET_SHOOT] + arg1, 0, INF)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bef6n4hwn1niu
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
extends AcidBulletBase
|
||||||
|
class_name AcidS
|
||||||
|
|
||||||
|
func succeedToHit(_dmg: float, _entity: EntityBase):
|
||||||
|
for i in randi_range(0, int(arg1)):
|
||||||
|
for bullet in BulletBase.generate(ComponentManager.getBullet("AcidS"), launcher, position, rotation + deg_to_rad(180 + 90 * randf_range(-1, 1)), true, true):
|
||||||
|
if bullet is AcidS:
|
||||||
|
bullet.baseDamage = baseDamage
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dm4hwimsk8tx2
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
@tool
|
||||||
|
extends Weapon
|
||||||
|
|
||||||
|
var acids: Array[String] = ["AcidS", "AcidN", "AcidCl", "AcidP", "AcidC"]
|
||||||
|
|
||||||
|
func update(to: int, origin: Dictionary, _entity: EntityBase):
|
||||||
|
origin["atk"] += 0.05 * to * soulLevel
|
||||||
|
origin["c-atk"] *= soulLevel
|
||||||
|
origin["cl-atkspeed"] *= soulLevel
|
||||||
|
origin["cl-speed"] *= soulLevel
|
||||||
|
origin["n-atk"] *= soulLevel
|
||||||
|
origin["p-offset"] *= soulLevel
|
||||||
|
origin["s-count-max"] *= soulLevel
|
||||||
|
origin["weakatk"] = 0.025 * soulLevel
|
||||||
|
return origin
|
||||||
|
func attack(entity: EntityBase):
|
||||||
|
for bullet in BulletBase.generate(
|
||||||
|
ComponentManager.getBullet(MathTool.randomChoiceFrom(acids)),
|
||||||
|
entity,
|
||||||
|
entity.findWeaponAnchor("normal"),
|
||||||
|
(get_global_mouse_position() - entity.findWeaponAnchor("normal")).angle()
|
||||||
|
):
|
||||||
|
if bullet is AcidBulletBase:
|
||||||
|
if bullet.acidType == AcidBulletBase.AcidType.STRONG:
|
||||||
|
bullet.baseDamage = readStore("atk")
|
||||||
|
else:
|
||||||
|
bullet.baseDamage = readStore("weakatk")
|
||||||
|
if bullet is AcidS:
|
||||||
|
bullet.arg1 = readStore("s-count-max")
|
||||||
|
if bullet is AcidN:
|
||||||
|
bullet.arg1 = readStore("n-atk")
|
||||||
|
if bullet is AcidCl:
|
||||||
|
bullet.arg1 = readStore("cl-speed")
|
||||||
|
bullet.arg2 = readStore("cl-atkspeed")
|
||||||
|
if bullet is AcidP:
|
||||||
|
bullet.arg1 = readStore("p-offset")
|
||||||
|
if bullet is AcidC:
|
||||||
|
bullet.rotation += deg_to_rad(randf_range(-1, 1) * 15)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bxa5hc7aokisg
|
||||||
@@ -130,7 +130,7 @@ func formatValue(value: Variant, type: FieldStore.DataType) -> String:
|
|||||||
elif type == FieldStore.DataType.INTEGER:
|
elif type == FieldStore.DataType.INTEGER:
|
||||||
return "%d" % value
|
return "%d" % value
|
||||||
elif type == FieldStore.DataType.PERCENT:
|
elif type == FieldStore.DataType.PERCENT:
|
||||||
return ("%d" % (value * 100)) + "%"
|
return ("%.1f" % (value * 100)) + "%"
|
||||||
elif type == FieldStore.DataType.ANGLE:
|
elif type == FieldStore.DataType.ANGLE:
|
||||||
return "%.1f°" % value
|
return "%.1f°" % value
|
||||||
elif type == FieldStore.DataType.FREQUENCY:
|
elif type == FieldStore.DataType.FREQUENCY:
|
||||||
|
|||||||
Reference in New Issue
Block a user