Nanotrasen Career Trainer - REVIVAL (PT1) (#26512)

* Nct ID

* Preferences, job creation, access and other stuff

* Sprites, defines, hidden job pref and other stuff!

* Missed a comma

* Sprites updated, clothing code, outfit and id

* Fix a small oops

* Data chip + Sechud icon

* Offstation, access, datachip code, ticket autoresponse and a lot of other stuff.

* Typo, spritesheet fixingg and icon color

* Telebaton removed, not allowed to scan ERT IDs, blacklisted some access

* Applies suggestion

Co-authored-by: Aylong <69762909+AyIong@users.noreply.github.com>
Signed-off-by: Pedro <79126660+LetXxx@users.noreply.github.com>

* Applying Suggestions!

* Forgot to increase the number of slots, oops

* Added a few items that I forgot, applying suggestions.

* Fix check fail?

* Mapping Tools/Icons.

* Office added to all maps, a few modifications to fit.

* Adds ACCESS_TRAINER to who needs it.

* Fixing check fails.

* NCT Beret obj are now where they're supposed to be

* Suggestion

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: Pedro <79126660+LetXxx@users.noreply.github.com>

* Sprites fix + NCT flag

* Code Suggestion

* Sprite update

* Suggestions

* Diagoras Office, conflict fix.

* Day 1 fixes, suggestions.

* bundle rebuild

* Fixing a few issues.

* Mapping review + Suggestions

* Fixed check fail.

* Conflict fix + You shouldn't be able to insert the NCT chip into an id console

* Fix map conflicts

* Plasmaman icons and Kidan icon fix

* Conflict fix?

* A few changes following feedback.

* Small description changed, as per requested feedback.

* Suggestions/Fix

* Forgot some mapping issues

* Suggestions

* Fixed?

* Fix linters

* More fixes

* aaaaaaaaaaa

* Christa's reviews

* Naming stuff

---------

Signed-off-by: Pedro <79126660+LetXxx@users.noreply.github.com>
Co-authored-by: Aylong <69762909+AyIong@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
Pedro
2024-12-30 21:13:52 +00:00
committed by GitHub
co-authored by Aylong Burzah DGamerL
parent 2559287298
commit b55bef2ed2
82 changed files with 2880 additions and 1479 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+349 -204
View File
@@ -9633,6 +9633,16 @@
icon_state = "redyellowfull"
},
/area/station/maintenance/apmaint)
"bSp" = (
/obj/effect/spawner/window/reinforced/polarized/grilled{
id = "NCT"
},
/obj/structure/cable{
d2 = 8;
icon_state = "0-8"
},
/turf/simulated/floor/plating,
/area/station/procedure/trainer_office)
"bSq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -10970,6 +10980,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/wood,
/area/station/maintenance/abandoned_office)
"cfS" = (
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "darkgreen"
},
/area/station/procedure/trainer_office)
"cfV" = (
/obj/item/food/grown/harebell,
/turf/simulated/floor/grass,
@@ -11034,16 +11050,20 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"cgE" = (
/obj/structure/table,
/obj/item/paper_bin/nanotrasen{
pixel_y = -2
},
/obj/machinery/camera{
c_tag = "Paper Supplies";
dir = 8
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/machinery/power/apc/important/directional/east,
/obj/structure/cable{
d2 = 8;
icon_state = "0-8"
},
/obj/effect/turf_decal/woodsiding{
dir = 4
},
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"cgK" = (
/obj/structure/rack{
dir = 1
@@ -11125,19 +11145,6 @@
icon_state = "darkgrey"
},
/area/station/security/permabrig)
"chI" = (
/obj/structure/table,
/obj/item/stack/package_wrap,
/obj/item/hand_labeler{
pixel_y = 3;
pixel_x = 2
},
/obj/item/hand_labeler,
/obj/machinery/light{
dir = 1
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
"chK" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -17683,6 +17690,13 @@
icon_state = "cult"
},
/area/station/service/chapel/office)
"dzM" = (
/obj/structure/filingcabinet,
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "darkgreen"
},
/area/station/procedure/trainer_office)
"dzR" = (
/turf/simulated/floor/plasteel{
dir = 4;
@@ -19151,18 +19165,24 @@
},
/area/station/science/lobby)
"dOH" = (
/obj/structure/rack,
/obj/item/folder/red{
pixel_x = 8;
pixel_y = 6
/obj/structure/table/wood,
/obj/effect/turf_decal/woodsiding{
dir = 10
},
/obj/item/folder/blue{
pixel_x = 4;
pixel_y = 3
/obj/item/flashlight/lamp/green{
pixel_y = 8;
pixel_x = 5
},
/obj/item/folder,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/machinery/door_control{
id = "nct";
name = "Office Door";
normaldoorcontrol = 1;
req_access = list(80);
pixel_y = -2;
pixel_x = -7
},
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"dOQ" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
@@ -26680,17 +26700,6 @@
icon_state = "darkred"
},
/area/station/security/brig)
"fop" = (
/obj/structure/rack,
/obj/item/clothing/suit/corgisuit,
/obj/item/clothing/head/corgi{
pixel_y = 7
},
/obj/structure/sign/poster/official/love_ian{
pixel_y = -32
},
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"fot" = (
/obj/machinery/light/small,
/turf/simulated/floor/plating,
@@ -30327,6 +30336,23 @@
icon_state = "freezerfloor"
},
/area/station/security/brig)
"fZt" = (
/obj/machinery/button/windowtint{
id = "NCT";
pixel_y = 24;
pixel_x = 5
},
/obj/machinery/light_switch{
pixel_y = 24;
name = "north bump";
pixel_x = -5
},
/obj/structure/closet,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "darkgreen"
},
/area/station/procedure/trainer_office)
"fZK" = (
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
@@ -32270,6 +32296,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/public/storage/office)
"gsr" = (
/obj/item/flag/ian,
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint)
"gsu" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
/obj/item/organ/internal/liver/nian,
@@ -33752,20 +33782,6 @@
icon_state = "whiteblue"
},
/area/station/medical/surgery/primary)
"gHY" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
/obj/structure/disposalpipe/junction{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
"gId" = (
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
@@ -35787,15 +35803,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"hde" = (
/obj/item/kitchen/sushimat{
name = "Prayer Mat"
},
/obj/item/clothing/suit/ianshirt{
desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it but it's pretty close. Good for sleeping in. This one in particular looks like it wasnt washed in months"
},
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint)
"hdi" = (
/obj/structure/sign/poster/official/random{
pixel_x = -32
@@ -36966,6 +36973,14 @@
"hoM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment/corner{
dir = 1
},
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "blue"
@@ -37891,6 +37906,14 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"hxK" = (
/obj/structure/rack,
/obj/item/clothing/suit/corgisuit,
/obj/item/clothing/head/corgi{
pixel_y = 7
},
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint)
"hxL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -37945,8 +37968,8 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"hye" = (
/obj/item/clothing/under/misc/swimsuit/blue,
/turf/simulated/floor/beach/away/sand,
@@ -39923,10 +39946,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/maintenance/fsmaint2)
"hTO" = (
/obj/item/flag/ian,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"hUe" = (
/obj/effect/spawner/random/blood/maybe,
/obj/structure/cable{
@@ -41747,6 +41766,15 @@
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
"imy" = (
/obj/structure/disposalpipe/segment/corner{
dir = 2
},
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "blue"
},
/area/station/hallway/primary/fore/north)
"imB" = (
/obj/item/kirbyplants,
/turf/simulated/floor/plasteel,
@@ -44647,6 +44675,9 @@
/obj/structure/flora/grass/jungle,
/turf/simulated/floor/grass,
/area/station/public/dorms)
"iPs" = (
/turf/simulated/wall,
/area/station/procedure/trainer_office)
"iPw" = (
/obj/structure/lattice/catwalk,
/obj/machinery/camera{
@@ -46624,6 +46655,23 @@
/obj/structure/cable,
/turf/simulated/floor/plating,
/area/station/engineering/atmos/asteroid_maint)
"jjE" = (
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/structure/disposalpipe/junction/reversed{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
"jjJ" = (
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
@@ -48112,8 +48160,12 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/structure/chair/comfy/black{
dir = 8
},
/obj/effect/turf_decal/woodsiding,
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"jzo" = (
/obj/machinery/turretid/stun{
control_area = "\improper AI Satellite Atmospherics";
@@ -49447,14 +49499,6 @@
},
/turf/simulated/floor/plating,
/area/station/turret_protected/aisat/interior)
"jLq" = (
/obj/structure/chair/office,
/obj/item/restraints/handcuffs/cable/red,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/spawner/random/cobweb/right/rare,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"jLr" = (
/obj/machinery/firealarm/directional/east,
/turf/simulated/floor/plasteel,
@@ -50191,6 +50235,17 @@
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
/area/station/engineering/atmos/distribution)
"jSa" = (
/obj/machinery/light{
dir = 1
},
/obj/structure/chair/sofa/left,
/obj/effect/turf_decal/woodsiding{
dir = 1
},
/obj/effect/landmark/start/nanotrasen_career_trainer,
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"jSe" = (
/obj/structure/closet/emcloset,
/turf/simulated/floor/plating,
@@ -62561,13 +62616,15 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/apmaint)
"muP" = (
/obj/structure/table,
/obj/item/paper_bin,
/obj/item/paper_bin{
pixel_y = 15
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk{
dir = 8
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/effect/turf_decal/woodsiding{
dir = 6
},
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"muR" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -63730,6 +63787,17 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
"mJo" = (
/obj/item/radio/intercom{
name = "west bump";
pixel_x = -28
},
/obj/machinery/economy/vending/traindrobe,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "darkgreen"
},
/area/station/procedure/trainer_office)
"mJr" = (
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/sparsegrass,
@@ -64051,9 +64119,15 @@
/turf/simulated/wall/r_wall,
/area/station/science/toxins/mixing)
"mMY" = (
/obj/effect/spawner/window/reinforced,
/obj/effect/spawner/window/reinforced/polarized/grilled{
id = "NCT"
},
/obj/structure/cable{
d2 = 8;
icon_state = "0-4"
},
/turf/simulated/floor/plating,
/area/station/hallway/primary/fore/north)
/area/station/procedure/trainer_office)
"mNe" = (
/obj/structure/table,
/obj/item/multitool,
@@ -64063,6 +64137,16 @@
},
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/distribution)
"mNf" = (
/obj/structure/chair/comfy/brown{
dir = 4
},
/obj/effect/landmark/start/nanotrasen_career_trainer,
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "darkgreen"
},
/area/station/procedure/trainer_office)
"mNs" = (
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -71356,13 +71440,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/maintenance/aft)
"ofC" = (
/obj/structure/closet,
/obj/item/toy/plushie/girly_corgi,
/obj/item/toy/plushie/robo_corgi,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"ofE" = (
/obj/machinery/alarm/directional/west,
/turf/simulated/floor/plasteel{
@@ -71403,6 +71480,13 @@
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/ne)
"ogi" = (
/obj/structure/closet,
/obj/effect/spawner/random/maintenance,
/obj/item/toy/plushie/robo_corgi,
/obj/item/toy/plushie/girly_corgi,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"ogs" = (
/obj/structure/railing,
/obj/structure/flora/ausbushes/ywflowers,
@@ -76491,6 +76575,29 @@
icon_state = "bluecorner"
},
/area/station/hallway/primary/central/west)
"pdn" = (
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/structure/cable{
d1 = 2;
d2 = 8;
icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
/obj/structure/disposalpipe/junction{
dir = 4
},
/obj/structure/cable{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
"pdw" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -80886,18 +80993,16 @@
/turf/space,
/area/space/nearstation)
"pXA" = (
/obj/item/kitchen/knife/shiv{
pixel_y = 16;
pixel_x = 7
/obj/machinery/alarm/directional/west,
/obj/machinery/photocopier,
/obj/machinery/light{
dir = 8
},
/obj/item/clothing/mask/gas,
/obj/item/stock_parts/cell/high/empty{
pixel_y = 12;
pixel_x = -7
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "darkgreen"
},
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
/area/station/procedure/trainer_office)
"pXC" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
@@ -86195,34 +86300,12 @@
},
/area/station/security/permabrig)
"rcg" = (
/obj/structure/closet/crate,
/obj/item/pen,
/obj/item/pen{
pixel_x = -8;
pixel_y = 5
/obj/structure/chair/sofa/right,
/obj/effect/turf_decal/woodsiding{
dir = 1
},
/obj/item/pen{
pixel_x = 8;
pixel_y = 5
},
/obj/item/pen/blue{
pixel_x = 5;
pixel_y = 5
},
/obj/item/pen/blue{
pixel_x = -3;
pixel_y = 2
},
/obj/item/pen/multi{
pixel_x = -4;
pixel_y = 5
},
/obj/item/pen/multi{
pixel_x = -6
},
/obj/item/stack/wrapping_paper,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"rcm" = (
/obj/machinery/economy/vending/wallmed/directional/west,
/turf/simulated/floor/wood,
@@ -86483,16 +86566,6 @@
icon_state = "rampbottom"
},
/area/station/medical/medbay2)
"reI" = (
/obj/structure/table,
/obj/item/stack/sheet/cardboard{
amount = 10
},
/obj/item/dest_tagger{
pixel_x = -4
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
"reR" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/crayons,
@@ -88348,16 +88421,18 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/assembly_line)
"rwZ" = (
/obj/machinery/photocopier,
/obj/item/radio/intercom{
name = "west bump";
pixel_x = -28
/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
dir = 8
},
/obj/structure/sign/poster/official/random{
pixel_y = 32
/obj/effect/turf_decal/woodsiding{
dir = 8
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/machinery/door/window/reinforced/normal{
name = "NCT";
dir = 8
},
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"rxd" = (
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/south)
@@ -90127,6 +90202,16 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/interrogation)
"rNI" = (
/obj/item/flag/nt,
/obj/effect/turf_decal/woodsiding{
dir = 9
},
/obj/structure/window/reinforced{
dir = 8
},
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"rNN" = (
/obj/machinery/newscaster/directional/south,
/turf/simulated/floor/plasteel{
@@ -90862,14 +90947,35 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"rUQ" = (
/obj/machinery/door/airlock/public/glass{
name = "Paper Supplies"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
/obj/structure/cable{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/command/glass{
name = "Trainer's Office";
id_tag = "nct"
},
/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
/obj/effect/mapping_helpers/airlock/polarized{
id = "NCT"
},
/obj/structure/cable{
d1 = 1;
d2 = 4;
icon_state = "1-4"
},
/obj/structure/cable{
d1 = 1;
d2 = 8;
icon_state = "1-8"
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/area/station/procedure/trainer_office)
"rUU" = (
/obj/structure/sign/poster/official/random{
pixel_y = -32
@@ -99421,7 +99527,9 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"tDQ" = (
/obj/effect/spawner/random/maintenance,
/obj/structure/sign/poster/official/love_ian{
pixel_y = -32
},
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"tDY" = (
@@ -101258,8 +101366,14 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/structure/cable{
d1 = 2;
d2 = 4;
icon_state = "2-4"
},
/obj/machinery/hologram/holopad,
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"tXh" = (
/obj/structure/chair/stool,
/turf/simulated/floor/plating,
@@ -102414,13 +102528,6 @@
},
/turf/simulated/floor/wood,
/area/station/security/permabrig)
"uiJ" = (
/obj/structure/sign/poster/official/love_ian{
pixel_y = -32
},
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint)
"uiT" = (
/obj/structure/table,
/obj/item/storage/box/lights/mixed,
@@ -107099,6 +107206,14 @@
"vfn" = (
/turf/simulated/floor/plasteel,
/area/station/supply/miningdock)
"vft" = (
/obj/item/decorations/sticky_decorations/flammable/heart,
/obj/item/stack/sheet/wood{
name = "Ians Stick";
desc = "A large stick covered in bite marks and dried slobber.ss"
},
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint)
"vfu" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
@@ -119520,8 +119635,17 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
/obj/structure/cable{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment/corner{
dir = 4
},
/obj/effect/turf_decal/woodsiding,
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"xEC" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -121653,6 +121777,19 @@
/obj/structure/girder,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"ybJ" = (
/obj/structure/sign/poster/official/love_ian{
pixel_y = -32
},
/obj/item/kitchen/sushimat{
name = "Prayer Mat"
},
/obj/item/clothing/suit/ianshirt{
desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it but it's pretty close. Good for sleeping in. This one in particular looks like it wasnt washed in months"
},
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood,
/area/station/maintenance/fpmaint)
"ybL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
@@ -122462,6 +122599,14 @@
},
/turf/simulated/floor/carpet/blue,
/area/station/command/office/blueshield)
"yjS" = (
/obj/item/kirbyplants,
/obj/effect/turf_decal/woodsiding{
dir = 5
},
/obj/machinery/firealarm/directional/east,
/turf/simulated/floor/carpet,
/area/station/procedure/trainer_office)
"yjU" = (
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 9
@@ -148955,17 +149100,17 @@ jnP
jnP
jnP
jnP
aZS
sik
sik
sik
sik
rtG
rvy
sik
vyj
rtG
sik
hjW
iPs
iPs
iPs
iPs
iPs
slw
pRV
ttR
@@ -149212,17 +149357,17 @@ jnP
jnP
jnP
jnP
aZS
sik
bah
vqr
hTO
gsr
aSK
tDQ
fop
sik
jLq
iPs
dzM
mJo
pXA
hjW
iPs
buP
vqN
dNw
@@ -149469,17 +149614,17 @@ jnP
jnP
jnP
jnP
jnP
sik
vgB
iOz
vtq
seW
ofC
hjW
hjW
hjW
hjW
vtq
hxK
iPs
fZt
cfS
mNf
iPs
uGP
xuN
czL
@@ -149726,17 +149871,17 @@ jnP
jnP
jnP
jnP
jnP
sik
toV
fdc
hde
aSK
hjW
hjW
seW
iOz
pXZ
iPs
rNI
rwZ
dOH
hjW
iPs
lZK
tMO
iZd
@@ -149983,13 +150128,13 @@ jnP
jnP
jnP
jnP
jnP
sik
iWm
fdc
aSK
cnZ
pck
hjW
iPs
rcg
hyc
jzm
@@ -150240,19 +150385,19 @@ jnP
jnP
jnP
jnP
jnP
sik
qXC
vft
oNy
pXZ
uiJ
hjW
chI
aSK
ybJ
iPs
jSa
tXb
xEx
rUQ
hoM
gHY
pdn
dat
lwr
mZC
@@ -150497,19 +150642,19 @@ aZS
aZS
aZS
jnP
jnP
sik
vEd
fck
ogi
lLd
pUl
chh
reI
iPs
yjS
cgE
muP
mMY
eNi
xuN
bSp
imy
jjE
slD
tnk
xtx
File diff suppressed because it is too large Load Diff
+1
View File
@@ -65,6 +65,7 @@
#define ACCESS_MINERAL_STOREROOM 76
#define ACCESS_CARGO_BAY 78
#define ACCESS_SUPPLY_SHUTTLE 79
#define ACCESS_TRAINER 80
#define ACCESS_WEAPONS 99 //! Weapon authorization for secbots.
+1
View File
@@ -22,6 +22,7 @@
#define JOB_JUDGE (1<<12)
#define JOB_BLUESHIELD (1<<13)
#define JOB_NANO (1<<14)
#define JOB_INSTRUCTOR (1<<15)
#define JOBCAT_MEDSCI (1<<1)
+3
View File
@@ -181,6 +181,9 @@ SUBSYSTEM_DEF(jobs)
if(job.admin_only) // No admin positions either.
continue
if(job.mentor_only) // Neither for mentor positions
continue
if(jobban_isbanned(player, job.title))
Debug("GRJ isbanned failed, Player: [player], Job: [job.title]")
continue
@@ -31,7 +31,8 @@ GLOBAL_REAL(SSmentor_tickets, /datum/controller/subsystem/tickets/mentor_tickets
"Clear Cache" = "To fix a blank screen, go to the 'Special Verbs' tab and press 'Reload UI Resources'. If that fails, clear your BYOND cache (instructions provided with 'Reload UI Resources'). If that still fails, please ask for help again, stating you have already done these steps.",
"Experiment!" = "Experiment! Part of the joy of this game is trying out various things, and dealing with the consequences if/when they go horribly wrong.",
"How to Objectives" = "There are lots of ways to accomplish your objectives as an antagonist. A direct frontal assault may work, provided you can get in and out before backup arrives. Sneaking in can work, too, as long as you're quick and avoid prying eyes. But don't forget roleplaying methods! Tricking your target into a maze of bear traps is much more interesting than just shooting them with a gun. Even if it fails, you and your target (or its guardians) are likely to have more fun this way, and that's the most important part.",
"MHelp was in Russian" = "Привет! Ты попал на английский Paradise сервер. Возможно, ты ошибся. Русский имеет такое название: SS220\[RU]."
"MHelp was in Russian" = "Привет! Ты попал на английский Paradise сервер. Возможно, ты ошибся. Русский имеет такое название: SS220\[RU].",
"NCT Dispatch" = "A Nanotrasen Career Trainer will be assisting you in-game. You should be able to identify them by their green uniform and black coat."
)
if(GLOB.configuration.url.github_url)
@@ -71,6 +72,21 @@ GLOBAL_REAL(SSmentor_tickets, /datum/controller/subsystem/tickets/mentor_tickets
if(message_key == null)
T.staffAssigned = null //if they cancel we dont need to hold this ticket anymore
return
if(message_key == "NCT Dispatch")
var/nct_active = list()
for(var/mob/living/carbon/human/trainer as anything in GLOB.human_list) // Let's check if we have any active NCTs
if(trainer.mind?.assigned_role != "Nanotrasen Career Trainer")
continue
nct_active += trainer
if(!length(nct_active))
to_chat(usr, "There are no active NCTs. Autoresponse canceled.") // If we don't, don't solve the ticket and then send feedback.
return
var/mob/living/carbon/human/trainee = get_mob_by_ckey(T.client_ckey)
for(var/mob/living/carbon/human/nct as anything in nct_active)
if(!locate(/obj/item/radio/headset) in list(nct.l_ear, nct.r_ear)) // If the NCT doesn't have a headset, ignore it.
continue
to_chat(nct, "<span class='notice'>Incoming priority transmission from Nanotrasen Training Center. Request information as follows: </span><span class='specialnotice'>Career Trainer, we've received a request from an employee. [trainee.p_their(TRUE)] name is [trainee.real_name], [trainee.p_theyre()] a [trainee.mind.assigned_role]. See if [trainee.p_they()] need [trainee.p_s()] any help.</span>")
SEND_SOUND(nct, 'sound/effects/headset_message.ogg')
SEND_SOUND(returnClient(N), sound('sound/effects/adminhelp.ogg'))
to_chat_safe(returnClient(N), "<span class='[span_class]'>[key_name_hidden(C)] is autoresponding with:</span> <span class='adminticketalt'>[response_phrases[message_key]]</span>") //for this we want the full value of whatever key this is to tell the player so we do response_phrases[message_key]
+4
View File
@@ -402,6 +402,10 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
if("Nanotrasen Representative")
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
if("Nanotrasen Career Trainer")
clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "trainer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "trainercoat"), ICON_OVERLAY)
if("Blueshield")
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
+7
View File
@@ -188,5 +188,12 @@
/datum/outfit/plasmaman/assistant
name = "Assistant Plasmaman"
head = /obj/item/clothing/head/helmet/space/plasmaman/assistant
uniform = /obj/item/clothing/under/plasmaman/assistant
/datum/outfit/plasmaman/trainer
name = "Plasmaman Career Trainer"
head = /obj/item/clothing/head/helmet/space/plasmaman/trainer
uniform = /obj/item/clothing/under/plasmaman/trainer
@@ -200,7 +200,8 @@
/datum/job/judge = /obj/item/organ/internal/cyberimp/arm/telebaton,
/datum/job/explorer = /obj/item/organ/internal/cyberimp/arm/toolset,
/datum/job/nanotrasenrep = /obj/item/organ/internal/heart/cybernetic/upgraded,
/datum/job/blueshield = /obj/item/organ/internal/cyberimp/arm/flash
/datum/job/blueshield = /obj/item/organ/internal/cyberimp/arm/flash,
/datum/job/nanotrasentrainer = /obj/item/organ/internal/heart/cybernetic/upgraded
)
/datum/station_trait/cybernetic_revolution/New()
@@ -0,0 +1,4 @@
/area/station/procedure/trainer_office
name = "\improper Trainer's Office"
icon_state = "procedure_nct"
+1 -1
View File
@@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","E
name = "changeling"
config_tag = "changeling"
restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
species_to_mindflayer = list("Machine")
required_players = 15
required_enemies = 1
+1 -1
View File
@@ -7,7 +7,7 @@
/datum/game_mode/revolution
name = "revolution"
config_tag = "revolution"
restricted_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative", "Magistrate", "Quartermaster")
restricted_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative", "Magistrate", "Quartermaster", "Nanotrasen Career Trainer")
required_players = 20
required_enemies = 1
recommended_enemies = 3
+1 -1
View File
@@ -2,7 +2,7 @@
name = "traitor"
config_tag = "traitor"
restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
required_players = 0
required_enemies = 1
recommended_enemies = 4
+1 -1
View File
@@ -6,7 +6,7 @@
/datum/game_mode/trifecta
name = "Trifecta"
config_tag = "trifecta"
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Trans-Solar Federation General")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
restricted_jobs = list("Cyborg")
secondary_restricted_jobs = list("AI")
required_players = 25
@@ -2,7 +2,7 @@
name = "vampire"
config_tag = "vampire"
restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Chaplain", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Chaplain", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
species_to_mindflayer = list("Machine")
required_players = 15
required_enemies = 1
+4 -2
View File
@@ -107,7 +107,7 @@
ACCESS_INTERNAL_AFFAIRS, ACCESS_LIBRARY, ACCESS_MAGISTRATE, ACCESS_MAINT_TUNNELS, ACCESS_HEADS_VAULT, ACCESS_MEDICAL, ACCESS_MIME,
ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_NTREP, ACCESS_PARAMEDIC, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_ENGINE_EQUIP, ACCESS_PSYCHIATRIST, ACCESS_QM, ACCESS_RD, ACCESS_RC_ANNOUNCE, ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_RESEARCH, ACCESS_SECURITY,
ACCESS_SURGERY, ACCESS_TECH_STORAGE, ACCESS_TELEPORTER, ACCESS_THEATRE, ACCESS_TCOMSAT, ACCESS_TOX_STORAGE, ACCESS_VIROLOGY, ACCESS_WEAPONS, ACCESS_XENOBIOLOGY)
ACCESS_SURGERY, ACCESS_TECH_STORAGE, ACCESS_TELEPORTER, ACCESS_THEATRE, ACCESS_TCOMSAT, ACCESS_TOX_STORAGE, ACCESS_VIROLOGY, ACCESS_WEAPONS, ACCESS_XENOBIOLOGY, ACCESS_TRAINER)
/proc/get_all_centcom_access()
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SHUTTLES, ACCESS_CENT_SPECOPS, ACCESS_CENT_SPECOPS_COMMANDER, ACCESS_CENT_COMMANDER)
@@ -126,7 +126,7 @@
if(REGION_ALL)
return get_all_accesses()
if(REGION_GENERAL) //station general
return list(ACCESS_KITCHEN, ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS, ACCESS_MAGISTRATE, ACCESS_CLOWN, ACCESS_MIME)
return list(ACCESS_KITCHEN, ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS, ACCESS_MAGISTRATE, ACCESS_CLOWN, ACCESS_MIME, ACCESS_TRAINER)
if(REGION_SECURITY) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS)
if(REGION_MEDBAY) //medbay
@@ -302,6 +302,8 @@
return "AI Satellite"
if(ACCESS_WEAPONS)
return "Weapon Permit"
if(ACCESS_TRAINER)
return "Nanotrasen Career Trainer"
/proc/get_centcom_access_desc(A)
switch(A)
+1
View File
@@ -60,6 +60,7 @@
var/hidden_from_job_prefs = FALSE // if true, job preferences screen never shows this job.
var/admin_only = 0
var/mentor_only = 0
var/spawn_ert = 0
var/syndicate_command = 0
+75 -2
View File
@@ -175,7 +175,8 @@
ACCESS_SECURITY,
ACCESS_SUPPLY_SHUTTLE,
ACCESS_THEATRE,
ACCESS_WEAPONS
ACCESS_WEAPONS,
ACCESS_TRAINER
)
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/nanotrasenrep
@@ -276,7 +277,8 @@
ACCESS_RC_ANNOUNCE,
ACCESS_SEC_DOORS,
ACCESS_SECURITY,
ACCESS_WEAPONS
ACCESS_WEAPONS,
ACCESS_TRAINER
)
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/judge
@@ -349,3 +351,74 @@
bio_chips = list(/obj/item/bio_chip/mindshield)
satchel = /obj/item/storage/backpack/satchel_sec
dufflebag = /obj/item/storage/backpack/duffel/security
/datum/job/nanotrasentrainer
title = "Nanotrasen Career Trainer"
flag = JOB_INSTRUCTOR
department_flag = JOBCAT_ENGSEC
total_positions = 2
spawn_positions = 2
supervisors = "the Nanotrasen Representative"
department_head = list("Captain")
selection_color = "#ddddff"
mentor_only = TRUE
job_department_flags = DEP_FLAG_COMMAND
transfer_allowed = FALSE
access = list(
ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_CARGO,
ACCESS_MAILSORTING,
ACCESS_CONSTRUCTION,
ACCESS_COURT,
ACCESS_EVA,
ACCESS_MAINT_TUNNELS,
ACCESS_MEDICAL,
ACCESS_RESEARCH,
ACCESS_SEC_DOORS,
ACCESS_THEATRE,
ACCESS_INTERNAL_AFFAIRS,
ACCESS_TRAINER
)
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/nct
important_information = "Your job is to try to assist as many crew members as possible regardless of department. You are NOT permitted to give command staff advice on any command SOP questions or aid in legal advice."
/datum/outfit/job/nct
name = "Nanotrasen Career Trainer"
jobtype = /datum/job/nanotrasentrainer
uniform = /obj/item/clothing/under/rank/procedure/nct
suit = /obj/item/clothing/suit/storage/nct
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/centcom
head = /obj/item/clothing/head/beret/nct/green
glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
l_ear = /obj/item/radio/headset/headset_nct
id = /obj/item/card/id/nct
l_pocket = /obj/item/card/id/nct_data_chip
r_pocket = /obj/item/flash
pda = /obj/item/pda/heads/ntrep
backpack = /obj/item/storage/backpack/satchel
backpack_contents = list(
/obj/item/pinpointer/crew = 1,
/obj/item/healthanalyzer/advanced = 1,
/obj/item/book/manual/sop_ntinstructor,
/obj/item/laser_pointer/blue = 1
)
bio_chips = list(/obj/item/bio_chip/mindshield)
/datum/outfit/job/nct/post_equip(mob/living/carbon/human/H, visualsOnly)
. = ..()
if(visualsOnly)
return
var/obj/item/card/id/nct_data_chip/I = H.l_store
I.registered_user = H.mind.current
I.registered_name = H.real_name
var/icon/newphoto = get_id_photo(H, "Nanotrasen Career Trainer")
I.photo = newphoto
/datum/outfit/job/nct/on_mind_initialize(mob/living/carbon/human/H)
. = ..()
H.mind.offstation_role = TRUE
+2 -1
View File
@@ -14,7 +14,8 @@ GLOBAL_LIST_INIT(command_positions, list(
"Quartermaster",
"Nanotrasen Representative",
"Magistrate",
"Blueshield"
"Blueshield",
"Nanotrasen Career Trainer"
))
/// Only roles that are command of departments, for revolution and similar stuff
+16 -5
View File
@@ -50,7 +50,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
/datum/job/nanotrasenrep,
/datum/job/chaplain,
/datum/job/officer,
/datum/job/qm
/datum/job/qm,
/datum/job/nanotrasentrainer
)
//The scaling factor of max total positions in relation to the total amount of people on board the station in %
@@ -154,17 +155,19 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
/obj/machinery/computer/card/attackby__legacy__attackchain(obj/item/card/id/id_card, mob/user, params)
if(!istype(id_card))
return ..()
if(istype(id_card, /obj/item/card/id/nct_data_chip))
return ..()
if(!scan && check_access(id_card))
user.drop_item()
id_card.forceMove(src)
scan = id_card
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
else if(!modify)
user.drop_item()
id_card.forceMove(src)
modify = id_card
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
SStgui.update_uis(src)
attack_hand(user)
@@ -425,14 +428,18 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
else if(Adjacent(usr))
var/obj/item/I = usr.get_active_hand()
if(istype(I, /obj/item/card/id))
if(istype(I, /obj/item/card/id/nct_data_chip))
playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, FALSE)
to_chat(usr, "<span class='warning'>The data chip doesn't fit!</span>")
return FALSE
if(!check_access(I))
playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0)
playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, FALSE)
to_chat(usr, "<span class='warning'>This card does not have access.</span>")
return FALSE
usr.drop_item()
I.forceMove(src)
scan = I
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
return
if("modify") // inserting or removing the ID you plan to modify
if(modify)
@@ -451,6 +458,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
else if(Adjacent(usr))
var/obj/item/I = usr.get_active_hand()
if(istype(I, /obj/item/card/id))
if(istype(I, /obj/item/card/id/nct_data_chip))
playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, FALSE)
to_chat(usr, "<span class='warning'>The data chip doesn't fit!</span>")
return FALSE
usr.drop_item()
I.forceMove(src)
modify = I
+3
View File
@@ -61,6 +61,9 @@
my_terminal_id = ++global_terminal_id
/obj/machinery/computer/guestpass/attackby__legacy__attackchain(obj/item/I, mob/user, params)
if(istype(I, /obj/item/card/id/nct_data_chip))
to_chat(user, "<span class='warning'>[I] does not seem compatible with this terminal!</span>")
return
if(istype(I, /obj/item/card/id))
if(!scan)
if(user.drop_item())
+2 -1
View File
@@ -317,7 +317,8 @@ to destroy them and players will be able to make replacements.
"BarDrobe" = /obj/machinery/economy/vending/bardrobe,
"HydroDrobe" = /obj/machinery/economy/vending/hydrodrobe,
"JaniDrobe" = /obj/machinery/economy/vending/janidrobe,
"LawDrobe" = /obj/machinery/economy/vending/lawdrobe)
"LawDrobe" = /obj/machinery/economy/vending/lawdrobe,
"TrainDrobe" = /obj/machinery/economy/vending/traindrobe)
var/static/list/unique_vendors = list(
"ShadyCigs Ultra" = /obj/machinery/economy/vending/cigarette/beach,
"SyndiMed Plus" = /obj/machinery/economy/vending/wallmed/syndicate)
+2
View File
@@ -132,6 +132,8 @@
"Journalist" = "srvradio",
"Librarian" = "srvradio",
"Mime" = "srvradio",
// Procedure
"Nanotrasen Career Trainer" = "proradio",
)
/// List of Command jobs
var/list/heads = list("Captain", "Head of Personnel", "Nanotrasen Representative", "Blueshield", "Chief Engineer", "Chief Medical Officer", "Research Director", "Head of Security", "Magistrate", "Quartermaster", "AI")
+38
View File
@@ -922,3 +922,41 @@
/obj/item/clothing/under/plasmaman/enviroslacks = 60)
refill_canister = /obj/item/vending_refill/lawdrobe
/obj/machinery/economy/vending/traindrobe
name = "\improper TrainDrobe"
desc = "This wardrobe dispenses the attire of Nanotrasen's finest teaching force."
icon_state = "traindrobe"
icon_lightmask = "base_drobe"
icon_panel = "drobe"
icon_broken = "base_drobe"
icon_off = "base_drobe"
category = VENDOR_TYPE_CLOTHING
ads_list = list("You're gonna LEARN today!", "What am I supposed to do?")
vend_reply = "Thank you for using the TrainDrobe!"
products = list(
/obj/item/clothing/gloves/color/white = 2,
/obj/item/clothing/gloves/color/black = 2,
/obj/item/clothing/shoes/laceup = 2,
/obj/item/clothing/shoes/black = 2,
/obj/item/clothing/shoes/brown = 2,
/obj/item/clothing/head/drilltrainer = 2,
/obj/item/clothing/under/rank/procedure/nct = 2,
/obj/item/clothing/under/rank/procedure/nct/skirt = 2,
/obj/item/clothing/suit/storage/nct = 2,
/obj/item/clothing/head/helmet/space/plasmaman/trainer = 2,
/obj/item/clothing/under/plasmaman/trainer = 2,
/obj/item/clothing/accessory/armband/procedure = 2,
/obj/item/clothing/head/beret/nct/green = 2,
/obj/item/clothing/head/beret/nct/black = 2,
/obj/item/clothing/head/beret/sec = 2,
/obj/item/clothing/head/beret/med = 2,
/obj/item/clothing/head/beret/sci = 2,
/obj/item/clothing/head/beret/eng = 2,
/obj/item/clothing/head/beret/atmos = 2,
/obj/item/clothing/head/beret/cargo = 2,
/obj/item/clothing/head/beret/black = 2)
prices = list()
refill_canister = /obj/item/vending_refill/traindrobe
+4
View File
@@ -422,6 +422,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
name = "Warden"
icon_state = "Warden"
/obj/effect/landmark/start/nanotrasen_career_trainer
name ="Nanotrasen Career Trainer"
icon_state = "NCT"
/obj/effect/landmark/start/set_tag()
tag = "start*[name]"
@@ -172,3 +172,8 @@
desc = "Integrated encryption key."
icon_state = "cap_cypherkey"
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1, "Procedure" = 1)
/obj/item/encryptionkey/headset_nct
name = "NCT Radio Encryption Key"
icon_state = "com_cypherkey"
channels = list("Procedure" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1)
@@ -308,6 +308,13 @@
item_state = "headset"
ks2type = /obj/item/encryptionkey/heads/ntrep
/obj/item/radio/headset/headset_nct
name = "\improper Nanotrasen career trainer radio headset"
desc = "This is used by your well-taught corporate training team."
icon_state = "com_headset"
item_state = "headset"
ks2type = /obj/item/encryptionkey/headset_nct
/obj/item/radio/headset/heads/magistrate
name = "magistrate's headset"
desc = "The headset of the Magistrate."
+60 -2
View File
@@ -620,6 +620,13 @@
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_HEADS_VAULT, ACCESS_MINING_STATION,
ACCESS_CLOWN, ACCESS_MIME, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_EXPEDITION, ACCESS_WEAPONS, ACCESS_NTREP)
/obj/item/card/id/nct
name = "\improper Nanotrasen Career Trainer ID"
registered_name = "Nanotrasen Career Trainer"
icon_state = "nctrainer"
access = list(ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_COURT, ACCESS_EVA, ACCESS_TRAINER, ACCESS_MAINT_TUNNELS,
ACCESS_MEDICAL, ACCESS_RESEARCH, ACCESS_SEC_DOORS, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS)
/obj/item/card/id/blueshield
name = "Blueshield ID"
registered_name = "Blueshield"
@@ -776,6 +783,55 @@
/obj/item/card/id/data
icon_state = "data"
/obj/item/card/id/nct_data_chip
name = "\improper NCT Trainee Access Chip"
desc = "A small electronic access token that allows its user to copy the access of their Trainee. Only accessible by NT Career Trainers!"
icon_state = "nct_chip"
assignment = "Nanotrasen Career Trainer"
var/registered_user = null
var/trainee = null
/obj/item/card/id/nct_data_chip/examine(mob/user)
. = ..()
. += "<br>The current registered Trainee is: <b>[trainee]</b>"
. += "<span class='notice'>Use in hand to reset the assigned trainee and access.</span>"
. += "<span class='purple'>The datachip is unable to copy any access that has been deemed high-risk by Nanotrasen Officials. That includes some, if not most, head related access permissions.</span>"
/obj/item/card/id/nct_data_chip/activate_self(mob/user)
if(..())
return
if(!trainee)
return
var/response = tgui_alert(user, "Would you like to remove [trainee] as your current active Trainee?", "Choose", list("Yes", "No"))
if(response == "Yes")
trainee = null
icon_state = "nct_chip"
access = list()
/obj/item/card/id/nct_data_chip/interact_with_atom(atom/target, mob/living/user, list/modifiers)
if(!istype(target, /obj/item/card/id))
return
if(!(isliving(user) && user.mind))
return
if(user.mind.current != registered_user)
to_chat(user, "<span class='notice'>You do not have access to use this NCT Trainee Access Chip!</span>")
return
if(istype(target, /obj/item/card/id/ert))
to_chat(user, "<span class='warning'>The chip's screen blinks red as you attempt scanning this ID.</span>")
return
var/obj/item/card/id/I = target
to_chat(user, "<span class='notice'>The chip's microscanners activate as you scan [I.registered_name]'s ID, copying its access.</span>")
access = I.access
access.Remove(ACCESS_AI_UPLOAD, ACCESS_ARMORY, ACCESS_CAPTAIN, ACCESS_CE, ACCESS_RD, ACCESS_HOP, ACCESS_QM, ACCESS_CMO, ACCESS_HOS, ACCESS_NTREP,
ACCESS_MAGISTRATE, ACCESS_BLUESHIELD, ACCESS_HEADS_VAULT, ACCESS_KEYCARD_AUTH, ACCESS_RC_ANNOUNCE,
ACCESS_CHANGE_IDS, ACCESS_MINISAT)
trainee = I.registered_name
icon_state = "nct_chip_active"
// Decals
/obj/item/id_decal
name = "identification card decal"
@@ -829,10 +885,10 @@
override_name = 1
/proc/get_station_card_skins()
return list("data","id","gold","silver","security","detective","warden","internalaffairsagent","medical","coroner","chemist","virologist","paramedic","psychiatrist","geneticist","research","roboticist","quartermaster","cargo","shaftminer","engineering","atmostech","captain","HoP","HoS","CMO","RD","CE","assistant","clown","mime","botanist","librarian","chaplain","bartender","chef","janitor","rainbow","prisoner","explorer")
return list("data", "id", "gold", "silver", "security", "detective", "warden", "internalaffairsagent", "medical", "coroner", "chemist", "virologist", "paramedic", "psychiatrist", "geneticist", "research", "roboticist", "quartermaster", "cargo", "shaftminer", "engineering", "atmostech", "captain", "HoP", "HoS", "CMO", "RD", "CE", "assistant", "clown", "mime", "botanist", "librarian", "chaplain", "bartender", "chef", "janitor", "rainbow", "prisoner", "explorer", "nct")
/proc/get_centcom_card_skins()
return list("centcom","blueshield","magistrate","ntrep","ERT_leader","ERT_empty","ERT_security","ERT_engineering","ERT_medical","ERT_janitorial","ERT_paranormal","deathsquad","commander","syndie","TDred","TDgreen")
return list("centcom", "blueshield", "magistrate", "ntrep", "ERT_leader", "ERT_empty", "ERT_security", "ERT_engineering", "ERT_medical", "ERT_janitorial", "ERT_paranormal", "deathsquad", "commander", "syndie", "TDred", "TDgreen")
/proc/get_all_card_skins()
return get_station_card_skins() + get_centcom_card_skins()
@@ -853,6 +909,8 @@
return "Security Officer"
if("internalaffairsagent")
return "Internal Affairs Agent"
if("nct")
return "Nanotrasen Career Trainer"
if("atmostech")
return "Life Support Specialist"
if("HoP")
@@ -996,6 +996,39 @@
title = "Science Standard Operating Procedures"
wiki_article_title = "Standard_Operating_Procedure_(Science)"
/obj/item/book/manual/sop_ntinstructor
name = "Career Trainer SOP"
desc = "A set of guidelines for Instructors."
icon_state = "sop_legal"
author = "Nanotrasen"
title = "Instructor SOP"
pages = list({"
<html>
<head>
<style>
h1 {font-size: 15px; margin: 15px 0px 5px;}
li {margin: 2px 0px 2px 15px;}
ul {list-style: none; margin: 5px; padding: 0px;}
ol {margin: 5px; padding: 0px 15px;}
</style>
</head>
<body>
<h1><U><B>Instructor SOP</B></U></h1><BR>
<p>
<ol>
<li>NT Career Trainers are to wear their company-provided uniform and <b>jacket OR their issued beret/hat</b> at all times while on duty. They are free to choose a beret that best matches their primary field of knowledge if they so desire. Additionally, Identifying equipment SHOULD not be distributed to crew members. </li>
<li>NT Career Trainers are to be available to all Crewmembers, regardless of Department. You may not only assist a singular Department. </li>
<li>NT Career Trainers are not to do a Trainee's work for them. </li>
<li>NT Career Trainers are to use NCT Data Chips only to acquire the access necessary for providing training. They are not to use said access for other purposes. </li>
<li>In the event of a lost or stolen NCT Data Chip, the NT Career Trainer is to report the incident to their local Nanotrasen Representative or Station Captain. </li>
<li>NT Career Trainers are permitted to carry a flash for self-defense.</li>
</ol>
</body>
</html>
"})
//* MANUAL SPAWNERS *// (and space Law)
/obj/item/book/manual/random
@@ -223,3 +223,7 @@
/obj/item/vending_refill/lawdrobe
machine_name = "LawDrobe"
icon_state = "refill_clothes"
/obj/item/vending_refill/traindrobe
machine_name = "TrainDrobe"
icon_state = "refill_clothes"
+1 -1
View File
@@ -198,7 +198,7 @@
/obj/item/toy/figure/crew/iaa,
/obj/item/toy/figure/crew/dsquad,
/obj/item/storage/box/scratch_cards)
job_list = list("Captain", "Magistrate", "Nanotrasen Representative", "Blueshield", "Internal Affairs Agent")
job_list = list("Captain", "Magistrate", "Nanotrasen Representative", "Blueshield", "Internal Affairs Agent", "Nanotrasen Career Trainer")
/obj/item/envelope/misc
possible_contents = list(/obj/item/clothing/under/misc/assistantformal,
@@ -8,6 +8,7 @@
/// Jobs that cannot be the kidnapping target.
var/static/list/forbidden_jobs = list(
"Captain",
"Nanotrasen Career Trainer"
)
/// Static whitelist of area names that can be used as an extraction zone, structured by difficulty.
/// An area's difficulty should be measured in how crowded it generally is, how out of the way it is and so on.
@@ -1535,6 +1535,17 @@
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-norm"), ICON_OVERLAY)
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(JOB_INSTRUCTOR)
clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "trainer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "trainercoat"), ICON_OVERLAY)
switch(backbag)
if(2)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY)
if(3)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-norm"), ICON_OVERLAY)
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(disabilities & DISABILITY_FLAG_NEARSIGHTED)
preview_icon.Blend(new /icon('icons/mob/clothing/eyes.dmi', "glasses"), ICON_OVERLAY)
@@ -2036,6 +2047,10 @@
if(job.hidden_from_job_prefs)
continue
if(job.mentor_only)
if(!check_rights(R_MENTOR | R_ADMIN, FALSE, user))
continue
index += 1
if((index >= limit) || (job.title in splitJobs))
if((index < limit) && (lastJob != null))
@@ -2058,6 +2073,7 @@
if(jobban_isbanned(user, job.title))
html += "<del class='dark'>[rank]</del></td><td class='bad'><b> \[BANNED]</b></td></tr>"
continue
var/restrictions = job.get_exp_restrictions(user.client)
if(restrictions)
html += "<del class='dark'>[rank]</del></td><td class='bad'><b> \[[restrictions]]</b></td></tr>"
@@ -233,7 +233,7 @@
/datum/gear/accessory/armband_job/procedure
display_name = "Armband, procedure"
path = /obj/item/clothing/accessory/armband/procedure
allowed_roles = list("Captain", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent")
allowed_roles = list("Captain", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Career Trainer")
/datum/gear/accessory/armband_job/service
display_name = "Armband, service"
+20
View File
@@ -178,6 +178,26 @@
"Drask" = 'icons/mob/clothing/species/drask/head/beret.dmi'
)
//NT Career Trainer
/obj/item/clothing/head/beret/nct/black
name = "\improper NT Career Trainer's beret"
desc = "A beret worn by the mentors and trainers of the Career Training Team. This one is black!"
icon_state = "beret_trainerblack"
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head/beret.dmi',
"Drask" = 'icons/mob/clothing/species/drask/head/beret.dmi'
)
/obj/item/clothing/head/beret/nct/green
name = "\improper NT Career Trainer's beret"
desc = "A beret worn by the mentors and trainers of the Career Training Team. This one is green!"
icon_state = "beret_trainergreen"
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head/beret.dmi',
"Drask" = 'icons/mob/clothing/species/drask/head/beret.dmi'
)
//Special Roles
/obj/item/clothing/head/beret/solgov
+11
View File
@@ -193,3 +193,14 @@
desc = "A cap coroners wear during autopsies. Keeps their hair from falling into the cadavers. It is as dark as the coroner's humor."
icon_state = "surgcap_black"
dog_fashion = /datum/dog_fashion/head/surgery
// NT Career Trainer
/obj/item/clothing/head/drilltrainer
name = "campaign hat"
desc = "A wide-brimmed campaign hat with a drill sergeant feel, worn by Career Trainers to project knowledge and guide new employees with classic style."
icon_state = "trainercampaign"
item_state = "trainercampaign"
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi'
)
@@ -359,3 +359,9 @@
if(!H.is_in_hands(src) || HAS_TRAIT(H, TRAIT_HANDS_BLOCKED))
return FALSE
return TRUE
/obj/item/clothing/head/helmet/space/plasmaman/trainer
name = "\improper NT Career Trainer envirosuit helmet"
desc = "A plasmaman envirohelm designed for the nanotrasen career trainer."
icon_state = "trainer_envirohelm"
item_state = "trainer_envirohelm"
+16
View File
@@ -410,3 +410,19 @@
item_state = "rdmantle"
allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/applicator, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50)
//NT Career Trainer
/obj/item/clothing/suit/storage/nct
name = "\improper NT Career Trainer's jacket"
desc = "A sharp black coat with beige trim around the cuffs and collar, offering a mix of professionalism and approachability."
icon_state = "trainercoat"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
ignore_suitadjust = TRUE
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
"Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi',
"Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
"Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
)
@@ -134,3 +134,10 @@
item_state = "tacticool_envirosuit"
item_color = "tacticool_envirosuit"
has_sensor = FALSE
/obj/item/clothing/under/plasmaman/trainer
name = "\improper NT career trainer's envirosuit"
desc = "An envirosuit designed for plasmamen employed as the nanotrasen career trainer."
icon_state = "trainer_envirosuit"
item_state = "trainer_envirosuit"
item_color = "trainer_envirosuit"
@@ -159,3 +159,17 @@
icon_state = "iaa_formal_goodman_skirt"
item_state = "iaa_formal_goodman_skirt"
item_color = "iaa_formal_goodman_skirt"
/obj/item/clothing/under/rank/procedure/nct
name = "\improper NT Career Trainer's uniform"
desc = "A neatly pressed olive green shirt paired with black jeans, worn by those dedicated to shaping the future of the workforce."
icon_state = "trainer"
item_state = "trainer"
item_color = "trainer"
/obj/item/clothing/under/rank/procedure/nct/skirt
name = "\improper NT Career Trainer's skirt"
desc = "A neatly pressed olive green shirt paired with a sleek black skirt, worn by those committed to mentoring the next generation."
icon_state = "trainer_skirt"
item_state = "trainer_skirt"
item_color = "trainer_skirt"
+2 -1
View File
@@ -21,7 +21,8 @@
/datum/job/hop,
/datum/job/nanotrasenrep,
/datum/job/judge,
/datum/job/qm
/datum/job/qm,
/datum/job/nanotrasentrainer
)
/datum/event/bureaucratic_error/announce()
+7
View File
@@ -492,3 +492,10 @@
/obj/effect/mapping_helpers/airlock/access/all/centcomm/traders
access = ACCESS_TRADE_SOL
// -------------------- Procedure access helpers
/obj/effect/mapping_helpers/airlock/access/all/procedure
icon_state = "access_helper_pro"
/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer
access = ACCESS_TRAINER
@@ -446,3 +446,10 @@
/obj/effect/mapping_helpers/airlock/windoor/access/all/supply/mule_bot
access = ACCESS_CARGO_BOT
// -------------------- Procedure access helpers
/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure
icon_state = "access_windoor_pro"
/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer
access = ACCESS_TRAINER
@@ -147,6 +147,9 @@
if("Assistant")
O = new /datum/outfit/plasmaman/assistant
if("Nanotrasen Career Trainer")
O = new /datum/outfit/plasmaman/trainer
H.equipOutfit(O, visualsOnly)
H.internal = H.r_hand
H.update_action_buttons_icon()
@@ -277,6 +277,8 @@
return FALSE
if(job.get_exp_restrictions(client))
return FALSE
if(job.mentor_only && !check_rights(R_MENTOR | R_ADMIN, FALSE))
return FALSE
if(GLOB.configuration.jobs.assistant_limit)
if(job.title == "Assistant")
@@ -84,3 +84,8 @@
name = "Chinese Supply Crate"
contains = list(/obj/item/vending_refill/chinese)
containername = "chinese supply crate"
/datum/supply_packs/vending/trainer
name = "TrainDrobe Supply Crate"
contains = list(/obj/item/vending_refill/traindrobe)
containername = "traindrobe supply crate"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 KiB

After

Width:  |  Height:  |  Size: 525 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 33 KiB

+2 -1
View File
@@ -109,8 +109,8 @@
#include "code\__DEFINES\radio_defines.dm"
#include "code\__DEFINES\reagents_defines.dm"
#include "code\__DEFINES\regex.dm"
#include "code\__DEFINES\revolution_defines.dm"
#include "code\__DEFINES\resonator_defines.dm"
#include "code\__DEFINES\revolution_defines.dm"
#include "code\__DEFINES\role_preferences.dm"
#include "code\__DEFINES\rolebans.dm"
#include "code\__DEFINES\rust.dm"
@@ -720,6 +720,7 @@
#include "code\game\area\ss13_areas\legal_areas.dm"
#include "code\game\area\ss13_areas\maintenance_areas.dm"
#include "code\game\area\ss13_areas\medical_areas.dm"
#include "code\game\area\ss13_areas\procedure_areas.dm"
#include "code\game\area\ss13_areas\public_areas.dm"
#include "code\game\area\ss13_areas\science_areas.dm"
#include "code\game\area\ss13_areas\security_areas.dm"