Maintenance Drone

Small player controlled fixer-upper
The maintenace drone is a ghost role with the objective to repair and maintain the station.
Featuring two dexterous hands, and a built in toolbox stocked with tools.
They have laws to prevent them from doing anything else.
Vars | |
alarms | List of active alarms. See /mob/living/simple_animal/drone/proc/triggerAlarm and /mob/living/simple_animal/drone/proc/cancelAlarm |
---|---|
colour | Stored drone color, restored when unhacked |
default_hatmask | Default /mob/living/simple_animal/drone/var/head item |
default_storage | Default /mob/living/simple_animal/drone/var/internal_storage item |
drone_area_blacklist_flat | blacklisted drone areas, direct |
drone_area_blacklist_recursive | blacklisted drone areas, recursive/includes descendants |
drone_item_whitelist_flat | whitelisted drone items, direct |
drone_item_whitelist_recursive | whitelisted drone items, recursive/includes descendants |
drone_machinery_blacklist_compiled | blacklisted drone machine typecache, compiled from [var/drone_machinery_blacklist_flat], [var/list/drone_machinery_blacklist_recursive], negated by their whitelist counterparts |
drone_machinery_blacklist_flat | blacklisted drone machines, direct |
drone_machinery_blacklist_recursive | blacklisted drone machines, recursive/includes descendants |
drone_machinery_whitelist_flat | cancels out blacklisted machines, direct |
drone_machinery_whitelist_recursive | cancels out blacklisted machines, recursive/includes descendants |
flavortext | Flavor text announced to drones on /mob/proc/Login |
hacked | Hacked state, see /mob/living/simple_animal/drone/proc/update_drone_hack |
head | Headwear slot |
heavy_emp_damage | Amount of damage sustained if hit by a heavy EMP pulse |
internal_storage | Internal storage slot. Fits any item |
laws | Drone laws announced on spawn |
picked | TRUE if we have picked our visual appearance, FALSE otherwise (default) |
shy | If we have laws to minimize bothering others. Enables or disables drone laws enforcement components (use [/mob/living/simple_animal/drone/proc/set_shy] to set) |
visualAppearance | icon_state of drone from icons/mobs/drone.dmi |
Procs | |
alert_drones | Wraps /proc/_alert_drones with defaults |
cancelAlarm | Clears alarm and alerts drones |
check_laws | Echoes drone laws to the user |
check_menu | check_menu: Checks if we are allowed to interact with a radial menu |
drone_chat | Wraps /mob/living/simple_animal/drone/proc/alert_drones as a Drone Chat |
drone_ping | Creates an alert to drones in the same network |
freeCamera | This isn't currently needed since drones do jack shit with cameras. I hate this code so much |
liberate | |
pickVisualAppearance | Prompt for usr to pick /mob/living/simple_animal/drone/var/visualAppearance |
triggerAlarm | Alerts drones about different priorities of alarms |
try_reactivate | Called when a drone attempts to reactivate a dead drone |
update_drone_hack | Hack or unhack a drone |
update_drone_icon_hacked | Changes the icon state to a hacked version |
Var Details
alarms

List of active alarms. See /mob/living/simple_animal/drone/proc/triggerAlarm and /mob/living/simple_animal/drone/proc/cancelAlarm
colour

Stored drone color, restored when unhacked
default_hatmask

Default /mob/living/simple_animal/drone/var/head item
default_storage

Default /mob/living/simple_animal/drone/var/internal_storage item
drone_area_blacklist_flat

blacklisted drone areas, direct
drone_area_blacklist_recursive

blacklisted drone areas, recursive/includes descendants
drone_item_whitelist_flat

whitelisted drone items, direct
drone_item_whitelist_recursive

whitelisted drone items, recursive/includes descendants
drone_machinery_blacklist_compiled

blacklisted drone machine typecache, compiled from [var/drone_machinery_blacklist_flat], [var/list/drone_machinery_blacklist_recursive], negated by their whitelist counterparts
drone_machinery_blacklist_flat

blacklisted drone machines, direct
drone_machinery_blacklist_recursive

blacklisted drone machines, recursive/includes descendants
drone_machinery_whitelist_flat

cancels out blacklisted machines, direct
drone_machinery_whitelist_recursive

cancels out blacklisted machines, recursive/includes descendants
flavortext

Flavor text announced to drones on /mob/proc/Login
hacked

Hacked state, see /mob/living/simple_animal/drone/proc/update_drone_hack
head

Headwear slot
heavy_emp_damage

Amount of damage sustained if hit by a heavy EMP pulse
internal_storage

Internal storage slot. Fits any item
laws

Drone laws announced on spawn
picked

TRUE
if we have picked our visual appearance, FALSE
otherwise (default)
shy

If we have laws to minimize bothering others. Enables or disables drone laws enforcement components (use [/mob/living/simple_animal/drone/proc/set_shy] to set)
visualAppearance

icon_state of drone from icons/mobs/drone.dmi
Possible states are:
Proc Details
alert_drones
Wraps /proc/_alert_drones with defaults
- source -
src
- faction_check_mob -
src
- dead_can_hear -
TRUE
cancelAlarm
Clears alarm and alerts drones
Arguments:
- class - One of the keys listed in /mob/living/simple_animal/drone/var/alarms
- A - /area the alarm occurs
- alarmsource - /atom source of the alarm
check_laws
Echoes drone laws to the user
See /mob/living/simple_animal/drone/var/laws
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
drone_chat
Wraps /mob/living/simple_animal/drone/proc/alert_drones as a Drone Chat
Shares the same radio code with binary
drone_ping
Creates an alert to drones in the same network
Prompts user for alert level of:
- Low
- Medium
- High
- Critical
Attaches area name to message
freeCamera
This isn't currently needed since drones do jack shit with cameras. I hate this code so much
liberate
F R E E D R O N E
R
E
E
D
R
O
N
E
pickVisualAppearance
Prompt for usr to pick /mob/living/simple_animal/drone/var/visualAppearance
Does nothing if there is no usr
Called on /mob/proc/Login
triggerAlarm
Alerts drones about different priorities of alarms
Arguments:
- class - One of the keys listed in /mob/living/simple_animal/drone/var/alarms
- A - /area the alarm occurs
- O - unused argument, see [/mob/living/silicon/robot/triggerAlarm]
- alarmsource - /atom source of the alarm
try_reactivate
Called when a drone attempts to reactivate a dead drone
If the owner is still ghosted, will notify them. If the owner cannot be found, fails with an error message.
Arguments:
- user - The /mob/living attempting to reactivate the drone
update_drone_hack
Hack or unhack a drone
This changes the drone's laws to destroy the station or resets them to normal.
Some debuffs are applied like slowing the drone down and disabling vent crawling
Arguments
- hack - Boolean if the drone is being hacked or unhacked
update_drone_icon_hacked
Changes the icon state to a hacked version
See also