Increases move resistance on NODE Drones, adds handling for when the drone is seperated from the node (#83309)

## About The Pull Request

NODE Drones now have higher move resistance
(MOVE_FORCE_EXTREMELY_STRONG), preventing them from being bumped off the
node, pulled away, or lifted away by a fulton extraction kit.

As an extra layer of assurance, the NODE Drone will depart from the site
if it is moved off of its vent.

## Why It's Good For The Game

Closes #83164.

I'm pretty sure these things shouldn't really be ever moving off of
their vents.
## Changelog
🆑 Rhials
fix: You can no longer force NODE Drones off of ore vents. That includes
using fulton packs!
fix: When a NODE Drone is forcibly separated from its vent, it will fly
away.
/🆑
This commit is contained in:
Rhials
2024-05-30 12:46:48 +01:00
committed by GitHub
parent e81f9c6ef0
commit a05321db2f
3 changed files with 26 additions and 8 deletions
@@ -216,6 +216,7 @@
node = new /mob/living/basic/node_drone(loc)
node.arrive(src)
RegisterSignal(node, COMSIG_QDELETING, PROC_REF(handle_wave_conclusion))
RegisterSignal(node, COMSIG_MOVABLE_MOVED, PROC_REF(handle_wave_conclusion))
particles = new /particles/smoke/ash()
for(var/i in 1 to 5) // Clears the surroundings of the ore vent before starting wave defense.
for(var/turf/closed/mineral/rock in oview(i))
@@ -268,8 +269,18 @@
SEND_SIGNAL(src, COMSIG_VENT_WAVE_CONCLUDED)
COOLDOWN_RESET(src, wave_cooldown)
particles = null
if(!QDELETED(node)) ///The Node Drone has survived the wave defense, and the ore vent is tapped.
tapped = TRUE
if(!QDELETED(node))
if(get_turf(node) != get_turf(src))
visible_message(span_danger("The [node] detaches from the [src], and the vent closes back up!"))
icon_state = initial(icon_state)
update_appearance(UPDATE_ICON_STATE)
UnregisterSignal(node, COMSIG_MOVABLE_MOVED)
node.pre_escape(success = FALSE)
node = null
return //Start over!
tapped = TRUE //The Node Drone has survived the wave defense, and the ore vent is tapped.
SSore_generation.processed_vents += src
balloon_alert_to_viewers("vent tapped!")
icon_state = icon_state_tapped