mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(武器): 为火山武器添加幻影攻击功能
在火山武器的第4段攻击时发射多支火山幻影,造成额外伤害。修改了动画、伤害计算和武器描述,包括: - 添加count和dmg5属性控制幻影数量和伤害 - 调整幻影动画效果和速度 - 更新武器描述模板和显示文本
This commit is contained in:
@@ -252,6 +252,20 @@ tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0, 0.6, 1.2, 1.45)
|
||||
}
|
||||
tracks/9/use_blend = true
|
||||
tracks/10/type = "method"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("%texture/..")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(1.45),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"generateShadow"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_w1utg"]
|
||||
_data = {
|
||||
|
||||
@@ -44,7 +44,7 @@ tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.90000004, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.70000005), Color(1, 1, 1, 0.70000005), Color(1, 1, 1, 0)]
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.5), Color(1, 1, 1, 0.5), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
@@ -53,10 +53,10 @@ tracks/1/path = NodePath("static:scale")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.90000004, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0, 0.1, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0), Vector2(0.8, 0.8), Vector2(0.8, 0.8), Vector2(0, 0)]
|
||||
"values": [Vector2(0, 0), Vector2(1.5, 1.5), Vector2(0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_i7b6y"]
|
||||
@@ -70,7 +70,7 @@ size = Vector2(76, 12)
|
||||
|
||||
[node name="VolcanoShadow" instance=ExtResource("1_4oiyn")]
|
||||
script = ExtResource("2_i7b6y")
|
||||
speed = 30.0
|
||||
speed = 25.0
|
||||
penerate = 1.0
|
||||
penerateDamageReduction = 0.2
|
||||
autoSpawnAnimation = true
|
||||
|
||||
@@ -14,23 +14,26 @@ typeTopic = 2
|
||||
costBeachball = 300
|
||||
store = {
|
||||
"atk": 10.0,
|
||||
"count": 2.0,
|
||||
"dmg1": 1.0,
|
||||
"dmg2": 0.75,
|
||||
"dmg3": 1.5,
|
||||
"dmg4": 1.25,
|
||||
"dmg5": 0.6,
|
||||
"rotate": 0.05
|
||||
}
|
||||
storeType = {
|
||||
"atk": 1,
|
||||
"count": 1,
|
||||
"dmg1": 2,
|
||||
"dmg2": 2,
|
||||
"dmg3": 2,
|
||||
"dmg4": 2,
|
||||
"dmg5": 2,
|
||||
"rotate": 2
|
||||
}
|
||||
descriptionTemplate = "召唤1支[b]火山[/b],以$rotate的效率跟随鼠标指向,进行基础伤害为$atk的4段挥舞攻击。造成的伤害分别为$dmg1,$dmg2,$dmg3,$dmg4。"
|
||||
descriptionTemplate = "召唤1支[b]火山[/b],以$rotate的效率跟随鼠标指向,进行基础伤害为$atk的4段挥舞攻击。造成的伤害分别为$dmg1,$dmg2,$dmg3,$dmg4,第4段攻击时发射$count支[b]火山幻影[/b],造成$dmg5伤害。"
|
||||
cooldown = 1750.0
|
||||
debugRebuild = true
|
||||
|
||||
[node name="avatar" parent="container/info" index="0"]
|
||||
texture = ExtResource("2_hh01t")
|
||||
@@ -47,4 +50,4 @@ quality = 4
|
||||
typeTopic = 2
|
||||
|
||||
[node name="description" parent="container" index="2"]
|
||||
text = "[center]召唤1支[b]火山[/b],以[color=cyan]5%[/color]的效率跟随鼠标指向,进行基础伤害为[color=cyan]10[/color]的4段挥舞攻击。造成的伤害分别为[color=cyan]100%[/color],[color=cyan]75%[/color],[color=cyan]150%[/color],[color=cyan]125%[/color]。[/center]"
|
||||
text = "[center]召唤1支[b]火山[/b],以[color=cyan]5%[/color]的效率跟随鼠标指向,进行基础伤害为[color=cyan]10[/color]的4段挥舞攻击。造成的伤害分别为[color=cyan]100%[/color],[color=cyan]75%[/color],[color=cyan]150%[/color],[color=cyan]125%[/color],第4段攻击时发射[color=cyan]2[/color]支[b]火山幻影[/b],造成[color=cyan]25%[/color]伤害。[/center]"
|
||||
|
||||
@@ -5,6 +5,9 @@ class_name Volcano
|
||||
@onready var anchor: Node2D = $%anchor
|
||||
|
||||
var rotates: float = 0
|
||||
var count: int = 0
|
||||
var dmg5: float = 0
|
||||
var splitAngle: float = 10
|
||||
|
||||
func register():
|
||||
animator.speed_scale = launcher.fields.get(FieldStore.Entity.ATTACK_SPEED)
|
||||
@@ -17,12 +20,14 @@ func ai():
|
||||
)
|
||||
|
||||
func generateShadow():
|
||||
for i in BulletBase.generate(
|
||||
ComponentManager.getBullet("VolcanoShadow"),
|
||||
launcher,
|
||||
textureSword.global_position,
|
||||
anchor.global_rotation,
|
||||
false, false, true, true
|
||||
):
|
||||
if i is VolcanoShadow:
|
||||
i.baseDamage = baseDamage
|
||||
var startAngle = rotation - deg_to_rad(count * splitAngle / 2)
|
||||
for i in count:
|
||||
for bullet in BulletBase.generate(
|
||||
ComponentManager.getBullet("VolcanoShadow"),
|
||||
launcher,
|
||||
position,
|
||||
startAngle + i * deg_to_rad(splitAngle),
|
||||
false, false, true, true
|
||||
):
|
||||
if bullet is VolcanoShadow:
|
||||
bullet.baseDamage = baseDamage * dmg5
|
||||
|
||||
@@ -7,6 +7,8 @@ func update(to: int, origin: Dictionary, _entity: EntityBase):
|
||||
origin["dmg2"] += 0.03 * to * soulLevel
|
||||
origin["dmg3"] += 0.03 * to * soulLevel
|
||||
origin["dmg4"] += 0.03 * to * soulLevel
|
||||
origin["dmg5"] += 0.04 * to * soulLevel
|
||||
origin["count"] = 1 * soulLevel + 1
|
||||
origin["atk"] += 1 * to * soulLevel
|
||||
return origin
|
||||
func attack(entity: EntityBase):
|
||||
@@ -20,3 +22,5 @@ func attack(entity: EntityBase):
|
||||
bullet.baseDamage = readStore("atk")
|
||||
bullet.rotates = readStore("rotate")
|
||||
bullet.damageMultipliers = [readStore("dmg1"), readStore("dmg2"), readStore("dmg3"), readStore("dmg4")]
|
||||
bullet.count = readStore("count")
|
||||
bullet.dmg5 = readStore("dmg5")
|
||||
|
||||
Reference in New Issue
Block a user