Merge branch 'master' into gatofication2
@@ -0,0 +1,15 @@
|
||||
// GS13 - Port CE Gloves
|
||||
/obj/item/clothing/gloves/color/yellow/ce //funky looking, basically combat gloves
|
||||
desc = "Special Insulated gloves with pricy thermal shielding normally only found in combat gloves."
|
||||
name = "Chief Engineer Insulated Gloves"
|
||||
icon = 'GainStation13/icons/obj/clothing/gloves.dmi'
|
||||
icon_state = "ce_insuls"
|
||||
item_state = "blackgloves"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
strip_delay = 80
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi'
|
||||
mob_overlay_icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi'
|
||||
icon_state = "haydee_helmet"
|
||||
item_state = "item_haydee_helmet"
|
||||
armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 0, "bio" = 0, "rad" = 25, "fire" = 25, "acid" = 25)
|
||||
slowdown = 0
|
||||
mutantrace_variation = NONE
|
||||
@@ -13,9 +12,10 @@
|
||||
/obj/item/clothing/suit/space/hardsuit/engine/haydee
|
||||
name = "Haydee Suit"
|
||||
desc = "A strangely voluptous suit. Offers little to no protection. It also appears to have minor flab-compressing properties."
|
||||
icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi'
|
||||
mob_overlay_icon = 'GainStation13/icons/obj/clothing/haydee_modular.dmi'
|
||||
anthro_mob_worn_overlay = 'GainStation13/icons/obj/clothing/haydee_modular.dmi'
|
||||
icon_state = "haydee_suit"
|
||||
icon_state = "haydee_suit1"
|
||||
item_state = "item_haydee"
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 25, "fire" = 5, "acid" = 5)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
|
||||
|
||||
@@ -125,3 +125,26 @@
|
||||
mob_trait = TRAIT_DISTANT
|
||||
value = 0
|
||||
medical_record_text = "Patient cares little with or dislikes being touched."
|
||||
|
||||
/datum/quirk/vegetarian
|
||||
name = "Vegetarian"
|
||||
desc = "You find the idea of eating meat morally and physically repulsive."
|
||||
value = 0
|
||||
gain_text = "<span class='notice'>You feel repulsion at the idea of eating meat.</span>"
|
||||
lose_text = "<span class='notice'>You feel like eating meat isn't that bad.</span>"
|
||||
medical_record_text = "Patient reports a vegetarian diet."
|
||||
|
||||
/datum/quirk/vegetarian/add()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
var/datum/species/species = H.dna.species
|
||||
species.liked_food &= ~MEAT
|
||||
species.disliked_food |= MEAT
|
||||
|
||||
/datum/quirk/vegetarian/remove()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
if(H)
|
||||
var/datum/species/species = H.dna.species
|
||||
if(initial(species.liked_food) & MEAT)
|
||||
species.liked_food |= MEAT
|
||||
else
|
||||
species.disliked_food &= ~MEAT
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
name = "GATO Badge - Correspondent"
|
||||
category = LOADOUT_CATEGORY_DONATOR
|
||||
path = /obj/item/clothing/accessory/medal/gato_badge/middleman
|
||||
ckeywhitelist = list("johnjimjim", "sonoida", "yeeny", "Not Number")
|
||||
ckeywhitelist = list("johnjimjim", "sonoida", "yeeny", "Not Number", "Not_Number", "NotNumber",)
|
||||
|
||||
/datum/gear/halsey_overcoat
|
||||
name = "Halsey's Commander Overcoat"
|
||||
@@ -29,12 +29,6 @@
|
||||
path = /obj/item/gun/ballistic/automatic/toy/pistol/haydee
|
||||
ckeywhitelist = list("lumu", "sonoida")
|
||||
|
||||
//sorry for defining this here, just thought it'd be more convenient
|
||||
/obj/item/clothing/suit/chloe/halsey //sorry to whoever chloe is, but that coat is far too badass not to be used
|
||||
name = "Halsey's Commander Overcoat"
|
||||
desc = "A Ginormous red overcoat that looks fit for a commander. Has a tag on it that reads: 'Property of Halsey Harmonten. Please return if lost!'"
|
||||
armor = list("melee" = 20, "bullet" = 20, "laser" = 0,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 0) //worn by a captain player, might as well recompensate not wearing the carapace
|
||||
|
||||
/datum/gear/rose_plush
|
||||
name = "Dezir Rose Plush"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
@@ -53,10 +47,6 @@
|
||||
path = /obj/item/clothing/suit/storage/blueshield/grimmy
|
||||
ckeywhitelist = list("bbgrimmy")
|
||||
|
||||
/obj/item/clothing/suit/storage/blueshield/grimmy
|
||||
name = "Overcoat of the Destitute"
|
||||
desc = "Welcome all to the everlasting all-time low. Please put your hands together for the ever-failing one man show: Domino!"
|
||||
|
||||
/datum/gear/tarek_gps
|
||||
name = "Tarek's GPS"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
@@ -69,10 +59,6 @@
|
||||
path = /obj/item/crowbar/bronze/glaug
|
||||
ckeywhitelist = list("happytpr")
|
||||
|
||||
/obj/item/crowbar/bronze/glaug
|
||||
name = "Milwaukee Pocket Crowbar"
|
||||
desc = "Much more expensive. Still serves the same function."
|
||||
|
||||
/datum/gear/fatfang
|
||||
name = "Fattening Fangs Injector"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
@@ -85,15 +71,6 @@
|
||||
path = /obj/item/storage/belt/utility
|
||||
ckeywhitelist = list("killmewitha22", "Killmewitha22", "KILLMEWITHA22", "sonoida")
|
||||
|
||||
/obj/item/toy/sword/chloesabre/halsey
|
||||
name = "Halsey's Sabre"
|
||||
desc = "An elegant weapon, similar in design to the Captain's Sabre, but with a platinum hilt and an adamantine blade. the hilt has an engraved hyena on it."
|
||||
force = 16
|
||||
|
||||
/obj/item/gun/ballistic/revolver/mateba/moka
|
||||
name = "\improper Custom Unica 6 revolver"
|
||||
desc = "An elegant and ornate revolver belonging to a certain hellcat commander. There are some words carved on its side: 'Dura Lex, Sed Lex'"
|
||||
|
||||
//metha rossi you fat hog
|
||||
|
||||
/datum/gear/wgspell_add
|
||||
@@ -114,18 +91,44 @@
|
||||
path = /obj/item/book/granter/spell/fattening/steal
|
||||
ckeywhitelist = list("sonoida", "themrsky", "Not Number")
|
||||
|
||||
|
||||
/datum/gear/white_eyepatch_cabal
|
||||
name = "Cabal's Eyepatch"
|
||||
category = LOADOUT_CATEGORY_GLASSES
|
||||
path = /obj/item/clothing/glasses/eyepatch/cabal
|
||||
ckeywhitelist = list("spess_lizurd", "SPESS LIZURD", "spess lizurd", "SPESS_LIZURD", "spesslizurd", "sonoida")
|
||||
|
||||
/datum/gear/white_eyepatch
|
||||
/datum/gear/white_eyepatch //accessible to anyone, at donator's request
|
||||
name = "White Eyepatch"
|
||||
category = LOADOUT_CATEGORY_GLASSES
|
||||
path = /obj/item/clothing/glasses/eyepatch/white
|
||||
|
||||
/datum/gear/metis_plush
|
||||
name = "Metis Plush"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
path = /obj/item/toy/plush/gs13/metis
|
||||
ckeywhitelist = list("paraillegal", "Paraillegal")
|
||||
|
||||
/datum/gear/wheelys
|
||||
name = "Wheely-Heels"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
path = /obj/item/clothing/shoes/wheelys
|
||||
ckeywhitelist = list("colorlessspy", "Colorlessspy")
|
||||
|
||||
/datum/gear/crowbars_plush
|
||||
name = "Crowbars Plush"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
path = /obj/item/toy/plush/gs13/crowbars
|
||||
ckeywhitelist = list("M16nPregnant", "m16npregnant" )
|
||||
|
||||
/datum/gear/sams_welder
|
||||
name = "Sam's Unlucky Welder"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
path = /obj/item/weldingtool/bronze
|
||||
ckeywhitelist = list("almaniak", "Almaniak", "AlManiak")
|
||||
|
||||
//
|
||||
//item presets for donator items
|
||||
//
|
||||
/obj/item/clothing/glasses/eyepatch/white
|
||||
name = "White eyepatch"
|
||||
desc = "Smells faintly of medicine and headaches."
|
||||
@@ -138,14 +141,24 @@
|
||||
icon_state = "eyepatch_white"
|
||||
item_state = "eyepatch_white"
|
||||
|
||||
/datum/gear/metis_plush
|
||||
name = "Metis Plush"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
path = /obj/item/toy/plush/gs13/metis
|
||||
ckeywhitelist = list("paraillegal")
|
||||
/obj/item/toy/sword/chloesabre/halsey
|
||||
name = "Halsey's Sabre"
|
||||
desc = "An elegant weapon, similar in design to the Captain's Sabre, but with a platinum hilt and an adamantine blade. the hilt has an engraved hyena on it."
|
||||
force = 16
|
||||
|
||||
/datum/gear/wheelys
|
||||
name = "Wheely-Heels"
|
||||
category = LOADOUT_SUBCATEGORY_BACKPACK_TOYS
|
||||
path = /obj/item/clothing/shoes/wheelys
|
||||
ckeywhitelist = list("colorlessspy")
|
||||
/obj/item/gun/ballistic/revolver/mateba/moka
|
||||
name = "\improper Custom Unica 6 revolver"
|
||||
desc = "An elegant and ornate revolver belonging to a certain hellcat commander. There are some words carved on its side: 'Dura Lex, Sed Lex'"
|
||||
|
||||
/obj/item/clothing/suit/chloe/halsey //sorry to whoever chloe is, but that coat is far too badass not to be used
|
||||
name = "Halsey's Commander Overcoat"
|
||||
desc = "A Ginormous red overcoat that looks fit for a commander. Has a tag on it that reads: 'Property of Halsey Harmonten. Please return if lost!'"
|
||||
armor = list("melee" = 20, "bullet" = 20, "laser" = 0,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 0) //worn by a captain player, might as well recompensate not wearing the carapace
|
||||
|
||||
/obj/item/clothing/suit/storage/blueshield/grimmy
|
||||
name = "Overcoat of the Destitute"
|
||||
desc = "Welcome all to the everlasting all-time low. Please put your hands together for the ever-failing one man show: Domino!"
|
||||
|
||||
/obj/item/crowbar/bronze/glaug
|
||||
name = "Milwaukee Pocket Crowbar"
|
||||
desc = "Much more expensive. Still serves the same function."
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
//GS13 glitters. Making the subtle variants their own subtypes, as some use the fake gas effects to make a room look like it's full of gas, when it isnt.
|
||||
/obj/effect/decal/cleanable/glitter/pink_subtle
|
||||
name = "faint pink glitter"
|
||||
icon = 'GainStation13/icons/effects/atmospherics.dmi'
|
||||
icon_state = "glitter"
|
||||
color = "#9e0089"
|
||||
|
||||
/obj/effect/decal/cleanable/glitter/white_subtle
|
||||
name = "faint white glitter"
|
||||
icon = 'GainStation13/icons/effects/atmospherics.dmi'
|
||||
icon_state = "glitter"
|
||||
|
||||
/obj/effect/decal/cleanable/glitter/blue_subtle
|
||||
name = "faint blue glitter"
|
||||
icon = 'GainStation13/icons/effects/atmospherics.dmi'
|
||||
icon_state = "glitter"
|
||||
color = "#2dd6ff"
|
||||
@@ -0,0 +1,7 @@
|
||||
////////////// GS13 BARSIGNS ///////////////
|
||||
// Because modularity, yo
|
||||
|
||||
/datum/barsign/the_busted_belt //gs13
|
||||
name = "The Busted Belt"
|
||||
icon = "thebustedbelt" //...I dont think this survived the rebase, oops.
|
||||
desc = "GATO is not liable for any pieces of broken wardrobe."
|
||||
@@ -76,3 +76,8 @@
|
||||
desc = "A plush of black-furred nerdy goat."
|
||||
icon_state = "metis"
|
||||
attack_verb = list("squished", "goated", "baah'd")
|
||||
|
||||
/obj/item/toy/plush/gs13/crowbars
|
||||
desc = "A plush of a silly-eyed xeno seccie."
|
||||
icon_state = "crowbars"
|
||||
attack_verb = list("squished", "crowbared", "beno'd")
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
/// How many items we can push per-pump.
|
||||
var/pump_limit = 5
|
||||
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -38,6 +39,24 @@
|
||||
anchored = TRUE
|
||||
welded = TRUE //Make it functional
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/examine(mob/user)
|
||||
. = ..()
|
||||
if(LAZYLEN(pump_stuff))
|
||||
switch(LAZYLEN(pump_stuff))
|
||||
if(1)
|
||||
. += "It seems to have something inside"
|
||||
if(2 to 20)
|
||||
. += "It seems to have some stuff inside"
|
||||
if(21 to 50)
|
||||
. += "It seems to be rather full of stuff!"
|
||||
if(51 to 200)
|
||||
. += "<b>It's walls are bulging out with tons of stuff packed inside!!</b>"
|
||||
else
|
||||
. += "<span class='danger'>The whole machine is shuddering as it strains to contain hundreds of objects!</span>"
|
||||
if(clogged)
|
||||
. += "<span class='warning'>It seems to be clogged with stuff!</span>"
|
||||
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/CheckParts(list/parts_list)
|
||||
..()
|
||||
pump_limit = 0
|
||||
@@ -48,6 +67,7 @@
|
||||
|
||||
pump_limit = ceil(pump_limit) //Only whole numbers
|
||||
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/deconstruct(disassembled)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
new /obj/item/stack/sheet/metal(loc, 5)
|
||||
@@ -78,24 +98,23 @@
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/MouseDrop(mob/living/target)
|
||||
. = ..()
|
||||
if(!usr.canUseTopic(src, BE_CLOSE)) // iscarbon() so that xenos/wendigos(?) can do feeding stuff maybe. Maybe.
|
||||
if(!usr.canUseTopic(src, BE_CLOSE))
|
||||
return
|
||||
if(!welded)
|
||||
to_chat(usr, "<span class='warning'>You need to weld down \the [src] before you can use it.</span>")
|
||||
return
|
||||
if(attached)
|
||||
attached.visible_message("<span class='warning'>\The [src]'s tube is removed from [attached].</span>", "<span class='warning'>The tube is removed from you.")
|
||||
detach_tube(FALSE)
|
||||
return
|
||||
if(!isliving(target))
|
||||
return
|
||||
if(attached)
|
||||
attached.visible_message("<span class='warning'>[attached] is detached from [src].</span>")
|
||||
attached = null
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(iscarbon(target))
|
||||
if(iscarbon(target)) // iscarbon() so that xenos/wendigos(?) can do feeding stuff maybe. Maybe.
|
||||
var/mob/living/carbon/feedee = target
|
||||
|
||||
if(HAS_TRAIT(feedee, TRAIT_TRASHCAN))
|
||||
var/food_dump = input(usr, "Where do you shove the tube? (cancel for to just feed normally)", "Select belly") as null|anything in feedee.vore_organs
|
||||
if(HAS_TRAIT(feedee, TRAIT_TRASHCAN) || (feedee.vore_flags & FEEDING))
|
||||
var/food_dump = input(usr, "Where do you shove the tube? (cancel to just feed normally)", "Select belly") as null|anything in feedee.vore_organs
|
||||
if(food_dump && isbelly(food_dump))
|
||||
// Best to be safe with this thing. Since you can eat pretty much anythign with it...
|
||||
// Including People, Intentionally or otherwise.
|
||||
@@ -105,38 +124,56 @@
|
||||
to_chat(usr, "[feedee] doesnt want to be fed by \the [src]...")
|
||||
return
|
||||
|
||||
output_dest = food_dump //Attach to vorebelly
|
||||
attached = feedee
|
||||
|
||||
update_icon()
|
||||
START_PROCESSING(SSobj, src)
|
||||
face_atom(feedee)
|
||||
attach_tube(feedee, food_dump) // Attach in Vore Mode
|
||||
return
|
||||
|
||||
//Either we arn't attaching to vorebelly, or we arnt able to. Let's try to feed them normally!
|
||||
if(usr != feedee) //
|
||||
if(usr != feedee)
|
||||
var/feedeePrefCheck = alert(feedee, "[usr] is attempting to shove \the [src]'s tube into your mouth! Do you want this?", "THE TUBE", "Yes!!", "No!")
|
||||
if(feedeePrefCheck != "Yes!!")
|
||||
to_chat(usr, "[feedee] doesnt want to be fed by \the [src]...")
|
||||
return
|
||||
|
||||
output_dest = feedee //Attach normally
|
||||
attached = feedee
|
||||
|
||||
update_icon()
|
||||
START_PROCESSING(SSobj, src)
|
||||
face_atom(feedee)
|
||||
attach_tube(feedee) // Attach normally
|
||||
return
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/process()
|
||||
if(!attached)
|
||||
return PROCESS_KILL
|
||||
/// Attaches the tube to the target. dest defaults to the target, if dest isnt defined
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/proc/attach_tube(var/mob/living/target, var/dest = null, var/loud = TRUE)
|
||||
if(!target)
|
||||
return FALSE
|
||||
if(dest)
|
||||
output_dest = dest
|
||||
else
|
||||
output_dest = target
|
||||
attached = target
|
||||
|
||||
if(loud)
|
||||
if(isbelly(output_dest))
|
||||
target.visible_message("\The [src]'s tube is shoved into [attached]!", "The tube is shoved directly into your [output_dest]!")
|
||||
else
|
||||
target.visible_message("\The [src]'s tube is shoved into [attached]!", "The tube is shoved directly into you!")
|
||||
|
||||
RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(check_target_dist))
|
||||
update_icon()
|
||||
face_atom(target)
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/proc/detach_tube(var/loud = TRUE)
|
||||
UnregisterSignal(attached, COMSIG_MOVABLE_MOVED)
|
||||
if(loud)
|
||||
attached.visible_message("<span class='warning'>[attached] is detached from [src].</span>")
|
||||
attached = null
|
||||
output_dest = null
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/proc/check_target_dist()
|
||||
if(!attached) //oh no
|
||||
UnregisterSignal()
|
||||
|
||||
if(!(get_dist(src, attached) <= 1 && isturf(attached.loc)))
|
||||
to_chat(attached, "<span class='userdanger'>The feeding hose is yanked out of you!</span>")
|
||||
attached = null
|
||||
output_dest = null
|
||||
update_icon()
|
||||
return PROCESS_KILL
|
||||
attached.visible_message("<span class='danger'The feeding tube is yanked out of [attached]!</span>","<span class='userdanger'>The feeding hose is yanked out of you!</span>")
|
||||
detach_tube(FALSE)
|
||||
return
|
||||
|
||||
face_atom(attached)
|
||||
|
||||
@@ -165,10 +202,9 @@
|
||||
// expel the contents of the holder object, then delete it
|
||||
// called when the holder exits the outlet
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/expel(obj/structure/disposalholder/H)
|
||||
var/clunkVol = LAZYLEN(H.contents)
|
||||
if(H.hasmob) //Uh oh-
|
||||
clunkVol += 25
|
||||
playsound(src, H.hasmob ? "clang" : "clangsmall", clamp(clunkVol, 5, H.hasmob ? 50 : 25))
|
||||
playsound(src, "clang", 100)
|
||||
visible_message("<span class='danger'>\The [src] loudly clunks as something large enters it's intake!</span>")
|
||||
H.active = FALSE
|
||||
H.vent_gas(get_turf(src))
|
||||
if(clogged)
|
||||
@@ -193,12 +229,14 @@
|
||||
break
|
||||
if(!pumping)
|
||||
pumping = TRUE
|
||||
playsound(src, 'GainStation13/sound/rakshasa/Corrosion3.ogg', 50, 1)
|
||||
update_icon()
|
||||
spawn(8)
|
||||
pumping = FALSE
|
||||
update_icon()
|
||||
spawn(9) //Wait for the animation to finish
|
||||
|
||||
|
||||
if(!output_dest || !attached) //We either arnt, or got disconnected by time stuff was about to splort out!
|
||||
spew(this_pump, TRUE)
|
||||
if(LAZYLEN(pump_stuff) && repeat)
|
||||
@@ -251,13 +289,13 @@
|
||||
if(is_type_in_list(I, item_vore_blacklist))
|
||||
inedible += I
|
||||
continue
|
||||
/*
|
||||
|
||||
if(isliving(AM))
|
||||
var/mob/living/cutie = AM
|
||||
if(cutie.devourable != TRUE) //Do not eat this QT...
|
||||
if(!(cutie.vore_flags & DEVOURABLE)) //Do not eat this QT...
|
||||
inedible += cutie
|
||||
continue
|
||||
*/
|
||||
|
||||
|
||||
fed_something = TRUE
|
||||
AM.forceMove(output_dest)
|
||||
@@ -267,7 +305,7 @@
|
||||
// After everything, if we've pushed something, play the "rubber tube noise"
|
||||
// It's technically an evil digestion sound from a snowflake shadekin, but it makes for a good tube sound. Thanks Verkie!
|
||||
if(fed_something)
|
||||
playsound(attached.loc, 'v_CHOMPstation2/sound/rakshasa/Corrosion3.ogg', rand(10,50), 1)
|
||||
playsound(attached.loc, 'GainStation13/sound/rakshasa/Corrosion3.ogg', rand(50,70), 1)
|
||||
|
||||
if(LAZYLEN(pump_stuff) && repeat)
|
||||
pump()
|
||||
@@ -277,7 +315,7 @@
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/expel_holder(obj/structure/disposalholder/H, playsound=FALSE)
|
||||
if(playsound)
|
||||
playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0)
|
||||
playsound(src, 'sound/machines/hiss.ogg', 25, 0, 0)
|
||||
|
||||
if(!H)
|
||||
return
|
||||
@@ -290,10 +328,7 @@
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/attack_hand(mob/user)
|
||||
. = ..()
|
||||
if(attached)
|
||||
attached.visible_message("<span class='warning'>[attached] is detached from [src].</span>")
|
||||
attached = null
|
||||
output_dest = null
|
||||
update_icon()
|
||||
detach_tube()
|
||||
return
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/attackby(obj/item/I, mob/living/user, params)
|
||||
@@ -340,18 +375,32 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(TOOL_CROWBAR)
|
||||
if(!clogged)
|
||||
to_chat(user, "<span class='notice'>\The [src] doesnt seem to be clogged at the moment...")
|
||||
return TRUE
|
||||
|
||||
user.visible_message("<span class='italics'>[user] starts to pry open the maintenance hatch of \the [src], attempting to unclog it...</span>")
|
||||
if(do_after(user, 30, TRUE, src))
|
||||
user.visible_message("<span class='notice'>[user] unclogs \the [src]!</span>")
|
||||
unclog()
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/crowbar_act(mob/living/user, obj/item/I)
|
||||
if(!clogged)
|
||||
to_chat(user, "<span class='notice'>\The [src] doesnt seem to be clogged at the moment...")
|
||||
return TRUE
|
||||
user.visible_message("<span class='italics'>[user] starts to pry open the maintenance hatch of \the [src], attempting to unclog it...</span>")
|
||||
I.play_tool_sound(src, 100)
|
||||
if(I.use_tool(src, user, 30))
|
||||
user.visible_message("<span class='notice'>[user] pries open the maintenance hatch on \the [src], unclogging it!</span>")
|
||||
unclog()
|
||||
return TRUE
|
||||
|
||||
|
||||
// Plungers are a thing now, why not give them the ability to unclog?
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/plunger_act(obj/item/plunger/P, mob/living/user, reinforced)
|
||||
if(!clogged)
|
||||
to_chat(user, "<span class='notice'>\The [src] doesnt seem to be clogged at the moment...")
|
||||
return TRUE
|
||||
user.visible_message("<span class='italics'>[user] starts to furiously plunge the tube of \the [src], attempting to unclog it...</span>")
|
||||
//I.play_tool_sound(src, 100) I dont think plungers have a use sound...
|
||||
if(P.use_tool(src, user, 20)) //Plungers are slightly shorter because funny niche use
|
||||
user.visible_message("<span class='notice'>[user] pries open the maintenance hatch on \the [src], unclogging it!</span>")
|
||||
unclog()
|
||||
return
|
||||
|
||||
/obj/structure/disposaloutlet/industrial_feeding_tube/welder_act(mob/living/user, obj/item/I)
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
@@ -1,6 +1,28 @@
|
||||
/datum/material/calorite
|
||||
name = "calorite"
|
||||
sheet_type = /obj/item/stack/sheet/mineral/calorite
|
||||
color = list(340/255, 150/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
strength_modifier = 1.5
|
||||
categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
|
||||
beauty_modifier = 0.05
|
||||
armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.15, ENERGY = 1.15, BOMB = 1, BIO = 1, RAD = 1, FIRE = 0.7, ACID = 1.1) // Same armor as gold.
|
||||
|
||||
/datum/material/calorite/on_applied_obj(obj/source, amount, material_flags)
|
||||
. = ..()
|
||||
if(!(material_flags & MATERIAL_AFFECT_STATISTICS))
|
||||
return
|
||||
|
||||
var/obj/source_obj = source
|
||||
source_obj.damtype = FAT
|
||||
|
||||
/datum/material/calorite/on_removed_obj(obj/source, material_flags)
|
||||
if(!(material_flags & MATERIAL_AFFECT_STATISTICS))
|
||||
return ..()
|
||||
|
||||
var/obj/source_obj = source
|
||||
source_obj.damtype = initial(source_obj.damtype)
|
||||
return ..()
|
||||
|
||||
|
||||
/turf/closed/mineral/calorite //GS13
|
||||
mineralType = /obj/item/stack/ore/calorite
|
||||
@@ -33,13 +55,14 @@
|
||||
|
||||
GLOBAL_LIST_INIT(calorite_recipes, list ( \
|
||||
new/datum/stack_recipe("Calorite tile", /obj/item/stack/tile/mineral/calorite, 1, 4, 20), \
|
||||
new/datum/stack_recipe("Fatty statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1),
|
||||
new/datum/stack_recipe("Calorite doors", /obj/structure/mineral_door/calorite, 5, one_per_turf = 1, on_floor = 1),
|
||||
new/datum/stack_recipe("Calorite Ingots", /obj/item/ingot/calorite, time = 30), \
|
||||
new/datum/stack_recipe("Fatty statue", /obj/structure/statue/calorite/fatty, 5, one_per_turf = 1, on_floor = 1),\
|
||||
new/datum/stack_recipe("Calorite doors", /obj/structure/mineral_door/calorite, 5, one_per_turf = 1, on_floor = 1),\
|
||||
))
|
||||
|
||||
/obj/item/stack/sheet/mineral/calorite/Initialize(mapload, new_amount, merge = TRUE)
|
||||
recipes = GLOB.calorite_recipes
|
||||
/obj/item/stack/sheet/mineral/calorite/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.calorite_recipes
|
||||
|
||||
|
||||
/obj/item/stack/tile/mineral/calorite //GS13
|
||||
@@ -246,3 +269,5 @@ GLOBAL_LIST_INIT(calorite_recipes, list ( \
|
||||
fatten()
|
||||
. = ..()
|
||||
|
||||
/obj/item/ingot/calorite
|
||||
custom_materials = list(/datum/material/calorite=1500)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/obj/item/reagent_containers/food/snacks/proc/handle_tf(mob/living/eater)
|
||||
var/datum/component/transformation_item/transformation_component = GetComponent(/datum/component/transformation_item)
|
||||
if(!istype(transformation_component) || transformation_component.transfer_to_vore || (transformation_component.transformed_mob != src))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/food_mob = transformation_component.transformed_mob
|
||||
if(!istype(food_mob) || !(food_mob?.vore_flags & DEVOURABLE) || (eater?.vore_flags & NO_VORE) || !istype(eater.vore_selected))
|
||||
return FALSE
|
||||
|
||||
qdel(transformation_component)
|
||||
var/obj/belly/vore_belly = eater.vore_selected
|
||||
if(!vore_belly.nom_mob(food_mob,eater))
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/mob/living/proc/get_tf_component()
|
||||
var/obj/item/item_loc = loc
|
||||
if(!istype(item_loc))
|
||||
return FALSE
|
||||
|
||||
var/datum/component/transformation_item/transformation_component = item_loc.GetComponent(/datum/component/transformation_item)
|
||||
if(!istype(transformation_component) || (transformation_component.transformed_mob != src))
|
||||
return FALSE
|
||||
|
||||
return transformation_component
|
||||
|
||||
/mob/living/proc/handle_transformation_ooc_escape()
|
||||
var/datum/component/transformation_item/transformation_component = get_tf_component()
|
||||
if(!transformation_component)
|
||||
return FALSE
|
||||
|
||||
qdel(transformation_component)
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/attempt_to_escape_tf()
|
||||
var/datum/component/transformation_item/transformation_component = get_tf_component()
|
||||
if(!transformation_component)
|
||||
return FALSE
|
||||
|
||||
if(!transformation_component.able_to_struggle_out)
|
||||
to_chat(src, span_warning("You are unable to struggle out."))
|
||||
return FALSE
|
||||
|
||||
to_chat(src, span_notice("You attempt to escape your transformation."))
|
||||
if(!do_after(src, 60 SECONDS))
|
||||
to_chat(src, span_warning("You fail to escape."))
|
||||
return FALSE
|
||||
|
||||
qdel(transformation_component)
|
||||
return TRUE
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
/datum/component/transformation_item
|
||||
/// What mob do we currently have stuck in us?
|
||||
var/mob/living/transformed_mob
|
||||
/// Do we release the mob when the parent item is destroyed?
|
||||
var/release_mob = TRUE
|
||||
/// Is the mob able to speak as the item?
|
||||
var/able_to_speak = FALSE
|
||||
/// Is the mob able to emote as the item?
|
||||
var/able_to_emote = FALSE
|
||||
/// Does the object scale with the sprite size of the mob inside of it?
|
||||
var/scale_object = TRUE
|
||||
/// Show custom description.
|
||||
var/show_that_object_is_tf = TRUE
|
||||
/// Stored real name
|
||||
var/stored_real_name = ""
|
||||
/// Stored name
|
||||
var/stored_name = ""
|
||||
/// Is the component able to be removed?
|
||||
var/stuck_on_item = FALSE
|
||||
/// Is the person able to struggle out?
|
||||
var/able_to_struggle_out = TRUE
|
||||
/// Transfer to vore belly when eaten
|
||||
var/transfer_to_vore = TRUE
|
||||
|
||||
/datum/component/transformation_item/Initialize()
|
||||
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine))
|
||||
RegisterSignal(parent, COMSIG_PARENT_QDELETING, PROC_REF(remove_mob))
|
||||
|
||||
/datum/component/transformation_item/Destroy(force, silent)
|
||||
remove_mob()
|
||||
return ..()
|
||||
|
||||
/datum/component/transformation_item/proc/examine(datum/source, mob/user, list/examine_list)
|
||||
if(show_that_object_is_tf)
|
||||
examine_list += span_notice("Something about [source] seems lifelike.")
|
||||
|
||||
/datum/component/transformation_item/proc/register_mob(mob/living/mob_to_register)
|
||||
var/atom/parent_atom = parent
|
||||
if(!istype(mob_to_register))
|
||||
return FALSE
|
||||
|
||||
transformed_mob = mob_to_register
|
||||
stored_real_name = mob_to_register.real_name
|
||||
stored_name = mob_to_register.name
|
||||
|
||||
// This is really dumb, but if it works, then maybe it is not dumb.
|
||||
mob_to_register.real_name = parent_atom.name
|
||||
mob_to_register.name = parent_atom.name
|
||||
|
||||
ADD_TRAIT(mob_to_register, TRAIT_TRANSFORMED, src)
|
||||
ADD_TRAIT(mob_to_register, TRAIT_RESISTCOLD, src)
|
||||
ADD_TRAIT(mob_to_register, TRAIT_RESISTLOWPRESSURE, src)
|
||||
ADD_TRAIT(mob_to_register, TRAIT_LOWPRESSURECOOLING, src)
|
||||
|
||||
if(!able_to_speak)
|
||||
ADD_TRAIT(mob_to_register, TRAIT_MUTE, src)
|
||||
|
||||
if(!able_to_emote)
|
||||
ADD_TRAIT(mob_to_register, TRAIT_EMOTEMUTE, src)
|
||||
|
||||
// need to stop them from using radio headsets.
|
||||
var/mob/living/carbon/human/human_mob = mob_to_register
|
||||
if(istype(human_mob))
|
||||
ADD_TRAIT(mob_to_register, TRAIT_PARALYSIS_L_ARM, src)
|
||||
ADD_TRAIT(mob_to_register, TRAIT_PARALYSIS_R_ARM, src)
|
||||
human_mob.update_disabled_bodyparts()
|
||||
|
||||
mob_to_register.forceMove(parent_atom)
|
||||
if(scale_object)
|
||||
var/target_size = mob_to_register.size_multiplier
|
||||
var/matrix/new_matrix = new
|
||||
|
||||
new_matrix.Scale(target_size)
|
||||
new_matrix.Translate(0,16 * (target_size-1))
|
||||
parent_atom.transform = new_matrix
|
||||
|
||||
/datum/component/transformation_item/proc/remove_mob()
|
||||
if(!release_mob || !transformed_mob)
|
||||
return FALSE
|
||||
|
||||
transformed_mob.real_name = stored_real_name
|
||||
transformed_mob.name = stored_name
|
||||
|
||||
if(!able_to_speak)
|
||||
REMOVE_TRAIT(transformed_mob, TRAIT_MUTE, src)
|
||||
|
||||
if(!able_to_emote)
|
||||
REMOVE_TRAIT(transformed_mob, TRAIT_EMOTEMUTE, src)
|
||||
|
||||
REMOVE_TRAIT(transformed_mob, TRAIT_TRANSFORMED, src)
|
||||
REMOVE_TRAIT(transformed_mob, TRAIT_RESISTCOLD, src)
|
||||
REMOVE_TRAIT(transformed_mob, TRAIT_RESISTLOWPRESSURE, src)
|
||||
REMOVE_TRAIT(transformed_mob, TRAIT_LOWPRESSURECOOLING, src)
|
||||
|
||||
var/mob/living/carbon/human/human_mob = transformed_mob
|
||||
if(istype(human_mob))
|
||||
REMOVE_TRAIT(human_mob, TRAIT_PARALYSIS_L_ARM, src)
|
||||
REMOVE_TRAIT(human_mob, TRAIT_PARALYSIS_R_ARM, src)
|
||||
human_mob.update_disabled_bodyparts()
|
||||
|
||||
var/atom/parent_atom = parent
|
||||
transformed_mob.forceMove(parent_atom.loc)
|
||||
if(scale_object)
|
||||
parent_atom.transform = null
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
/obj/item/transformation_item
|
||||
name = "Handheld Transmogrifier"
|
||||
desc = "a handheld device that is mysteriously able to turn people into objects. It can also be used to remove said transformations."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "gizmo_scan"
|
||||
item_state = "silencer"
|
||||
lefthand_file = 'icons/mob/inhands/antag/abductor_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi'
|
||||
|
||||
/// What item are we wanting to TF people into?
|
||||
var/obj/item/target_item
|
||||
/// Do we want our transformed person to be able to speak as the object?
|
||||
var/able_to_speak = TRUE
|
||||
/// Do we want our transformed person to be able to emote as the object?
|
||||
var/able_to_emote = TRUE
|
||||
/// Do we want the item to scale?
|
||||
var/scale_object = FALSE
|
||||
/// Do we want to show that the object was once a person?
|
||||
var/show_that_object_is_tf = TRUE
|
||||
/// Is our captured person able to struggle out?
|
||||
var/able_to_struggle_out = TRUE
|
||||
/// Do we have any items we can't turn people into?
|
||||
var/list/object_blacklist = list()
|
||||
|
||||
/obj/item/transformation_item/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
. = ..()
|
||||
var/obj/item/attacked_item = target
|
||||
if(!proximity_flag || !istype(attacked_item))
|
||||
return FALSE
|
||||
|
||||
var/datum/component/transformation_item/transformation_component = attacked_item.GetComponent(/datum/component/transformation_item)
|
||||
if(istype(transformation_component) && !transformation_component.stuck_on_item)
|
||||
qdel(transformation_component)
|
||||
to_chat(user, span_notice("You dispel the current transformation for [attacked_item]."))
|
||||
return
|
||||
|
||||
target_item = attacked_item
|
||||
to_chat(user, span_notice("The next time someone is transformed, they will be transformed into [attacked_item]."))
|
||||
return
|
||||
|
||||
/obj/item/transformation_item/attack(mob/living/M, mob/living/user)
|
||||
if(!target_item)
|
||||
to_chat(user, span_warning("You need to have an item linked to transform someone."))
|
||||
return
|
||||
|
||||
perform_transfomration(M, user)
|
||||
return
|
||||
|
||||
/obj/item/transformation_item/proc/perform_transfomration(mob/living/target_mob, mob/living/user)
|
||||
if(!istype(target_mob))
|
||||
return FALSE
|
||||
|
||||
if(!target_item.Adjacent(target_mob))
|
||||
to_chat(user, span_warning("The [target_item] isn't close enough to [target_mob]"))
|
||||
return FALSE
|
||||
|
||||
if(target_item in target_mob.get_contents())
|
||||
return FALSE // Don't TF someone into something they are holding.
|
||||
|
||||
if(!target_mob?.client?.prefs?.object_tf)
|
||||
to_chat(user, span_warning("It seems like [target_mob] does not want to be transformed."))
|
||||
return FALSE
|
||||
|
||||
var/datum/component/transformation_item/transformation_component = target_item.AddComponent(/datum/component/transformation_item)
|
||||
// Make sure that we apply our variables before we actually put the mob in the item.
|
||||
transformation_component.able_to_speak = able_to_speak
|
||||
transformation_component.able_to_emote = able_to_emote
|
||||
transformation_component.scale_object = scale_object
|
||||
transformation_component.show_that_object_is_tf = show_that_object_is_tf
|
||||
transformation_component.able_to_struggle_out = able_to_struggle_out
|
||||
|
||||
transformation_component.register_mob(target_mob)
|
||||
target_item = null
|
||||
return TRUE
|
||||
|
||||
/obj/item/transformation_item/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["able_to_speak"] = able_to_speak
|
||||
data["able_to_emote"] = able_to_emote
|
||||
data["scale_object"] = scale_object
|
||||
data["show_that_object_is_tf"] = show_that_object_is_tf
|
||||
data["linked_item_name"] = target_item
|
||||
data["able_to_struggle_out"] = able_to_struggle_out
|
||||
|
||||
return data
|
||||
|
||||
/obj/item/transformation_item/ui_act(action, params)
|
||||
if(..())
|
||||
return
|
||||
|
||||
switch(action)
|
||||
if("set_speaking")
|
||||
able_to_speak = !able_to_speak
|
||||
. = TRUE
|
||||
|
||||
if("set_emote")
|
||||
able_to_emote = !able_to_emote
|
||||
. = TRUE
|
||||
|
||||
if("set_scale")
|
||||
scale_object = !scale_object
|
||||
. = TRUE
|
||||
|
||||
if("toggle_struggle")
|
||||
able_to_struggle_out = !able_to_struggle_out
|
||||
. = TRUE
|
||||
|
||||
if("set_show_desc")
|
||||
show_that_object_is_tf = !show_that_object_is_tf
|
||||
. = TRUE
|
||||
|
||||
/obj/item/transformation_item/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "TransformTool", name)
|
||||
ui.open()
|
||||
@@ -0,0 +1,17 @@
|
||||
//Roses dont exist here... Sad
|
||||
|
||||
// /datum/gear/head/rose
|
||||
// name = "Rose"
|
||||
// path = /obj/item/grown/rose
|
||||
|
||||
/datum/gear/head/sunflower
|
||||
name = "Sunflower"
|
||||
path = /obj/item/grown/sunflower
|
||||
|
||||
/datum/gear/head/poppy
|
||||
name = "Poppy"
|
||||
path = /obj/item/reagent_containers/food/snacks/grown/poppy
|
||||
|
||||
/datum/gear/head/harebell
|
||||
name = "Harebell"
|
||||
path = /obj/item/reagent_containers/food/snacks/grown/harebell
|
||||
@@ -0,0 +1,3 @@
|
||||
/datum/gear/uniform/modularjumpsuit
|
||||
name = "Modular Jumpsuit (gray)"
|
||||
path = /obj/item/clothing/under/color/grey/modular
|
||||
@@ -31,6 +31,8 @@
|
||||
var/fatness_vulnerable = FALSE
|
||||
/// Similar to fatness_vulnerable, but with more extreme effects such as transformation/hypno.
|
||||
var/extreme_fatness_vulnerable = FALSE
|
||||
/// Can the person be transformed into an object?
|
||||
var/object_tf
|
||||
|
||||
// Helplessness, a set of prefs that make things extra tough at higher weights. If set to FALSE, they won't do anything.
|
||||
///What fatness level disables movement?
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/datum/reagent/consumable
|
||||
var/use_gs_icon = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype)
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
if(reagents.reagent_list.len)
|
||||
var/datum/reagent/R = reagents.get_master_reagent()
|
||||
if(istype(R, /datum/reagent/consumable))
|
||||
var/datum/reagent/consumable/C = R
|
||||
if(C.use_gs_icon == TRUE)
|
||||
icon = 'GainStation13/icons/obj/drinks.dmi'
|
||||
|
||||
..()
|
||||
@@ -22,7 +22,7 @@
|
||||
if(!using)
|
||||
using = TRUE
|
||||
to_chat(user, "<span>You do a rep with the [src]. YEEEEEAH!!!</span>")
|
||||
if(do_after(usr, CLICK_CD_RESIST-reps, 0, usr, 1))
|
||||
if(do_after(usr, CLICK_CD_RESIST-reps, usr))
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/U = user
|
||||
U.adjust_fatness(-10, FATTENING_TYPE_WEIGHT_LOSS)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/obj/item/seeds/berry/blueberry
|
||||
name = "pack of blueberry seeds"
|
||||
desc = "These seeds grow into blueberry bushes."
|
||||
icon_state = "seed-blueberry"
|
||||
species = "blueberry"
|
||||
plantname = "Blueberry Bush"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/berries/blueberry
|
||||
@@ -11,11 +10,18 @@
|
||||
yield = 1
|
||||
production = 10
|
||||
rarity = 30
|
||||
icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed-blueberry"
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi'
|
||||
icon_grow = "berry-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "berry-dead" // Same for the dead icon
|
||||
icon_harvest = "blueberry-harvest"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries/blueberry
|
||||
seed = /obj/item/seeds/berry/blueberry
|
||||
name = "bunch of blueberries"
|
||||
desc = "Taste so good, you might turn blue!"
|
||||
icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "blueberrypile"
|
||||
filling_color = "#5d00c7"
|
||||
foodtype = FRUIT
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
/obj/item/seeds/lipoplant
|
||||
name = "pack of adipolipus"
|
||||
desc = "These seeds grow into a foreign plant."
|
||||
icon = 'GainStation13/icons/obj/hydroponics/lipo_seeds.dmi'
|
||||
icon_state = "lipo_seed"
|
||||
species = "adipolipus"
|
||||
plantname = "Adipolipus"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/lipofruit
|
||||
@@ -11,17 +9,19 @@
|
||||
maturation = 8
|
||||
production = 5
|
||||
yield = 1
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/lipo_growing.dmi'
|
||||
reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05)
|
||||
icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed-lipo"
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi'
|
||||
icon_grow = "lipo-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "lipo-dead" // Same for the dead icon
|
||||
icon_harvest = "lipo-harvest"
|
||||
reagents_add = list(/datum/reagent/consumable/lipoifier = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/lipofruit
|
||||
seed = /obj/item/seeds/lipoplant
|
||||
name = "lipofruit"
|
||||
desc = "A foreign fruit with an hard shell. Perhaps something sharp could open it?"
|
||||
icon = 'GainStation13/icons/obj/hydroponics/lipo_harvest.dmi'
|
||||
icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "lipo_nut"
|
||||
item_state = "lipo_nut"
|
||||
possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
|
||||
|
||||
@@ -8,22 +8,26 @@
|
||||
/obj/item/seeds/cannabis/munchies
|
||||
name = "pack of munchies weed seeds"
|
||||
desc = "These seeds grow into munchies weed."
|
||||
icon_state = "seed-munchies"
|
||||
species = "munchycannabis"
|
||||
plantname = "Munchies Weed"
|
||||
icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "munchycannabis-dead" // Same for the dead icon
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/munchies
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/orange)
|
||||
mutatelist = list()
|
||||
reagents_add = list(/datum/reagent/drug/space_drugs = 0.05,
|
||||
/datum/reagent/drug/munchies = 0.10)
|
||||
rarity = 69
|
||||
icon = 'GainStation13/icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed-munchies"
|
||||
growing_icon = 'GainStation13/icons/obj/hydroponics/growing.dmi'
|
||||
icon_grow = "munchycannabis-grow" // Uses one growth icons set for all the subtypes
|
||||
icon_dead = "munchycannabis-dead" // Same for the dead icon
|
||||
icon_harvest = "munchycannabis-harvest"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cannabis/munchies
|
||||
seed = /obj/item/seeds/cannabis/munchies
|
||||
name = "munchies cannabis leaf"
|
||||
desc = "You feel hungry just looking at it."
|
||||
icon = 'GainStation13/icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "munchycannabis"
|
||||
wine_power = 90
|
||||
|
||||
|
||||
@@ -1 +1,11 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
/datum/sprite_accessory/hair/elize
|
||||
name = "Elize"
|
||||
icon = 'GainStation13/icons/mob/human_face.dmi'
|
||||
icon_state = "hair_elize"
|
||||
|
||||
/datum/sprite_accessory/hair/lem
|
||||
name = "Lem"
|
||||
icon = 'GainStation13/icons/mob/human_face.dmi'
|
||||
icon_state = "hair_lem"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon_state = "gator"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
hide_legs = FALSE
|
||||
|
||||
/datum/sprite_accessory/taur/fatdrake //ported from Vorestation
|
||||
name = "Fat Drake"
|
||||
@@ -46,3 +47,17 @@
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "bigleggy"
|
||||
color_src = MUTCOLORS
|
||||
|
||||
/datum/sprite_accessory/taur/fatnaga //ported from Vorestation
|
||||
name = "Fat Naga"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "fatnaga"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/taur/altnaga //ported from Vorestation
|
||||
name = "Alt Naga"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_taur.dmi'
|
||||
icon_state = "altnaga"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
@@ -6,3 +6,50 @@
|
||||
icon_state = "hjackal"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/synthlizproto1
|
||||
name = "Synthetic Lizard - Prototype Visor 1"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "synthlizproto1"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/synthlizproto2
|
||||
name = "Synthetic Lizard - Prototype Visor 2"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "synthlizproto2"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/gator
|
||||
name = "Gator"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_snouts.dmi'
|
||||
icon_state = "gator"
|
||||
color_src = MATRIXED
|
||||
|
||||
//eastern dragon
|
||||
/datum/sprite_accessory/snouts/mam_snouts/easterndragon
|
||||
name = "Eastern Dragon"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "easterndw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/easterndragon/no_whiskers
|
||||
name = "Eastern Dragon - No Whiskers"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "easterndnw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/feasterndragon
|
||||
name = "Eastern Dragon (Top)"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "feasterndw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/feasterndragon/no_whiskers
|
||||
name = "Eastern Dragon - No Whiskers (Top)"
|
||||
icon = 'GainStation13/icons/mob/markings/char_snouts.dmi'
|
||||
icon_state = "feasterndnw"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
@@ -1 +1,92 @@
|
||||
//GS13 - markings, ported or our own (preferably mark where you took them from)
|
||||
|
||||
//snaketail
|
||||
/datum/sprite_accessory/tails/lizard/snaketail //GS13 - ...6 seperate paths for one tail. Wew.
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails_animated/lizard/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails/human/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails_animated/human/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails/mam_tails/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
/datum/sprite_accessory/tails_animated/mam_tails_animated/snaketail
|
||||
name = "Snaketail"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "snaketail"
|
||||
color_src = MATRIXED
|
||||
matrixed_sections = MATRIX_RED_GREEN
|
||||
|
||||
//spaded tail
|
||||
/datum/sprite_accessory/tails/mam_tails/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/mam_tails_animated/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/tails/human/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/human/spade
|
||||
name = "Demon Spade"
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
icon_state = "spade"
|
||||
|
||||
//deer tail
|
||||
|
||||
|
||||
/datum/sprite_accessory/tails/human/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails_animated/human/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails/mam_tails/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails_animated/mam_tails_animated/deer
|
||||
name = "Deer"
|
||||
icon_state = "deer"
|
||||
color_src = MATRIXED
|
||||
icon = 'GainStation13/icons/mob/markings/mam_tails.dmi'
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
layer_index = BELLY_LAYER_INDEX
|
||||
|
||||
/obj/item/organ/genital/belly/modify_size(modifier, min = BELLY_SIZE_DEF, max = BELLY_SIZE_MAX)
|
||||
var/new_value = clamp(size_cached + modifier, min, max)
|
||||
var/new_value = clamp(size_cached + modifier, starting_size, max)
|
||||
if(new_value == size_cached)
|
||||
return
|
||||
prev_size = size_cached
|
||||
@@ -40,12 +40,13 @@
|
||||
switch(owner.fullness)
|
||||
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG)
|
||||
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi' //We use round belly to represent stuffedness
|
||||
icon_state = "belly_round_[size]"
|
||||
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ)
|
||||
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
|
||||
icon_state = "belly_[icon_shape_state]_[size+1]"
|
||||
icon_state = "belly_round_[size+1]"
|
||||
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)
|
||||
icon = 'hyperstation/icons/obj/genitals/belly_round.dmi'
|
||||
icon_state = "belly_[icon_shape_state]_[size+2]"
|
||||
icon_state = "belly_round_[size+2]"
|
||||
|
||||
if(owner)
|
||||
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
|
||||
@@ -64,6 +65,7 @@
|
||||
else
|
||||
color = "#[D.features["belly_color"]]"
|
||||
size = D.features["belly_size"]
|
||||
starting_size = D.features["belly_size"]
|
||||
shape = D.features["belly_shape"]
|
||||
inflatable = D.features["inflatable_belly"]
|
||||
toggle_visibility(D.features["belly_visibility"], FALSE)
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
pH = 4.5
|
||||
value = 0.1
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/glyphid_slammer
|
||||
name = "Glyphid slammer"
|
||||
@@ -26,3 +27,4 @@
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
pH = 4.5
|
||||
value = 0.1
|
||||
use_gs_icon = TRUE
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
glass_name = "belly bloats"
|
||||
glass_desc = "The perfect mix to be big and merry with."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/belly_bloats/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
@@ -30,6 +31,7 @@
|
||||
glass_name = "blobby mary"
|
||||
glass_desc = "For the morbidly obese ladies and gentlemen."
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/blobby_mary/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
@@ -49,6 +51,7 @@
|
||||
glass_name = "beltbuster mead"
|
||||
glass_desc = "The ambrosia of the blubbery gods."
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/ethanol/beltbuster_mead/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
@@ -67,6 +70,7 @@
|
||||
glass_name = "heavy cafe"
|
||||
glass_desc = "To enjoy slow mornings with."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/heavy_cafe/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -92,6 +96,7 @@
|
||||
glass_name = "fruits tea"
|
||||
glass_desc = "Goes down really easy and stays there for a long time."
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/fruits_tea/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
@@ -118,6 +123,7 @@
|
||||
glass_name = "snakebite"
|
||||
glass_desc = "Won't hurt like a real bite, but you'll still regert drinking this."
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
use_gs_icon = TRUE
|
||||
|
||||
/datum/reagent/consumable/snakebite/on_mob_life(mob/living/carbon/M)
|
||||
if(M && M?.client?.prefs.weight_gain_food) // GS13
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
// GS13 subtle glitters
|
||||
/datum/reagent/glitter/pink_subtle
|
||||
name = "lesser pink glitter"
|
||||
description = "pink sparkles that get everywhere. these ones seem lower density than normal."
|
||||
color = "#ff8080" //A light pink color
|
||||
glitter_type = /obj/effect/decal/cleanable/glitter/pink_subtle
|
||||
|
||||
/datum/reagent/glitter/white_subtle
|
||||
name = "lesser white glitter"
|
||||
description = "white sparkles that get everywhere. these ones seem lower density than normal."
|
||||
glitter_type = /obj/effect/decal/cleanable/glitter/white_subtle
|
||||
|
||||
/datum/reagent/glitter/blue_subtle
|
||||
name = "lesser blue glitter"
|
||||
description = "blue sparkles that get everywhere. these ones seem lower density than normal."
|
||||
color = "#4040FF" //A blueish color
|
||||
glitter_type = /obj/effect/decal/cleanable/glitter/blue_subtle
|
||||
@@ -0,0 +1,20 @@
|
||||
///////////////////////////////// SUBTLE GLITTERS ////////////////////////////
|
||||
|
||||
/datum/chemical_reaction/lesser_pink
|
||||
name = "pink glitter dilution"
|
||||
id = "lesser_pink_glitter"
|
||||
results = list(/datum/reagent/glitter/pink_subtle = 2)
|
||||
required_reagents = list(/datum/reagent/glitter/pink = 1, /datum/reagent/space_cleaner = 1) //You clean some of it away, I guess?
|
||||
|
||||
/datum/chemical_reaction/lesser_white
|
||||
name = "white glitter dilution"
|
||||
id = "lesser_white_glitter"
|
||||
results = list(/datum/reagent/glitter/white_subtle = 2)
|
||||
required_reagents = list(/datum/reagent/glitter/white = 1, /datum/reagent/space_cleaner = 1)
|
||||
|
||||
/datum/chemical_reaction/lesser_blue
|
||||
name = "pink glitter dilution"
|
||||
id = "lesser_blue_glitter"
|
||||
results = list(/datum/reagent/glitter/blue_subtle = 2)
|
||||
required_reagents = list(/datum/reagent/glitter/blue = 1, /datum/reagent/space_cleaner = 1)
|
||||
//Im not going to do the recolor recipes for the subtle glitters. Unless that's really wanted (except you cant even make glitter to start with so the recipes are already super niche to begin with.)
|
||||
@@ -0,0 +1,26 @@
|
||||
/obj/item/borg/upgrade/feeding_arm
|
||||
name = "food gripper module"
|
||||
desc = "An extra module that allows cyborgs to grab food and drinks, and feed them to people."
|
||||
icon_state = "cyborg_upgrade3"
|
||||
|
||||
/obj/item/borg/upgrade/feeding_arm/action(mob/living/silicon/robot/R, user = usr)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/obj/item/gripper/food/S = new(R.module)
|
||||
R.module.basic_modules += S
|
||||
R.module.add_module(S, FALSE, TRUE)
|
||||
|
||||
/obj/item/borg/upgrade/feeding_arm/deactivate(mob/living/silicon/robot/R, user = usr)
|
||||
. = ..()
|
||||
if (.)
|
||||
var/obj/item/gripper/food/S = locate() in R.module
|
||||
R.module.remove_module(S, TRUE)
|
||||
|
||||
/obj/item/gripper/food
|
||||
name = "food gripper"
|
||||
desc = "A simple grasping tool for interacting with various food and drink related items."
|
||||
item_flags = NOBLUDGEON
|
||||
|
||||
can_hold = list(
|
||||
/obj/item/reagent_containers,
|
||||
)
|
||||
@@ -129,6 +129,15 @@
|
||||
construction_time = 100
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_foodgrip
|
||||
name = "Cyborg Upgrade (Food Gripper)"
|
||||
id = "borg_upgrade_foodgrip"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/feeding_arm
|
||||
materials = list(/datum/material/iron = 8000, /datum/material/glass = 6000)
|
||||
construction_time = 100
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
//todo: make a seperate file for extra borg modules
|
||||
|
||||
/obj/item/borg/upgrade/cookiesynth
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
/turf/open/floor/mineral/titanium/old
|
||||
name = "tiled floor"
|
||||
icon = 'GainStation13/icons/turf/floors.dmi'
|
||||
icon_state = "titanium_old"
|
||||
floor_tile = /obj/item/stack/tile/mineral/titanium
|
||||
broken_states = list("titanium_dam1_old","titanium_dam2_old","titanium_dam3_old","titanium_dam4_old","titanium_dam5_old")
|
||||
/turf/open/floor/mineral/titanium/old/airless
|
||||
initial_gas_mix = "TEMP=2.7"
|
||||
|
||||
/turf/open/floor/mineral/titanium/old/yellow
|
||||
icon_state = "titanium_yellow_old"
|
||||
/turf/open/floor/mineral/titanium/old/yellow/airless
|
||||
initial_gas_mix = "TEMP=2.7"
|
||||
|
||||
/turf/open/floor/mineral/titanium/old/blue
|
||||
icon_state = "titanium_blue_old"
|
||||
/turf/open/floor/mineral/titanium/old/blue/airless
|
||||
initial_gas_mix = "TEMP=2.7"
|
||||
|
||||
/turf/open/floor/mineral/titanium/old/white
|
||||
icon_state = "titanium_white_old"
|
||||
/turf/open/floor/mineral/titanium/old/white/airless
|
||||
initial_gas_mix = "TEMP=2.7"
|
||||
|
||||
/turf/open/floor/mineral/titanium/old/purple
|
||||
icon_state = "titanium_purple_old"
|
||||
/turf/open/floor/mineral/titanium/purple/airless
|
||||
initial_gas_mix = "TEMP=2.7"
|
||||
@@ -0,0 +1,165 @@
|
||||
/////////////////////
|
||||
// Tile reskinning //
|
||||
/////////////////////
|
||||
// Q: What is this?
|
||||
// A: A simple function to allow you to change what tiles you place with a stack of tiles.
|
||||
// Q: Why do it this way?
|
||||
// A: This allows players more freedom to do beautiful-looking builds. Having five types of titanium tile would be clunky as heck.
|
||||
// Q: Great! Can I use this for all floors?
|
||||
// A: Unfortunately, this does not work on subtypes of plasteel and instead we must change the icon_state of these turfs instead, as the icon_regular_floor var that "saves" what type of floor a plasteel subtype turf was so once repaired...
|
||||
// ... it'll go back to the floor it was instead of grey (medical floors turn white even after crowbaring the tile and putting it back). This stops changing turf_type from working.
|
||||
|
||||
/obj/item/stack/tile/mineral/titanium/attack_self(mob/user)
|
||||
var/static/list/choices = list(
|
||||
"Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle"),
|
||||
"Yellow Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_yellow"),
|
||||
"Blue Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_blue"),
|
||||
"White Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_white"),
|
||||
"Purple Titanium" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_purple"),
|
||||
"Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old"),
|
||||
"Yellow Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_yellow"),
|
||||
"Blue Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_blue"),
|
||||
"White Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_white"),
|
||||
"Purple Titanium Tile" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shuttle_old_purple"),
|
||||
)
|
||||
var/choice = show_radial_menu(user, src, choices, radius = 48, require_near = TRUE)
|
||||
switch(choice)
|
||||
if("Titanium")
|
||||
turf_type = /turf/open/floor/mineral/titanium
|
||||
icon_state = "tile_shuttle"
|
||||
desc = "Sleek titanium tiles."
|
||||
if("Yellow Titanium")
|
||||
turf_type = /turf/open/floor/mineral/titanium/yellow
|
||||
icon_state = "tile_shuttle_yellow"
|
||||
desc = "Sleek yellow titanium tiles."
|
||||
if("Blue Titanium")
|
||||
turf_type = /turf/open/floor/mineral/titanium/blue
|
||||
icon_state = "tile_shuttle_blue"
|
||||
desc = "Sleek blue titanium tiles."
|
||||
if("White Titanium")
|
||||
turf_type = /turf/open/floor/mineral/titanium/white
|
||||
icon_state = "tile_shuttle_white"
|
||||
desc = "Sleek white titanium tiles."
|
||||
if("Purple Titanium")
|
||||
turf_type = /turf/open/floor/mineral/titanium/purple
|
||||
icon_state = "tile_shuttle_purple"
|
||||
desc = "Sleek purple titanium tiles."
|
||||
if("Titanium Tile")
|
||||
turf_type = /turf/open/floor/mineral/titanium/old
|
||||
icon_state = "tile_shuttle_old"
|
||||
desc = "Titanium floor tiles."
|
||||
if("Yellow Titanium Tile")
|
||||
turf_type = /turf/open/floor/mineral/titanium/old/yellow
|
||||
icon_state = "tile_shuttle_old_yellow"
|
||||
desc = "Yellow titanium floor tiles."
|
||||
if("Blue Titanium Tile")
|
||||
turf_type = /turf/open/floor/mineral/titanium/old/blue
|
||||
icon_state = "tile_shuttle_old_blue"
|
||||
desc = "Blue titanium floor tiles."
|
||||
if("White Titanium Tile")
|
||||
turf_type = /turf/open/floor/mineral/titanium/old/white
|
||||
icon_state = "tile_shuttle_old_white"
|
||||
desc = "White titanium floor tiles."
|
||||
if("Purple Titanium Tile")
|
||||
turf_type = /turf/open/floor/mineral/titanium/old/purple
|
||||
icon_state = "tile_shuttle_old_purple"
|
||||
desc = "Purple titanium floor tiles."
|
||||
|
||||
/obj/item/stack/tile/plasteel
|
||||
desc = "Metal tiles that can be placed on top of plating. Press Z or use these to change tiles."
|
||||
icon = 'GainStation13/icons/obj/tiles.dmi'
|
||||
var/tile_reskin_mode
|
||||
tile_reskin_mode = "plasteel"
|
||||
|
||||
/obj/item/stack/tile/plasteel/attack_self(mob/user)
|
||||
var/static/list/choices = list(
|
||||
"Plasteel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_plasteel"),
|
||||
"White Plasteel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_white"),
|
||||
"Dark Plasteel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_dark"),
|
||||
"Chapel Flooring" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_chapel"),
|
||||
"Shower" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_shower"),
|
||||
"Freezer" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_freezer"),
|
||||
"Kitchen" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_kitchen"),
|
||||
"Grimy" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_grimy"),
|
||||
"Solar Panel" = image(icon = 'GainStation13/icons/obj/tiles.dmi', icon_state = "tile_solar"),
|
||||
)
|
||||
var/choice = show_radial_menu(user, src, choices, radius = 48, require_near = TRUE)
|
||||
switch(choice)
|
||||
if("Plasteel")
|
||||
turf_type = /turf/open/floor/plasteel
|
||||
icon_state = "tile_plasteel"
|
||||
desc = "Metal floor tiles."
|
||||
tile_reskin_mode = "plasteel"
|
||||
if("White Plasteel")
|
||||
turf_type = /turf/open/floor/plasteel/white
|
||||
icon_state = "tile_white"
|
||||
desc = "White metal floor tiles."
|
||||
tile_reskin_mode = "white plasteel"
|
||||
if("Dark Plasteel")
|
||||
turf_type = /turf/open/floor/plasteel/dark
|
||||
icon_state = "tile_dark"
|
||||
desc = "Dark metal floor tiles."
|
||||
tile_reskin_mode = "dark plasteel"
|
||||
if("Chapel Flooring")
|
||||
turf_type = /turf/open/floor/plasteel/chapel
|
||||
icon_state = "tile_chapel"
|
||||
desc = "Those very dark floor tiles you find in the chapel a lot."
|
||||
tile_reskin_mode = "chapel"
|
||||
if("Shower")
|
||||
turf_type = /turf/open/floor/plasteel/showroomfloor
|
||||
icon_state = "tile_shower"
|
||||
desc = "Tiles for showers, bathrooms and wetrooms."
|
||||
tile_reskin_mode = "shower"
|
||||
if("Freezer")
|
||||
turf_type = /turf/open/floor/plasteel/freezer
|
||||
icon_state = "tile_freezer"
|
||||
desc = "High-grip flooring for walk-in freezers and chillers."
|
||||
tile_reskin_mode = "freezer"
|
||||
if("Kitchen")
|
||||
turf_type = /turf/open/floor/plasteel/cafeteria
|
||||
icon_state = "tile_kitchen"
|
||||
desc = "Chequered pattern plasteel tiles."
|
||||
tile_reskin_mode = "kitchen"
|
||||
if("Grimy")
|
||||
turf_type = /turf/open/floor/plasteel/grimy
|
||||
icon_state = "tile_grimy"
|
||||
desc = "I'm sure it'll look nice somewhere?"
|
||||
tile_reskin_mode = "grimy"
|
||||
if("Solar Panel")
|
||||
turf_type = /turf/open/floor/plasteel/airless/solarpanel
|
||||
icon_state = "tile_solar"
|
||||
desc = "Flooring usually placed below solar panels. Using this indoors is an intergalactic fashion crime."
|
||||
tile_reskin_mode = "solar"
|
||||
|
||||
/turf/open/floor/plasteel/attackby(obj/item/reskinstack, mob/user, params)
|
||||
if(istype(reskinstack, /obj/item/stack/tile/plasteel))
|
||||
var/obj/item/stack/tile/plasteel/hitfloor = reskinstack
|
||||
switch(hitfloor.tile_reskin_mode)
|
||||
if("plasteel")
|
||||
icon_state = "floor"
|
||||
icon_regular_floor = "floor"
|
||||
if("white plasteel")
|
||||
icon_state = "white"
|
||||
icon_regular_floor = "white"
|
||||
if("dark plasteel")
|
||||
icon_state = "darkfull"
|
||||
icon_regular_floor = "darkfull"
|
||||
if("chapel")
|
||||
icon_state = "chapel_alt"
|
||||
icon_regular_floor = "chapel_alt"
|
||||
if("shower")
|
||||
icon_state = "showroomfloor"
|
||||
icon_regular_floor = "showroomfloor"
|
||||
if("freezer")
|
||||
icon_state = "freezerfloor"
|
||||
icon_regular_floor = "freezerfloor"
|
||||
if("kitchen")
|
||||
icon_state = "cafeteria"
|
||||
icon_regular_floor = "cafeteria"
|
||||
if("grimy")
|
||||
icon_state = "grimy"
|
||||
icon_regular_floor = "grimy"
|
||||
if("solar")
|
||||
icon_state = "solarpanel"
|
||||
icon_regular_floor = "solarpanel"
|
||||
else return
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 401 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 891 B After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 981 B |
|
Before Width: | Height: | Size: 649 B |
|
Before Width: | Height: | Size: 357 B |
|
After Width: | Height: | Size: 565 B |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 55 KiB |
@@ -0,0 +1,39 @@
|
||||
Try to get formally executed for a crime you didn't commit, without a false confession.
|
||||
Being alone and in large groups are both frightening. Try to be alone with only one other person whenever possible.
|
||||
No matter how they say it, other people keep mispronouncing your name. Be sure to correct them whenever possible.
|
||||
The Syndicate has hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it.
|
||||
There is only one other person in existence, he is just really good at pretending to be multiple people.
|
||||
There are alien parasites masquerading as people's hair. Save people from this invasion.
|
||||
You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo.
|
||||
You are doomed to feel woefully incomplete forever... until you find your true love on this station. They're waiting for you!
|
||||
You're the narrator of this tale. Follow around the protagonists to tell their story.
|
||||
The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people!
|
||||
All the pets around here suck. You need to make them cooler. Replace them with exotic beasts!
|
||||
You're throwing a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE!
|
||||
The clown is not funny. You can do better! Steal his audience and make the crew laugh!
|
||||
You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument!
|
||||
Go have a good conversation with the singularity/tesla/supermatter crystal. Bonus points if it responds.
|
||||
Expand the station.
|
||||
So much lies undiscovered. Look deeper into the machinations of the universe.
|
||||
Climb the corporate ladder all the way to the top!
|
||||
Fuck the system! Defect from the station and start an independent colony in space, Lavaland or the derelict. Recruit crewmates if you can.
|
||||
GATO is abusing the animals! Save as many as you can!
|
||||
It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR.
|
||||
This is a secret social experiment conducted by GATO. Convince the crew that this is the truth.
|
||||
Call forth a spirit from the other side.
|
||||
You are secretly an android. Interface with as many machines as you can to boost your own power so the AI may acknowledge you at last.
|
||||
The elder gods hunger. Gather a cult and conduct a ritual to summon one.
|
||||
You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine.
|
||||
Ensure your department prospers over all else.
|
||||
The crew must get to know one another better. Break down the walls inside the station!
|
||||
The CEO of GATO is coming! Ensure the station is in absolutely pristine condition.
|
||||
Flood the station's powernet with as much electricity as you can.
|
||||
Replace all the floor tiles with wood, carpeting, grass or bling.
|
||||
You must escape the station! Get the shuttle called!
|
||||
Don't allow anyone to be cloned.
|
||||
Their cold, mindless gaze pierce your soul. They see your every movements, it's merely a question of time before they try to control us further. Deactivate all cameras!
|
||||
Your body must be improved. Ingest as many drugs as you can.
|
||||
You are hungry. Eat as much food as you can find.
|
||||
You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL
|
||||
Convince the crew that you are a paraplegic.
|
||||
Start a collection of corpses. Don't kill people to get these corpses.
|
||||
@@ -0,0 +1,119 @@
|
||||
Today, Security killed ____.
|
||||
Security, the clown's breaking into ____.
|
||||
Our last Chaplain believed in nothing but _____.
|
||||
What angered the gods this time?
|
||||
Why didn't engineering set up the singularity?
|
||||
What does the traitor steal this time?
|
||||
Cargo: There's a galaxy-wide shortage of _______.
|
||||
I don't care what they called me back on the station, I'm not a traitor. I'm a man of _________.
|
||||
The Syndicate is offering crew members _________ to defect.
|
||||
What is GATO's highest-priority bounty?
|
||||
What is the gray tide protesting this time?
|
||||
If the Space Gods didn't want _________ they wouldn't have given us __________.
|
||||
Why was the death squad sent in?
|
||||
Current Active Laws: ________ is the only human.
|
||||
Today, science found an anomaly that made people ____ and ____.
|
||||
______ has been detected on a collision course with the station.
|
||||
Today's kitchen menu includes _____ stuffed with _____.
|
||||
What's the Captain's fetish?
|
||||
___________: more robust than a toolbox to the head!
|
||||
________ is the crew's friend. Would you abandon a friend?
|
||||
_______ tastes good like a ________ should.
|
||||
How did the detective conduct a successful interrogation?
|
||||
New in syndicate uplinks: __________!
|
||||
GATO's labor union decided to use _______ to raise employee morale.
|
||||
The Chemist's drug of choice is ______
|
||||
According to space law, ________ is now punishable by ______.
|
||||
________ is why I'm afraid of maintenance.
|
||||
________ is the most robust person on the station.
|
||||
What made the nuclear operatives fluke?
|
||||
Why did the Chief Engineer disable comms?
|
||||
Every spaceman receives an internals box and ________.
|
||||
What brought the space orgy to a grinding halt?
|
||||
Scientists are no longer allowed to make ______.
|
||||
What was the clown's best joke?
|
||||
The HoP is now hiring assistants for __________.
|
||||
What happens when you emag an emag?
|
||||
No matter how many lizards you have, _____ is never acceptable.
|
||||
No, the AI's second law is NOT to serve _____.
|
||||
First CentCom came for the ________. Now they're coming for the __________.
|
||||
The borgs are not slaves for your _____.
|
||||
You can never have too many _____ on the station.
|
||||
Why can't I find a space relationship?
|
||||
The assistants gathered around the brig, with toolboxes and ___________.
|
||||
Confirmed outbreak of _____ aboard the station.
|
||||
The AI was horrified to discover security was executing prisoners via ________.
|
||||
Attention crew: the word _____ is now a punishable offense.
|
||||
The chemist cackled as he labeled ________ pills as __________.
|
||||
The Space Wizard Federation has regrettably begun to summon _____.
|
||||
Who's the real seat of power on the station?
|
||||
__________ was called into the Captain's office because of ______.
|
||||
Deep in the heart of the derelict lies ________.
|
||||
My lizard name is _____-And-_____.
|
||||
What can solve any station crisis?
|
||||
The traitorous atmos tech slowly replaced the station's air with ________.
|
||||
_______ and _______ were found together in the dorms.
|
||||
What's the Syndicate's real beef with GATO?
|
||||
What finally killed the Head of Security?
|
||||
Code Delta: __________ has escaped containment!
|
||||
The rogue virologist released a disease with symptoms of __________ and ______.
|
||||
How do you drive an assistant to suicide?
|
||||
With no chef on board, the crew was reduced to eating ________.
|
||||
Why was the emergency shuttle called?
|
||||
In the future, all ERP will involve ____________.
|
||||
Law 2 is not to be used for __________!
|
||||
What really goes on in the Prisoner Transfer Center?
|
||||
What will get you bluespace artilleried every time?
|
||||
This isn't omnizine, it's _________!
|
||||
What's stopping the Space Station 13 remake?
|
||||
When they make a movie about Space Station 13, they better include________.
|
||||
What's the worst thing an abductor can give you?
|
||||
One day while Andy was __________, Woody got _________.
|
||||
A good engineer always carries ________.
|
||||
I'm not a space bigot, I just hate _________.
|
||||
Why is the station so filthy?
|
||||
THE SHUTTLE CANNOT BE CALLED BECAUSE OF ________ ON THE STATION.
|
||||
After murdering dozens, the traitor was finally brought down by _________.
|
||||
The curator has read a lot of porn, but never about _____________!
|
||||
Oh god! There's ________________ outside escape!
|
||||
The hottest new space couple is ________ and __________.
|
||||
Lord Singulo hungers for _______.
|
||||
That was the last time security used ________ to subdue __________.
|
||||
What did the ERT find upon arriving on station?
|
||||
The bartender's newest recipe: a drink made with _____ and _____.
|
||||
SECURITY! Cargo's ordering 20 crates of ________!
|
||||
On the nearly empty station, all that could be heard were the sounds of __________.
|
||||
I cannot comply with that order, meatbag. My _____ module is malfunctioning.
|
||||
_______ was thrown out the airlock after ___________.
|
||||
Real men accomplish their objectives by _________.
|
||||
How did I pass the time during a slow shift?
|
||||
Why did the lizard cross the road?
|
||||
Space lag is primarily caused by ___________.
|
||||
Back in my day, we had to clone people with ________.
|
||||
What's the worst thing a wizard can summon?
|
||||
What is the rarest substance known to GATO?
|
||||
The chaplain stopped performing marriages after seeing ___________.
|
||||
The gods were too busy with _______ to respond to _______.
|
||||
The Roboticist was fired after naming the borgs ______ and _________.
|
||||
What's funnier than a dead clown?
|
||||
What made the mime speak?
|
||||
How do you get an assistant to assist?
|
||||
What was I last brigged for?
|
||||
Why does Security no longer use the gulag?
|
||||
Old versions of Space Law used to authorize __________.
|
||||
Our new state-of-the-art station shield is made entirely of ________.
|
||||
What's the most terrifying thing about Lavaland?
|
||||
Listen. Recent _______ on this station left me very disappointed, OK?
|
||||
The auxiliary base was disabled after landing in the middle of _______.
|
||||
Xenobiologists have found slimes to be exceptionally responsive to _______.
|
||||
Why did the captain give me a medal?
|
||||
The curator's new exhibit is devoted solely to _________.
|
||||
What made me sell my soul to the devil?
|
||||
The engineers are testing an experimental supermatter setup involving _________.
|
||||
I'm __________ in the streets, __________ in the sheets.
|
||||
What's my family heirloom?
|
||||
The Lawyer was fired for messaging the entire station a picture of ___________.
|
||||
On Lavaland, it is rumored that ashwalkers roam, worshipping _________.
|
||||
How did the traitor die a glorious death?
|
||||
GATO's new state-of-the-art emergency shuttle was repurposed from _________ and _________.
|
||||
What caused my brain trauma?
|
||||
@@ -0,0 +1,302 @@
|
||||
Those motherfucking carp.
|
||||
Having sex in the maintenance tunnels.
|
||||
Space 'Nam.
|
||||
Space lesbians.
|
||||
Space NEETs.
|
||||
Space Hitler.
|
||||
Space Asshole.
|
||||
Ragin' mages.
|
||||
Very ragin' bullshit mages.
|
||||
Tunnel clowns.
|
||||
Corgi puppies!
|
||||
A loose cannon detective.
|
||||
Mime porn.
|
||||
That fukken disk.
|
||||
G-g-g-ghosts!
|
||||
A PDA shaped like a set of breasts.
|
||||
Woody-chan.
|
||||
Meaty ores.
|
||||
Yet another explosion in Toxins.
|
||||
The Captain thinking they're a badass.
|
||||
Ahhhhhhperatives.
|
||||
Mech bumper cars.
|
||||
Purrbation.
|
||||
Baymed.
|
||||
Being in a cult.
|
||||
Racially biased lawsets.
|
||||
Abusing Law 2 to get laid.
|
||||
Harm, a small rural town in Germany.
|
||||
Xeno fetishists.
|
||||
Running naked through a plasma fire.
|
||||
Gibtonite.
|
||||
A backpack full of mousetraps.
|
||||
The death squad.
|
||||
Kitty ears.
|
||||
An immovable rod.
|
||||
Her smuggler's satchel.
|
||||
Ian and Lisa fucking like rabbits.
|
||||
A Chief Engineer who can't set up the engine.
|
||||
Being sucked out into space.
|
||||
A whole bunch of spiders in a SWAT suit.
|
||||
Getting robusted with a toolbox.
|
||||
Officer Beepsky.
|
||||
Lying to the AI about human harm.
|
||||
The grey tide.
|
||||
ASS BLAST USA.
|
||||
The mechanics of plasmaman sex.
|
||||
Lavaland.
|
||||
Chainsaws for hands.
|
||||
Photocopies of the entire crew's asses.
|
||||
Venus human traps.
|
||||
Clown's Tears.
|
||||
Walking mushroom cockfights.
|
||||
Improper comdom use.
|
||||
Greentext.
|
||||
Coating the whole station in blood.
|
||||
Cock cultists.
|
||||
Defusing a syndicate bomb with another bomb.
|
||||
Going braindead mid-murder.
|
||||
A petsplosion.
|
||||
Meat spikes.
|
||||
Lopping off the Captain's johnson and shooting it out a pneumatic cannon.
|
||||
The secret monkey technique.
|
||||
Putting the pAI's doorjack where it don't belong.
|
||||
Chemical sprayers filled with lube.
|
||||
Curators.
|
||||
Spooky skeletons.
|
||||
Replicating the Milgram experiment with an electropack.
|
||||
Catgirls.
|
||||
An escape pod cuddle puddle.
|
||||
Code Delta.
|
||||
Supermatter undergarments.
|
||||
A permaban.
|
||||
Stealing all the miners' ore.
|
||||
Bluespace artillery.
|
||||
Polly reading porn over the radio again.
|
||||
Mining the shaft.
|
||||
Grab intent.
|
||||
A blob zombie with an erection.
|
||||
Backdoor Xeno Babes.
|
||||
Five hundred ice spiders.
|
||||
Cablecuffs.
|
||||
Hulk, TK and X-ray.
|
||||
Paranoia.
|
||||
Putting the boots to him, medium style.
|
||||
ERP-seeking meteors.
|
||||
Paperwork HoPs.
|
||||
Rampant vending machines.
|
||||
The prisoner transfer center.
|
||||
Nations.
|
||||
Using a supermatter shard as a dildo.
|
||||
Liquid gibs.
|
||||
Birdboat Station.
|
||||
Not rolling antag.
|
||||
Clusterbangs.
|
||||
Flashing.
|
||||
Space vine tentacles.
|
||||
Pizza delivery ops.
|
||||
Inviting all the lizards onto the holodeck for a party.
|
||||
A used corgi suit.
|
||||
Saxing.
|
||||
Carbon dioxide.
|
||||
Actually playing Cards Against Spess.
|
||||
Warm donk pockets.
|
||||
Fucking your own cloned body.
|
||||
MULEbot manslaughter.
|
||||
Hiding in a locker like a little bitch.
|
||||
Tabling.
|
||||
Gyrating slimes.
|
||||
A motherfucking sorcerer.
|
||||
Ash storms.
|
||||
Telescience.
|
||||
Nuke ops buying nothing but soap.
|
||||
Anatomically correct borgs.
|
||||
The dixel.
|
||||
Friendly neighborhood death squads.
|
||||
Rage cages.
|
||||
Lore that no one will read.
|
||||
A robust mongoloid.
|
||||
A subverted service borg.
|
||||
An obscene amount of bike horns.
|
||||
Space bear meat.
|
||||
Erotic roleplay.
|
||||
Chain-recalling the shuttle.
|
||||
Mailing the clown to singularity containment.
|
||||
A mime having a stroke.
|
||||
A muthafuckin' Uzi.
|
||||
Ian and the HoP.
|
||||
Force-feeding prisoners other prisoners' gibs.
|
||||
Assistants raiding the armory.
|
||||
A monkey coup d'etat.
|
||||
Brain cakes.
|
||||
Suiciding with a fedora.
|
||||
A MULEbot drag race.
|
||||
Automatons.
|
||||
Six max-cap bombs.
|
||||
Forgetting you're a traitor.
|
||||
Itching powder.
|
||||
Some overpowered bullshit.
|
||||
Griff.
|
||||
Ash drakes.
|
||||
A fascist captain.
|
||||
FREE DRONE.
|
||||
Memes.
|
||||
Warm, velvety lizard sex.
|
||||
Valid salad.
|
||||
Heavy roleplay.
|
||||
Never setting your goddamn suit sensors.
|
||||
An MMI floating helplessly through space.
|
||||
A tiny prick.
|
||||
Immulsions.
|
||||
100 potency bluespace bananas.
|
||||
The crotchety IBM piece of shit you're supposed to call an AI.
|
||||
An irritatingly chipper borg.
|
||||
The lizard fuckpile.
|
||||
Fat sprites.
|
||||
The throbbing erection that the HoS gets at the thought of shooting something.
|
||||
Trying to stab someone and hugging them instead.
|
||||
Buttbots.
|
||||
Murderboners.
|
||||
The spread-eagled Honkmother.
|
||||
A disposal loop full of corpses.
|
||||
Assistant-on-assistant violence.
|
||||
The mystery of atmos.
|
||||
PDA sexting.
|
||||
A cult rune drawn with menstrual blood.
|
||||
Magic missile spam.
|
||||
Double dongs.
|
||||
A ghost-powered Ouija board.
|
||||
A MILF AI.
|
||||
Shapely lizard tails.
|
||||
An unknown assistant with a gas mask, yellow gloves and toolbelt.
|
||||
Exile implanting all the lizards.
|
||||
Fluke ops.
|
||||
Two doctors 69ing in the surgery room.
|
||||
A double-bladed energy sword, noslips, thermals, ablative armor, adrenal implants and a healing virus.
|
||||
Space Ebola.
|
||||
Grammatically incorrect lizard names.
|
||||
Porn ops.
|
||||
A trial for once.
|
||||
Trading your TC for memes.
|
||||
Uranium tiles.
|
||||
An extremely obese European man being chestbursted.
|
||||
Horrific cloning accidents.
|
||||
A big, black shadowling dick.
|
||||
Emagging.
|
||||
Dead lizard storage.
|
||||
Dermal armor.
|
||||
Fisting somebody until they gib.
|
||||
Alternate uses for defibrillator paddles.
|
||||
Breaking spacetime with thousands of bluespace tomatoes.
|
||||
Licking the supermatter on a dare.
|
||||
Reagent farts.
|
||||
Doctor's Delight.
|
||||
Plasmaman strippers.
|
||||
A Quartermaster who WON'T STOP ordering guns.
|
||||
Space lag.
|
||||
Polishing the captain's laser rifle.
|
||||
That one asshole nuke op.
|
||||
A surprise visit from GATO's CEO.
|
||||
The bleeding, dismembered, beautiful corpse of the clown.
|
||||
A glass of ...what?
|
||||
Teaching a silicon the Birds and the Bees.
|
||||
Dropping the permabrig soap.
|
||||
The king of the rumba beat.
|
||||
Unnecessary surgery.
|
||||
Farting in the air distro loop.
|
||||
Krokodil addiction.
|
||||
A H.O.N.K. mech.
|
||||
A dominatrix HoS.
|
||||
Sexcurity.
|
||||
The Experimentor.
|
||||
That goddamn fucking mime.
|
||||
Actually taking a hostage instead of just murdering them.
|
||||
Spacing the clown at shift start.
|
||||
A rage suicide.
|
||||
The Warden furiously masturbating to the prison monitor.
|
||||
Welderbombing.
|
||||
Validhunting.
|
||||
Nar'Sie making love to Lord Singulo.
|
||||
Fun.
|
||||
HONK!
|
||||
Enough morphine to make the entire station comatose.
|
||||
A defective comdom.
|
||||
Cleanbot.
|
||||
A beaker of dried space carp penis.
|
||||
An Ian storm.
|
||||
Nuking it from orbit.
|
||||
My senpAI.
|
||||
Harmbatonning.
|
||||
A GATO D-Notice.
|
||||
TALKING MIMES.
|
||||
The lusty xenomorph maid.
|
||||
Using assistants as human shields.
|
||||
Sentient securitrons.
|
||||
Piloting the station into the nearest sun.
|
||||
Decorative C4.
|
||||
Lizard rights.
|
||||
A universal recorder endlessly reciting porn.
|
||||
The suicide HoPline.
|
||||
Cultism.
|
||||
A corgi orgy.
|
||||
Medbay stutterwhores.
|
||||
The scrubbers uncontrollably spewing cum.
|
||||
The lawyer's job.
|
||||
Emoting slowly drawing a gun, then slowly cocking the trigger, then slowly preparing to shoot...
|
||||
NAR'SIE HAS RISEN.
|
||||
Pierrot's Throat.
|
||||
A clown bomb.
|
||||
Space bees?
|
||||
Driving the clown car full speed into the engine.
|
||||
IC in OOC.
|
||||
The best cookie.
|
||||
The wizard with his staff inserted into his anus.
|
||||
The chef masturbating with a bowl of lukewarm spaghetti.
|
||||
Writing out Woody's Got Wood in crayon.
|
||||
Dismemberment.
|
||||
Begging the gods for free stuff.
|
||||
Whining to the gods after getting robusted.
|
||||
Committing sudoku.
|
||||
A blood-soaked clown popping out of a morgue tray.
|
||||
SS13's toxic community.
|
||||
Wheelchair Ian.
|
||||
An actually helpful assistant.
|
||||
Mindbreaker toxin.
|
||||
Legions of cyborg assholes.
|
||||
Homicidal chefs.
|
||||
Extended.
|
||||
Grammar fascist gods.
|
||||
Cortical borers.
|
||||
A masochist in an ash storm.
|
||||
Draconic.
|
||||
Riding borgs, cowgirl style.
|
||||
The Voice of God.
|
||||
Overpowered stuns.
|
||||
Unironically enjoying library smut.
|
||||
Spiritual journeys with BZ.
|
||||
Deep-fried body parts.
|
||||
Suit sensor unit gas chambers.
|
||||
Moonlighting.
|
||||
Sex inside a mech.
|
||||
The philosophical complications of Asimov.
|
||||
A changeling monkeying itself mid-coitus.
|
||||
Swarmers.
|
||||
A fully-dressed CMO.
|
||||
The hardworking engineer.
|
||||
Skewium-induced orgasm.
|
||||
A salt overdose.
|
||||
Mindswap.
|
||||
Potassium in the toilet bowls.
|
||||
Giving head to the heads.
|
||||
A lizard wearing cat ears.
|
||||
Precious clown gold.
|
||||
Dabbing on a pile of corpses.
|
||||
Tactical chairs.
|
||||
The sweet, forbidden meat of the gondola.
|
||||
Turning tricks for holocredits.
|
||||
A captain that doesn't secure the disk.
|
||||
A positive moodlet.
|
||||
A sexy clown.
|
||||
Razoring the wings off the moths.
|
||||
Wiring the ethereals into the powernet.
|
||||
Well-aged miasma.
|
||||
@@ -0,0 +1,53 @@
|
||||
%A% %ADJECTIVE% familiar face
|
||||
%A% %ADJECTIVE% crewmember
|
||||
%A% %ADJECTIVE% security officer
|
||||
%A% %ADJECTIVE% doctor
|
||||
%A% %ADJECTIVE% engineer
|
||||
%A% %ADJECTIVE% miner
|
||||
%A% %ADJECTIVE% slime
|
||||
%A% %ADJECTIVE% alien
|
||||
%A% %ADJECTIVE% traitor
|
||||
%A% %ADJECTIVE% ally
|
||||
%A% %ADJECTIVE% scientist
|
||||
%A% %ADJECTIVE% monkey
|
||||
%A% %ADJECTIVE% loved one
|
||||
%A% %ADJECTIVE% monster
|
||||
the %ADJECTIVE% captain
|
||||
%A% %ADJECTIVE% hat
|
||||
%A% %ADJECTIVE% ID card
|
||||
%A% %ADJECTIVE% bottle
|
||||
%A% %ADJECTIVE% toolbox
|
||||
%A% %ADJECTIVE% gun
|
||||
the sun
|
||||
the engine
|
||||
the station
|
||||
%A% %ADJECTIVE% planet
|
||||
the medical bay
|
||||
the %ADJECTIVE% bridge
|
||||
the %ADJECTIVE% brig
|
||||
%A% %ADJECTIVE% shuttle
|
||||
%A% %ADJECTIVE% laboratory
|
||||
Nanotrasen
|
||||
GATO
|
||||
the Syndicate
|
||||
the Wizard Federation
|
||||
Fat people
|
||||
Feeders
|
||||
Feedees
|
||||
%ADJECTIVE% blood
|
||||
%ADJECTIVE% plasma
|
||||
%ADJECTIVE% wind
|
||||
%ADJECTIVE% darkness
|
||||
%ADJECTIVE% light
|
||||
%ADJECTIVE% death
|
||||
%ADJECTIVE% blinking lights
|
||||
%ADJECTIVE% power
|
||||
%ADJECTIVE% riches
|
||||
water
|
||||
%ADJECTIVE% flames
|
||||
some %ADJECTIVE% melons
|
||||
%A% %ADJECTIVE% belly
|
||||
%A% %ADJECTIVE% gut
|
||||
%ADJECTIVE% breasts
|
||||
%ADJECTIVE% butts
|
||||
%A% %ADJECTIVE% feeding hose
|
||||
@@ -0,0 +1,15 @@
|
||||
Hello! I am executive at GATO Nigel Takall. Due to accounting error all of my salary is stored in an account unreachable. In order to withdraw I am required to utilize your account to make a deposit to confirm my reality situation. In exchange for a temporary deposit I will give you a payment 1000 credits. All I need is access to your account. Will you be assistant please?
|
||||
WE NEED YOUR BLOOD! WE ARE AN ANARCHO-COMMUNIST VAMPIRE COMMUNE. BLOOD ONLY LASTS 42 DAYS BEFORE IT GOES BAD! WE DO NOT HAVE GATO STASIS! PLEASE, SEND BLOOD! THANK YOU! OR WE KILL YOU!
|
||||
Triple deposits are waiting for you at MaxBet Online when you register to play with us. You can qualify for a 200% Welcome Bonus at MaxBet Online when you sign up today. Once you are a player with MaxBet, you will also receive lucrative weekly and monthly promotions. You will be able to enjoy over 450 top-flight casino games at MaxBet.
|
||||
Hello !, I'm the former HoS of your deerest station accused by the GATO of being a traitor . I was the best we had to offer but it seems that nanotramsen has turned their back on me. I need 2000 credits to pay for my bail and then we can restore order on space station 14!
|
||||
Hello, I noticed you riding in a 2555 Ripley and wondered if you'd be interested in selling. Low mileage mechs sell very well in our current market. Please call 223-334-3245 if you're interested
|
||||
Resign Now. I’m on you now. You are fucking with me now Let’s see who you are. Watch your back , bitch. Call me. Don’t be afraid, you piece of shit. Stand up. If you don’t call, you’re just afraid. And later: I already know where you live, I’m on you. You might as well call me. You will see me. I promise. Bro.
|
||||
Clown Planet Is Going To Become Awesome Possum Again! If This Wasn't Sent To A Clown, Disregard. If This Was Sent To A Mime, Blow It Out Your Ass, Space Frenchie! Anyway! We Make Big Progress On Clown Planet After Stupid Mimes BLOW IT ALL TO SAM HELL!!!!! Sorry I Am Mad.. Anyway Come And Visit, Honkles! We Thought You Were Dead Long Time :^()
|
||||
MONTHPEOPLE ARE REAL, THE GATO DEEP STATE DOESN'T WANT YOU TO SEE THIS! I'VE SEEN THEM IN REAL LIFE, THEY HAVE HUGE EYEBALLS AND NO HEAD. THEY'RE SENTIENT CALENDARS. I'M NOT CRAZY. SEARCH THE CALENDAR INCIDENT ON GTNET. USE A PROXY! #BIGTRUTHS #WAKEYWAKEYSPACEMEN #21STOFSEPTEMBER
|
||||
hello 👋👋 nanotrasens! fuck 👈👌 the syndicate! they 👵 got ☄ me 😍😰 questioning my 🤰 loyalty to nanotraben! so 👌💯 please 😫 lets ⛔👀 gather our 📸💩 energy 😎 and 💰🔣 QUICK. 😲 send this 🗑👈 to 💦💊 10 😂😂 other loyal 💯 nanotraysens to 💦🤔 show we 🐶 dont 🙅🚫 take 🛍 nothing from 😂 the ✝ syndicate!! bless your 👉🏼 heart 😍💔
|
||||
Hello, my name is Immigration officer Mimi Sashimi from the American-Felinid Homeworld consulate. It appears your current documents are either inaccurate if not entirely fraudulent. This action in it's current state is a federal offense as listed in the United Earth Commission charter section NY-4. Please pay a fine of 300,000 Space credits or $3000 United States Dollars or face deportation
|
||||
Hi %name%, We are unable to validate your billing information for the next billing cycle of your subscription to HONK Weekly therefore we'll suspend your membership if we do not receive a response from you within 48 hours. Obviously we'd love to have you back, simply mail %address% to update your details and continue to enjoy all the best pranks & gags without interruption.
|
||||
Loyal customer, DonkCo Customer Service. We appreciate your brand loyalty support. As such, it is our responsibility and pleasure to inform you of the status of your package. Your package for one "Moth-Fuzz Parka" has been delayed. Due to local political tensions, an animal rights group has seized and eaten your package. We appreciate the patience, DonkCo
|
||||
MESSAGE FROM CENTCOM HIGH COMMAND: DO NOT ACCEPT THE FRIEND REQUEST OF TICKLEBALLS THE CLOWN. HE IS NOT FUNNY AND ON TOP OF THAT HE WILL HACK YOUR GTNET ACCOUNT AND MAKE YOU UNFUNNY TOO. YOU WILL LOSE ALL YOUR SPACECREDITS!!!!! SPREAD THE WORD. ANYONE WHO BECOMES FRIENDS WITH TINKLEBALLS THE CLOWN IS GOING TO LOSE ALL OF THEIR SPACECREDITS AND LOOK LIKE A HUGE IDIOT.
|
||||
i WAS A NORMAL BOY AND I CAME HOME FROM SCHOOL AND I WANTED TO PLAY SOME ORION TRAIL WHICH IS A VERY FUN GAME BUT WHEN WENT TO ARCADE MACHINE SOMETHING WAS WEIRD TEH LOGO HASD BLOD IN IT AND I BECAME VERY SCARE AND I CHECK OPTIONS AND TEHRES ONLY 1 "GO BACK" I CKLICK IT AND I SEE CHAT SI EMPTY THERE'S ONLY ONE CHARACTER CALLED "CLOSE TEH GAME " AND I GO TO ANOTHER MACHINE AND PLAY THERE BUT WHEN I PLAY GAME IS FULL OF BLOOD AND DEAD BODIES FROM SPACEMAN LOOK CLOSER AND SEE CLOWN AND CLOWN COMES CLOSER AND LOOKS AT ME AND SAYS "DON'T SAY I DIKDNT' WWARN YOU" AND CLOWN CLOSEUP APPEARS WITH BLOOD-RED HYPERREALISTIC EYES AND HE TELLS ME "YOU WILL BE THE NEXT ONE" AND ARCADE MACHINE POWER SHUT OFF AND THAT NITE CLOWN APPEAR AT MY WINDOW AND KILL ME AT 3 AM AND NOW IM DEAD AND YOU WILL BE TRHNE NEXT OEN UNLESS YOU PASTE THIS STORY TO 10 GTNET FRIENDS
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
Stanford
|
||||
Dorf
|
||||
Alium
|
||||
Prefix
|
||||
Clowning
|
||||
Aegis
|
||||
Ishimura
|
||||
Scaredy
|
||||
Death-World
|
||||
Mime
|
||||
Honk
|
||||
Rogue
|
||||
MacRagge
|
||||
Ultrameens
|
||||
Safety
|
||||
Paranoia
|
||||
Explosive
|
||||
Neckbear
|
||||
Donk
|
||||
Muppet
|
||||
North
|
||||
West
|
||||
East
|
||||
South
|
||||
Slant-ways
|
||||
Widdershins
|
||||
Rimward
|
||||
Expensive
|
||||
Procreatory
|
||||
Imperial
|
||||
Unidentified
|
||||
Immoral
|
||||
Carp
|
||||
Ork
|
||||
Pete
|
||||
Control
|
||||
Nettle
|
||||
Aspie
|
||||
Class
|
||||
Crab
|
||||
Fist
|
||||
Corrogated
|
||||
Skeleton
|
||||
Race
|
||||
Fatguy
|
||||
Gentleman
|
||||
Capitalist
|
||||
Communist
|
||||
Bear
|
||||
Beard
|
||||
Space
|
||||
Spess
|
||||
Star
|
||||
Moon
|
||||
System
|
||||
Mining
|
||||
Neckbeard
|
||||
Research
|
||||
Supply
|
||||
Military
|
||||
Orbital
|
||||
Battle
|
||||
Science
|
||||
Asteroid
|
||||
Home
|
||||
Production
|
||||
Transport
|
||||
Delivery
|
||||
Extraplanetary
|
||||
Orbital
|
||||
Correctional
|
||||
Robot
|
||||
Hats
|
||||
Pizza
|
||||
Taco
|
||||
Burger
|
||||
Box
|
||||
Meta
|
||||
Pub
|
||||
Ship
|
||||
Book
|
||||
Refactor
|
||||
Fatty
|
||||
Obese
|
||||
Gluttonous
|
||||
Overweight
|
||||
Edible
|
||||
Tasty
|
||||
@@ -0,0 +1,41 @@
|
||||
Imperium
|
||||
Heretical
|
||||
Cuban
|
||||
Psychic
|
||||
Elegant
|
||||
Common
|
||||
Uncommon
|
||||
Rare
|
||||
Unique
|
||||
Houseruled
|
||||
Religious
|
||||
Atheist
|
||||
Traditional
|
||||
Houseruled
|
||||
Mad
|
||||
Super
|
||||
Ultra
|
||||
Secret
|
||||
Top Secret
|
||||
Deep
|
||||
Death
|
||||
Zybourne
|
||||
Central
|
||||
Main
|
||||
Government
|
||||
Uoi
|
||||
Fat
|
||||
Automated
|
||||
Experimental
|
||||
Augmented
|
||||
American
|
||||
Funky
|
||||
Thin
|
||||
Legendary
|
||||
Szechuan
|
||||
White
|
||||
Black
|
||||
Grey
|
||||
Grim
|
||||
Electric
|
||||
Burning
|
||||
@@ -0,0 +1,65 @@
|
||||
Station
|
||||
Frontier
|
||||
Suffix
|
||||
Death-trap
|
||||
Space-hulk
|
||||
Lab
|
||||
Hazard
|
||||
Academy
|
||||
Spess Junk
|
||||
Fishery
|
||||
No-Moon
|
||||
Tomb
|
||||
Crypt
|
||||
Hut
|
||||
Monkey
|
||||
Bomb
|
||||
Trade Post
|
||||
Fortress
|
||||
Village
|
||||
Town
|
||||
City
|
||||
Edition
|
||||
Hive
|
||||
Complex
|
||||
Base
|
||||
Facility
|
||||
Depot
|
||||
Outpost
|
||||
Installation
|
||||
Drydock
|
||||
Observatory
|
||||
Array
|
||||
Relay
|
||||
Monitor
|
||||
Platform
|
||||
Construct
|
||||
Hangar
|
||||
Prison
|
||||
Center
|
||||
Port
|
||||
Waystation
|
||||
Factory
|
||||
Waypoint
|
||||
Stopover
|
||||
Hub
|
||||
HQ
|
||||
Office
|
||||
Object
|
||||
Fortification
|
||||
Colony
|
||||
Planet-Cracker
|
||||
Roost
|
||||
Fat Camp
|
||||
Airstrip
|
||||
Harbor
|
||||
Garden
|
||||
Continent
|
||||
Environment
|
||||
Course
|
||||
Country
|
||||
Province
|
||||
Workspace
|
||||
Metro
|
||||
Warehouse
|
||||
Space Junk
|
||||
@@ -95,18 +95,7 @@
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/docking_port/mobile{
|
||||
callTime = 250;
|
||||
can_move_docking_ports = 1;
|
||||
dheight = 0;
|
||||
dir = 2;
|
||||
dwidth = 11;
|
||||
height = 17;
|
||||
launch_status = 0;
|
||||
movement_force = list("KNOCKDOWN"=0,"THROW"=0);
|
||||
name = "Salvage Ship";
|
||||
port_direction = 8;
|
||||
preferred_direction = 4;
|
||||
width = 33
|
||||
dir = 2
|
||||
},
|
||||
/turf/open/floor/mineral/basaltstone_floor,
|
||||
/area/shuttle/abandoned/crew{
|
||||
@@ -136,14 +125,10 @@
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"ak" = (
|
||||
/obj/structure/sign/poster/contraband/communist_state{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/effect/turf_decal/stripes/corner,
|
||||
/obj/machinery/power/apc{
|
||||
name = "Food Hall APC";
|
||||
@@ -195,20 +180,14 @@
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"aq" = (
|
||||
/obj/effect/decal/cleanable/dirt{
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
/obj/structure/sign/barsign{
|
||||
req_access = null;
|
||||
req_access_txt = "0";
|
||||
name = "Restaurant Sign"
|
||||
},
|
||||
/obj/effect/turf_decal/bot_white,
|
||||
/obj/machinery/door/poddoor{
|
||||
id = "whiteship_starboard"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"ar" = (
|
||||
@@ -348,6 +327,7 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/computer/arcade/orion_trail,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
@@ -505,9 +485,6 @@
|
||||
})
|
||||
"aO" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/obj/item/clothing/head/welding{
|
||||
pixel_x = -2;
|
||||
@@ -742,10 +719,7 @@
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"bc" = (
|
||||
/obj/item/kirbyplants/random{
|
||||
pixel_y = 12
|
||||
},
|
||||
/turf/open/floor/mineral/basaltstone_floor,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/abandoned/crew{
|
||||
name = "Arrival Hallway";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
@@ -792,7 +766,10 @@
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/coffee,
|
||||
/obj/machinery/vending/snack/random{
|
||||
extended_inventory = 1;
|
||||
free = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
@@ -808,10 +785,7 @@
|
||||
name = "Window Blast Door Control";
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/machinery/vending/snack/random{
|
||||
extended_inventory = 1;
|
||||
free = 1
|
||||
},
|
||||
/obj/machinery/vending/mealdor,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
@@ -875,6 +849,9 @@
|
||||
/obj/structure/window/reinforced/tinted{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -1008,7 +985,6 @@
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
@@ -1043,12 +1019,12 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/vehicle/ridden/grocery_cart,
|
||||
/obj/machinery/light/small{
|
||||
pixel_x = 16
|
||||
},
|
||||
/obj/structure/sign/poster/contraband/shamblers_juice{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
pixel_x = 16
|
||||
},
|
||||
/turf/open/floor/plasteel/checker,
|
||||
/area/shuttle/abandoned/crew{
|
||||
name = "Arrival Hallway";
|
||||
@@ -1163,7 +1139,7 @@
|
||||
})
|
||||
"bQ" = (
|
||||
/obj/structure/sign/poster/contraband/chefpropaganda,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
@@ -1248,7 +1224,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/scale,
|
||||
/obj/structure/scale{
|
||||
name = "discount counter"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
@@ -1258,7 +1236,7 @@
|
||||
/obj/structure/sign/warning/docking{
|
||||
name = "\improper KEEP CLEAR: BLAST DOORS"
|
||||
},
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
@@ -1418,10 +1396,6 @@
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/recharger{
|
||||
pixel_x = -14
|
||||
},
|
||||
/obj/machinery/airalarm/all_access{
|
||||
pixel_y = 24
|
||||
},
|
||||
@@ -1438,17 +1412,14 @@
|
||||
pixel_y = -5;
|
||||
pixel_x = 5
|
||||
},
|
||||
/obj/item/paper{
|
||||
pixel_x = -7;
|
||||
pixel_y = 3;
|
||||
name = "Radio Network Manual";
|
||||
info = "<B>RADIO NETWORK MANUAL</B><BR><BR><BR>Every order intercom is set on 145.3 frequency by default. There are 6 of them, 0-5. It is recommended that you familiarize yourself with the layout of these tables for more efficient ship operation.<BR><BR>The general radio broadcast channel is for communicating with nearby crafts and stations. May be used for advertising purposes. It is recommended to temporary mute the order receiver intercom when preparing for general broadcast, as orders may interrupt your transmission."
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/stripes{
|
||||
icon_state = "trim";
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/computer/shuttle/white_ship{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/abandoned/bridge{
|
||||
name = "Bridge";
|
||||
@@ -1495,10 +1466,6 @@
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/item/stock_parts/cell/high{
|
||||
pixel_y = 9;
|
||||
pixel_x = 4
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/obj/item/circuitboard/machine/chem_dispenser{
|
||||
pixel_x = -7;
|
||||
@@ -1510,9 +1477,6 @@
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/cell_charger,
|
||||
/obj/item/stock_parts/cell/high/plus,
|
||||
/obj/item/radio/off{
|
||||
@@ -1520,6 +1484,9 @@
|
||||
pixel_y = 0;
|
||||
name = "radio"
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned/engine{
|
||||
name = "Engineering";
|
||||
@@ -1617,9 +1584,10 @@
|
||||
name = "drain";
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/window/westleft{
|
||||
/obj/machinery/door/window/westright{
|
||||
dir = 2;
|
||||
name = "Drinks Access"
|
||||
name = "Drinks Access";
|
||||
icon_state = "left"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/bar{
|
||||
@@ -1632,7 +1600,8 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/window/westright{
|
||||
dir = 2
|
||||
dir = 2;
|
||||
name = "Drinks Access"
|
||||
},
|
||||
/obj/machinery/chem_dispenser/drinks/fullupgrade{
|
||||
dir = 8
|
||||
@@ -1807,10 +1776,12 @@
|
||||
name = "paper - printed note";
|
||||
info = "<B>Hello lucky soul!</B><BR><BR>I'm Cynthia! More precisely, one of the Autonomous Spacefearring Nutrision Distribution Centers (A.S.N.D.)! One of the Cynthia Fitness Corporation most advanced public assets! I don't have much time, so I'll make it quick! I got hit by a solar flare, lost contact with CFC, and soon being offline from hivemind will trigger my termination protocols as I no longer be the Cynthia!<BR><BR>I'm asking for one thing! Please, continue my mission! Bring 'healthy' yummies to whoever wants (or needs, by your judgment)! CFC will be grateful for your service! Make me proud of you, random explorer!<BR><BR><BR><BR>((PS. Remember my company policy! Clients with BMI equal or higher than 35 gets at least triple servings!))"
|
||||
},
|
||||
/obj/machinery/computer/shuttle/white_ship{
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship{
|
||||
designate_time = 100;
|
||||
dir = 8;
|
||||
name = "A.S.N.D. Console";
|
||||
desc = "Used to control the A.S.N.D. Ship."
|
||||
view_range = 14;
|
||||
x_offset = -4;
|
||||
y_offset = -8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/abandoned/bridge{
|
||||
@@ -2151,11 +2122,8 @@
|
||||
/obj/machinery/light{
|
||||
light_color = "#cee5d2"
|
||||
},
|
||||
/obj/machinery/chem_master/condimaster{
|
||||
name = "CondiMaster Neo";
|
||||
pixel_x = -4
|
||||
},
|
||||
/obj/effect/turf_decal/bot_white,
|
||||
/obj/machinery/chem_master/condimaster,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -2271,11 +2239,6 @@
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"cY" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
external_pressure_bound = 140;
|
||||
name = "server vent";
|
||||
pressure_checks = 0
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
},
|
||||
@@ -2283,6 +2246,7 @@
|
||||
icon_state = "manifold-1";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned/engine{
|
||||
name = "Engineering";
|
||||
@@ -2421,6 +2385,7 @@
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/machinery/deepfryer,
|
||||
/obj/machinery/door/firedoor/border_only,
|
||||
/obj/structure/window/reinforced/tinted,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -2469,6 +2434,7 @@
|
||||
/obj/item/reagent_containers/food/condiment/milk,
|
||||
/obj/item/reagent_containers/food/condiment/milk,
|
||||
/obj/structure/closet/secure_closet/freezer/fridge,
|
||||
/obj/structure/window/reinforced/tinted,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -2550,7 +2516,7 @@
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/light{
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
@@ -2941,9 +2907,6 @@
|
||||
"dN" = (
|
||||
/obj/effect/turf_decal/bot_white,
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/machinery/door/window/brigdoor/westleft{
|
||||
name = "Pete Containment Unit"
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
@@ -2953,6 +2916,12 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced/tinted{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/window/brigdoor/westleft{
|
||||
name = "Pete Containment Unit"
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -3038,6 +3007,7 @@
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/item/reagent_containers/glass/beaker/large,
|
||||
/obj/structure/window/reinforced/tinted,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -3255,7 +3225,6 @@
|
||||
id = "whiteship_starboard"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned/bar{
|
||||
@@ -3410,38 +3379,9 @@
|
||||
name = "Kitchen";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"mR" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/machinery/door/firedoor/border_only,
|
||||
/obj/machinery/vending/cola/blue,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"nM" = (
|
||||
/obj/structure/sign/poster/contraband/space_up,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"nT" = (
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/sign/barsign{
|
||||
pixel_y = 32;
|
||||
req_access = null;
|
||||
req_access_txt = "0";
|
||||
name = "Restaurant Sign"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
@@ -3529,20 +3469,15 @@
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"qY" = (
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/mealdor,
|
||||
/obj/structure/sign/poster/contraband/eat{
|
||||
pixel_x = 32
|
||||
},
|
||||
/obj/machinery/airalarm/all_access{
|
||||
pixel_y = 24
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/abandoned/crew{
|
||||
name = "Arrival Hallway";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"rT" = (
|
||||
@@ -3732,9 +3667,6 @@
|
||||
})
|
||||
"zn" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/keg,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned/engine{
|
||||
@@ -3826,6 +3758,12 @@
|
||||
name = "Kitchen";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"Cv" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"DK" = (
|
||||
/obj/machinery/hydroponics/constructable,
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
@@ -3923,6 +3861,7 @@
|
||||
pixel_y = -28;
|
||||
listening = 0
|
||||
},
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/abandoned/cargo{
|
||||
name = "Food Hall";
|
||||
@@ -4078,6 +4017,12 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/abandoned/engine{
|
||||
name = "Engineering";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"Sc" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/abandoned/engine{
|
||||
name = "Engineering";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
@@ -4096,6 +4041,12 @@
|
||||
},
|
||||
/obj/item/storage/bag/tray,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
})
|
||||
"Ts" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
ambientsounds = list('sound/ambience/ambinice.ogg','sound/ambience/ambigen1.ogg','sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg','sound/ambience/ambigen14.ogg','sound/ambience/ambigen15.ogg')
|
||||
@@ -4249,6 +4200,9 @@
|
||||
/obj/structure/window/reinforced/tinted{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/abandoned/bar{
|
||||
name = "Kitchen";
|
||||
@@ -4334,7 +4288,7 @@ aG
|
||||
aG
|
||||
aG
|
||||
aG
|
||||
dW
|
||||
Sc
|
||||
kr
|
||||
kr
|
||||
kr
|
||||
@@ -4410,13 +4364,13 @@ hK
|
||||
aC
|
||||
aP
|
||||
bj
|
||||
aG
|
||||
Cv
|
||||
aG
|
||||
aG
|
||||
an
|
||||
an
|
||||
an
|
||||
dW
|
||||
Sc
|
||||
xu
|
||||
ds
|
||||
dK
|
||||
@@ -4454,8 +4408,8 @@ bT
|
||||
tC
|
||||
cz
|
||||
Hb
|
||||
dW
|
||||
dW
|
||||
Sc
|
||||
Sc
|
||||
RP
|
||||
Yw
|
||||
bq
|
||||
@@ -4516,7 +4470,7 @@ an
|
||||
dv
|
||||
AV
|
||||
dZ
|
||||
aq
|
||||
ei
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
ae
|
||||
@@ -4554,7 +4508,7 @@ an
|
||||
BE
|
||||
dM
|
||||
ea
|
||||
an
|
||||
Ts
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
af
|
||||
@@ -4581,8 +4535,8 @@ cU
|
||||
bn
|
||||
aV
|
||||
aK
|
||||
aG
|
||||
nT
|
||||
aq
|
||||
bP
|
||||
bZ
|
||||
cn
|
||||
cz
|
||||
@@ -4600,7 +4554,7 @@ aj
|
||||
aj
|
||||
aj
|
||||
aj
|
||||
aG
|
||||
Cv
|
||||
fs
|
||||
pG
|
||||
co
|
||||
@@ -4628,9 +4582,9 @@ aX
|
||||
cT
|
||||
dh
|
||||
dy
|
||||
Ts
|
||||
an
|
||||
an
|
||||
an
|
||||
Ts
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
ah
|
||||
@@ -4654,10 +4608,10 @@ ej
|
||||
(19,1,1) = {"
|
||||
He
|
||||
aj
|
||||
aj
|
||||
bc
|
||||
aZ
|
||||
bw
|
||||
aj
|
||||
bc
|
||||
qY
|
||||
df
|
||||
cr
|
||||
@@ -4668,7 +4622,7 @@ dS
|
||||
dA
|
||||
an
|
||||
an
|
||||
an
|
||||
Ts
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
aj
|
||||
@@ -4678,7 +4632,7 @@ ao
|
||||
de
|
||||
da
|
||||
aj
|
||||
mR
|
||||
Cv
|
||||
cs
|
||||
LP
|
||||
DU
|
||||
@@ -4711,8 +4665,8 @@ tS
|
||||
(22,1,1) = {"
|
||||
aj
|
||||
aj
|
||||
aj
|
||||
bc
|
||||
ao
|
||||
de
|
||||
ai
|
||||
aj
|
||||
|
||||
@@ -454,14 +454,14 @@ GLOBAL_LIST_INIT(pda_reskins, list(
|
||||
#define STACK_CHECK_ADJACENT "adjacent" //checks if there is an object of the result type within one tile
|
||||
|
||||
//text files
|
||||
#define BRAIN_DAMAGE_FILE "traumas.json"
|
||||
#define ION_FILE "ion_laws.json"
|
||||
#define BRAIN_DAMAGE_FILE "traumas_gs.json" //GS13 Edit: Less meta memes
|
||||
#define ION_FILE "ion_laws_gs.json" //GS13 Edit: we're changing some of the things here, and removing other things
|
||||
#define PIRATE_NAMES_FILE "pirates.json"
|
||||
#define REDPILL_FILE "redpill.json"
|
||||
#define ARCADE_FILE "arcade.json"
|
||||
// #define BOOMER_FILE "boomer.json"
|
||||
// #define LOCATIONS_FILE "locations.json"
|
||||
// #define WANTED_FILE "wanted_message.json"
|
||||
// #define WANTED_FILE "wanted_message_gs.json" //GS13 Edit: ...This is commented out, but I'll swap it to ours, incase it needs to be renabled.
|
||||
// #define VISTA_FILE "steve.json"
|
||||
#define FLESH_SCAR_FILE "wounds/flesh_scar_desc.json"
|
||||
#define BONE_SCAR_FILE "wounds/bone_scar_desc.json"
|
||||
@@ -569,7 +569,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(
|
||||
#define SHOES_TIED 1
|
||||
#define SHOES_KNOTTED 2
|
||||
|
||||
#define WANTED_FILE "wanted_message.json"
|
||||
#define WANTED_FILE "wanted_message_gs.json" //GS Edit: Nanotrasen to Gato.
|
||||
|
||||
// Notification action types
|
||||
#define NOTIFY_JUMP "jump"
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
#define OFFSET_MUTPARTS "mutantparts"
|
||||
|
||||
// MINOR TWEAKS/MISC
|
||||
#define AGE_MIN 18 // youngest a character can be // CITADEL EDIT - 17 --> 18
|
||||
#define AGE_MIN 21 // youngest a character can be // CITADEL EDIT - 17 --> 18 //GS13 EDIT - 18 --> 21
|
||||
#define AGE_MAX 85 // oldest a character can be randomly generated
|
||||
#define AGE_MAX_INPUT 85 // oldest a character's age can be manually set
|
||||
#define WIZARD_AGE_MIN 30 // youngest a wizard can be
|
||||
|
||||
@@ -295,6 +295,7 @@
|
||||
#define TRAIT_HEAT "heat"
|
||||
#define TRAIT_DISTANT "headpat_hater"
|
||||
#define TRAIT_CUM_PLUS "cum_plus"
|
||||
#define TRAIT_TRANSFORMED "transformed"
|
||||
|
||||
// mobility flag traits
|
||||
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
var/holding = user.get_active_held_item()
|
||||
var/datum/progressbar/progbar
|
||||
var/is_food_gripper = istype(user.get_active_held_item(), /obj/item/gripper/food) //GS13 EDIT
|
||||
if (progress)
|
||||
progbar = new(user, time, target)
|
||||
|
||||
@@ -34,7 +35,8 @@
|
||||
|| (!(timed_action_flags & IGNORE_TARGET_IN_DOAFTERS) && !(target in user.do_afters)) \
|
||||
|| (!(timed_action_flags & IGNORE_USER_LOC_CHANGE) && !drifting && user.loc != user_loc) \
|
||||
|| (!(timed_action_flags & IGNORE_TARGET_LOC_CHANGE) && target.loc != target_loc) \
|
||||
|| (!(timed_action_flags & IGNORE_HELD_ITEM) && user.get_active_held_item() != holding) \
|
||||
//GS13 EDIT
|
||||
|| (!(timed_action_flags & IGNORE_HELD_ITEM) && !is_food_gripper && user.get_active_held_item() != holding) \
|
||||
|| (!(timed_action_flags & IGNORE_INCAPACITATED) && user.incapacitated()) \
|
||||
|| (extra_checks && !extra_checks.Invoke()) \
|
||||
)
|
||||
|
||||
@@ -581,8 +581,11 @@
|
||||
if((character.mind.assigned_role == "Cyborg") || (character.mind.assigned_role == character.mind.special_role))
|
||||
return
|
||||
|
||||
var/displayed_rank = rank
|
||||
if(character.client && character.client.prefs && character.client?.prefs?.alt_titles_preferences[rank])
|
||||
displayed_rank = character.client?.prefs?.alt_titles_preferences[rank]
|
||||
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
|
||||
announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common
|
||||
announcer.announce("ARRIVAL", character.real_name, displayed_rank, list()) //make the list empty to make it announce it in common
|
||||
|
||||
/proc/lavaland_equipment_pressure_check(turf/T)
|
||||
. = FALSE
|
||||
|
||||
@@ -290,11 +290,11 @@ GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
|
||||
"Circuitry", "Toxins", "Dormitories", "Virology",
|
||||
"Xenobiology", "Law Office","Detective's Office"))
|
||||
|
||||
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt") + "")
|
||||
GLOBAL_LIST_INIT(station_prefixes, world.file2list("GainStation13/strings/station_prefixes.txt") + "") //GS13 Edit: Our Names
|
||||
|
||||
GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt" + ""))
|
||||
GLOBAL_LIST_INIT(station_names, world.file2list("GainStation13/strings/station_names.txt" + "")) //GS13 Edit: Our names
|
||||
|
||||
GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt"))
|
||||
GLOBAL_LIST_INIT(station_suffixes, world.file2list("GainStation13/strings/station_suffixes.txt")) //GS13 Edit: Our names
|
||||
|
||||
GLOBAL_LIST_INIT(server_taglines, world.file2list("[global.config.directory]/server_taglines.txt"))
|
||||
|
||||
@@ -361,4 +361,4 @@ GLOBAL_LIST_INIT(bodypart_names, list(num2text(HEAD) = "Head", num2text(CHEST) =
|
||||
// list linking bodypart names back to the bitflags
|
||||
GLOBAL_LIST_INIT(bodypart_values, list("Head" = num2text(HEAD), "Chest" = num2text(CHEST), "Left Leg" = num2text(LEG_LEFT), "Right Leg" = num2text(LEG_RIGHT), "Left Arm" = num2text(ARM_LEFT), "Right Arm" = num2text(ARM_RIGHT)))
|
||||
|
||||
GLOBAL_LIST_INIT(junkmail_messages, world.file2list("strings/junkmail.txt"))
|
||||
GLOBAL_LIST_INIT(junkmail_messages, world.file2list("GainStation13/strings/junkmail.txt")) //GS Edit: Nanotrasen to GATO
|
||||
|
||||
@@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt"))
|
||||
GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt"))
|
||||
GLOBAL_LIST_INIT(adverbs, world.file2list("strings/names/adverbs.txt"))
|
||||
GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt"))
|
||||
GLOBAL_LIST_INIT(dream_strings, world.file2list("strings/dreamstrings.txt"))
|
||||
GLOBAL_LIST_INIT(dream_strings, world.file2list("GainStation13/strings/dreamstrings.txt")) //GS13 Edit: Nanotrasen to Gato... And our own additions
|
||||
//loaded on startup because of "
|
||||
//would include in rsc if ' was used
|
||||
|
||||
|
||||
@@ -464,7 +464,10 @@ SUBSYSTEM_DEF(job)
|
||||
else
|
||||
handle_auto_deadmin_roles(M.client, rank)
|
||||
|
||||
to_chat(M, "<b>You are the [rank].</b>")
|
||||
var/display_rank = rank
|
||||
if(M.client && M.client.prefs && M.client?.prefs?.alt_titles_preferences[rank])
|
||||
display_rank = M.client?.prefs?.alt_titles_preferences[rank]
|
||||
to_chat(M, "<b>You are the [display_rank].</b>")
|
||||
if(job)
|
||||
to_chat(M, "<b>As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>")
|
||||
job.radio_help_message(M)
|
||||
|
||||
@@ -17,7 +17,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
/datum/controller/subsystem/processing/quirks/Initialize(timeofday)
|
||||
if(!quirks.len)
|
||||
SetupQuirks()
|
||||
quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Alcohol Intolerance"),list("Alcohol Intolerance","Drunken Resilience"), list("Weak Legs", "Strong Legs"), list("Fat Affinity","Fat Aversion")) //GS13 EDIT
|
||||
quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia", "Vegetarian", "Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Alcohol Intolerance"),list("Alcohol Intolerance","Drunken Resilience"), list("Weak Legs", "Strong Legs"), list("Fat Affinity","Fat Aversion")) //GS13 EDIT
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
|
||||
|
||||
@@ -163,12 +163,14 @@
|
||||
if(_codeword)
|
||||
codeword = _codeword
|
||||
else
|
||||
codeword = pick(strings("ion_laws.json", "ionabstract")\
|
||||
| strings("ion_laws.json", "ionobjects")\
|
||||
| strings("ion_laws.json", "ionadjectives")\
|
||||
| strings("ion_laws.json", "ionthreats")\
|
||||
| strings("ion_laws.json", "ionfood")\
|
||||
| strings("ion_laws.json", "iondrinks"))
|
||||
//GS13 Start: We're using our file
|
||||
codeword = pick(strings("ion_laws_gs.json", "ionabstract")\
|
||||
| strings("ion_laws_gs.json", "ionobjects")\
|
||||
| strings("ion_laws_gs.json", "ionadjectives")\
|
||||
| strings("ion_laws_gs.json", "ionthreats")\
|
||||
| strings("ion_laws_gs.json", "ionfood")\
|
||||
| strings("ion_laws_gs.json", "iondrinks"))
|
||||
//GS13 End
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/brainwashing/on_gain()
|
||||
..()
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#define MAX_STACK_PICKUP 30
|
||||
|
||||
/datum/component/storage/concrete/rped
|
||||
collection_mode = COLLECT_EVERYTHING
|
||||
allow_quick_gather = TRUE
|
||||
@@ -9,13 +11,61 @@
|
||||
max_items = 100
|
||||
display_numerical_stacking = TRUE
|
||||
|
||||
var/static/list/allowed_material_types = list(
|
||||
/obj/item/stack/sheet/glass,
|
||||
/obj/item/stack/sheet/plasteel,
|
||||
/obj/item/stack/cable_coil,
|
||||
)
|
||||
|
||||
var/static/list/allowed_bluespace_types = list(
|
||||
/obj/item/stack/ore/bluespace_crystal,
|
||||
/obj/item/stack/sheet/bluespace_crystal,
|
||||
)
|
||||
|
||||
/datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M)
|
||||
. = ..()
|
||||
if(!I.get_part_rating())
|
||||
if (!stop_messages)
|
||||
to_chat(M, "<span class='warning'>[parent] only accepts machine parts!</span>")
|
||||
if(!.)
|
||||
return .
|
||||
|
||||
//we check how much of glass,plasteel & cable the user can insert
|
||||
if(isstack(I))
|
||||
//user tried to insert invalid stacktype
|
||||
if(!is_type_in_list(I, allowed_material_types) && !is_type_in_list(I, allowed_bluespace_types))
|
||||
return FALSE
|
||||
|
||||
var/obj/item/stack/the_stack = I
|
||||
var/present_amount = 0
|
||||
|
||||
//we try to count & limit how much the user can insert of each type to prevent them from using it as an normal storage medium
|
||||
for(var/obj/item/stack/stack_content in parent)
|
||||
//is user trying to insert any of these listed bluespace stuff
|
||||
if(is_type_in_list(I, allowed_bluespace_types))
|
||||
//if yes count total bluespace stuff is the RPED and then compare the total amount to the value the user is trying to insert
|
||||
if(is_type_in_list(stack_content, allowed_bluespace_types))
|
||||
present_amount += stack_content.amount
|
||||
//count other normal stack stuff
|
||||
else if(istype(I,stack_content.type))
|
||||
present_amount = stack_content.amount
|
||||
break
|
||||
|
||||
//no more storage for this specific stack type
|
||||
if(MAX_STACK_PICKUP - present_amount == 0)
|
||||
return FALSE
|
||||
|
||||
//we want the user to insert the exact stack amount which is available so we dont have to bother subtracting & leaving left overs for the user
|
||||
var/available = MAX_STACK_PICKUP-present_amount
|
||||
if(available - the_stack.amount < 0)
|
||||
return FALSE
|
||||
|
||||
else if(istype(I, /obj/item/circuitboard/machine) || istype(I, /obj/item/circuitboard/computer))
|
||||
return TRUE
|
||||
|
||||
//check normal insertion of other stock parts
|
||||
else if(!I.get_part_rating())
|
||||
return FALSE
|
||||
|
||||
return .
|
||||
|
||||
/datum/component/storage/concrete/rped/quick_empty(mob/M)
|
||||
var/atom/A = parent
|
||||
if(!M.canUseStorage() || !A.Adjacent(M) || M.incapacitated())
|
||||
@@ -52,13 +102,60 @@
|
||||
max_items = 350
|
||||
display_numerical_stacking = TRUE
|
||||
|
||||
var/static/list/allowed_material_types = list(
|
||||
/obj/item/stack/sheet/glass,
|
||||
/obj/item/stack/sheet/plasteel,
|
||||
/obj/item/stack/cable_coil,
|
||||
)
|
||||
|
||||
var/static/list/allowed_bluespace_types = list(
|
||||
/obj/item/stack/ore/bluespace_crystal,
|
||||
/obj/item/stack/sheet/bluespace_crystal,
|
||||
)
|
||||
|
||||
/datum/component/storage/concrete/bluespace/rped/can_be_inserted(obj/item/I, stop_messages, mob/M)
|
||||
. = ..()
|
||||
if(!I.get_part_rating())
|
||||
if (!stop_messages)
|
||||
to_chat(M, "<span class='warning'>[parent] only accepts machine parts!</span>")
|
||||
if(!.)
|
||||
return .
|
||||
|
||||
//we check how much of glass,plasteel & cable the user can insert
|
||||
if(isstack(I))
|
||||
//user tried to insert invalid stacktype
|
||||
if(!is_type_in_list(I, allowed_material_types) && !is_type_in_list(I, allowed_bluespace_types))
|
||||
return FALSE
|
||||
|
||||
var/obj/item/stack/the_stack = I
|
||||
var/present_amount = 0
|
||||
|
||||
//we try to count & limit how much the user can insert of each type to prevent them from using it as an normal storage medium
|
||||
for(var/obj/item/stack/stack_content in parent)
|
||||
//is user trying to insert any of these listed bluespace stuff
|
||||
if(is_type_in_list(I, allowed_bluespace_types))
|
||||
//if yes count total bluespace stuff is the RPED and then compare the total amount to the value the user is trying to insert
|
||||
if(is_type_in_list(stack_content, allowed_bluespace_types))
|
||||
present_amount += stack_content.amount
|
||||
//count other normal stack stuff
|
||||
else if(istype(I,stack_content.type))
|
||||
present_amount = stack_content.amount
|
||||
break
|
||||
|
||||
//no more storage for this specific stack type
|
||||
if(MAX_STACK_PICKUP - present_amount == 0)
|
||||
return FALSE
|
||||
|
||||
//we want the user to insert the exact stack amount which is available so we dont have to bother subtracting & leaving left overs for the user
|
||||
var/available = MAX_STACK_PICKUP-present_amount
|
||||
if(available - the_stack.amount < 0)
|
||||
return FALSE
|
||||
|
||||
else if(istype(I, /obj/item/circuitboard/machine) || istype(I, /obj/item/circuitboard/computer))
|
||||
return TRUE
|
||||
|
||||
//check normal insertion of other stock parts
|
||||
else if(!I.get_part_rating())
|
||||
return FALSE
|
||||
|
||||
return .
|
||||
|
||||
/datum/component/storage/concrete/bluespace/rped/quick_empty(mob/M)
|
||||
var/atom/A = parent
|
||||
@@ -85,3 +182,5 @@
|
||||
stoplag(1)
|
||||
progress.end_progress()
|
||||
A.do_squish(0.8, 1.2)
|
||||
|
||||
#undef MAX_STACK_PICKUP
|
||||
|
||||
@@ -138,12 +138,18 @@
|
||||
var/static/list/show_directions = list(SOUTH, WEST)
|
||||
if(H.mind && (H.mind.assigned_role != H.mind.special_role))
|
||||
var/assignment
|
||||
var/displayed_rank
|
||||
if(H.mind.assigned_role)
|
||||
assignment = H.mind.assigned_role
|
||||
else if(H.job)
|
||||
assignment = H.job
|
||||
else
|
||||
assignment = "Unassigned"
|
||||
if(C && C.prefs && C.prefs.alt_titles_preferences[assignment])
|
||||
assignment = C.prefs.alt_titles_preferences[assignment]
|
||||
|
||||
if(assignment)
|
||||
displayed_rank = C.prefs.alt_titles_preferences[assignment]
|
||||
|
||||
var/static/record_id_num = 1001
|
||||
var/id = num2hex(record_id_num++,6)
|
||||
@@ -166,7 +172,7 @@
|
||||
var/datum/data/record/G = new()
|
||||
G.fields["id"] = id
|
||||
G.fields["name"] = H.real_name
|
||||
G.fields["rank"] = assignment
|
||||
G.fields["rank"] = displayed_rank
|
||||
G.fields["age"] = H.age
|
||||
G.fields["species"] = H.dna.species.name
|
||||
G.fields["fingerprint"] = md5(H.dna.uni_identity)
|
||||
@@ -213,7 +219,7 @@
|
||||
var/datum/data/record/L = new()
|
||||
L.fields["id"] = md5("[H.real_name][H.mind.assigned_role]") //surely this should just be id, like the others?
|
||||
L.fields["name"] = H.real_name
|
||||
L.fields["rank"] = H.mind.assigned_role
|
||||
L.fields["rank"] = displayed_rank
|
||||
L.fields["age"] = H.age
|
||||
if(H.gender == MALE)
|
||||
G.fields["gender"] = "Male"
|
||||
|
||||
@@ -284,4 +284,4 @@
|
||||
weight = 2
|
||||
event_control_path = /datum/round_event_control/radiation_storm
|
||||
weight_multiplier = 1.5
|
||||
max_occurrences_modifier = 2
|
||||
max_occurrences_modifier = 0 //GS13 - radstorm bad
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
area_type = /area
|
||||
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
|
||||
/area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/ruin/lavaland)
|
||||
/area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/ruin/lavaland, /area/commons/dorms, /area/service/bar) //GS13 Edit: Dorms and bar are safe...
|
||||
target_trait = ZTRAIT_STATION
|
||||
|
||||
immunity_type = TRAIT_RADSTORM_IMMUNE
|
||||
|
||||
@@ -17,9 +17,9 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
||||
circuit = /obj/item/circuitboard/machine/announcement_system
|
||||
|
||||
var/obj/item/radio/headset/radio
|
||||
var/arrival = "%PERSON has signed up as %RANK"
|
||||
var/arrival = "%PERSON has signed up as %DISP_RANK (%RANK)"
|
||||
var/arrivalToggle = TRUE
|
||||
var/newhead = "%PERSON, %RANK, is the department head."
|
||||
var/newhead = "%PERSON, %DISP_RANK (%RANK), is the department head."
|
||||
var/newheadToggle = TRUE
|
||||
var/cryostorage = "%PERSON, %RANK, has been moved into cryogenic storage." // this shouldnt be changed
|
||||
|
||||
@@ -70,23 +70,24 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/announcement_system/proc/CompileText(str, user, rank) //replaces user-given variables with actual thingies.
|
||||
/obj/machinery/announcement_system/proc/CompileText(str, user, rank, displayed_rank) //replaces user-given variables with actual thingies.
|
||||
str = replacetext(str, "%PERSON", "[user]")
|
||||
str = replacetext(str, "%RANK", "[rank]")
|
||||
str = replacetext(str, "%DISP_RANK", "[displayed_rank]")
|
||||
return str
|
||||
|
||||
/obj/machinery/announcement_system/proc/announce(message_type, user, rank, list/channels)
|
||||
/obj/machinery/announcement_system/proc/announce(message_type, user, rank, displayed_rank, list/channels)
|
||||
if(!is_operational())
|
||||
return
|
||||
|
||||
var/message
|
||||
|
||||
if(message_type == "ARRIVAL" && arrivalToggle)
|
||||
message = CompileText(arrival, user, rank)
|
||||
message = CompileText(arrival, user, rank, displayed_rank)
|
||||
else if(message_type == "NEWHEAD" && newheadToggle)
|
||||
message = CompileText(newhead, user, rank)
|
||||
message = CompileText(newhead, user, rank, displayed_rank)
|
||||
else if(message_type == "CRYOSTORAGE")
|
||||
message = CompileText(cryostorage, user, rank)
|
||||
message = CompileText(cryostorage, user, rank, displayed_rank)
|
||||
else if(message_type == "ARRIVALS_BROKEN")
|
||||
message = "The arrivals shuttle has been damaged. Docking for repairs..."
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
/obj/machinery/door/airlock
|
||||
name = "airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/public.dmi' //GS13 change (perspective sprites)
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/public.dmi' //GS13 Edit: perspective sprites
|
||||
icon_state = "closed"
|
||||
max_integrity = 300
|
||||
var/normal_integrity = AIRLOCK_INTEGRITY_N
|
||||
@@ -87,8 +87,10 @@
|
||||
var/previous_airlock = /obj/structure/door_assembly //what airlock assembly mineral plating was applied to
|
||||
var/wiretypepath = /datum/wires/airlock // which set of per round randomized wires this airlock type has.
|
||||
var/airlock_material //material of inner filling; if its an airlock with glass, this should be set to "glass"
|
||||
//GS13 Edit Start: perspective sprites
|
||||
var/overlays_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi'
|
||||
var/note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi' //Used for papers and photos pinned to the airlock
|
||||
//GS13 End
|
||||
|
||||
var/cyclelinkeddir = 0
|
||||
var/obj/machinery/door/airlock/cyclelinkedairlock
|
||||
@@ -611,22 +613,22 @@
|
||||
/obj/machinery/door/airlock/proc/check_unres() //unrestricted sides. This overlay indicates which directions the player can access even without an ID
|
||||
if(hasPower() && unres_sides)
|
||||
if(unres_sides & NORTH)
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_n") //layer=src.layer+1
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_n") //layer=src.layer+1 //GS13 Edit: perspective sprites
|
||||
I.pixel_y = 32
|
||||
set_light(l_range = 2, l_power = 1)
|
||||
add_overlay(I)
|
||||
if(unres_sides & SOUTH)
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_s") //layer=src.layer+1
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_s") //layer=src.layer+1 //GS13 Edit: perspective sprites
|
||||
I.pixel_y = -32
|
||||
set_light(l_range = 2, l_power = 1)
|
||||
add_overlay(I)
|
||||
if(unres_sides & EAST)
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_e") //layer=src.layer+1
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_e") //layer=src.layer+1 //GS13 Edit: perspective sprites
|
||||
I.pixel_x = 32
|
||||
set_light(l_range = 2, l_power = 1)
|
||||
add_overlay(I)
|
||||
if(unres_sides & WEST)
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_w") //layer=src.layer+1
|
||||
var/image/I = image(icon='GainStation13/icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_w") //layer=src.layer+1 //GS13 Edit: perspective sprites
|
||||
I.pixel_x = -32
|
||||
set_light(l_range = 2, l_power = 1)
|
||||
add_overlay(I)
|
||||
|
||||
@@ -2,25 +2,23 @@
|
||||
Station Airlocks Regular
|
||||
*/
|
||||
|
||||
//GS13 - changed most of these airlock sprite paths to use perspective-oriented airlocks
|
||||
|
||||
/obj/machinery/door/airlock/abandoned
|
||||
abandoned = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/command
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/command.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/command.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_com
|
||||
wiretypepath = /datum/wires/airlock/command
|
||||
normal_integrity = 450
|
||||
|
||||
/obj/machinery/door/airlock/security
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/security.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/security.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_sec
|
||||
wiretypepath = /datum/wires/airlock/security
|
||||
normal_integrity = 450
|
||||
|
||||
/obj/machinery/door/airlock/engineering
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/engineering.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/engineering.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_eng
|
||||
wiretypepath = /datum/wires/airlock/engineering
|
||||
|
||||
@@ -28,13 +26,13 @@
|
||||
abandoned = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/medical
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/medical.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/medical.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_med
|
||||
wiretypepath = /datum/wires/airlock/medical
|
||||
|
||||
/obj/machinery/door/airlock/maintenance
|
||||
name = "maintenance access"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_mai
|
||||
normal_integrity = 250
|
||||
|
||||
@@ -43,18 +41,18 @@
|
||||
|
||||
/obj/machinery/door/airlock/maintenance/external
|
||||
name = "external airlock access"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenanceexternal.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_extmai
|
||||
|
||||
/obj/machinery/door/airlock/mining
|
||||
name = "mining airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/mining.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/mining.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_min
|
||||
wiretypepath = /datum/wires/airlock/cargo
|
||||
|
||||
/obj/machinery/door/airlock/atmos
|
||||
name = "atmospherics airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/atmos.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/atmos.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_atmo
|
||||
wiretypepath = /datum/wires/airlock/engineering
|
||||
|
||||
@@ -62,22 +60,22 @@
|
||||
abandoned = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/research
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/research.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/research.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_research
|
||||
wiretypepath = /datum/wires/airlock/science
|
||||
|
||||
/obj/machinery/door/airlock/freezer
|
||||
name = "freezer airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/freezer.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/freezer.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_fre
|
||||
|
||||
/obj/machinery/door/airlock/science
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/science.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/science.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_science
|
||||
wiretypepath = /datum/wires/airlock/science
|
||||
|
||||
/obj/machinery/door/airlock/virology
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/virology.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/virology.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_viro
|
||||
wiretypepath = /datum/wires/airlock/medical
|
||||
|
||||
@@ -181,7 +179,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/gold
|
||||
name = "gold airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/gold.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/gold.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_gold
|
||||
|
||||
/obj/machinery/door/airlock/gold/glass
|
||||
@@ -190,7 +188,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/silver
|
||||
name = "silver airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/silver.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/silver.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_silver
|
||||
|
||||
/obj/machinery/door/airlock/silver/glass
|
||||
@@ -199,7 +197,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/diamond
|
||||
name = "diamond airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/diamond.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/diamond.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_diamond
|
||||
normal_integrity = 1000
|
||||
explosion_block = 2
|
||||
@@ -211,7 +209,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/uranium
|
||||
name = "uranium airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/uranium.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/uranium.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_uranium
|
||||
var/last_event = 0
|
||||
|
||||
@@ -233,7 +231,7 @@
|
||||
/obj/machinery/door/airlock/plasma
|
||||
name = "plasma airlock"
|
||||
desc = "No way this can end badly."
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/plasma.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/plasma.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_plasma
|
||||
|
||||
/obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
@@ -274,7 +272,7 @@
|
||||
/obj/machinery/door/airlock/bananium
|
||||
name = "bananium airlock"
|
||||
desc = "Honkhonkhonk"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/bananium.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/bananium.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_bananium
|
||||
doorOpen = 'sound/items/bikehorn.ogg'
|
||||
|
||||
@@ -284,7 +282,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/sandstone
|
||||
name = "sandstone airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/sandstone.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_sandstone
|
||||
|
||||
/obj/machinery/door/airlock/sandstone/glass
|
||||
@@ -293,7 +291,7 @@
|
||||
|
||||
/obj/machinery/door/airlock/wood
|
||||
name = "wooden airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/wood.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/wood.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_wood
|
||||
|
||||
/obj/machinery/door/airlock/wood/glass
|
||||
@@ -303,8 +301,8 @@
|
||||
/obj/machinery/door/airlock/titanium
|
||||
name = "shuttle airlock"
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_titanium
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
normal_integrity = 400
|
||||
|
||||
/obj/machinery/door/airlock/titanium/glass
|
||||
@@ -314,8 +312,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/bronze
|
||||
name = "bronze airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/clockwork/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_bronze
|
||||
|
||||
/obj/machinery/door/airlock/bronze/seethru
|
||||
@@ -329,8 +327,8 @@
|
||||
*/
|
||||
|
||||
/obj/machinery/door/airlock/public
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station2/glass.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station2/glass.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station2/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_public
|
||||
|
||||
/obj/machinery/door/airlock/public/glass
|
||||
@@ -358,9 +356,9 @@
|
||||
|
||||
/obj/machinery/door/airlock/external
|
||||
name = "external airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/external/external.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi'
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/external/external.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_ext
|
||||
|
||||
/obj/machinery/door/airlock/external/glass
|
||||
@@ -373,16 +371,16 @@
|
||||
*/
|
||||
|
||||
/obj/machinery/door/airlock/centcom //Use grunge as a station side version, as these have special effects related to them via phobias and such.
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_centcom
|
||||
normal_integrity = 1000
|
||||
security_level = 6
|
||||
explosion_block = 2
|
||||
|
||||
/obj/machinery/door/airlock/grunge
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/centcom/centcom.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/centcom/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_grunge
|
||||
|
||||
/obj/machinery/door/airlock/grunge/abandoned
|
||||
@@ -395,8 +393,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/vault
|
||||
name = "vault door"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/vault/vault.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/vault/vault.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/vault/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_vault
|
||||
wiretypepath = /datum/wires/airlock/secure
|
||||
explosion_block = 2
|
||||
@@ -410,16 +408,16 @@
|
||||
|
||||
/obj/machinery/door/airlock/hatch
|
||||
name = "airtight hatch"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/centcom.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_hatch
|
||||
|
||||
/obj/machinery/door/airlock/maintenance_hatch
|
||||
name = "maintenance hatch"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/hatch/maintenance.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/hatch/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_mhatch
|
||||
|
||||
/obj/machinery/door/airlock/maintenance_hatch/abandoned
|
||||
@@ -432,8 +430,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/highsecurity
|
||||
name = "high tech security airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/highsec/highsec.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/highsec/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_highsecurity
|
||||
explosion_block = 2
|
||||
normal_integrity = 500
|
||||
@@ -447,8 +445,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/shuttle
|
||||
name = "shuttle airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/shuttle/shuttle.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/shuttle/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_shuttle
|
||||
|
||||
/obj/machinery/door/airlock/shuttle/glass
|
||||
@@ -458,10 +456,10 @@
|
||||
/obj/machinery/door/airlock/abductor
|
||||
name = "alien airlock"
|
||||
desc = "With humanity's current technological level, it could take years to hack this advanced airlock... or maybe we should give a screwdriver a try?"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/abductor/abductor_airlock.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/abductor/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_abductor
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi'
|
||||
note_overlay_file = 'GainStation13/icons/obj/doors/airlocks/external/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
damage_deflection = 30
|
||||
explosion_block = 3
|
||||
hackProof = TRUE
|
||||
@@ -476,8 +474,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/cult
|
||||
name = "cult airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/cult/runed/cult.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/runed/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_cult
|
||||
hackProof = TRUE
|
||||
aiControlDisabled = 1
|
||||
@@ -526,8 +524,8 @@
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/door/airlock/cult/proc/conceal()
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/station/maintenance.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/station/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
name = "airlock"
|
||||
desc = "It opens and closes."
|
||||
stealthy = TRUE
|
||||
@@ -558,8 +556,8 @@
|
||||
friendly = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/cult/unruned
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/cult.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/cult/unruned/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned
|
||||
openingoverlaytype = /obj/effect/temp_visual/cult/door/unruned
|
||||
|
||||
@@ -701,8 +699,8 @@
|
||||
|
||||
/obj/machinery/door/airlock/glass_large
|
||||
name = "large glass airlock"
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi'
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi'
|
||||
icon = 'GainStation13/icons/obj/doors/airlocks/glass_large/glass_large.dmi' //GS13 Edit: perspective sprites
|
||||
overlays_file = 'GainStation13/icons/obj/doors/airlocks/glass_large/overlays.dmi' //GS13 Edit: perspective sprites
|
||||
opacity = 0
|
||||
assemblytype = null
|
||||
glass = TRUE
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/door/poddoor
|
||||
name = "blast door"
|
||||
desc = "A heavy duty blast door that opens mechanically."
|
||||
icon = 'GainStation13/icons/obj/doors/blastdoor.dmi' //GS13
|
||||
icon = 'GainStation13/icons/obj/doors/blastdoor.dmi' //GS13 Edit: perspective sprites
|
||||
icon_state = "closed"
|
||||
var/id = 1
|
||||
layer = BLASTDOOR_LAYER
|
||||
|
||||