mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-03 18:27:13 +08:00
feat(障碍物系统): 添加草墙障碍物及相关功能
实现草墙障碍物系统,包括以下主要变更: - 新增草墙障碍物资源、脚本和场景 - 添加障碍物状态显示UI - 扩展组件管理器支持障碍物类型 - 修改子弹系统以支持对障碍物的碰撞检测 - 调整实体碰撞层设置 - 为公鸡角色添加草墙武器 新增功能允许玩家放置可阻挡敌人的草墙障碍物,并显示其生命值状态
This commit is contained in:
@@ -8,6 +8,10 @@ signal died()
|
||||
|
||||
signal energyChanged(energy: float, dontChangeDirection: bool)
|
||||
|
||||
enum Layers {
|
||||
PLAYER = 1 << 2,
|
||||
ENEMY = 1 << 1,
|
||||
}
|
||||
const TITLE_FLAG = INF
|
||||
var fields = {
|
||||
"生存": TITLE_FLAG,
|
||||
@@ -143,8 +147,12 @@ func _ready():
|
||||
)
|
||||
if displayName == MultiplayerState.playerName:
|
||||
rebuildWeaponIcons()
|
||||
collision_layer = Layers.PLAYER
|
||||
collision_mask = Layers.PLAYER
|
||||
else:
|
||||
applyLevel()
|
||||
collision_layer = Layers.ENEMY
|
||||
collision_mask = Layers.ENEMY
|
||||
health = fields.get(FieldStore.Entity.MAX_HEALTH)
|
||||
energy = fields.get(FieldStore.Entity.MAX_ENERGY)
|
||||
if is_instance_valid(statebar):
|
||||
@@ -242,8 +250,7 @@ func takeDamage(baseDamage: float, crit: bool = false, perfectMiss: bool = false
|
||||
func bulletHit(bullet: BulletBase, crit: bool):
|
||||
# 当受伤时
|
||||
hurtAnimator.play("hurt")
|
||||
var baseDamage: float = bullet.getDamage() * bullet.launcher.fields.get(FieldStore.Entity.DAMAGE_MULTIPILER) * randf_range(1 - GameRule.damageOffset, 1 + GameRule.damageOffset)
|
||||
var damage = baseDamage + baseDamage * int(crit) * fields.get(FieldStore.Entity.CRIT_DAMAGE)
|
||||
var damage = bullet.calculateDamage(crit)
|
||||
var perfectMiss = false
|
||||
if sprinting:
|
||||
playSound("miss")
|
||||
|
||||
Reference in New Issue
Block a user