Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into russian

This commit is contained in:
ZomgPonies
2015-12-20 06:29:28 -05:00
460 changed files with 19824 additions and 18913 deletions
+12 -17
View File
@@ -9,24 +9,18 @@
var/obj/item/target = null
var/creator = null
anchored = 1.0
var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent
/obj/effect/portal/Bumped(mob/M as mob|obj)
spawn(0)
src.teleport(M)
return
return
src.teleport(M)
/obj/effect/portal/Crossed(AM as mob|obj)
spawn(0)
src.teleport(AM)
return
return
/obj/effect/portal/New()
/obj/effect/portal/New(loc, turf/target, creator)
portals += src
src.loc = loc
src.target = target
src.creator = creator
spawn(300)
qdel(src)
return
return
/obj/effect/portal/Destroy()
@@ -34,14 +28,16 @@
if(istype(creator, /obj/item/weapon/hand_tele))
var/obj/item/weapon/hand_tele/O = creator
O.active_portals--
else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector))
var/obj/item/weapon/gun/energy/wormhole_projector/P = creator
P.portal_destroyed(src)
creator = null
return ..()
/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj)
if(istype(M, /obj/effect)) //sparks don't teleport
return
if (M.anchored&&istype(M, /obj/mecha))
return
if (icon_state == "portal1")
if(M.anchored&&istype(M, /obj/mecha))
return
if (!( target ))
qdel(src)
@@ -51,5 +47,4 @@
src.icon_state = "portal1"
do_teleport(M, locate(rand(5, world.maxx - 5), rand(5, world.maxy -5), 3), 0)
else
do_teleport(M, target, 1) ///You will appear adjacent to the beacon
do_teleport(M, target, precision) ///You will appear adjacent to the beacon
+15 -8
View File
@@ -423,17 +423,23 @@
if(mode==47)
var/supplyData[0]
var/datum/shuttle/ferry/supply/shuttle = supply_controller.shuttle
if (shuttle)
supplyData["shuttle_moving"] = shuttle.has_arrive_time()
supplyData["shuttle_eta"] = shuttle.eta_minutes()
supplyData["shuttle_loc"] = shuttle.at_station() ? "Station" : "Dock"
if(shuttle_master.supply.mode == SHUTTLE_CALL)
supplyData["shuttle_moving"] = 1
if(shuttle_master.supply.z != ZLEVEL_STATION)
supplyData["shuttle_loc"] = "station"
else
supplyData["shuttle_loc"] = "centcom"
supplyData["shuttle_time"] = "([shuttle_master.supply.timeLeft(600)] Mins)"
var/supplyOrderCount = 0
var/supplyOrderData[0]
for(var/S in supply_controller.shoppinglist)
for(var/S in shuttle_master.shoppinglist)
var/datum/supply_order/SO = S
supplyOrderData[++supplyOrderData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "ApprovedBy" = SO.orderedby, "Comment" = html_encode(SO.comment))
if(!supplyOrderData.len)
supplyOrderData[++supplyOrderData.len] = list("Number" = null, "Name" = null, "OrderedBy"=null)
@@ -442,10 +448,11 @@
var/requestCount = 0
var/requestData[0]
for(var/S in supply_controller.requestlist)
for(var/S in shuttle_master.requestlist)
var/datum/supply_order/SO = S
requestCount++
requestData[++requestData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "OrderedBy" = SO.orderedby, "Comment" = html_encode(SO.comment))
if(!requestData.len)
requestData[++requestData.len] = list("Number" = null, "Name" = null, "orderedBy" = null, "Comment" = null)
@@ -13,6 +13,7 @@
item_state = "camera_bug"
throw_speed = 4
throw_range = 20
origin_tech = "syndicate=3;engineering=1"
var/obj/machinery/camera/current = null
+7 -5
View File
@@ -111,11 +111,13 @@
else if(issilicon(M))
if(isrobot(M))
var/mob/living/silicon/robot/R = M
for(var/obj/item/borg/combat/shield/S in R.module.modules)
if(R.activated(S))
add_logs(M, user, "flashed", object="[src.name]")
user.visible_message("<span class='disarm'>[user] tries to overloads [M]'s sensors with the [src.name], but if blocked by [M]'s shield!</span>", "<span class='danger'>You try to overload [M]'s sensors with the [src.name], but are blocked by his shield!</span>")
return 1
if (R.module) // Perhaps they didn't choose a module yet
for(var/obj/item/borg/combat/shield/S in R.module.modules)
if(R.activated(S))
add_logs(M, user, "flashed", object="[src.name]")
user.visible_message("<span class='disarm'>[user] tries to overloads [M]'s sensors with the [src.name], but if blocked by [M]'s shield!</span>", "<span class='danger'>You try to overload [M]'s sensors with the [src.name], but are blocked by his shield!</span>")
return 1
M.Weaken(rand(5,10))
add_logs(M, user, "flashed", object="[src.name]")
user.visible_message("<span class='disarm'>[user] overloads [M]'s sensors with the [src.name]!</span>", "<span class='danger'>You overload [M]'s sensors with the [src.name]!</span>")
+12 -6
View File
@@ -25,28 +25,34 @@
if(spamcheck)
user << "\red \The [src] needs to recharge!"
return
var/message = sanitize(copytext(input(user, "Shout a message?", "Megaphone", null) as text,1,MAX_MESSAGE_LEN))
var/message = input(user, "Shout a message:", "Megaphone") as text|null
if(!message)
return
message = sanitize(copytext(message, 1, MAX_MESSAGE_LEN))
if(!message)
return
message = capitalize(message)
if ((src.loc == user && usr.stat == 0))
if(emagged)
if(insults)
for(var/mob/O in (viewers(user)))
O.show_message("<B>[user]</B> broadcasts, <FONT size=3>\"[pick(insultmsg)]\"</FONT>",2) // 2 stands for hearable message
saymsg(user, pick(insultmsg))
insults--
else
user << "\red *BZZZZzzzzzt*"
else
for(var/mob/O in (viewers(user)))
O.show_message("<B>[user]</B> broadcasts, <FONT size=3>\"[message]\"</FONT>",2) // 2 stands for hearable message
saymsg(user, message)
spamcheck = 1
spawn(20)
spamcheck = 0
return
/obj/item/device/megaphone/proc/saymsg(mob/living/user as mob, message)
audible_message("<span class='game say'><span class='name'>[user]</span> broadcasts, <FONT size=3>\"[message]\"</FONT></span>", hearing_distance = 14)
for(var/obj/O in oview(14, get_turf(src)))
O.hear_talk(user, "<FONT size=3>[message]</FONT>")
/obj/item/device/megaphone/emag_act(user as mob)
if(!emagged)
user << "\red You overload \the [src]'s voice synthesizer."
@@ -93,7 +93,11 @@
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] exclaims, \"[msg]\""
return
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] says, \"[msg]\""
/obj/item/device/taperecorder/hear_message(mob/living/M as mob, msg)
if(mytape && recording)
mytape.timestamp += mytape.used_capacity
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] [M.name] [msg]"
/obj/item/device/taperecorder/verb/record()
set name = "Start Recording"
@@ -68,6 +68,11 @@
for(var/obj/O in contents)
O.hear_talk(M, msg)
/obj/item/device/transfer_valve/hear_message(mob/living/M as mob, msg)
..()
for(var/obj/O in contents)
O.hear_message(M, msg)
/obj/item/device/transfer_valve/attack_self(mob/user as mob)
ui_interact(user)
+7 -2
View File
@@ -128,7 +128,7 @@
/obj/item/flag/species/diona
name = "Diona flag"
desc = "A flag proudly proclaiming the superior heritage of Diona."
desc = "A flag proudly proclaiming the superior heritage of Dionae."
icon_state = "dionaflag"
/obj/item/flag/species/human
@@ -156,6 +156,11 @@
desc = "A flag proudly proclaiming the superior heritage of Unathi."
icon_state = "unathiflag"
/obj/item/flag/species/vulp
name = "Vulpkanin flag"
desc = "A flag proudly proclaiming the superior heritage of Vulpkanin."
icon_state = "vulpflag"
//Department Flags
/obj/item/flag/cargo
@@ -208,4 +213,4 @@
/obj/item/flag/cult
name = "Nar'Sie Cultist flag"
desc = "A flag proudly boasting the logo of the cultists, sworn enemies of NT."
icon_state = "cultflag"
icon_state = "cultflag"
+6 -6
View File
@@ -27,7 +27,7 @@
/obj/item/stack/sheet/animalhide/random
name = "Random animal hide"
name = "random animal hide"
New()
..()
spawn(1)
@@ -80,7 +80,7 @@
name = "unlabelled bottle"
pixel_x = rand(-10,10)
pixel_y = rand(-10,10)
/obj/item/weapon/reagent_containers/food/drinks/bottle/random_drink
name = "unlabelled drink"
icon = 'icons/obj/drinks.dmi'
@@ -96,7 +96,7 @@
icon_state = pick("alco-white","alco-green","alco-blue","alco-clear","alco-red")
pixel_x = rand(-5,5)
pixel_y = rand(-5,5)
/obj/item/weapon/reagent_containers/food/drinks/bottle/random_reagent // Same as the chembottle code except the container
name = "unlabelled drink?"
icon = 'icons/obj/drinks.dmi'
@@ -146,7 +146,7 @@
// -------------------------------------
/obj/structure/closet/crate/secure/unknownchemicals
name = "Grey-market Chemicals Grab Pack"
name = "grey-market chemicals grab pack"
desc = "Crate full of chemicals of unknown type and value from a 'trusted' source."
req_one_access = list(access_chemistry,access_research,access_qm) // the qm knows a guy, you see.
@@ -172,7 +172,7 @@
return
/obj/structure/closet/crate/secure/chemicals
name = "Chemical Supply Kit"
name = "chemical supply kit"
desc = "Full of basic chemistry supplies."
req_one_access = list(access_chemistry,access_research)
@@ -229,7 +229,7 @@
*/
/obj/structure/closet/secure_closet/random_drinks
name = "Unlabelled Booze"
name = "unlabelled booze closet"
req_access = list(access_bar)
icon_state = "cabinetdetective_locked"
icon_closed = "cabinetdetective"
+5 -1
View File
@@ -217,7 +217,11 @@
return 1
var/to_transfer as num
if (user.get_inactive_hand()==src)
to_transfer = 1
var/desired = input("How much would you like to transfer from this stack?", "How much?", 1) as null|num
if(!desired)
return
desired = round(desired)
to_transfer = max(1,min(desired,S.max_amount-S.amount,src.amount))
else
to_transfer = min(src.amount, S.max_amount-S.amount)
S.amount+=to_transfer
+4 -4
View File
@@ -1571,7 +1571,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/figure/attack_self(mob/user as mob)
if(cooldown < world.time)
cooldown = (world.time + 30) //3 second cooldown
user << "<span class='notice'>The [src] says \"[toysay]\".</span>"
user.visible_message("<span class='notice'>\icon[src] The [src] says \"[toysay]\".</span>")
playsound(user, 'sound/machines/click.ogg', 20, 1)
/obj/item/toy/figure/cmo
@@ -1665,7 +1665,7 @@ obj/item/toy/cards/deck/syndicate/black
toysay = "I'm not qualified for this job."
/obj/item/toy/figure/hop
name = "Head of Persomnel action figure"
name = "Head of Personnel action figure"
icon_state = "hop"
toysay = "Giving out all access!"
@@ -1685,9 +1685,9 @@ obj/item/toy/cards/deck/syndicate/black
toysay = "Look at the signs, you idiot."
/obj/item/toy/figure/lawyer
name = "Lawyer action figure"
name = "Internal Affairs Agent action figure"
icon_state = "lawyer"
toysay = "My client is a dirty traitor!"
toysay = "Standard Operating Procedure says they're guilty! Hacking is proof they're an Enemy of the Corporation!"
/obj/item/toy/figure/librarian
name = "Librarian action figure"
+2 -3
View File
@@ -122,9 +122,8 @@
user << "<span class='warning'>It is too far away.</span>"
/obj/item/weapon/card/id/proc/show(mob/user as mob)
if(user.client) // Send the stamp images to the client
var/datum/asset/simple/S = new/datum/asset/simple/paper()
send_asset_list(user.client, S.assets)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/paper)
assets.send(user)
if(!front)
front = new(photo, dir = SOUTH)
+4 -4
View File
@@ -366,8 +366,8 @@
for(var/obj/item/organ/external/O in H.organs)
total_brute += O.brute_dam
total_burn += O.burn_dam
if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
tobehealed = health + threshold
if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you
tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived
H.adjustOxyLoss(tobehealed)
H.adjustToxLoss(tobehealed)
@@ -475,8 +475,8 @@
for(var/obj/item/organ/external/O in H.organs)
total_brute += O.brute_dam
total_burn += O.burn_dam
if(H.health <= config.health_threshold_dead && total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
tobehealed = health + threshold
if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you
tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived
H.adjustOxyLoss(tobehealed)
H.adjustToxLoss(tobehealed)
@@ -235,6 +235,10 @@
if(nadeassembly)
nadeassembly.hear_talk(M, msg)
/obj/item/weapon/grenade/chem_grenade/hear_message(mob/living/M, msg)
if(nadeassembly)
nadeassembly.hear_message(M, msg)
/obj/item/weapon/grenade/chem_grenade/Bump()
..()
if(nadeassembly)
@@ -21,7 +21,10 @@
// What does the implant do upon injection?
// return 0 if the implant fails (ex. Revhead and loyalty implant.)
// return 1 if the implant succeeds (ex. Nonrevhead and loyalty implant.)
/obj/item/weapon/implant/proc/implanted(var/mob/source)
/obj/item/weapon/implant/proc/implanted(var/mob/source)
if(istype(source, /mob/living/carbon/human))
var/mob/living/carbon/human/H = source
H.sec_hud_set_implants()
return 1
/obj/item/weapon/implant/proc/get_data()
@@ -55,11 +58,11 @@
desc = "Track with this."
origin_tech = "materials=2;magnets=2;programming=2;biotech=2"
var/id = 1.0
/obj/item/weapon/implant/tracking/New()
..()
tracking_implants += src
/obj/item/weapon/implant/tracking/Destroy()
tracking_implants -= src
return ..()
@@ -287,7 +290,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
reagents = R
R.my_atom = src
tracking_implants += src
/obj/item/weapon/implant/chem/Destroy()
tracking_implants -= src
return ..()
@@ -414,7 +417,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
ticker.mode.update_traitor_icons_added(user.mind)
log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].")
return 1
/obj/item/weapon/implant/traitor/islegal()
return 0
@@ -53,7 +53,7 @@
var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting)
affected.implants += src.imp
imp.part = affected
H.hud_updateflag |= 1 << IMPLOYAL_HUD
H.sec_hud_set_implants()
M:implanting = 0
src.imp = null
update()
@@ -63,6 +63,9 @@
overlays.Cut()
return
if (can_operate(M))
do_surgery(M, user, src)
/obj/item/weapon/kitchen/utensil/fork
name = "fork"
desc = "It's a fork. Sure is pointy."
+5 -5
View File
@@ -17,7 +17,7 @@
var/lit = 0
/obj/item/weapon/lighter/zippo
name = "Zippo lighter"
name = "zippo lighter"
desc = "The zippo."
icon_state = "zippo"
item_state = "zippo"
@@ -101,7 +101,7 @@
icon_state = "zippo_nt_off"
icon_on = "zippo_nt_on"
icon_off = "zippo_nt_off"
/obj/item/weapon/lighter/zippo/blue
name = "blue zippo lighter"
desc = "A zippo lighter made of some blue metal."
@@ -109,20 +109,20 @@
icon_on = "bluezippoon"
icon_off = "bluezippo"
/obj/item/weapon/lighter/zippo/black
/obj/item/weapon/lighter/zippo/black
name = "black zippo lighter"
desc = "A black zippo lighter."
icon_state = "blackzippo"
icon_on = "blackzippoon"
icon_off = "blackzippo"
/obj/item/weapon/lighter/zippo/engraved
/obj/item/weapon/lighter/zippo/engraved
name = "engraved zippo lighter"
desc = "A intricately engraved zippo lighter."
icon_state = "engravedzippo"
icon_on = "engravedzippoon"
icon_off = "engravedzippo"
/obj/item/weapon/lighter/zippo/gonzofist
name = "Gonzo Fist zippo"
desc = "A Zippo lighter with the iconic Gonzo Fist on a matte black finish."
@@ -9,7 +9,7 @@
throwforce = 5.0
throw_speed = 3
throw_range = 5
w_class = 3.0
w_class = 2
var/charge = 0 // note %age conveted to actual charge in New
var/maxcharge = 10000
rating = 1
@@ -24,7 +24,7 @@
/obj/item/weapon/stock_parts/cell/crap
name = "\improper Nanotrasen brand rechargable AA battery"
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
origin_tech = "powerstorage=0"
origin_tech = null
maxcharge = 5000
rating = 2
materials = list(MAT_GLASS=40)
@@ -35,7 +35,7 @@
/obj/item/weapon/stock_parts/cell/secborg
name = "\improper Security borg rechargable D battery"
origin_tech = "powerstorage=0"
origin_tech = null
maxcharge = 6000 //6000 max charge / 1000 charge per shot = six shots
rating = 2.5
materials = list(MAT_GLASS=40)
@@ -160,4 +160,4 @@
name = "temperature gun cell"
desc = "A specially designed power cell for heating and cooling projectiles"
icon_state = "icell"
maxcharge = 900
maxcharge = 900
@@ -34,7 +34,6 @@
name = "bluespace rapid part exchange device"
desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts."
icon_state = "BS_RPED"
item_state = "BS_RPED"
w_class = 3
storage_slots = 400
max_w_class = 3
@@ -120,6 +120,36 @@
icon_state = "engiepack"
item_state = "engiepack"
/obj/item/weapon/storage/backpack/botany
name = "botany backpack"
desc = "It's a backpack made of all-natural fibers."
icon_state = "botpack"
item_state = "botpack"
/obj/item/weapon/storage/backpack/chemistry
name = "chemistry backpack"
desc = "A backpack specially designed to repel stains and hazardous liquids."
icon_state = "chempack"
item_state = "chempack"
/obj/item/weapon/storage/backpack/genetics
name = "genetics backpack"
desc = "A bag designed to be super tough, just in case someone hulks out on you."
icon_state = "genepack"
item_state = "genepack"
/obj/item/weapon/storage/backpack/science
name = "science backpack"
desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma."
icon_state = "toxpack"
item_state = "toxpack"
/obj/item/weapon/storage/backpack/virology
name = "virology backpack"
desc = "A backpack made of hypo-allergenic fibers. It's designed to help prevent the spread of disease. Smells like monkey."
icon_state = "viropack"
item_state = "viropack"
/*
* Satchel Types
*/
@@ -149,13 +179,11 @@
name = "industrial satchel"
desc = "A tough satchel with extra pockets."
icon_state = "satchel-eng"
item_state = "engiepack"
/obj/item/weapon/storage/backpack/satchel_med
name = "medical satchel"
desc = "A sterile satchel used in medical departments."
icon_state = "satchel-med"
item_state = "medicalpack"
/obj/item/weapon/storage/backpack/satchel_vir
name = "virologist satchel"
@@ -181,18 +209,16 @@
name = "security satchel"
desc = "A robust satchel for security related needs."
icon_state = "satchel-sec"
item_state = "securitypack"
/obj/item/weapon/storage/backpack/satchel_hyd
name = "hydroponics satchel"
desc = "A green satchel for plant related work."
icon_state = "satchel_hyd"
icon_state = "satchel-hyd"
/obj/item/weapon/storage/backpack/satchel_cap
name = "captain's satchel"
desc = "An exclusive satchel for Nanotrasen officers."
icon_state = "satchel-cap"
item_state = "captainpack"
/obj/item/weapon/storage/backpack/satchel_flat
name = "smuggler's satchel"
@@ -344,17 +344,17 @@
///Aquatic Starter Kit
/obj/item/weapon/storage/aquatic_kit
/obj/item/weapon/storage/firstaid/aquatic_kit
name = "aquatic starter kit"
desc = "It's a starter kit box for an acquarium."
desc = "It's a starter kit box for an aquarium."
icon_state = "AquaticKit"
throw_speed = 2
throw_range = 8
/obj/item/weapon/storage/aquatic_kit/full
/obj/item/weapon/storage/firstaid/aquatic_kit/full
desc = "It's a starter kit for an acquarium; includes 1 tank brush, 1 egg scoop, 1 fish net, and 1 container of fish food."
/obj/item/weapon/storage/aquatic_kit/full/New()
/obj/item/weapon/storage/firstaid/aquatic_kit/full/New()
..()
new /obj/item/weapon/egg_scoop(src)
new /obj/item/weapon/fish_net(src)
@@ -15,6 +15,12 @@
throw_speed = 2
throw_range = 8
var/empty = 0
req_one_access =list(access_medical, access_robotics) //Access and treatment are utilized for medbots.
var/treatment_brute = "salglu_solution"
var/treatment_oxy = "salbutamol"
var/treatment_fire = "salglu_solution"
var/treatment_tox = "charcoal"
var/treatment_virus = "spaceacillin"
/obj/item/weapon/storage/firstaid/fire
@@ -38,6 +44,8 @@
new /obj/item/weapon/reagent_containers/pill/salicylic( src )
return
/obj/item/weapon/storage/firstaid/fire/empty
empty = 1
/obj/item/weapon/storage/firstaid/regular
desc = "A general medical kit that contains medical patches for both brute damage and burn damage. Also contains an epinephrine syringe for emergency use and a health analyzer"
@@ -76,6 +84,9 @@
new /obj/item/device/healthanalyzer( src )
return
/obj/item/weapon/storage/firstaid/toxin/empty
empty = 1
/obj/item/weapon/storage/firstaid/o2
name = "oxygen deprivation first aid kit"
desc = "A first aid kit that contains four pills of salbutamol, which is able to counter injuries caused by suffocation. Also contains a health analyzer to determine the health of the patient."
@@ -92,6 +103,9 @@
new /obj/item/device/healthanalyzer( src )
return
/obj/item/weapon/storage/firstaid/o2/empty
empty = 1
/obj/item/weapon/storage/firstaid/brute
name = "brute trauma treatment kit"
desc = "A medical kit that contains several medical patches and pills for treating brute injuries. Contains one epinephrine syringe for emergency use and a health analyzer."
@@ -113,6 +127,9 @@
new /obj/item/stack/medical/bruise_pack(src)
return
/obj/item/weapon/storage/firstaid/brute/empty
empty = 1
/obj/item/weapon/storage/firstaid/adv
name = "advanced first-aid kit"
desc = "Contains advanced medical treatments."
@@ -131,11 +148,19 @@
new /obj/item/stack/medical/splint(src)
return
/obj/item/weapon/storage/firstaid/adv/empty
empty = 1
/obj/item/weapon/storage/firstaid/tactical
name = "first-aid kit"
icon_state = "bezerk"
desc = "I hope you've got insurance."
max_w_class = 3
treatment_oxy = "perfluorodecalin"
treatment_brute = "styptic_powder"
treatment_fire = "silver_sulfadiazine"
treatment_tox = "charcoal"
req_one_access =list(access_syndicate)
/obj/item/weapon/storage/firstaid/tactical/New()
..()
@@ -149,6 +174,9 @@
new /obj/item/clothing/glasses/hud/health/night(src)
return
/obj/item/weapon/storage/firstaid/tactical/empty
empty =1
/obj/item/weapon/storage/firstaid/surgery
name = "field surgery kit"
icon_state = "duffel-med"
@@ -197,7 +197,7 @@
icon_locking = "safeb"
icon_sparking = "safespark"
force = 8.0
w_class = 8.0
w_class = 5.0
max_w_class = 8
anchored = 1.0
density = 0
@@ -46,12 +46,12 @@ Frequency:
/obj/item/weapon/locator/Topic(href, href_list)
if(..())
return 1
var/turf/current_location = get_turf(usr)//What turf is the user on?
if(!current_location ||( current_location.z in config.admin_levels))//If turf was not found or they're on z level 2.
usr << "<span class='warning'>\The [src] is malfunctioning.</span>"
return 1
if (href_list["refresh"])
temp = "<B>Persistent Signal Locator</B><HR>"
var/turf/sr = get_turf(src)
@@ -135,9 +135,7 @@ Frequency:
return
var/T = L[t1]
user.show_message("<span class='notice'>Locked In.</span>", 2)
var/obj/effect/portal/P = new /obj/effect/portal( get_turf(src) )
P.target = T
P.creator = src
var/obj/effect/portal/P = new /obj/effect/portal(get_turf(src), T, src)
try_move_adjacent(P)
active_portals++
add_fingerprint(user)
@@ -4,6 +4,11 @@
* Fireaxe
* Double-Bladed Energy Swords
* Spears
* Kidan spear
* Chainsaw
* Singularity hammer
* Mjolnnir
* Knighthammer
*/
/*##################################################################
@@ -34,6 +39,9 @@
else //something wrong
name = "[initial(name)]"
update_icon()
if(user)
user.update_inv_r_hand()
user.update_inv_l_hand()
if(isrobot(user))
user << "<span class='notice'>You free up your module.</span>"
else
@@ -59,6 +67,9 @@
force = force_wielded
name = "[name] (Wielded)"
update_icon()
if(user)
user.update_inv_r_hand()
user.update_inv_l_hand()
if(isrobot(user))
user << "<span class='notice'>You dedicate your module to [name].</span>"
else
+4 -2
View File
@@ -149,7 +149,6 @@
/obj/proc/hear_talk(mob/M as mob, text)
if(talking_atom)
talking_atom.catchMessage(text, M)
@@ -159,8 +158,8 @@
var/rendered = "<span class='game say'><span class='name'>[M.name]: </span> <span class='message'>[text]</span></span>"
mo.show_message(rendered, 2)
*/
return
/obj/proc/hear_message(mob/M as mob, text)
/obj/proc/multitool_menu(var/mob/user,var/obj/item/device/multitool/P)
return "<b>NO MULTITOOL_MENU!</b>"
@@ -256,3 +255,6 @@ a {
anchored = 0
step_towards(src,S)
else step_towards(src,S)
/obj/proc/container_resist(var/mob/living)
return
@@ -365,3 +365,42 @@
open()
if(AM.loc == src) return 0
return 1
/obj/structure/closet/container_resist(var/mob/living/L)
var/breakout_time = 2 //2 minutes by default
if(opened)
if (L.loc == src)
L.forceMove(get_turf(src)) // Let's just be safe here
return //Door's open... wait, why are you in it's contents then?
if(!welded)
return //closed but not welded...
// else Meh, lets just keep it at 2 minutes for now
// breakout_time++ //Harder to get out of welded lockers than locked lockers
//okay, so the closet is either welded or locked... resist!!!
L.changeNext_move(CLICK_CD_BREAKOUT)
L.last_special = world.time + CLICK_CD_BREAKOUT
L << "<span class='warning'>You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)</span>"
for(var/mob/O in viewers(usr.loc))
O.show_message("<span class='danger'>The [src] begins to shake violently!</span>", 1)
spawn(0)
if(do_after(L,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
if(!src || !L || L.stat != CONSCIOUS || L.loc != src || opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened
return
//Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'...
if(!welded)
return
//Well then break it!
welded = 0
update_icon()
usr << "<span class='warning'>You successfully break out!</span>"
for(var/mob/O in viewers(L.loc))
O.show_message("<span class='danger'>\the [usr] successfully broke out of \the [src]!</span>", 1)
if(istype(src.loc, /obj/structure/bigDelivery)) //nullspace ect.. read the comment above
var/obj/structure/bigDelivery/BD = src.loc
BD.attack_hand(usr)
open()
@@ -1,6 +1,6 @@
//I still dont think this should be a closet but whatever
/obj/structure/closet/fireaxecabinet
name = "Fire Axe Cabinet"
name = "fire axe cabinet"
desc = "There is small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if."
var/obj/item/weapon/twohanded/fireaxe/fireaxe = new/obj/item/weapon/twohanded/fireaxe
icon_state = "fireaxe1000"
@@ -120,7 +120,7 @@
//Paramedic
/obj/structure/closet/paramedic
name = "Paramedic Wardrobe"
name = "paramedic wardrobe"
desc = "It's a storage unit for paramedic equipment."
icon_state = "blue"
icon_closed = "blue"
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/bar
name = "Booze"
name = "Booze cabinet"
req_access = list(access_bar)
icon_state = "cabinetdetective_locked"
icon_closed = "cabinetdetective"
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/cargotech
name = "Cargo Technician's Locker"
name = "cargo technician's locker"
req_access = list(access_cargo)
icon_state = "securecargo1"
icon_closed = "securecargo"
@@ -20,7 +20,7 @@
return
/obj/structure/closet/secure_closet/quartermaster
name = "Quartermaster's Locker"
name = "quartermaster's locker"
req_access = list(access_qm)
icon_state = "secureqm1"
icon_closed = "secureqm"
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/engineering_chief
name = "Chief Engineer's Locker"
name = "chief engineer's locker"
req_access = list(access_ce)
icon_state = "securece1"
icon_closed = "securece"
@@ -35,7 +35,7 @@
return
/obj/structure/closet/secure_closet/engineering_electrical
name = "Electrical Supplies"
name = "electrical supplies locker"
req_access = list(access_engine_equip)
icon_state = "secureengelec1"
icon_closed = "secureengelec"
@@ -65,7 +65,7 @@
/obj/structure/closet/secure_closet/engineering_welding
name = "Welding Supplies"
name = "welding supplies locker"
req_access = list(access_engine_equip)
icon_state = "secureengweld1"
icon_closed = "secureengweld"
@@ -89,7 +89,7 @@
/obj/structure/closet/secure_closet/engineering_personal
name = "Engineer's Locker"
name = "engineer's locker"
req_access = list(access_engine_equip)
icon_state = "secureeng1"
icon_closed = "secureeng"
@@ -119,7 +119,7 @@
return
/obj/structure/closet/secure_closet/atmos_personal
name = "Technician's Locker"
name = "technician's locker"
req_access = list(access_atmospherics)
icon_state = "secureeng1"
icon_closed = "secureeng"
@@ -24,7 +24,7 @@
return
/obj/structure/closet/secure_closet/freezer/kitchen
name = "Kitchen Cabinet"
name = "kitchen cabinet"
req_access = list(access_kitchen)
New()
@@ -43,7 +43,7 @@
/obj/structure/closet/secure_closet/freezer/meat
name = "Meat Fridge"
name = "meat fridge"
icon_state = "fridge1"
icon_closed = "fridge"
icon_locked = "fridge1"
@@ -62,7 +62,7 @@
/obj/structure/closet/secure_closet/freezer/fridge
name = "Refrigerator"
name = "refrigerator"
icon_state = "fridge1"
icon_closed = "fridge"
icon_locked = "fridge1"
@@ -85,7 +85,7 @@
/obj/structure/closet/secure_closet/freezer/money
name = "Freezer"
name = "freezer"
icon_state = "fridge1"
icon_closed = "fridge"
icon_locked = "fridge1"
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/hydroponics
name = "Botanist's locker"
name = "botanist's locker"
req_access = list(access_hydroponics)
icon_state = "hydrosecure1"
icon_closed = "hydrosecure"
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/medical1
name = "Medicine Closet"
name = "medicine closet"
desc = "Filled with medical junk."
icon_state = "medical1"
icon_closed = "medical"
@@ -28,7 +28,7 @@
/obj/structure/closet/secure_closet/medical2
name = "Anesthetic"
name = "anesthetic locker"
desc = "Used to knock people out."
icon_state = "medical1"
icon_closed = "medical"
@@ -53,7 +53,7 @@
/obj/structure/closet/secure_closet/medical3
name = "Medical Doctor's Locker"
name = "medical doctor's locker"
req_access = list(access_surgery)
icon_state = "securemed1"
icon_closed = "securemed"
@@ -82,7 +82,7 @@
//Exam Room
/obj/structure/closet/secure_closet/exam
name = "Exam Room Closet"
name = "exam room closet"
desc = "Filled with exam room materials."
icon_state = "medical1"
icon_closed = "medical"
@@ -126,7 +126,7 @@
new /obj/item/weapon/reagent_containers/pill/methamphetamine(src)
/obj/structure/closet/secure_closet/psychiatrist
name = "Psychiatrist's Locker"
name = "psychiatrist's locker"
req_access = list(access_psychiatrist)
icon_state = "securemed1"
icon_closed = "securemed"
@@ -146,7 +146,7 @@
return
/obj/structure/closet/secure_closet/CMO
name = "Chief Medical Officer's Locker"
name = "chief medical officer's locker"
req_access = list(access_cmo)
icon_state = "cmosecure1"
icon_closed = "cmosecure"
@@ -190,7 +190,7 @@
/obj/structure/closet/secure_closet/animal
name = "Animal Control"
name = "animal control locker"
req_access = list(access_surgery)
@@ -206,7 +206,7 @@
/obj/structure/closet/secure_closet/chemical
name = "Chemical Closet"
name = "chemical closet"
desc = "Store dangerous chemicals in here."
icon_state = "medical1"
icon_closed = "medical"
@@ -225,7 +225,7 @@
return
/obj/structure/closet/secure_closet/medical_wall
name = "First Aid Closet"
name = "first aid closet"
desc = "It's a secure wall-mounted storage unit for first aid supplies."
icon_state = "medical_wall_locked"
icon_closed = "medical_wall_unlocked"
@@ -251,7 +251,7 @@
icon_state = icon_opened
/obj/structure/closet/secure_closet/paramedic
name = "Paramedic EVA gear"
name = "paramedic EVA gear"
desc = "A locker with a Paramedic EVA suit."
icon_state = "medical1"
icon_closed = "medical"
@@ -272,7 +272,7 @@
return
/obj/structure/closet/secure_closet/reagents
name = "Chemical Storage Closet"
name = "chemical storage closet"
desc = "Store dangerous chemicals in here."
icon_state = "chemical1"
icon_closed = "chemical"
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/scientist
name = "Scientist's Locker"
name = "scientist's locker"
req_access = list(access_tox_storage)
icon_state = "secureres1"
icon_closed = "secureres"
@@ -11,6 +11,7 @@
New()
..()
sleep(2)
new /obj/item/weapon/storage/backpack/science(src)
new /obj/item/weapon/storage/backpack/satchel_tox(src)
new /obj/item/clothing/under/rank/scientist(src)
//new /obj/item/clothing/suit/labcoat/science(src)
@@ -25,7 +26,7 @@
/obj/structure/closet/secure_closet/RD
name = "Research Director's Locker"
name = "research director's locker"
req_access = list(access_rd)
icon_state = "rdsecure1"
icon_closed = "rdsecure"
@@ -53,7 +54,7 @@
return
/obj/structure/closet/secure_closet/research_reagents
name = "Research Chemical Storage Closet"
name = "research chemical storage closet"
desc = "Store dangerous chemicals in here."
icon_state = "rchemical1"
icon_closed = "rchemical"
@@ -127,4 +127,49 @@
if(welded)
overlays += "welded"
else
icon_state = icon_opened
icon_state = icon_opened
/obj/structure/closet/secure_closet/container_resist(var/mob/living/L)
var/breakout_time = 2 //2 minutes by default
if(opened)
if (L.loc == src)
L.forceMove(get_turf(src)) // Let's just be safe here
return //Door's open... wait, why are you in it's contents then?
if(!locked && !welded)
return //It's a secure closet, but isn't locked. Easily escapable from, no need to 'resist'
//okay, so the closet is either welded or locked... resist!!!
L.changeNext_move(CLICK_CD_BREAKOUT)
L.last_special = world.time + CLICK_CD_BREAKOUT
L << "<span class='warning'>You lean on the back of \the [src] and start pushing the door open. (this will take about [breakout_time] minutes)</span>"
for(var/mob/O in viewers(src))
O.show_message("<span class='danger'>The [src] begins to shake violently!</span>", 1)
spawn(0)
if(do_after(usr,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
if(!src || !L || L.stat != CONSCIOUS || L.loc != src || opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened
return
//Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'...
if(!locked && !welded)
return
//Well then break it!
desc = "It appears to be broken."
icon_state = icon_off
flick(icon_broken, src)
sleep(10)
flick(icon_broken, src)
sleep(10)
broken = 1
locked = 0
welded = 0
update_icon()
usr << "\red You successfully break out!"
for(var/mob/O in viewers(L.loc))
O.show_message("<span class='danger'>\the [usr] successfully broke out of \the [src]!</span>", 1)
if(istype(src.loc, /obj/structure/bigDelivery)) //Do this to prevent contents from being opened into nullspace (read: bluespace)
var/obj/structure/bigDelivery/BD = src.loc
BD.attack_hand(usr)
open()
@@ -1,5 +1,5 @@
/obj/structure/closet/secure_closet/captains
name = "Captain's Locker"
name = "captain's locker"
req_access = list(access_captain)
icon_state = "capsecure1"
icon_closed = "capsecure"
@@ -32,7 +32,7 @@
/obj/structure/closet/secure_closet/hop
name = "Head of Personnel's Locker"
name = "head of personnel's locker"
req_access = list(access_hop)
icon_state = "hopsecure1"
icon_closed = "hopsecure"
@@ -58,7 +58,7 @@
return
/obj/structure/closet/secure_closet/hop2
name = "Head of Personnel's Attire"
name = "head of personnel's attire"
req_access = list(access_hop)
icon_state = "hopsecure1"
icon_closed = "hopsecure"
@@ -87,7 +87,7 @@
/obj/structure/closet/secure_closet/hos
name = "Head of Security's Locker"
name = "head of security's locker"
req_access = list(access_hos)
icon_state = "hossecure1"
icon_closed = "hossecure"
@@ -112,7 +112,7 @@
new /obj/item/clothing/suit/armor/hos/alt(src)
new /obj/item/clothing/head/HoS(src)
new /obj/item/clothing/head/HoS/beret(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
@@ -126,7 +126,7 @@
/obj/structure/closet/secure_closet/warden
name = "Warden's Locker"
name = "warden's locker"
req_access = list(access_armory)
icon_state = "wardensecure1"
icon_closed = "wardensecure"
@@ -151,7 +151,7 @@
new /obj/item/clothing/under/rank/warden(src)
new /obj/item/clothing/under/rank/warden/formal(src)
new /obj/item/clothing/under/rank/warden/corp(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/taperoll/police(src)
new /obj/item/weapon/storage/box/zipties(src)
@@ -166,7 +166,7 @@
/obj/structure/closet/secure_closet/security
name = "Security Officer's Locker"
name = "security officer's locker"
req_access = list(access_security)
icon_state = "sec1"
icon_closed = "sec"
@@ -190,14 +190,14 @@
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/storage/belt/security/sec(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/taperoll/police(src)
return
/obj/structure/closet/secure_closet/brigdoc
name = "Brig Physician's Locker"
name = "brig physician's locker"
req_access = list(access_security)
icon_state = "securemed1"
icon_closed = "securemed"
@@ -227,7 +227,7 @@
return
/obj/structure/closet/secure_closet/blueshield
name = "Blueshield's Locker"
name = "blueshield's locker"
req_access = list(access_blueshield)
icon_state = "bssecure1"
icon_closed = "bssecure"
@@ -248,7 +248,7 @@
new /obj/item/weapon/restraints/handcuffs(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/glasses/hud/health_advanced
new /obj/item/clothing/glasses/hud/health/health_advanced
new /obj/item/clothing/head/beret/centcom/officer(src)
new /obj/item/clothing/suit/armor/vest/blueshield(src)
new /obj/item/clothing/suit/storage/blueshield(src)
@@ -258,7 +258,7 @@
return
/obj/structure/closet/secure_closet/ntrep
name = "Nanotrasen Representative's Locker"
name = "\improper Nanotrasen Representative's locker"
req_access = list(access_ntrep)
icon_state = "ntsecure1"
icon_closed = "ntsecure"
@@ -317,7 +317,7 @@
/obj/structure/closet/secure_closet/detective
name = "Detective's Cabinet"
name = "detective's cabinet"
req_access = list(access_forensics_lockers)
icon_state = "cabinetdetective_locked"
icon_closed = "cabinetdetective"
@@ -361,7 +361,7 @@
icon_state = icon_opened
/obj/structure/closet/secure_closet/injection
name = "Lethal Injections"
name = "lethal injections locker"
req_access = list(access_captain)
@@ -375,7 +375,7 @@
/obj/structure/closet/secure_closet/brig
name = "Brig Locker"
name = "brig locker"
req_access = list(access_brig)
anchored = 1
var/id = null
@@ -388,7 +388,7 @@
/obj/structure/closet/secure_closet/courtroom
name = "Courtroom Locker"
name = "courtroom locker"
req_access = list(access_court)
New()
@@ -346,6 +346,8 @@
/obj/structure/closet/wardrobe/robotics_black/New()
..()
sleep(2)
new /obj/item/clothing/glasses/hud/diagnostic(src)
new /obj/item/clothing/glasses/hud/diagnostic(src)
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/suit/storage/labcoat(src)
@@ -373,6 +375,8 @@
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
new /obj/item/weapon/storage/backpack/chemistry(src)
new /obj/item/weapon/storage/backpack/chemistry(src)
new /obj/item/weapon/storage/backpack/satchel_chem(src)
new /obj/item/weapon/storage/backpack/satchel_chem(src)
new /obj/item/weapon/storage/bag/chemistry(src)
@@ -394,6 +398,10 @@
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/genetics(src)
new /obj/item/clothing/suit/storage/labcoat/genetics(src)
new /obj/item/weapon/storage/backpack/genetics(src)
new /obj/item/weapon/storage/backpack/genetics(src)
new /obj/item/weapon/storage/backpack/satchel_gen(src)
new /obj/item/weapon/storage/backpack/satchel_gen(src)
return
@@ -413,6 +421,10 @@
new /obj/item/clothing/suit/storage/labcoat/virologist(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/weapon/storage/backpack/virology(src)
new /obj/item/weapon/storage/backpack/virology(src)
new /obj/item/weapon/storage/backpack/satchel_vir(src)
new /obj/item/weapon/storage/backpack/satchel_vir(src)
return
@@ -347,14 +347,14 @@
/obj/structure/closet/crate/internals
desc = "A internals crate."
name = "Internals crate"
name = "internals crate"
icon_state = "o2crate"
icon_opened = "o2crateopen"
icon_closed = "o2crate"
/obj/structure/closet/crate/trashcart
desc = "A heavy, metal trashcart with wheels."
name = "Trash Cart"
name = "trash Cart"
icon_state = "trashcart"
icon_opened = "trashcartopen"
icon_closed = "trashcart"
@@ -377,14 +377,14 @@
/obj/structure/closet/crate/medical
desc = "A medical crate."
name = "Medical crate"
name = "medical crate"
icon_state = "medicalcrate"
icon_opened = "medicalcrateopen"
icon_closed = "medicalcrate"
/obj/structure/closet/crate/rcd
desc = "A crate for the storage of the RCD."
name = "RCD crate"
name = "\improper RCD crate"
icon_state = "crate"
icon_opened = "crateopen"
icon_closed = "crate"
@@ -426,14 +426,14 @@
/obj/structure/closet/crate/bin
desc = "A large bin."
name = "Large bin"
name = "large bin"
icon_state = "largebin"
icon_opened = "largebinopen"
icon_closed = "largebin"
/obj/structure/closet/crate/radiation
desc = "A crate with a radiation sign on it."
name = "Radioactive gear crate"
name = "radioactive gear crate"
icon_state = "radiation"
icon_opened = "radiationopen"
icon_closed = "radiation"
@@ -451,21 +451,21 @@
/obj/structure/closet/crate/secure/weapon
desc = "A secure weapons crate."
name = "Weapons crate"
name = "weapons crate"
icon_state = "weaponcrate"
icon_opened = "weaponcrateopen"
icon_closed = "weaponcrate"
/obj/structure/closet/crate/secure/plasma
desc = "A secure plasma crate."
name = "Plasma crate"
name = "plasma crate"
icon_state = "plasmacrate"
icon_opened = "plasmacrateopen"
icon_closed = "plasmacrate"
/obj/structure/closet/crate/secure/gear
desc = "A secure gear crate."
name = "Gear crate"
name = "gear crate"
icon_state = "secgearcrate"
icon_opened = "secgearcrateopen"
icon_closed = "secgearcrate"
@@ -479,7 +479,7 @@
/obj/structure/closet/crate/secure/bin
desc = "A secure bin."
name = "Secure bin"
name = "secure bin"
icon_state = "largebins"
icon_opened = "largebinsopen"
icon_closed = "largebins"
@@ -550,7 +550,7 @@
icon_closed = "largermetal"
/obj/structure/closet/crate/hydroponics
name = "Hydroponics crate"
name = "hydroponics crate"
desc = "All you need to destroy those pesky weeds and pests."
icon_state = "hydrocrate"
icon_opened = "hydrocrateopen"
@@ -92,5 +92,5 @@
amount = 50
/obj/structure/closet/critter/deer
name = "Deer crate"
name = "deer crate"
content_mob = /mob/living/simple_animal/deer
@@ -3,7 +3,7 @@
/obj/structure/closet/walllocker
desc = "A wall mounted storage locker."
name = "Wall Locker"
name = "wall locker"
icon = 'icons/obj/walllocker.dmi'
icon_state = "wall-locker"
density = 0
@@ -11,6 +11,10 @@
icon_closed = "wall-locker"
icon_opened = "wall-lockeropen"
/obj/structure/closet/walllocker/close()
..()
density = 0 //It's a locker in a wall, you aren't going to be walking into it.
//spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar
/obj/structure/closet/walllocker/emerglocker
@@ -19,12 +23,14 @@
var/list/spawnitems = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/weapon/crowbar)
var/amount = 3 // spawns each items X times.
icon_state = "emerg"
icon_closed = "emerg"
icon_opened = "emergopen"
/obj/structure/closet/walllocker/emerglocker/attack_hand(mob/user as mob)
if (istype(user, /mob/living/silicon/ai)) //Added by Strumpetplaya - AI shouldn't be able to
return //activate emergency lockers. This fixes that. (Does this make sense, the AI can't call attack_hand, can it? --Mloc)
if(!amount)
usr << "<spawn class='notice'>It's empty.."
usr << "<spawn class='notice'>It's empty."
return
if(amount)
usr << "<spawn class='notice'>You take out some items from \the [src]."
+2 -2
View File
@@ -192,7 +192,7 @@
/obj/structure/flora/kirbyplants
name = "Potted plant"
name = "potted plant"
icon = 'icons/obj/flora/plants.dmi'
icon_state = "plant-1"
anchored = 0
@@ -205,7 +205,7 @@
icon_state = "plant-36"
/obj/structure/flora/kirbyplants/dead
name = "RD's potted plant"
name = "\improper RD's potted plant"
desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..."
icon_state = "plant-dead"
+1 -1
View File
@@ -2,7 +2,7 @@
icon_state = "girder"
anchored = 1
density = 1
layer = 2
layer = TURF_LAYER + 0.9
var/state = 0
var/health = 200
+10 -11
View File
@@ -35,7 +35,7 @@
/obj/structure/inflatable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
return 0
/obj/structure/inflatable/CanAtmosPass(turf/T)
return !density
@@ -75,15 +75,15 @@
user.visible_message("<span class='danger'>[user] tears at [src]!</span>")
/obj/structure/inflatable/attack_alien(mob/user as mob)
if(islarva(user))
if(islarva(user))
return
attack_generic(user, 15)
/obj/structure/inflatable/attack_animal(mob/user as mob)
if(!isanimal(user))
if(!isanimal(user))
return
var/mob/living/simple_animal/M = user
if(M.melee_damage_upper <= 0)
if(M.melee_damage_upper <= 0)
return
attack_generic(M, M.melee_damage_upper)
@@ -94,7 +94,7 @@
attack_generic(user, rand(10, 15))
/obj/structure/inflatable/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(!istype(W))
if(!istype(W))
return
if (can_puncture(W))
visible_message("\red <b>[user] pierces [src] with [W]!</b>")
@@ -119,7 +119,6 @@
src.transfer_fingerprints_to(R)
qdel(src)
else
//user << "\blue You slowly deflate the inflatable wall."
visible_message("[src] slowly deflates.")
spawn(50)
var/obj/item/inflatable/R = new /obj/item/inflatable(loc)
@@ -178,16 +177,16 @@
if(istype(mover, /obj/effect/beam))
return !opacity
return !density
/obj/structure/inflatable/door/CanAtmosPass(turf/T)
return !density
/obj/structure/inflatable/door/proc/TryToSwitchState(atom/user)
if(isSwitchingStates)
if(isSwitchingStates)
return
if(ismob(user))
var/mob/M = user
if(world.time - user.last_bumped <= 60)
if(world.time - user.last_bumped <= 60)
return //NOTE do we really need that?
if(M.client)
if(iscarbon(M))
@@ -240,14 +239,14 @@
visible_message("[src] rapidly deflates!")
var/obj/item/inflatable/door/torn/R = new /obj/item/inflatable/door/torn(loc)
src.transfer_fingerprints_to(R)
qdel(src)
else
visible_message("[src] slowly deflates.")
spawn(50)
var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc)
src.transfer_fingerprints_to(R)
qdel(src)
air_update_turf(1)
qdel(src)
/obj/item/inflatable/torn
name = "torn inflatable wall"
+21 -2
View File
@@ -143,6 +143,16 @@
connected = null
return ..()
/obj/structure/morgue/container_resist(var/mob/living/L)
var/mob/living/carbon/CM = L
if(!istype(CM))
return
if (CM.stat || CM.restrained())
return
CM << "<span class='alert'>You attempt to slide yourself out of \the [src]...</span>"
src.attack_hand(CM)
/*
* Morgue tray
@@ -314,12 +324,12 @@
if(contents.len <= 0)
for (var/mob/M in viewers(src))
M.show_message("\red You hear a hollow crackle.", 1)
M.show_message("<span class='warning'>You hear a hollow crackle.</span>", 1)
return
else
for (var/mob/M in viewers(src))
M.show_message("\red You hear a roar as the crematorium activates.", 1)
M.show_message("<span class='warning'>You hear a roar as the crematorium activates.</span>", 1)
cremating = 1
locked = 1
@@ -355,6 +365,15 @@
connected = null
return ..()
/obj/structure/crematorium/container_resist(var/mob/living/L)
var/mob/living/carbon/CM = L
if(!istype(CM))
return
if (CM.stat || CM.restrained())
return
CM << "<span class='alert'>You attempt to slide yourself out of \the [src]...</span>"
src.attack_hand(CM)
/*
* Crematorium tray