mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-27 14:02:29 +08:00
Compare commits
9 Commits
fb5488b10d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a964d1f64 | |||
| 43a8c5329e | |||
| 9389794e5a | |||
| 6dd9e5bc58 | |||
| 07f1334cc7 | |||
| 2a864ae607 | |||
| 2abe9ec8b0 | |||
| d4b9999e44 | |||
| 8a75adc580 |
@@ -19,42 +19,42 @@ shader_parameter/wave_width = 0.5
|
|||||||
shader_parameter/edge_nonalpha = 0.6
|
shader_parameter/edge_nonalpha = 0.6
|
||||||
shader_parameter/alpha = 1.0
|
shader_parameter/alpha = 1.0
|
||||||
|
|
||||||
[sub_resource type="Curve" id="Curve_itlbo"]
|
[sub_resource type="Curve" id="Curve_5qhrw"]
|
||||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
point_count = 2
|
point_count = 2
|
||||||
|
|
||||||
[sub_resource type="CurveTexture" id="CurveTexture_xathl"]
|
[sub_resource type="CurveTexture" id="CurveTexture_e7vrf"]
|
||||||
curve = SubResource("Curve_itlbo")
|
curve = SubResource("Curve_5qhrw")
|
||||||
|
|
||||||
[sub_resource type="Curve" id="Curve_75ctq"]
|
[sub_resource type="Curve" id="Curve_ws1jd"]
|
||||||
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
point_count = 2
|
point_count = 2
|
||||||
|
|
||||||
[sub_resource type="CurveTexture" id="CurveTexture_my7uy"]
|
[sub_resource type="CurveTexture" id="CurveTexture_ypwek"]
|
||||||
curve = SubResource("Curve_75ctq")
|
curve = SubResource("Curve_ws1jd")
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_62xhh"]
|
[sub_resource type="Gradient" id="Gradient_3diwe"]
|
||||||
offsets = PackedFloat32Array(0, 0.60687)
|
offsets = PackedFloat32Array(0, 0.60687)
|
||||||
colors = PackedColorArray(1, 1, 1, 1, 1, 0, 0, 1)
|
colors = PackedColorArray(1, 1, 1, 1, 1, 0, 0, 1)
|
||||||
|
|
||||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_yix5j"]
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_tn8hw"]
|
||||||
gradient = SubResource("Gradient_62xhh")
|
gradient = SubResource("Gradient_3diwe")
|
||||||
|
|
||||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_m7jvq"]
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_nu1m4"]
|
||||||
particle_flag_disable_z = true
|
particle_flag_disable_z = true
|
||||||
emission_shape = 3
|
emission_shape = 3
|
||||||
emission_box_extents = Vector3(0, 1000, 1)
|
emission_box_extents = Vector3(0, 1000, 1)
|
||||||
angle_min = 1.07288e-05
|
angle_min = 1.07288e-05
|
||||||
angle_max = 360.0
|
angle_max = 360.0
|
||||||
angle_curve = SubResource("CurveTexture_my7uy")
|
angle_curve = SubResource("CurveTexture_ypwek")
|
||||||
spread = 15.0
|
spread = 15.0
|
||||||
initial_velocity_min = -500.0
|
initial_velocity_min = -500.0
|
||||||
initial_velocity_max = 500.0
|
initial_velocity_max = 500.0
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
scale_min = 3.0
|
scale_min = 3.0
|
||||||
scale_max = 15.0
|
scale_max = 15.0
|
||||||
color_ramp = SubResource("GradientTexture1D_yix5j")
|
color_ramp = SubResource("GradientTexture1D_tn8hw")
|
||||||
alpha_curve = SubResource("CurveTexture_xathl")
|
alpha_curve = SubResource("CurveTexture_e7vrf")
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_1rif1"]
|
[sub_resource type="Animation" id="Animation_1rif1"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
@@ -230,7 +230,7 @@ position = Vector2(50, 1000)
|
|||||||
amount = 400
|
amount = 400
|
||||||
lifetime = 0.25
|
lifetime = 0.25
|
||||||
visibility_rect = Rect2(-100, -1000, 200, 2000)
|
visibility_rect = Rect2(-100, -1000, 200, 2000)
|
||||||
process_material = SubResource("ParticleProcessMaterial_m7jvq")
|
process_material = SubResource("ParticleProcessMaterial_nu1m4")
|
||||||
|
|
||||||
[node name="launcher" type="Polygon2D" parent="texture/rect" index="1" unique_id=1254071384]
|
[node name="launcher" type="Polygon2D" parent="texture/rect" index="1" unique_id=1254071384]
|
||||||
position = Vector2(50, -21)
|
position = Vector2(50, -21)
|
||||||
|
|||||||
@@ -156,8 +156,8 @@ tracks/1/interp = 1
|
|||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"handle_modes": PackedInt32Array(0, 0, 0, 0, 0, 0),
|
"handle_modes": PackedInt32Array(0, 0, 0, 0, 0, 0),
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.2, 0, 0.7853982, -0.1, 0, 0.25, 0, -0.7853982, 0, 0, 0, -2, -0.7853982, -0.1, 0, 0.2, 0, 3.142, -0.2, 3, 0, 0),
|
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.1, 0, 0.7853982, -0.1, 0, 0.4, 0, -0.7853982, 0, 0.3, 0, -2, -0.7853982, -0.1, 0, 0.2, 0, 3.142, -0.2, 3, 0, 0),
|
||||||
"times": PackedFloat32Array(0, 0.3, 0.6, 0.888264, 1.2, 1.45)
|
"times": PackedFloat32Array(0, 0.2, 0.4, 0.888264, 1.2, 1.45)
|
||||||
}
|
}
|
||||||
tracks/2/type = "bezier"
|
tracks/2/type = "bezier"
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
@@ -167,7 +167,7 @@ tracks/2/interp = 1
|
|||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
"handle_modes": PackedInt32Array(0, 0),
|
"handle_modes": PackedInt32Array(0, 0),
|
||||||
"points": PackedFloat32Array(1, 0, 0, 0.2, 0, -1, 0, 0, 0, 0),
|
"points": PackedFloat32Array(1, 0, 0, 0.2, 0, -2, 0, 0, 0, 0),
|
||||||
"times": PackedFloat32Array(1.45, 1.7)
|
"times": PackedFloat32Array(1.45, 1.7)
|
||||||
}
|
}
|
||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
@@ -254,7 +254,7 @@ tracks/8/path = NodePath("anchor/textureSword/trailRight:visible")
|
|||||||
tracks/8/interp = 1
|
tracks/8/interp = 1
|
||||||
tracks/8/loop_wrap = true
|
tracks/8/loop_wrap = true
|
||||||
tracks/8/keys = {
|
tracks/8/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.8, 0.95, 1.35),
|
"times": PackedFloat32Array(0, 0.75, 0.95, 1.35),
|
||||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [false, true, false, false]
|
"values": [false, true, false, false]
|
||||||
@@ -290,7 +290,7 @@ tracks/11/path = NodePath("%textureSword/trailLine:modulate")
|
|||||||
tracks/11/interp = 1
|
tracks/11/interp = 1
|
||||||
tracks/11/loop_wrap = true
|
tracks/11/loop_wrap = true
|
||||||
tracks/11/keys = {
|
tracks/11/keys = {
|
||||||
"times": PackedFloat32Array(0, 1.8, 2),
|
"times": PackedFloat32Array(0, 1.65, 2),
|
||||||
"transitions": PackedFloat32Array(1, 1, 1),
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
@@ -399,8 +399,8 @@ local_coords = true
|
|||||||
process_material = SubResource("ParticleProcessMaterial_1sgli")
|
process_material = SubResource("ParticleProcessMaterial_1sgli")
|
||||||
|
|
||||||
[node name="hitbox" parent="." index="1" unique_id=175349408 node_paths=PackedStringArray("target")]
|
[node name="hitbox" parent="." index="1" unique_id=175349408 node_paths=PackedStringArray("target")]
|
||||||
position = Vector2(199.99998, 0.081461266)
|
position = Vector2(399.99997, 0.16292253)
|
||||||
rotation = 0.00040731629
|
rotation = 0.32215786
|
||||||
shape = SubResource("RectangleShape2D_1sgli")
|
shape = SubResource("RectangleShape2D_1sgli")
|
||||||
script = ExtResource("7_1sgli")
|
script = ExtResource("7_1sgli")
|
||||||
target = NodePath("../texture/anchor/textureSword")
|
target = NodePath("../texture/anchor/textureSword")
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_1yfsg")
|
|||||||
displayName = "氰化氢"
|
displayName = "氰化氢"
|
||||||
slogan = "微量便可颠覆生机"
|
slogan = "微量便可颠覆生机"
|
||||||
avatar = ExtResource("2_1yfsg")
|
avatar = ExtResource("2_1yfsg")
|
||||||
description = "击杀敌人时储能。"
|
description = "击杀敌人时少量储能。"
|
||||||
fields = Array[int]([18, 10, 1])
|
fields = Array[int]([18, 10, 1])
|
||||||
fieldValues = Array[float]([3.0, 0.15, -0.15])
|
fieldValues = Array[float]([4.0, 0.2, -0.2])
|
||||||
|
|
||||||
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
||||||
texture = ExtResource("2_1yfsg")
|
texture = ExtResource("2_1yfsg")
|
||||||
@@ -34,4 +34,4 @@ text = "氰化氢"
|
|||||||
text = "“微量便可颠覆生机”"
|
text = "“微量便可颠覆生机”"
|
||||||
|
|
||||||
[node name="descriptionLabel" parent="wrapper/infoContainer" parent_id_path=PackedInt32Array(143242635) index="1" unique_id=808054282]
|
[node name="descriptionLabel" parent="wrapper/infoContainer" parent_id_path=PackedInt32Array(143242635) index="1" unique_id=808054282]
|
||||||
text = "击杀敌人时储能。"
|
text = "击杀敌人时少量储能。"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ slogan = "栖于寒域密林,孤影独行世间"
|
|||||||
avatar = ExtResource("2_1s675")
|
avatar = ExtResource("2_1s675")
|
||||||
description = "拥有更大的冲刺速度。"
|
description = "拥有更大的冲刺速度。"
|
||||||
fields = Array[int]([3, 4, 10])
|
fields = Array[int]([3, 4, 10])
|
||||||
fieldValues = Array[float]([0.15, 0.04, -0.3])
|
fieldValues = Array[float]([0.2, 0.04, -0.3])
|
||||||
clickToRebuild = true
|
clickToRebuild = true
|
||||||
|
|
||||||
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_fi2nw")
|
|||||||
displayName = "牧羊犬"
|
displayName = "牧羊犬"
|
||||||
slogan = "恪守使命不离不弃"
|
slogan = "恪守使命不离不弃"
|
||||||
avatar = ExtResource("2_fi2nw")
|
avatar = ExtResource("2_fi2nw")
|
||||||
description = "每隔3秒发动格挡。"
|
description = "造成伤害时少量吸血,
|
||||||
|
每0.5秒最多触发一次。"
|
||||||
fields = Array[int]([0, 8, 3])
|
fields = Array[int]([0, 8, 3])
|
||||||
fieldValues = Array[float]([100.0, 0.2, -0.45])
|
fieldValues = Array[float]([35.0, 0.2, -0.5])
|
||||||
clickToRebuild = true
|
|
||||||
|
|
||||||
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
||||||
texture = ExtResource("2_fi2nw")
|
texture = ExtResource("2_fi2nw")
|
||||||
@@ -34,4 +34,5 @@ text = "牧羊犬"
|
|||||||
text = "“恪守使命不离不弃”"
|
text = "“恪守使命不离不弃”"
|
||||||
|
|
||||||
[node name="descriptionLabel" parent="wrapper/infoContainer" parent_id_path=PackedInt32Array(143242635) index="1" unique_id=808054282]
|
[node name="descriptionLabel" parent="wrapper/infoContainer" parent_id_path=PackedInt32Array(143242635) index="1" unique_id=808054282]
|
||||||
text = "每隔3秒发动格挡。"
|
text = "造成伤害时少量吸血,
|
||||||
|
每0.5秒最多触发一次。"
|
||||||
|
|||||||
@@ -3,9 +3,12 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://bs863g2s8r770" path="res://components/Abstracts/PlayerBase.tscn" id="1_y3l4w"]
|
[ext_resource type="PackedScene" uid="uid://bs863g2s8r770" path="res://components/Abstracts/PlayerBase.tscn" id="1_y3l4w"]
|
||||||
[ext_resource type="Script" uid="uid://bbmb572iba42l" path="res://scripts/Contents/Characters/MuyangDog.gd" id="2_mr6nm"]
|
[ext_resource type="Script" uid="uid://bbmb572iba42l" path="res://scripts/Contents/Characters/MuyangDog.gd" id="2_mr6nm"]
|
||||||
[ext_resource type="PackedScene" uid="uid://u0djqwuuysp8" path="res://components/Weapons/Volcano.tscn" id="3_e236u"]
|
[ext_resource type="PackedScene" uid="uid://u0djqwuuysp8" path="res://components/Weapons/Volcano.tscn" id="3_e236u"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cx7nogfnv7s8t" path="res://components/Weapons/Tree.tscn" id="4_im5m5"]
|
||||||
|
|
||||||
[node name="MuyangDog" unique_id=1711205167 instance=ExtResource("1_y3l4w")]
|
[node name="MuyangDog" unique_id=1711205167 instance=ExtResource("1_y3l4w")]
|
||||||
script = ExtResource("2_mr6nm")
|
script = ExtResource("2_mr6nm")
|
||||||
displayName = "牧羊犬"
|
displayName = "牧羊犬"
|
||||||
|
|
||||||
[node name="Volcano" parent="weaponStore" parent_id_path=PackedInt32Array(1319091445) index="0" unique_id=204992396 instance=ExtResource("3_e236u")]
|
[node name="Volcano" parent="weaponStore" parent_id_path=PackedInt32Array(1319091445) index="0" unique_id=204992396 instance=ExtResource("3_e236u")]
|
||||||
|
|
||||||
|
[node name="Tree" parent="weaponStore" parent_id_path=PackedInt32Array(1319091445) index="1" unique_id=185228402 instance=ExtResource("4_im5m5")]
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ var dmg5: float = 0
|
|||||||
var splitAngle: float = 10
|
var splitAngle: float = 10
|
||||||
|
|
||||||
func spawn():
|
func spawn():
|
||||||
animator.speed_scale = 0.75
|
animator.speed_scale = 0.85
|
||||||
setupCuttable(0.2)
|
setupCuttable(0.75)
|
||||||
func ai():
|
func ai():
|
||||||
PresetBulletAI.lockLauncher(self , launcher, true)
|
PresetBulletAI.lockLauncher(self , launcher, true)
|
||||||
rotation = lerp_angle(
|
rotation = lerp_angle(
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ extends PlayerBase
|
|||||||
|
|
||||||
func register():
|
func register():
|
||||||
super.register()
|
super.register()
|
||||||
sprintMultiplier += 3
|
sprintMultiplier += 1.5
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
extends PlayerBase
|
extends PlayerBase
|
||||||
|
|
||||||
var parryCounter: CooldownTimer = CooldownTimer.new(3000)
|
var healCounter = CooldownTimer.new(500)
|
||||||
|
|
||||||
func ai():
|
func register():
|
||||||
super.ai()
|
super.register()
|
||||||
if parryCounter.isCooldowned():
|
madeDamage.connect(
|
||||||
var track = getTrackingAnchor()
|
func(_w, _b):
|
||||||
var bullet = BulletTool.findClosetBulletCanDamage(track, get_tree(), self , 300)
|
if healCounter.start():
|
||||||
if is_instance_valid(bullet):
|
heal(1)
|
||||||
BulletBase.generate(ComponentManager.getBullet("Parrier"), self , track, track.angle_to_point(bullet.position))
|
)
|
||||||
parryCounter.start()
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ signal healed(amount: float)
|
|||||||
signal healthChanged(health: float)
|
signal healthChanged(health: float)
|
||||||
signal died()
|
signal died()
|
||||||
signal killEnemy(who: EntityBase, by: BulletBase)
|
signal killEnemy(who: EntityBase, by: BulletBase)
|
||||||
|
signal madeDamage(who: EntityBase, by: BulletBase)
|
||||||
|
|
||||||
signal energyChanged(energy: float, dontChangeDirection: bool)
|
signal energyChanged(energy: float, dontChangeDirection: bool)
|
||||||
|
|
||||||
@@ -69,7 +70,7 @@ var inventory = {
|
|||||||
ItemStore.ItemType.BEACHBALL: 0,
|
ItemStore.ItemType.BEACHBALL: 0,
|
||||||
ItemStore.ItemType.SOUL: 0,
|
ItemStore.ItemType.SOUL: 0,
|
||||||
ItemStore.ItemType.CRYSTAL: 0,
|
ItemStore.ItemType.CRYSTAL: 0,
|
||||||
ItemStore.ItemType.DIAMOND: 10
|
ItemStore.ItemType.DIAMOND: 100
|
||||||
}
|
}
|
||||||
var inventoryMax = {
|
var inventoryMax = {
|
||||||
ItemStore.ItemType.BASEBALL: INF, # 无限
|
ItemStore.ItemType.BASEBALL: INF, # 无限
|
||||||
@@ -172,6 +173,7 @@ func _ready():
|
|||||||
healthChanged.emit(health)
|
healthChanged.emit(health)
|
||||||
energyChanged.emit(energy, false)
|
energyChanged.emit(energy, false)
|
||||||
killEnemy.connect(func(_w, _b): return )
|
killEnemy.connect(func(_w, _b): return )
|
||||||
|
madeDamage.connect(func(_w, _b): return )
|
||||||
spawn()
|
spawn()
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
health = clamp(health, 0, fields.get(FieldStore.Entity.MAX_HEALTH))
|
health = clamp(health, 0, fields.get(FieldStore.Entity.MAX_HEALTH))
|
||||||
@@ -304,6 +306,7 @@ func bulletHit(bullet: BulletBase, crit: bool, damageOverride = "none"):
|
|||||||
hit.emit(damage, bullet, crit)
|
hit.emit(damage, bullet, crit)
|
||||||
health -= damage
|
health -= damage
|
||||||
healthChanged.emit(health)
|
healthChanged.emit(health)
|
||||||
|
bullet.launcher.madeDamage.emit(self , bullet)
|
||||||
DamageLabel.create(damage, crit || perfectMiss, damageAnchor.global_position + MathTool.sampleInCircle(GameRule.damageLabelSpawnOffset))
|
DamageLabel.create(damage, crit || perfectMiss, damageAnchor.global_position + MathTool.sampleInCircle(GameRule.damageLabelSpawnOffset))
|
||||||
if isBoss and bullet.launcher.isPlayer():
|
if isBoss and bullet.launcher.isPlayer():
|
||||||
bullet.launcher.setBoss(self )
|
bullet.launcher.setBoss(self )
|
||||||
|
|||||||
Reference in New Issue
Block a user