extends BasicEnemy class_name BossLobster ## The Snippest itself: the basic lobster, scaled up in size and stats. ## Spawned by the EnemySpawner on boss milestone waves. const BOSS_MULTIPLIER := 2.0 func _ready(): # Scaled combat stats - applied BEFORE super._ready() so the hitbox # picks them up via set_stats(attack_damage, attack_knockback) max_health *= BOSS_MULTIPLIER attack_damage *= BOSS_MULTIPLIER attack_knockback *= BOSS_MULTIPLIER attack_range *= BOSS_MULTIPLIER # A bigger lobster has longer reach # Movement deliberately stays near normal - big things lumber move_speed *= 1.2 # Boss rewards: jackpot gold, guaranteed health orb gold_reward = 250 health_orb_drop_chance = 1.0 super._ready() _apply_boss_scale() ## Uniformly scale the visual and collision children around the root. ## Child-node scaling (not root CharacterBody3D scale, not shared shape ## resources) keeps physics sane and other lobsters unaffected. func _apply_boss_scale(): for child_name in ["Mesh", "CollisionShape3D", "HurtBox", "HitBox"]: var child = get_node_or_null(child_name) if child: child.transform = child.transform.scaled(Vector3.ONE * BOSS_MULTIPLIER)