From 0b97de0fcc339612cd94d99337d6e562c60eca0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sun, 5 Apr 2026 07:44:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=AD=A6=E5=99=A8):=20=E8=B0=83=E6=95=B4Da?= =?UTF-8?q?oStatue=E4=BC=A4=E5=AE=B3=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=92=8C=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat(游戏流程): 添加初始选择界面自动触发开始按钮逻辑 refactor(战斗系统): 分离调试和发布版的波次配置 style(资源): 更新图片导入配置为VRAM压缩格式 chore: 忽略zip文件并修复.gitignore格式 --- .gitignore | 3 ++- components/Weapons/DaoStatue.tscn | 8 +++++--- resources/characters/kernyr/kernyr.jpg.import | 13 +++++++------ scripts/Contents/Panels/SelectIntialFeed.gd | 4 ++++ scripts/Contents/Wave.gd | 7 ++++--- scripts/Contents/Weapons/DaoStatue.gd | 10 +++++++++- 6 files changed, 31 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 874c70e..c3bdbbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .godot .codebuddy -cvb* \ No newline at end of file +cvb* +*.zip \ No newline at end of file diff --git a/components/Weapons/DaoStatue.tscn b/components/Weapons/DaoStatue.tscn index 96bdda3..0cfafb1 100644 --- a/components/Weapons/DaoStatue.tscn +++ b/components/Weapons/DaoStatue.tscn @@ -15,7 +15,7 @@ store = { "atk": 50, "rate1": 0.05, "rate2": 0.025, -"rate3": 0.15 +"rate3": 0.01 } storeType = { "atk": 1, @@ -28,7 +28,8 @@ descriptionTemplate = "挥出[b]天地之剑[/b],蓄力一段时间后, 攻击速度每降低[color=yellow]1%[/color],伤害+$rate2; 每失去[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"]) tease = "天机不可泄露" 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]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] text = "“天机不可泄露”" diff --git a/resources/characters/kernyr/kernyr.jpg.import b/resources/characters/kernyr/kernyr.jpg.import index 65dd5b9..6005d4f 100644 --- a/resources/characters/kernyr/kernyr.jpg.import +++ b/resources/characters/kernyr/kernyr.jpg.import @@ -3,19 +3,20 @@ importer="texture" type="CompressedTexture2D" uid="uid://b1aq0k7tf1p1" -path="res://.godot/imported/kernyr.jpg-d82cf548a25a07dbd282dd92971a45c3.ctex" +path.s3tc="res://.godot/imported/kernyr.jpg-d82cf548a25a07dbd282dd92971a45c3.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] 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] -compress/mode=0 +compress/mode=2 compress/high_quality=false compress/lossy_quality=0.7 compress/uastc_level=0 @@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -37,4 +38,4 @@ 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 +detect_3d/compress_to=0 diff --git a/scripts/Contents/Panels/SelectIntialFeed.gd b/scripts/Contents/Panels/SelectIntialFeed.gd index 896a78d..739f4ce 100644 --- a/scripts/Contents/Panels/SelectIntialFeed.gd +++ b/scripts/Contents/Panels/SelectIntialFeed.gd @@ -24,6 +24,8 @@ func beforeOpen(_args: Array = []): if WorldManager.isRelease(): clearWeapons() title2.hide() + if !title1.visible: + startBtn.pressed.emit() ) else: initialFeedSelection.add_child(card) @@ -32,6 +34,8 @@ func beforeOpen(_args: Array = []): if WorldManager.isRelease(): clearFeeds() title1.hide() + if !title2.visible: + startBtn.pressed.emit() ) func clearFeeds(): diff --git a/scripts/Contents/Wave.gd b/scripts/Contents/Wave.gd index 6a36b03..7f44f62 100644 --- a/scripts/Contents/Wave.gd +++ b/scripts/Contents/Wave.gd @@ -58,10 +58,11 @@ static var WAVE_MOWING = [ Wave.create("MTY", 1, 5, false, 0, INF, 1), ] 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 data = WAVE_NORMAL if WorldManager.isRelease() else waveConfig[0] +static var current: int = startWith(waveReleaseConfig[1]) if WorldManager.isRelease() else startWith(waveDebugConfig[1]) +static var data = waveReleaseConfig[0] if WorldManager.isRelease() else waveDebugConfig[0] static func create( entity_: String, diff --git a/scripts/Contents/Weapons/DaoStatue.gd b/scripts/Contents/Weapons/DaoStatue.gd index 8747c9f..5fc5f61 100644 --- a/scripts/Contents/Weapons/DaoStatue.gd +++ b/scripts/Contents/Weapons/DaoStatue.gd @@ -8,6 +8,7 @@ func update(to: int, origin: Dictionary, _entity: EntityBase): origin["rate3"] *= soulLevel return origin func attack(entity: EntityBase): + var parryCounter = entity.getOrCreateCycleTimer("parry", 2000, 100) for bullet in BulletBase.generate( ComponentManager.getBullet("Wuwei"), entity, @@ -18,5 +19,12 @@ func attack(entity: EntityBase): 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("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