9
.vscode/settings.json
vendored
@@ -12,12 +12,9 @@
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
"workbench.editorAssociations": [
|
||||
{
|
||||
"filenamePattern": "*.dmi",
|
||||
"viewType": "imagePreview.previewEditor"
|
||||
}
|
||||
],
|
||||
"workbench.editorAssociations": {
|
||||
"*.dmi": "imagePreview.previewEditor"
|
||||
},
|
||||
"files.eol": "\n",
|
||||
"gitlens.advanced.blame.customArguments": ["-w"],
|
||||
"tgstationTestExplorer.project.resultsType": "json",
|
||||
|
||||
@@ -14064,6 +14064,25 @@
|
||||
},
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"bbJ" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1;
|
||||
layer = 2.9
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"bbQ" = (
|
||||
/obj/structure/sign/poster/random,
|
||||
/turf/closed/wall,
|
||||
@@ -20284,6 +20303,29 @@
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bFm" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"bFD" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -23429,9 +23471,6 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
@@ -30106,9 +30145,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"cgW" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
@@ -30125,6 +30161,9 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"cgX" = (
|
||||
@@ -32693,9 +32732,6 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
@@ -36366,6 +36402,10 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"cEA" = (
|
||||
/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide,
|
||||
/turf/open/floor/engine/co2,
|
||||
/area/engineering/atmos)
|
||||
"cFF" = (
|
||||
/turf/open/floor/engine{
|
||||
name = "Holodeck Projector Floor"
|
||||
@@ -46132,8 +46172,8 @@
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/machinery/atmospherics/components/binary/valve/digital{
|
||||
icon_state = "dvalve_map-2";
|
||||
dir = 8
|
||||
dir = 8;
|
||||
icon_state = "dvalve_map-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/xenobiology)
|
||||
@@ -72111,6 +72151,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"ewA" = (
|
||||
@@ -74589,8 +74630,10 @@
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library)
|
||||
"fsx" = (
|
||||
/obj/machinery/portable_atmospherics/canister/air,
|
||||
/turf/open/floor/engine/air,
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engineering/atmos)
|
||||
"fsP" = (
|
||||
/obj/structure/table/wood,
|
||||
@@ -77511,8 +77554,8 @@
|
||||
/area/engineering/main)
|
||||
"grf" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
|
||||
icon_state = "pipe11-2";
|
||||
dir = 5
|
||||
dir = 5;
|
||||
icon_state = "pipe11-2"
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/xenobiology)
|
||||
@@ -77848,8 +77891,8 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
|
||||
icon_state = "inje_map-2";
|
||||
dir = 4
|
||||
dir = 4;
|
||||
icon_state = "inje_map-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
@@ -83374,6 +83417,28 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/command/storage/eva)
|
||||
"ipc" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"ipl" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/book/manual/wiki/engineering_hacking{
|
||||
@@ -92073,7 +92138,6 @@
|
||||
/turf/closed/wall,
|
||||
/area/commons/storage/primary)
|
||||
"lkg" = (
|
||||
/obj/machinery/portable_atmospherics/canister/toxins,
|
||||
/obj/machinery/atmospherics/miner/toxins,
|
||||
/turf/open/floor/engine/plasma,
|
||||
/area/engineering/atmos)
|
||||
@@ -93634,7 +93698,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engineering/main)
|
||||
"lNq" = (
|
||||
/obj/machinery/portable_atmospherics/canister/nitrogen,
|
||||
/obj/machinery/atmospherics/miner/nitrogen,
|
||||
/turf/open/floor/engine/n2,
|
||||
/area/engineering/atmos)
|
||||
@@ -94989,6 +95052,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engineering/atmos)
|
||||
"mmq" = (
|
||||
/obj/effect/turf_decal/vg_decals/atmos/nitrogen,
|
||||
/turf/open/floor/engine/n2,
|
||||
/area/engineering/atmos)
|
||||
"mmC" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
@@ -100471,7 +100538,6 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library)
|
||||
"ohX" = (
|
||||
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
|
||||
/obj/machinery/atmospherics/miner/carbon_dioxide,
|
||||
/turf/open/floor/engine/co2,
|
||||
/area/engineering/atmos)
|
||||
@@ -102237,6 +102303,27 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"oOQ" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1;
|
||||
layer = 2.9
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"oOV" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -102476,9 +102563,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engineering/break_room)
|
||||
"oTt" = (
|
||||
/obj/machinery/portable_atmospherics/canister/nitrous_oxide{
|
||||
valve_open = 1
|
||||
},
|
||||
/obj/machinery/atmospherics/miner/n2o,
|
||||
/turf/open/floor/engine/n2o,
|
||||
/area/engineering/atmos)
|
||||
@@ -103357,6 +103441,28 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/cargo/qm)
|
||||
"pkY" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"plb" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
@@ -105873,6 +105979,7 @@
|
||||
dir = 1;
|
||||
name = "atmospherics camera"
|
||||
},
|
||||
/obj/effect/turf_decal/vg_decals/atmos/mix,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engineering/atmos)
|
||||
"qbJ" = (
|
||||
@@ -105921,6 +106028,10 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engineering/atmos)
|
||||
"qcm" = (
|
||||
/obj/effect/turf_decal/vg_decals/atmos/plasma,
|
||||
/turf/open/floor/engine/plasma,
|
||||
/area/engineering/atmos)
|
||||
"qcW" = (
|
||||
/obj/machinery/firealarm{
|
||||
pixel_y = 26
|
||||
@@ -108117,6 +108228,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engineering/atmospherics_engine)
|
||||
"qYy" = (
|
||||
/obj/effect/turf_decal/vg_decals/atmos/oxygen,
|
||||
/turf/open/floor/engine/o2,
|
||||
/area/engineering/atmos)
|
||||
"qYD" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
|
||||
dir = 9
|
||||
@@ -109796,6 +109911,10 @@
|
||||
dir = 6
|
||||
},
|
||||
/area/science/circuit)
|
||||
"rCx" = (
|
||||
/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide,
|
||||
/turf/open/floor/engine/n2o,
|
||||
/area/engineering/atmos)
|
||||
"rCK" = (
|
||||
/obj/machinery/button/door{
|
||||
id = "teleporterhubshutters";
|
||||
@@ -115966,6 +116085,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"tBF" = (
|
||||
/obj/effect/turf_decal/vg_decals/atmos/air,
|
||||
/turf/open/floor/engine/air,
|
||||
/area/engineering/atmos)
|
||||
"tBH" = (
|
||||
/obj/machinery/door/airlock/atmos/glass/critical{
|
||||
heat_proof = 1;
|
||||
@@ -116977,7 +117100,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/cargo/storage)
|
||||
"tWb" = (
|
||||
/obj/machinery/portable_atmospherics/canister/oxygen,
|
||||
/obj/machinery/atmospherics/miner/oxygen,
|
||||
/turf/open/floor/engine/o2,
|
||||
/area/engineering/atmos)
|
||||
@@ -122614,6 +122736,29 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/chapel/office)
|
||||
"wcM" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"wei" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -124381,6 +124526,29 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engineering/atmos)
|
||||
"wIV" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1;
|
||||
layer = 2.9
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/aisat/exterior)
|
||||
"wJE" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
@@ -134718,7 +134886,7 @@ bkF
|
||||
pQq
|
||||
hzs
|
||||
hzs
|
||||
hzs
|
||||
ipc
|
||||
hzs
|
||||
uSd
|
||||
fWX
|
||||
@@ -134726,7 +134894,7 @@ gxc
|
||||
gxc
|
||||
gxc
|
||||
gxc
|
||||
gxc
|
||||
bFm
|
||||
gxc
|
||||
kdA
|
||||
brN
|
||||
@@ -135253,12 +135421,12 @@ cab
|
||||
bPC
|
||||
bRO
|
||||
ivC
|
||||
gxc
|
||||
bFm
|
||||
gxc
|
||||
eCQ
|
||||
hzs
|
||||
oMz
|
||||
hzs
|
||||
ipc
|
||||
hzs
|
||||
rew
|
||||
brN
|
||||
@@ -136000,7 +136168,7 @@ ajr
|
||||
ajr
|
||||
ajr
|
||||
bkF
|
||||
tBB
|
||||
bbJ
|
||||
brO
|
||||
aad
|
||||
btH
|
||||
@@ -136031,7 +136199,7 @@ cdt
|
||||
cdt
|
||||
aad
|
||||
bkE
|
||||
tBB
|
||||
oOQ
|
||||
brM
|
||||
ajr
|
||||
ajr
|
||||
@@ -138056,7 +138224,7 @@ ajr
|
||||
ajr
|
||||
ajr
|
||||
bkF
|
||||
tBB
|
||||
bbJ
|
||||
brO
|
||||
aad
|
||||
btH
|
||||
@@ -138087,7 +138255,7 @@ cdt
|
||||
cdt
|
||||
aad
|
||||
bkE
|
||||
tBB
|
||||
oOQ
|
||||
brM
|
||||
ajr
|
||||
ajr
|
||||
@@ -138851,12 +139019,12 @@ cam
|
||||
bPC
|
||||
bRO
|
||||
ygA
|
||||
gxc
|
||||
wcM
|
||||
gxc
|
||||
eCQ
|
||||
hzs
|
||||
xaW
|
||||
hzs
|
||||
pkY
|
||||
hzs
|
||||
elb
|
||||
brN
|
||||
@@ -139344,7 +139512,7 @@ bkF
|
||||
mdI
|
||||
hzs
|
||||
hzs
|
||||
hzs
|
||||
pkY
|
||||
hzs
|
||||
uhb
|
||||
fWX
|
||||
@@ -139352,7 +139520,7 @@ gxc
|
||||
gxc
|
||||
gxc
|
||||
tzE
|
||||
gxc
|
||||
wcM
|
||||
gxc
|
||||
xic
|
||||
brN
|
||||
@@ -141414,7 +141582,7 @@ aad
|
||||
bNF
|
||||
aad
|
||||
bRP
|
||||
swP
|
||||
wIV
|
||||
stE
|
||||
evL
|
||||
aJD
|
||||
@@ -149868,15 +150036,15 @@ aSQ
|
||||
iio
|
||||
iMu
|
||||
ohX
|
||||
hFW
|
||||
cEA
|
||||
iio
|
||||
sEM
|
||||
lkg
|
||||
kRS
|
||||
qcm
|
||||
iio
|
||||
rUo
|
||||
oTt
|
||||
lbI
|
||||
rCx
|
||||
iio
|
||||
kcG
|
||||
kcG
|
||||
@@ -152950,13 +153118,13 @@ fcn
|
||||
lfN
|
||||
oUP
|
||||
hlN
|
||||
lXg
|
||||
fsx
|
||||
rmJ
|
||||
lXg
|
||||
lXg
|
||||
lXg
|
||||
xQQ
|
||||
lXg
|
||||
fsx
|
||||
lXg
|
||||
lXg
|
||||
mhk
|
||||
@@ -157318,16 +157486,16 @@ aaa
|
||||
aad
|
||||
iio
|
||||
wTN
|
||||
fsx
|
||||
lEq
|
||||
tBF
|
||||
iio
|
||||
wjw
|
||||
tWb
|
||||
sCm
|
||||
qYy
|
||||
iio
|
||||
eFu
|
||||
lNq
|
||||
skw
|
||||
mmq
|
||||
iio
|
||||
aMN
|
||||
emZ
|
||||
|
||||
@@ -84,7 +84,35 @@ GLOBAL_LIST_INIT(mutant_transform_list, list("wingsopen" = "wings",
|
||||
"waggingspines" = "spines",
|
||||
"mam_waggingtail" = "mam_tail"))
|
||||
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list(
|
||||
"ghost",
|
||||
"ghostian",
|
||||
"ghostian2",
|
||||
"ghostking",
|
||||
"ghost_red",
|
||||
"ghost_black",
|
||||
"ghost_blue",
|
||||
"ghost_yellow",
|
||||
"ghost_green",
|
||||
"ghost_pink",
|
||||
"ghost_cyan",
|
||||
"ghost_dblue",
|
||||
"ghost_dred",
|
||||
"ghost_dgreen",
|
||||
"ghost_dcyan",
|
||||
"ghost_grey",
|
||||
"ghost_dyellow",
|
||||
"ghost_dpink",
|
||||
"skeleghost",
|
||||
"ghost_purpleswirl",
|
||||
"ghost_rainbow",
|
||||
"ghost_fire",
|
||||
"ghost_funkypurp",
|
||||
"ghost_pinksherbert",
|
||||
"ghost_blazeit",
|
||||
"ghost_mellow",
|
||||
"ghost_camo",
|
||||
"catghost")) //stores the ghost forms that support directional sprites
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list("ghost")) //stores the ghost forms that support hair and other such things
|
||||
|
||||
GLOBAL_LIST_INIT(ai_core_display_screens, list(
|
||||
|
||||
@@ -7,8 +7,9 @@
|
||||
var/left_hand
|
||||
var/inv_slots
|
||||
var/proctype //if present, will be invoked on headwear generation.
|
||||
var/escape_on_find = FALSE //if present, will be released upon the item being 'found' (i.e. opening a container or pocket with it present)
|
||||
|
||||
/datum/element/mob_holder/Attach(datum/target, worn_state, alt_worn, right_hand, left_hand, inv_slots = NONE, proctype)
|
||||
/datum/element/mob_holder/Attach(datum/target, worn_state, alt_worn, right_hand, left_hand, inv_slots = NONE, proctype, escape_on_find)
|
||||
. = ..()
|
||||
|
||||
if(!isliving(target))
|
||||
@@ -20,6 +21,7 @@
|
||||
src.left_hand = left_hand
|
||||
src.inv_slots = inv_slots
|
||||
src.proctype = proctype
|
||||
src.escape_on_find = escape_on_find
|
||||
|
||||
RegisterSignal(target, COMSIG_CLICK_ALT, .proc/mob_try_pickup)
|
||||
RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine)
|
||||
@@ -55,6 +57,8 @@
|
||||
to_chat(user, "<span class='notice'>You pick [source] up.</span>")
|
||||
source.drop_all_held_items()
|
||||
var/obj/item/clothing/head/mob_holder/holder = new(get_turf(source), source, worn_state, alt_worn, right_hand, left_hand, inv_slots)
|
||||
holder.escape_on_find = escape_on_find
|
||||
|
||||
if(proctype)
|
||||
INVOKE_ASYNC(src, proctype, source, holder, user)
|
||||
user.put_in_hands(holder)
|
||||
@@ -78,6 +82,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
dynamic_hair_suffix = ""
|
||||
var/mob/living/held_mob
|
||||
var/escape_on_find
|
||||
|
||||
/obj/item/clothing/head/mob_holder/Initialize(mapload, mob/living/target, worn_state, alt_worn, right_hand, left_hand, slots = NONE)
|
||||
. = ..()
|
||||
@@ -189,3 +194,9 @@
|
||||
if(ismob(location))
|
||||
return location.loc.remove_air(amount)
|
||||
return location.remove_air(amount)
|
||||
|
||||
// escape when found if applicable
|
||||
/obj/item/clothing/head/mob_holder/on_found(mob/living/finder)
|
||||
if(escape_on_find)
|
||||
finder.visible_message("[finder] accidentally releases the [held_mob]!")
|
||||
release()
|
||||
|
||||
@@ -8,23 +8,24 @@
|
||||
time_coeff = 5
|
||||
instability = 30
|
||||
|
||||
/datum/mutation/human/space_adaptation/New(class_ = MUT_OTHER, timer, datum/mutation/human/copymut)
|
||||
..()
|
||||
if(!(type in visual_indicators))
|
||||
visual_indicators[type] = list(mutable_appearance('icons/effects/genetics.dmi', "space_adapt", -MUTATIONS_LAYER))
|
||||
|
||||
/datum/mutation/human/space_adaptation/get_visual_indicator()
|
||||
return visual_indicators[type][1]
|
||||
|
||||
/datum/mutation/human/space_adaptation/on_acquiring(mob/living/carbon/human/owner)
|
||||
if(..())
|
||||
return
|
||||
ADD_TRAIT(owner, TRAIT_RESISTCOLD, "cold_resistance")
|
||||
ADD_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance")
|
||||
owner.add_filter("space_glow", 2, list("type" = "outline", "color" = "#ffe46bd8", "size" = 1))
|
||||
addtimer(CALLBACK(src, .proc/glow_loop, owner), rand(1,19))
|
||||
|
||||
/datum/mutation/human/space_adaptation/proc/glow_loop(mob/living/carbon/human/owner)
|
||||
var/filter = owner.get_filter("space_glow")
|
||||
if(filter)
|
||||
animate(filter, alpha = 190, time = 15, loop = -1)
|
||||
animate(alpha = 110, time = 25)
|
||||
|
||||
/datum/mutation/human/space_adaptation/on_losing(mob/living/carbon/human/owner)
|
||||
if(..())
|
||||
return
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTCOLD, "cold_resistance")
|
||||
REMOVE_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance")
|
||||
owner.remove_filter("space_glow")
|
||||
|
||||
|
||||
@@ -18,8 +18,6 @@ GLOBAL_LIST_INIT(meteorsB, list(/obj/effect/meteor/meaty=5, /obj/effect/meteor/m
|
||||
|
||||
GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
|
||||
|
||||
GLOBAL_LIST_INIT(meteorsCat, list(/obj/effect/meteor/cat)) //for cat meteors
|
||||
|
||||
|
||||
///////////////////////////////
|
||||
//Meteor spawning global procs
|
||||
@@ -347,17 +345,6 @@ GLOBAL_LIST_INIT(meteorsCat, list(/obj/effect/meteor/cat)) //for cat meteors
|
||||
..()
|
||||
if(prob(20))
|
||||
explosion(src.loc,2,4,6,8)
|
||||
|
||||
/obj/effect/meteor/cat
|
||||
name = "space cat"
|
||||
icon_state = "catmeteor"
|
||||
desc = "Meow."
|
||||
hits = 1
|
||||
heavy = FALSE
|
||||
meteorsound = 'sound/effects/meow1.ogg'
|
||||
meteordrop = list(/mob/living/simple_animal/pet/cat/space)
|
||||
threat = 0
|
||||
dropamt = 1
|
||||
|
||||
//////////////////////////
|
||||
//Spookoween meteors
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
/obj/machinery/computer/bank_machine
|
||||
name = "bank machine"
|
||||
desc = "A machine used to deposit and withdraw station funds."
|
||||
icon = 'goon/icons/obj/goon_terminals.dmi'
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
icon_screen = "vault"
|
||||
icon_keyboard = "security_key"
|
||||
idle_power_usage = 100
|
||||
|
||||
var/siphoning = FALSE
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "A culinary marvel that uses matter-to-energy conversion to store dishes and shards. Convenient! \
|
||||
Additional features include a vacuum function to suck in nearby dishes, and an automatic transfer beam that empties its contents into nearby disposal bins every now and then. \
|
||||
Or you can just drop your plates on the floor, like civilized folk."
|
||||
icon = 'goon/icons/obj/kitchen.dmi'
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "synthesizer"
|
||||
idle_power_usage = 8 //5 with default parts
|
||||
active_power_usage = 13 //10 with default parts
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
var/powered = FALSE //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise
|
||||
var/obj/item/shockpaddles/paddles
|
||||
var/obj/item/stock_parts/cell/cell
|
||||
var/combat = FALSE //can we revive through space suits?
|
||||
var/combat = FALSE //if true, revive through hardsuits, allow for combat shocking, and tint paddles syndicate colors
|
||||
var/grab_ghost = FALSE // Do we pull the ghost back into their body?
|
||||
var/healdisk = FALSE // Does the unit have the healdisk upgrade?
|
||||
var/pullshocksafely = FALSE // Will we shock people dragging the body?
|
||||
@@ -176,7 +176,9 @@
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/defibrillator/proc/make_paddles()
|
||||
return new /obj/item/shockpaddles(src)
|
||||
if(!combat)
|
||||
return new /obj/item/shockpaddles(src)
|
||||
return new /obj/item/shockpaddles/syndicate(src)
|
||||
|
||||
/obj/item/defibrillator/equipped(mob/user, slot)
|
||||
..()
|
||||
@@ -245,6 +247,8 @@
|
||||
/obj/item/defibrillator/compact/combat
|
||||
name = "combat defibrillator"
|
||||
desc = "A belt-equipped blood-red defibrillator that can be rapidly deployed. Does not have the restrictions or safeties of conventional defibrillators and can revive through space suits."
|
||||
icon_state = "defibcombat" //needs defib inhand sprites
|
||||
item_state = "defibcombat"
|
||||
combat = TRUE
|
||||
safety = FALSE
|
||||
always_emagged = TRUE
|
||||
@@ -279,6 +283,7 @@
|
||||
var/combat = FALSE //If it penetrates armor and gives additional functionality
|
||||
var/grab_ghost = FALSE
|
||||
var/tlimit = DEFIB_TIME_LIMIT * 10
|
||||
var/base_icon_state = "defibpaddles"
|
||||
var/disarm_shock_time = 10
|
||||
var/wielded = FALSE // track wielded status on item
|
||||
|
||||
@@ -352,10 +357,10 @@
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/shockpaddles/update_icon_state()
|
||||
icon_state = "defibpaddles[wielded]"
|
||||
item_state = "defibpaddles[wielded]"
|
||||
icon_state = "[base_icon_state][wielded]"
|
||||
item_state = icon_state
|
||||
if(cooldown)
|
||||
icon_state = "defibpaddles[wielded]_cooldown"
|
||||
icon_state = "[base_icon_state][wielded]_cooldown"
|
||||
|
||||
/obj/item/shockpaddles/dropped(mob/user)
|
||||
if(!req_defib)
|
||||
@@ -704,8 +709,9 @@
|
||||
desc = "A pair of paddles used to revive deceased operatives. It possesses both the ability to penetrate armor and to deliver powerful shocks offensively."
|
||||
combat = TRUE
|
||||
icon = 'icons/obj/defibrillators.dmi'
|
||||
icon_state = "defibpaddles0"
|
||||
item_state = "defibpaddles0"
|
||||
icon_state = "syndiepaddles0"
|
||||
item_state = "syndiepaddles0"
|
||||
base_icon_state = "syndiepaddles"
|
||||
req_defib = FALSE
|
||||
|
||||
///////////////////////////////////////////
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/singularityhammer
|
||||
name = "singularity hammer"
|
||||
desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows."
|
||||
icon_state = "mjollnir0"
|
||||
icon_state = "singularity_hammer0"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
|
||||
flags_1 = CONDUCT_1
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/obj/item/singularityhammer/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, force_multiplier=4, icon_wielded="mjollnir1")
|
||||
AddComponent(/datum/component/two_handed, force_multiplier=4, icon_wielded="singularity_hammer1")
|
||||
|
||||
/// triggered on wield of two handed item
|
||||
/obj/item/singularityhammer/proc/on_wield(obj/item/source, mob/user)
|
||||
@@ -36,7 +36,7 @@
|
||||
wielded = FALSE
|
||||
|
||||
/obj/item/singularityhammer/update_icon_state()
|
||||
icon_state = "mjollnir0"
|
||||
icon_state = "singularity_hammer0"
|
||||
|
||||
/obj/item/singularityhammer/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
name = "trash bag of holding"
|
||||
desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage."
|
||||
icon_state = "bluetrashbag"
|
||||
item_state = "bluetrashbag"
|
||||
item_flags = NO_MAT_REDEMPTION
|
||||
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
|
||||
|
||||
|
||||
@@ -211,8 +211,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
"<span class='userdanger'>YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! <i>THERE CAN BE ONLY ONE!!!</i></span>")
|
||||
user.update_icons()
|
||||
new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]"
|
||||
icon_state = "claymore_valhalla"
|
||||
item_state = "cultblade"
|
||||
icon_state = "claymore_gold"
|
||||
item_state = "claymore_gold"
|
||||
remove_atom_colour(ADMIN_COLOUR_PRIORITY)
|
||||
|
||||
name = new_name
|
||||
|
||||
@@ -13,15 +13,16 @@
|
||||
return 0
|
||||
. = ..()
|
||||
|
||||
// Exists to work around the minimum 700 cr price for goodies / small items
|
||||
/obj/structure/closet/secure_closet/goodies
|
||||
// Exists to work around the minimum 700 cr price for goodies / small items / materials
|
||||
/obj/structure/closet/secure_closet/cargo
|
||||
name = "cargo locker"
|
||||
icon_state = "goodies"
|
||||
desc = "A sturdier card-locked storage unit used for bulky shipments."
|
||||
max_integrity = 500 // Same as crates.
|
||||
melee_min_damage = 25 // Idem.
|
||||
|
||||
/obj/structure/closet/secure_closet/goodies/owned
|
||||
name = "private locker"
|
||||
/obj/structure/closet/secure_closet/cargo/owned
|
||||
name = "private cargo locker"
|
||||
desc = "A locker designed to only open for who purchased its contents."
|
||||
///Account of the person buying the crate if private purchasing.
|
||||
var/datum/bank_account/buyer_account
|
||||
@@ -32,18 +33,18 @@
|
||||
///Is the crate being bought by a person, or a budget card?
|
||||
var/department_purchase = FALSE
|
||||
|
||||
/obj/structure/closet/secure_closet/goodies/owned/examine(mob/user)
|
||||
/obj/structure/closet/secure_closet/cargo/owned/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's locked with a privacy lock, and can only be unlocked by the buyer's ID.</span>"
|
||||
|
||||
/obj/structure/closet/secure_closet/goodies/owned/Initialize(mapload, datum/bank_account/_buyer_account)
|
||||
/obj/structure/closet/secure_closet/cargo/owned/Initialize(mapload, datum/bank_account/_buyer_account)
|
||||
. = ..()
|
||||
buyer_account = _buyer_account
|
||||
if(istype(buyer_account, /datum/bank_account/department))
|
||||
department_purchase = TRUE
|
||||
department_account = buyer_account
|
||||
|
||||
/obj/structure/closet/secure_closet/goodies/owned/togglelock(mob/living/user, silent)
|
||||
/obj/structure/closet/secure_closet/cargo/owned/togglelock(mob/living/user, silent)
|
||||
if(privacy_lock)
|
||||
if(!broken)
|
||||
var/obj/item/card/id/id_card = user.get_idcard(TRUE)
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
var/static/list/blacklisted_error = typecacheof(list(
|
||||
/obj/structure/closet/crate/secure,
|
||||
/obj/structure/closet/crate/large,
|
||||
/obj/structure/closet/secure_closet/goodies
|
||||
/obj/structure/closet/secure_closet/cargo
|
||||
))
|
||||
if(is_type_in_list(container, blacklisted_error))
|
||||
P.errors &= ~MANIFEST_ERROR_ITEM
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
/datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account)
|
||||
var/obj/structure/closet/crate/C
|
||||
if(paying_account)
|
||||
if(ispath(crate_type, /obj/structure/closet/secure_closet/goodies)) // lets ensure private orders don't come in crates when the original one comes in lockers
|
||||
C = new /obj/structure/closet/secure_closet/goodies/owned(A, paying_account) // that would lead to infinite money exploits
|
||||
if(ispath(crate_type, /obj/structure/closet/secure_closet/cargo)) // lets ensure private orders don't come in crates when the original one comes in lockers
|
||||
C = new /obj/structure/closet/secure_closet/cargo/owned(A, paying_account) // that would lead to infinite money exploits
|
||||
else
|
||||
C = new /obj/structure/closet/crate/secure/owned(A, paying_account)
|
||||
C.name = "[crate_name] - Purchased by [paying_account.account_holder]"
|
||||
|
||||
@@ -14,56 +14,56 @@
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/supply_pack/materials/cardboard50
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "50 Cardboard Sheets"
|
||||
desc = "Create a bunch of boxes."
|
||||
cost = 300 //thrice their export value
|
||||
contains = list(/obj/item/stack/sheet/cardboard/fifty)
|
||||
|
||||
/datum/supply_pack/materials/glass50
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "50 Glass Sheets"
|
||||
desc = "Let some nice light in with fifty glass sheets!"
|
||||
cost = 300 //double their export value
|
||||
contains = list(/obj/item/stack/sheet/glass/fifty)
|
||||
|
||||
/datum/supply_pack/materials/metal50
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "50 Metal Sheets"
|
||||
desc = "Any construction project begins with a good stack of fifty metal sheets!"
|
||||
cost = 300 //double their export value
|
||||
contains = list(/obj/item/stack/sheet/metal/fifty)
|
||||
|
||||
/datum/supply_pack/materials/plasteel20
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "20 Plasteel Sheets"
|
||||
desc = "Reinforce the station's integrity with twenty plasteel sheets!"
|
||||
cost = 4000
|
||||
contains = list(/obj/item/stack/sheet/plasteel/twenty)
|
||||
|
||||
/datum/supply_pack/materials/plastic50
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
name = "50 Plastic Sheets"
|
||||
/datum/supply_pack/materials/plastic20
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "20 Plastic Sheets"
|
||||
desc = "Build a limitless amount of toys with fifty plastic sheets!"
|
||||
cost = 200 // double their export
|
||||
contains = list(/obj/item/stack/sheet/plastic/twenty)
|
||||
|
||||
/datum/supply_pack/materials/sandstone30
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "30 Sandstone Blocks"
|
||||
desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
|
||||
cost = 150 // five times their export
|
||||
contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
|
||||
|
||||
/datum/supply_pack/materials/wood20
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "20 Wood Planks"
|
||||
desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with twenty wooden planks!"
|
||||
cost = 400 // 6-7 planks shy from having equal import/export prices
|
||||
contains = list(/obj/item/stack/sheet/mineral/wood/twenty)
|
||||
|
||||
/datum/supply_pack/materials/rcdammo
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "Large RCD ammo Single-Pack"
|
||||
desc = "A single large compressed RCD matter pack, to help with any holes or projects people might be working on."
|
||||
cost = 600
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/supply_pack/misc/carpet
|
||||
crate_type = /obj/structure/closet/secure_closet/goodies
|
||||
crate_type = /obj/structure/closet/secure_closet/cargo
|
||||
name = "Classic Carpet Single-Pack"
|
||||
desc = "Plasteel floor tiles getting on your nerves? This 50 units stack of extra soft carpet will tie any room together."
|
||||
cost = 200
|
||||
|
||||
@@ -255,6 +255,13 @@
|
||||
item_state = "maidapron"
|
||||
minimize_when_attached = FALSE
|
||||
|
||||
/obj/item/clothing/accessory/sleevecrop
|
||||
name = "one sleeved crop top"
|
||||
desc = "Off the shoulder crop top, for those nights out partying."
|
||||
icon_state = "sleevecrop"
|
||||
item_state = "sleevecrop"
|
||||
minimize_when_attached = FALSE
|
||||
|
||||
//////////
|
||||
//Medals//
|
||||
//////////
|
||||
@@ -466,6 +473,7 @@
|
||||
////////////////
|
||||
//HA HA! NERD!//
|
||||
////////////////
|
||||
|
||||
/obj/item/clothing/accessory/pocketprotector
|
||||
name = "pocket protector"
|
||||
desc = "Can protect your clothing from ink stains, but you'll look like a nerd if you're using one."
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
|
||||
icon_state = "tactifool"
|
||||
item_state = "bl_suit"
|
||||
has_sensor = TRUE
|
||||
has_sensor = HAS_SENSORS
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 5)
|
||||
|
||||
/obj/item/clothing/under/syndicate/cosmetic/skirt
|
||||
@@ -64,6 +64,7 @@
|
||||
icon_state = "tactifool_skirt"
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
|
||||
can_adjust = FALSE
|
||||
|
||||
/obj/item/clothing/under/syndicate/sniper
|
||||
name = "Tactical turtleneck suit"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
/datum/round_event_control/meteor_wave/cat
|
||||
name = "Meteor Wave: CATastrophic"
|
||||
typepath = /datum/round_event/meteor_wave/cat
|
||||
weight = 10
|
||||
max_occurrences = 1
|
||||
|
||||
/datum/round_event/meteor_wave/cat
|
||||
wave_name = "cat"
|
||||
|
||||
/datum/round_event/meteor_wave/cat/announce(fake)
|
||||
priority_announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert", "meteors")
|
||||
@@ -56,8 +56,6 @@
|
||||
wave_type = GLOB.meteorsC
|
||||
if("halloween")
|
||||
wave_type = GLOB.meteorsSPOOKY
|
||||
if("cat")
|
||||
wave_type = GLOB.meteorsCat
|
||||
else
|
||||
WARNING("Wave name of [wave_name] not recognised.")
|
||||
kill()
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/salad/gumbo
|
||||
subcategory = CAT_MEAT
|
||||
|
||||
|
||||
/datum/crafting_recipe/food/goliathcalamari
|
||||
name = "Goliath Calamari"
|
||||
reqs = list(
|
||||
@@ -221,4 +221,4 @@
|
||||
/datum/reagent/consumable/cooking_oil = 10
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/goliathcalamari
|
||||
|
||||
subcategory = CAT_MEAT
|
||||
|
||||
@@ -266,6 +266,8 @@
|
||||
desc = "A wooden rod about the size of your forearm with a snake carved around it, winding it's way up the sides of the rod. Something about it seems to inspire in you the responsibilty and duty to help others."
|
||||
icon = 'icons/obj/lavaland/artefacts.dmi'
|
||||
icon_state = "asclepius_dormant"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
|
||||
var/activated = FALSE
|
||||
var/usedHand
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
/obj/item/storage/bag/money/Initialize()
|
||||
. = ..()
|
||||
if(prob(20))
|
||||
icon_state = "moneybagalt"
|
||||
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
||||
STR.max_w_class = WEIGHT_CLASS_NORMAL
|
||||
STR.max_items = 40
|
||||
|
||||
@@ -58,12 +58,17 @@
|
||||
var/icon_base = "bee"
|
||||
var/static/beehometypecache = typecacheof(/obj/structure/beebox)
|
||||
var/static/hydroponicstypecache = typecacheof(/obj/machinery/hydroponics)
|
||||
var/held_icon = "" // bees are small and have no held icon (aka the coder doesn't know how to sprite it)
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/bees/Initialize()
|
||||
. = ..()
|
||||
generate_bee_visuals()
|
||||
AddComponent(/datum/component/swarming)
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/bees/ComponentInitialize()
|
||||
. = ..()
|
||||
AddElement(/datum/element/mob_holder, held_icon, escape_on_find = TRUE)
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/bees/Destroy()
|
||||
if(beehome)
|
||||
beehome.bees -= src
|
||||
|
||||
@@ -63,4 +63,4 @@
|
||||
if(printer_slot)
|
||||
. += "It has a printer installed."
|
||||
if(user_is_adjacent)
|
||||
. += "The printer's paper levels are at: [printer_slot.stored_paper]/[printer_slot.max_paper].</span>]"
|
||||
. += "The printer's paper levels are at: [printer_slot.stored_paper]/[printer_slot.max_paper].</span>"
|
||||
|
||||
@@ -114,6 +114,12 @@
|
||||
update_icon()
|
||||
if(user && istype(user))
|
||||
ui_interact(user) // Re-open the UI on this computer. It should show the main screen now.
|
||||
if("eject_pen")
|
||||
if(istype(src, /obj/item/modular_computer/tablet))
|
||||
var/obj/item/modular_computer/tablet/self = src
|
||||
if(self.can_have_pen)
|
||||
self.remove_pen()
|
||||
return
|
||||
|
||||
if("PC_killprogram")
|
||||
var/prog = params["name"]
|
||||
|
||||
@@ -18,6 +18,69 @@
|
||||
var/has_variants = TRUE
|
||||
var/finish_color = null
|
||||
|
||||
//Pen stuff
|
||||
var/list/contained_item = list(/obj/item/pen, /obj/item/toy/crayon, /obj/item/lipstick, /obj/item/flashlight/pen, /obj/item/clothing/mask/cigarette)
|
||||
var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above.
|
||||
var/can_have_pen = TRUE
|
||||
|
||||
/obj/item/modular_computer/tablet/examine(mob/user)
|
||||
. = ..()
|
||||
if(inserted_item && (!isturf(loc)))
|
||||
. += "<span class='notice'>Ctrl-click to remove [inserted_item].</span>"
|
||||
|
||||
/obj/item/modular_computer/tablet/Initialize()
|
||||
. = ..()
|
||||
if(can_have_pen)
|
||||
if(inserted_item)
|
||||
inserted_item = new inserted_item(src)
|
||||
else
|
||||
inserted_item = new /obj/item/pen(src)
|
||||
|
||||
/obj/item/modular_computer/tablet/proc/insert_pen(obj/item/pen)
|
||||
if(!usr.transferItemToLoc(pen, src))
|
||||
return
|
||||
to_chat(usr, "<span class='notice'>You slide \the [pen] into \the [src]'s pen slot.</span>")
|
||||
inserted_item = pen
|
||||
playsound(src, 'sound/machines/button.ogg', 50, 1)
|
||||
|
||||
/obj/item/modular_computer/tablet/proc/remove_pen()
|
||||
if(hasSiliconAccessInArea(usr) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
|
||||
return
|
||||
|
||||
if(inserted_item)
|
||||
usr.put_in_hands(inserted_item)
|
||||
to_chat(usr, "<span class='notice'>You remove [inserted_item] from \the [src]'s pen slot.</span>")
|
||||
inserted_item = null
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>\The [src] does not have a pen in it!</span>")
|
||||
|
||||
/obj/item/modular_computer/tablet/CtrlClick(mob/user)
|
||||
. = ..()
|
||||
if(isturf(loc))
|
||||
return
|
||||
|
||||
if(can_have_pen)
|
||||
remove_pen(user)
|
||||
|
||||
/obj/item/modular_computer/tablet/attackby(obj/item/W, mob/user)
|
||||
if(can_have_pen && is_type_in_list(W, contained_item))
|
||||
if(inserted_item)
|
||||
to_chat(user, "<span class='warning'>There is \a [inserted_item] blocking \the [src]'s pen slot!</span>")
|
||||
return
|
||||
else
|
||||
insert_pen(W)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/modular_computer/tablet/Destroy()
|
||||
if(istype(inserted_item))
|
||||
QDEL_NULL(inserted_item)
|
||||
return ..()
|
||||
|
||||
/obj/item/modular_computer/tablet/ui_data(mob/user)
|
||||
. = ..()
|
||||
.["PC_showpeneject"] = inserted_item ? 1 : 0
|
||||
|
||||
/obj/item/modular_computer/tablet/update_icon_state()
|
||||
if(has_variants)
|
||||
if(!finish_color)
|
||||
@@ -64,6 +127,7 @@
|
||||
var/datum/computer_file/program/robotact/robotact
|
||||
///IC log that borgs can view in their personal management app
|
||||
var/list/borglog = list()
|
||||
can_have_pen = FALSE
|
||||
|
||||
/obj/item/modular_computer/tablet/integrated/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -126,7 +126,8 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
|
||||
var/value = 0
|
||||
var/purchases = 0
|
||||
var/list/goodies_by_buyer = list() // if someone orders more than GOODY_FREE_SHIPPING_MAX goodies, we upcharge to a normal crate so they can't carry around 20 combat shotties
|
||||
// var/list/lockers_by_buyer = list() // TODO, combine orders that come in lockers into a single locker to not crowd the shuttle
|
||||
var/list/lockers_by_buyer = list() // used to combine orders that come in lockers into a single locker to not crowd the shuttle
|
||||
|
||||
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
|
||||
if(!empty_turfs.len)
|
||||
break
|
||||
@@ -147,11 +148,15 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
|
||||
D.bank_card_talk("Goody order size exceeds free shipping limit: Assessing [CRATE_TAX] credit S&H fee.")
|
||||
else
|
||||
D = SSeconomy.get_dep_account(ACCOUNT_CAR)
|
||||
|
||||
if(D)
|
||||
if(!D.adjust_money(-price))
|
||||
if(SO.paying_account)
|
||||
D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]")
|
||||
continue
|
||||
else if(ispath(SO.pack.crate_type, /obj/structure/closet/secure_closet/cargo))
|
||||
LAZYADD(lockers_by_buyer[D], SO)
|
||||
|
||||
|
||||
if(SO.paying_account)
|
||||
if(SO.pack.goody)
|
||||
@@ -164,7 +169,7 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
|
||||
SSshuttle.orderhistory += SO
|
||||
QDEL_NULL(SO.applied_coupon)
|
||||
|
||||
if(!SO.pack.goody) //we handle goody crates below
|
||||
if(!SO.pack.goody && !ispath(SO.pack.crate_type, /obj/structure/closet/secure_closet/cargo)) //we handle goody crates and material closets below
|
||||
SO.generate(pick_n_take(empty_turfs))
|
||||
|
||||
SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]"))
|
||||
@@ -198,6 +203,33 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
|
||||
misc_contents[buyer] += item
|
||||
misc_order_num[buyer] = "[misc_order_num[buyer]]#[our_order.id] "
|
||||
|
||||
|
||||
// handling locker bundles
|
||||
for(var/D in lockers_by_buyer)
|
||||
var/list/buying_account_orders = lockers_by_buyer[D]
|
||||
|
||||
var/buyer
|
||||
|
||||
if(!istype(D, /datum/bank_account/department)) // department accounts break the secure closet for some reason
|
||||
var/obj/structure/closet/secure_closet/cargo/owned/our_closet = new /obj/structure/closet/secure_closet/cargo/owned(pick_n_take(empty_turfs))
|
||||
var/datum/bank_account/buying_account = D
|
||||
buyer = buying_account.account_holder
|
||||
our_closet.buyer_account = buying_account
|
||||
our_closet.name = "private cargo locker - purchased by [buyer]"
|
||||
miscboxes[buyer] = our_closet
|
||||
else
|
||||
var/obj/structure/closet/secure_closet/cargo/our_closet = new /obj/structure/closet/secure_closet/cargo(pick_n_take(empty_turfs))
|
||||
buyer = "Cargo"
|
||||
miscboxes[buyer] = our_closet
|
||||
|
||||
misc_contents[buyer] = list()
|
||||
for(var/O in buying_account_orders)
|
||||
var/datum/supply_order/our_order = O
|
||||
for(var/item in our_order.pack.contains)
|
||||
misc_contents[buyer] += item
|
||||
misc_order_num[buyer] = "[misc_order_num[buyer]]#[our_order.id] "
|
||||
|
||||
|
||||
for(var/I in miscboxes)
|
||||
var/datum/supply_order/SO = new/datum/supply_order()
|
||||
SO.id = misc_order_num[I]
|
||||
|
||||
@@ -214,6 +214,7 @@
|
||||
switch(animal_origin)
|
||||
if(ALIEN_BODYPART,LARVA_BODYPART) //aliens take some additional burn //nothing can burn with so much snowflake code around
|
||||
burn *= 1.2
|
||||
stamina = 0
|
||||
|
||||
/*
|
||||
// START WOUND HANDLING
|
||||
|
||||
7
code/modules/unit_tests/crafting_recipes.dm
Normal file
@@ -0,0 +1,7 @@
|
||||
/datum/unit_test/crafting_recipes/Run()
|
||||
for(var/i in GLOB.crafting_recipes)
|
||||
var/datum/crafting_recipe/R = i
|
||||
if(!R.subcategory)
|
||||
Fail("Invalid subcategory on [R] ([R.type]).")
|
||||
if(!R.category && (R.cateogry != CAT_NONE))
|
||||
Fail("Invalid category on [R] ([R.type])")
|
||||
@@ -52,6 +52,7 @@
|
||||
/obj/item/clothing/accessory/turtleneck/tactifool = 2,
|
||||
/obj/item/clothing/accessory/turtleneck/tactifool/green = 2,
|
||||
/obj/item/clothing/accessory/turtleneck/tactifool/blue = 2,
|
||||
/obj/item/clothing/accessory/sleevecrop = 2,
|
||||
/obj/item/clothing/under/sweater = 3,
|
||||
/obj/item/clothing/under/sweater/black = 3,
|
||||
/obj/item/clothing/under/sweater/purple = 3,
|
||||
|
||||
|
Before Width: | Height: | Size: 951 B |
|
Before Width: | Height: | Size: 913 B |
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -50,6 +50,57 @@
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
||||
<h2 class="date">14 June 2021</h2>
|
||||
<h3 class="author">EmeraldSundisk updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Adds a brand new, wholly unique mining base to Snaxi tweak: A thorough redesign of Snaxi (see PR #14818 for more info)</li>
|
||||
<li class="bugfix">Increases the number of electrical connections between substations</li>
|
||||
</ul>
|
||||
<h3 class="author">MrJWhit updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="balance">Removes cat meteors.</li>
|
||||
</ul>
|
||||
<h3 class="author">SandPoot updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Tablet computers now have a pen slot, they can almost replace your pda!</li>
|
||||
<li class="spellcheck">Removed a bracket from printer's examine.</li>
|
||||
<li class="bugfix">The cosmetic turtleneck and skirtleneck no longer start with broken sensors.</li>
|
||||
</ul>
|
||||
<h3 class="author">TripleShades updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Lights to AI Sat Walkways</li>
|
||||
<li class="rscadd">Lights to Atmospherics</li>
|
||||
<li class="rscadd">Floor labels to Atmospherics Gas Miner containment units</li>
|
||||
<li class="rscdel">Gas canisters from Gas Miner containment units</li>
|
||||
<li class="rscdel">Excessive wiring in Security and Detective's Office</li>
|
||||
</ul>
|
||||
<h3 class="author">qweq12yt updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Locker orders now properly bundle together in a single locker (still separated by buyer).</li>
|
||||
<li class="bugfix">Changed some package names to be more accurate.</li>
|
||||
</ul>
|
||||
<h3 class="author">timothyteakettle updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">bees can go in containers and are released upon opening the container</li>
|
||||
<li class="rscadd">7 more round tips have been added</li>
|
||||
</ul>
|
||||
<h3 class="author">zeroisthebiggay updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="imageadd">new singularity hammer sprite</li>
|
||||
<li class="imageadd">various slight sprite additions</li>
|
||||
<li class="imageadd">distinctive combat defib sprite</li>
|
||||
<li class="imageadd">a onesleeved croptop accessory sprited by trojan coyote</li>
|
||||
<li class="imageadd">new bank machine sprite</li>
|
||||
<li class="imagedel">unused goon coffin sprite</li>
|
||||
<li class="imageadd">new water cooler sprite</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">12 June 2021</h2>
|
||||
<h3 class="author">silicons updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">xenos are now truly immune to stamina damage.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">10 June 2021</h2>
|
||||
<h3 class="author">Arturlang updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
@@ -586,50 +637,6 @@
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">wrong word</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">12 April 2021</h2>
|
||||
<h3 class="author">BlueWildrose updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Fixed female slime-subspecies left/right sprites being flipped</li>
|
||||
<li class="bugfix">Fixed drones nullspacing things they try to place on tables and in closets</li>
|
||||
<li class="bugfix">Fixed phantom mob-holder items. You can now grab Ian from your backpack without any issues.</li>
|
||||
</ul>
|
||||
<h3 class="author">silicons updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="balance">gold cores can spawn simplemob xenos again.</li>
|
||||
</ul>
|
||||
<h3 class="author">timothyteakettle updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="config">makes AGE_VERIFICATION option off by default</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">09 April 2021</h2>
|
||||
<h3 class="author">BlueWildrose updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="balance">The genetics mutation Autotomy has been buffed to be 20 instability instead of 30, and harmless in delimbing.</li>
|
||||
<li class="rscadd">There are now three more pills in each breast or penis enlargement pill bottle. tweak: There are now 10 pill bottles of breast and penis enlargement pill bottles in a Kinkmate instead of 5.</li>
|
||||
<li class="balance">Because of such changes that increases their amount in the kinkmate, succubus milk and incubus draft values are reduced to RARE from VERY_RARE.</li>
|
||||
<li class="spellcheck">Grammar correction on titty pill bottle.</li>
|
||||
<li class="rscadd">The pandemic machine can now let you swap containers.</li>
|
||||
<li class="bugfix">Slime puddles will now show mutation visual indicators & cult indicators after exiting slime puddle form</li>
|
||||
<li class="bugfix">Slime puddle transformation animations are now resized to fit the slimeperson's current size, making it visually more consistent</li>
|
||||
<li class="spellcheck">Typo correction in some mutation descriptions and other things</li>
|
||||
<li class="code_imp">Cult/clockcult layers moved from LAYER_MUTATION to LAYER_ANTAG, new update section for them specifically now</li>
|
||||
<li class="rscadd">Sylvan and Mushroom languages are now tongueless, and Encoded Audio Language is now learnable.</li>
|
||||
</ul>
|
||||
<h3 class="author">SandPoot updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">The dragons_blood "lizard with the appearance of a drake" no longer wipes important stuff.</li>
|
||||
<li class="bugfix">Fixes Ashlizard legs not being digitigrade and makes them have the "Sharp" snout.</li>
|
||||
<li class="bugfix">Machines that open no longer drop their stock parts.</li>
|
||||
</ul>
|
||||
<h3 class="author">brokenOculus updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Added Telescopic Baseball Bat</li>
|
||||
<li class="rscadd">Added Telescopic Baseball Bat to Stealthy uplink items</li>
|
||||
<li class="rscadd">Added sprites for Telescopic Baseball Bat</li>
|
||||
<li class="rscadd">Added Telescopic Baseball Bat to Baseball kit under uplink bundles</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<b>GoonStation 13 Development Team</b>
|
||||
|
||||
@@ -29443,3 +29443,38 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
zeroisthebiggay:
|
||||
- bugfix: Fixed an exploit allowing you to grab people from anywhere with a clowncar.
|
||||
- balance: revenant essence objective reduced
|
||||
2021-06-12:
|
||||
silicons:
|
||||
- bugfix: xenos are now truly immune to stamina damage.
|
||||
2021-06-14:
|
||||
EmeraldSundisk:
|
||||
- rscadd: 'Adds a brand new, wholly unique mining base to Snaxi tweak: A thorough
|
||||
redesign of Snaxi (see PR #14818 for more info)'
|
||||
- bugfix: Increases the number of electrical connections between substations
|
||||
MrJWhit:
|
||||
- balance: Removes cat meteors.
|
||||
SandPoot:
|
||||
- rscadd: Tablet computers now have a pen slot, they can almost replace your pda!
|
||||
- spellcheck: Removed a bracket from printer's examine.
|
||||
- bugfix: The cosmetic turtleneck and skirtleneck no longer start with broken sensors.
|
||||
TripleShades:
|
||||
- rscadd: Lights to AI Sat Walkways
|
||||
- rscadd: Lights to Atmospherics
|
||||
- rscadd: Floor labels to Atmospherics Gas Miner containment units
|
||||
- rscdel: Gas canisters from Gas Miner containment units
|
||||
- rscdel: Excessive wiring in Security and Detective's Office
|
||||
qweq12yt:
|
||||
- bugfix: Locker orders now properly bundle together in a single locker (still separated
|
||||
by buyer).
|
||||
- bugfix: Changed some package names to be more accurate.
|
||||
timothyteakettle:
|
||||
- rscadd: bees can go in containers and are released upon opening the container
|
||||
- rscadd: 7 more round tips have been added
|
||||
zeroisthebiggay:
|
||||
- imageadd: new singularity hammer sprite
|
||||
- imageadd: various slight sprite additions
|
||||
- imageadd: distinctive combat defib sprite
|
||||
- imageadd: a onesleeved croptop accessory sprited by trojan coyote
|
||||
- imageadd: new bank machine sprite
|
||||
- imagedel: unused goon coffin sprite
|
||||
- imageadd: new water cooler sprite
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 302 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
@@ -303,3 +303,11 @@ You do not regenerate as much stamina while in combat mode. Resting (being on th
|
||||
Keybinds can be reassigned in character setup on the keybindings tab. This is extremely useful, especially if you know how to use independent binds.
|
||||
If your suit sensors have been shorted out, you can use cable coil to fix them by using the coil on your suit. Your suit needs to be in proper condition, however.
|
||||
Most clothing when damaged can be repaired using cloth, but there may be some clothes out there that will require different stacks of materials.
|
||||
You should under no circumstances, teleport bread.
|
||||
Food made from upgraded machines has a higher quality. Food with a high enough quality can give good moodlets even if your species dislikes the kind of food!
|
||||
Frying something makes it edible, while still maintaining its original functionality.
|
||||
Slimepeople are damaged by most things that heal toxin damage, and healed by most things that deal it. You can recognise people with this functionality through them having a cyan coloured species name when examined!
|
||||
EMPs can be created by mixing uranium and iron. The power of the pulse is determined by the distance from its epicentre, and the maximum distance is determined by the volume of the reaction!
|
||||
Lizards start with a disabled mutation that allows them to breath fire. This can be unlocked through the usage of genetics!
|
||||
Several loadout items can be unlocked through progress in parts of the game. The progress for these can be tracked in the loadout menu.
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ export const NtosWindow = (props, context) => {
|
||||
PC_stationtime,
|
||||
PC_programheaders = [],
|
||||
PC_showexitprogram,
|
||||
PC_showpeneject,
|
||||
} = data;
|
||||
return (
|
||||
<Window
|
||||
@@ -78,6 +79,17 @@ export const NtosWindow = (props, context) => {
|
||||
src={resolveAsset(PC_apclinkicon)} />
|
||||
</Box>
|
||||
)}
|
||||
{!!PC_showpeneject && (
|
||||
<Button
|
||||
width="26px"
|
||||
lineHeight="22px"
|
||||
textAlign="center"
|
||||
color="transparent"
|
||||
icon="pen-alt"
|
||||
tooltip="Eject pen"
|
||||
tooltipPosition="bottom-left"
|
||||
onClick={() => act('eject_pen')} />
|
||||
)}
|
||||
{!!PC_showexitprogram && (
|
||||
<Button
|
||||
width="26px"
|
||||
|
||||
@@ -7563,7 +7563,7 @@ __metadata:
|
||||
glob: ^7.1.6
|
||||
source-map: ^0.7.3
|
||||
stacktrace-parser: ^0.1.10
|
||||
ws: ^7.4.3
|
||||
ws: ^7.4.6
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -8311,7 +8311,7 @@ typescript@^4.1.5:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ws@npm:^7.2.3, ws@npm:^7.3.1, ws@npm:^7.4.3":
|
||||
"ws@npm:^7.2.3, ws@npm:^7.3.1":
|
||||
version: 7.4.3
|
||||
resolution: "ws@npm:7.4.3"
|
||||
peerDependencies:
|
||||
@@ -8326,6 +8326,21 @@ typescript@^4.1.5:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ws@npm:^7.4.6":
|
||||
version: 7.4.6
|
||||
resolution: "ws@npm:7.4.6"
|
||||
peerDependencies:
|
||||
bufferutil: ^4.0.1
|
||||
utf-8-validate: ^5.0.2
|
||||
peerDependenciesMeta:
|
||||
bufferutil:
|
||||
optional: true
|
||||
utf-8-validate:
|
||||
optional: true
|
||||
checksum: ffeb626d92f14aa3a67aa3784824c1d290131e25d225f4ca6b1b6b6d7ea754fca67694d89a5b99b144382365e1bccf1f7ec2f92df56f0d25f44939b070452f06
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"xml-name-validator@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "xml-name-validator@npm:3.0.0"
|
||||
|
||||