This commit is contained in:
zerothebigboy
2021-06-13 18:19:01 -04:00
50 changed files with 477 additions and 117 deletions
+3 -6
View File
@@ -12,12 +12,9 @@
"editor.codeActionsOnSave": { "editor.codeActionsOnSave": {
"source.fixAll.eslint": true "source.fixAll.eslint": true
}, },
"workbench.editorAssociations": [ "workbench.editorAssociations": {
{ "*.dmi": "imagePreview.previewEditor"
"filenamePattern": "*.dmi", },
"viewType": "imagePreview.previewEditor"
}
],
"files.eol": "\n", "files.eol": "\n",
"gitlens.advanced.blame.customArguments": ["-w"], "gitlens.advanced.blame.customArguments": ["-w"],
"tgstationTestExplorer.project.resultsType": "json", "tgstationTestExplorer.project.resultsType": "json",
+213 -45
View File
@@ -14064,6 +14064,25 @@
}, },
/turf/open/space, /turf/open/space,
/area/space/nearstation) /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" = ( "bbQ" = (
/obj/structure/sign/poster/random, /obj/structure/sign/poster/random,
/turf/closed/wall, /turf/closed/wall,
@@ -20284,6 +20303,29 @@
/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue,
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/hallway/primary/central) /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" = ( "bFD" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{ /obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4 dir = 4
@@ -23429,9 +23471,6 @@
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "4-8" icon_state = "4-8"
}, },
/obj/structure/cable/white{
icon_state = "1-2"
},
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "1-4" icon_state = "1-4"
}, },
@@ -30106,9 +30145,6 @@
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/brig) /area/security/brig)
"cgW" = ( "cgW" = (
/obj/structure/cable/white{
icon_state = "1-8"
},
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "4-8" icon_state = "4-8"
}, },
@@ -30125,6 +30161,9 @@
/obj/effect/turf_decal/tile/neutral{ /obj/effect/turf_decal/tile/neutral{
dir = 8 dir = 8
}, },
/obj/structure/cable/white{
icon_state = "1-4"
},
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/brig) /area/security/brig)
"cgX" = ( "cgX" = (
@@ -32693,9 +32732,6 @@
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "1-4" icon_state = "1-4"
}, },
/obj/structure/cable/white{
icon_state = "1-2"
},
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "1-8" icon_state = "1-8"
}, },
@@ -36366,6 +36402,10 @@
}, },
/turf/open/floor/plating, /turf/open/floor/plating,
/area/maintenance/port) /area/maintenance/port)
"cEA" = (
/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engineering/atmos)
"cFF" = ( "cFF" = (
/turf/open/floor/engine{ /turf/open/floor/engine{
name = "Holodeck Projector Floor" name = "Holodeck Projector Floor"
@@ -46132,8 +46172,8 @@
}, },
/obj/effect/turf_decal/delivery, /obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/components/binary/valve/digital{ /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, /turf/open/floor/plasteel,
/area/science/xenobiology) /area/science/xenobiology)
@@ -72111,6 +72151,7 @@
/obj/effect/turf_decal/tile/neutral{ /obj/effect/turf_decal/tile/neutral{
dir = 8 dir = 8
}, },
/obj/machinery/light/small,
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/ai_monitored/aisat/exterior) /area/ai_monitored/aisat/exterior)
"ewA" = ( "ewA" = (
@@ -74589,8 +74630,10 @@
/turf/open/floor/wood, /turf/open/floor/wood,
/area/service/library) /area/service/library)
"fsx" = ( "fsx" = (
/obj/machinery/portable_atmospherics/canister/air, /obj/machinery/light{
/turf/open/floor/engine/air, dir = 4
},
/turf/open/floor/plasteel,
/area/engineering/atmos) /area/engineering/atmos)
"fsP" = ( "fsP" = (
/obj/structure/table/wood, /obj/structure/table/wood,
@@ -77511,8 +77554,8 @@
/area/engineering/main) /area/engineering/main)
"grf" = ( "grf" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden{ /obj/machinery/atmospherics/pipe/simple/orange/hidden{
icon_state = "pipe11-2"; dir = 5;
dir = 5 icon_state = "pipe11-2"
}, },
/turf/closed/wall/r_wall, /turf/closed/wall/r_wall,
/area/science/xenobiology) /area/science/xenobiology)
@@ -77848,8 +77891,8 @@
dir = 8 dir = 8
}, },
/obj/machinery/atmospherics/components/unary/outlet_injector/on{ /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, /turf/open/floor/plasteel/dark,
/area/science/xenobiology) /area/science/xenobiology)
@@ -83374,6 +83417,28 @@
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/ai_monitored/command/storage/eva) /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" = ( "ipl" = (
/obj/structure/rack, /obj/structure/rack,
/obj/item/book/manual/wiki/engineering_hacking{ /obj/item/book/manual/wiki/engineering_hacking{
@@ -92073,7 +92138,6 @@
/turf/closed/wall, /turf/closed/wall,
/area/commons/storage/primary) /area/commons/storage/primary)
"lkg" = ( "lkg" = (
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/atmospherics/miner/toxins, /obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma, /turf/open/floor/engine/plasma,
/area/engineering/atmos) /area/engineering/atmos)
@@ -93634,7 +93698,6 @@
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/engineering/main) /area/engineering/main)
"lNq" = ( "lNq" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/atmospherics/miner/nitrogen, /obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2, /turf/open/floor/engine/n2,
/area/engineering/atmos) /area/engineering/atmos)
@@ -94989,6 +95052,10 @@
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/engineering/atmos) /area/engineering/atmos)
"mmq" = (
/obj/effect/turf_decal/vg_decals/atmos/nitrogen,
/turf/open/floor/engine/n2,
/area/engineering/atmos)
"mmC" = ( "mmC" = (
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "1-2" icon_state = "1-2"
@@ -100471,7 +100538,6 @@
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/service/library) /area/service/library)
"ohX" = ( "ohX" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/atmospherics/miner/carbon_dioxide, /obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2, /turf/open/floor/engine/co2,
/area/engineering/atmos) /area/engineering/atmos)
@@ -102237,6 +102303,27 @@
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/ai_monitored/aisat/exterior) /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" = ( "oOV" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{ /obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4 dir = 4
@@ -102476,9 +102563,6 @@
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/engineering/break_room) /area/engineering/break_room)
"oTt" = ( "oTt" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide{
valve_open = 1
},
/obj/machinery/atmospherics/miner/n2o, /obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o, /turf/open/floor/engine/n2o,
/area/engineering/atmos) /area/engineering/atmos)
@@ -103357,6 +103441,28 @@
}, },
/turf/open/floor/plating, /turf/open/floor/plating,
/area/cargo/qm) /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" = ( "plb" = (
/obj/structure/cable/white{ /obj/structure/cable/white{
icon_state = "1-2" icon_state = "1-2"
@@ -105873,6 +105979,7 @@
dir = 1; dir = 1;
name = "atmospherics camera" name = "atmospherics camera"
}, },
/obj/effect/turf_decal/vg_decals/atmos/mix,
/turf/open/floor/engine/vacuum, /turf/open/floor/engine/vacuum,
/area/engineering/atmos) /area/engineering/atmos)
"qbJ" = ( "qbJ" = (
@@ -105921,6 +106028,10 @@
}, },
/turf/open/floor/plating, /turf/open/floor/plating,
/area/engineering/atmos) /area/engineering/atmos)
"qcm" = (
/obj/effect/turf_decal/vg_decals/atmos/plasma,
/turf/open/floor/engine/plasma,
/area/engineering/atmos)
"qcW" = ( "qcW" = (
/obj/machinery/firealarm{ /obj/machinery/firealarm{
pixel_y = 26 pixel_y = 26
@@ -108117,6 +108228,10 @@
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/engineering/atmospherics_engine) /area/engineering/atmospherics_engine)
"qYy" = (
/obj/effect/turf_decal/vg_decals/atmos/oxygen,
/turf/open/floor/engine/o2,
/area/engineering/atmos)
"qYD" = ( "qYD" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible{ /obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 9 dir = 9
@@ -109796,6 +109911,10 @@
dir = 6 dir = 6
}, },
/area/science/circuit) /area/science/circuit)
"rCx" = (
/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide,
/turf/open/floor/engine/n2o,
/area/engineering/atmos)
"rCK" = ( "rCK" = (
/obj/machinery/button/door{ /obj/machinery/button/door{
id = "teleporterhubshutters"; id = "teleporterhubshutters";
@@ -115966,6 +116085,10 @@
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/ai_monitored/aisat/exterior) /area/ai_monitored/aisat/exterior)
"tBF" = (
/obj/effect/turf_decal/vg_decals/atmos/air,
/turf/open/floor/engine/air,
/area/engineering/atmos)
"tBH" = ( "tBH" = (
/obj/machinery/door/airlock/atmos/glass/critical{ /obj/machinery/door/airlock/atmos/glass/critical{
heat_proof = 1; heat_proof = 1;
@@ -116977,7 +117100,6 @@
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/cargo/storage) /area/cargo/storage)
"tWb" = ( "tWb" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/miner/oxygen, /obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2, /turf/open/floor/engine/o2,
/area/engineering/atmos) /area/engineering/atmos)
@@ -122614,6 +122736,29 @@
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/service/chapel/office) /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" = ( "wei" = (
/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
@@ -124381,6 +124526,29 @@
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/engineering/atmos) /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" = ( "wJE" = (
/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/blood/old,
@@ -134718,7 +134886,7 @@ bkF
pQq pQq
hzs hzs
hzs hzs
hzs ipc
hzs hzs
uSd uSd
fWX fWX
@@ -134726,7 +134894,7 @@ gxc
gxc gxc
gxc gxc
gxc gxc
gxc bFm
gxc gxc
kdA kdA
brN brN
@@ -135253,12 +135421,12 @@ cab
bPC bPC
bRO bRO
ivC ivC
gxc bFm
gxc gxc
eCQ eCQ
hzs hzs
oMz oMz
hzs ipc
hzs hzs
rew rew
brN brN
@@ -136000,7 +136168,7 @@ ajr
ajr ajr
ajr ajr
bkF bkF
tBB bbJ
brO brO
aad aad
btH btH
@@ -136031,7 +136199,7 @@ cdt
cdt cdt
aad aad
bkE bkE
tBB oOQ
brM brM
ajr ajr
ajr ajr
@@ -138056,7 +138224,7 @@ ajr
ajr ajr
ajr ajr
bkF bkF
tBB bbJ
brO brO
aad aad
btH btH
@@ -138087,7 +138255,7 @@ cdt
cdt cdt
aad aad
bkE bkE
tBB oOQ
brM brM
ajr ajr
ajr ajr
@@ -138851,12 +139019,12 @@ cam
bPC bPC
bRO bRO
ygA ygA
gxc wcM
gxc gxc
eCQ eCQ
hzs hzs
xaW xaW
hzs pkY
hzs hzs
elb elb
brN brN
@@ -139344,7 +139512,7 @@ bkF
mdI mdI
hzs hzs
hzs hzs
hzs pkY
hzs hzs
uhb uhb
fWX fWX
@@ -139352,7 +139520,7 @@ gxc
gxc gxc
gxc gxc
tzE tzE
gxc wcM
gxc gxc
xic xic
brN brN
@@ -141414,7 +141582,7 @@ aad
bNF bNF
aad aad
bRP bRP
swP wIV
stE stE
evL evL
aJD aJD
@@ -149868,15 +150036,15 @@ aSQ
iio iio
iMu iMu
ohX ohX
hFW cEA
iio iio
sEM sEM
lkg lkg
kRS qcm
iio iio
rUo rUo
oTt oTt
lbI rCx
iio iio
kcG kcG
kcG kcG
@@ -152950,13 +153118,13 @@ fcn
lfN lfN
oUP oUP
hlN hlN
lXg fsx
rmJ rmJ
lXg lXg
lXg lXg
lXg lXg
xQQ xQQ
lXg fsx
lXg lXg
lXg lXg
mhk mhk
@@ -157318,16 +157486,16 @@ aaa
aad aad
iio iio
wTN wTN
fsx
lEq lEq
tBF
iio iio
wjw wjw
tWb tWb
sCm qYy
iio iio
eFu eFu
lNq lNq
skw mmq
iio iio
aMN aMN
emZ emZ
+12 -1
View File
@@ -7,8 +7,9 @@
var/left_hand var/left_hand
var/inv_slots var/inv_slots
var/proctype //if present, will be invoked on headwear generation. 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)) if(!isliving(target))
@@ -20,6 +21,7 @@
src.left_hand = left_hand src.left_hand = left_hand
src.inv_slots = inv_slots src.inv_slots = inv_slots
src.proctype = proctype src.proctype = proctype
src.escape_on_find = escape_on_find
RegisterSignal(target, COMSIG_CLICK_ALT, .proc/mob_try_pickup) RegisterSignal(target, COMSIG_CLICK_ALT, .proc/mob_try_pickup)
RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine) RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine)
@@ -55,6 +57,8 @@
to_chat(user, "<span class='notice'>You pick [source] up.</span>") to_chat(user, "<span class='notice'>You pick [source] up.</span>")
source.drop_all_held_items() 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) 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) if(proctype)
INVOKE_ASYNC(src, proctype, source, holder, user) INVOKE_ASYNC(src, proctype, source, holder, user)
user.put_in_hands(holder) user.put_in_hands(holder)
@@ -78,6 +82,7 @@
w_class = WEIGHT_CLASS_BULKY w_class = WEIGHT_CLASS_BULKY
dynamic_hair_suffix = "" dynamic_hair_suffix = ""
var/mob/living/held_mob 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) /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)) if(ismob(location))
return location.loc.remove_air(amount) return location.loc.remove_air(amount)
return location.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()
-13
View File
@@ -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(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 //Meteor spawning global procs
@@ -348,17 +346,6 @@ GLOBAL_LIST_INIT(meteorsCat, list(/obj/effect/meteor/cat)) //for cat meteors
if(prob(20)) if(prob(20))
explosion(src.loc,2,4,6,8) 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 //Spookoween meteors
///////////////////////// /////////////////////////
+4 -1
View File
@@ -1,7 +1,10 @@
/obj/machinery/computer/bank_machine /obj/machinery/computer/bank_machine
name = "bank machine" name = "bank machine"
desc = "A machine used to deposit and withdraw station funds." 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 idle_power_usage = 100
var/siphoning = FALSE var/siphoning = FALSE
+1 -1
View File
@@ -3,7 +3,7 @@
desc = "A culinary marvel that uses matter-to-energy conversion to store dishes and shards. Convenient! \ 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. \ 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." 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" icon_state = "synthesizer"
idle_power_usage = 8 //5 with default parts idle_power_usage = 8 //5 with default parts
active_power_usage = 13 //10 with default parts active_power_usage = 13 //10 with default parts
+3 -3
View File
@@ -1,7 +1,7 @@
/obj/item/singularityhammer /obj/item/singularityhammer
name = "singularity hammer" name = "singularity hammer"
desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." 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' lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
flags_1 = CONDUCT_1 flags_1 = CONDUCT_1
@@ -25,7 +25,7 @@
/obj/item/singularityhammer/ComponentInitialize() /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 /// triggered on wield of two handed item
/obj/item/singularityhammer/proc/on_wield(obj/item/source, mob/user) /obj/item/singularityhammer/proc/on_wield(obj/item/source, mob/user)
@@ -36,7 +36,7 @@
wielded = FALSE wielded = FALSE
/obj/item/singularityhammer/update_icon_state() /obj/item/singularityhammer/update_icon_state()
icon_state = "mjollnir0" icon_state = "singularity_hammer0"
/obj/item/singularityhammer/Destroy() /obj/item/singularityhammer/Destroy()
STOP_PROCESSING(SSobj, src) STOP_PROCESSING(SSobj, src)
@@ -13,15 +13,16 @@
return 0 return 0
. = ..() . = ..()
// Exists to work around the minimum 700 cr price for goodies / small items // Exists to work around the minimum 700 cr price for goodies / small items / materials
/obj/structure/closet/secure_closet/goodies /obj/structure/closet/secure_closet/cargo
name = "cargo locker"
icon_state = "goodies" icon_state = "goodies"
desc = "A sturdier card-locked storage unit used for bulky shipments." desc = "A sturdier card-locked storage unit used for bulky shipments."
max_integrity = 500 // Same as crates. max_integrity = 500 // Same as crates.
melee_min_damage = 25 // Idem. melee_min_damage = 25 // Idem.
/obj/structure/closet/secure_closet/goodies/owned /obj/structure/closet/secure_closet/cargo/owned
name = "private locker" name = "private cargo locker"
desc = "A locker designed to only open for who purchased its contents." desc = "A locker designed to only open for who purchased its contents."
///Account of the person buying the crate if private purchasing. ///Account of the person buying the crate if private purchasing.
var/datum/bank_account/buyer_account var/datum/bank_account/buyer_account
@@ -32,18 +33,18 @@
///Is the crate being bought by a person, or a budget card? ///Is the crate being bought by a person, or a budget card?
var/department_purchase = FALSE 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>" . += "<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 buyer_account = _buyer_account
if(istype(buyer_account, /datum/bank_account/department)) if(istype(buyer_account, /datum/bank_account/department))
department_purchase = TRUE department_purchase = TRUE
department_account = buyer_account 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(privacy_lock)
if(!broken) if(!broken)
var/obj/item/card/id/id_card = user.get_idcard(TRUE) var/obj/item/card/id/id_card = user.get_idcard(TRUE)
+1 -1
View File
@@ -96,7 +96,7 @@
var/static/list/blacklisted_error = typecacheof(list( var/static/list/blacklisted_error = typecacheof(list(
/obj/structure/closet/crate/secure, /obj/structure/closet/crate/secure,
/obj/structure/closet/crate/large, /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)) if(is_type_in_list(container, blacklisted_error))
P.errors &= ~MANIFEST_ERROR_ITEM P.errors &= ~MANIFEST_ERROR_ITEM
+2 -2
View File
@@ -22,8 +22,8 @@
/datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account) /datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account)
var/obj/structure/closet/crate/C var/obj/structure/closet/crate/C
if(paying_account) 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 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/goodies/owned(A, paying_account) // that would lead to infinite money exploits C = new /obj/structure/closet/secure_closet/cargo/owned(A, paying_account) // that would lead to infinite money exploits
else else
C = new /obj/structure/closet/crate/secure/owned(A, paying_account) C = new /obj/structure/closet/crate/secure/owned(A, paying_account)
C.name = "[crate_name] - Purchased by [paying_account.account_holder]" C.name = "[crate_name] - Purchased by [paying_account.account_holder]"
+10 -10
View File
@@ -14,56 +14,56 @@
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/materials/cardboard50 /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" name = "50 Cardboard Sheets"
desc = "Create a bunch of boxes." desc = "Create a bunch of boxes."
cost = 300 //thrice their export value cost = 300 //thrice their export value
contains = list(/obj/item/stack/sheet/cardboard/fifty) contains = list(/obj/item/stack/sheet/cardboard/fifty)
/datum/supply_pack/materials/glass50 /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" name = "50 Glass Sheets"
desc = "Let some nice light in with fifty glass sheets!" desc = "Let some nice light in with fifty glass sheets!"
cost = 300 //double their export value cost = 300 //double their export value
contains = list(/obj/item/stack/sheet/glass/fifty) contains = list(/obj/item/stack/sheet/glass/fifty)
/datum/supply_pack/materials/metal50 /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" name = "50 Metal Sheets"
desc = "Any construction project begins with a good stack of fifty metal sheets!" desc = "Any construction project begins with a good stack of fifty metal sheets!"
cost = 300 //double their export value cost = 300 //double their export value
contains = list(/obj/item/stack/sheet/metal/fifty) contains = list(/obj/item/stack/sheet/metal/fifty)
/datum/supply_pack/materials/plasteel20 /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" name = "20 Plasteel Sheets"
desc = "Reinforce the station's integrity with twenty plasteel sheets!" desc = "Reinforce the station's integrity with twenty plasteel sheets!"
cost = 4000 cost = 4000
contains = list(/obj/item/stack/sheet/plasteel/twenty) contains = list(/obj/item/stack/sheet/plasteel/twenty)
/datum/supply_pack/materials/plastic50 /datum/supply_pack/materials/plastic20
crate_type = /obj/structure/closet/secure_closet/goodies crate_type = /obj/structure/closet/secure_closet/cargo
name = "50 Plastic Sheets" name = "20 Plastic Sheets"
desc = "Build a limitless amount of toys with fifty plastic sheets!" desc = "Build a limitless amount of toys with fifty plastic sheets!"
cost = 200 // double their export cost = 200 // double their export
contains = list(/obj/item/stack/sheet/plastic/twenty) contains = list(/obj/item/stack/sheet/plastic/twenty)
/datum/supply_pack/materials/sandstone30 /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" name = "30 Sandstone Blocks"
desc = "Neither sandy nor stoney, these thirty blocks will still get the job done." desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
cost = 150 // five times their export cost = 150 // five times their export
contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty) contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
/datum/supply_pack/materials/wood20 /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" name = "20 Wood Planks"
desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with twenty wooden 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 cost = 400 // 6-7 planks shy from having equal import/export prices
contains = list(/obj/item/stack/sheet/mineral/wood/twenty) contains = list(/obj/item/stack/sheet/mineral/wood/twenty)
/datum/supply_pack/materials/rcdammo /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" 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." desc = "A single large compressed RCD matter pack, to help with any holes or projects people might be working on."
cost = 600 cost = 600
+1 -1
View File
@@ -370,7 +370,7 @@
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/misc/carpet /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" 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." desc = "Plasteel floor tiles getting on your nerves? This 50 units stack of extra soft carpet will tie any room together."
cost = 200 cost = 200
+2 -1
View File
@@ -56,7 +56,7 @@
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
icon_state = "tactifool" icon_state = "tactifool"
item_state = "bl_suit" 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) 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 /obj/item/clothing/under/syndicate/cosmetic/skirt
@@ -64,6 +64,7 @@
icon_state = "tactifool_skirt" icon_state = "tactifool_skirt"
fitted = FEMALE_UNIFORM_TOP fitted = FEMALE_UNIFORM_TOP
mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON
can_adjust = FALSE
/obj/item/clothing/under/syndicate/sniper /obj/item/clothing/under/syndicate/sniper
name = "Tactical turtleneck suit" name = "Tactical turtleneck suit"
-11
View File
@@ -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")
-2
View File
@@ -56,8 +56,6 @@
wave_type = GLOB.meteorsC wave_type = GLOB.meteorsC
if("halloween") if("halloween")
wave_type = GLOB.meteorsSPOOKY wave_type = GLOB.meteorsSPOOKY
if("cat")
wave_type = GLOB.meteorsCat
else else
WARNING("Wave name of [wave_name] not recognised.") WARNING("Wave name of [wave_name] not recognised.")
kill() kill()
@@ -221,4 +221,4 @@
/datum/reagent/consumable/cooking_oil = 10 /datum/reagent/consumable/cooking_oil = 10
) )
result = /obj/item/reagent_containers/food/snacks/goliathcalamari result = /obj/item/reagent_containers/food/snacks/goliathcalamari
subcategory = CAT_MEAT
@@ -58,12 +58,17 @@
var/icon_base = "bee" var/icon_base = "bee"
var/static/beehometypecache = typecacheof(/obj/structure/beebox) var/static/beehometypecache = typecacheof(/obj/structure/beebox)
var/static/hydroponicstypecache = typecacheof(/obj/machinery/hydroponics) 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() /mob/living/simple_animal/hostile/poison/bees/Initialize()
. = ..() . = ..()
generate_bee_visuals() generate_bee_visuals()
AddComponent(/datum/component/swarming) 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() /mob/living/simple_animal/hostile/poison/bees/Destroy()
if(beehome) if(beehome)
beehome.bees -= src beehome.bees -= src
@@ -63,4 +63,4 @@
if(printer_slot) if(printer_slot)
. += "It has a printer installed." . += "It has a printer installed."
if(user_is_adjacent) 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() update_icon()
if(user && istype(user)) if(user && istype(user))
ui_interact(user) // Re-open the UI on this computer. It should show the main screen now. 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") if("PC_killprogram")
var/prog = params["name"] var/prog = params["name"]
@@ -18,6 +18,69 @@
var/has_variants = TRUE var/has_variants = TRUE
var/finish_color = null 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() /obj/item/modular_computer/tablet/update_icon_state()
if(has_variants) if(has_variants)
if(!finish_color) if(!finish_color)
@@ -64,6 +127,7 @@
var/datum/computer_file/program/robotact/robotact var/datum/computer_file/program/robotact/robotact
///IC log that borgs can view in their personal management app ///IC log that borgs can view in their personal management app
var/list/borglog = list() var/list/borglog = list()
can_have_pen = FALSE
/obj/item/modular_computer/tablet/integrated/Initialize(mapload) /obj/item/modular_computer/tablet/integrated/Initialize(mapload)
. = ..() . = ..()
+34 -2
View File
@@ -126,7 +126,8 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
var/value = 0 var/value = 0
var/purchases = 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/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) for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
if(!empty_turfs.len) if(!empty_turfs.len)
break 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.") D.bank_card_talk("Goody order size exceeds free shipping limit: Assessing [CRATE_TAX] credit S&H fee.")
else else
D = SSeconomy.get_dep_account(ACCOUNT_CAR) D = SSeconomy.get_dep_account(ACCOUNT_CAR)
if(D) if(D)
if(!D.adjust_money(-price)) if(!D.adjust_money(-price))
if(SO.paying_account) if(SO.paying_account)
D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]") D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]")
continue 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.paying_account)
if(SO.pack.goody) if(SO.pack.goody)
@@ -164,7 +169,7 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list(
SSshuttle.orderhistory += SO SSshuttle.orderhistory += SO
QDEL_NULL(SO.applied_coupon) 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)) SO.generate(pick_n_take(empty_turfs))
SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]")) 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_contents[buyer] += item
misc_order_num[buyer] = "[misc_order_num[buyer]]#[our_order.id] " 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) for(var/I in miscboxes)
var/datum/supply_order/SO = new/datum/supply_order() var/datum/supply_order/SO = new/datum/supply_order()
SO.id = misc_order_num[I] SO.id = misc_order_num[I]
@@ -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])")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

+6
View File
@@ -50,6 +50,12 @@
--> -->
<div class="commit sansserif"> <div class="commit sansserif">
<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> <h2 class="date">10 June 2021</h2>
<h3 class="author">Arturlang updated:</h3> <h3 class="author">Arturlang updated:</h3>
<ul class="changes bgimages16"> <ul class="changes bgimages16">
+3
View File
@@ -29443,3 +29443,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
zeroisthebiggay: zeroisthebiggay:
- bugfix: Fixed an exploit allowing you to grab people from anywhere with a clowncar. - bugfix: Fixed an exploit allowing you to grab people from anywhere with a clowncar.
- balance: revenant essence objective reduced - balance: revenant essence objective reduced
2021-06-12:
silicons:
- bugfix: xenos are now truly immune to stamina damage.
@@ -1,4 +0,0 @@
author: "silicons"
delete-after: True
changes:
- bugfix: "xenos are now truly immune to stamina damage."
@@ -0,0 +1,4 @@
author: "SandPoot"
delete-after: True
changes:
- bugfix: "The cosmetic turtleneck and skirtleneck no longer start with broken sensors."
@@ -0,0 +1,8 @@
author: "TripleShades"
delete-after: True
changes:
- 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"
@@ -0,0 +1,5 @@
author: "SandPoot"
delete-after: True
changes:
- rscadd: "Tablet computers now have a pen slot, they can almost replace your pda!"
- spellcheck: "Removed a bracket from printer's examine."
@@ -0,0 +1,5 @@
author: "qweq12yt"
delete-after: True
changes:
- bugfix: "Locker orders now properly bundle together in a single locker (still separated by buyer)."
- bugfix: "Changed some package names to be more accurate."
@@ -0,0 +1,4 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "bees can go in containers and are released upon opening the container"
@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new water cooler sprite"
@@ -0,0 +1,5 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new bank machine sprite"
- imagedel: "unused goon coffin sprite"
@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new singularity hammer sprite"
@@ -0,0 +1,4 @@
author: "zeroisthebiggay"
delete-after: True
changes:
- imageadd: "new singularity hammer sprite"
@@ -0,0 +1,4 @@
author: "timothyteakettle"
delete-after: True
changes:
- rscadd: "7 more round tips have been added"
@@ -0,0 +1,4 @@
author: "MrJWhit"
delete-after: True
changes:
- balance: "Removes cat meteors."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

+8
View File
@@ -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. 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. 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. 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.
+12
View File
@@ -28,6 +28,7 @@ export const NtosWindow = (props, context) => {
PC_stationtime, PC_stationtime,
PC_programheaders = [], PC_programheaders = [],
PC_showexitprogram, PC_showexitprogram,
PC_showpeneject,
} = data; } = data;
return ( return (
<Window <Window
@@ -78,6 +79,17 @@ export const NtosWindow = (props, context) => {
src={resolveAsset(PC_apclinkicon)} /> src={resolveAsset(PC_apclinkicon)} />
</Box> </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 && ( {!!PC_showexitprogram && (
<Button <Button
width="26px" width="26px"
File diff suppressed because one or more lines are too long
+17 -2
View File
@@ -7563,7 +7563,7 @@ __metadata:
glob: ^7.1.6 glob: ^7.1.6
source-map: ^0.7.3 source-map: ^0.7.3
stacktrace-parser: ^0.1.10 stacktrace-parser: ^0.1.10
ws: ^7.4.3 ws: ^7.4.6
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -8311,7 +8311,7 @@ typescript@^4.1.5:
languageName: node languageName: node
linkType: hard 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 version: 7.4.3
resolution: "ws@npm:7.4.3" resolution: "ws@npm:7.4.3"
peerDependencies: peerDependencies:
@@ -8326,6 +8326,21 @@ typescript@^4.1.5:
languageName: node languageName: node
linkType: hard 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": "xml-name-validator@npm:^3.0.0":
version: 3.0.0 version: 3.0.0
resolution: "xml-name-validator@npm:3.0.0" resolution: "xml-name-validator@npm:3.0.0"