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:
@@ -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
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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) # 伤害随机浮动比例
|
||||
|
||||
Reference in New Issue
Block a user