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

refactor(武器系统): 重构弓箭和七魂武器逻辑及数值

调整弓箭武器的旋转偏移逻辑,将偏移计算从spawn函数移到Arrow类
修改七魂武器的属性和描述,增加治疗效果和能量转换功能
更新游戏难度范围和默认值,调整实体生命值计算方式
移除Rooster角色中的LGBT和HJM武器,替换为SevenSoul武器
This commit is contained in:
2025-11-30 14:26:48 +08:00
parent 290d99f8bd
commit 2006087495
8 changed files with 33 additions and 20 deletions
+2 -1
View File
@@ -5,6 +5,7 @@ class_name Arrow
var atk: float = 0
var waitTime: float = 0
var offsetRotation: float = 0
func register():
trail.emitting = false
@@ -12,7 +13,7 @@ func register():
func ai():
if timeLived() < waitTime:
PresetBulletAI.lockLauncher(self, launcher, true)
rotation = position.angle_to_point(get_global_mouse_position())
rotation = position.angle_to_point(get_global_mouse_position()) + offsetRotation
return
else:
trail.emitting = true
+2 -1
View File
@@ -12,11 +12,12 @@ func spawn():
ComponentManager.getBullet("Arrow"),
launcher,
position,
startAngle + deg_to_rad(c * 10.0)
startAngle
):
var bullet: Arrow = i
bullet.atk = atk
bullet.waitTime = waitTime
bullet.offsetRotation = deg_to_rad(c * 10.0)
await TickTool.millseconds(waitTime)
tryDestroy()
func ai():
+1
View File
@@ -71,6 +71,7 @@ func _ready():
historyStack = Composables.useHistoryStack(playerNameInput)
diffEdit.min_value = GameRule.difficultyRange.x
diffEdit.max_value = GameRule.difficultyRange.y
diffEdit.value = GameRule.difficulty
multiplayer.connection_failed.connect(
func():
setState(MultiplayerState.ConnectionState.DISCONNECTED)
+1 -1
View File
@@ -213,7 +213,7 @@ func setStage(stage: int):
canRunAi = true
currentInvinsible = false
func applyLevel():
fields[FieldStore.Entity.MAX_HEALTH] *= (1 + GameRule.entityHealthIncreasePerWave * (GameRule.difficulty - GameRule.difficultyRange.x + 5)) ** level
fields[FieldStore.Entity.MAX_HEALTH] *= (1 + GameRule.entityHealthIncreasePerWave * (GameRule.difficulty - GameRule.difficultyRange.x + 1)) ** level
fields[FieldStore.Entity.DAMAGE_MULTIPILER] *= sqrt((1 + GameRule.entityDamageIncreasePerWave * (GameRule.difficulty - GameRule.difficultyRange.x))) ** level
func displace(direction: Vector2, isSprinting: bool = false):
return (direction if isSprinting else direction.normalized()) * fields.get(FieldStore.Entity.MOVEMENT_SPEED) * 400 * abs(animatree.get("parameters/blend_position"))
+2 -2
View File
@@ -1,8 +1,8 @@
class_name GameRule
static var deadReasons: Array = JsonTool.parseJson("res://resources/constants/deadReasons.json")
static var difficultyRange: Vector2 = Vector2(-5, 10) # 难度倍数范围,包括最小值和最大值,负数则降低难度
static var difficulty: float = 10 # 难度倍数,可以写小数
static var difficultyRange: Vector2 = Vector2(-20, 50) # 难度倍数范围,包括最小值和最大值,负数则降低难度
static var difficulty: float = 1 # 难度倍数,可以写小数
static var allowFriendlyFire: bool = false # 是否允许友军伤害
static var bulletSpeedMultiplier: float = 1 # 子弹速度倍率
static var damageOffset: float = MathTool.percent(20) # 伤害随机浮动比例