mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-22 14:26:37 +01:00
- all cells in the game are now small, medium, large - super, hyper capacity cells, device, and weapon cells are all removed - cells now have standardized variants, some of which are printable by R&D - energy weapons rebalanced - **advanced energy guns and stun revolvers removed** - use the new modular weapon system and microfission cells. --------- Co-authored-by: silicons <silicons@silicons.dev>
843 lines
28 KiB
Plaintext
843 lines
28 KiB
Plaintext
/obj/structure/closet/crate
|
|
name = "crate"
|
|
desc = "A rectangular steel crate."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate
|
|
climb_allowed = TRUE
|
|
depth_projected = TRUE
|
|
use_old_icon_update = TRUE
|
|
depth_level = 8
|
|
armor_type = /datum/armor/object/medium
|
|
worth_intrinsic = 45
|
|
var/points_per_crate = 5
|
|
var/rigged = 0
|
|
|
|
/obj/structure/closet/crate/CanPass(atom/movable/AM, turf/T)
|
|
. = ..()
|
|
if(. || !istype(AM, /obj/item))
|
|
return
|
|
var/obj/item/I = AM
|
|
return I.throwing
|
|
|
|
/obj/structure/closet/crate/can_open()
|
|
return 1
|
|
|
|
/obj/structure/closet/crate/can_close()
|
|
return 1
|
|
|
|
/obj/structure/closet/crate/open()
|
|
if(src.opened)
|
|
return 0
|
|
if(!src.can_open())
|
|
return 0
|
|
|
|
if(rigged && locate(/obj/item/radio/electropack) in src)
|
|
if(isliving(usr))
|
|
var/mob/living/L = usr
|
|
L.electrocute(0, 17, 0, NONE, pick(BP_L_HAND, BP_R_HAND), src)
|
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
|
s.set_up(5, 1, src)
|
|
s.start()
|
|
if(!CHECK_MOBILITY(usr, MOBILITY_CAN_MOVE))
|
|
return 2
|
|
|
|
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
|
|
for(var/obj/O in src)
|
|
O.forceMove(get_turf(src))
|
|
icon_state = icon_opened
|
|
src.opened = 1
|
|
shake_climbers()
|
|
update_icon()
|
|
return 1
|
|
|
|
/obj/structure/closet/crate/close()
|
|
if(!src.opened)
|
|
return 0
|
|
if(!src.can_close())
|
|
return 0
|
|
|
|
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
|
|
var/itemcount = 0
|
|
for(var/obj/O in get_turf(src))
|
|
if(itemcount >= storage_capacity)
|
|
break
|
|
if(O.density || O.anchored || istype(O,/obj/structure/closet))
|
|
continue
|
|
if(istype(O, /obj/structure/bed)) //This is only necessary because of rollerbeds and swivel chairs.
|
|
var/obj/structure/bed/B = O
|
|
if(B.has_buckled_mobs())
|
|
continue
|
|
O.forceMove(src)
|
|
itemcount++
|
|
|
|
icon_state = icon_closed
|
|
src.opened = 0
|
|
update_icon()
|
|
return 1
|
|
|
|
/obj/structure/closet/crate/attackby(obj/item/W as obj, mob/user as mob)
|
|
if(user.a_intent == INTENT_HARM)
|
|
return ..()
|
|
if(opened)
|
|
if(isrobot(user))
|
|
return
|
|
if(W.loc != user) // This should stop mounted modules ending up outside the module.
|
|
return
|
|
user.transfer_item_to_loc(W, loc)
|
|
else if(istype(W, /obj/item/packageWrap))
|
|
return
|
|
else if(istype(W, /obj/item/stack/cable_coil))
|
|
var/obj/item/stack/cable_coil/C = W
|
|
if(rigged)
|
|
to_chat(user, "<span class='notice'>[src] is already rigged!</span>")
|
|
return
|
|
if (C.use(1))
|
|
to_chat(user, "<span class='notice'>You rig [src].</span>")
|
|
rigged = 1
|
|
return
|
|
else if(istype(W, /obj/item/radio/electropack))
|
|
if(rigged)
|
|
if(!user.attempt_insert_item_for_installation(W, src))
|
|
return
|
|
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
|
return
|
|
else if(W.is_wirecutter())
|
|
if(rigged)
|
|
to_chat(user, "<span class='notice'>You cut away the wiring.</span>")
|
|
playsound(src.loc, W.tool_sound, 100, 1)
|
|
rigged = 0
|
|
return
|
|
else if(istype(W, /obj/item/extraction_pack))
|
|
src.close()
|
|
return
|
|
|
|
else return attack_hand(user)
|
|
|
|
/obj/structure/closet/crate/legacy_ex_act(severity)
|
|
switch(severity)
|
|
if(1.0)
|
|
for(var/obj/O in src.contents)
|
|
qdel(O)
|
|
qdel(src)
|
|
return
|
|
if(2.0)
|
|
for(var/obj/O in src.contents)
|
|
if(prob(50))
|
|
qdel(O)
|
|
qdel(src)
|
|
return
|
|
if(3.0)
|
|
if (prob(50))
|
|
qdel(src)
|
|
return
|
|
else
|
|
return
|
|
|
|
/obj/structure/closet/crate/update_icon_old()
|
|
if(!opened)
|
|
icon_state = initial(icon_state)
|
|
else
|
|
icon_state = "[initial(icon_state)]open"
|
|
|
|
/obj/structure/closet/crate/secure
|
|
desc = "A secure crate."
|
|
name = "Secure crate"
|
|
icon_state = "securecrate"
|
|
broken = FALSE
|
|
locked = TRUE
|
|
secure = TRUE
|
|
var/redlight = "securecrater"
|
|
var/greenlight = "securecrateg"
|
|
var/sparks = "securecratesparks"
|
|
var/emag = "securecrateemag"
|
|
//closet_appearance = /singleton/closet_appearance/crate/secure
|
|
var/tamper_proof = 0
|
|
|
|
/obj/structure/closet/crate/secure/Initialize(mapload)
|
|
. = ..()
|
|
|
|
if(locked)
|
|
set_overlays(redlight)
|
|
else
|
|
set_overlays(greenlight)
|
|
|
|
/obj/structure/closet/crate/secure/can_open()
|
|
return !locked
|
|
|
|
/obj/structure/closet/crate/secure/togglelock(mob/user as mob)
|
|
if(src.opened)
|
|
to_chat(user, "<span class='notice'>Close the crate first.</span>")
|
|
return
|
|
if(src.broken)
|
|
to_chat(user, "<span class='warning'>The crate appears to be broken.</span>")
|
|
return
|
|
if(src.allowed(user))
|
|
set_locked(!locked, user)
|
|
else
|
|
to_chat(user, "<span class='notice'>Access Denied</span>")
|
|
|
|
/obj/structure/closet/crate/secure/proc/set_locked(var/newlocked, mob/user = null)
|
|
if(locked == newlocked)
|
|
return
|
|
|
|
locked = newlocked
|
|
if(user)
|
|
for(var/mob/O in viewers(user, 3))
|
|
O.show_message( "<span class='notice'>The crate has been [locked ? null : "un"]locked by [user].</span>", 1)
|
|
|
|
set_overlays(locked ? redlight : greenlight)
|
|
|
|
/obj/structure/closet/crate/secure/verb_togglelock()
|
|
set src in oview(1) // One square distance
|
|
set category = VERB_CATEGORY_OBJECT
|
|
set name = "Toggle Lock"
|
|
|
|
if(!CHECK_MOBILITY(usr, MOBILITY_CAN_USE)) // Don't use it if you're not able to! Checks for stuns, ghost and restrain
|
|
return
|
|
|
|
if(ishuman(usr) || isrobot(usr))
|
|
src.add_fingerprint(usr)
|
|
src.togglelock(usr)
|
|
else
|
|
to_chat(usr, "<span class='warning'>This mob type can't use this verb.</span>")
|
|
|
|
/obj/structure/closet/crate/secure/attack_hand(mob/user, datum/event_args/actor/clickchain/e_args)
|
|
src.add_fingerprint(user)
|
|
if(locked)
|
|
src.togglelock(user)
|
|
else
|
|
src.toggle(user)
|
|
|
|
/obj/structure/closet/crate/secure/attackby(obj/item/W as obj, mob/user as mob)
|
|
if(is_type_in_list(W, list(/obj/item/packageWrap, /obj/item/stack/cable_coil, /obj/item/radio/electropack, /obj/item/tool/wirecutters)))
|
|
return ..()
|
|
if(istype(W, /obj/item/melee/ninja_energy_blade))
|
|
emag_act(INFINITY, user)
|
|
if(!opened)
|
|
src.togglelock(user)
|
|
return
|
|
return ..()
|
|
|
|
/obj/structure/closet/crate/secure/emag_act(remaining_charges, mob/user)
|
|
if(!broken)
|
|
cut_overlays()
|
|
var/list/overlays_to_add = list()
|
|
overlays_to_add += emag
|
|
overlays_to_add += sparks
|
|
add_overlay(overlays_to_add)
|
|
compile_overlays()
|
|
spawn(6)
|
|
cut_overlay(sparks) //Tried lots of stuff but nothing works right. so i have to use this *sadface*
|
|
compile_overlays()
|
|
playsound(src.loc, /datum/soundbyte/sparks, 60, 1)
|
|
locked = 0
|
|
broken = 1
|
|
to_chat(user, "<span class='notice'>You unlock \the [src].</span>")
|
|
update_icon()
|
|
return 1
|
|
|
|
/obj/structure/closet/crate/secure/emp_act(severity)
|
|
for(var/obj/O in src)
|
|
O.emp_act(severity)
|
|
if(!broken && !opened && prob(50/severity))
|
|
cut_overlays()
|
|
if(!locked)
|
|
locked = 1
|
|
add_overlay(redlight)
|
|
else
|
|
add_overlay(list(emag, sparks))
|
|
compile_overlays()
|
|
spawn(6)
|
|
cut_overlay(sparks) //Tried lots of stuff but nothing works right. so i have to use this *sadface*
|
|
compile_overlays()
|
|
playsound(src.loc, /datum/soundbyte/sparks, 75, 1)
|
|
locked = 0
|
|
update_icon()
|
|
if(!opened && prob(20/severity))
|
|
if(!locked)
|
|
open()
|
|
else
|
|
req_access = list()
|
|
req_access += pick(get_all_station_access())
|
|
..()
|
|
|
|
/obj/structure/closet/crate/secure/on_bullet_act(obj/projectile/proj, impact_flags, list/bullet_act_args)
|
|
if(!(proj.damage_type == DAMAGE_TYPE_BRUTE || proj.damage_type == DAMAGE_TYPE_BURN))
|
|
return ..()
|
|
|
|
if(locked && tamper_proof && integrity <= proj.damage_force)
|
|
if(tamper_proof == 2) // Mainly used for events to prevent any chance of opening the box improperly.
|
|
visible_message("<font color='red'><b>The anti-tamper mechanism of [src] triggers an explosion!</b></font>")
|
|
var/turf/T = get_turf(src.loc)
|
|
explosion(T, 0, 0, 0, 1) // Non-damaging, but it'll alert security.
|
|
qdel(src)
|
|
return impact_flags
|
|
var/open_chance = rand(1,5)
|
|
switch(open_chance)
|
|
if(1)
|
|
visible_message("<font color='red'><b>The anti-tamper mechanism of [src] causes an explosion!</b></font>")
|
|
var/turf/T = get_turf(src.loc)
|
|
explosion(T, 0, 0, 0, 1) // Non-damaging, but it'll alert security.
|
|
qdel(src)
|
|
if(2 to 4)
|
|
visible_message("<font color='red'><b>The anti-tamper mechanism of [src] causes a small fire!</b></font>")
|
|
for(var/atom/movable/A as mob|obj in src) // For every item in the box, we spawn a pile of ash.
|
|
new /obj/effect/debris/cleanable/ash(src.loc)
|
|
new /atom/movable/fire(src.loc)
|
|
qdel(src)
|
|
if(5)
|
|
visible_message("<font color='green'><b>The anti-tamper mechanism of [src] fails!</b></font>")
|
|
return impact_flags
|
|
|
|
return ..()
|
|
|
|
/obj/structure/closet/crate/plastic
|
|
name = "plastic crate"
|
|
desc = "A rectangular plastic crate."
|
|
icon_state = "plasticcrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/plastic
|
|
points_per_crate = 1 //5 crates per ordered crate, +5 for the crate it comes in.
|
|
|
|
/obj/structure/closet/crate/internals
|
|
name = "internals crate"
|
|
desc = "A internals crate."
|
|
icon_state = "o2crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/oxygen
|
|
|
|
/obj/structure/closet/crate/trashcart
|
|
name = "trash cart"
|
|
desc = "A heavy, metal trashcart with wheels."
|
|
icon_state = "trashcart"
|
|
//closet_appearance = /singleton/closet_appearance/cart/trash
|
|
|
|
/*these aren't needed anymore
|
|
/obj/structure/closet/crate/hat
|
|
desc = "A crate filled with Valuable Collector's Hats!."
|
|
name = "Hat Crate"
|
|
icon_state = "crate"
|
|
icon_opened = "crateopen"
|
|
icon_closed = "crate"
|
|
|
|
/obj/structure/closet/crate/contraband
|
|
name = "Poster crate"
|
|
desc = "A random assortment of posters manufactured by providers NOT listed under Nanotrasen's whitelist."
|
|
icon_state = "crate"
|
|
icon_opened = "crateopen"
|
|
icon_closed = "crate"
|
|
*/
|
|
|
|
/obj/structure/closet/crate/medical
|
|
name = "medical crate"
|
|
desc = "A medical crate."
|
|
icon_state = "medicalcrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/medical
|
|
|
|
/obj/structure/closet/crate/rcd
|
|
name = "\improper RCD crate"
|
|
desc = "A crate with rapid construction device."
|
|
icon_state = "engi_crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/engineering
|
|
|
|
starts_with = list(
|
|
/obj/item/rcd_ammo = 3,
|
|
/obj/item/rcd)
|
|
|
|
/obj/structure/closet/crate/solar
|
|
name = "solar pack crate"
|
|
icon_state = "engi_crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/engineering
|
|
|
|
starts_with = list(
|
|
/obj/item/frame2/solar_panel = 2,
|
|
/obj/item/circuitboard/solar_control,
|
|
/obj/item/tracker_electronics,
|
|
/obj/item/paper/solar)
|
|
|
|
/obj/structure/closet/crate/freezer
|
|
name = "freezer"
|
|
desc = "A freezer."
|
|
icon_state = "freezer"
|
|
//closet_appearance = /singleton/closet_appearance/crate/freezer
|
|
var/target_temp = T0C - 40
|
|
var/cooling_power = 40
|
|
|
|
/obj/structure/closet/crate/freezer/return_air()
|
|
var/datum/gas_mixture/gas = (..())
|
|
if(!gas) return null
|
|
var/datum/gas_mixture/newgas = new/datum/gas_mixture()
|
|
newgas.copy_from(gas)
|
|
if(newgas.temperature <= target_temp) return
|
|
|
|
if((newgas.temperature - cooling_power) > target_temp)
|
|
newgas.temperature -= cooling_power
|
|
else
|
|
newgas.temperature = target_temp
|
|
return newgas
|
|
|
|
/obj/structure/closet/crate/freezer/Entered(var/atom/movable/AM)
|
|
if(istype(AM, /obj/item/organ))
|
|
var/obj/item/organ/O = AM
|
|
O.preserve(CRATE_FREEZER_TRAIT)
|
|
..()
|
|
|
|
/obj/structure/closet/crate/freezer/Exited(var/atom/movable/AM)
|
|
if(istype(AM, /obj/item/organ))
|
|
var/obj/item/organ/O = AM
|
|
O.unpreserve(CRATE_FREEZER_TRAIT)
|
|
..()
|
|
|
|
/obj/structure/closet/crate/freezer/rations //Fpr use in the escape shuttle
|
|
name = "emergency rations"
|
|
desc = "A crate of emergency rations."
|
|
|
|
starts_with = list(
|
|
/obj/random/mre = 6)
|
|
|
|
/obj/structure/closet/crate/freezer/centauri
|
|
name = "centauri co freezer"
|
|
desc = "A box of various sodas."
|
|
|
|
/obj/structure/closet/crate/bin
|
|
name = "large bin"
|
|
desc = "A large bin."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "largebin"
|
|
//closet_appearance = /singleton/closet_appearance/cart/trash
|
|
|
|
/obj/structure/closet/crate/bin/attackby(obj/item/W as obj, mob/user as mob)
|
|
if(W.is_wrench() && !opened)
|
|
if(anchored)
|
|
user.show_message(SPAN_NOTICE("[src] can now be moved."))
|
|
playsound(src, W.tool_sound, 50, 1)
|
|
anchored = FALSE
|
|
|
|
else if(!anchored)
|
|
user.show_message(SPAN_NOTICE("[src] is now secured."))
|
|
playsound(src, W.tool_sound, 50, 1)
|
|
anchored = TRUE
|
|
else
|
|
..()
|
|
|
|
/obj/structure/closet/crate/radiation
|
|
name = "radioactive gear crate"
|
|
desc = "A crate with a radiation sign on it."
|
|
icon_state = "radiation"
|
|
//closet_appearance = /singleton/closet_appearance/crate/radiation
|
|
|
|
starts_with = list(
|
|
/obj/item/clothing/suit/radiation = 4,
|
|
/obj/item/clothing/head/radiation = 4)
|
|
|
|
|
|
/obj/structure/closet/crate/secure/weapon
|
|
name = "weapons crate"
|
|
desc = "A secure weapons crate."
|
|
icon_state = "weaponcrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/secure/weapon
|
|
|
|
|
|
/obj/structure/closet/crate/secure/phoron
|
|
name = "phoron crate"
|
|
desc = "A secure phoron crate."
|
|
icon_state = "phoroncrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/secure/hazard
|
|
|
|
|
|
/obj/structure/closet/crate/secure/gear
|
|
name = "gear crate"
|
|
desc = "A secure gear crate."
|
|
icon_state = "secgearcrate"
|
|
//closet_appearance = /singleton/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."
|
|
icon_state = "hydrosecurecrate"
|
|
//closet_appearance = /singleton/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"
|
|
icon_state = "engi_secure_crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/secure/engineering
|
|
|
|
|
|
/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."
|
|
icon_state = "scisecurecrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/secure/hazard
|
|
|
|
|
|
/obj/structure/closet/crate/secure/bin
|
|
name = "secure bin"
|
|
desc = "A secure bin."
|
|
icon_state = "largebins"
|
|
redlight = "largebinr"
|
|
greenlight = "largebing"
|
|
sparks = "largebinsparks"
|
|
emag = "largebinemag"
|
|
//closet_appearance = /singleton/closet_appearance/cart/secure
|
|
|
|
/obj/structure/closet/crate/large
|
|
name = "large crate"
|
|
desc = "A hefty metal crate."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "largemetal"
|
|
//closet_appearance = /singleton/closet_appearance/large_crate
|
|
|
|
|
|
/obj/structure/closet/crate/large/close()
|
|
. = ..()
|
|
if (.)//we can hold up to one large item
|
|
var/found = 0
|
|
for(var/obj/structure/S in src.loc)
|
|
if(S == src)
|
|
continue
|
|
if(!S.anchored)
|
|
found = 1
|
|
S.forceMove(src)
|
|
break
|
|
if(!found)
|
|
for(var/obj/machinery/M in src.loc)
|
|
if(!M.anchored)
|
|
M.forceMove(src)
|
|
break
|
|
return
|
|
|
|
|
|
/obj/structure/closet/crate/secure/large
|
|
name = "large crate"
|
|
desc = "A hefty metal crate with an electronic locking system."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "largemetalsecure"
|
|
redlight = "largemetalr"
|
|
greenlight = "largemetalg"
|
|
worth_intrinsic = 200
|
|
//closet_appearance = /singleton/closet_appearance/large_crate/secure
|
|
|
|
|
|
/obj/structure/closet/crate/secure/large/close()
|
|
. = ..()
|
|
if (.)//we can hold up to one large item
|
|
var/found = 0
|
|
for(var/obj/structure/S in src.loc)
|
|
if(S == src)
|
|
continue
|
|
if(!S.anchored)
|
|
found = 1
|
|
S.forceMove(src)
|
|
break
|
|
if(!found)
|
|
for(var/obj/machinery/M in src.loc)
|
|
if(!M.anchored)
|
|
M.forceMove(src)
|
|
break
|
|
return
|
|
|
|
|
|
//fluff variant
|
|
/obj/structure/closet/crate/secure/large/reinforced
|
|
desc = "A hefty, reinforced metal crate with an electronic locking system."
|
|
icon_state = "largermetal"
|
|
|
|
/obj/structure/closet/crate/engineering
|
|
name = "engineering crate"
|
|
icon_state = "engi_crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/engineering
|
|
|
|
/obj/structure/closet/crate/engineering/electrical
|
|
icon_state = "engi_e_crate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/engineering
|
|
|
|
/obj/structure/closet/crate/science
|
|
name = "science crate"
|
|
icon_state = "scicrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/science
|
|
|
|
/obj/structure/closet/crate/robotics
|
|
name = "robotics supply crate"
|
|
icon_state = "scicrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/science
|
|
|
|
starts_with = list(
|
|
/obj/item/stack/material/plasteel = 10,
|
|
/obj/item/stack/material/steel/full_stack = 5,
|
|
/obj/fiftyspawner/glass = 4,
|
|
/obj/item/cell/basic/tier_1/medium = 4,
|
|
/obj/item/cell/basic/tier_1/large = 4,
|
|
/obj/item/stack/cable_coil = 2,
|
|
/obj/item/flash/synthetic = 8,
|
|
/obj/item/healthanalyzer = 4,
|
|
/obj/item/storage/firstaid = 4)
|
|
|
|
/obj/structure/closet/crate/hydroponics
|
|
name = "hydroponics crate"
|
|
desc = "All you need to destroy those pesky weeds and pests."
|
|
icon_state = "hydrocrate"
|
|
//closet_appearance = /singleton/closet_appearance/crate/hydroponics
|
|
|
|
/obj/structure/closet/crate/hydroponics/prespawned
|
|
starts_with = list(
|
|
/obj/item/reagent_containers/spray/plantbgone = 2,
|
|
/obj/item/material/minihoe)
|
|
|
|
/obj/structure/closet/crate/hydroponics/exotic
|
|
name = "exotic seeds crate"
|
|
desc = "All you need to destroy that pesky planet."
|
|
|
|
starts_with = list(
|
|
/obj/item/seeds/random = 6,
|
|
/obj/item/seeds/replicapod = 2,
|
|
/obj/item/seeds/ambrosiavulgarisseed = 2,
|
|
/obj/item/seeds/kudzuseed,
|
|
/obj/item/seeds/libertymycelium,
|
|
/obj/item/seeds/reishimycelium)
|
|
|
|
/obj/structure/closet/crate/medical/blood
|
|
icon_state = "blood"
|
|
|
|
//TSCs
|
|
//Add in icons instead of this declare thing? Sort out what's causing this.
|
|
/obj/structure/closet/crate/corporate
|
|
desc = "YOU SHOULDN'T SEE ME!"
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "crate"
|
|
use_old_icon_update = TRUE
|
|
|
|
/obj/structure/closet/crate/corporate/aether
|
|
desc = "A crate painted in the colours of Aether Atmospherics and Recycling."
|
|
icon_state = "aether"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/aether
|
|
|
|
/obj/structure/closet/crate/corporate/centauri
|
|
desc = "A crate decorated with the logo of Centauri Provisions."
|
|
icon_state = "centauri"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/centauri
|
|
|
|
/obj/structure/closet/crate/corporate/einstein
|
|
desc = "A crate labelled with an Einstein Engines sticker, the company has since been bought out by Hephaestus Industries."
|
|
icon_state = "ee"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/einstein
|
|
|
|
/obj/structure/closet/crate/corporate/focalpoint
|
|
desc = "A crate marked with the decal of Focal Point Energistics, now a subsidiary of Aether Atmospherics and Recycling."
|
|
icon_state = "fp"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/focal
|
|
|
|
/obj/structure/closet/crate/corporate/gilthari
|
|
desc = "A crate embossed with the logo of Gilthari Exports."
|
|
icon_state = "gilthari"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/gilthari
|
|
|
|
/obj/structure/closet/crate/corporate/grayson
|
|
desc = "A bare metal crate spraypainted with the decals of Grayson Manufactories an NT subsidiary. The purchase of Grayson by NT helped them secure their phoron monoply."
|
|
icon_state = "grayson"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/grayson
|
|
|
|
/obj/structure/closet/crate/corporate/heph
|
|
desc = "A sturdy crate marked with the logo of Hephaestus Industries."
|
|
icon_state = "heph"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/hephaestus
|
|
|
|
/obj/structure/closet/crate/corporate/morpheus
|
|
desc = "A crate crudely imprinted with 'MORPHEUS CYBERKINETICS' 'primier' off brand prosthetics manufactuer."
|
|
icon_state = "morpheus"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/morpheus
|
|
|
|
/obj/structure/closet/crate/corporate/nanotrasen
|
|
desc = "A crate emblazoned with the standard Nanotrasen livery."
|
|
icon_state = "nt"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/nanotrasen
|
|
|
|
/obj/structure/closet/crate/corporate/nanothreads
|
|
desc = "A crate emblazoned with the NanoThreads Garments livery, a subsidary of the Nanotrasen Corporation."
|
|
icon_state = "nt"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/nanotrasen
|
|
|
|
/obj/structure/closet/crate/corporate/nanomed
|
|
desc = "A crate emblazoned with the NanoMed Medical livery, a subsidary of the Nanotrasen Corporation."
|
|
icon_state = "ntmed"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/nanotrasen
|
|
|
|
/obj/structure/closet/crate/corporate/oculum
|
|
desc = "A crate minimally decorated with the logo of media giant Oculum Broadcast."
|
|
icon_state = "oculum"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/oculum
|
|
|
|
/obj/structure/closet/crate/corporate/veymed
|
|
desc = "A sterile crate extensively detailed in Veymed colours."
|
|
icon_state = "vmed"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/veymed
|
|
|
|
/obj/structure/closet/crate/corporate/ward
|
|
desc = "A crate decaled with the logo of Ward-Takahashi."
|
|
icon_state = "wt"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/ward
|
|
|
|
/obj/structure/closet/crate/corporate/xion
|
|
desc = "A crate painted in the orange of the former Xion Manufacturing Group, now a subsidiary of Aether Atmospherics and Recycling."
|
|
icon_state = "xion"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/xion
|
|
|
|
/obj/structure/closet/crate/corporate/zenghu
|
|
desc = "A sterile crate marked with the logo of Zeng-Hu Pharmaceuticals."
|
|
icon_state = "zh"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/zhenghu
|
|
|
|
// Brands/subsidiaries
|
|
|
|
/obj/structure/closet/crate/corporate/allico
|
|
desc = "A crate painted in the distinctive cheerful colours of AlliCo. Ltd."
|
|
icon_state = "allico"
|
|
|
|
/obj/structure/closet/crate/corporate/carp
|
|
desc = "A crate painted with the garish livery of Consolidated Agricultural Resources Plc. Centauri Provisions (in)famous space carp ranching subsidairy."
|
|
icon_state = "carp"
|
|
|
|
/obj/structure/closet/crate/corporate/hedberg
|
|
name = "weapons crate"
|
|
desc = "A weapons crate stamped with the logo of Hedberg-Hammarstrom and the lock conspicuously absent."
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/hedberg
|
|
|
|
/obj/structure/closet/crate/corporate/galaksi
|
|
desc = "A crate printed with the markings of Ward-Takahashi's Galaksi Appliance branding."
|
|
icon_state = "wt"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/ward
|
|
|
|
/obj/structure/closet/crate/corporate/thinktronic
|
|
desc = "A crate printed with the markings of Thinktronic Systems."
|
|
icon_state = "wt"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/ward
|
|
|
|
/obj/structure/closet/crate/corporate/ummarcar
|
|
desc = "A flimsy crate marked labelled 'UmMarcar Office Supply'."
|
|
|
|
/obj/structure/closet/crate/corporate/unathi
|
|
name = "import crate"
|
|
desc = "A crate painted with the markings of Moghes Imported Sissalik Jerky, currently distributed by the Naramadi megacorporation Onkhera Synthetic Solutions."
|
|
icon_state = "oss"
|
|
|
|
//Ashie Crate - Sprite isn't stellar, maybe some day we can do a better one.
|
|
/obj/structure/closet/crate/ashlander
|
|
name = "bonemold crate"
|
|
desc = "A crate shaped out of fused bone plates. It is held shut by a sturdy hide strap."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "ashcrate"
|
|
use_old_icon_update = TRUE
|
|
|
|
//Secure crates
|
|
|
|
/obj/structure/closet/crate/secure/corporate
|
|
desc = "YOU SHOULDN'T SEE ME!"
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "securecrate"
|
|
use_old_icon_update = TRUE
|
|
|
|
/obj/structure/closet/crate/secure/corporate/aether
|
|
desc = "A secure crate painted in the colours of Aether Atmospherics and Recycling."
|
|
icon_state = "aethersec"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/aether/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/bishop
|
|
desc = "A secure crate finely decorated with the emblem of Bishop Cybernetics, former Vey-Med rival now Vey-Med subsidiary."
|
|
icon_state = "bishopsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/bishop
|
|
|
|
/obj/structure/closet/crate/secure/corporate/cybersolutions
|
|
desc = "An unadorned secure metal crate labelled 'Cyber Solutions'."
|
|
|
|
/obj/structure/closet/crate/secure/corporate/einstein
|
|
desc = "A secure crate labelled with an Einstein Engines sticker, the company has since been bought out by Hephaestus Industries."
|
|
icon_state = "eesecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/einstein/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/focalpoint
|
|
desc = "A secure crate marked with the decal of Focal Point Energistics, now a subsidiary of Aether Atmospherics and Recycling."
|
|
icon_state = "fpsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/focal/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/gilthari
|
|
desc = "A secure crate embossed with the logo of Gilthari Exports."
|
|
icon_state = "giltharisecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/gilthari/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/grayson
|
|
desc = "A secure bare metal crate spraypainted with decals of Grayson Manufactories an NT subsidiary. The purchase of Grayson by NT helped them secure their phoron monoply."
|
|
icon_state = "graysonsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/grayson/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/hedberg
|
|
name = "weapons crate"
|
|
desc = "A secure weapons crate stamped with the logo of Hedberg-Hammarstrom."
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/hedberg/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/heph
|
|
name = "weapons crate"
|
|
desc = "A secure weapons crate marked with the logo of Hephaestus Industries."
|
|
icon_state = "hephsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/hephaestus/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/lawson
|
|
name = "weapons crate"
|
|
desc = "A secure weapons crate marked with the logo of Lawson Arms."
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/lawson/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/morpheus
|
|
desc = "A secure crate crudely imprinted with 'MORPHEUS CYBERKINETICS', 'primier' off brand prosthetics manufactuer."
|
|
icon_state = "morpheussecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/morpheus/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/nanotrasen
|
|
desc = "A secure crate emblazoned with the standard Nanotrasen livery."
|
|
icon_state = "ntsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/nanotrasen/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/nanomed
|
|
desc = "A secure crate emblazoned with the NanoMed Medical livery, a subsidary of the Nanotrasen Corporation."
|
|
icon_state = "ntmedsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/nanotrasen/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/oricon
|
|
name = "weapons crate"
|
|
desc = "A secure crate in the official colours of the Orion Confederation."
|
|
icon_state = "oriconsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/oricon/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/saare
|
|
desc = "A secure weapons crate plainly stamped with the logo of Stealth Assault Enterprises. A Blackstar Legion susidiary that is one of the few groups that still transport \
|
|
hard currency."
|
|
icon_state = "saaresecure"
|
|
|
|
/obj/structure/closet/crate/secure/corporate/veymed
|
|
desc = "A secure sterile crate extensively detailed in Veymed colours."
|
|
icon_state = "vmedsecure"
|
|
|
|
/obj/structure/closet/crate/secure/corporate/ward
|
|
desc = "A secure crate decaled with the logo of Ward-Takahashi."
|
|
icon_state = "wtsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/ward/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/xion
|
|
desc = "A secure crate painted in the orange of the former Xion Manufacturing Group, now a subsidiary of Aether Atmospherics and Recycling."
|
|
icon_state = "xionsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/xion/secure
|
|
|
|
/obj/structure/closet/crate/secure/corporate/zenghu
|
|
desc = "A secure sterile crate marked with the logo of Zeng-Hu Pharmaceuticals."
|
|
icon_state = "zhsecure"
|
|
//closet_appearance = /singleton/closet_appearance/crate/branded/zhenghu/secure
|
|
|
|
//Brings back the old Biohazard Bin.
|
|
/obj/structure/closet/crate/biohazard
|
|
name = "biohazard bin"
|
|
desc = "A large bin for medical and other personnel that deal with bio-grade waste."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "biohazard"
|
|
climb_allowed = TRUE
|
|
points_per_crate = 5
|
|
use_old_icon_update = TRUE
|