--- autoload\bridge_3d.gd +++ autoload\bridge_3d.gd @@ -30,6 +30,7 @@ const RoomTerrain := preload("res://scripts/core/room_terrain.gd") const RestaurantDressing3D := preload("res://scripts/core/restaurant_dressing_3d.gd") const TickSmoother := preload("res://scripts/core/tick_smoother.gd") +const SpeedLines3D := preload("res://scripts/core/speed_lines_3d.gd") const SHAPE_DEFAULTS := { "enemies": {"shape": "capsule", "tall": 92.0}, @@ -1177,6 +1178,10 @@ _refresh_target_glow(avatar, not preview.is_empty() or entity == highlighted_entity, preview.get("color", highlighted_color)) _face_avatar(entity, avatar) + var speed_lines := avatar.get_node_or_null("SpeedLines") as SpeedLines3D + if speed_lines != null and entity is Enemy: + var beast := entity as Enemy + speed_lines.sync(avatar.global_position, beast.get_real_velocity(), beast.active and beast.visible) if entity is OrderBoard: _sync_order_board(entity, avatar) _refresh_badge(entity, avatar) @@ -1528,6 +1533,11 @@ avatar = Shape3DFactory.build(form, footprint, tint) if entity is Enemy: _tint_enemy_avatar(avatar, (entity as Enemy).variant_tint) + if (entity as Enemy).enemy_id == "powder_gull": + var speed_lines := SpeedLines3D.new() + speed_lines.name = "SpeedLines" + speed_lines.height = float(avatar.get_meta("tall", form.get("tall", 80.0))) + avatar.add_child(speed_lines) if not top_visual.is_empty(): _attach_top_visual(avatar, str(top_visual[0]), str(top_visual[1]), str(top_visual[2]), float(top_visual[3]))