mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
[MIRROR] Slightly* buffs Maint Drones [MDB IGNORE] (#10814)
* Slightly* buffs Maint Drones (#64150) Increases drone health from 30 to 45, making it harder to instantly die from some things Lowers the range that drones can't do interactions from 4 tiles to 3 tiles Lowers stun time from 10 seconds to 7 seconds when EMP'd Wait time for when a mob has recently interacted with something has been decreased from 5 minutes to 1 minute Drones can now build near dead mobs, but not interact when right next to them (to prevent pulling) Also adds a new argument for the shy component that allows interacting near dead bodies, but not right on top of them Why It's Good For The Game This is mainly for the QOL of Drones. I know "maint" is implied in the name of drones, but it sucks that you have to hide in maint for half the shift while all the airlocks are being opened by everyone, being unable to fix the station from explosions. Also even though the range was 4 tiles for interacting next to living mobs, it seemed a bit excessive when you tried to do stuff. Changelog cl balance: Maintenance Drone health changed from 30 to 45 balance: Maintenance Drone stun times from getting EMP'd reduced from 10 seconds to 7 seconds qol: Maintenance Drones can now interact near dead bodies qol: Maintenance Drones don't have to wait 5 minutes to open an airlock when someone recently did it. Now they have to wait 1 minute. qol: Changed distance Maintenance Drones aren't allowed to interact with anything from a nearby mob from 4 tiles to 3 tiles /cl * Slightly* buffs Maint Drones Co-authored-by: DragonTrance <dylan661993@gmail.com>
This commit is contained in:
co-authored by
DragonTrance
parent
05796f4bd9
commit
91120b7de0
@@ -13,12 +13,14 @@
|
||||
var/message = "You find yourself too shy to do that around %TARGET!"
|
||||
/// Are you shy around a dead body?
|
||||
var/dead_shy = FALSE
|
||||
/// If dead_shy is false and this is true, you're only shy when right next to a dead target
|
||||
var/dead_shy_immediate = TRUE
|
||||
/// Invalidate last_result at this time
|
||||
COOLDOWN_DECLARE(result_cooldown)
|
||||
/// What was our last result?
|
||||
var/last_result = FALSE
|
||||
|
||||
/datum/component/shy/Initialize(mob_whitelist, shy_range, message, dead_shy, machine_whitelist)
|
||||
/datum/component/shy/Initialize(mob_whitelist, shy_range, message, dead_shy, dead_shy_immediate, machine_whitelist)
|
||||
if(!ismob(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
src.mob_whitelist = mob_whitelist
|
||||
@@ -28,6 +30,8 @@
|
||||
src.message = message
|
||||
if(dead_shy)
|
||||
src.dead_shy = dead_shy
|
||||
if(dead_shy_immediate)
|
||||
src.dead_shy_immediate = dead_shy_immediate
|
||||
if(machine_whitelist)
|
||||
src.machine_whitelist = machine_whitelist
|
||||
|
||||
@@ -75,10 +79,18 @@
|
||||
|
||||
if(length(strangers) && locate(/mob/living) in strangers)
|
||||
for(var/mob/living/person in strangers)
|
||||
if(person != owner && !is_type_in_typecache(person, mob_whitelist) && (person.stat != DEAD || dead_shy))
|
||||
to_chat(owner, span_warning("[replacetext(message, "%TARGET", person)]"))
|
||||
result = TRUE
|
||||
break
|
||||
if(person == owner)
|
||||
continue
|
||||
if(!is_type_in_typecache(person, mob_whitelist))
|
||||
continue
|
||||
if(person.stat == DEAD && !dead_shy)
|
||||
if(!dead_shy_immediate)
|
||||
continue
|
||||
else if(!owner.DirectAccess(person))
|
||||
continue
|
||||
to_chat(owner, span_warning("[replacetext(message, "%TARGET", person)]"))
|
||||
result = TRUE
|
||||
break
|
||||
|
||||
last_result = result
|
||||
COOLDOWN_START(src, result_cooldown, SHY_COMPONENT_CACHE_TIME)
|
||||
|
||||
Reference in New Issue
Block a user