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:
+2
-1
@@ -1,3 +1,4 @@
|
|||||||
.godot
|
.godot
|
||||||
.codebuddy
|
.codebuddy
|
||||||
cvb*
|
cvb*
|
||||||
|
*.zip
|
||||||
@@ -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():
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user