@@ -523,13 +523,11 @@
|
||||
I = U.hastie
|
||||
if(I.icon_action_button)
|
||||
var/obj/screen/item_action/A = new(hud_used)
|
||||
|
||||
|
||||
//A.icon = 'icons/mob/screen1_action.dmi'
|
||||
//A.icon_state = I.icon_action_button
|
||||
|
||||
A.icon = ui_style2icon(client.prefs.UI_style)
|
||||
A.icon_state = "template"
|
||||
|
||||
var/image/img = image(I.icon, A, I.icon_state)
|
||||
img.pixel_x = 0
|
||||
img.pixel_y = 0
|
||||
@@ -540,9 +538,7 @@
|
||||
else
|
||||
A.name = "Use [I.name]"
|
||||
A.owner = I
|
||||
|
||||
hud_used.item_action_list += A
|
||||
|
||||
switch(num)
|
||||
if(1)
|
||||
A.screen_loc = ui_action_slot1
|
||||
@@ -554,16 +550,6 @@
|
||||
A.screen_loc = ui_action_slot4
|
||||
if(5)
|
||||
A.screen_loc = ui_action_slot5
|
||||
if(6)
|
||||
A.screen_loc = ui_action_slot6
|
||||
if(7)
|
||||
A.screen_loc = ui_action_slot7
|
||||
if(8)
|
||||
A.screen_loc = ui_action_slot8
|
||||
if(9)
|
||||
A.screen_loc = ui_action_slot9
|
||||
if(10)
|
||||
A.screen_loc = ui_action_slot10
|
||||
break //5 slots available, so no more can be added.
|
||||
num++
|
||||
src.client.screen += src.hud_used.item_action_list
|
||||
src.client.screen += src.hud_used.item_action_list
|
||||
@@ -22,6 +22,9 @@
|
||||
return
|
||||
|
||||
var/mob/living/carbon/target = targets[1]
|
||||
|
||||
if(!target)
|
||||
return
|
||||
|
||||
if(!(target.type in compatible_mobs))
|
||||
user << "<span class='notice'>It'd be stupid to curse [target] with a horse's head!</span>"
|
||||
|
||||
@@ -10,14 +10,12 @@
|
||||
range = 1
|
||||
cooldown_min = 200 //100 deciseconds reduction per rank
|
||||
var/list/protected_roles = list("Wizard","Changeling","Cultist") //which roles are immune to the spell
|
||||
var/list/compatible_mobs = list(/mob/living/carbon/human,/mob/living/carbon/monkey) //which types of mobs are affected by the spell. NOTE: change at your own risk
|
||||
var/base_spell_loss_chance = 20 //base probability of the wizard losing a spell in the process
|
||||
var/spell_loss_chance_modifier = 7 //amount of probability of losing a spell added per spell (mind_transfer included)
|
||||
var/spell_loss_amount = 1 //the maximum amount of spells possible to lose during a single transfer
|
||||
var/msg_wait = 500 //how long in deciseconds it waits before telling that body doesn't feel right or mind swap robbed of a spell
|
||||
var/paralysis_amount_caster = 20 //how much the caster is paralysed for after the spell
|
||||
var/paralysis_amount_victim = 20 //how much the victim is paralysed for after the spell
|
||||
|
||||
icon_power_button = "spell_mind"
|
||||
|
||||
/*
|
||||
@@ -40,12 +38,8 @@ Also, you never added distance checking after target is selected. I've went ahea
|
||||
user << "They are too far away!"
|
||||
return
|
||||
|
||||
if(!(target.type in compatible_mobs))
|
||||
user << "Their mind isn't compatible with yours."
|
||||
return
|
||||
|
||||
if(target.stat == DEAD)
|
||||
user << "You didn't study necromancy back at the Space Wizard Federation academy."
|
||||
user << "You don't particularly want to be dead."
|
||||
return
|
||||
|
||||
if(!target.key || !target.mind)
|
||||
|
||||
@@ -27,7 +27,7 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
|
||||
var/obj/machinery/autolathe/A = holder
|
||||
switch(index)
|
||||
if(AUTOLATHE_HACK_WIRE)
|
||||
A.hacked = !mended
|
||||
A.adjust_hacked(!mended)
|
||||
if(AUTOLATHE_SHOCK_WIRE)
|
||||
A.shocked = !mended
|
||||
if(AUTOLATHE_DISABLE_WIRE)
|
||||
@@ -39,10 +39,10 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
|
||||
var/obj/machinery/autolathe/A = holder
|
||||
switch(index)
|
||||
if(AUTOLATHE_HACK_WIRE)
|
||||
A.hacked = !A.hacked
|
||||
A.adjust_hacked(!A.hacked)
|
||||
spawn(50)
|
||||
if(A && !IsIndexCut(index))
|
||||
A.hacked = 0
|
||||
A.adjust_hacked(0)
|
||||
Interact(usr)
|
||||
if(AUTOLATHE_SHOCK_WIRE)
|
||||
A.shocked = !A.shocked
|
||||
|
||||
@@ -685,7 +685,7 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
/mob/proc/changeling_hivedownload()
|
||||
set category = "Changeling"
|
||||
set name = "Hive Absorb (20)"
|
||||
set desc = "Allows you to absorb DNA that is being channeled in the airwaves."
|
||||
set desc = "Allows you to absorb DNA that is being channelled in the airwaves."
|
||||
|
||||
var/datum/changeling/changeling = changeling_power(20,1)
|
||||
if(!changeling) return
|
||||
|
||||
@@ -406,6 +406,7 @@
|
||||
spellname = "mindswap"
|
||||
icon_state ="bookmindswap"
|
||||
desc = "This book's cover is pristine, though its pages look ragged and torn."
|
||||
var/mob/stored_swap = null //Used in used book recoils to store an identity for mindswaps
|
||||
|
||||
/obj/item/weapon/spellbook/oneuse/mindswap/onlearned()
|
||||
spellname = pick("fireball","smoke","blind","forcewall","knock","horses","charge")
|
||||
@@ -415,8 +416,45 @@
|
||||
|
||||
/obj/item/weapon/spellbook/oneuse/mindswap/recoil(mob/user as mob)
|
||||
..()
|
||||
user <<"<span class='warning'>You suddenly don't feel like yourself!</span>"
|
||||
wabbajack(user)
|
||||
if(stored_swap in dead_mob_list)
|
||||
stored_swap = null
|
||||
if(!stored_swap)
|
||||
stored_swap = user
|
||||
user <<"<span class='warning'>For a moment you feel like you don't even know who you are anymore.</span>"
|
||||
return
|
||||
if(stored_swap == user)
|
||||
user <<"<span class='notice'>You stare at the book some more, but there doesn't seem to be anything else to learn...</span>"
|
||||
return
|
||||
|
||||
if(user.mind.special_verbs.len)
|
||||
for(var/V in user.mind.special_verbs)
|
||||
user.verbs -= V
|
||||
|
||||
if(stored_swap.mind.special_verbs.len)
|
||||
for(var/V in stored_swap.mind.special_verbs)
|
||||
stored_swap.verbs -= V
|
||||
|
||||
var/mob/dead/observer/ghost = stored_swap.ghostize(0)
|
||||
ghost.spell_list = stored_swap.spell_list
|
||||
|
||||
user.mind.transfer_to(stored_swap)
|
||||
stored_swap.spell_list = user.spell_list
|
||||
|
||||
if(stored_swap.mind.special_verbs.len)
|
||||
for(var/V in user.mind.special_verbs)
|
||||
user.verbs += V
|
||||
|
||||
ghost.mind.transfer_to(user)
|
||||
user.key = ghost.key
|
||||
user.spell_list = ghost.spell_list
|
||||
|
||||
if(user.mind.special_verbs.len)
|
||||
for(var/V in user.mind.special_verbs)
|
||||
user.verbs += V
|
||||
|
||||
stored_swap <<"<span class='warning'>You're suddenly somewhere else... and someone else?!</span>"
|
||||
user <<"<span class='warning'>Suddenly you're staring at [src] again... where are you, who are you?!</span>"
|
||||
stored_swap = null
|
||||
|
||||
/obj/item/weapon/spellbook/oneuse/forcewall
|
||||
spell = /obj/effect/proc_holder/spell/wizard/aoe_turf/conjure/forcewall
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
_color = "blue"
|
||||
can_label = 0
|
||||
/obj/machinery/portable_atmospherics/canister/toxins
|
||||
name = "Canister \[Toxin (Bio)\]"
|
||||
name = "Canister \[Toxin (Plasma)\]"
|
||||
icon_state = "orange"
|
||||
_color = "orange"
|
||||
can_label = 0
|
||||
@@ -336,7 +336,7 @@ update_flag
|
||||
"\[N2O\]" = "redws", \
|
||||
"\[N2\]" = "red", \
|
||||
"\[O2\]" = "blue", \
|
||||
"\[Toxin (Bio)\]" = "orange", \
|
||||
"\[Toxin (Plasma)\]" = "orange", \
|
||||
"\[CO2\]" = "black", \
|
||||
"\[Air\]" = "grey", \
|
||||
"\[CAUTION\]" = "yellow", \
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
var/processing = 0
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker = null
|
||||
var/points = 0
|
||||
var/in_beaker = 1
|
||||
var/menustat = "menu"
|
||||
var/efficiency = 0
|
||||
var/productivity = 0
|
||||
@@ -137,11 +138,12 @@
|
||||
menustat = "menu"
|
||||
if(beaker)
|
||||
dat += "<div class='statusDisplay'>Biomass: [points] units.</div><BR>"
|
||||
dat += "<A href='?src=\ref[src];activate=1'>Activate</A><A href='?src=\ref[src];detach=1'>Detach Container</A>"
|
||||
dat += "<A href='?src=\ref[src];activate=1'>Activate</A><A href='?src=\ref[src];detach=1'>Detach Container</A><BR>"
|
||||
dat += "Put fertilizer in: <A href='?src=\ref[src];inbeaker=1'>[in_beaker ? "Beaker" : "Bottle"]</A>"
|
||||
dat += "<h3>Food:</h3>"
|
||||
dat += "<div class='statusDisplay'>"
|
||||
dat += "10 milk: <A href='?src=\ref[src];create=milk;amount=1'>Make</A> ([20/efficiency])<BR>"
|
||||
/*dat += "10 cream: <A href='?src=\ref[src];create=cream;amount=1'>Make</A> ([30/efficiency])<BR>"*/
|
||||
dat += "10 cream: <A href='?src=\ref[src];create=cream;amount=1'>Make</A> ([30/efficiency])<BR>"
|
||||
dat += "Monkey cube: <A href='?src=\ref[src];create=meat;amount=1'>Make</A> ([250/efficiency])"
|
||||
dat += "</div>"
|
||||
dat += "<h3>Nutrients:</h3>"
|
||||
@@ -153,14 +155,14 @@
|
||||
dat += "<h3>Leather:</h3>"
|
||||
dat += "<div class='statusDisplay'>"
|
||||
dat += "Wallet: <A href='?src=\ref[src];create=wallet;amount=1'>Make</A> ([100/efficiency])<BR>"
|
||||
/*dat += "Book bag: <A href='?src=\ref[src];create=bkbag;amount=1'>Make</A> ([200/efficiency])<BR>"
|
||||
dat += "Book bag: <A href='?src=\ref[src];create=bkbag;amount=1'>Make</A> ([200/efficiency])<BR>"
|
||||
dat += "Plant bag: <A href='?src=\ref[src];create=ptbag;amount=1'>Make</A> ([200/efficiency])<BR>"
|
||||
dat += "Mining satchel: <A href='?src=\ref[src];create=mnbag;amount=1'>Make</A> ([200/efficiency])<BR>"*/
|
||||
dat += "Mining satchel: <A href='?src=\ref[src];create=mnbag;amount=1'>Make</A> ([200/efficiency])<BR>"
|
||||
dat += "Botanical gloves: <A href='?src=\ref[src];create=gloves;amount=1'>Make</A> ([250/efficiency])<BR>"
|
||||
dat += "Utility belt: <A href='?src=\ref[src];create=tbelt;amount=1'>Make</A> ([300/efficiency])<BR>"
|
||||
dat += "Leather Satchel: <A href='?src=\ref[src];create=satchel;amount=1'>Make</A> ([400/efficiency])<BR>"
|
||||
dat += "Cash Bag: <A href='?src=\ref[src];create=cashbag;amount=1'>Make</A> ([400/efficiency])<BR>"
|
||||
/*dat += "Leather Jacket: <A href='?src=\ref[src];create=jacket;amount=1'>Make</A> ([500/efficiency])<BR>"*/
|
||||
dat += "Leather Jacket: <A href='?src=\ref[src];create=jacket;amount=1'>Make</A> ([500/efficiency])<BR>"
|
||||
//dat += "<h3>Other:</h3>"
|
||||
//dat += "Monkey: <A href='?src=\ref[src];create=monkey;amount=1'>Make</A> ([400/efficiency])<BR>"
|
||||
dat += "</div>"
|
||||
@@ -225,26 +227,38 @@
|
||||
if(check_container_volume(10)) return 0
|
||||
else if (check_cost(20/efficiency)) return 0
|
||||
else beaker.reagents.add_reagent("milk",10)
|
||||
/*if("cream")
|
||||
if("cream")
|
||||
if(check_container_volume(10)) return 0
|
||||
else if (check_cost(30/efficiency)) return 0
|
||||
else beaker.reagents.add_reagent("cream",10)*/
|
||||
else beaker.reagents.add_reagent("cream",10)
|
||||
if("meat")
|
||||
if (check_cost(250/efficiency)) return 0
|
||||
else new/obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc)
|
||||
if("ez")
|
||||
if (check_cost(10/efficiency)) return 0
|
||||
else new/obj/item/weapon/reagent_containers/glass/fertilizer/ez(src.loc)
|
||||
if(in_beaker)
|
||||
if(check_container_volume(10)) return 0
|
||||
else beaker.reagents.add_reagent("eznutrient",10)
|
||||
else
|
||||
new/obj/item/weapon/reagent_containers/glass/fertilizer/ez(src.loc)
|
||||
if("l4z")
|
||||
if (check_cost(20/efficiency)) return 0
|
||||
else new/obj/item/weapon/reagent_containers/glass/fertilizer/l4z(src.loc)
|
||||
if(in_beaker)
|
||||
if(check_container_volume(10)) return 0
|
||||
else beaker.reagents.add_reagent("left4zed",10)
|
||||
else
|
||||
new/obj/item/weapon/reagent_containers/glass/fertilizer/l4z(src.loc)
|
||||
if("rh")
|
||||
if (check_cost(25/efficiency)) return 0
|
||||
else new/obj/item/weapon/reagent_containers/glass/fertilizer/rh(src.loc)
|
||||
if(in_beaker)
|
||||
if(check_container_volume(10)) return 0
|
||||
else beaker.reagents.add_reagent("robustharvest",10)
|
||||
else
|
||||
new/obj/item/weapon/reagent_containers/glass/fertilizer/rh(src.loc)
|
||||
if("wallet")
|
||||
if (check_cost(100/efficiency)) return 0
|
||||
else new/obj/item/weapon/storage/wallet(src.loc)
|
||||
/*if("bkbag")
|
||||
if("bkbag")
|
||||
if (check_cost(200/efficiency)) return 0
|
||||
else new/obj/item/weapon/storage/bag/books(src.loc)
|
||||
if("ptbag")
|
||||
@@ -252,7 +266,7 @@
|
||||
else new/obj/item/weapon/storage/bag/plants(src.loc)
|
||||
if("mnbag")
|
||||
if (check_cost(200/efficiency)) return 0
|
||||
else new/obj/item/weapon/storage/bag/ore(src.loc)*/
|
||||
else new/obj/item/weapon/storage/bag/ore(src.loc)
|
||||
if("gloves")
|
||||
if (check_cost(250/efficiency)) return 0
|
||||
else new/obj/item/clothing/gloves/botanic_leather(src.loc)
|
||||
@@ -265,9 +279,9 @@
|
||||
if("cashbag")
|
||||
if (check_cost(400/efficiency)) return 0
|
||||
else new/obj/item/weapon/storage/bag/cash(src.loc)
|
||||
/*if("jacket")
|
||||
if("jacket")
|
||||
if (check_cost(500/efficiency)) return 0
|
||||
else new/obj/item/clothing/suit/jacket/leather(src.loc)*/
|
||||
else new/obj/item/clothing/suit/jacket/leather(src.loc)
|
||||
//if("monkey")
|
||||
// if (check_cost(500)) return 0
|
||||
// else new/mob/living/carbon/monkey(src.loc)
|
||||
@@ -309,4 +323,8 @@
|
||||
|
||||
else if(href_list["menu"])
|
||||
menustat = "menu"
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["inbeaker"])
|
||||
in_beaker = !in_beaker
|
||||
updateUsrDialog()
|
||||
@@ -9,6 +9,7 @@
|
||||
* Mining Satchel
|
||||
* Plant Bag
|
||||
* Sheet Snatcher
|
||||
* Book Bag
|
||||
*
|
||||
* -Sayu
|
||||
*/
|
||||
@@ -307,3 +308,19 @@
|
||||
w_class = 1
|
||||
|
||||
can_hold = list("/obj/item/weapon/coin","/obj/item/weapon/spacecash")
|
||||
|
||||
// -----------------------------
|
||||
// Book bag
|
||||
// -----------------------------
|
||||
|
||||
/obj/item/weapon/storage/bag/books
|
||||
name = "book bag"
|
||||
desc = "A bag for books."
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "bookbag"
|
||||
display_contents_with_number = 0 //This would look really stupid otherwise
|
||||
storage_slots = 7
|
||||
max_combined_w_class = 21
|
||||
max_w_class = 3
|
||||
w_class = 4 //Bigger than a book because physics
|
||||
can_hold = list(/obj/item/weapon/book, /obj/item/weapon/spellbook) //No bibles, consistent with bookcase
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/toxin
|
||||
name = "toxin first aid"
|
||||
desc = "Used to treat when you have a high amoutn of toxins in your body."
|
||||
name = "toxin first aid kit"
|
||||
desc = "Used to treat when you have a high amounts of toxins in your body."
|
||||
icon_state = "antitoxin"
|
||||
item_state = "firstaid-toxin"
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/o2
|
||||
name = "oxygen deprivation first aid"
|
||||
name = "oxygen deprivation first aid kit"
|
||||
desc = "A box full of oxygen goodies."
|
||||
icon_state = "o2"
|
||||
item_state = "firstaid-o2"
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
if(prob(25))
|
||||
new /obj/item/clothing/suit/jacket/leather(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
|
||||
@@ -414,6 +414,11 @@
|
||||
item_state = "bomber"
|
||||
flags = FPRINT | TABLEPASS
|
||||
body_parts_covered = UPPER_TORSO|ARMS
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather
|
||||
name = "leather jacket"
|
||||
desc = "Pompadour not included."
|
||||
icon_state = "leatherjacket"
|
||||
|
||||
/obj/item/clothing/suit/officercoat
|
||||
name = "Clown Officer's Coat"
|
||||
|
||||
@@ -17,119 +17,122 @@
|
||||
mecha = null//This does not appear to be used outside of reference in mecha.dm.
|
||||
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
if(brainmob && !brainmob.key && searching == 0)
|
||||
//Start the process of searching for a new user.
|
||||
user << "\blue You carefully locate the manual activation switch and start the positronic brain's boot process."
|
||||
icon_state = "posibrain-searching"
|
||||
ghost_volunteers.Cut()
|
||||
src.searching = 1
|
||||
src.request_player()
|
||||
spawn(600)
|
||||
if(ghost_volunteers.len)
|
||||
var/mob/dead/observer/O = pick(ghost_volunteers)
|
||||
if(istype(O) && O.client && O.key)
|
||||
transfer_personality(O)
|
||||
reset_search()
|
||||
/obj/item/device/mmi/posibrain/attack_self(mob/user as mob)
|
||||
if(brainmob && !brainmob.key && searching == 0)
|
||||
//Start the process of searching for a new user.
|
||||
user << "\blue You carefully locate the manual activation switch and start the positronic brain's boot process."
|
||||
icon_state = "posibrain-searching"
|
||||
ghost_volunteers.Cut()
|
||||
src.searching = 1
|
||||
src.request_player()
|
||||
spawn(600)
|
||||
if(ghost_volunteers.len)
|
||||
var/mob/dead/observer/O = pick(ghost_volunteers)
|
||||
if(istype(O) && O.client && O.key)
|
||||
transfer_personality(O)
|
||||
reset_search()
|
||||
|
||||
proc/request_player()
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
if(O.client && O.client.prefs.be_special & BE_PAI)
|
||||
if(check_observer(O))
|
||||
O << "\blue <b>\A [src] has been activated. (<a href='?src=\ref[O];jump=\ref[src]'>Teleport</a> | <a href='?src=\ref[src];signup=\ref[O]'>Sign Up</a>)"
|
||||
//question(O.client)
|
||||
/obj/item/device/mmi/posibrain/proc/request_player()
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
if(O.client && O.client.prefs.be_special & BE_PAI)
|
||||
if(check_observer(O))
|
||||
O << "\blue <b>\A [src] has been activated. (<a href='?src=\ref[O];jump=\ref[src]'>Teleport</a> | <a href='?src=\ref[src];signup=\ref[O]'>Sign Up</a>)"
|
||||
//question(O.client)
|
||||
|
||||
proc/check_observer(var/mob/dead/observer/O)
|
||||
if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
|
||||
return 0
|
||||
if(jobban_isbanned(O, "pAI"))
|
||||
return 0
|
||||
if(O.client)
|
||||
return 1
|
||||
/obj/item/device/mmi/posibrain/proc/check_observer(var/mob/dead/observer/O)
|
||||
if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
|
||||
return 0
|
||||
if(jobban_isbanned(O, "pAI"))
|
||||
return 0
|
||||
if(O.client)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
proc/question(var/client/C)
|
||||
spawn(0)
|
||||
if(!C) return
|
||||
var/response = alert(C, "Someone is requesting a personality for a positronic brain. Would you like to play as one?", "Positronic brain request", "Yes", "No", "Never for this round")
|
||||
if(!C || brainmob.key || 0 == searching) return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located.
|
||||
if(response == "Yes")
|
||||
transfer_personality(C.mob)
|
||||
else if (response == "Never for this round")
|
||||
C.prefs.be_special ^= BE_PAI
|
||||
/obj/item/device/mmi/posibrain/proc/question(var/client/C)
|
||||
spawn(0)
|
||||
if(!C) return
|
||||
var/response = alert(C, "Someone is requesting a personality for a positronic brain. Would you like to play as one?", "Positronic brain request", "Yes", "No", "Never for this round")
|
||||
if(!C || brainmob.key || 0 == searching) return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located.
|
||||
if(response == "Yes")
|
||||
transfer_personality(C.mob)
|
||||
else if (response == "Never for this round")
|
||||
C.prefs.be_special ^= BE_PAI
|
||||
|
||||
|
||||
transfer_identity(var/mob/living/carbon/H)
|
||||
name = "positronic brain ([H])"
|
||||
brainmob.name = H.real_name
|
||||
brainmob.real_name = H.real_name
|
||||
brainmob.dna = H.dna
|
||||
brainmob.timeofhostdeath = H.timeofdeath
|
||||
brainmob.stat = 0
|
||||
if(brainmob.mind)
|
||||
brainmob.mind.assigned_role = "Positronic Brain"
|
||||
if(H.mind)
|
||||
H.mind.transfer_to(brainmob)
|
||||
brainmob << "\blue You feel slightly disoriented. That's normal when you're just a metal cube."
|
||||
icon_state = "posibrain-occupied"
|
||||
/obj/item/device/mmi/posibrain/transfer_identity(var/mob/living/carbon/H)
|
||||
name = "positronic brain ([H])"
|
||||
brainmob.name = H.real_name
|
||||
brainmob.real_name = H.real_name
|
||||
brainmob.dna = H.dna
|
||||
brainmob.timeofhostdeath = H.timeofdeath
|
||||
brainmob.stat = 0
|
||||
if(brainmob.mind)
|
||||
brainmob.mind.assigned_role = "Positronic Brain"
|
||||
if(H.mind)
|
||||
H.mind.transfer_to(brainmob)
|
||||
brainmob << "\blue You feel slightly disoriented. That's normal when you're just a metal cube."
|
||||
icon_state = "posibrain-occupied"
|
||||
return
|
||||
|
||||
/obj/item/device/mmi/posibrain/proc/transfer_personality(var/mob/candidate)
|
||||
src.searching = 0
|
||||
src.brainmob.mind = candidate.mind
|
||||
//src.brainmob.key = candidate.key
|
||||
src.brainmob.ckey = candidate.ckey
|
||||
src.name = "positronic brain ([src.brainmob.name])"
|
||||
|
||||
src.brainmob << "<b>You are a positronic brain, brought into existence on [station_name()].</b>"
|
||||
src.brainmob << "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>"
|
||||
src.brainmob << "<b>Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.</b>"
|
||||
src.brainmob << "<b>Use say :b to speak to other artificial intelligences.</b>"
|
||||
src.brainmob.mind.assigned_role = "Positronic Brain"
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for (var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain chimes quietly.")
|
||||
icon_state = "posibrain-occupied"
|
||||
|
||||
/obj/item/device/mmi/posibrain/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer.
|
||||
if(src.brainmob && src.brainmob.key) return
|
||||
|
||||
src.searching = 0
|
||||
icon_state = "posibrain"
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for (var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
|
||||
|
||||
/obj/item/device/mmi/posibrain/Topic(href,href_list)
|
||||
if("signup" in href_list)
|
||||
var/mob/dead/observer/O = locate(href_list["signup"])
|
||||
if(!O) return
|
||||
volunteer(O)
|
||||
|
||||
/obj/item/device/mmi/posibrain/proc/volunteer(var/mob/dead/observer/O)
|
||||
if(!searching)
|
||||
O << "Not looking for a ghost, yet."
|
||||
return
|
||||
|
||||
proc/transfer_personality(var/mob/candidate)
|
||||
|
||||
src.searching = 0
|
||||
src.brainmob.mind = candidate.mind
|
||||
//src.brainmob.key = candidate.key
|
||||
src.brainmob.ckey = candidate.ckey
|
||||
src.name = "positronic brain ([src.brainmob.name])"
|
||||
|
||||
src.brainmob << "<b>You are a positronic brain, brought into existence on [station_name()].</b>"
|
||||
src.brainmob << "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>"
|
||||
src.brainmob << "<b>Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.</b>"
|
||||
src.brainmob << "<b>Use say :b to speak to other artificial intelligences.</b>"
|
||||
src.brainmob.mind.assigned_role = "Positronic Brain"
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for (var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain chimes quietly.")
|
||||
icon_state = "posibrain-occupied"
|
||||
|
||||
proc/reset_search() //We give the players sixty seconds to decide, then reset the timer.
|
||||
|
||||
if(src.brainmob && src.brainmob.key) return
|
||||
|
||||
src.searching = 0
|
||||
icon_state = "posibrain"
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
for (var/mob/M in viewers(T))
|
||||
M.show_message("\blue The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
|
||||
|
||||
Topic(href,href_list)
|
||||
if("signup" in href_list)
|
||||
var/mob/dead/observer/O = locate(href_list["signup"])
|
||||
if(!O) return
|
||||
volunteer(O)
|
||||
|
||||
proc/volunteer(var/mob/dead/observer/O)
|
||||
if(!searching)
|
||||
O << "Not looking for a ghost, yet."
|
||||
return
|
||||
if(!istype(O))
|
||||
O << "\red NO."
|
||||
return
|
||||
if(O in ghost_volunteers)
|
||||
O << "\blue Removed from registration list."
|
||||
ghost_volunteers.Remove(O)
|
||||
return
|
||||
if(!check_observer(O))
|
||||
O << "\red You cannot be \a [src]."
|
||||
return
|
||||
O.<< "\blue You've been added to the list of ghosts that may become this [src]. Click again to unvolunteer."
|
||||
ghost_volunteers.Add(O)
|
||||
if(!istype(O))
|
||||
O << "\red Error."
|
||||
return
|
||||
if(O in ghost_volunteers)
|
||||
O << "\blue Removed from registration list."
|
||||
ghost_volunteers.Remove(O)
|
||||
return
|
||||
if(!check_observer(O))
|
||||
O << "\red You cannot be \a [src]."
|
||||
return
|
||||
if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
|
||||
O << "\red Upon using the antagHUD you forfeited the ability to join the round."
|
||||
return
|
||||
if(jobban_isbanned(O, "pAI"))
|
||||
O << "\red You are job banned from this role."
|
||||
return
|
||||
O.<< "\blue You've been added to the list of ghosts that may become this [src]. Click again to unvolunteer."
|
||||
ghost_volunteers.Add(O)
|
||||
|
||||
|
||||
/obj/item/device/mmi/posibrain/examine()
|
||||
|
||||
set src in oview()
|
||||
|
||||
if(!usr || !src) return
|
||||
|
||||
@@ -525,43 +525,4 @@
|
||||
src.hud_used.hotkey_ui_hidden = 0
|
||||
else
|
||||
client.screen -= src.hud_used.hotkeybuttons
|
||||
src.hud_used.hotkey_ui_hidden = 1
|
||||
|
||||
|
||||
/mob/living/carbon/human/update_action_buttons()
|
||||
var/num = 1
|
||||
if(!src.hud_used) return
|
||||
if(!src.client) return
|
||||
|
||||
if(!hud_used.hud_shown) //Hud toggled to minimal
|
||||
return
|
||||
|
||||
src.client.screen -= src.hud_used.item_action_list
|
||||
hud_used.item_action_list = list()
|
||||
|
||||
for(var/obj/item/I in src)
|
||||
if(I.icon_action_button)
|
||||
var/obj/screen/item_action/A = new(src.hud_used)
|
||||
A.icon = 'icons/mob/screen1_action.dmi'
|
||||
A.icon_state = I.icon_action_button
|
||||
if(I.action_button_name)
|
||||
A.name = I.action_button_name
|
||||
else
|
||||
A.name = "Use [I.name]"
|
||||
A.owner = I
|
||||
hud_used.item_action_list += A
|
||||
switch(num)
|
||||
if(1)
|
||||
A.screen_loc = ui_action_slot1
|
||||
if(2)
|
||||
A.screen_loc = ui_action_slot2
|
||||
if(3)
|
||||
A.screen_loc = ui_action_slot3
|
||||
if(4)
|
||||
A.screen_loc = ui_action_slot4
|
||||
if(5)
|
||||
A.screen_loc = ui_action_slot5
|
||||
break //5 slots available, so no more can be added.
|
||||
num++
|
||||
|
||||
src.client.screen += src.hud_used.item_action_list
|
||||
src.hud_used.hotkey_ui_hidden = 1
|
||||
@@ -17,13 +17,17 @@
|
||||
var/datum/organ/external/H = organs_by_name["head"]
|
||||
if (!H.amputated)
|
||||
if ((health >= (config.health_threshold_dead/100*75)) && stat == DEAD) //need to get them 25% away from death point before reviving them
|
||||
mob_list -= src
|
||||
dead_mob_list -= src
|
||||
living_mob_list += src
|
||||
mob_list += src
|
||||
stat = CONSCIOUS
|
||||
ear_deaf = 0
|
||||
if (stat == CONSCIOUS && (src in dead_mob_list)) //Defib fix
|
||||
mob_list -= src
|
||||
dead_mob_list -= src
|
||||
living_mob_list += src
|
||||
living_mob_list += src
|
||||
mob_list += src
|
||||
ear_deaf = 0
|
||||
return
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
if(istype(src,/mob/dead/observer))
|
||||
var/mob/dead/observer/G = src
|
||||
if(G.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
|
||||
usr << "\blue <B>Upon using the antagHUD you forfeighted the ability to join the round.</B>"
|
||||
usr << "\blue <B>Upon using the antagHUD you forfeited the ability to join the round.</B>"
|
||||
return
|
||||
|
||||
var/deathtimeminutes = round(deathtime / 600)
|
||||
|
||||
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 278 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 36 KiB |
@@ -2616,7 +2616,7 @@
|
||||
"aYp" = (/obj/machinery/seed_extractor,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYq" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYr" = (/obj/machinery/vending/hydroseeds,/obj/machinery/camera{c_tag = "Hydroponics North"; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYs" = (/obj/machinery/biogenerator,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYs" = (/obj/machinery/biogenerator,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/requests_console{department = "Hydroponics"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
|
||||
"aYv" = (/obj/structure/bookcase{name = "bookcase (Religious)"},/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor/wood,/area/library)
|
||||
@@ -3571,7 +3571,7 @@
|
||||
"bqI" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{dir = 2; id = "mechbay"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay)
|
||||
"bqJ" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bqK" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics Requests Console"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bqL" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bqL" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bqM" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "rdlab2"; name = "Research and Development Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bqN" = (/obj/machinery/door_control{id = "rdlab2"; name = "Research and Development Lab Shutters Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bqO" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 10; icon_state = "purple"},/area/hallway/primary/starboard/east)
|
||||
@@ -3646,7 +3646,7 @@
|
||||
"bsf" = (/turf/simulated/floor,/area/assembly/chargebay)
|
||||
"bsg" = (/obj/machinery/door_control{dir = 2; id = "mechbay"; name = "Mech Bay Door Control"; pixel_x = 6; pixel_y = 24; req_access_txt = "29"},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/assembly/chargebay)
|
||||
"bsh" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/assembly/chargebay)
|
||||
"bsi" = (/obj/machinery/power/apc{dir = 1; name = "Robotics Lab APC"; pixel_x = -25; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bsi" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bsj" = (/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bsk" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bsl" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/disk/tech_disk,/obj/item/weapon/disk/tech_disk,/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/obj/item/weapon/reagent_containers/dropper,/obj/machinery/door_control{id = "rdlab"; name = "Research and Development Lab Shutters Control"; pixel_x = 24; pixel_y = 24; req_access_txt = "47"},/turf/simulated/floor{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/area/toxins/lab)
|
||||
@@ -7622,11 +7622,11 @@
|
||||
"cQD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior)
|
||||
"cQE" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "AI Satellite Antechamber APC"; pixel_x = 25},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior)
|
||||
"cQF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b"; level = 2},/obj/machinery/light/small{dir = 4},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior North-West"; dir = 8; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat)
|
||||
"cQG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/bot/floorbot,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/aisat_interior)
|
||||
"cQG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/bot/cleanbot{on = 0},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/aisat_interior)
|
||||
"cQH" = (/obj/machinery/turret{dir = 1},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior)
|
||||
"cQI" = (/obj/machinery/camera/motion{c_tag = "Mini Satellite Antechamber"; dir = 1; network = list("SS13","MiniSat")},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior)
|
||||
"cQJ" = (/obj/machinery/turret{dir = 1},/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/aisat_interior)
|
||||
"cQK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/bot/cleanbot,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/aisat_interior)
|
||||
"cQK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/bot/floorbot{on = 0},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/turret_protected/aisat_interior)
|
||||
"cQL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/obj/machinery/camera/motion{c_tag = "Mini Satellite Exterior North-East"; dir = 4; network = list("SS13","MiniSat")},/turf/simulated/floor/plating,/area/aisat)
|
||||
"cQM" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/highsecurity{icon_state = "door_locked"; locked = 1; name = "AI Chamber"; req_access_txt = "16"},/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/ai)
|
||||
"cQN" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{dir = 5; icon_state = "dark"; tag = "icon-vault (NORTHEAST)"},/area/turret_protected/ai)
|
||||
@@ -8887,7 +8887,7 @@
|
||||
"doU" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops)
|
||||
"doV" = (/obj/structure/table/reinforced,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/device/multitool,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops)
|
||||
"doW" = (/obj/structure/rack,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/obj/item/clothing/mask/gas/swat,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"doX" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"doX" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/purple,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"doY" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "CREED"; name = "Spec Ops Ready Room"; pixel_y = 16; req_access_txt = "108"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "ASSAULT"; name = "Mech Storage"; pixel_y = -4; req_access_txt = "108"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "WEAPONS"; name = "Armory Door"; pixel_y = 6; req_access_txt = "108"},/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/centcom/specops)
|
||||
"doZ" = (/obj/structure/stool/bed/chair/comfy/black{tag = "icon-comfychair_black (NORTH)"; icon_state = "comfychair_black"; dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/specops)
|
||||
"dpa" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; name = "Spec Ops Intercom"; pixel_y = 28},/obj/machinery/computer/shuttle_control{name = "gamma operations control console"; req_one_access_txt = "32"; shuttle_tag = "Gamma"},/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/centcom/specops)
|
||||
@@ -8896,7 +8896,7 @@
|
||||
"dpd" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/melee/baton/loaded,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops)
|
||||
"dpe" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"dpf" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{id_tag = "specops_centcom_dock"; pixel_y = -25; tag_door = "specops_centcom_dock_inner"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
|
||||
"dpg" = (/obj/structure/rack,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/head/bio_hood/janitor,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"dpg" = (/obj/structure/rack,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/shoes/galoshes,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/weapon/storage/belt/janitor,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
|
||||
"dph" = (/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/centcom/specops)
|
||||
"dpi" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/centcom/specops)
|
||||
"dpj" = (/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/centcom/specops)
|
||||
@@ -12910,7 +12910,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOicOicOicOicOiaaacOicOicOicOicOiaaacOicOicOicOicOiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQccQdcQecQecQfcQgcQhcQicQjcQjcQkcQlcQmcQncQncQocQpcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOpcOpcOpcOpcOpaaacOpcOpcOpcOpcOpaaacOpcOpcOpcOpcOpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOicOicOicOicOiaaaaaaaaaaaaaaaaaaaaacOicOicOicOicOiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQqcQrckrckraaqcQscQtcQtcQucQtcQtcQvaaqckrckrcQwcQxcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOpcOpcOpcOpcOpaaaaaaaaaaaaaaaaaaaaacOpcOpcOpcOpcOpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQqcPVaaaaaaaaqcQycQzcQAcQBcQCcQDcQEaaqaaaaaacPJcQxcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQFaaqaaqaaqaaqcQGcQHcQtcQtcQIcQJcQKaaqaaqaaqaaqcQLcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQFaaqaaqaaqaaqcQKcQHcQtcQtcQIcQJcQGaaqaaqaaqaaqcQLcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQqcPVaaaaaaaaiafmaaiafecQMaaiaaiabnaaiaaaaaacPJcQxcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQqcPVaaaaaaaaicQNcQOcQPcQQcQRcQScQTaaiaaaaaacPJcQxcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPWcPWcPWcPWcPWcPWcPWcPWcPWcPWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafrcPJcQqcPVaaaaaiaaicQUcQSbkxbkxbkxcQScQVaaiaaiaaacPJcQxcPVafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||