Files
SurvivalOfTheSnippest/level/scenes/enemy_spawner.tscn
T
Scottlg 8f28304d0f Wave escalation and the Snippest boss
Escalation (EnemySpawner exports, all tunable):
- Wave size grows +1 enemy per wave, capped at 20
- Enemy health +15% and damage +10% per wave, applied identically on
  every peer via the spawn RPC before _ready (so hitbox stats and
  current_health pick them up)

Boss milestone every 5th wave: the Snippest - the basic lobster at
5x scale and 5x combat stats (50 HP, 25 damage, 5x knockback and
reach). Movement deliberately not 5x (1.2x - it lumbers). Pays 250
gold and always drops a health orb. Wave escalation multipliers stack
on top, so later bosses keep scaling.

Boss scene instances basic_enemy.tscn with the BossLobster script;
visual/collision children are scaled uniformly in code (not the
CharacterBody3D root, not shared shape resources).
2026-07-02 22:27:14 +01:00

30 lines
1.1 KiB
Plaintext

[gd_scene load_steps=5 format=3 uid="uid://blm8lav3xh2yw"]
[ext_resource type="Script" path="res://level/scripts/enemy_spawner.gd" id="1_spawner"]
[ext_resource type="PackedScene" uid="uid://byknup31d2b53" path="res://level/scenes/enemies/basic_enemy.tscn" id="2_basic_enemy"]
[ext_resource type="PackedScene" path="res://level/scenes/enemies/boss_lobster.tscn" id="3_boss"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_indicator"]
albedo_color = Color(1, 0.5, 0, 0.3)
transparency = 1
cull_mode = 2
shading_mode = 0
[node name="EnemySpawner" type="Node3D"]
script = ExtResource("1_spawner")
spawn_radius = 20.0
spawn_height = 0.5
enemies_per_wave = 10
auto_start_next_wave = false
wave_delay = 5.0
enemy_scenes = Array[PackedScene]([ExtResource("2_basic_enemy")])
boss_scene = ExtResource("3_boss")
[node name="SpawnRadiusIndicator" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
visible = false
material_override = SubResource("StandardMaterial3D_indicator")
[node name="CenterMarker" type="MeshInstance3D" parent="."]
transform = Transform3D(0.5, 0, 0, 0, 2, 0, 0, 0, 0.5, 0, 1, 0)