mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-07-19 20:23:07 +01:00
Merge branch 'master' of https://github.com/Yawn-Wider/YWPolarisVore into August2020UpstreamPull
August2020UpstreamPull
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
plane = DIRTY_PLANE
|
||||
anchored = 1
|
||||
var/amount = 1
|
||||
generic_filth = TRUE
|
||||
persistent = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/liquid_fuel/New(turf/newLoc,amt=1,nologs=1)
|
||||
if(!nologs)
|
||||
|
||||
@@ -20,6 +20,8 @@ var/global/list/image/splatter_cache=list()
|
||||
var/synthblood = 0
|
||||
var/list/datum/disease2/disease/virus2 = list()
|
||||
var/amount = 5
|
||||
generic_filth = TRUE
|
||||
persistent = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/reveal_blood()
|
||||
if(!fluorescent)
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
icon_state = "gib1"
|
||||
basecolor = SYNTH_BLOOD_COLOUR
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
|
||||
generic_filth = FALSE
|
||||
persistent = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/update_icon()
|
||||
color = "#FFFFFF"
|
||||
@@ -39,6 +41,8 @@
|
||||
|
||||
/obj/effect/decal/cleanable/blood/oil
|
||||
basecolor = SYNTH_BLOOD_COLOUR
|
||||
generic_filth = FALSE
|
||||
persistent = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/oil/dry()
|
||||
return
|
||||
|
||||
@@ -1,7 +1,22 @@
|
||||
/obj/effect/decal/cleanable
|
||||
plane = DIRTY_PLANE
|
||||
var/persistent = FALSE
|
||||
var/generic_filth = FALSE
|
||||
var/age = 0
|
||||
var/list/random_icon_states = list()
|
||||
|
||||
/obj/effect/decal/cleanable/Initialize(var/ml, var/_age)
|
||||
if(!isnull(_age))
|
||||
age = _age
|
||||
if(random_icon_states && length(src.random_icon_states) > 0)
|
||||
src.icon_state = pick(src.random_icon_states)
|
||||
SSpersistence.track_value(src, /datum/persistent/filth)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/Destroy()
|
||||
SSpersistence.forget_value(src, /datum/persistent/filth)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/clean_blood(var/ignore = 0)
|
||||
if(!ignore)
|
||||
qdel(src)
|
||||
|
||||
@@ -22,10 +22,6 @@
|
||||
icon_state = "sbsposter6"
|
||||
name = "Mawletta"
|
||||
desc = "The best view in the system."
|
||||
/datum/poster/vore_7
|
||||
icon_state = "sbsposter7"
|
||||
name = "Sam FEAR"
|
||||
desc = "A poster of the most dangerous cat working for NT."
|
||||
/datum/poster/vore_8
|
||||
icon_state = "sbsposter8"
|
||||
name = "Shitty Timbs"
|
||||
@@ -34,10 +30,6 @@
|
||||
icon_state = "sbsposter9"
|
||||
name = "Shitty Tim"
|
||||
desc = "A Shitty Tim concert poster."
|
||||
/datum/poster/vore_10
|
||||
icon_state = "sbsposter10"
|
||||
name = "Kitty Kisuke"
|
||||
desc = "A poster of famous redspace researcher, Kisuke Gema."
|
||||
/datum/poster/vore_11
|
||||
icon_state = "sbsposter11"
|
||||
name = "Fear"
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/obj/item/toy/tennis
|
||||
name = "tennis ball"
|
||||
desc = "A classic tennis ball; a hollow rubber sphere covered in felt. This one has seen better days, and seems to have lost most of its bounce."
|
||||
icon = 'icons/obj/balls_vr.dmi'
|
||||
icon_state = "tennis_classic"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/righthand_balls_vr.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/lefthand_balls_vr.dmi',
|
||||
slot_wear_mask_str = 'icons/mob/mouthball_vr.dmi',
|
||||
)
|
||||
item_state = "tennis_classic"
|
||||
slot_flags = SLOT_MASK
|
||||
throw_range = 14
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
/obj/item/toy/tennis/red
|
||||
name = "red tennis ball"
|
||||
desc = "A red tennis ball. It goes twice as fast!"
|
||||
icon_state = "tennis_red"
|
||||
item_state = "tennis_red"
|
||||
throw_speed = 8 //base throw_speed is 4, and that's already super fast
|
||||
|
||||
/obj/item/toy/tennis/yellow
|
||||
name = "yellow tennis ball"
|
||||
desc = "A yellow tennis ball. Or is it orange? Orangey-yellow?"
|
||||
icon_state = "tennis_yellow"
|
||||
item_state = "tennis_yellow"
|
||||
|
||||
/obj/item/toy/tennis/green
|
||||
name = "green tennis ball"
|
||||
desc = "A bright green tennis ball. Tastes faintly of lime... or maybe soap."
|
||||
icon_state = "tennis_green"
|
||||
item_state = "tennis_green"
|
||||
|
||||
/obj/item/toy/tennis/cyan
|
||||
name = "cyan tennis ball"
|
||||
desc = "A cyan tennis ball. What a curious color choice."
|
||||
icon_state = "tennis_cyan"
|
||||
item_state = "tennis_cyan"
|
||||
|
||||
/obj/item/toy/tennis/blue
|
||||
name = "blue tennis ball"
|
||||
desc = "A blue tennis ball. Who makes blue tennis balls anyway?"
|
||||
icon_state = "tennis_blue"
|
||||
item_state = "tennis_blue"
|
||||
|
||||
/obj/item/toy/tennis/purple
|
||||
name = "purple tennis ball"
|
||||
desc = "A purple tennis ball. Now you've seen everything. Purple, seriously?"
|
||||
icon_state = "tennis_purple"
|
||||
item_state = "tennis_purple"
|
||||
@@ -519,7 +519,10 @@ var/list/civilian_cartridges = list(
|
||||
if(bl.z != cl.z)
|
||||
continue
|
||||
var/direction = get_dir(src,B)
|
||||
CartData[++CartData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.reagents.total_volume/100)
|
||||
var/status = "No Bucket"
|
||||
if(B.mybucket)
|
||||
status = B.mybucket.reagents.total_volume / 100
|
||||
CartData[++CartData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = status)
|
||||
if(!CartData.len)
|
||||
CartData[++CartData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
|
||||
var/can_use = 1
|
||||
var/obj/effect/dummy/chameleon/active_dummy = null
|
||||
var/saved_item = /obj/item/weapon/cigbutt
|
||||
var/saved_item = /obj/item/trash/cigbutt
|
||||
var/saved_icon = 'icons/obj/clothing/masks.dmi'
|
||||
var/saved_icon_state = "cigbutt"
|
||||
var/saved_overlays
|
||||
|
||||
@@ -271,8 +271,8 @@
|
||||
|
||||
//Checks for various conditions to see if the mob is revivable
|
||||
/obj/item/weapon/shockpaddles/proc/can_defib(mob/living/carbon/human/H) //This is checked before doing the defib operation
|
||||
if((H.species.flags & NO_SCAN))
|
||||
return "buzzes, \"Unrecogized physiology. Operation aborted.\""
|
||||
if((H.species.flags & NO_DEFIB))
|
||||
return "buzzes, \"Incompatible physiology. Operation aborted.\""
|
||||
else if(H.isSynthetic() && !use_on_synthetic)
|
||||
return "buzzes, \"Synthetic Body. Operation aborted.\""
|
||||
else if(!H.isSynthetic() && use_on_synthetic)
|
||||
@@ -338,14 +338,14 @@
|
||||
if(!heart)
|
||||
return TRUE
|
||||
|
||||
var/blood_volume = round((H.vessel.get_reagent_amount("blood")/H.species.blood_volume)*100)
|
||||
var/blood_volume = H.vessel.get_reagent_amount("blood")
|
||||
if(!heart || heart.is_broken())
|
||||
blood_volume *= 0.3
|
||||
else if(heart.is_bruised())
|
||||
blood_volume *= 0.7
|
||||
else if(heart.damage > 1)
|
||||
blood_volume *= 0.8
|
||||
return blood_volume < BLOOD_VOLUME_SURVIVE
|
||||
return blood_volume < H.species.blood_volume*H.species.blood_level_fatal
|
||||
|
||||
/obj/item/weapon/shockpaddles/proc/check_charge(var/charge_amt)
|
||||
return 0
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
for(var/mob/living/carbon/M in oviewers(4, T))
|
||||
if(M.get_ear_protection() >= 2)
|
||||
continue
|
||||
M.sleeping = 0
|
||||
M.SetSleeping(0)
|
||||
M.stuttering += 20
|
||||
M.ear_deaf += 30
|
||||
M.Weaken(3)
|
||||
|
||||
@@ -155,8 +155,8 @@ var/global/list/default_medbay_channels = list(
|
||||
data["freq"] = format_frequency(frequency)
|
||||
data["rawfreq"] = num2text(frequency)
|
||||
|
||||
data["mic_cut"] = (wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
data["spk_cut"] = (wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
data["mic_cut"] = (wires.is_cut(WIRE_RADIO_TRANSMIT) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
data["spk_cut"] = (wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
|
||||
var/list/chanlist = list_channels(user)
|
||||
if(islist(chanlist) && chanlist.len)
|
||||
@@ -215,12 +215,6 @@ var/global/list/default_medbay_channels = list(
|
||||
/mob/observer/dead/has_internal_radio_channel_access(var/list/req_one_accesses)
|
||||
return can_admin_interact()
|
||||
|
||||
/obj/item/device/radio/proc/text_wires()
|
||||
if (b_stat)
|
||||
return wires.GetInteractWindow()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/radio/proc/text_sec_channel(var/chan_name, var/chan_stat)
|
||||
var/list = !!(chan_stat&FREQ_LISTENING)!=0
|
||||
return {"
|
||||
@@ -229,10 +223,10 @@ var/global/list/default_medbay_channels = list(
|
||||
"}
|
||||
|
||||
/obj/item/device/radio/proc/ToggleBroadcast()
|
||||
broadcasting = !broadcasting && !(wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
broadcasting = !broadcasting && !(wires.is_cut(WIRE_RADIO_TRANSMIT) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
|
||||
/obj/item/device/radio/proc/ToggleReception()
|
||||
listening = !listening && !(wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||
listening = !listening && !(wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL))
|
||||
|
||||
/obj/item/device/radio/CanUseTopic()
|
||||
if(!on)
|
||||
@@ -337,7 +331,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
|
||||
// Uncommenting this. To the above comment:
|
||||
// The permacell radios aren't suppose to be able to transmit, this isn't a bug and this "fix" is just making radio wires useless. -Giacom
|
||||
if(wires.IsIndexCut(WIRE_TRANSMIT)) // The device has to have all its wires and shit intact
|
||||
if(wires.is_cut(WIRE_RADIO_TRANSMIT)) // The device has to have all its wires and shit intact
|
||||
return FALSE
|
||||
|
||||
if(!radio_connection)
|
||||
@@ -541,7 +535,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
// check if this radio can receive on the given frequency, and if so,
|
||||
// what the range is in which mobs will hear the radio
|
||||
// returns: -1 if can't receive, range otherwise
|
||||
if(wires.IsIndexCut(WIRE_RECEIVE))
|
||||
if(wires.is_cut(WIRE_RADIO_RECEIVER))
|
||||
return -1
|
||||
if(!listening)
|
||||
return -1
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
/obj/item/device/bluespaceradio/cryogaia_prelinked
|
||||
name = "bluespace radio (Cryogaia)"
|
||||
handset = /obj/item/device/radio/bluespacehandset/linked/cryogaia_prelinked
|
||||
|
||||
/obj/item/device/radio/bluespacehandset/linked/cryogaia_prelinked
|
||||
bs_tx_preload_id = "cryogaia_rx" //Transmit to a receiver
|
||||
bs_rx_preload_id = "cryogaia_tx" //Recveive from a transmitter
|
||||
@@ -128,7 +128,7 @@
|
||||
//Only care about megabroadcasts or things that are targeted at us
|
||||
if(!(0 in level))
|
||||
return -1
|
||||
if(wires.IsIndexCut(WIRE_RECEIVE))
|
||||
if(wires.is_cut(WIRE_RADIO_RECEIVER))
|
||||
return -1
|
||||
if(!listening)
|
||||
return -1
|
||||
|
||||
@@ -272,9 +272,11 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
var/blood_volume = H.vessel.get_reagent_amount("blood")
|
||||
var/blood_percent = round((blood_volume / H.species.blood_volume)*100)
|
||||
var/blood_type = H.dna.b_type
|
||||
if(blood_percent <= BLOOD_VOLUME_BAD)
|
||||
if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
|
||||
dat += "<span class='danger'><i>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]</i></span><br>"
|
||||
else if(blood_percent <= BLOOD_VOLUME_SAFE)
|
||||
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
|
||||
dat += "<span class='danger'><i>Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]</i></span><br>"
|
||||
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
|
||||
dat += "<span class='danger'>Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]</span><br>"
|
||||
else
|
||||
dat += "<span class='notice'>Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]</span><br>"
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
var/televored = FALSE
|
||||
if(isbelly(real_dest))
|
||||
var/obj/belly/B = real_dest
|
||||
if(!target.can_be_drop_prey && B.owner != user)
|
||||
if(!(target.can_be_drop_prey) && B.owner != user)
|
||||
to_chat(target,"<span class='warning'>\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!</span>")
|
||||
real_dest = dT //Nevermind!
|
||||
else
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
|
||||
#define JAR_NOTHING 0
|
||||
#define JAR_MONEY 1
|
||||
#define JAR_ANIMAL 2
|
||||
#define JAR_SPIDER 3
|
||||
|
||||
/obj/item/glass_jar
|
||||
name = "glass jar"
|
||||
desc = "A small empty jar."
|
||||
@@ -27,7 +33,7 @@
|
||||
var/mob/L = A
|
||||
user.visible_message("<span class='notice'>[user] scoops [L] into \the [src].</span>", "<span class='notice'>You scoop [L] into \the [src].</span>")
|
||||
L.loc = src
|
||||
contains = 2
|
||||
contains = JAR_ANIMAL
|
||||
update_icon()
|
||||
return
|
||||
else if(istype(A, /obj/effect/spider/spiderling))
|
||||
@@ -35,40 +41,40 @@
|
||||
user.visible_message("<span class='notice'>[user] scoops [S] into \the [src].</span>", "<span class='notice'>You scoop [S] into \the [src].</span>")
|
||||
S.loc = src
|
||||
STOP_PROCESSING(SSobj, S) // No growing inside jars
|
||||
contains = 3
|
||||
contains = JAR_SPIDER
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/attack_self(var/mob/user)
|
||||
switch(contains)
|
||||
if(1)
|
||||
if(JAR_MONEY)
|
||||
for(var/obj/O in src)
|
||||
O.loc = user.loc
|
||||
to_chat(user, "<span class='notice'>You take money out of \the [src].</span>")
|
||||
contains = 0
|
||||
contains = JAR_NOTHING
|
||||
update_icon()
|
||||
return
|
||||
if(2)
|
||||
if(JAR_ANIMAL)
|
||||
for(var/mob/M in src)
|
||||
M.loc = user.loc
|
||||
user.visible_message("<span class='notice'>[user] releases [M] from \the [src].</span>", "<span class='notice'>You release [M] from \the [src].</span>")
|
||||
contains = 0
|
||||
contains = JAR_NOTHING
|
||||
update_icon()
|
||||
return
|
||||
if(3)
|
||||
if(JAR_SPIDER)
|
||||
for(var/obj/effect/spider/spiderling/S in src)
|
||||
S.loc = user.loc
|
||||
user.visible_message("<span class='notice'>[user] releases [S] from \the [src].</span>", "<span class='notice'>You release [S] from \the [src].</span>")
|
||||
START_PROCESSING(SSobj, S) // They can grow after being let out though
|
||||
contains = 0
|
||||
contains = JAR_NOTHING
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/attackby(var/obj/item/W, var/mob/user)
|
||||
if(istype(W, /obj/item/weapon/spacecash))
|
||||
if(contains == 0)
|
||||
contains = 1
|
||||
if(contains != 1)
|
||||
if(contains == JAR_NOTHING)
|
||||
contains = JAR_MONEY
|
||||
if(contains != JAR_MONEY)
|
||||
return
|
||||
var/obj/item/weapon/spacecash/S = W
|
||||
user.visible_message("<span class='notice'>[user] puts [S.worth] [S.worth > 1 ? "thalers" : "thaler"] into \the [src].</span>")
|
||||
@@ -80,10 +86,10 @@
|
||||
underlays.Cut()
|
||||
overlays.Cut()
|
||||
switch(contains)
|
||||
if(0)
|
||||
if(JAR_NOTHING)
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
if(1)
|
||||
if(JAR_MONEY)
|
||||
name = "tip jar"
|
||||
desc = "A small jar with money inside."
|
||||
for(var/obj/item/weapon/spacecash/S in src)
|
||||
@@ -92,7 +98,7 @@
|
||||
money.pixel_y = rand(-6, 6)
|
||||
money.transform *= 0.6
|
||||
underlays += money
|
||||
if(2)
|
||||
if(JAR_ANIMAL)
|
||||
for(var/mob/M in src)
|
||||
var/image/victim = image(M.icon, M.icon_state)
|
||||
victim.pixel_y = 6
|
||||
@@ -105,10 +111,109 @@
|
||||
underlays += victim
|
||||
name = "glass jar with [M]"
|
||||
desc = "A small jar with [M] inside."
|
||||
if(3)
|
||||
if(JAR_SPIDER)
|
||||
for(var/obj/effect/spider/spiderling/S in src)
|
||||
var/image/victim = image(S.icon, S.icon_state)
|
||||
underlays += victim
|
||||
name = "glass jar with [S]"
|
||||
desc = "A small jar with [S] inside."
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/fish
|
||||
name = "glass tank"
|
||||
desc = "A large glass tank."
|
||||
|
||||
var/filled = FALSE
|
||||
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
accept_mobs = list(/mob/living/simple_mob/animal/passive/lizard, /mob/living/simple_mob/animal/passive/mouse, /mob/living/simple_mob/animal/sif/leech, /mob/living/simple_mob/animal/sif/frostfly, /mob/living/simple_mob/animal/sif/glitterfly, /mob/living/simple_mob/animal/passive/fish)
|
||||
|
||||
/obj/item/glass_jar/fish/plastic
|
||||
name = "plastic tank"
|
||||
desc = "A large plastic tank."
|
||||
matter = list("plastic" = 4000)
|
||||
|
||||
/obj/item/glass_jar/fish/update_icon() // Also updates name and desc
|
||||
underlays.Cut()
|
||||
overlays.Cut()
|
||||
|
||||
if(filled)
|
||||
underlays += image(icon, "[icon_state]_water")
|
||||
|
||||
switch(contains)
|
||||
if(JAR_NOTHING)
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
if(JAR_MONEY)
|
||||
name = "tip tank"
|
||||
desc = "A large [name] with money inside."
|
||||
for(var/obj/item/weapon/spacecash/S in src)
|
||||
var/image/money = image(S.icon, S.icon_state)
|
||||
money.pixel_x = rand(-2, 3)
|
||||
money.pixel_y = rand(-6, 6)
|
||||
money.transform *= 0.6
|
||||
underlays += money
|
||||
if(JAR_ANIMAL)
|
||||
for(var/mob/M in src)
|
||||
var/image/victim = image(M.icon, M.icon_state)
|
||||
var/initial_x_scale = M.icon_scale_x
|
||||
var/initial_y_scale = M.icon_scale_y
|
||||
M.adjust_scale(0.7)
|
||||
victim.appearance = M.appearance
|
||||
M.adjust_scale(initial_x_scale, initial_y_scale)
|
||||
victim.pixel_y = 4
|
||||
underlays += victim
|
||||
name = "[name] with [M]"
|
||||
desc = "A large [name] with [M] inside."
|
||||
if(JAR_SPIDER)
|
||||
for(var/obj/effect/spider/spiderling/S in src)
|
||||
var/image/victim = image(S.icon, S.icon_state)
|
||||
underlays += victim
|
||||
name = "[name] with [S]"
|
||||
desc = "A large tank with [S] inside."
|
||||
|
||||
if(filled)
|
||||
desc = "[desc] It contains water."
|
||||
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/fish/afterattack(var/atom/A, var/mob/user, var/proximity)
|
||||
if(!filled)
|
||||
if(istype(A, /obj/structure/sink) || istype(A, /turf/simulated/floor/water))
|
||||
if(contains && user.a_intent == "help")
|
||||
to_chat(user, "<span class='warning'>That probably isn't the best idea.</span>")
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You fill \the [src] with water!</span>")
|
||||
filled = TRUE
|
||||
update_icon()
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/glass_jar/fish/attack_self(var/mob/user)
|
||||
if(filled)
|
||||
if(contains == JAR_ANIMAL)
|
||||
if(user.a_intent == "help")
|
||||
to_chat(user, "<span class='notice'>Maybe you shouldn't empty the water...</span>")
|
||||
return
|
||||
|
||||
else
|
||||
filled = FALSE
|
||||
user.visible_message("<span class='warning'>[user] dumps out \the [src]'s water!</span>")
|
||||
update_icon()
|
||||
return
|
||||
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] dumps \the [src]'s water.</span>")
|
||||
filled = FALSE
|
||||
update_icon()
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
#undef JAR_NOTHING
|
||||
#undef JAR_MONEY
|
||||
#undef JAR_ANIMAL
|
||||
#undef JAR_SPIDER
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
user.visible_message("<span class='notice'>[user] presses a button on [src]!</span>")
|
||||
desc = desc + " This one seems to be used-up."
|
||||
spent = TRUE
|
||||
user.visible_message("<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>")
|
||||
user.visible_message("<span class='notice'>A small bluespace rift opens just above [user]'s head and spits out a pizza box!</span>",
|
||||
"<span class='notice'>A small bluespace rift opens just above your head and spits out a pizza box!</span>",
|
||||
"<span class='notice'>You hear a fwoosh followed by a thump.</span>")
|
||||
if(special_delivery)
|
||||
command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECIEVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!")
|
||||
new /obj/effect/falling_effect/pizza_delivery/special(user.loc)
|
||||
@@ -59,4 +61,4 @@
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/effect/falling_effect/pizza_delivery/special
|
||||
crushing = TRUE
|
||||
crushing = TRUE
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
R.add_language(LANGUAGE_ECUREUILIAN, 1)
|
||||
R.add_language(LANGUAGE_DAEMON, 1)
|
||||
R.add_language(LANGUAGE_ENOCHIAN, 1)
|
||||
R.add_language(LANGUAGE_SLAVIC, 1)
|
||||
R.add_language(LANGUAGE_SLAVIC, 1)
|
||||
R.add_language(LANGUAGE_DRUDAKAR, 1)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -1445,3 +1445,77 @@
|
||||
force = 1
|
||||
throwforce = 1
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Chess Pieces //
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
/obj/item/toy/chess
|
||||
name = "chess piece"
|
||||
desc = "This should never display."
|
||||
icon = 'icons/obj/chess.dmi'
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 1
|
||||
throwforce = 1
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
|
||||
/obj/item/toy/chess/pawn_white
|
||||
name = "blue pawn"
|
||||
desc = "A large pawn piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "Pawns can move forward one square, if that square is unoccupied. If the pawn has not yet moved, it has the option of moving two squares forward provided both squares in front of the pawn are unoccupied. A pawn cannot move backward. They can only capture an enemy piece on either of the two tiles diagonally in front of them, but not the tile directly in front of them."
|
||||
icon_state = "w-pawn"
|
||||
/obj/item/toy/chess/pawn_black
|
||||
name = "purple pawn"
|
||||
desc = "A large pawn piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "Pawns can move forward one square, if that square is unoccupied. If the pawn has not yet moved, it has the option of moving two squares forward provided both squares in front of the pawn are unoccupied. A pawn cannot move backward. They can only capture an enemy piece on either of the two tiles diagonally in front of them, but not the tile directly in front of them."
|
||||
icon_state = "b-pawn"
|
||||
/obj/item/toy/chess/rook_white
|
||||
name = "blue rook"
|
||||
desc = "A large rook piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The Rook can move any number of vacant squares vertically or horizontally."
|
||||
icon_state = "w-rook"
|
||||
/obj/item/toy/chess/rook_black
|
||||
name = "purple rook"
|
||||
desc = "A large rook piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The Rook can move any number of vacant squares vertically or horizontally."
|
||||
icon_state = "b-rook"
|
||||
/obj/item/toy/chess/knight_white
|
||||
name = "blue knight"
|
||||
desc = "A large knight piece for playing chess. It's made of a blue-colored glass. Sadly, you can't ride it."
|
||||
description_info = "The Knight can either move two squares horizontally and one square vertically or two squares vertically and one square horizontally. The knight's movement can also be viewed as an 'L' laid out at any horizontal or vertical angle."
|
||||
icon_state = "w-knight"
|
||||
/obj/item/toy/chess/knight_black
|
||||
name = "purple knight"
|
||||
desc = "A large knight piece for playing chess. It's made of a purple-colored glass. 'Just a flesh wound.'"
|
||||
description_info = "The Knight can either move two squares horizontally and one square vertically or two squares vertically and one square horizontally. The knight's movement can also be viewed as an 'L' laid out at any horizontal or vertical angle."
|
||||
icon_state = "b-knight"
|
||||
/obj/item/toy/chess/bishop_white
|
||||
name = "blue bishop"
|
||||
desc = "A large bishop piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The Bishop can move any number of vacant squares in any diagonal direction."
|
||||
icon_state = "w-bishop"
|
||||
/obj/item/toy/chess/bishop_black
|
||||
name = "purple bishop"
|
||||
desc = "A large bishop piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The Bishop can move any number of vacant squares in any diagonal direction."
|
||||
icon_state = "b-bishop"
|
||||
/obj/item/toy/chess/queen_white
|
||||
name = "blue queen"
|
||||
desc = "A large queen piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The Queen can move any number of vacant squares diagonally, horizontally, or vertically."
|
||||
icon_state = "w-queen"
|
||||
/obj/item/toy/chess/queen_black
|
||||
name = "purple queen"
|
||||
desc = "A large queen piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The Queen can move any number of vacant squares diagonally, horizontally, or vertically."
|
||||
icon_state = "b-queen"
|
||||
/obj/item/toy/chess/king_white
|
||||
name = "blue king"
|
||||
desc = "A large king piece for playing chess. It's made of a blue-colored glass."
|
||||
description_info = "The King can move exactly one square horizontally, vertically, or diagonally. If your opponent captures this piece, you lose."
|
||||
icon_state = "w-king"
|
||||
/obj/item/toy/chess/king_black
|
||||
name = "purple king"
|
||||
desc = "A large king piece for playing chess. It's made of a purple-colored glass."
|
||||
description_info = "The King can move exactly one square horizontally, vertically, or diagonally. If your opponent captures this piece, you lose."
|
||||
icon_state = "b-king"
|
||||
@@ -14,6 +14,14 @@
|
||||
drop_sound = 'sound/voice/weh.ogg'
|
||||
attack_verb = list("raided", "kobolded", "weh'd")
|
||||
|
||||
/obj/item/toy/plushie/lizardplushie/resh
|
||||
name = "security unathi plushie"
|
||||
desc = "An adorable stuffed toy that resembles an unathi wearing a head of security uniform. Perfect example of a monitor lizard."
|
||||
icon = 'icons/obj/toy_vr.dmi'
|
||||
icon_state = "marketable_resh"
|
||||
pokephrase = "Halt! Sssecurity!" //"Butts!" would be too obvious
|
||||
attack_verb = list("valided", "justiced", "batoned")
|
||||
|
||||
/obj/item/toy/plushie/slimeplushie
|
||||
name = "slime plushie"
|
||||
desc = "An adorable stuffed toy that resembles a slime. It is practically just a hacky sack."
|
||||
|
||||
@@ -7,6 +7,20 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
desc = "This is rubbish."
|
||||
drop_sound = 'sound/items/drop/wrapper.ogg'
|
||||
var/age = 0
|
||||
|
||||
/obj/item/trash/New(var/newloc, var/_age)
|
||||
..(newloc)
|
||||
if(!isnull(_age))
|
||||
age = _age
|
||||
|
||||
/obj/item/trash/Initialize()
|
||||
SSpersistence.track_value(src, /datum/persistent/filth/trash)
|
||||
. = ..()
|
||||
|
||||
/obj/item/trash/Destroy()
|
||||
SSpersistence.forget_value(src, /datum/persistent/filth/trash)
|
||||
. = ..()
|
||||
|
||||
/obj/item/trash/raisins
|
||||
name = "\improper 4no raisins"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var/datum/pipe_recipe/recipe = null // pipe recipie selected for display/construction //YW edit, added = null
|
||||
var/static/datum/pipe_recipe/first_atmos
|
||||
var/static/datum/pipe_recipe/first_disposal
|
||||
var/static/datum/asset/iconsheet/pipes/icon_assets
|
||||
var/static/datum/asset/spritesheet/pipes/icon_assets
|
||||
var/static/list/pipe_layers = list(
|
||||
"Regular" = PIPING_LAYER_REGULAR,
|
||||
"Supply" = PIPING_LAYER_SUPPLY,
|
||||
@@ -80,7 +80,7 @@
|
||||
/obj/item/weapon/pipe_dispenser/interact(mob/user)
|
||||
SetupPipes()
|
||||
if(!icon_assets)
|
||||
icon_assets = get_asset_datum(/datum/asset/iconsheet/pipes)
|
||||
icon_assets = get_asset_datum(/datum/asset/spritesheet/pipes)
|
||||
icon_assets.send(user)
|
||||
|
||||
var/list/lines = list()
|
||||
@@ -370,7 +370,7 @@
|
||||
if(_dir == p_dir && flipped == p_flipped)
|
||||
attrs += " class=\"linkOn\""
|
||||
if(icon_state)
|
||||
var/img_tag = icon_assets.icon_tag(icon_state, _dir)
|
||||
var/img_tag = icon_assets.icon_tag("[dirtext]-[icon_state]")
|
||||
return "<a href=\"?src=\ref[src];dir=[dirtext];flipped=[flipped]\" title=\"[title]\"[attrs]>[img_tag]</a>"
|
||||
else
|
||||
return "<a href=\"?src=\ref[src];dir=[dirtext];flipped=[flipped]\" title=\"[title]\"[attrs]>[noimg]</a>"
|
||||
|
||||
@@ -150,7 +150,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/smokable/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
|
||||
if(!is_pipe)
|
||||
var/smoke_percent = round((smoketime / max_smoketime) * 100)
|
||||
switch(smoke_percent)
|
||||
@@ -283,7 +283,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_EARS | SLOT_MASK
|
||||
attack_verb = list("burnt", "singed")
|
||||
type_butt = /obj/item/weapon/cigbutt
|
||||
type_butt = /obj/item/trash/cigbutt
|
||||
chem_volume = 15
|
||||
max_smoketime = 300
|
||||
smoketime = 300
|
||||
@@ -341,7 +341,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
name = "premium cigar"
|
||||
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
|
||||
icon_state = "cigar2"
|
||||
type_butt = /obj/item/weapon/cigbutt/cigarbutt
|
||||
type_butt = /obj/item/trash/cigbutt/cigarbutt
|
||||
throw_speed = 0.5
|
||||
item_state = "cigar"
|
||||
max_smoketime = 1500
|
||||
@@ -369,7 +369,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
chem_volume = 30
|
||||
nicotine_amt = 10
|
||||
|
||||
/obj/item/weapon/cigbutt
|
||||
/obj/item/trash/cigbutt
|
||||
name = "cigarette butt"
|
||||
desc = "A manky old cigarette butt."
|
||||
icon = 'icons/obj/clothing/masks.dmi'
|
||||
@@ -379,12 +379,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
slot_flags = SLOT_EARS
|
||||
throwforce = 1
|
||||
|
||||
/obj/item/weapon/cigbutt/Initialize()
|
||||
/obj/item/trash/cigbutt/Initialize()
|
||||
. = ..()
|
||||
randpixel_xy()
|
||||
transform = turn(transform,rand(0,360))
|
||||
|
||||
/obj/item/weapon/cigbutt/cigarbutt
|
||||
/obj/item/trash/cigbutt/cigarbutt
|
||||
name = "cigar butt"
|
||||
desc = "A manky old cigar butt."
|
||||
icon_state = "cigarbutt"
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/security/New()
|
||||
..()
|
||||
network = using_map.station_networks
|
||||
|
||||
/obj/item/weapon/circuitboard/security/tv
|
||||
name = T_BOARD("security camera monitor - television")
|
||||
@@ -45,7 +44,7 @@
|
||||
|
||||
/obj/item/weapon/circuitboard/security/construct(var/obj/machinery/computer/security/C)
|
||||
if (..(C))
|
||||
C.network = network.Copy()
|
||||
C.set_network(network.Copy())
|
||||
|
||||
/obj/item/weapon/circuitboard/security/deconstruct(var/obj/machinery/computer/security/C)
|
||||
if (..(C))
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_construction
|
||||
name = "Station Repairs and Construction"
|
||||
icon_state ="bookEngineering"
|
||||
item_state = "book3"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Station Repairs and Construction"
|
||||
|
||||
@@ -30,6 +31,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_particle_accelerator
|
||||
name = "Particle Accelerator User's Guide"
|
||||
icon_state ="bookParticleAccelerator"
|
||||
item_state = "book15"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Particle Accelerator User's Guide"
|
||||
|
||||
@@ -77,6 +79,7 @@
|
||||
/obj/item/weapon/book/manual/supermatter_engine
|
||||
name = "Supermatter Engine Operating Manual"
|
||||
icon_state = "bookSupermatter"
|
||||
item_state = "book15"
|
||||
author = "Central Engineering Division"
|
||||
title = "Supermatter Engine Operating Manual"
|
||||
|
||||
@@ -160,6 +163,7 @@
|
||||
/obj/item/weapon/book/manual/tesla_engine
|
||||
name = "Tesla Operating Manual"
|
||||
icon_state ="bookTesla"
|
||||
item_state = "book15"
|
||||
author = "Engineering Encyclopedia"
|
||||
title = "Tesla Engine User's Guide"
|
||||
dat = {"<html>
|
||||
@@ -229,7 +233,8 @@
|
||||
/obj/item/weapon/book/manual/rust_engine
|
||||
name = "R-UST Operating Manual"
|
||||
icon_state = "bookSupermatter"
|
||||
author = "Yumi Kruik"
|
||||
item_state = "book15"
|
||||
author = "Cindy Crawfish"
|
||||
title = "R-UST Operating Manual"
|
||||
|
||||
//R-UST guide Re-Writen by Gozulio to reflect how the R-UST actually operates.
|
||||
@@ -280,6 +285,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_hacking
|
||||
name = "Hacking"
|
||||
icon_state ="bookHacking"
|
||||
item_state = "book2"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Hacking"
|
||||
|
||||
@@ -302,6 +308,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_singularity_safety
|
||||
name = "Singularity Safety in Special Circumstances"
|
||||
icon_state ="bookEngineeringSingularitySafety"
|
||||
item_state = "book15"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Singularity Safety in Special Circumstances"
|
||||
|
||||
@@ -354,6 +361,7 @@
|
||||
/obj/item/weapon/book/manual/hydroponics_pod_people
|
||||
name = "The Diona Harvest - From Seed to Market"
|
||||
icon_state ="bookHydroponicsPodPeople"
|
||||
item_state = "book5"
|
||||
author = "Farmer John"
|
||||
title = "The Diona Harvest - From Seed to Market"
|
||||
|
||||
@@ -392,6 +400,7 @@
|
||||
/obj/item/weapon/book/manual/medical_cloning
|
||||
name = "Cloning Techniques of the 26th Century"
|
||||
icon_state ="bookCloning"
|
||||
item_state = "book9"
|
||||
author = "Medical Journal, volume 3" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Cloning Techniques of the 26th Century"
|
||||
|
||||
@@ -485,6 +494,7 @@
|
||||
/obj/item/weapon/book/manual/ripley_build_and_repair
|
||||
name = "APLU \"Ripley\" Construction and Operation Manual"
|
||||
icon_state ="book"
|
||||
item_state = "book"
|
||||
author = "Randall Varn, Einstein Engines Senior Mechanic" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "APLU \"Ripley\" Construction and Operation Manual"
|
||||
|
||||
@@ -562,6 +572,7 @@
|
||||
/obj/item/weapon/book/manual/research_and_development
|
||||
name = "Research and Development 101"
|
||||
icon_state = "rdbook"
|
||||
item_state = "book7"
|
||||
author = "Dr. L. Ight"
|
||||
title = "Research and Development 101"
|
||||
|
||||
@@ -631,6 +642,7 @@
|
||||
/obj/item/weapon/book/manual/robotics_cyborgs
|
||||
name = "Cyborgs for Dummies"
|
||||
icon_state = "borgbook"
|
||||
item_state = "book1"
|
||||
author = "XISC"
|
||||
title = "Cyborgs for Dummies"
|
||||
|
||||
@@ -837,6 +849,7 @@
|
||||
name = "Corporate Regulations"
|
||||
desc = "A set of corporate guidelines for keeping law and order on privately-owned space stations."
|
||||
icon_state = "bookSpaceLaw"
|
||||
item_state = "book13"
|
||||
author = "The Company"
|
||||
title = "Corporate Regulations"
|
||||
|
||||
@@ -861,6 +874,7 @@
|
||||
name = "Medical Diagnostics Manual"
|
||||
desc = "First, do no harm. A detailed medical practitioner's guide."
|
||||
icon_state = "bookMedical"
|
||||
item_state = "book12"
|
||||
author = "Medical Department"
|
||||
title = "Medical Diagnostics Manual"
|
||||
|
||||
@@ -908,6 +922,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_guide
|
||||
name = "Engineering Textbook"
|
||||
icon_state ="bookEngineering2"
|
||||
item_state = "book3"
|
||||
author = "Engineering Encyclopedia"
|
||||
title = "Engineering Textbook"
|
||||
|
||||
@@ -929,6 +944,7 @@
|
||||
/obj/item/weapon/book/manual/chef_recipes
|
||||
name = "Chef Recipes"
|
||||
icon_state = "cooked_book"
|
||||
item_state = "book16"
|
||||
author = "Victoria Ponsonby"
|
||||
title = "Chef Recipes"
|
||||
|
||||
@@ -989,6 +1005,7 @@
|
||||
name = "Barman Recipes"
|
||||
desc = "For the enterprising drink server."
|
||||
icon_state = "barbook"
|
||||
item_state = "book14"
|
||||
author = "Sir John Rose"
|
||||
title = "Barman Recipes"
|
||||
|
||||
@@ -1044,6 +1061,7 @@
|
||||
/obj/item/weapon/book/manual/detective
|
||||
name = "The Film Noir: Proper Procedures for Investigations"
|
||||
icon_state ="bookDetective"
|
||||
item_state = "book8"
|
||||
author = "The Company"
|
||||
title = "The Film Noir: Proper Procedures for Investigations"
|
||||
|
||||
@@ -1087,6 +1105,7 @@
|
||||
/obj/item/weapon/book/manual/nuclear
|
||||
name = "Fission Mailed: Nuclear Sabotage 101"
|
||||
icon_state ="bookNuclear"
|
||||
item_state = "book8"
|
||||
author = "Syndicate"
|
||||
title = "Fission Mailed: Nuclear Sabotage 101"
|
||||
|
||||
@@ -1138,6 +1157,7 @@
|
||||
/obj/item/weapon/book/manual/atmospipes
|
||||
name = "Pipes and You: Getting To Know Your Scary Tools"
|
||||
icon_state = "pipingbook"
|
||||
item_state = "book3"
|
||||
author = "Maria Crash, Senior Atmospherics Technician"
|
||||
title = "Pipes and You: Getting To Know Your Scary Tools"
|
||||
dat = {"<html>
|
||||
@@ -1246,6 +1266,7 @@
|
||||
/obj/item/weapon/book/manual/evaguide
|
||||
name = "EVA Gear and You: Not Spending All Day Inside, 2nd Edition"
|
||||
icon_state = "evabook"
|
||||
item_state = "book14"
|
||||
author = "Maria Crash, Senior Atmospherics Technician"
|
||||
title = "EVA Gear and You: Not Spending All Day Inside, 2nd Edition"
|
||||
dat = {"<html>
|
||||
|
||||
@@ -46,7 +46,7 @@ var/global/list/ashtray_cache = list()
|
||||
/obj/item/weapon/material/ashtray/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (health <= 0)
|
||||
return
|
||||
if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match))
|
||||
if (istype(W,/obj/item/trash/cigbutt) || istype(W,/obj/item/clothing/mask/smokable/cigarette) || istype(W, /obj/item/weapon/flame/match))
|
||||
if (contents.len >= max_butts)
|
||||
to_chat(user, "\The [src] is full.")
|
||||
return
|
||||
|
||||
@@ -12,13 +12,13 @@ obj/item/weapon/chainsaw
|
||||
var/active_force = 55
|
||||
var/inactive_force = 10
|
||||
|
||||
obj/item/weapon/chainsaw/New()
|
||||
obj/item/weapon/chainsaw/Initialize() //YW edit - replaced New with Initialize so chainsaws can be mapped in
|
||||
. = ..()
|
||||
var/datum/reagents/R = new/datum/reagents(max_fuel)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
R.add_reagent("fuel", max_fuel)
|
||||
START_PROCESSING(SSobj, src)
|
||||
..()
|
||||
|
||||
obj/item/weapon/chainsaw/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
desc = "A scroll for moving around."
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "scroll"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_books.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_books.dmi'
|
||||
)
|
||||
var/uses = 4.0
|
||||
w_class = ITEMSIZE_TINY
|
||||
item_state = "paper"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
base_block_chance = 40
|
||||
slot_flags = SLOT_BACK
|
||||
var/brightness_on
|
||||
brightness_on = 4
|
||||
brightness_on = 6
|
||||
var/on = 0
|
||||
var/light_applied
|
||||
//var/light_overlay
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0)
|
||||
if(..())
|
||||
if(istype(H) && istype(H.tail_style, taurtype))
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
else
|
||||
to_chat(H, "<span class='warning'>[no_message]</span>")
|
||||
@@ -44,66 +40,20 @@
|
||||
|
||||
mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0)
|
||||
if(..())
|
||||
var/datum/sprite_accessory/tail/taur/TT = H.tail_style
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/horse))
|
||||
item_state = "[icon_base]_Horse"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/wolf))
|
||||
item_state = "[icon_base]_Wolf"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/cow))
|
||||
item_state = "[icon_base]_Cow"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/lizard))
|
||||
item_state = "[icon_base]_Lizard"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/feline))
|
||||
item_state = "[icon_base]_Feline"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/drake))
|
||||
item_state = "[icon_base]_Drake"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/otie))
|
||||
item_state = "[icon_base]_Otie"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(istype(H) && istype(TT, /datum/sprite_accessory/tail/taur/deer))
|
||||
item_state = "[icon_base]_Deer"
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro?
|
||||
slowdown = 0
|
||||
else
|
||||
slowdown = initial(slowdown)
|
||||
return 1
|
||||
if(!istype(H))//Error, non HUMAN.
|
||||
log_runtime("[H] was not a valid human!")
|
||||
return
|
||||
|
||||
if(H.size_multiplier >= RESIZE_BIG) //Are they a macro? If yes, they get no slowdown.
|
||||
slowdown = 0
|
||||
else
|
||||
to_chat(H, "<span class='warning'>[no_message]</span>")
|
||||
return 0
|
||||
slowdown = initial(slowdown)
|
||||
|
||||
var/datum/sprite_accessory/tail/taur/TT = H.tail_style
|
||||
item_state = "[icon_base]_[TT.icon_sprite_tag]" //icon_sprite_tag is something like "deer"
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/storage/backpack/saddlebag_common/robust //Shared bag for other taurs with sturdy backs
|
||||
name = "Robust Saddlebags"
|
||||
@@ -116,7 +66,7 @@
|
||||
|
||||
/obj/item/weapon/storage/backpack/saddlebag_common/vest //Shared bag for other taurs with sturdy backs
|
||||
name = "Taur Duty Vest"
|
||||
desc = "An armored vest with the armor modules replaced with various handy compartments with decent storage capacity. Useless for protection though."
|
||||
desc = "An armored vest with the armor modules replaced with various handy compartments with decent storage capacity. Useless for protection though. Holds less than a saddle."
|
||||
icon = 'icons/obj/clothing/backpack_vr.dmi'
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "taurvest"
|
||||
@@ -145,6 +95,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "satchel-explorer"
|
||||
icon_state = "satchel-explorer"
|
||||
|
||||
/obj/item/weapon/storage/backpack/explorer
|
||||
name = "explorer backpack"
|
||||
desc = "A backpack for carrying a large number of supplies easily."
|
||||
@@ -152,6 +103,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "explorerpack"
|
||||
icon_state = "explorerpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/roboticist
|
||||
name = "roboticist satchel"
|
||||
desc = "A satchel for carrying a large number of spare parts easily."
|
||||
@@ -159,6 +111,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "satchel-robo"
|
||||
icon_state = "satchel-robo"
|
||||
|
||||
/obj/item/weapon/storage/backpack/roboticist
|
||||
name = "roboticist backpack"
|
||||
desc = "A backpack for carrying a large number of spare parts easily."
|
||||
@@ -166,6 +119,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "backpack-robo"
|
||||
icon_state = "backpack-robo"
|
||||
|
||||
/obj/item/weapon/storage/backpack/vietnam
|
||||
name = "vietnam backpack"
|
||||
desc = "There are tangos in the trees! We need napalm right now! Why is my gun jammed?"
|
||||
@@ -173,6 +127,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "nambackpack"
|
||||
icon_state = "nambackpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/russian
|
||||
name = "russian backpack"
|
||||
desc = "Useful for carrying large quantities of vodka."
|
||||
@@ -180,6 +135,7 @@
|
||||
icon_override = 'icons/mob/back_vr.dmi'
|
||||
item_state = "ru_rucksack"
|
||||
icon_state = "ru_rucksack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/korean
|
||||
name = "korean backpack"
|
||||
desc = "Insert witty description here."
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
name = "bible"
|
||||
desc = "Apply to head repeatedly."
|
||||
icon_state ="bible"
|
||||
item_state = "bible"
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_books.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_books.dmi'
|
||||
)
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 6
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter, /obj/item/weapon/cigbutt)
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter, /obj/item/trash/cigbutt)
|
||||
icon_type = "cigarette"
|
||||
starts_with = list(/obj/item/clothing/mask/smokable/cigarette = 6)
|
||||
var/brand = "\improper Trans-Stellar Duty-free"
|
||||
@@ -316,7 +316,7 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 7
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/weapon/cigbutt/cigarbutt)
|
||||
can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/trash/cigbutt/cigarbutt)
|
||||
icon_type = "cigar"
|
||||
starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 7)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular
|
||||
starts_with = list(
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/device/healthanalyzer, /*YW EDIT*/
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
/obj/item/stack/medical/bruise_pack,
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user)
|
||||
if(!istype(W, /obj/item/weapon/paper))
|
||||
if(!istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/paper/sticky) || !user.unEquip(W))
|
||||
return
|
||||
user.drop_from_inventory(W)
|
||||
var/obj/item/weapon/ducttape/tape = new(get_turf(src))
|
||||
|
||||
@@ -136,6 +136,7 @@
|
||||
|
||||
/obj/attack_ghost(mob/user)
|
||||
ui_interact(user)
|
||||
tgui_interact(user)
|
||||
..()
|
||||
|
||||
/obj/proc/interact(mob/user)
|
||||
|
||||
@@ -48,7 +48,6 @@ var/list/random_useful_
|
||||
if(prob(70)) // Misc. junk
|
||||
if(!random_junk_)
|
||||
random_junk_ = subtypesof(/obj/item/trash)
|
||||
random_junk_ += typesof(/obj/item/weapon/cigbutt)
|
||||
random_junk_ += /obj/effect/decal/cleanable/spiderling_remains
|
||||
random_junk_ += /obj/effect/decal/remains/mouse
|
||||
random_junk_ += /obj/effect/decal/remains/robot
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
/obj/random/energy/item_to_spawn()
|
||||
return pick(prob(3);/obj/item/weapon/gun/energy/laser,
|
||||
prob(3);/obj/item/weapon/gun/energy/laser/sleek,
|
||||
prob(4);/obj/item/weapon/gun/energy/gun,
|
||||
prob(3);/obj/item/weapon/gun/energy/gun/burst,
|
||||
prob(1);/obj/item/weapon/gun/energy/gun/nuclear,
|
||||
@@ -29,7 +30,8 @@
|
||||
prob(3);/obj/item/weapon/gun/energy/toxgun,
|
||||
prob(4);/obj/item/weapon/gun/energy/taser,
|
||||
prob(2);/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
||||
prob(4);/obj/item/weapon/gun/energy/stunrevolver)
|
||||
prob(4);/obj/item/weapon/gun/energy/stunrevolver,
|
||||
prob(3);/obj/item/weapon/gun/energy/gun/compact)
|
||||
|
||||
/obj/random/energy/sec
|
||||
name = "Random Security Energy Weapon"
|
||||
@@ -54,6 +56,7 @@
|
||||
prob(2);/obj/item/weapon/gun/projectile/automatic/c20r,
|
||||
prob(2);/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||
prob(2);/obj/item/weapon/gun/projectile/automatic/z8,
|
||||
prob(2);/obj/item/weapon/gun/projectile/automatic/combatsmg,
|
||||
prob(4);/obj/item/weapon/gun/projectile/colt,
|
||||
prob(2);/obj/item/weapon/gun/projectile/deagle,
|
||||
prob(1);/obj/item/weapon/gun/projectile/deagle/camo,
|
||||
@@ -193,6 +196,11 @@
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/p90,
|
||||
/obj/item/ammo_magazine/m9mmp90
|
||||
),
|
||||
prob(3);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/combatsmg,
|
||||
/obj/item/ammo_magazine/m9mmt,
|
||||
/obj/item/ammo_magazine/m9mmt
|
||||
)
|
||||
)
|
||||
|
||||
@@ -231,10 +239,20 @@
|
||||
/obj/item/ammo_magazine/m762garand,
|
||||
/obj/item/ammo_magazine/m762garand
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/revolvingrifle,
|
||||
/obj/item/ammo_magazine/s44/rifle,
|
||||
/obj/item/ammo_magazine/s44/rifle
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/automatic/bullpup,
|
||||
/obj/item/ammo_magazine/m762,
|
||||
/obj/item/ammo_magazine/m762
|
||||
),
|
||||
prob(1);list(
|
||||
/obj/item/weapon/gun/projectile/caseless/prototype,
|
||||
/obj/item/ammo_magazine/m5mmcaseless,
|
||||
/obj/item/ammo_magazine/m5mmcaseless
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -107,7 +107,17 @@ something, make sure it's not in one of the other lists.*/
|
||||
prob(2);/obj/item/device/camera,
|
||||
prob(3);/obj/item/device/pda,
|
||||
prob(3);/obj/item/device/radio/headset,
|
||||
prob(1);/obj/item/pizzavoucher)
|
||||
/* VOREStation Edit Start */
|
||||
prob(2);/obj/item/toy/tennis,
|
||||
prob(2);/obj/item/toy/tennis/red,
|
||||
prob(2);/obj/item/toy/tennis/yellow,
|
||||
prob(2);/obj/item/toy/tennis/green,
|
||||
prob(2);/obj/item/toy/tennis/cyan,
|
||||
prob(2);/obj/item/toy/tennis/blue,
|
||||
prob(2);/obj/item/toy/tennis/purple,
|
||||
prob(1);/obj/item/pizzavoucher
|
||||
/* VOREStation Edit End */
|
||||
)
|
||||
|
||||
/obj/random/maintenance/security
|
||||
/*Maintenance loot list. This one is for around security areas*/
|
||||
|
||||
@@ -34,6 +34,36 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/remains/robot)
|
||||
|
||||
/obj/random/crate //Random 'standard' crates for variety in maintenance spawns.
|
||||
name = "random crate"
|
||||
desc = "This is a random crate"
|
||||
icon = 'icons/obj/closets/bases/crate.dmi'
|
||||
icon_state = "base"
|
||||
|
||||
/obj/random/crate/item_to_spawn() //General crates, excludes some more high-grade and medical brands
|
||||
return pick (/obj/structure/closet/crate/plastic,
|
||||
/obj/structure/closet/crate/aether,
|
||||
/obj/structure/closet/crate/centauri,
|
||||
/obj/structure/closet/crate/einstein,
|
||||
/obj/structure/closet/crate/focalpoint,
|
||||
/obj/structure/closet/crate/gilthari,
|
||||
/obj/structure/closet/crate/grayson,
|
||||
/obj/structure/closet/crate/nanotrasen,
|
||||
/obj/structure/closet/crate/nanothreads,
|
||||
/obj/structure/closet/crate/oculum,
|
||||
/obj/structure/closet/crate/ward,
|
||||
/obj/structure/closet/crate/xion,
|
||||
/obj/structure/closet/crate/zenghu,
|
||||
/obj/structure/closet/crate/allico,
|
||||
/obj/structure/closet/crate/carp,
|
||||
/obj/structure/closet/crate/galaksi,
|
||||
/obj/structure/closet/crate/thinktronic,
|
||||
/obj/structure/closet/crate/ummarcar,
|
||||
/obj/structure/closet/crate/unathi,
|
||||
/obj/structure/closet/crate/hydroponics,
|
||||
/obj/structure/closet/crate/engineering,
|
||||
/obj/structure/closet/crate)
|
||||
|
||||
/obj/random/obstruction //Large objects to block things off in maintenance
|
||||
name = "random obstruction"
|
||||
desc = "This is a random obstruction."
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/obj/random/mech
|
||||
name = "random mech"
|
||||
desc = "This is a random single mech."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
icon_state = "old_durand"
|
||||
drop_get_turf = FALSE
|
||||
|
||||
//This list includes the phazon, gorilla and mauler. You might want to use something else if balance is a concern.
|
||||
/obj/random/mech/item_to_spawn()
|
||||
return pick(/obj/mecha/combat/gygax,
|
||||
/obj/mecha/combat/gygax/serenity,
|
||||
/obj/mecha/combat/gygax/dark,
|
||||
/obj/mecha/combat/marauder,
|
||||
/obj/mecha/combat/marauder/seraph,
|
||||
/obj/mecha/combat/marauder/mauler,
|
||||
/obj/mecha/medical/odysseus,
|
||||
/obj/mecha/combat/phazon,
|
||||
/obj/mecha/combat/phazon/janus,
|
||||
/obj/mecha/combat/durand,
|
||||
/obj/mecha/working/ripley,
|
||||
/obj/mecha/working/ripley/firefighter,
|
||||
/obj/mecha/working/ripley/deathripley,
|
||||
/obj/mecha/working/ripley/mining)
|
||||
|
||||
/obj/random/mech/weaker
|
||||
name = "random mech"
|
||||
desc = "This is a random single mech. Those are less potent and more common."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
icon_state = "old_durand"
|
||||
drop_get_turf = FALSE
|
||||
|
||||
/obj/random/mech/weaker/item_to_spawn()
|
||||
return pick(/obj/mecha/combat/gygax,
|
||||
/obj/mecha/combat/gygax/serenity,
|
||||
/obj/mecha/medical/odysseus,
|
||||
/obj/mecha/combat/durand,
|
||||
/obj/mecha/working/ripley,
|
||||
/obj/mecha/working/ripley/firefighter,
|
||||
/obj/mecha/working/ripley/deathripley,
|
||||
/obj/mecha/working/ripley/mining)
|
||||
|
||||
/obj/random/mech/old
|
||||
name = "random mech"
|
||||
desc = "This is a random single old mech."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
icon_state = "old_durand"
|
||||
drop_get_turf = FALSE
|
||||
|
||||
//Note that all of those are worn out and have slightly less maximal health than the standard.
|
||||
/obj/random/mech/old/item_to_spawn()
|
||||
return pick(prob(10);/obj/mecha/combat/gygax/old,
|
||||
prob(1);/obj/mecha/combat/marauder/old,
|
||||
prob(1);/obj/mecha/combat/phazon/old,
|
||||
prob(10);/obj/mecha/combat/durand/old,
|
||||
prob(15);/obj/mecha/medical/odysseus/old,
|
||||
prob(20);/obj/mecha/working/ripley/mining/old)
|
||||
@@ -473,6 +473,7 @@
|
||||
//VOREStation Add Start
|
||||
/obj/item/toy/plushie/lizardplushie,
|
||||
/obj/item/toy/plushie/lizardplushie/kobold,
|
||||
/obj/item/toy/plushie/lizardplushie/resh,
|
||||
/obj/item/toy/plushie/slimeplushie,
|
||||
/obj/item/toy/plushie/box,
|
||||
/obj/item/toy/plushie/borgplushie,
|
||||
@@ -542,8 +543,8 @@
|
||||
/obj/item/device/assembly/mousetrap/armed,
|
||||
/obj/effect/decal/cleanable/spiderling_remains,
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/obj/item/weapon/cigbutt,
|
||||
/obj/item/weapon/cigbutt/cigarbutt,
|
||||
/obj/item/trash/cigbutt,
|
||||
/obj/item/trash/cigbutt/cigarbutt,
|
||||
/obj/effect/decal/remains/mouse)
|
||||
|
||||
/obj/random/janusmodule
|
||||
|
||||
@@ -761,8 +761,210 @@
|
||||
"lid_stripes" = COLOR_NT_RED
|
||||
)
|
||||
|
||||
// Freezers
|
||||
|
||||
/decl/closet_appearance/crate/freezer
|
||||
color = COLOR_OFF_WHITE
|
||||
|
||||
/decl/closet_appearance/crate/freezer/centauri
|
||||
color = COLOR_BABY_BLUE
|
||||
extra_decals = list(
|
||||
"centauri" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/freezer/nanotrasen
|
||||
color = COLOR_BABY_BLUE
|
||||
extra_decals = list(
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
// Corporate Branding
|
||||
|
||||
/decl/closet_appearance/crate/aether
|
||||
color = COLOR_YELLOW_GRAY
|
||||
decals = list(
|
||||
"crate_stripes" = COLOR_BLUE_LIGHT,
|
||||
"aether" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/allico
|
||||
color = COLOR_LIGHT_VIOLET
|
||||
decals = list(
|
||||
"crate_stripe" = COLOR_AMBER
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/carp
|
||||
color = COLOR_PURPLE
|
||||
decals = list(
|
||||
"toptext" = COLOR_OFF_WHITE,
|
||||
"crate_reticle" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/centauri
|
||||
color = COLOR_BABY_BLUE
|
||||
decals = list(
|
||||
"crate_stripe" = COLOR_LUMINOL
|
||||
)
|
||||
extra_decals = list(
|
||||
"centauri" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/cybersolutions
|
||||
color = COLOR_ALUMINIUM
|
||||
extra_decals = list(
|
||||
"hazard" = COLOR_DARK_GOLD,
|
||||
"toptext" = COLOR_DARK_GOLD
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/einstein
|
||||
color = COLOR_DARK_BLUE_GRAY
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_BEIGE,
|
||||
"crate_stripe_right" = COLOR_BEIGE,
|
||||
"einstein" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/focalpoint
|
||||
color = COLOR_GOLD
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_NAVY_BLUE,
|
||||
"crate_stripe_right" = COLOR_NAVY_BLUE,
|
||||
"focal" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_NAVY_BLUE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/galaksi
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"lid_stripes" = COLOR_HULL,
|
||||
"galaksi" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/gilthari
|
||||
color = COLOR_GRAY20
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_GOLD,
|
||||
"crate_stripe_right" = COLOR_GOLD,
|
||||
"gilthari" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/grayson
|
||||
color = COLOR_STEEL
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_MAROON,
|
||||
"crate_stripe_right" = COLOR_MAROON,
|
||||
"grayson" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/heph
|
||||
color = COLOR_GRAY20
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_NT_RED,
|
||||
"crate_stripe_right" = COLOR_NT_RED,
|
||||
"heph" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/morpheus
|
||||
color = COLOR_ALUMINIUM
|
||||
extra_decals = list(
|
||||
"hazard" = COLOR_GUNMETAL,
|
||||
"toptext" = COLOR_GUNMETAL
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/nanotrasen
|
||||
color = COLOR_NT_RED
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripe_right" = COLOR_OFF_WHITE,
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/nanotrasenclothing
|
||||
color = COLOR_NT_RED
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_SEDONA,
|
||||
"crate_stripe_right" = COLOR_SEDONA,
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/nanotrasenmedical
|
||||
color = COLOR_OFF_WHITE
|
||||
extra_decals = list(
|
||||
"crate_stripe" = COLOR_NT_RED,
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/oculum
|
||||
color = COLOR_SURGERY_BLUE
|
||||
decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripe_right" = COLOR_OFF_WHITE,
|
||||
"oculum" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/saare
|
||||
color = COLOR_ALUMINIUM
|
||||
extra_decals = list(
|
||||
"hazard" = COLOR_RED,
|
||||
"xion" = COLOR_GRAY40
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/thinktronic
|
||||
color = COLOR_PALE_PURPLE_GRAY
|
||||
decals = list(
|
||||
"toptext" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/ummarcar
|
||||
color = COLOR_BEIGE
|
||||
decals = list(
|
||||
"crate_stripes" = COLOR_OFF_WHITE,
|
||||
"toptext" = COLOR_GRAY20
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/unathiimport
|
||||
color = COLOR_SILVER
|
||||
decals = list(
|
||||
"crate_stripe" = COLOR_RED,
|
||||
"crate_reticle" = COLOR_RED_GRAY
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/veymed
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"crate_stripe" = COLOR_PALE_BTL_GREEN
|
||||
)
|
||||
extra_decals = list(
|
||||
"lid_stripes" = COLOR_RED,
|
||||
"crate_cross" = COLOR_GREEN
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/ward
|
||||
color = COLOR_OFF_WHITE
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_COMMAND_BLUE,
|
||||
"crate_stripe_right" = COLOR_COMMAND_BLUE,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"wt" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/xion
|
||||
color = COLOR_ORANGE
|
||||
extra_decals = list(
|
||||
"crate_stripes" = COLOR_OFF_WHITE,
|
||||
"xion" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/zenghu
|
||||
color = COLOR_OFF_WHITE
|
||||
extra_decals = list(
|
||||
"crate_stripes" = COLOR_RED,
|
||||
"zenghu" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
// Secure Crates
|
||||
|
||||
/decl/closet_appearance/crate/secure
|
||||
can_lock = TRUE
|
||||
@@ -775,7 +977,8 @@
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripe_right" = COLOR_OFF_WHITE,
|
||||
"toxin" = COLOR_OFF_WHITE
|
||||
"toxin" = COLOR_OFF_WHITE,
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/weapon
|
||||
@@ -789,6 +992,219 @@
|
||||
"hazard" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
// Secure corporate branding
|
||||
|
||||
/decl/closet_appearance/crate/secure/aether
|
||||
color = COLOR_YELLOW_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripes" = COLOR_BLUE_LIGHT,
|
||||
"aether" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/bishop
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_SKY_BLUE,
|
||||
"crate_stripe_right" = COLOR_SKY_BLUE,
|
||||
"bishop" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/cybersolutions
|
||||
color = COLOR_ALUMINIUM
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"hazard" = COLOR_DARK_GOLD,
|
||||
"toptext" = COLOR_DARK_GOLD
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/einstein
|
||||
color = COLOR_DARK_BLUE_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_BEIGE,
|
||||
"crate_stripe_right" = COLOR_BEIGE,
|
||||
"einstein" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/focalpoint
|
||||
color = COLOR_GOLD
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_NAVY_BLUE,
|
||||
"crate_stripe_right" = COLOR_NAVY_BLUE,
|
||||
"focal" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_NAVY_BLUE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/gilthari
|
||||
color = COLOR_GRAY20
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_GOLD,
|
||||
"crate_stripe_right" = COLOR_GOLD,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"gilthari" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/grayson
|
||||
color = COLOR_STEEL
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_MAROON,
|
||||
"crate_stripe_right" = COLOR_MAROON,
|
||||
"grayson" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/hedberg
|
||||
color = COLOR_GREEN_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripe_right" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"hedberg" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/heph
|
||||
color = COLOR_GRAY20
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_NT_RED,
|
||||
"crate_stripe_right" = COLOR_NT_RED,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"heph" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/lawson
|
||||
color = COLOR_SAN_MARINO_BLUE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripe_right" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"lawson" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/morpheus
|
||||
color = COLOR_ALUMINIUM
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"hazard" = COLOR_GUNMETAL,
|
||||
"toptext" = COLOR_GUNMETAL
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/nanotrasen
|
||||
color = COLOR_NT_RED
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripe_right" = COLOR_OFF_WHITE,
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/nanotrasenmedical
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe" = COLOR_NT_RED,
|
||||
"nano" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/saare
|
||||
color = COLOR_ALUMINIUM
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"hazard" = COLOR_RED,
|
||||
"xion" = COLOR_GRAY40
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/solgov
|
||||
color = COLOR_SAN_MARINO_BLUE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_OFF_WHITE,
|
||||
"crate_stripes" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"scg" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/veymed
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"crate_bracing",
|
||||
"crate_stripe" = COLOR_PALE_BTL_GREEN
|
||||
)
|
||||
extra_decals = list(
|
||||
"lid_stripes" = COLOR_RED,
|
||||
"crate_cross" = COLOR_GREEN
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/ward
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_COMMAND_BLUE,
|
||||
"crate_stripe_right" = COLOR_COMMAND_BLUE,
|
||||
"hazard" = COLOR_OFF_WHITE,
|
||||
"wt" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/xion
|
||||
color = COLOR_ORANGE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripes" = COLOR_OFF_WHITE,
|
||||
"xion" = COLOR_OFF_WHITE,
|
||||
"hazard" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/zenghu
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"crate_stripes" = COLOR_RED,
|
||||
"zenghu" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/crate/secure/hydroponics
|
||||
extra_decals = list(
|
||||
"crate_stripe_left" = COLOR_GREEN_GRAY,
|
||||
@@ -809,6 +1225,7 @@
|
||||
extra_decals = null
|
||||
|
||||
/decl/closet_appearance/large_crate/critter
|
||||
color = COLOR_BEIGE
|
||||
decals = list(
|
||||
"airholes"
|
||||
)
|
||||
@@ -822,6 +1239,42 @@
|
||||
"text" = COLOR_GREEN_GRAY
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/aether
|
||||
color = COLOR_YELLOW_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"text" = COLOR_BLUE_LIGHT
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/einstein
|
||||
color = COLOR_DARK_BLUE_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"text" = COLOR_BEIGE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/nanotrasen
|
||||
color = COLOR_NT_RED
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"text" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/xion
|
||||
color = COLOR_ORANGE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"text" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/secure
|
||||
can_lock = TRUE
|
||||
|
||||
@@ -835,6 +1288,46 @@
|
||||
"text_upper" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/secure/aether
|
||||
color = COLOR_YELLOW_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"marking" = COLOR_OFF_WHITE,
|
||||
"text_upper" = COLOR_BLUE_LIGHT
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/secure/einstein
|
||||
color = COLOR_DARK_BLUE_GRAY
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"marking" = COLOR_OFF_WHITE,
|
||||
"text_upper" = COLOR_BEIGE
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/secure/heph
|
||||
color = COLOR_GRAY20
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"marking" = COLOR_NT_RED,
|
||||
"text_upper" = COLOR_NT_RED
|
||||
)
|
||||
|
||||
/decl/closet_appearance/large_crate/secure/xion
|
||||
color = COLOR_ORANGE
|
||||
decals = list(
|
||||
"crate_bracing"
|
||||
)
|
||||
extra_decals = list(
|
||||
"marking" = COLOR_OFF_WHITE,
|
||||
"text_upper" = COLOR_OFF_WHITE
|
||||
)
|
||||
|
||||
// Cabinets.
|
||||
/decl/closet_appearance/cabinet
|
||||
base_icon = 'icons/obj/closets/bases/cabinet.dmi'
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
/decl/closet_appearance/medical_yw
|
||||
color = COLOR_OFF_WHITE
|
||||
decals = null
|
||||
extra_decals = list(
|
||||
"circle" = COLOR_BLUE_GRAY,
|
||||
"stripes_horizontal" = COLOR_BLUE_GRAY
|
||||
)
|
||||
|
||||
/decl/closet_appearance/wall/autolok/shuttleemerg
|
||||
color = COLOR_YELLOW_GRAY
|
||||
decals = list(
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
var/icon_closed = "egg"
|
||||
var/icon_opened = "egg_open"
|
||||
var/icon_locked = "egg"
|
||||
closet_appearance = null
|
||||
open_sound = 'sound/vore/schlorp.ogg'
|
||||
close_sound = 'sound/vore/schlorp.ogg'
|
||||
opened = 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/structure/closet/secure_closet/blueshield
|
||||
name = "blueshield's closet"
|
||||
req_access = list(access_blueshield)
|
||||
req_access = list(access_blueshield_exclusive)
|
||||
closet_appearance = /decl/closet_appearance/secure_closet/blueshield
|
||||
storage_capacity = 2.5 * MOB_MEDIUM
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 2,
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 2)
|
||||
|
||||
|
||||
/obj/structure/closet/secure_closet/medical2
|
||||
name = "anesthetics closet"
|
||||
desc = "Used to knock people out."
|
||||
|
||||
@@ -65,7 +65,6 @@
|
||||
/obj/structure/closet/secure_closet/hos
|
||||
name = "head of security's locker"
|
||||
req_access = list(access_hos)
|
||||
req_access = list(access_hos)
|
||||
storage_capacity = 2.5 * MOB_MEDIUM
|
||||
closet_appearance = /decl/closet_appearance/secure_closet/security/hos
|
||||
|
||||
|
||||
@@ -15,4 +15,9 @@
|
||||
/obj/item/weapon/tank/oxygen/red,
|
||||
/obj/item/weapon/storage/briefcase/inflatable,
|
||||
/obj/item/clothing/head/helmet/space/emergency,
|
||||
/obj/item/clothing/suit/space/emergency)
|
||||
/obj/item/clothing/suit/space/emergency)
|
||||
|
||||
/obj/structure/closet/medical
|
||||
name = "medical supply closet"
|
||||
desc = "May or may not contain medical junk."
|
||||
closet_appearance = /decl/closet_appearance/medical_yw
|
||||
@@ -6,6 +6,7 @@
|
||||
icon = 'icons/obj/closets/bases/crate.dmi'
|
||||
closet_appearance = /decl/closet_appearance/crate
|
||||
climbable = 1
|
||||
dir = 4 //Spawn facing 'forward' by default.
|
||||
var/points_per_crate = 5
|
||||
var/rigged = 0
|
||||
|
||||
@@ -65,6 +66,26 @@
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/crate/verb/rotate_clockwise()
|
||||
set name = "Rotate Crate Clockwise"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
|
||||
if (usr.stat || usr.restrained() || anchored)
|
||||
return
|
||||
|
||||
src.set_dir(turn(src.dir, 270))
|
||||
|
||||
/obj/structure/closet/crate/verb/rotate_counterclockwise()
|
||||
set category = "Object"
|
||||
set name = "Rotate Crate Counterclockwise"
|
||||
set src in view(1)
|
||||
|
||||
if (usr.stat || usr.restrained() || anchored)
|
||||
return
|
||||
|
||||
src.set_dir(turn(src.dir, 90))
|
||||
|
||||
/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(opened)
|
||||
if(isrobot(user))
|
||||
@@ -280,6 +301,14 @@
|
||||
var/target_temp = T0C - 40
|
||||
var/cooling_power = 40
|
||||
|
||||
/obj/structure/closet/crate/freezer/centauri
|
||||
desc = "A freezer stamped with the logo of Centauri Provisions."
|
||||
closet_appearance = /decl/closet_appearance/crate/freezer/centauri
|
||||
|
||||
/obj/structure/closet/crate/freezer/nanotrasen
|
||||
desc = "A freezer stamped with the logo of NanoTrasen."
|
||||
closet_appearance = /decl/closet_appearance/crate/freezer/nanotrasen
|
||||
|
||||
/obj/structure/closet/crate/freezer/return_air()
|
||||
var/datum/gas_mixture/gas = (..())
|
||||
if(!gas) return null
|
||||
@@ -309,6 +338,11 @@
|
||||
organ.preserved = 0
|
||||
..()
|
||||
|
||||
/obj/structure/closet/crate/weapon
|
||||
name = "weapons crate"
|
||||
desc = "A barely secured weapons crate."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/weapon
|
||||
|
||||
/obj/structure/closet/crate/freezer/rations //Fpr use in the escape shuttle
|
||||
name = "emergency rations"
|
||||
desc = "A crate of emergency rations."
|
||||
@@ -316,21 +350,12 @@
|
||||
starts_with = list(
|
||||
/obj/random/mre = 6)
|
||||
|
||||
/obj/structure/closet/crate/freezer/meat //Fpr use in the escape shuttle
|
||||
name = "Bonfire storage"
|
||||
desc = "A crate of emergency rations."
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat = 6)
|
||||
|
||||
|
||||
/obj/structure/closet/crate/bin
|
||||
name = "large bin"
|
||||
desc = "A large bin."
|
||||
closet_appearance = null
|
||||
icon = 'icons/obj/closets/largebin.dmi'
|
||||
|
||||
|
||||
/obj/structure/closet/crate/radiation
|
||||
name = "radioactive gear crate"
|
||||
desc = "A crate with a radiation sign on it."
|
||||
@@ -340,45 +365,221 @@
|
||||
/obj/item/clothing/suit/radiation = 4,
|
||||
/obj/item/clothing/head/radiation = 4)
|
||||
|
||||
//TSCs
|
||||
|
||||
/obj/structure/closet/crate/aether
|
||||
desc = "A crate painted in the colours of Aether Atmospherics and Recycling."
|
||||
closet_appearance = /decl/closet_appearance/crate/aether
|
||||
|
||||
/obj/structure/closet/crate/centauri
|
||||
desc = "A crate decorated with the logo of Centauri Provisions."
|
||||
closet_appearance = /decl/closet_appearance/crate/centauri
|
||||
|
||||
/obj/structure/closet/crate/einstein
|
||||
desc = "A crate labelled with an Einstein Engines sticker."
|
||||
closet_appearance = /decl/closet_appearance/crate/einstein
|
||||
|
||||
/obj/structure/closet/crate/focalpoint
|
||||
desc = "A crate marked with the decal of Focal Point Energistics."
|
||||
closet_appearance = /decl/closet_appearance/crate/focalpoint
|
||||
|
||||
/obj/structure/closet/crate/gilthari
|
||||
desc = "A crate embossed with the logo of Gilthari Exports."
|
||||
closet_appearance = /decl/closet_appearance/crate/gilthari
|
||||
|
||||
/obj/structure/closet/crate/grayson
|
||||
desc = "A bare metal crate spraypainted with Grayson Manufactories decals."
|
||||
closet_appearance = /decl/closet_appearance/crate/grayson
|
||||
|
||||
/obj/structure/closet/crate/heph
|
||||
desc = "A sturdy crate marked with the logo of Hephaestus Industries."
|
||||
closet_appearance = /decl/closet_appearance/crate/heph
|
||||
|
||||
/obj/structure/closet/crate/morpheus
|
||||
desc = "A crate crudely imprinted with 'MORPHEUS CYBERKINETICS'."
|
||||
closet_appearance = /decl/closet_appearance/crate/morpheus
|
||||
|
||||
/obj/structure/closet/crate/nanotrasen
|
||||
desc = "A crate emblazoned with the standard NanoTrasen livery."
|
||||
closet_appearance = /decl/closet_appearance/crate/nanotrasen
|
||||
|
||||
/obj/structure/closet/crate/nanothreads
|
||||
desc = "A crate emblazoned with the NanoThreads Garments livery, a subsidary of the NanoTrasen Corporation."
|
||||
closet_appearance = /decl/closet_appearance/crate/nanotrasenclothing
|
||||
|
||||
/obj/structure/closet/crate/nanocare
|
||||
desc = "A crate emblazoned with the NanoCare Medical livery, a subsidary of the NanoTrasen Corporation."
|
||||
closet_appearance = /decl/closet_appearance/crate/nanotrasenmedical
|
||||
|
||||
/obj/structure/closet/crate/oculum
|
||||
desc = "A crate minimally decorated with the logo of media giant Oculum Broadcast."
|
||||
closet_appearance = /decl/closet_appearance/crate/oculum
|
||||
|
||||
/obj/structure/closet/crate/veymed
|
||||
desc = "A sterile crate extensively detailed in Veymed colours."
|
||||
closet_appearance = /decl/closet_appearance/crate/veymed
|
||||
|
||||
/obj/structure/closet/crate/ward
|
||||
desc = "A crate decaled with the logo of Ward-Takahashi."
|
||||
closet_appearance = /decl/closet_appearance/crate/ward
|
||||
|
||||
/obj/structure/closet/crate/xion
|
||||
desc = "A crate painted in Xion Manufacturing Group orange."
|
||||
closet_appearance = /decl/closet_appearance/crate/xion
|
||||
|
||||
/obj/structure/closet/crate/zenghu
|
||||
desc = "A sterile crate marked with the logo of Zeng-Hu Pharmaceuticals."
|
||||
closet_appearance = /decl/closet_appearance/crate/zenghu
|
||||
|
||||
// Brands/subsidiaries
|
||||
|
||||
/obj/structure/closet/crate/allico
|
||||
desc = "A crate painted in the distinctive cheerful colours of AlliCo. Ltd."
|
||||
closet_appearance = /decl/closet_appearance/crate/allico
|
||||
|
||||
/obj/structure/closet/crate/carp
|
||||
desc = "A crate painted with the garish livery of Consolidated Agricultural Resources Plc."
|
||||
closet_appearance = /decl/closet_appearance/crate/carp
|
||||
|
||||
/obj/structure/closet/crate/hedberg
|
||||
name = "weapons crate"
|
||||
desc = "A weapons crate stamped with the logo of Hedberg-Hammarstrom and the lock conspicuously absent."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/hedberg
|
||||
|
||||
/obj/structure/closet/crate/galaksi
|
||||
desc = "A crate printed with the markings of Ward-Takahashi's Galaksi Appliance branding."
|
||||
closet_appearance = /decl/closet_appearance/crate/galaksi
|
||||
|
||||
/obj/structure/closet/crate/thinktronic
|
||||
desc = "A crate printed with the markings of Thinktronic Systems."
|
||||
closet_appearance = /decl/closet_appearance/crate/thinktronic
|
||||
|
||||
/obj/structure/closet/crate/ummarcar
|
||||
desc = "A flimsy crate marked labelled 'UmMarcar Office Supply'."
|
||||
closet_appearance = /decl/closet_appearance/crate/ummarcar
|
||||
|
||||
/obj/structure/closet/crate/unathi
|
||||
name = "import crate"
|
||||
desc = "A crate painted with the markings of Moghes Imported Sissalik Jerky."
|
||||
closet_appearance = /decl/closet_appearance/crate/unathiimport
|
||||
|
||||
|
||||
// Secure Crates
|
||||
|
||||
/obj/structure/closet/crate/secure/weapon
|
||||
name = "weapons crate"
|
||||
desc = "A secure weapons crate."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/weapon
|
||||
|
||||
/obj/structure/closet/crate/secure/aether
|
||||
desc = "A secure crate painted in the colours of Aether Atmospherics and Recycling."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/aether
|
||||
|
||||
/obj/structure/closet/crate/secure/bishop
|
||||
desc = "A secure crate finely decorated with the emblem of Bishop Cybernetics."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/bishop
|
||||
|
||||
/obj/structure/closet/crate/secure/cybersolutions
|
||||
desc = "An unadorned secure metal crate labelled 'Cyber Solutions'."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/cybersolutions
|
||||
|
||||
/obj/structure/closet/crate/secure/einstein
|
||||
desc = "A secure crate labelled with an Einstein Engines sticker."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/einstein
|
||||
|
||||
/obj/structure/closet/crate/secure/focalpoint
|
||||
desc = "A secure crate marked with the decal of Focal Point Energistics."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/focalpoint
|
||||
|
||||
/obj/structure/closet/crate/secure/gilthari
|
||||
desc = "A secure crate embossed with the logo of Gilthari Exports."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/gilthari
|
||||
|
||||
/obj/structure/closet/crate/secure/grayson
|
||||
desc = "A secure bare metal crate spraypainted with Grayson Manufactories decals."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/grayson
|
||||
|
||||
/obj/structure/closet/crate/secure/hedberg
|
||||
name = "weapons crate"
|
||||
desc = "A secure weapons crate stamped with the logo of Hedberg-Hammarstrom."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/hedberg
|
||||
|
||||
/obj/structure/closet/crate/secure/heph
|
||||
name = "weapons crate"
|
||||
desc = "A secure weapons crate marked with the logo of Hephaestus Industries."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/heph
|
||||
|
||||
/obj/structure/closet/crate/secure/lawson
|
||||
name = "weapons crate"
|
||||
desc = "A secure weapons crate marked with the logo of Lawson Arms."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/lawson
|
||||
|
||||
/obj/structure/closet/crate/secure/morpheus
|
||||
desc = "A secure crate crudely imprinted with 'MORPHEUS CYBERKINETICS'."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/morpheus
|
||||
|
||||
/obj/structure/closet/crate/secure/nanotrasen
|
||||
desc = "A secure crate emblazoned with the standard NanoTrasen livery."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/nanotrasen
|
||||
|
||||
/obj/structure/closet/crate/secure/nanocare
|
||||
desc = "A secure crate emblazoned with the NanoCare Medical livery, a subsidary of the NanoTrasen Corporation."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/nanotrasenmedical
|
||||
|
||||
/obj/structure/closet/crate/secure/scg
|
||||
name = "weapons crate"
|
||||
desc = "A secure crate in the official colours of the Solar Confederate Government."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/solgov
|
||||
|
||||
/obj/structure/closet/crate/secure/saare
|
||||
name = "weapons crate"
|
||||
desc = "A secure weapons crate plainly stamped with the logo of Stealth Assault Enterprises."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/saare
|
||||
|
||||
/obj/structure/closet/crate/secure/veymed
|
||||
desc = "A secure sterile crate extensively detailed in Veymed colours."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/veymed
|
||||
|
||||
/obj/structure/closet/crate/secure/ward
|
||||
desc = "A secure crate decaled with the logo of Ward-Takahashi."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/ward
|
||||
|
||||
/obj/structure/closet/crate/secure/xion
|
||||
desc = "A secure crate painted in Xion Manufacturing Group orange."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/xion
|
||||
|
||||
/obj/structure/closet/crate/secure/zenghu
|
||||
desc = "A secure sterile crate marked with the logo of Zeng-Hu Pharmaceuticals."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/zenghu
|
||||
|
||||
/obj/structure/closet/crate/secure/phoron
|
||||
name = "phoron crate"
|
||||
desc = "A secure phoron crate."
|
||||
desc = "A secure phoron crate painted in standard NanoTrasen livery."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/hazard
|
||||
|
||||
|
||||
/obj/structure/closet/crate/secure/gear
|
||||
name = "gear crate"
|
||||
desc = "A secure gear crate."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/weapon
|
||||
|
||||
|
||||
/obj/structure/closet/crate/secure/hydrosec
|
||||
name = "secure hydroponics crate"
|
||||
desc = "A crate with a lock on it, painted in the scheme of the station's botanists."
|
||||
closet_appearance = /decl/closet_appearance/crate/secure/hydroponics
|
||||
|
||||
|
||||
/obj/structure/closet/crate/secure/engineering
|
||||
desc = "A crate with a lock on it, painted in the scheme of the station's engineers."
|
||||
name = "secure engineering crate"
|
||||
|
||||
|
||||
/obj/structure/closet/crate/secure/science
|
||||
name = "secure science crate"
|
||||
desc = "A crate with a lock on it, painted in the scheme of the station's scientists."
|
||||
|
||||
|
||||
/obj/structure/closet/crate/secure/bin
|
||||
name = "secure bin"
|
||||
desc = "A secure bin."
|
||||
|
||||
// Large crates
|
||||
|
||||
/obj/structure/closet/crate/large
|
||||
name = "large crate"
|
||||
@@ -404,6 +605,30 @@
|
||||
break
|
||||
return
|
||||
|
||||
/obj/structure/closet/crate/large/critter
|
||||
name = "animal crate"
|
||||
desc = "A hefty crate for hauling animals."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/critter
|
||||
|
||||
/obj/structure/closet/crate/large/aether
|
||||
name = "large atmospherics crate"
|
||||
desc = "A hefty metal crate, painted in Aether Atmospherics and Recycling colours."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/aether
|
||||
|
||||
/obj/structure/closet/crate/large/einstein
|
||||
name = "large crate"
|
||||
desc = "A hefty metal crate, painted in Einstein Engines colours."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/einstein
|
||||
|
||||
/obj/structure/closet/crate/large/nanotrasen
|
||||
name = "large crate"
|
||||
desc = "A hefty metal crate, painted in standard NanoTrasen livery."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/nanotrasen
|
||||
|
||||
/obj/structure/closet/crate/large/xion
|
||||
name = "large crate"
|
||||
desc = "A hefty metal crate, painted in Xion Manufacturing Group orange."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/xion
|
||||
|
||||
/obj/structure/closet/crate/secure/large
|
||||
name = "large crate"
|
||||
@@ -431,10 +656,30 @@
|
||||
return
|
||||
|
||||
|
||||
//fluff variant
|
||||
/obj/structure/closet/crate/secure/large/reinforced
|
||||
desc = "A hefty, reinforced metal crate with an electronic locking system."
|
||||
|
||||
/obj/structure/closet/crate/secure/large/aether
|
||||
name = "secure atmospherics crate"
|
||||
desc = "A hefty metal crate with an electronic locking system, painted in Aether Atmospherics and Recycling colours."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/secure/aether
|
||||
|
||||
/obj/structure/closet/crate/secure/large/einstein
|
||||
desc = "A hefty metal crate with an electronic locking system, painted in Einstein Engines colours."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/secure/einstein
|
||||
|
||||
/obj/structure/closet/crate/large/secure/heph
|
||||
desc = "A hefty metal crate with an electronic locking system, marked with Hephaestus Industries colours."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/secure/heph
|
||||
|
||||
/obj/structure/closet/crate/secure/large/nanotrasen
|
||||
desc = "A hefty metal crate with an electronic locking system, painted in standard NanoTrasen livery."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/secure/hazard
|
||||
|
||||
/obj/structure/closet/crate/large/secure/xion
|
||||
desc = "A hefty metal crate with an electronic locking system, painted in Xion Manufacturing Group orange."
|
||||
closet_appearance = /decl/closet_appearance/large_crate/secure/xion
|
||||
|
||||
/obj/structure/closet/crate/engineering
|
||||
name = "engineering crate"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/structure/largecrate
|
||||
name = "large crate"
|
||||
desc = "A hefty wooden crate."
|
||||
icon = 'icons/obj/storage_vr.dmi' //VOREStation Edit
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "densecrate"
|
||||
density = 1
|
||||
var/list/starts_with
|
||||
@@ -44,8 +44,8 @@
|
||||
|
||||
/obj/structure/largecrate/hoverpod
|
||||
name = "\improper Hoverpod assembly crate"
|
||||
desc = "It comes in a box for the fabricator's sake. Where does the wood come from? ... And why is it lighter?"
|
||||
icon_state = "mulecrate"
|
||||
desc = "You aren't sure how this crate is so light, but the Wulf Aeronautics logo might be a hint."
|
||||
icon_state = "vehiclecrate"
|
||||
|
||||
/obj/structure/largecrate/hoverpod/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(W.is_crowbar())
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
/obj/structure/largecrate/vehicle
|
||||
name = "vehicle crate"
|
||||
desc = "It comes in a box for the consumer's sake. ..How is this lighter?"
|
||||
desc = "Wulf Aeronautics says it comes in a box for the consumer's sake... How is this so light?"
|
||||
icon_state = "vehiclecrate"
|
||||
|
||||
/obj/structure/largecrate/vehicle/Initialize()
|
||||
@@ -74,18 +74,22 @@
|
||||
|
||||
/obj/structure/largecrate/vehicle/quadbike
|
||||
name = "\improper ATV crate"
|
||||
desc = "A hefty wooden crate proudly displaying the logo of Ward-Takahashi's automotive division."
|
||||
starts_with = list(/obj/structure/vehiclecage/quadbike)
|
||||
|
||||
/obj/structure/largecrate/vehicle/quadtrailer
|
||||
name = "\improper ATV trailer crate"
|
||||
desc = "A hefty wooden crate proudly displaying the logo of Ward-Takahashi's automotive division."
|
||||
starts_with = list(/obj/structure/vehiclecage/quadtrailer)
|
||||
|
||||
/obj/structure/largecrate/animal
|
||||
icon_state = "lisacrate" //VOREStation Edit
|
||||
icon_state = "crittercrate"
|
||||
desc = "A hefty wooden crate with air holes. It is marked with the logo of NanoTrasen Pastures and the slogan, '90% less cloning defects* than competing brands**, or your money back***!'"
|
||||
|
||||
/obj/structure/largecrate/animal/mulebot
|
||||
name = "Mulebot crate"
|
||||
icon_state = "mulecrate" //VOREStation Edit
|
||||
desc = "A hefty wooden crate labelled 'Proud Product of the Xion Manufacturing Group'"
|
||||
icon_state = "mulecrate"
|
||||
starts_with = list(/mob/living/bot/mulebot)
|
||||
|
||||
/obj/structure/largecrate/animal/corgi
|
||||
|
||||
@@ -423,7 +423,7 @@
|
||||
return
|
||||
|
||||
// If the human is losing too much blood, beep.
|
||||
if(((H.vessel.get_reagent_amount("blood")/H.species.blood_volume)*100) < BLOOD_VOLUME_SAFE)
|
||||
if(H.vessel.get_reagent_amount("blood") < H.species.blood_volume*H.species.blood_level_safe)
|
||||
visible_message("\The [src] beeps loudly.")
|
||||
|
||||
var/datum/reagent/B = H.take_blood(beaker,amount)
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
/obj/structure/noticeboard
|
||||
name = "notice board"
|
||||
desc = "A board for pinning important notices upon."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "nboard00"
|
||||
density = 0
|
||||
anchored = 1
|
||||
var/notices = 0
|
||||
|
||||
/obj/structure/noticeboard/New(var/loc, var/dir, var/building = 0)
|
||||
..()
|
||||
|
||||
if(building)
|
||||
if(loc)
|
||||
src.loc = loc
|
||||
|
||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
|
||||
pixel_y = (dir & 3)? (dir ==1 ? -27 : 27) : 0
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/structure/noticeboard/Initialize()
|
||||
for(var/obj/item/I in loc)
|
||||
if(notices > 4) break
|
||||
if(istype(I, /obj/item/weapon/paper))
|
||||
I.loc = src
|
||||
notices++
|
||||
icon_state = "nboard0[notices]"
|
||||
. = ..()
|
||||
|
||||
//attaching papers!!
|
||||
/obj/structure/noticeboard/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
if(notices < 5)
|
||||
O.add_fingerprint(user)
|
||||
add_fingerprint(user)
|
||||
user.drop_from_inventory(O)
|
||||
O.loc = src
|
||||
notices++
|
||||
icon_state = "nboard0[notices]" //update sprite
|
||||
to_chat(user, "<span class='notice'>You pin the paper to the noticeboard.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>")
|
||||
if(O.is_wrench())
|
||||
to_chat(user, "<span class='notice'>You start to unwrench the noticeboard.</span>")
|
||||
playsound(src, O.usesound, 50, 1)
|
||||
if(do_after(user, 15 * O.toolspeed))
|
||||
to_chat(user, "<span class='notice'>You unwrench the noticeboard.</span>")
|
||||
new /obj/item/frame/noticeboard( src.loc )
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/structure/noticeboard/attack_hand(var/mob/user)
|
||||
user.examinate(src)
|
||||
|
||||
// Since Topic() never seems to interact with usr on more than a superficial
|
||||
// level, it should be fine to let anyone mess with the board other than ghosts.
|
||||
/obj/structure/noticeboard/examine(var/mob/user)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
var/dat = "<B>Noticeboard</B><BR>"
|
||||
for(var/obj/item/weapon/paper/P in src)
|
||||
dat += "<A href='?src=\ref[src];read=\ref[P]'>[P.name]</A> <A href='?src=\ref[src];write=\ref[P]'>Write</A> <A href='?src=\ref[src];remove=\ref[P]'>Remove</A><BR>"
|
||||
user << browse("<HEAD><TITLE>Notices</TITLE></HEAD>[dat]","window=noticeboard")
|
||||
onclose(user, "noticeboard")
|
||||
|
||||
/obj/structure/noticeboard/Topic(href, href_list)
|
||||
..()
|
||||
usr.set_machine(src)
|
||||
if(href_list["remove"])
|
||||
if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open
|
||||
return
|
||||
var/obj/item/P = locate(href_list["remove"])
|
||||
if(P && P.loc == src)
|
||||
P.loc = get_turf(src) //dump paper on the floor because you're a clumsy fuck
|
||||
P.add_fingerprint(usr)
|
||||
add_fingerprint(usr)
|
||||
notices--
|
||||
icon_state = "nboard0[notices]"
|
||||
if(href_list["write"])
|
||||
if((usr.stat || usr.restrained())) //For when a player is handcuffed while they have the notice window open
|
||||
return
|
||||
var/obj/item/P = locate(href_list["write"])
|
||||
if((P && P.loc == src)) //ifthe paper's on the board
|
||||
var/mob/living/M = usr
|
||||
if(istype(M))
|
||||
var/obj/item/weapon/pen/E = M.get_type_in_hands(/obj/item/weapon/pen)
|
||||
if(E)
|
||||
add_fingerprint(M)
|
||||
P.attackby(E, usr)
|
||||
else
|
||||
to_chat(M, "<span class='notice'>You'll need something to write with!</span>")
|
||||
if(href_list["read"])
|
||||
var/obj/item/weapon/paper/P = locate(href_list["read"])
|
||||
if((P && P.loc == src))
|
||||
usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY><TT>[P.info]</TT></BODY></HTML>", "window=[P.name]")
|
||||
onclose(usr, "[P.name]")
|
||||
return
|
||||
@@ -192,6 +192,13 @@
|
||||
prob(2);/obj/item/weapon/storage/box/sinpockets,
|
||||
prob(2);/obj/item/weapon/storage/secure/briefcase,
|
||||
prob(2);/obj/item/clothing/under/fluff/latexmaid,
|
||||
prob(2);/obj/item/toy/tennis,
|
||||
prob(2);/obj/item/toy/tennis/red,
|
||||
prob(2);/obj/item/toy/tennis/yellow,
|
||||
prob(2);/obj/item/toy/tennis/green,
|
||||
prob(2);/obj/item/toy/tennis/cyan,
|
||||
prob(2);/obj/item/toy/tennis/blue,
|
||||
prob(2);/obj/item/toy/tennis/purple,
|
||||
prob(1);/obj/item/clothing/glasses/sunglasses,
|
||||
prob(1);/obj/item/clothing/glasses/welding,
|
||||
prob(1);/obj/item/clothing/gloves/yellow,
|
||||
|
||||
Reference in New Issue
Block a user