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:
NanakoAC
2016-09-13 15:49:13 +03:00
committed by skull132
parent b772cf0381
commit ddecbbe047
11 changed files with 167 additions and 35 deletions
+10 -7
View File
@@ -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")
+6
View File
@@ -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
+2 -1
View File
@@ -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
+7 -3
View File
@@ -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)
+1 -7
View File
@@ -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)