mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -2,21 +2,19 @@
|
||||
if (station_name)
|
||||
return station_name
|
||||
|
||||
var/name = "Baystation 12"
|
||||
var/name = "NSS Exodus"
|
||||
|
||||
station_name = name
|
||||
|
||||
if (config && config.server_name)
|
||||
world.name = "[config.server_name]: [name]"
|
||||
else
|
||||
world.name = name
|
||||
world.name = "Baystation12"
|
||||
|
||||
return name
|
||||
|
||||
/proc/world_name(var/name)
|
||||
|
||||
station_name = name
|
||||
|
||||
if (config && config.server_name)
|
||||
world.name = "[config.server_name]: [name]"
|
||||
else
|
||||
|
||||
@@ -172,6 +172,7 @@
|
||||
temperature_expose(datum/gas_mixture/air, temperature, volume)
|
||||
if(temperature > T0C+200)
|
||||
health -= 0.01 * temperature
|
||||
update()
|
||||
proc/expand(var/turf/T = null)
|
||||
if(!prob(health)) return//TODO: Change this to prob(health + o2 mols or such)
|
||||
if(!T)
|
||||
|
||||
@@ -85,11 +85,16 @@
|
||||
else
|
||||
for(var/i = 1, i <= rand(1,3), i++)
|
||||
switch(rand(1,100))
|
||||
if(1 to 40)
|
||||
if(1 to 30)
|
||||
var/datum/objective/assassinate/kill_objective = new
|
||||
kill_objective.owner = traitor
|
||||
kill_objective.find_target()
|
||||
traitor.objectives += kill_objective
|
||||
if(31 to 40)
|
||||
var/datum/objective/protect/protect_objective = new
|
||||
protect_objective.owner = traitor
|
||||
protect_objective.find_target()
|
||||
traitor.objectives += protect_objective
|
||||
else
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = traitor
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
H.equip_if_possible(new /obj/item/weapon/storage/backpack(H), H.slot_back)
|
||||
H.equip_if_possible(new /obj/item/clothing/under/rank/captain(H), H.slot_w_uniform)
|
||||
H.equip_if_possible(new /obj/item/device/pda/captain(H), H.slot_belt)
|
||||
H.equip_if_possible(new /obj/item/clothing/suit/armor/captain(H), H.slot_wear_suit)
|
||||
H.equip_if_possible(new /obj/item/clothing/shoes/brown(H), H.slot_shoes)
|
||||
H.equip_if_possible(new /obj/item/clothing/head/caphat(H), H.slot_head)
|
||||
H.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(H), H.slot_glasses)
|
||||
|
||||
@@ -111,8 +111,8 @@
|
||||
H.equip_if_possible(new /obj/item/clothing/under/rank/security(H), H.slot_w_uniform)
|
||||
H.equip_if_possible(new /obj/item/clothing/shoes/jackboots(H), H.slot_shoes)
|
||||
H.equip_if_possible(new /obj/item/device/pda/security(H), H.slot_belt)
|
||||
H.equip_if_possible(new /obj/item/clothing/suit/armor/vest(H), H.slot_wear_suit)
|
||||
H.equip_if_possible(new /obj/item/clothing/head/helmet(H), H.slot_head)
|
||||
H.equip_if_possible(new /obj/item/clothing/suit/storage/gearharness(H), H.slot_wear_suit)
|
||||
H.equip_if_possible(new /obj/item/clothing/head/secsoft(H), H.slot_head)
|
||||
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_in_backpack)
|
||||
H.equip_if_possible(new /obj/item/clothing/gloves/red(H), H.slot_gloves)
|
||||
H.equip_if_possible(new /obj/item/weapon/handcuffs(H), H.slot_s_store)
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
src.target = T
|
||||
if(!src.target || src.target == null)
|
||||
for (var/turf/space/D in view(7,src))
|
||||
if(!(D in floorbottargets) && D != src.oldtarget && (D.loc.name != "Space"))
|
||||
if(!(D in floorbottargets) && D != src.oldtarget && (D.loc.name != "Space") && !istype(D.loc, /area/shuttle))
|
||||
src.oldtarget = D
|
||||
src.target = D
|
||||
break
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/var/list/geneticsrecords = list()
|
||||
//Cloning revival method.
|
||||
//The pod handles the actual cloning while the computer manages the clone profiles
|
||||
|
||||
@@ -34,6 +35,8 @@
|
||||
var/obj/item/weapon/disk/data/diskette = null //Mostly so the geneticist can steal everything.
|
||||
var/wantsscan = 1
|
||||
var/wantspod = 1
|
||||
var/poddir = 8 //Which dir relative to the computer it is in.
|
||||
var/scandir = 8
|
||||
|
||||
//The return of data disks?? Just for transferring between genetics machine/cloning machine.
|
||||
//TO-DO: Make the genetics machine accept them.
|
||||
@@ -65,17 +68,15 @@
|
||||
/obj/machinery/computer/cloning/New()
|
||||
..()
|
||||
spawn(5)
|
||||
src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, WEST))
|
||||
// src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, EAST))
|
||||
// src.pod1 = locate(/obj/machinery/clonepod, get_step(src, EAST))
|
||||
src.pod1 = locate(/obj/machinery/clonepod, get_step(src, WEST))
|
||||
src.scanner = locate(/obj/machinery/dna_scannernew, get_step(src, scandir))
|
||||
src.pod1 = locate(/obj/machinery/clonepod, get_step(src, poddir))
|
||||
|
||||
src.temp = ""
|
||||
if (isnull(src.scanner) && wantsscan)
|
||||
src.temp += " <font color=red>SCNR-ERROR</font>"
|
||||
if (isnull(src.pod1) && wantspod)
|
||||
src.temp += " <font color=red>POD1-ERROR</font>"
|
||||
else
|
||||
else if (wantspod)
|
||||
src.pod1.connected = src
|
||||
|
||||
if (src.temp == "")
|
||||
@@ -138,7 +139,7 @@
|
||||
if(2)
|
||||
dat += "<h4>Current records</h4>"
|
||||
dat += "<a href='byond://?src=\ref[src];menu=1'>Back</a><br><br>"
|
||||
for(var/datum/data/record/R in src.records)
|
||||
for(var/datum/data/record/R in geneticsrecords)
|
||||
dat += "<a href='byond://?src=\ref[src];view_rec=\ref[R]'>[R.fields["id"]]-[R.fields["name"]]</a><br>"
|
||||
|
||||
if(3)
|
||||
@@ -220,7 +221,7 @@
|
||||
var/obj/item/weapon/card/id/C = usr.equipped()
|
||||
if (istype(C)||istype(C, /obj/item/device/pda))
|
||||
if(src.check_access(C))
|
||||
src.records.Remove(src.active_record)
|
||||
geneticsrecords.Remove(src.active_record)
|
||||
del(src.active_record)
|
||||
src.temp = "Record deleted."
|
||||
src.menu = 2
|
||||
@@ -290,7 +291,7 @@
|
||||
src.temp = "Unable to initiate cloning cycle." // most helpful error message in THE HISTORY OF THE WORLD
|
||||
else if (src.pod1.growclone(selected, C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["interface"],C.fields["changeling"]))
|
||||
src.temp = "Cloning cycle activated."
|
||||
src.records.Remove(C)
|
||||
geneticsrecords.Remove(C)
|
||||
del(C)
|
||||
src.menu = 1
|
||||
|
||||
@@ -350,13 +351,13 @@
|
||||
if (!isnull(subject.mind)) //Save that mind so traitors can continue traitoring after cloning.
|
||||
R.fields["mind"] = "\ref[subject.mind]"
|
||||
|
||||
src.records += R
|
||||
geneticsrecords += R //Save it to the global scan list.
|
||||
src.temp = "Subject successfully scanned."
|
||||
|
||||
//Find a specific record by key.
|
||||
/obj/machinery/computer/cloning/proc/find_record(var/find_key)
|
||||
var/selected_record = null
|
||||
for(var/datum/data/record/R in src.records)
|
||||
for(var/datum/data/record/R in geneticsrecords)
|
||||
if (R.fields["ckey"] == find_key)
|
||||
selected_record = R
|
||||
break
|
||||
|
||||
@@ -550,8 +550,7 @@ var/list/sacrificed = list()
|
||||
var/list/mob/living/carbon/human/cultsinrange = list()
|
||||
var/list/mob/living/carbon/human/victims = list()
|
||||
for(var/mob/living/carbon/human/V in src.loc)
|
||||
if(!(iscultist(V)))
|
||||
victims += V
|
||||
victims += V
|
||||
for(var/mob/living/carbon/C in orange(1,src))
|
||||
if(iscultist(C))
|
||||
cultsinrange += C
|
||||
|
||||
@@ -126,6 +126,8 @@
|
||||
src.welded = 1
|
||||
src.loc = P
|
||||
O.amount -= 3
|
||||
else
|
||||
user << "\blue You need more paper."
|
||||
else if(src.opened)
|
||||
if(istype(W, /obj/item/weapon/grab))
|
||||
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/clothing/suit/storage/captunic(src)
|
||||
new /obj/item/clothing/suit/armor/captain(src)
|
||||
new /obj/item/clothing/head/helmet/cap(src)
|
||||
new /obj/item/clothing/under/rank/captain(src)
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
@@ -110,7 +111,6 @@
|
||||
new /obj/item/weapon/pepperspray(src)
|
||||
new /obj/item/device/flash(src)
|
||||
new /obj/item/weapon/melee/baton(src)
|
||||
new /obj/item/weapon/gun/energy/taser(src)
|
||||
new /obj/item/clothing/glasses/sunglasses/sechud(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -192,6 +192,15 @@
|
||||
|
||||
/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/packageWrap))
|
||||
if(istype(src,/obj/item/weapon/storage) && istype(src.loc, /mob)) //Put it into the bag
|
||||
return
|
||||
if(istype(src.loc,/obj/item/weapon/storage) || istype(src.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it.
|
||||
user << "\blue Do not do this, it is broken as all hell. Take it out of the container first."
|
||||
return
|
||||
for(var/obj/item/T in user) //Lets remove it from their inventory
|
||||
if(T == src)
|
||||
user.remove_from_mob(T)
|
||||
break
|
||||
var/obj/item/weapon/packageWrap/O = W
|
||||
if (O.amount > 1)
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc))
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
//STRIKE TEAMS
|
||||
|
||||
var/list/response_team_members = list()
|
||||
var/send_emergency_team = 0
|
||||
|
||||
client/verb/JoinResponseTeam()
|
||||
set category = "IC"
|
||||
|
||||
if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player))
|
||||
if(!send_emergency_team)
|
||||
usr << "No emergency response team is currently being sent."
|
||||
return
|
||||
|
||||
if(response_team_members.len > 5) usr << "The emergency response team is already full!"
|
||||
|
||||
var/leader_selected = (response_team_members.len == 0)
|
||||
|
||||
for (var/obj/effect/landmark/L in world) if (L.name == "Commando")
|
||||
|
||||
var/new_name = input(usr, "Pick a name","Name") as null|text
|
||||
if(!new_name) return
|
||||
var/gender = alert(usr, "Pick a gender","Gender","Male","Female")
|
||||
|
||||
var/mob/living/carbon/human/new_commando = create_response_team(L, leader_selected, new_name, gender)
|
||||
|
||||
new_commando.mind.key = usr.key
|
||||
new_commando.key = usr.key
|
||||
|
||||
new_commando << "\blue You are [!leader_selected?"member":"<B>LEADER</B>"] of an armed response team in CentComm's service. Something went down on [station_name()] and they're now on code red. Go in there and fix the problem."
|
||||
new_commando << "<b>You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
|
||||
|
||||
else
|
||||
usr << "You need to be an observer or new player to use this."
|
||||
|
||||
proc/trigger_armed_response_team()
|
||||
if(send_emergency_team)
|
||||
return
|
||||
|
||||
command_alert("According to our sensors, [station_name()] has entered code red. We will prepare and dispatch an emergency response team to deal with the situation.", "Command Report")
|
||||
|
||||
send_emergency_team = 1
|
||||
|
||||
/client/proc/create_response_team(obj/spawn_location, leader_selected = 0, commando_name, gender)
|
||||
|
||||
var/mob/living/carbon/human/new_commando = new(spawn_location.loc)
|
||||
new_commando.gender = ((gender == "Male") ? MALE : FEMALE)
|
||||
|
||||
var/datum/preferences/A = new()//Randomize appearance for the commando.
|
||||
A.randomize_appearance_for(new_commando)
|
||||
|
||||
new_commando.real_name = commando_name
|
||||
new_commando.age = !leader_selected ? rand(23,35) : rand(35,45)
|
||||
|
||||
new_commando.dna.ready_dna(new_commando)//Creates DNA.
|
||||
|
||||
//Creates mind stuff.
|
||||
new_commando.mind = new
|
||||
new_commando.mind.current = new_commando
|
||||
new_commando.mind.original = new_commando
|
||||
new_commando.mind.assigned_role = "MODE"
|
||||
new_commando.mind.special_role = "Death Commando"
|
||||
if(!(new_commando.mind in ticker.minds))
|
||||
ticker.minds += new_commando.mind//Adds them to regular mind list.
|
||||
new_commando.equip_strike_team(leader_selected)
|
||||
del(spawn_location)
|
||||
return new_commando
|
||||
|
||||
/mob/living/carbon/human/proc/equip_strike_team(leader_selected = 0)
|
||||
|
||||
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
|
||||
R.set_frequency(1441)
|
||||
equip_if_possible(R, slot_ears)
|
||||
equip_if_possible(new /obj/item/clothing/under/color/black(src), slot_w_uniform)
|
||||
equip_if_possible(new /obj/item/clothing/shoes/swat(src), slot_shoes)
|
||||
equip_if_possible(new /obj/item/clothing/suit/armor/swat(src), slot_wear_suit)
|
||||
equip_if_possible(new /obj/item/clothing/gloves/swat(src), slot_gloves)
|
||||
equip_if_possible(new /obj/item/clothing/head/helmet/space/deathsquad(src), slot_head)
|
||||
equip_if_possible(new /obj/item/clothing/mask/gas/swat(src), slot_wear_mask)
|
||||
|
||||
equip_if_possible(new /obj/item/weapon/storage/backpack/security(src), slot_back)
|
||||
equip_if_possible(new /obj/item/weapon/storage/box(src), slot_in_backpack)
|
||||
|
||||
equip_if_possible(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack)
|
||||
equip_if_possible(new /obj/item/device/flashlight(src), slot_in_backpack)
|
||||
|
||||
equip_if_possible(new /obj/item/weapon/tank/emergency_oxygen(src), slot_s_store)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(src)
|
||||
W.name = "[real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_access("Head of Personnel")
|
||||
W.access += list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)//Let's add their alloted CentCom access.
|
||||
W.assignment = "Emergency Response Team"
|
||||
W.registered = real_name
|
||||
equip_if_possible(W, slot_wear_id)
|
||||
|
||||
return 1
|
||||
@@ -179,7 +179,7 @@ var/specops_shuttle_timeleft = 0
|
||||
user << "\red Access Denied."
|
||||
return
|
||||
|
||||
if (sent_strike_team == 0)
|
||||
if (sent_strike_team == 0 && send_emergency_team == 0)
|
||||
usr << "\red The strike team has not yet deployed."
|
||||
return
|
||||
|
||||
|
||||
@@ -171,7 +171,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
var/class = null
|
||||
var/returnval = null
|
||||
var/procname = input("Procpath (e.g. just \"update\" for lights)","path:", null)
|
||||
var/procname = input("Procpath (e.g. just \"update\" for lights)","path:", null) as null|text
|
||||
|
||||
if(!procname || procname == "") return
|
||||
|
||||
if(procname == "") return
|
||||
|
||||
var/argNum = input("Number of arguments:","Number",null) as num //input("Arguments","Arguments:", null)
|
||||
var/list/argL = new/list()
|
||||
|
||||
@@ -263,6 +263,7 @@
|
||||
mymob.blind.name = " "
|
||||
mymob.blind.screen_loc = "1,1 to 15,15"
|
||||
mymob.blind.layer = 0
|
||||
mymob.blind.mouse_opacity = 0
|
||||
|
||||
mymob.flash = new /obj/screen( null )
|
||||
mymob.flash.icon = 'screen1_alien.dmi'
|
||||
|
||||
@@ -502,6 +502,7 @@
|
||||
|
||||
// now everything inside the disposal gets put into the holder
|
||||
// note AM since can contain mobs or objs
|
||||
var/tagOverride = 0
|
||||
for(var/atom/movable/AM in D)
|
||||
AM.loc = src
|
||||
/*if(istype(AM, /mob/living/carbon/human))
|
||||
@@ -516,7 +517,12 @@
|
||||
var/obj/item/smallDelivery/T = AM
|
||||
src.destinationTag = T.sortTag
|
||||
else if (!src.destinationTag)
|
||||
src.destinationTag = "Mail Office"
|
||||
src.destinationTag = null
|
||||
else if (istype(AM, /mob)) //If there is a mob somewhere in there....
|
||||
tagOverride = 1
|
||||
if(tagOverride)
|
||||
if(prob(50))
|
||||
src.destinationTag = null //Then 50% chance of going to the mail room!
|
||||
|
||||
|
||||
// start the movement process
|
||||
@@ -996,6 +1002,8 @@
|
||||
for(var/i, i <= backType.len, i++)
|
||||
if(sortTag == src.backType[i])
|
||||
return negdir
|
||||
else if (!sortTag && !mailsort)
|
||||
return posdir
|
||||
|
||||
if(fromdir != sortdir) // probably came from the negdir
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
var/sortTag = null
|
||||
flags = FPRINT
|
||||
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
var/examtext = null
|
||||
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
@@ -25,17 +26,37 @@
|
||||
user << "\blue *TAGGED*"
|
||||
src.sortTag = O.currTag
|
||||
else if(istype(W, /obj/item/weapon/pen))
|
||||
var/str = input(usr,"Label text?","Set label","")
|
||||
if(!str || !length(str))
|
||||
usr << "\red Invalid text."
|
||||
return
|
||||
if(length(str) > 64)
|
||||
usr << "\red Text too long."
|
||||
return
|
||||
var/label = str
|
||||
for(var/mob/M in viewers())
|
||||
M << "\blue [user] labels [src] as [label]."
|
||||
src.name = "[src.name] ([label])"
|
||||
switch(alert("What would you like to alter?",,"Title","Description", "Cancel"))
|
||||
if("Title")
|
||||
var/str = input(usr,"Label text?","Set label","")
|
||||
if(!str || !length(str))
|
||||
usr << "\red Invalid text."
|
||||
return
|
||||
if(length(str) > 64)
|
||||
usr << "\red Text too long."
|
||||
return
|
||||
var/label = str
|
||||
for(var/mob/M in viewers())
|
||||
M << "\blue [user] labels [src] as [label]."
|
||||
src.name = "[src.name] ([label])"
|
||||
if("Description")
|
||||
var/str = input(usr,"Label text?","Set label","")
|
||||
if(!str || !length(str))
|
||||
usr << "\red Invalid text."
|
||||
return
|
||||
if(length(str) > 64)
|
||||
usr << "\red Text too long."
|
||||
return
|
||||
examtext = str
|
||||
for(var/mob/M in viewers())
|
||||
M << "\blue [user] labels [src] with the note: [examtext]."
|
||||
return
|
||||
|
||||
examine()
|
||||
set src in oview(4)
|
||||
if(examtext)
|
||||
usr << examtext
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/smallDelivery
|
||||
@@ -46,6 +67,7 @@
|
||||
var/obj/item/wrapped = null
|
||||
var/sortTag = null
|
||||
flags = FPRINT
|
||||
var/examtext = null
|
||||
|
||||
|
||||
attack_self(mob/user)
|
||||
@@ -61,17 +83,37 @@
|
||||
user << "\blue *TAGGED*"
|
||||
src.sortTag = O.currTag
|
||||
else if(istype(W, /obj/item/weapon/pen))
|
||||
var/str = input(usr,"Label text?","Set label","")
|
||||
if(!str || !length(str))
|
||||
usr << "\red Invalid text."
|
||||
return
|
||||
if(length(str) > 64)
|
||||
usr << "\red Text too long."
|
||||
return
|
||||
var/label = str
|
||||
for(var/mob/M in viewers())
|
||||
M << "\blue [user] labels [src] as [label]."
|
||||
src.name = "[src.name] ([label])"
|
||||
switch(alert("What would you like to alter?",,"Title","Description", "Cancel"))
|
||||
if("Title")
|
||||
var/str = input(usr,"Label text?","Set label","")
|
||||
if(!str || !length(str))
|
||||
usr << "\red Invalid text."
|
||||
return
|
||||
if(length(str) > 64)
|
||||
usr << "\red Text too long."
|
||||
return
|
||||
var/label = str
|
||||
for(var/mob/M in viewers())
|
||||
M << "\blue [user] labels [src] as [label]."
|
||||
src.name = "[src.name] ([label])"
|
||||
if("Description")
|
||||
var/str = input(usr,"Label text?","Set label","")
|
||||
if(!str || !length(str))
|
||||
usr << "\red Invalid text."
|
||||
return
|
||||
if(length(str) > 64)
|
||||
usr << "\red Text too long."
|
||||
return
|
||||
examtext = str
|
||||
for(var/mob/M in viewers())
|
||||
M << "\blue [user] labels [src] with the note: [examtext]."
|
||||
return
|
||||
|
||||
examine()
|
||||
set src in oview(4)
|
||||
if(examtext)
|
||||
usr << examtext
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -80,7 +122,7 @@
|
||||
name = "package wrapper"
|
||||
icon = 'items.dmi'
|
||||
icon_state = "deliveryPaper"
|
||||
w_class = 4.0
|
||||
w_class = 3.0
|
||||
var/amount = 25.0
|
||||
|
||||
|
||||
@@ -88,10 +130,10 @@
|
||||
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='blue'>Has used [src.name] on \ref[target]</font>")
|
||||
|
||||
if (istype(target, /obj/item))
|
||||
/* if (istype(target, /obj/item))
|
||||
var/obj/item/O = target
|
||||
if (src.amount > 1)
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc))
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up!
|
||||
P.wrapped = O
|
||||
O.loc = P
|
||||
src.amount -= 1
|
||||
@@ -113,8 +155,10 @@
|
||||
O.welded = 1
|
||||
O.loc = P
|
||||
src.amount -= 3
|
||||
else
|
||||
user << "\blue You need more paper." */
|
||||
|
||||
else
|
||||
if(!(istype (target, /obj/structure/closet) || istype(target, /obj/structure/closet/crate) || istype(target, /obj/item)))
|
||||
user << "\blue The object you are trying to wrap is unsuitable for the sorting machinery!"
|
||||
if (src.amount <= 0)
|
||||
new /obj/item/weapon/c_tube( src.loc )
|
||||
@@ -123,12 +167,18 @@
|
||||
return
|
||||
return
|
||||
|
||||
examine()
|
||||
set src in usr
|
||||
usr << "\blue There are [amount] units of package wrap left!"
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/device/destTagger
|
||||
name = "destination tagger"
|
||||
desc = "Used to set the destination of properly wrapped packages."
|
||||
icon_state = "forensic0"
|
||||
var/currTag = null
|
||||
var/list/spaceList = list(0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0) // Breaks up departments with whitespace.
|
||||
var/list/spaceList = list(0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0) // Breaks up departments with whitespace.
|
||||
var/list/locationList = list("Disposals",
|
||||
"Mail Office", "Cargo Bay", "QM Office",
|
||||
"Locker Room", "Tool Storage", "Laundry Room", "Toilets",
|
||||
@@ -137,7 +187,7 @@
|
||||
"Medbay", "CMO", "Chemistry", "Morgue",
|
||||
"Library", "Chapel", "Chapel Office", "Theater", "Janitor",
|
||||
"Bar", "Kitchen", "Diner", "Hydroponics",
|
||||
"Meeting Room", "HoP Office",
|
||||
"Meeting Room", "HoP Office", "Captain",
|
||||
"Atmospherics", "Engineering", "Chief Engineer", "Robotics",)
|
||||
//The whole system for the sorttype var is determined based on the order of this list,
|
||||
//disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude
|
||||
@@ -252,4 +302,8 @@
|
||||
var/mob/living/M = A
|
||||
HasEntered(M)
|
||||
return 0
|
||||
if(istype(A, /obj)) // You Shall Not Pass!
|
||||
var/obj/M = A
|
||||
HasEntered(M)
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -58,6 +58,11 @@
|
||||
if(FA.z == 1)
|
||||
FA.overlays = list()
|
||||
FA.overlays += image('monitors.dmi', "overlay_red")
|
||||
|
||||
// trigger a response team
|
||||
spawn
|
||||
sleep(6000)
|
||||
if(security_level == SEC_LEVEL_RED) trigger_armed_response_team()
|
||||
if(SEC_LEVEL_DELTA)
|
||||
world << "<font size=4 color='red'>Attention! Delta security level reached!</font>"
|
||||
world << "<font color='red'>[config.alert_desc_delta]</font>"
|
||||
|
||||
Reference in New Issue
Block a user