mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-19 19:10:05 +01:00
Maintenance Hatch Expansion and ID/Silicon Tweaks (#861)
tweak: "Spiderbots no longer block movement." tweak: "Spiderbots can now use airlock maintenance hatches." rscadd: "PAIs can now have the owner's ID card scanned onto them to share access." tweak: "PAIs can now use airlock maintenance hatches, but only on airlocks they have access to. Requires a scanned ID" tweak: "Added new rodent speech verbs for PAIs" tweak: "Positronic brains and MMIs outside of a chassis can now use ping/beep/buzz audio emotes." tweak: "You can now click an ID in your hand to imprint your biometric data on it, if it's not present. This is only useful if you lose the ID you spawn with and get a new one made up."
This commit is contained in:
@@ -28,15 +28,12 @@
|
||||
if ("custom")
|
||||
return custom_emote(m_type, message)
|
||||
if ("alarm")
|
||||
src << "You sound an alarm."
|
||||
message = "<B>[src]</B> sounds an alarm."
|
||||
m_type = 2
|
||||
if ("alert")
|
||||
src << "You let out a distressed noise."
|
||||
message = "<B>[src]</B> lets out a distressed noise."
|
||||
m_type = 2
|
||||
if ("notice")
|
||||
src << "You play a loud tone."
|
||||
message = "<B>[src]</B> plays a loud tone."
|
||||
m_type = 2
|
||||
if ("flash")
|
||||
@@ -46,15 +43,21 @@
|
||||
message = "<B>[src]</B> blinks."
|
||||
m_type = 1
|
||||
if ("whistle")
|
||||
src << "You whistle."
|
||||
message = "<B>[src]</B> whistles."
|
||||
m_type = 2
|
||||
if ("beep")
|
||||
src << "You beep."
|
||||
if("beep")
|
||||
message = "<B>[src]</B> beeps."
|
||||
playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0)
|
||||
m_type = 2
|
||||
if("ping")
|
||||
message = "<B>[src]</B> pings."
|
||||
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
|
||||
m_type = 2
|
||||
if("buzz")
|
||||
message = "<B>[src]</B> buzzes."
|
||||
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
m_type = 2
|
||||
if ("boop")
|
||||
src << "You boop."
|
||||
message = "<B>[src]</B> boops."
|
||||
m_type = 2
|
||||
if ("help")
|
||||
|
||||
@@ -676,6 +676,12 @@ default behaviour is:
|
||||
/mob/living/proc/slip(var/slipped_on,stun_duration=8)
|
||||
return 0
|
||||
|
||||
/mob/living/proc/under_door()
|
||||
//This function puts a silicon on a layer that makes it draw under doors, then periodically checks if its still standing on a door
|
||||
if (layer > UNDERDOOR)//Don't toggle it if we're hiding
|
||||
layer = UNDERDOOR
|
||||
underdoor = 1
|
||||
|
||||
/mob/living/carbon/drop_from_inventory(var/obj/item/W, var/atom/Target = null)
|
||||
if(W in internal_organs)
|
||||
return
|
||||
|
||||
@@ -45,4 +45,5 @@
|
||||
var/composition_reagent_quantity
|
||||
var/mouth_size = 2//how large of a creature it can swallow at once, and how big of a bite it can take out of larger things
|
||||
var/eat_types = 0//This is a bitfield which must be initialised in New(). The valid values for it are in devour.dm
|
||||
var/datum/reagents/metabolism/ingested = null
|
||||
var/datum/reagents/metabolism/ingested = null
|
||||
var/underdoor //Used for mobs that can walk through maintenance hatches - drones, pais, and spiderbots
|
||||
@@ -5,8 +5,9 @@
|
||||
|
||||
emote_type = 2 // pAIs emotes are heard, not seen, so they can be seen through a container (eg. person)
|
||||
small = 1
|
||||
pass_flags = 1
|
||||
pass_flags = PASSTABLE | PASSDOORHATCH
|
||||
density = 0
|
||||
mob_size = 1//As a holographic projection, a pAI is massless except for its card device
|
||||
|
||||
mob_size = 1
|
||||
|
||||
@@ -14,7 +15,6 @@
|
||||
|
||||
var/network = "SS13"
|
||||
var/obj/machinery/camera/current = null
|
||||
|
||||
var/ram = 100 // Used as currency to purchase different abilities
|
||||
var/list/software = list()
|
||||
var/userDNA // The DNA string of our assigned user
|
||||
@@ -34,10 +34,12 @@
|
||||
"Natural" = list("says","yells","asks"),
|
||||
"Beep" = list("beeps","beeps loudly","boops"),
|
||||
"Chirp" = list("chirps","chirrups","cheeps"),
|
||||
"Feline" = list("purrs","yowls","meows")
|
||||
"Feline" = list("purrs","yowls","meows"),
|
||||
"Rodent" = list("squeaks","squeals","squeeks")
|
||||
)
|
||||
|
||||
var/obj/item/weapon/pai_cable/cable // The cable we produce and use when door or camera jacking
|
||||
var/obj/item/weapon/card/id/ID = null //Internal ID used to store copied owner access, and to check access for airlocks
|
||||
|
||||
var/master // Name of the one who commands us
|
||||
var/master_dna // DNA string for owner verification
|
||||
@@ -106,6 +108,8 @@
|
||||
|
||||
//PDA
|
||||
pda = new(src)
|
||||
ID = new(src)
|
||||
ID.registered_name = ""
|
||||
spawn(5)
|
||||
pda.ownjob = "Personal Assistant"
|
||||
pda.owner = text("[]", src)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
var/next_alarm_notice
|
||||
var/list/datum/alarm/queued_alarms = new()
|
||||
var/underdoor
|
||||
|
||||
|
||||
#define SEC_HUD 1 //Security HUD mode
|
||||
#define MED_HUD 2 //Medical HUD mode
|
||||
@@ -370,10 +370,4 @@
|
||||
spawn(3)//A slight delay to let us finish walking out from under the door
|
||||
layer = initial(layer)
|
||||
|
||||
/mob/living/silicon/proc/under_door()
|
||||
//This function puts a silicon on a layer that makes it draw under doors, then periodically checks if its still standing on a door
|
||||
if (layer > UNDERDOOR)//Don't toggle it if we're hiding
|
||||
layer = UNDERDOOR
|
||||
underdoor = 1
|
||||
|
||||
/mob/living/silicon/proc/not_under_door()
|
||||
@@ -23,7 +23,7 @@
|
||||
icon_dead = "spiderbot-smashed"
|
||||
|
||||
wander = 0
|
||||
|
||||
density = 0
|
||||
health = 25
|
||||
maxHealth = 25
|
||||
hunger_enabled = 0
|
||||
@@ -39,7 +39,7 @@
|
||||
var/emagged = 0
|
||||
var/obj/item/held_item = null //Storage for single item they can hold.
|
||||
speed = -1 //Spiderbots gotta go fast.
|
||||
pass_flags = PASSTABLE
|
||||
pass_flags = PASSTABLE | PASSDOORHATCH
|
||||
small = 1
|
||||
speak_emote = list("beeps","clicks","chirps")
|
||||
|
||||
@@ -298,3 +298,17 @@
|
||||
|
||||
/mob/living/simple_animal/spiderbot/binarycheck()
|
||||
return positronic
|
||||
|
||||
/mob/living/simple_animal/spiderbot/Move(newloc, direct)
|
||||
..(newloc,direct)
|
||||
if (underdoor)
|
||||
underdoor = 0
|
||||
if ((layer == UNDERDOOR))//if this is false, then we must have used hide, or had our layer changed by something else. We wont do anymore checks for this move proc
|
||||
for (var/obj/machinery/door/D in loc)
|
||||
if (D.hashatch)
|
||||
underdoor = 1
|
||||
break
|
||||
|
||||
if (!underdoor)
|
||||
spawn(3)//A slight delay to let us finish walking out from under the door
|
||||
layer = initial(layer)
|
||||
Reference in New Issue
Block a user