1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-07-02 00:02:13 +08:00

fix(武器): 调整DaoStatue伤害计算逻辑和描述

feat(游戏流程): 添加初始选择界面自动触发开始按钮逻辑
refactor(战斗系统): 分离调试和发布版的波次配置
style(资源): 更新图片导入配置为VRAM压缩格式
chore: 忽略zip文件并修复.gitignore格式
This commit is contained in:
2026-04-05 07:44:04 +08:00
parent b343708b3b
commit 0b97de0fcc
6 changed files with 31 additions and 14 deletions
+2 -1
View File
@@ -1,3 +1,4 @@
.godot .godot
.codebuddy .codebuddy
cvb* cvb*
*.zip
+5 -3
View File
@@ -15,7 +15,7 @@ store = {
"atk": 50, "atk": 50,
"rate1": 0.05, "rate1": 0.05,
"rate2": 0.025, "rate2": 0.025,
"rate3": 0.15 "rate3": 0.01
} }
storeType = { storeType = {
"atk": 1, "atk": 1,
@@ -28,7 +28,8 @@ descriptionTemplate = "挥出[b]天地之剑[/b],蓄力一段时间后,
攻击速度每降低[color=yellow]1%[/color],伤害+$rate2 攻击速度每降低[color=yellow]1%[/color],伤害+$rate2
每失去[color=yellow]1[/color]点生命值,伤害+$rate1 每失去[color=yellow]1[/color]点生命值,伤害+$rate1
命中时每拥有[color=yellow]1[/color]层[b]气[/b]伤害+$rate3" 拥有的所有[b]气力[/b]层数之和,每化解[color=yellow]1[/color]点伤害,[b]无量斩[/b]伤害+$rate3
每次攻击都会消耗气力。"
sources = Array[String](["Nine Sols"]) sources = Array[String](["Nine Sols"])
tease = "天机不可泄露" tease = "天机不可泄露"
needEnergy = 50.0 needEnergy = 50.0
@@ -60,7 +61,8 @@ text = "[center]挥出[b]天地之剑[/b],蓄力一段时间后,
攻击速度每降低[color=yellow]1%[/color],伤害+[color=cyan]2.5%[/color] 攻击速度每降低[color=yellow]1%[/color],伤害+[color=cyan]2.5%[/color]
每失去[color=yellow]1[/color]点生命值,伤害+[color=cyan]5.0%[/color] 每失去[color=yellow]1[/color]点生命值,伤害+[color=cyan]5.0%[/color]
命中时每拥有[color=yellow]1[/color]层[b]气[/b]伤害+[color=cyan]15.0%[/color][/center]" 拥有的所有[b]气力[/b]层数之和,每化解[color=yellow]1[/color]点伤害,[b]无量斩[/b]伤害+[color=cyan]1.0%[/color]
每次攻击都会消耗气力。[/center]"
[node name="tease" parent="container" parent_id_path=PackedInt32Array(575698869) index="3" unique_id=689277044] [node name="tease" parent="container" parent_id_path=PackedInt32Array(575698869) index="3" unique_id=689277044]
text = "“天机不可泄露”" text = "“天机不可泄露”"
@@ -3,19 +3,20 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b1aq0k7tf1p1" uid="uid://b1aq0k7tf1p1"
path="res://.godot/imported/kernyr.jpg-d82cf548a25a07dbd282dd92971a45c3.ctex" path.s3tc="res://.godot/imported/kernyr.jpg-d82cf548a25a07dbd282dd92971a45c3.s3tc.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://resources/characters/kernyr/kernyr.jpg" source_file="res://resources/characters/kernyr/kernyr.jpg"
dest_files=["res://.godot/imported/kernyr.jpg-d82cf548a25a07dbd282dd92971a45c3.ctex"] dest_files=["res://.godot/imported/kernyr.jpg-d82cf548a25a07dbd282dd92971a45c3.s3tc.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@@ -37,4 +38,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0
@@ -24,6 +24,8 @@ func beforeOpen(_args: Array = []):
if WorldManager.isRelease(): if WorldManager.isRelease():
clearWeapons() clearWeapons()
title2.hide() title2.hide()
if !title1.visible:
startBtn.pressed.emit()
) )
else: else:
initialFeedSelection.add_child(card) initialFeedSelection.add_child(card)
@@ -32,6 +34,8 @@ func beforeOpen(_args: Array = []):
if WorldManager.isRelease(): if WorldManager.isRelease():
clearFeeds() clearFeeds()
title1.hide() title1.hide()
if !title2.visible:
startBtn.pressed.emit()
) )
func clearFeeds(): func clearFeeds():
+4 -3
View File
@@ -58,10 +58,11 @@ static var WAVE_MOWING = [
Wave.create("MTY", 1, 5, false, 0, INF, 1), Wave.create("MTY", 1, 5, false, 0, INF, 1),
] ]
static var WAVE_EMPTY = [] static var WAVE_EMPTY = []
static var waveConfig = [WAVE_TESTBOSS_ALL, 1] static var waveReleaseConfig = [WAVE_TESTBOSS_ALL, 1]
static var waveDebugConfig = [WAVE_MOWING, 1]
static var current: int = startWith(1) if WorldManager.isRelease() else startWith(waveConfig[1]) static var current: int = startWith(waveReleaseConfig[1]) if WorldManager.isRelease() else startWith(waveDebugConfig[1])
static var data = WAVE_NORMAL if WorldManager.isRelease() else waveConfig[0] static var data = waveReleaseConfig[0] if WorldManager.isRelease() else waveDebugConfig[0]
static func create( static func create(
entity_: String, entity_: String,
+9 -1
View File
@@ -8,6 +8,7 @@ func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["rate3"] *= soulLevel origin["rate3"] *= soulLevel
return origin return origin
func attack(entity: EntityBase): func attack(entity: EntityBase):
var parryCounter = entity.getOrCreateCycleTimer("parry", 2000, 100)
for bullet in BulletBase.generate( for bullet in BulletBase.generate(
ComponentManager.getBullet("Wuwei"), ComponentManager.getBullet("Wuwei"),
entity, entity,
@@ -18,5 +19,12 @@ func attack(entity: EntityBase):
bullet.baseDamage = readStore("atk") bullet.baseDamage = readStore("atk")
bullet.baseDamage *= max(-0.99, readStore("rate2") * ((1.0 - entity.fields[FieldStore.Entity.ATTACK_SPEED]) * 100)) + 1 bullet.baseDamage *= max(-0.99, readStore("rate2") * ((1.0 - entity.fields[FieldStore.Entity.ATTACK_SPEED]) * 100)) + 1
bullet.baseDamage *= max(-0.99, readStore("rate1") * (entity.fields[FieldStore.Entity.MAX_HEALTH] - entity.health)) + 1 bullet.baseDamage *= max(-0.99, readStore("rate1") * (entity.fields[FieldStore.Entity.MAX_HEALTH] - entity.health)) + 1
bullet.baseDamage *= max(-0.99, readStore("rate3") * len(entity.getOrCreateCycleTimer("parry", 2000, 100).bullets)) + 1 var atkAll = 0
for bulle in parryCounter.bullets:
if bulle is ParryBallBullet:
atkAll += bulle.atk
bullet.baseDamage *= max(-0.99, readStore("rate3") * atkAll) + 1
for bulle in parryCounter.bullets:
if bulle is ParryBallBullet:
bulle.tryDestroy()
return true return true