mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
feat(人物): 更新熊角色属性和资源文件
- 将熊角色贴图从JPG格式替换为PNG格式 - 调整熊角色的攻击冷却时间和冲刺逻辑 - 修改熊角色的碰撞体积和状态条位置 - 简化测试波次配置,仅保留熊角色 - 为阶段转换添加无敌状态 - 提高小鸡角色的冲刺倍率
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
[ext_resource type="AudioStream" uid="uid://cqh2yvwcy83gg" path="res://resources/sounds/bossAttack/Bear/Sprint.ogg" id="6_x3jmu"]
|
||||
[ext_resource type="AudioStream" uid="uid://ce8xjsh68momv" path="res://resources/sounds/bossAttack/Bear/Arrow7-2.ogg" id="7_0r2df"]
|
||||
[ext_resource type="AudioStream" uid="uid://dd18jfva1knwm" path="res://resources/sounds/bossAttack/Bear/LightGun.ogg" id="8_qagkm"]
|
||||
[ext_resource type="Texture2D" uid="uid://b5e6ndswcmq48" path="res://resources/characters/bear/FurryR.jpg" id="10_m7811"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgngjuc21l4xq" path="res://resources/characters/bear/FurryR.png" id="9_av1u2"]
|
||||
[ext_resource type="Shader" path="res://shaders/RedTemprature.gdshader" id="12_j8sas"]
|
||||
[ext_resource type="Texture2D" uid="uid://df6ly7iydtcwx" path="res://resources/characters/bear/FurryR-mask.png" id="13_v2sdb"]
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("10_m7811")
|
||||
"texture": ExtResource("9_av1u2")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"idle",
|
||||
@@ -24,7 +24,7 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("10_m7811")
|
||||
"texture": ExtResource("9_av1u2")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"walk",
|
||||
@@ -32,7 +32,7 @@ animations = [{
|
||||
}]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_akdh6"]
|
||||
size = Vector2(335, 344)
|
||||
size = Vector2(100, 100)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_sxh2u"]
|
||||
length = 0.001
|
||||
@@ -167,14 +167,9 @@ stream = ExtResource("8_qagkm")
|
||||
stream = ExtResource("8_qagkm")
|
||||
|
||||
[node name="texture" parent="." index="2"]
|
||||
position = Vector2(0, -80)
|
||||
sprite_frames = SubResource("SpriteFrames_6tgxs")
|
||||
|
||||
[node name="hurtbox" parent="texture" index="0"]
|
||||
visible = false
|
||||
|
||||
[node name="hitbox" parent="texture/hurtbox" index="0"]
|
||||
position = Vector2(-2.5, -1)
|
||||
shape = SubResource("RectangleShape2D_akdh6")
|
||||
|
||||
[node name="animator" parent="texture" index="1"]
|
||||
@@ -194,12 +189,11 @@ texture = ExtResource("13_v2sdb")
|
||||
|
||||
[node name="mask" type="Sprite2D" parent="texture" index="7"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_6h05p")
|
||||
texture = ExtResource("13_v2sdb")
|
||||
|
||||
[node name="statebar" parent="." index="3"]
|
||||
position = Vector2(0, -284)
|
||||
position = Vector2(0, -114)
|
||||
|
||||
[node name="movebox" parent="." index="4"]
|
||||
disabled = true
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 22 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
+4
-4
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b5e6ndswcmq48"
|
||||
path="res://.godot/imported/FurryR.jpg-f305957108e2f1f86811a398be97c85f.ctex"
|
||||
uid="uid://cgngjuc21l4xq"
|
||||
path="res://.godot/imported/FurryR.png-5850392cbd69fd4762536751d27e9e17.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/characters/bear/FurryR.jpg"
|
||||
dest_files=["res://.godot/imported/FurryR.jpg-f305957108e2f1f86811a398be97c85f.ctex"]
|
||||
source_file="res://resources/characters/bear/FurryR.png"
|
||||
dest_files=["res://.godot/imported/FurryR.png-5850392cbd69fd4762536751d27e9e17.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -11,12 +11,11 @@ func register():
|
||||
attackCooldownMap[0] = 3000
|
||||
attackCooldownMap[1] = 10000
|
||||
attackCooldownMap[2] = 8000
|
||||
attackCooldownMap[3] = 13000
|
||||
attackCooldownMap[3] = 5000
|
||||
attackCooldownMap[4] = 4500
|
||||
attackCooldownMap[5] = 5500
|
||||
attackCooldownMap[6] = 10000
|
||||
attackCooldownMap[7] = 9000
|
||||
sprintMultiplier = 60
|
||||
healthChanged.connect(
|
||||
func(newHealth):
|
||||
setStage(1 if newHealth < fields[FieldStore.Entity.MAX_HEALTH] * 0.5 else 0)
|
||||
@@ -56,15 +55,17 @@ func attack(type):
|
||||
elif type == 3:
|
||||
if !is_instance_valid(currentFocusedBoss): return false
|
||||
await sprintTo(currentFocusedBoss.position - Vector2(MathTool.randc_from([500, -500]), 0), 0.25)
|
||||
playSound("attack3")
|
||||
sprintParticle.emitting = true
|
||||
canRunAi = false
|
||||
await TickTool.millseconds(900)
|
||||
currentInvinsible = true
|
||||
playSound("attack3")
|
||||
await TickTool.millseconds(500)
|
||||
BulletBase.generate(preload("res://components/Bullets/BearSprint.tscn"), self, weaponPos, 0)
|
||||
await trySprint()
|
||||
sprintParticle.emitting = false
|
||||
canRunAi = true
|
||||
await sprintTo(currentFocusedBoss.position + MathTool.randv2_range(400), 0.25)
|
||||
currentInvinsible = false
|
||||
return false
|
||||
elif type == 4:
|
||||
playSound("attack4")
|
||||
@@ -109,4 +110,8 @@ func attack(type):
|
||||
return false
|
||||
return true
|
||||
func sprint():
|
||||
move((currentFocusedBoss.position - position).normalized() * Vector2(1, 0) * sprintMultiplier, true)
|
||||
var dir = sign((currentFocusedBoss.position - position).x)
|
||||
velocity = Vector2(dir, 0)
|
||||
func sprintAi():
|
||||
velocity.x *= 1.2
|
||||
return abs(velocity.x) >= 1000000
|
||||
|
||||
@@ -12,7 +12,7 @@ func register():
|
||||
attackCooldownMap[1] = 6000
|
||||
attackCooldownMap[2] = 2000
|
||||
attackCooldownMap[3] = 500
|
||||
sprintMultiplier = 30
|
||||
sprintMultiplier = 45
|
||||
func spawn():
|
||||
texture.play("walk")
|
||||
|
||||
|
||||
@@ -15,18 +15,17 @@ static var WAVE_NORMAL = [
|
||||
Wave.create(preload("res://components/Characters/Bear.tscn"), 0, 0, true, 19, INF, 10),
|
||||
]
|
||||
static var WAVE_TESTBOSS = [
|
||||
Wave.create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 0, INF, 1),
|
||||
Wave.create(preload("res://components/Characters/Bear.tscn"), 0, 0, true, 0, INF, 1),
|
||||
Wave.create(preload("res://components/Characters/KukeMC.tscn"), 0, 0, true, 0, INF, 1),
|
||||
]
|
||||
static var data = []
|
||||
static var data = WAVE_TESTBOSS
|
||||
|
||||
static func customStart():
|
||||
var furryr = EntityBase.generate(preload("res://components/Characters/Bear.tscn"), MathTool.randv2_range(500), true, false)
|
||||
var kukemc = EntityBase.generate(preload("res://components/Characters/KukeMC.tscn"), MathTool.randv2_range(500), true, false)
|
||||
EntityBase.generate(preload("res://components/Characters/Chick.tscn"), MathTool.randv2_range(500), true, false)
|
||||
furryr.currentFocusedBoss = kukemc
|
||||
kukemc.currentFocusedBoss = furryr
|
||||
pass
|
||||
# var furryr = EntityBase.generate(preload("res://components/Characters/Bear.tscn"), MathTool.randv2_range(500), true, false)
|
||||
# var kukemc = EntityBase.generate(preload("res://components/Characters/KukeMC.tscn"), MathTool.randv2_range(500), true, false)
|
||||
# EntityBase.generate(preload("res://components/Characters/Chick.tscn"), MathTool.randv2_range(500), true, false)
|
||||
# furryr.currentFocusedBoss = kukemc
|
||||
# kukemc.currentFocusedBoss = furryr
|
||||
static func create(
|
||||
entity_: PackedScene,
|
||||
minCount_: int = 1,
|
||||
|
||||
@@ -175,6 +175,7 @@ func timeLived():
|
||||
func setStage(stage: int):
|
||||
if currentStage == stage:
|
||||
return
|
||||
currentInvinsible = true
|
||||
canRunAi = false
|
||||
var oldStage = currentStage
|
||||
currentStage = stage
|
||||
@@ -185,6 +186,7 @@ func setStage(stage: int):
|
||||
stageAnimator.play("enter")
|
||||
await stageAnimator.animation_finished
|
||||
canRunAi = true
|
||||
currentInvinsible = false
|
||||
func applyLevel():
|
||||
fields[FieldStore.Entity.MAX_HEALTH] *= (1 + GameRule.entityHealthIncreasePerWave * (GameRule.difficulty + 1)) ** level
|
||||
fields[FieldStore.Entity.DAMAGE_MULTIPILER] *= (1 + GameRule.entityDamageIncreasePerWave * (GameRule.difficulty + 1)) ** level
|
||||
|
||||
Reference in New Issue
Block a user