diff --git a/_maps/map_files220/MetaStation/MetaStation.dmm b/_maps/map_files220/MetaStation/MetaStation.dmm index 08d4ce65cd34..c919a804c3e6 100644 --- a/_maps/map_files220/MetaStation/MetaStation.dmm +++ b/_maps/map_files220/MetaStation/MetaStation.dmm @@ -2102,6 +2102,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "apb" = ( @@ -4207,12 +4208,14 @@ "aya" = ( /obj/structure/chair/wood, /obj/item/radio/intercom/directional/west, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood, /area/station/public/mrchangs) "ayb" = ( /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "ayc" = ( @@ -6169,6 +6172,7 @@ /area/station/public/arcade) "aGL" = ( /obj/structure/chair/comfy/black, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aGM" = ( @@ -10048,6 +10052,7 @@ dir = 1 }, /obj/machinery/light_switch/west, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aTF" = ( @@ -20122,6 +20127,7 @@ /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "bvA" = ( @@ -20680,6 +20686,7 @@ d2 = 2; icon_state = "0-2" }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "bwI" = ( @@ -21417,6 +21424,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "byJ" = ( @@ -22609,6 +22617,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "bCy" = ( @@ -22675,6 +22684,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood, /area/station/service/bar) "bCG" = ( @@ -22689,6 +22699,7 @@ /area/station/science/research) "bCH" = ( /obj/structure/chair/stool, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "bCJ" = ( @@ -23149,6 +23160,7 @@ /area/station/command/bridge) "bDY" = ( /obj/structure/chair/comfy/beige, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/command/bridge) "bDZ" = ( @@ -23156,6 +23168,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/command/bridge) "bEf" = ( @@ -23279,6 +23292,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "bEr" = ( @@ -23576,6 +23590,7 @@ /obj/structure/chair/comfy/black{ dir = 4 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/command/bridge) "bFN" = ( @@ -23599,6 +23614,7 @@ /obj/structure/chair/comfy/black{ dir = 8 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/command/bridge) "bFR" = ( @@ -24756,6 +24772,7 @@ /obj/structure/chair/wood/wings{ dir = 8 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood, /area/station/service/theatre) "bJP" = ( @@ -28329,6 +28346,7 @@ dir = 1 }, /obj/effect/decal/cleanable/blood/old, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood, /area/station/maintenance/apmaint) "bWI" = ( @@ -32670,6 +32688,7 @@ /obj/structure/chair/stool{ dir = 8 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood, /area/station/maintenance/apmaint) "ckL" = ( @@ -35476,6 +35495,7 @@ dir = 1 }, /obj/effect/landmark/damageturf, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood, /area/station/maintenance/apmaint) "cvS" = ( @@ -36219,6 +36239,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool, /obj/effect/landmark/damageturf, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood, /area/station/maintenance/apmaint) "cyy" = ( @@ -36793,6 +36814,7 @@ /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood, /area/station/maintenance/apmaint) "cAy" = ( @@ -45557,6 +45579,7 @@ /area/station/aisat/service) "dGK" = ( /obj/structure/weightmachine/weightlifter, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "black" @@ -46157,6 +46180,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/station/engineering/atmos/distribution) +"dYk" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "dYn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, @@ -47137,6 +47169,14 @@ icon_state = "cafeteria" }, /area/station/service/kitchen) +"euM" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/obj/effect/landmark/damageturf, +/obj/effect/landmark/start/uncertain, +/turf/simulated/floor/wood, +/area/station/maintenance/apmaint) "euU" = ( /obj/machinery/economy/vending/virodrobe, /obj/item/radio/intercom/directional/east, @@ -48797,6 +48837,7 @@ /area/station/engineering/atmos) "fkN" = ( /obj/machinery/economy/vending/wallmed/directional/north, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "fkW" = ( @@ -49928,6 +49969,7 @@ /area/station/science/server) "fIl" = ( /obj/structure/chair/stool, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "fIv" = ( @@ -51426,6 +51468,17 @@ /obj/machinery/firealarm/directional/south, /turf/simulated/floor/plasteel, /area/station/security/main) +"gvt" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/station/security/permabrig) "gvJ" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -53603,6 +53656,13 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/apmaint) +"hsT" = ( +/obj/structure/chair/stool{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "htr" = ( /obj/machinery/disposal, /obj/structure/sign/deathsposal{ @@ -54040,6 +54100,7 @@ /obj/structure/chair/wood{ dir = 1 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood, /area/station/public/mrchangs) "hCr" = ( @@ -58073,6 +58134,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/command/bridge) "jAh" = ( @@ -58089,6 +58151,16 @@ }, /turf/simulated/floor/plasteel, /area/station/science/robotics) +"jAY" = ( +/obj/structure/chair/stool/bar, +/obj/effect/turf_decal/woodsiding{ + dir = 1 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/station/service/bar) "jAZ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -60740,6 +60812,12 @@ }, /turf/simulated/floor/plating, /area/station/command/office/cmo) +"kJS" = ( +/obj/effect/landmark/start/barber, +/turf/simulated/floor/plasteel{ + icon_state = "darkneutralfull" + }, +/area/station/public/fitness) "kJT" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -61471,6 +61549,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood, /area/station/service/theatre) "kZm" = ( @@ -62429,6 +62508,13 @@ }, /turf/simulated/floor/plasteel, /area/station/science/research) +"lsc" = ( +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/wood, +/area/station/service/bar) "lsi" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -66984,6 +67070,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood, /area/station/public/mrchangs) "nru" = ( @@ -68225,6 +68312,15 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/station/maintenance/starboard) +"nWX" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/station/security/permabrig) "nXr" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/stripes/line{ @@ -68795,6 +68891,7 @@ /obj/structure/chair/stool{ dir = 8 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "omW" = ( @@ -68940,6 +69037,7 @@ /obj/structure/chair/stool{ dir = 8 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/apmaint) "oqO" = ( @@ -69494,6 +69592,11 @@ icon_state = "caution" }, /area/station/engineering/atmos/control) +"oKu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "oLF" = ( /obj/machinery/light/directional/east, /turf/simulated/floor/plasteel, @@ -70004,6 +70107,15 @@ /obj/machinery/atmospherics/meter, /turf/simulated/floor/plasteel, /area/station/engineering/atmos) +"oWv" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/spawner/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "oWE" = ( /turf/simulated/wall/r_wall, /area/station/public/fitness) @@ -73004,6 +73116,10 @@ icon_state = "showroomfloor" }, /area/station/medical/coldroom) +"qoi" = ( +/obj/effect/landmark/start/artist, +/turf/simulated/floor/carpet, +/area/station/service/theatre) "qoQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -73082,6 +73198,7 @@ c_tag = "Mr. Chang's"; dir = 4 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood, /area/station/public/mrchangs) "qrh" = ( @@ -75842,6 +75959,7 @@ /area/station/medical/morgue) "rGd" = ( /obj/structure/weightmachine/weightlifter, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "rGj" = ( @@ -78477,6 +78595,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "cmo" }, @@ -79173,6 +79292,7 @@ d2 = 2; icon_state = "0-2" }, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "tiN" = ( @@ -79526,6 +79646,15 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/fpmaint) +"ttb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "ttA" = ( /obj/structure/rack, /obj/item/hand_labeler, @@ -80822,6 +80951,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "ugu" = ( @@ -81720,6 +81850,7 @@ d2 = 8; icon_state = "1-8" }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood, /area/station/service/bar) "uFM" = ( @@ -83122,6 +83253,7 @@ /obj/structure/chair/stool{ dir = 8 }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "vjL" = ( @@ -83468,6 +83600,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "vrH" = ( @@ -85952,6 +86085,10 @@ /mob/living/simple_animal/mouse, /turf/simulated/floor/plating, /area/station/maintenance/fore) +"wLY" = ( +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "wMb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -86639,6 +86776,7 @@ dir = 1 }, /obj/machinery/atmospherics/unary/vent_pump/on, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "xbT" = ( @@ -88420,6 +88558,13 @@ /obj/effect/landmark/damageturf, /turf/simulated/floor/plating, /area/station/maintenance/engimaint) +"xTz" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/artist, +/turf/simulated/floor/wood, +/area/station/service/library) "xTH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ @@ -89116,6 +89261,12 @@ }, /turf/simulated/floor/wood, /area/station/science/robotics/showroom) +"yhp" = ( +/obj/effect/landmark/start/bath, +/turf/simulated/floor/plasteel{ + icon_state = "darkneutralfull" + }, +/area/station/public/fitness) "yhM" = ( /obj/structure/cable{ d2 = 4; @@ -89186,6 +89337,7 @@ /obj/machinery/door/window{ name = "Permabrig Kitchen" }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -89262,6 +89414,22 @@ /obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics, /turf/simulated/floor/plasteel, /area/station/service/hydroponics) +"ylN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/wood, +/area/station/service/bar) "ylO" = ( /obj/structure/disposalpipe/sortjunction{ dir = 8; @@ -103570,7 +103738,7 @@ ceV cMR ctO ckK -cjE +euM oqk cMR cCn @@ -108370,7 +108538,7 @@ aaa gjF bQZ adi -adi +wLY adi aJM abW @@ -108689,7 +108857,7 @@ bai bBP bPZ bme -bHr +xTz bIZ bHr bFw @@ -109653,7 +109821,7 @@ toU xIx pUU ile -xPZ +gvt jzA ezq qdT @@ -111187,22 +111355,22 @@ laH aaa uMy lNt -atF +dYk ixy pcD gcI -wXi +hsT udK vCe gMp -vCe +nWX aOB lCA adY adY qGw adi -adi +wLY pqL kiH nEJ @@ -111974,7 +112142,7 @@ kbN kbN teN kkP -owq +ttb gKl taf hpp @@ -112230,7 +112398,7 @@ wYk axz kbN teN -kkP +oKu owq apK jRX @@ -114279,7 +114447,7 @@ aaa ajo ipz fKW -atF +oWv atF pot tAy @@ -122566,7 +122734,7 @@ byI mZL bCv bEv -bHO +jAY udl bJH bLx @@ -123590,7 +123758,7 @@ wwo uUI dbp bwC -bAv +lsc apa kMy bEv @@ -124877,7 +125045,7 @@ bsm bsm bsm bAx -bCC +ylN bau bvz bGi @@ -125345,9 +125513,9 @@ ajg oUI akj ald +kJS aio -aio -aio +yhp apW arm aDd @@ -125395,7 +125563,7 @@ bCF ljZ nwx bEv -bHO +jAY eNT soT pWX @@ -125859,9 +126027,9 @@ ajg ajn akl ald +yhp aio -aio -aio +kJS apW aro mKy @@ -126935,7 +127103,7 @@ aLC wQe bLv bHW -bHW +qoi bHX kZl xbt diff --git a/_maps/map_files220/cyberiad/cyberiad.dmm b/_maps/map_files220/cyberiad/cyberiad.dmm index ccabbb832719..2cfccafdedb4 100644 --- a/_maps/map_files220/cyberiad/cyberiad.dmm +++ b/_maps/map_files220/cyberiad/cyberiad.dmm @@ -1672,6 +1672,7 @@ }, /obj/structure/chair/stool, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "ajg" = ( @@ -2918,6 +2919,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel{ icon_state = "red" }, @@ -8782,6 +8784,7 @@ d2 = 2; icon_state = "0-2" }, +/obj/effect/landmark/start/barber, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -8820,6 +8823,7 @@ c_tag = "Arcade" }, /obj/machinery/firealarm/directional/north, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aGQ" = ( @@ -8831,6 +8835,7 @@ dir = 8 }, /obj/machinery/newscaster/directional/north, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aGT" = ( @@ -9542,6 +9547,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/start/barber, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -9847,6 +9853,7 @@ /obj/machinery/computer/mob_healer_terminal{ pixel_x = -30 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aKK" = ( @@ -10664,6 +10671,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/carpet, /area/station/public/mrchangs) "aOn" = ( @@ -12107,6 +12115,7 @@ /obj/structure/chair{ dir = 4 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -12119,6 +12128,7 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/oak, /area/station/public/dorms) "aTF" = ( @@ -12132,6 +12142,7 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/effect/landmark/start/bath, /turf/simulated/floor/wood/oak, /area/station/public/dorms) "aTI" = ( @@ -13012,6 +13023,7 @@ /obj/structure/chair/sofa/right{ dir = 4 }, +/obj/effect/landmark/start/bath, /turf/simulated/floor/wood/oak, /area/station/public/dorms) "aWD" = ( @@ -13992,6 +14004,7 @@ /obj/structure/chair{ dir = 4 }, +/obj/effect/landmark/start/bath, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "arrival" @@ -14649,6 +14662,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/oak, /area/station/service/library) "bck" = ( @@ -15471,6 +15485,13 @@ icon_state = "neutralcorner" }, /area/station/public/dorms) +"bfl" = ( +/obj/structure/chair/stool{ + dir = 4 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "bfo" = ( /obj/effect/turf_decal/delivery/white, /obj/machinery/kitchen_machine/oven{ @@ -16062,6 +16083,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/oak, /area/station/service/library) "bhz" = ( @@ -16366,6 +16388,7 @@ /obj/structure/chair/wood{ dir = 4 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet, /area/station/public/mrchangs) "biQ" = ( @@ -16379,6 +16402,7 @@ /obj/structure/chair/wood{ dir = 8 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet, /area/station/public/mrchangs) "biT" = ( @@ -20146,6 +20170,7 @@ dir = 8; pixel_x = -5 }, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, @@ -25889,6 +25914,7 @@ /obj/structure/chair/wood{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/carpet, /area/station/maintenance/aft) "cam" = ( @@ -38152,6 +38178,7 @@ /area/station/maintenance/aft) "cUi" = ( /obj/structure/chair/wood, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet, /area/station/public/mrchangs) "cUj" = ( @@ -41840,6 +41867,7 @@ dir = 8 }, /obj/machinery/light_switch/east, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/oak, /area/station/public/mrchangs) "dhv" = ( @@ -47951,6 +47979,7 @@ "exu" = ( /obj/structure/chair/sofa/left, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plasteel, /area/station/maintenance/aft) "exC" = ( @@ -48362,6 +48391,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/landmark/start/librarian, /turf/simulated/floor/wood/oak, /area/station/service/library) "eGU" = ( @@ -48394,6 +48424,7 @@ icon_state = "2-8" }, /obj/effect/landmark/damageturf, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/aft) "eGZ" = ( @@ -48918,6 +48949,7 @@ /area/station/maintenance/apmaint) "eSa" = ( /obj/structure/chair/sofa/corp/right, +/obj/effect/landmark/start/bar, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "eSg" = ( @@ -49138,6 +49170,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood/fancy/cherry, /area/station/service/bar/atrium) "eWx" = ( @@ -51468,6 +51501,7 @@ /obj/structure/chair/sofa/right{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/asmaint) "fQr" = ( @@ -51901,6 +51935,7 @@ /obj/structure/sign/poster/contraband/lusty_xenomorph{ pixel_y = -32 }, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel{ icon_state = "hydrofloor" }, @@ -52170,6 +52205,7 @@ /obj/structure/chair/sofa{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/asmaint) "geX" = ( @@ -52774,6 +52810,7 @@ d2 = 4; icon_state = "0-4" }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood/fancy/cherry, /area/station/service/bar/atrium) "goX" = ( @@ -56482,6 +56519,12 @@ icon_state = "neutral" }, /area/station/engineering/atmos/storage) +"hBo" = ( +/obj/effect/landmark/start/artist, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/station/public/dorms) "hBu" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, @@ -58135,6 +58178,7 @@ /obj/structure/chair/sofa/left{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/asmaint) "igV" = ( @@ -59014,6 +59058,11 @@ icon_state = "dark" }, /area/station/command/office/hos) +"iyI" = ( +/obj/structure/weightmachine/stacklifter, +/obj/effect/landmark/start/assistant, +/turf/simulated/floor/plasteel, +/area/station/public/dorms) "iyJ" = ( /obj/machinery/door/poddoor/shutters{ dir = 2; @@ -60100,6 +60149,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/carpet/purple, /area/station/service/bar) "iUf" = ( @@ -61087,6 +61137,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood/fancy/cherry, /area/station/service/bar/atrium) "jpn" = ( @@ -62132,6 +62183,7 @@ icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -62686,6 +62738,13 @@ }, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) +"jVb" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/black, +/area/station/service/bar/atrium) "jVf" = ( /obj/vehicle/secway, /obj/item/key/security, @@ -63471,6 +63530,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/station/hallway/primary/port) +"klz" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/landmark/start/assistant, +/turf/simulated/floor/plasteel, +/area/station/public/dorms) "klA" = ( /obj/structure/cable{ d1 = 2; @@ -64995,6 +65059,7 @@ /area/station/maintenance/assembly_line) "kNX" = ( /obj/structure/chair/sofa/corp/left, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet/green, /area/station/command/bridge) "kNY" = ( @@ -65085,6 +65150,7 @@ cover_color = "#85130b"; dir = 1 }, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "red" @@ -65274,6 +65340,7 @@ "kSK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "kSP" = ( @@ -65304,6 +65371,7 @@ /obj/structure/toilet{ dir = 1 }, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel{ icon_state = "hydrofloor" }, @@ -65366,6 +65434,7 @@ /obj/structure/chair/sofa/corp/left{ dir = 1 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet/purple, /area/station/service/bar) "kVw" = ( @@ -66037,6 +66106,7 @@ dir = 5 }, /obj/structure/chair/sofa/corp/left, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/carpet/purple, /area/station/service/bar) "lie" = ( @@ -66527,6 +66597,15 @@ }, /turf/simulated/floor/plating, /area/station/maintenance/port) +"lsX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "lte" = ( /obj/machinery/light/directional/west, /obj/machinery/papershredder, @@ -67058,6 +67137,15 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, /area/station/science/hallway) +"lEA" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/station/security/permabrig) "lED" = ( /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/sunglasses/blindfold, @@ -70944,6 +71032,16 @@ icon_state = "dark" }, /area/station/security/interrogation) +"mYc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/landmark/start/artist, +/turf/simulated/floor/plasteel, +/area/station/public/dorms) "mYn" = ( /obj/structure/cable{ d1 = 4; @@ -71408,6 +71506,7 @@ /area/station/medical/psych) "ngT" = ( /obj/structure/chair/sofa/corp/left, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "nhc" = ( @@ -72462,6 +72561,7 @@ /obj/structure/chair/sofa/corp/left{ dir = 1 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "nzd" = ( @@ -73008,6 +73108,13 @@ }, /turf/simulated/floor/plasteel, /area/station/maintenance/apmaint) +"nJA" = ( +/obj/structure/chair/stool{ + dir = 8 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "nJV" = ( /obj/machinery/access_button{ autolink_id = "evamaint_btn_ext"; @@ -73511,6 +73618,7 @@ c_tag = "Bar West"; dir = 4 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "nUn" = ( @@ -73531,6 +73639,13 @@ /obj/machinery/firealarm, /turf/simulated/wall, /area/station/engineering/atmos) +"nVn" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/artist, +/turf/simulated/floor/wood/oak, +/area/station/service/library) "nVq" = ( /obj/machinery/light/directional/east, /obj/structure/table, @@ -77776,6 +77891,13 @@ icon_state = "grimy" }, /area/station/maintenance/fsmaint) +"pty" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/station/security/permabrig) "ptz" = ( /obj/structure/cable{ d1 = 2; @@ -79641,6 +79763,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, +/obj/effect/landmark/start/barber, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -80677,6 +80800,7 @@ /obj/machinery/camera{ c_tag = "Bridge Lounge Zone Center" }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet/green, /area/station/command/bridge) "qwV" = ( @@ -82012,6 +82136,12 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/station/maintenance/port) +"qSh" = ( +/obj/effect/landmark/start/artist, +/turf/simulated/floor/plasteel{ + icon_state = "vault" + }, +/area/station/public/dorms) "qSr" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -82053,6 +82183,7 @@ "qTA" = ( /obj/structure/chair/sofa/right, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plasteel, /area/station/maintenance/aft) "qTK" = ( @@ -82291,6 +82422,14 @@ icon_state = "bar" }, /area/station/security/permabrig) +"qYn" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "qYr" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -83629,6 +83768,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 10 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/wood/fancy/cherry, /area/station/service/bar/atrium) "rDM" = ( @@ -84303,6 +84443,7 @@ name = "Prison Intercom (General)"; pixel_y = 24 }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, @@ -84507,6 +84648,7 @@ /obj/structure/sign/poster/contraband/ambrosia_vulgaris{ pixel_x = 32 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/carpet, /area/station/maintenance/asmaint) "rWn" = ( @@ -84938,6 +85080,7 @@ /obj/structure/chair/sofa/corp/right{ dir = 8 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "sec" = ( @@ -85104,6 +85247,13 @@ icon_state = "yellow" }, /area/station/hallway/primary/aft) +"shB" = ( +/obj/effect/landmark/start/dealer, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "browncorner" + }, +/area/station/hallway/primary/central/sw) "sim" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -85191,6 +85341,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "sjM" = ( @@ -85602,6 +85753,7 @@ dir = 1 }, /obj/item/bedsheet/orange, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -86876,6 +87028,7 @@ /obj/structure/chair/wood{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/carpet, /area/station/maintenance/asmaint) "sMc" = ( @@ -87188,6 +87341,7 @@ dir = 8 }, /obj/effect/landmark/damageturf, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/aft) "sSa" = ( @@ -87210,6 +87364,7 @@ /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "sSj" = ( @@ -88840,6 +88995,7 @@ /area/station/science/xenobiology) "twH" = ( /obj/structure/chair/sofa/corp/right, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet/green, /area/station/command/bridge) "twL" = ( @@ -90121,6 +90277,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plasteel, /area/station/maintenance/aft) "tVF" = ( @@ -92505,6 +92662,7 @@ /obj/structure/chair/sofa/corp/right{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "uNj" = ( @@ -92832,6 +92990,24 @@ /obj/machinery/atmospherics/unary/tank/air, /turf/simulated/floor/plating, /area/station/aisat/atmos) +"uVd" = ( +/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/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "uVj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -93623,6 +93799,7 @@ /area/station/engineering/engine/supermatter) "vhf" = ( /obj/structure/chair, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/asmaint) "vhs" = ( @@ -93888,6 +94065,7 @@ /obj/structure/chair{ dir = 8 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/aft) "vnZ" = ( @@ -94064,6 +94242,7 @@ cover_color = "#85130b"; dir = 1 }, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel{ icon_state = "red" }, @@ -94682,6 +94861,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/start/bar, /turf/simulated/floor/carpet/black, /area/station/service/bar/atrium) "vDt" = ( @@ -95981,6 +96161,7 @@ }, /obj/structure/chair/sofa/corp/right, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet/purple, /area/station/service/bar) "wbr" = ( @@ -99118,6 +99299,13 @@ /obj/item/poster/random_contraband, /turf/simulated/floor/plating, /area/station/maintenance/aft) +"xlx" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/uncertain, +/turf/simulated/floor/plasteel, +/area/station/maintenance/aft) "xlV" = ( /turf/simulated/floor/plating, /area/station/engineering/supermatter_room) @@ -100633,6 +100821,7 @@ /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/aft) "xOQ" = ( @@ -120393,11 +120582,11 @@ avm xhW exh hjX -orU +pty uVr rAe luh -luh +lEA vON xPE aaa @@ -120645,7 +120834,7 @@ hDl vWw ado lZS -xDw +qYn qAH hCs kTP @@ -121429,7 +121618,7 @@ xBl twu aEO jkw -avf +lsX aEO wkg abN @@ -121674,7 +121863,7 @@ qWR fct anf ado -sDL +uVd anf ado anf @@ -121934,7 +122123,7 @@ anf sDL anf eBy -eBy +bfl ado asl lKq @@ -122704,7 +122893,7 @@ abN abN kXd axs -pZj +nJA pZj anf hNf @@ -126623,8 +126812,8 @@ bOw bOw bYO eVK -bOw -bOw +shB +shB bOw bTk cgQ @@ -136880,7 +137069,7 @@ nQW sea lxc tqo -sea +jVb lxc mFq vAC @@ -138148,7 +138337,7 @@ aPf aQv jKA aUT -aZG +hBo aWT bbu bdj @@ -138406,7 +138595,7 @@ aZs aZD aVp iBD -aWT +qSh bbu bdj bfv @@ -138662,7 +138851,7 @@ aFI aQE bxP aUT -aZG +hBo aWT bbu bdj @@ -140457,7 +140646,7 @@ sHt sHt sHt aFK -kiu +klz rpd aHW eln @@ -140717,7 +140906,7 @@ aFK aPm aPm aSM -wsC +mYc vca aIc sbR @@ -141231,7 +141420,7 @@ aOI aPm aPm aSM -wsC +mYc jJh aLA aXi @@ -141485,7 +141674,7 @@ aOI aOI aOI aOI -tuZ +iyI pbz ilS iTC @@ -144929,7 +145118,7 @@ cQo hPE dmP nUn -lyS +xlx lyS chf aaa @@ -146383,7 +146572,7 @@ bav bci jqB bfZ -bkn +nVn bcp blj blj diff --git a/_maps/map_files220/delta/delta.dmm b/_maps/map_files220/delta/delta.dmm index 76e692a398cc..477fd227389a 100644 --- a/_maps/map_files220/delta/delta.dmm +++ b/_maps/map_files220/delta/delta.dmm @@ -2008,6 +2008,7 @@ dir = 4 }, /obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "aoo" = ( @@ -4139,6 +4140,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "auz" = ( @@ -6110,6 +6112,7 @@ dir = 4 }, /obj/machinery/atmospherics/unary/outlet_injector/on, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "chapel" }, @@ -7686,6 +7689,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/fancy, /area/station/service/theatre) "aHJ" = ( @@ -10827,6 +10831,7 @@ /obj/structure/chair/sofa/pew/left{ dir = 4 }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "chapel" }, @@ -11109,6 +11114,7 @@ /area/space) "aWD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "aWG" = ( @@ -18714,6 +18720,7 @@ dir = 4; network = list("Prison","SS13") }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "red" @@ -20434,6 +20441,7 @@ /area/station/security/detective) "bHN" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "bHO" = ( @@ -20519,6 +20527,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/abandoned_garden) "bIh" = ( @@ -32190,6 +32199,7 @@ /obj/structure/chair/stool{ dir = 8 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/transparent/glass/reinforced, /area/station/public/locker) "cyS" = ( @@ -32485,6 +32495,7 @@ /obj/structure/chair/comfy/brown{ dir = 4 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "czN" = ( @@ -32501,6 +32512,7 @@ /obj/structure/chair/comfy/black{ dir = 8 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "czQ" = ( @@ -32874,6 +32886,7 @@ /obj/structure/chair/comfy/black{ dir = 4 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "cBq" = ( @@ -32898,6 +32911,7 @@ /obj/structure/chair/comfy/brown{ dir = 8 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "cBt" = ( @@ -33212,6 +33226,7 @@ /obj/structure/chair/comfy/brown{ dir = 1 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "cCP" = ( @@ -33222,6 +33237,7 @@ /obj/structure/chair/comfy/black{ dir = 1 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/carpet, /area/station/science/robotics/showroom) "cCR" = ( @@ -33342,6 +33358,7 @@ /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/transparent/glass/reinforced, /area/station/public/locker) "cDo" = ( @@ -33591,6 +33608,7 @@ /area/station/ai_monitored/storage/eva) "cEt" = ( /obj/structure/chair/sofa/left, +/obj/effect/landmark/start/artist, /turf/simulated/floor/plasteel/dark, /area/station/public/locker) "cEv" = ( @@ -35332,6 +35350,7 @@ /obj/structure/chair/stool{ dir = 4 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "cMP" = ( @@ -38694,6 +38713,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/virology_maint) "dbp" = ( @@ -42918,6 +42938,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/effect/landmark/start/bath, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -48869,6 +48890,7 @@ /obj/structure/chair/comfy/brown{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/plasteel{ icon_state = "grimy" }, @@ -49005,6 +49027,13 @@ /obj/effect/decal/cleanable/cobweb, /turf/simulated/floor/wood/oak, /area/station/maintenance/library) +"eiG" = ( +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/orange, +/area/station/service/theatre) "eiL" = ( /obj/effect/spawner/window/reinforced/grilled, /obj/machinery/door/poddoor/preopen{ @@ -50654,6 +50683,7 @@ /obj/structure/chair/wood{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/old_kitchen) "eKD" = ( @@ -51156,6 +51186,14 @@ icon_state = "neutralfull" }, /area/station/engineering/tech_storage) +"eRj" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/station/security/permabrig) "eRl" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -51433,6 +51471,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "eXm" = ( @@ -51565,6 +51604,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "hydrofloor" }, @@ -52049,6 +52089,13 @@ /obj/machinery/door/firedoor, /turf/simulated/floor/carpet, /area/station/service/library) +"fiz" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/orange, +/area/station/service/theatre) "fiC" = ( /obj/effect/spawner/window/reinforced/polarized/grilled{ id = "Surgery2" @@ -54250,6 +54297,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/fancy, /area/station/service/theatre) "fSx" = ( @@ -54369,6 +54417,7 @@ dir = 8 }, /obj/effect/decal/cleanable/ants, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/old_kitchen) "fTR" = ( @@ -55674,6 +55723,13 @@ icon_state = "neutralcorner" }, /area/station/public/locker) +"gqV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/landmark/start/dealer, +/turf/simulated/floor/wood/fancy/cherry, +/area/station/public/vacant_store) "grg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57516,6 +57572,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/damageturf, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/old_kitchen) "gUx" = ( @@ -58532,6 +58589,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/carpet, /area/station/security/permabrig) "hlS" = ( @@ -59030,6 +59088,16 @@ }, /turf/simulated/floor/plasteel/white, /area/station/science/research) +"hvN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/landmark/start/bath, +/turf/simulated/floor/plasteel/freezer, +/area/station/public/pool) "hvS" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=4"; @@ -60715,6 +60783,7 @@ /obj/structure/chair/sofa/right{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/plasteel/dark, /area/station/public/locker) "hVo" = ( @@ -62492,6 +62561,13 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/station/maintenance/starboard2) +"iuP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/station/security/permabrig) "iuU" = ( /obj/structure/chair{ dir = 4 @@ -63487,6 +63563,7 @@ /obj/structure/chair/sofa/right{ dir = 1 }, +/obj/effect/landmark/start/vip, /turf/simulated/floor/plasteel/dark, /area/station/service/theatre) "iNL" = ( @@ -63558,6 +63635,7 @@ "iOx" = ( /obj/machinery/hologram/holopad, /obj/effect/spawner/xmastree, +/obj/effect/landmark/start/artist, /turf/simulated/floor/wood/fancy, /area/station/service/theatre) "iOy" = ( @@ -66087,6 +66165,7 @@ dir = 1 }, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/old_kitchen) "jCz" = ( @@ -66203,6 +66282,7 @@ /obj/structure/chair/comfy/brown{ dir = 1 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -66292,6 +66372,7 @@ /obj/structure/chair/comfy/black{ dir = 8 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/carpet, /area/station/service/bar/atrium) "jGG" = ( @@ -66397,6 +66478,7 @@ "jIg" = ( /obj/machinery/light_construct/directional/east, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "chapel" @@ -67187,6 +67269,7 @@ dir = 1 }, /obj/machinery/light/directional/south, +/obj/effect/landmark/start/artist, /turf/simulated/floor/plasteel/dark, /area/station/public/locker) "jTW" = ( @@ -67291,6 +67374,7 @@ /obj/structure/chair/stool{ dir = 1 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "jWq" = ( @@ -67751,6 +67835,7 @@ dir = 1 }, /obj/machinery/newscaster/directional/south, +/obj/effect/landmark/start/bar, /turf/simulated/floor/plasteel/dark, /area/station/service/theatre) "kdu" = ( @@ -68175,6 +68260,7 @@ dir = 9 }, /obj/effect/spawner/random_spawners/blood_maybe, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/starboard2) "kjw" = ( @@ -69521,6 +69607,13 @@ icon_state = "grimy" }, /area/station/maintenance/old_detective) +"kGD" = ( +/obj/structure/chair/sofa/left{ + dir = 4 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/orange, +/area/station/service/bar/atrium) "kGI" = ( /obj/effect/turf_decal{ dir = 1 @@ -69607,6 +69700,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "kIl" = ( @@ -70004,6 +70098,7 @@ "kOE" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "caution" @@ -70235,6 +70330,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "kTw" = ( @@ -71630,6 +71726,16 @@ icon_state = "neutralcorner" }, /area/station/hallway/secondary/bridge) +"lqB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "lqJ" = ( /obj/machinery/camera{ c_tag = "Aft Starboard Solars" @@ -72446,6 +72552,7 @@ /area/station/medical/storage/secondary) "lDp" = ( /obj/structure/chair/sofa/left, +/obj/effect/landmark/start/vip, /turf/simulated/floor/plasteel/dark, /area/station/service/theatre) "lDq" = ( @@ -73145,6 +73252,13 @@ icon_state = "darkred" }, /area/station/security/storage) +"lOT" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/orange, +/area/station/service/bar/atrium) "lOZ" = ( /obj/structure/cable{ d1 = 1; @@ -73912,6 +74026,7 @@ /area/station/command/bridge) "mbV" = ( /obj/structure/chair/stool, +/obj/effect/landmark/start/artist, /turf/simulated/floor/transparent/glass/reinforced, /area/station/public/locker) "mbY" = ( @@ -78023,6 +78138,7 @@ }, /obj/effect/turf_decal/delivery/hollow, /obj/machinery/light/small/directional/east, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel{ icon_state = "hydrofloor" }, @@ -78627,6 +78743,7 @@ /obj/structure/chair/sofa/pew/right{ dir = 4 }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "chapel" @@ -80071,6 +80188,13 @@ icon_state = "neutralfull" }, /area/station/maintenance/starboard) +"nVU" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/simulated/floor/transparent/glass/reinforced, +/area/station/public/pool) "nWe" = ( /obj/machinery/door/poddoor/multi_tile/two_tile_hor{ id_tag = "unknowndoor" @@ -81502,6 +81626,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/old_kitchen) "otb" = ( @@ -81556,6 +81681,10 @@ /obj/machinery/light/directional/east, /turf/simulated/floor/plating, /area/station/supply/storage) +"otB" = ( +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "otH" = ( /obj/machinery/kitchen_machine/grill, /obj/machinery/newscaster/directional/north, @@ -82184,6 +82313,7 @@ /obj/structure/chair/comfy/red{ dir = 8 }, +/obj/effect/landmark/start/bar, /turf/simulated/floor/carpet, /area/station/service/theatre) "oGe" = ( @@ -82241,6 +82371,12 @@ /obj/machinery/economy/vending/coffee, /turf/simulated/floor/plasteel/dark, /area/station/hallway/primary/starboard) +"oHD" = ( +/obj/effect/landmark/start/barber, +/turf/simulated/floor/plasteel{ + icon_state = "barber" + }, +/area/station/service/barber) "oHG" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Door" @@ -84837,6 +84973,13 @@ icon_state = "neutralfull" }, /area/station/engineering/atmos) +"pxe" = ( +/obj/structure/chair/sofa/right{ + dir = 8 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/orange, +/area/station/service/bar/atrium) "pxy" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -85141,6 +85284,7 @@ }, /obj/effect/turf_decal/delivery/hollow, /obj/machinery/light/small/directional/east, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel{ icon_state = "hydrofloor" }, @@ -85625,6 +85769,7 @@ /obj/structure/chair/wood{ dir = 4 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/old_kitchen) "pKl" = ( @@ -85721,6 +85866,7 @@ d2 = 8; icon_state = "2-8" }, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel/freezer, /area/station/public/pool) "pLI" = ( @@ -85756,6 +85902,7 @@ /obj/structure/chair/plastic{ dir = 8 }, +/obj/effect/landmark/start/bath, /turf/simulated/floor/transparent/glass/reinforced, /area/station/public/pool) "pLU" = ( @@ -86468,6 +86615,7 @@ d2 = 8; icon_state = "1-8" }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel/grimy, /area/station/security/permabrig) "pYo" = ( @@ -87430,6 +87578,7 @@ "qpB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dust, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/wood/oak, /area/station/maintenance/old_kitchen) "qpD" = ( @@ -88703,6 +88852,23 @@ "qJk" = ( /turf/simulated/wall, /area/station/maintenance/old_detective) +"qJx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start/bath, +/turf/simulated/floor/plasteel{ + icon_state = "neutral" + }, +/area/station/public/pool) "qJA" = ( /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 8 @@ -89206,6 +89372,21 @@ }, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) +"qQX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel, +/area/station/security/permabrig) "qRc" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -90578,6 +90759,7 @@ /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/delivery/hollow, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -93698,6 +93880,18 @@ }, /turf/simulated/floor/wood/oak, /area/station/command/meeting_room) +"snx" = ( +/obj/structure/disposalpipe/segment, +/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/effect/landmark/start/assistant, +/turf/simulated/floor/plasteel, +/area/station/public/fitness) "snC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille/broken, @@ -94167,6 +94361,7 @@ /obj/structure/chair{ dir = 1 }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "sve" = ( @@ -94812,6 +95007,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/landmark/start/barber, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -95247,6 +95443,7 @@ /area/station/medical/surgery/secondary) "sJZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "sKr" = ( @@ -95596,6 +95793,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/dealer, /turf/simulated/floor/wood/fancy/cherry, /area/station/public/vacant_store) "sQe" = ( @@ -95801,6 +95999,7 @@ "sUk" = ( /obj/structure/chair/stool, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/old_kitchen) "sUn" = ( @@ -96616,6 +96815,7 @@ /obj/structure/weightmachine/stacklifter, /obj/effect/turf_decal/delivery/hollow, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -98412,6 +98612,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/starboard2) "tNd" = ( @@ -98781,6 +98982,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plasteel{ icon_state = "chapel" }, @@ -100027,6 +100229,7 @@ /obj/effect/turf_decal/siding/dark_red{ dir = 6 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "unR" = ( @@ -100644,6 +100847,11 @@ }, /turf/simulated/wall, /area/station/service/kitchen) +"uzH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/simulated/floor/plasteel/freezer, +/area/station/security/permabrig) "uzO" = ( /obj/structure/disposalpipe/junction{ dir = 8; @@ -101058,6 +101266,7 @@ /obj/effect/turf_decal/siding/dark_red{ dir = 9 }, +/obj/effect/landmark/start/artist, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "uHq" = ( @@ -101716,6 +101925,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel/dark, /area/station/security/permabrig) "uPY" = ( @@ -103795,6 +104005,7 @@ d2 = 8; icon_state = "4-8" }, +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel/dark, /area/station/security/permabrig) "vxH" = ( @@ -104681,6 +104892,7 @@ /obj/machinery/alarm/directional/north, /obj/structure/sign/poster/official/random/east, /obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/bar, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -104795,6 +105007,7 @@ /obj/item/bedsheet/red, /obj/effect/decal/cleanable/dirt, /obj/machinery/alarm/directional/east, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plating, /area/station/maintenance/virology_maint) "vNh" = ( @@ -105662,6 +105875,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/abandoned_garden) "waz" = ( +/obj/effect/landmark/spawner/prisoner, /turf/simulated/floor/plasteel/dark, /area/station/security/permabrig) "waQ" = ( @@ -107973,6 +108187,7 @@ d2 = 8; icon_state = "2-8" }, +/obj/effect/landmark/start/prisoner, /turf/simulated/floor/carpet, /area/station/security/permabrig) "wRE" = ( @@ -108905,6 +109120,10 @@ /obj/effect/spawner/lootdrop/maintenance/two, /turf/simulated/floor/plating, /area/station/maintenance/fore) +"xeo" = ( +/obj/effect/landmark/start/artist, +/turf/simulated/floor/wood/fancy, +/area/station/service/theatre) "xeI" = ( /obj/structure/cable{ d1 = 1; @@ -109598,6 +109817,7 @@ "xql" = ( /obj/structure/weightmachine/stacklifter, /obj/effect/turf_decal/delivery/hollow, +/obj/effect/landmark/start/assistant, /turf/simulated/floor/plasteel, /area/station/public/fitness) "xqw" = ( @@ -110569,6 +110789,18 @@ /obj/effect/landmark/start/psychiatrist, /turf/simulated/floor/carpet, /area/station/medical/psych) +"xGk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/landmark/start/assistant, +/turf/simulated/floor/plasteel, +/area/station/public/fitness) "xGw" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -111435,6 +111667,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/uncertain, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "chapel" @@ -111540,6 +111773,13 @@ icon_state = "neutralfull" }, /area/station/hallway/primary/port) +"xTY" = ( +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/obj/effect/landmark/start/bar, +/turf/simulated/floor/carpet/orange, +/area/station/service/bar/atrium) "xUg" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/barricade/wooden, @@ -112506,6 +112746,10 @@ }, /turf/simulated/floor/plating, /area/station/security/processing) +"yku" = ( +/obj/effect/landmark/start/artist, +/turf/simulated/floor/carpet/arcade, +/area/station/public/arcade) "ykw" = ( /obj/structure/cable{ d1 = 1; @@ -143480,7 +143724,7 @@ hle bGx rwU kyg -tEA +oHD sCp tEA wYw @@ -144260,7 +144504,7 @@ jZx idp aKl kAy -hEG +eiG lSB hEG vrJ @@ -144514,7 +144758,7 @@ sGa vxa aOx uDK -idp +xeo aKl dBq dBq @@ -144776,7 +145020,7 @@ aKl lSB aPS kAy -aPS +fiz nkM aYZ aYZ @@ -145542,7 +145786,7 @@ aEx qKt aOx aHJ -idp +xeo aKl dBq dBq @@ -146061,7 +146305,7 @@ aIX kAy hEG lSB -hEG +eiG dBq dBq dBq @@ -146841,11 +147085,11 @@ rWV rWV gRS bcv -bhK +kGD onD gRS bhK -onD +lOT gRS sKr xfy @@ -147359,7 +147603,7 @@ ldZ bTg mDu uQP -bTg +xTY blo yed xfy @@ -148386,7 +148630,7 @@ bdR uQP bTg gRS -uQP +pxe bTg gRS sKr @@ -158957,7 +159201,7 @@ pbz hTV bCH wDd -ygh +gqV jtC coM crX @@ -163094,7 +163338,7 @@ jWj cIk kYb cIk -cIk +yku anv hmU gnn @@ -163335,11 +163579,11 @@ hYU cwk uMO cAs -cAs +snx cAs qqh kQm -kQm +xGk kQm ibt nQT @@ -165399,7 +165643,7 @@ cJC prx cHa cJn -qGm +qJx kaG kyI xrg @@ -165921,7 +166165,7 @@ cWh cWh ckX cWh -nZg +hvN wqV hQq abj @@ -167130,13 +167374,13 @@ wcy qnD saC fGi -uFf +lqB saC qnD saC rRb bfH -bfH +uzH rRb eYN rRb @@ -167201,11 +167445,11 @@ hQq wIb pLT wgH -pLT +nVU tfF pLT bUe -pLT +nVU aTC hQq cHa @@ -168164,7 +168408,7 @@ bil syi rRb uWd -cyV +iuP xmd lLS xPW @@ -169711,11 +169955,11 @@ bSX axt vXr bfC +otB tqm +qQX tqm -hZR -tqm -tqm +otB qgl rRb nCq @@ -169963,7 +170207,7 @@ axA dgi rRb cXP -nRv +eRj aXt axt fxa diff --git a/code/controllers/subsystem/SSjobs.dm b/code/controllers/subsystem/SSjobs.dm index dece3106dc96..d9e7164f2667 100644 --- a/code/controllers/subsystem/SSjobs.dm +++ b/code/controllers/subsystem/SSjobs.dm @@ -90,6 +90,8 @@ SUBSYSTEM_DEF(jobs) return FALSE if(job.barred_by_missing_limbs(player.client)) return FALSE + if(!job.is_donor_allowed(player.client)) // SS220 ADD - Donor Jobs + return FALSE var/available = latejoin ? job.is_position_available() : job.is_spawn_position_available() @@ -519,7 +521,7 @@ SUBSYSTEM_DEF(jobs) H = new_mob if(job && H) - job.after_spawn(H) + job.after_spawn(H, joined_late) // SS220 EDIT - jobs - prisoner spawn //Gives glasses to the vision impaired if(HAS_TRAIT(H, TRAIT_NEARSIGHT)) diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 4b997b66c5e7..3c77f6fc4c92 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -73,10 +73,9 @@ var/job_banned_gamemode = FALSE //Only override this proc -/datum/job/proc/after_spawn(mob/living/carbon/human/H) +/datum/job/proc/after_spawn(mob/living/carbon/human/H, joined_late = FALSE) // SS220 EDIT - jobs - prisoner spawn SEND_GLOBAL_SIGNAL(COMSIG_GLOB_JOB_AFTER_SPAWN, src, H) - /datum/job/proc/announce(mob/living/carbon/human/H) /datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE) diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm index a606e39bdf76..e419cb80a54b 100644 --- a/code/modules/client/preference/character.dm +++ b/code/modules/client/preference/character.dm @@ -532,15 +532,15 @@ autohiss_mode = sanitize_integer(autohiss_mode, 0, 2, initial(autohiss_mode)) alternate_option = sanitize_integer(alternate_option, 0, 2, initial(alternate_option)) - job_support_high = sanitize_integer(job_support_high, 0, 65535, initial(job_support_high)) - job_support_med = sanitize_integer(job_support_med, 0, 65535, initial(job_support_med)) - job_support_low = sanitize_integer(job_support_low, 0, 65535, initial(job_support_low)) - job_medsci_high = sanitize_integer(job_medsci_high, 0, 65535, initial(job_medsci_high)) - job_medsci_med = sanitize_integer(job_medsci_med, 0, 65535, initial(job_medsci_med)) - job_medsci_low = sanitize_integer(job_medsci_low, 0, 65535, initial(job_medsci_low)) - job_engsec_high = sanitize_integer(job_engsec_high, 0, 65535, initial(job_engsec_high)) - job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med)) - job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) + job_support_high = sanitize_integer(job_support_high, 0, get_datum_last_support(), initial(job_support_high)) // SS220 EDIT - EXTRA JOBS + job_support_med = sanitize_integer(job_support_med, 0, get_datum_last_support(), initial(job_support_med)) // SS220 EDIT - EXTRA JOBS + job_support_low = sanitize_integer(job_support_low, 0, get_datum_last_support(), initial(job_support_low)) // SS220 EDIT - EXTRA JOBS + job_medsci_high = sanitize_integer(job_medsci_high, 0, get_datum_last_medsci(), initial(job_medsci_high)) // SS220 EDIT - EXTRA JOBS + job_medsci_med = sanitize_integer(job_medsci_med, 0, get_datum_last_medsci(), initial(job_medsci_med)) // SS220 EDIT - EXTRA JOBS + job_medsci_low = sanitize_integer(job_medsci_low, 0, get_datum_last_medsci(), initial(job_medsci_low)) // SS220 EDIT - EXTRA JOBS + job_engsec_high = sanitize_integer(job_engsec_high, 0, get_datum_last_engsec(), initial(job_engsec_high)) // SS220 EDIT - EXTRA JOBS + job_engsec_med = sanitize_integer(job_engsec_med, 0, get_datum_last_engsec(), initial(job_engsec_med)) // SS220 EDIT - EXTRA JOBS + job_engsec_low = sanitize_integer(job_engsec_low, 0, get_datum_last_engsec(), initial(job_engsec_low)) // SS220 EDIT - EXTRA JOBS disabilities = sanitize_integer(disabilities, 0, 65535, initial(disabilities)) socks = sanitize_text(socks, initial(socks)) @@ -1980,6 +1980,15 @@ html += "
" html += "Choose occupation chances
Unavailable occupations are crossed out.

" html += "
Save

" // Easier to press up here. + + // ===== SS220 ADD - NEW JOBS ====== + // ============= START ============= + if(check_available_extra_job_prefs(user.client)) + html += "
Показать [extra_jobs_check ? "основные" : "дополнительные"] работы

" + if(extra_jobs_check) + splitJobs = get_split_extra_jobs() + // ============== END ============== + html += "
Left-click to raise an occupation preference, right-click to lower it.
" html += "" html += "
" // Table within a table for alignment, also allows you to easily add more colomns. @@ -1999,6 +2008,15 @@ if(job.hidden_from_job_prefs) continue + // ===== SS220 ADD - NEW JOBS ====== + // ============= START ============= + if(!job.is_donor_allowed(user.client)) + continue + + if(extra_jobs_check != job.is_extra_job) + continue + // ============== END ============== + index += 1 if((index >= limit) || (job.title in splitJobs)) if((index < limit) && (lastJob != null)) diff --git a/modular_ss220/_defines220/_defines220.dme b/modular_ss220/_defines220/_defines220.dme index 602668b577c2..16ffa8fffe03 100644 --- a/modular_ss220/_defines220/_defines220.dme +++ b/modular_ss220/_defines220/_defines220.dme @@ -14,7 +14,7 @@ #include "code/hud_ss220.dm" #include "code/layers_ss220.dm" #include "code/signals_atom.dm" -#include "code/jobs_defines.dm" +#include "code/job_defines.dm" #include "code/donor.dm" #include "code/emote.dm" #include "code/lists_TG.dm" diff --git a/modular_ss220/_defines220/code/donor.dm b/modular_ss220/_defines220/code/donor.dm index 053c420212cf..6617ee16b205 100644 --- a/modular_ss220/_defines220/code/donor.dm +++ b/modular_ss220/_defines220/code/donor.dm @@ -5,3 +5,7 @@ // What TTS level does it give access to? #define BIG_WORKER_TTS_LEVEL 3 #define LITTLE_WORKER_TTS_LEVEL 1 + +// General limitation +#define BIG_WORKER_LEVEL 3 +#define LITTLE_WORKER_LEVEL 2 diff --git a/modular_ss220/_defines220/code/job_defines.dm b/modular_ss220/_defines220/code/job_defines.dm new file mode 100644 index 000000000000..e93e785a5198 --- /dev/null +++ b/modular_ss220/_defines220/code/job_defines.dm @@ -0,0 +1,141 @@ +#define NOVICE_JOB_MINUTES 120 +#define NOVICE_CADET_JOB_MINUTES 300 + +// Если ОФФы добавят новую должность в отдел, то потребуется смещение (╯°□°)╯︵ ┻━┻ +// Но так как они больше не планируют и выступают против добавления новых профессий, скорее всего ничего и не изменится. + +// JOBCAT_"отдел"_LAST - нужен для корректного вывода из БД, иначе чуда не будет. +// Максимальный сдвиг (1<<22), Последний сдвиг (1<<23) +// Он должен быть всегда как минимум на 1 больше последнего, по дефолту у ОФФов (1<<16) + + +// ==================================== +// JOBCAT_ENGSEC +// Начинаются с JOB_NANO (1<<14) +#define JOB_TRAINEE (1<<15) +#define JOB_CADET (1<<16) +//#define JOB_PILOT (1<<17) + +#define JOB_REPRESENTATIVE_TSF (1<<17) +#define JOB_REPRESENTATIVE_USSP (1<<18) +#define JOB_DEALER (1<<19) +#define JOB_VIP_GUEST (1<<20) +#define JOB_BANKER (1<<21) +#define JOB_SECURITY_CLOWN (1<<22) + +#define JOBCAT_LAST_ENGSEC (1<<23) + + +// ==================================== +// JOBCAT_MEDSCI +// Начинаются с JOB_CORONER (1<<10) +#define JOB_INTERN (1<<11) +#define JOB_STUDENT (1<<12) +#define JOB_MECHANIC (1<<13) + +#define JOB_ADMINISTRATOR (1<<14) +#define JOB_TOURIST_TSF (1<<15) +#define JOB_TOURIST_USSP (1<<16) +#define JOB_MANAGER_JANITOR (1<<17) +#define JOB_ACTOR (1<<18) +//#define JOB_APPRENTICE (1<<18) +#define JOB_GUARD (1<<19) +#define JOB_MIGRANT (1<<20) +#define JOB_UNCERTAIN (1<<21) +#define JOB_ADJUTANT (1<<22) +//#define JOB_MAID (1<<23) +//#define JOB_BUTLER (1<<24) + +#define JOBCAT_LAST_MEDSCI (1<<23) + + +// ==================================== +// JOBCAT_SUPPORT +// Начинаются с JOB_EXPLORER (1<<14) +#define JOB_PRISON (1<<15) +#define JOB_BARBER (1<<16) +#define JOB_BATH (1<<17) +#define JOB_CASINO (1<<18) +#define JOB_WAITER (1<<19) +#define JOB_ACOLYTE (1<<20) +//#define JOB_DELIVERER (1<<21) +#define JOB_BOXER (1<<21) +#define JOB_MUSICIAN (1<<22) +//#define JOB_PAINTER (1<<24) + +#define JOBCAT_LAST_SUPPORT (1<<23) + + + + + + + +// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +// В ЭТОМ ФАЙЛЕ МЫ [B]ВРЕМЕННО[/B] ЗАСОВЫВАЕМ +// НАШИ ДЕФАЙНЫ ПОД КАТЕГОРИИ РАЗНЫХ ОТДЕЛОВ! +// ПРАВИЛЬНАЯ РАСФАСОВКА НИЖЕ +// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +/* +// ==================================== +// JOBCAT_ENGSEC +// Начинаются с JOB_NANO (1<<14) +#define JOB_TRAINEE (1<<15) +#define JOB_CADET (1<<16) +#define JOBCAT_LAST_ENGSEC (1<<17) + + +// ==================================== +// JOBCAT_MEDSCI +// Начинаются с JOB_CORONER (1<<10) +#define JOB_INTERN (1<<11) +#define JOB_STUDENT (1<<12) +#define JOBCAT_LAST_MEDSCI (1<<16) + + +// ==================================== +// JOBCAT_SUPPORT +// Начинаются с JOB_EXPLORER (1<<14) +// TIER 1 +#define JOB_PRISON (1<<15) + +// TIER 2 +#define JOB_BARBER (1<<16) +#define JOB_BATH (1<<17) +#define JOB_CASINO (1<<18) +#define JOB_WAITER (1<<19) +#define JOB_ACOLYTE (1<<20) +#define JOB_DELIVERER (1<<21) +#define JOB_BOXER (1<<22) +#define JOB_PAINTER (1<<23) +#define JOB_MUSICIAN (1<<24) +#define JOB_DONOR (1<<24) // Свободная роль, можно переименовать +#define JOB_ACTOR (1<<26) + +// TIER 3 +#define JOB_ADMINISTRATOR (1<<27) +#define JOB_TOURIST_TSF (1<<28) +#define JOB_TOURIST_USSP (1<<29) +#define JOB_MANAGER_JANITOR (1<<30) +#define JOB_APPRENTICE (1<<31) +#define JOB_GUARD (1<<32) +#define JOB_MIGRANT (1<<33) +#define JOB_UNCERTAIN (1<<34) + +// TIER 4 +#define JOB_ADJUTANT (1<<35) +#define JOB_BUTLER (1<<36) +#define JOB_MAID (1<<37) +#define JOB_REPRESENTATIVE_TSF (1<<38) +#define JOB_REPRESENTATIVE_USSP (1<<39) +#define JOB_DEALER (1<<40) + +// TIER 5 +#define JOB_VIP_GUEST (1<<41) +#define JOB_BANKER (1<<42) +#define JOB_SECURITY_CLOWN (1<<43) + +#define JOBCAT_LAST_SUPPORT (1<<44) + +*/ diff --git a/modular_ss220/_defines220/code/jobs_defines.dm b/modular_ss220/_defines220/code/jobs_defines.dm deleted file mode 100644 index fed4ba8651fa..000000000000 --- a/modular_ss220/_defines220/code/jobs_defines.dm +++ /dev/null @@ -1,11 +0,0 @@ -#define NOVICE_JOB_MINUTES 120 -#define NOVICE_CADET_JOB_MINUTES 300 - -// JOBCAT_ENGSEC -#define JOB_TRAINEE (1<<15) -#define JOB_CADET (1<<16) - -// JOBCAT_MEDSCI -#define JOB_INTERN (1<<11) -#define JOB_STUDENT (1<<12) -// Если ОФФы добавят новую должность в отдел, то потребуется смещение diff --git a/modular_ss220/aesthetics/better_ids/icons/better_ids.dmi b/modular_ss220/aesthetics/better_ids/icons/better_ids.dmi index 521ffa0df7b9..dd44a7926635 100644 Binary files a/modular_ss220/aesthetics/better_ids/icons/better_ids.dmi and b/modular_ss220/aesthetics/better_ids/icons/better_ids.dmi differ diff --git a/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm b/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm index a5fffbd4e512..8064fab91231 100644 --- a/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm +++ b/modular_ss220/antagonists/code/antag_mix/scenarios/antag_scenario.dm @@ -71,7 +71,7 @@ vars[param] = params[param] if(GLOB.configuration.gamemode.prevent_mindshield_antags) - restricted_roles |= protected_roles + restricted_roles |= protected_roles + GLOB.restricted_jobs_ss220 /** diff --git a/modular_ss220/donor/code/client_procs.dm b/modular_ss220/donor/code/client_procs.dm index f2f236c39796..6966339b6b92 100644 --- a/modular_ss220/donor/code/client_procs.dm +++ b/modular_ss220/donor/code/client_procs.dm @@ -105,3 +105,13 @@ prefs.character_saves.len = prefs.max_save_slots #undef MAX_SAVE_SLOTS_SS220 + +/client/proc/is_donor_allowed(required_donator_level) + switch(donator_level) + if(LITTLE_WORKER_TIER) + if(required_donator_level > LITTLE_WORKER_LEVEL) + return FALSE + if(BIG_WORKER_TIER) + if(required_donator_level > BIG_WORKER_LEVEL) + return FALSE + return required_donator_level <= donator_level diff --git a/modular_ss220/jobs/_jobs.dm b/modular_ss220/jobs/_jobs.dm index 803bc7f75729..486c0fe25233 100644 --- a/modular_ss220/jobs/_jobs.dm +++ b/modular_ss220/jobs/_jobs.dm @@ -6,9 +6,13 @@ /datum/modpack/jobs/initialize() . = ..() - GLOB.security_positions |= GLOB.security_positions_ss220 - GLOB.active_security_positions |= GLOB.security_positions_ss220 + GLOB.security_positions |= GLOB.security_positions_ss220 + GLOB.security_donor_jobs + GLOB.active_security_positions |= GLOB.security_positions_ss220 + GLOB.security_donor_jobs GLOB.medical_positions |= GLOB.medical_positions_ss220 GLOB.engineering_positions |= GLOB.engineering_positions_ss220 GLOB.science_positions |= GLOB.science_positions_ss220 + + GLOB.service_positions |= GLOB.service_donor_jobs + GLOB.supply_positions |= GLOB.supply_donor_jobs + GLOB.assistant_positions |= GLOB.assistant_donor_jobs diff --git a/modular_ss220/jobs/_jobs.dme b/modular_ss220/jobs/_jobs.dme index be88381776c7..9b36c5eda56d 100644 --- a/modular_ss220/jobs/_jobs.dme +++ b/modular_ss220/jobs/_jobs.dme @@ -8,10 +8,17 @@ #include "code/jobs_character.dm" #include "code/jobs_gamemodes.dm" #include "code/jobs.dm" +#include "code/landmarks.dm" #include "code/clothing/engineering_clothing.dm" #include "code/clothing/medical_clothing.dm" #include "code/clothing/science_clothing.dm" #include "code/clothing/security_clothing.dm" +#include "code/donor/job/1_tier_jobs.dm" +#include "code/donor/job/2_tier_jobs.dm" +#include "code/donor/job/3_tier_jobs.dm" +#include "code/donor/job/4_tier_jobs.dm" +#include "code/donor/job/5_tier_jobs.dm" +#include "code/donor/donor_jobs.dm" #include "code/job/engineering_jobs.dm" #include "code/job/medical_jobs.dm" #include "code/job/science_jobs.dm" diff --git a/modular_ss220/jobs/code/card_computer.dm b/modular_ss220/jobs/code/card_computer.dm index e9c9e834e77c..5f332299da0e 100644 --- a/modular_ss220/jobs/code/card_computer.dm +++ b/modular_ss220/jobs/code/card_computer.dm @@ -3,7 +3,12 @@ if(mode == IDCOMPUTER_SCREEN_TRANSFER) // JOB TRANSFER if(modify && scan && !target_dept) - data["card_skins"] |= format_card_skins(GLOB.card_skins_ss220) + var/list/list_skins = GLOB.card_skins_ss220 + (is_centcom() ? GLOB.card_skins_donor_ss220 : list()) + data["card_skins"] |= format_card_skins(list_skins) + data["jobs_security"] = GLOB.active_security_positions - (is_centcom() ? list() : GLOB.security_donor_jobs) + data["jobs_service"] = GLOB.service_positions - (is_centcom() ? list() : GLOB.service_donor_jobs) + data["jobs_supply"] = GLOB.supply_positions - (is_centcom() ? list() : GLOB.supply_donor_jobs) + data["jobs_assistant"] = GLOB.assistant_positions - (is_centcom() ? list() : GLOB.assistant_donor_jobs) return data @@ -14,8 +19,23 @@ if(!modify) return FALSE var/skin = params["skin_target"] - if(!skin || !(skin in GLOB.card_skins_ss220)) + var/list/list_skins = GLOB.card_skins_ss220 + (is_centcom() ? GLOB.card_skins_donor_ss220 : list()) + if(!skin || !(skin in list_skins)) return FALSE - modify.icon_state = skin//get_card_skins_ss220(skin) + modify.icon_state = skin return TRUE + +/obj/machinery/computer/card/format_job_slots(check_department, is_admin) + var/list/formatted = ..() + + // Убираем JOB'ки из консоли ГП, если она не ЦКшная. + for(var/i in formatted) + if(i["title"] in GLOB.jobs_excluded_from_selection) + formatted.Remove(list(i)) + if(is_centcom()) + continue + if(i["title"] in GLOB.all_donor_jobs) + formatted.Remove(list(i)) + + return formatted diff --git a/modular_ss220/jobs/code/card_id.dm b/modular_ss220/jobs/code/card_id.dm index f00685c26674..c9fab4da4333 100644 --- a/modular_ss220/jobs/code/card_id.dm +++ b/modular_ss220/jobs/code/card_id.dm @@ -1,7 +1,7 @@ /mob/living/carbon/human/sec_hud_set_ID() var/image/holder = hud_list[ID_HUD] holder.icon = 'icons/mob/hud/sechud.dmi' - if(wear_id && (wear_id.get_job_name() in GLOB.jobs_positions_ss220)) + if(wear_id && (wear_id.get_job_name() in GLOB.all_jobs_ss220)) holder.icon = 'modular_ss220/jobs/icons/hud.dmi' . = ..() @@ -9,7 +9,7 @@ var/assignmentName = get_ID_assignment(if_no_id = "Unknown") var/rankName = get_ID_rank(if_no_id = "Unknown") - var/list/titles = GLOB.jobs_positions_ss220 + var/list/titles = GLOB.all_jobs_ss220 if(assignmentName in titles) //Check if the job has a hud icon return assignmentName @@ -19,15 +19,25 @@ . = ..() GLOBAL_LIST_INIT(card_skins_ss220, list( - "intern", "student", "trainee", "cadet", + "intern", "student", "trainee", "cadet", // novice )) +GLOBAL_LIST_INIT(card_skins_donor_ss220, list( + "barber", "bath", "casino", "waiter", "acolyte", "deliverer", "wrestler", "painter", "musician", "actor", // 2 tier + "administrator", "touristtsf", "touristussp", "cliningmanajer", "apprentice", "guard", "migrant", "uncertain", // 3 tier + "adjutant", "butler", "maid", "representativetsf", "representativeussp", "dealer", // 4 tier + "vipcorporateguest", "banker", "securityclown", // 5 tier +)) + +/obj/item/card/id/syndicate/Initialize() + . = ..() + appearances |= GLOB.card_skins_ss220 + GLOB.card_skins_donor_ss220 + /obj/item/card/id/medical/intern name = "Intern ID" registered_name = "Intern" icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' icon_state = "intern" - item_state = "intern-id" rank = "Intern" /obj/item/card/id/research/student @@ -35,22 +45,182 @@ GLOBAL_LIST_INIT(card_skins_ss220, list( registered_name = "Student" icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' icon_state = "student" - item_state = "student-id" /obj/item/card/id/engineering/trainee name = "Trainee ID" registered_name = "Trainee" icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' icon_state = "trainee" - item_state = "trainee-id" /obj/item/card/id/security/cadet name = "Cadet ID" registered_name = "Cadet" icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' icon_state = "cadet" - item_state = "cadet-id" -/obj/item/card/id/syndicate/Initialize() - . = ..() - appearances |= GLOB.card_skins_ss220 +/obj/item/card/id/barber + name = "Barber ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "barber" + +/obj/item/card/id/bath + name = "Bath ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "bath" + +/obj/item/card/id/casino + name = "Casino ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE, ACCESS_HYDROPONICS, ACCESS_BAR) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "casino" + +/obj/item/card/id/waiter + name = "Waiter ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_THEATRE, ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "waiter" + +/obj/item/card/id/acolyte + name = "Acolyte ID" + access = list(ACCESS_CHAPEL_OFFICE, ACCESS_MAINT_TUNNELS) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "acolyte" + +/obj/item/card/id/courier + name = "Deliverer ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_MINT, ACCESS_MINERAL_STOREROOM) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "deliverer" + +/obj/item/card/id/wrestler + name = "Wrestler ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE, ACCESS_RC_ANNOUNCE) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "wrestler" + +/obj/item/card/id/painter + name = "Painter ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "painter" + +/obj/item/card/id/musican + name = "Musician ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "musician" + +/obj/item/card/id/actor + name = "Actor ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "actor" + +/obj/item/card/id/administrator + name = "Administrator ID" + access = list(ACCESS_THEATRE, ACCESS_LIBRARY, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_MINERAL_STOREROOM, ACCESS_JANITOR) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "administrator" + +/obj/item/card/id/tourist_tsf + name = "Tourist TSF ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "touristtsf" + +/obj/item/card/id/tourist_ussp + name = "Tourist USSP ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "touristussp" + +/obj/item/card/id/cleaning_manager + name = "Clining Manager ID" + access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_MEDICAL) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "cleaningmanager" + +/obj/item/card/id/apprentice + name = "Apprentice ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "apprentice" + +/obj/item/card/id/guard + name = "Guard ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LIBRARY) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "guard" + +/obj/item/card/id/migrant + name = "Migrant ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "migrant" + +/obj/item/card/id/uncertain + name = "Uncertain ID" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "uncertain" + +/obj/item/card/id/adjutant + name = "Adjutant ID" + access = list(ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_EVA, ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_RESEARCH, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "adjutant" + item_state = "silver-id" + +/obj/item/card/id/butler + name = "Butler ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_EVA, ACCESS_LAWYER) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "butler" + +/obj/item/card/id/maid + name = "Maid ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_EVA, ACCESS_LAWYER) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "maid" + +/obj/item/card/id/representative_tsf + name = "Representative TSF ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_EVA) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "representativetsf" + item_state = "silver-id" + +/obj/item/card/id/representative_ussp + name = "Representative USSP ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_EVA) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "representativeussp" + item_state = "silver-id" + +/obj/item/card/id/dealer + name = "Dealer ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_RC_ANNOUNCE, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_MINT, ACCESS_MINERAL_STOREROOM, ACCESS_CONSTRUCTION) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "dealer" + +/obj/item/card/id/vip_guest + name = "VIP Guest ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_EVA) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "vipcorporateguest" + item_state = "gold-id" + +/obj/item/card/id/banker + name = "Banker ID" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_EVA) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "banker" + item_state = "gold-id" + +/obj/item/card/id/seclown + name = "Security Clown ID" + access = list(ACCESS_CLOWN, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS, ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT) + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "securityclown" diff --git a/modular_ss220/jobs/code/clothing/security_clothing.dm b/modular_ss220/jobs/code/clothing/security_clothing.dm index a767485df6eb..aac6f3f2f341 100644 --- a/modular_ss220/jobs/code/clothing/security_clothing.dm +++ b/modular_ss220/jobs/code/clothing/security_clothing.dm @@ -26,3 +26,14 @@ icon_state = "sec_ass_f_s" item_color = "sec_ass_f" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + +/obj/item/clothing/under/rank/security/officer/clown + name = "security clown suit" + icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' + icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' + sprite_sheets = null + desc = "'HONK THE LAW!'" + icon_state = "security_clown_s" + item_color = "security_clown" + item_state = "clown" + diff --git a/modular_ss220/jobs/code/departaments.dm b/modular_ss220/jobs/code/departaments.dm index 1624d0353f92..af562c91864f 100644 --- a/modular_ss220/jobs/code/departaments.dm +++ b/modular_ss220/jobs/code/departaments.dm @@ -1,15 +1,46 @@ /datum/station_department/engineering/New() . = ..() - department_roles |= GLOB.engineering_positions_ss220 + get_all_engineering_alt_titles_ss220() + department_roles |= get_all_engineering_titles_ss220() /datum/station_department/medical/New() . = ..() - department_roles |= GLOB.medical_positions_ss220 + get_all_medical_alt_titles_ss220() + department_roles |= get_all_medical_titles_ss220() /datum/station_department/science/New() . = ..() - department_roles |= GLOB.science_positions_ss220 + get_all_science_alt_titles_ss220() + department_roles |= get_all_science_titles_ss220() /datum/station_department/security/New() . = ..() - department_roles |= GLOB.security_positions_ss220 + get_all_security_alt_titles_ss220() + department_roles |= get_all_security_titles_ss220() + +/datum/station_department/service/New() + . = ..() + department_roles |= get_all_service_titles_ss220() + +/datum/station_department/supply/New() + . = ..() + department_roles |= get_all_supply_titles_ss220() + +/datum/station_department/assistant/New() + . = ..() + department_roles |= get_all_assistant_titles_ss220() + +/datum/nttc_configuration/New() + . = ..() + var/list/job_radio_dict = list() + for(var/i in get_all_medical_titles_ss220()) + job_radio_dict.Add(list("[i]" = "medradio")) + for(var/i in get_all_security_titles_ss220()) + job_radio_dict.Add(list("[i]" = "secradio")) + for(var/i in get_all_engineering_titles_ss220()) + job_radio_dict.Add(list("[i]" = "engradio")) + for(var/i in get_all_science_titles_ss220()) + job_radio_dict.Add(list("[i]" = "scirradio")) + for(var/i in (get_all_service_titles_ss220() + get_all_supply_titles_ss220())) + job_radio_dict.Add(list("[i]" = "srvradio")) + for(var/i in get_all_assistant_titles_ss220()) + job_radio_dict.Add(list("[i]" = "radio")) + + all_jobs |= job_radio_dict + diff --git a/modular_ss220/jobs/code/donor/donor_jobs.dm b/modular_ss220/jobs/code/donor/donor_jobs.dm new file mode 100644 index 000000000000..ce423ac6cdae --- /dev/null +++ b/modular_ss220/jobs/code/donor/donor_jobs.dm @@ -0,0 +1,57 @@ +/datum/job/donor + title = "Donor" // он тут быть не должен. Но если педали вдруг выдадут, то пускай хотя бы так + flag = 0 + total_positions = -1 + spawn_positions = -1 + department_flag = JOBCAT_SUPPORT + job_department_flags = DEP_FLAG_SERVICE + supervisors = "the head of personnel" + department_head = list("Head of Personnel") + selection_color = "#fbd5ff" + access = list( ACCESS_MAINT_TUNNELS) + alt_titles = null + outfit = /datum/outfit/job/donor + hidden_from_job_prefs = TRUE + is_extra_job = TRUE + var/ru_title + var/donator_tier = 999 // I'm unreachable! + +/datum/outfit/job/donor + name = "Donor" + jobtype = /datum/job/donor + + uniform = /obj/item/clothing/under/color/random + shoes = /obj/item/clothing/shoes/black + pda = /obj/item/pda + id = /obj/item/card/id/assistant + + +// ==================================== +/datum/job/donor/proc/get_all_titles() + var/list/all_alt_titles = list() + if(alt_titles) + all_alt_titles.Add(title) + if(ru_title) + all_alt_titles.Add(ru_title) + all_alt_titles |= alt_titles + return all_alt_titles + +// Проверка после начала раунда +/mob/new_player/IsJobAvailable(rank) + if(rank in GLOB.jobs_excluded_from_selection) + return FALSE + if(rank in GLOB.all_donor_jobs) + var/datum/job/job = SSjobs.GetJob(rank) + if(!job) + return FALSE + if(!job.is_donor_allowed(client)) + return FALSE + . = ..() + +/datum/job/proc/is_donor_allowed(client/C) + return TRUE + +/datum/job/donor/is_donor_allowed(client/C) + if(!C) + return FALSE // No client + return C.is_donor_allowed(donator_tier) diff --git a/modular_ss220/jobs/code/donor/job/1_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/1_tier_jobs.dm new file mode 100644 index 000000000000..58484cab5d6d --- /dev/null +++ b/modular_ss220/jobs/code/donor/job/1_tier_jobs.dm @@ -0,0 +1,55 @@ +/datum/job/donor/prisoner + title = "Prisoner" + department_flag = JOBCAT_SUPPORT + flag = JOB_PRISON + total_positions = 5 + spawn_positions = 3 + ru_title = "Заключенный" + alt_titles = list("Заключенный", "Уголовник", "Законопреступник", "Пермазаключенный", "Нелегальный Мигрант", "Нелегальный Работник", + "Пожизненно-Заключенный", "Политический Заключенный", "Заключенный Преступник", "Заключенный Бандит", "Заключенный Мошенник", + "Заключенный Вор", "Заключенный Убийца", "Заключенный Наркоторговец", "Заключенный Рецидивист", "Заключенный Саботер", + "Заключенный Мучитель", "Заключенный Жулик", "Заключенный Негодяй", "Заключенный Хулиган", "Заключенный Враг-NT", + "Заключенный Мафиози", "Заключенный Коррупционер", "Заключенный Психопат", "Заключенный Фальшивокредитчик", + "Заключенный Работорговец", + ) + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ЗАКЛЮЧЕННЫЙ. Вы не являетесь антагонистом на сервере и данная роль не позволяет вам нарушать правила сервера. \ + Вы находитесь на временном содержании в бриге станции принадлежащей Нанотрейзен за преступление против корпорации и теперь отбываете свой срок. \ + Вы заинтересованы в том чтобы попасть на волю за хорошее поведение, но если выдастся случай для побега - вам никто не запретит этим воспользоваться, верно? \ + Избегайте любых действий которые могут привести к вашей гибели. Вы не служите Синдикату и не заинтересованы помогать им, если не являетесь антагонистом, но если они помогут вам - то почему бы и да." + supervisors = "смотрителем" + department_head = list("Warden") + selection_color = "#bb7a41" + hidden_from_job_prefs = FALSE + donator_tier = 1 + outfit = /datum/outfit/job/donor/prisoner + +/datum/outfit/job/donor/prisoner + name = "Prisoner" + jobtype = /datum/job/donor/prisoner + + uniform = /obj/item/clothing/under/color/orange/prison + shoes = /obj/item/clothing/shoes/orange + id = /obj/item/card/id/prisoner + pda = null + box = null + backpack = null + satchel = null + dufflebag = null + +/datum/outfit/job/donor/prisoner/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(prob(20)) + uniform = /obj/item/clothing/under/misc/pj/red + if(prob(30)) + uniform = /obj/item/clothing/under/misc/pj/blue + +/datum/job/donor/prisoner/after_spawn(mob/living/carbon/human/H, joined_late = FALSE) + if(!joined_late || !H) + return ..() + + for(var/obj/effect/landmark/spawner/prisoner/landmark_loc in GLOB.landmarks_list) + H.forceMove(get_turf(landmark_loc)) + break + + . = ..() diff --git a/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm new file mode 100644 index 000000000000..ee28c5959327 --- /dev/null +++ b/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm @@ -0,0 +1,422 @@ +/datum/job/donor/barber + title = "Barber" + department_flag = JOBCAT_SUPPORT + flag = JOB_BARBER + total_positions = 1 + spawn_positions = 1 + ru_title = "Парикмахер" + alt_titles = list("Парикмахер", "Стилист", "Хозяин Студии Красоты", "Визажист", "Куафёр", "Цирюльник", "Брадобрей") + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/barber + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ПАРИКМАХЕР. Данная роль нацелена для наведения красоты на головах людей через добровольные начинания." + +/datum/outfit/job/donor/barber + name = "Barber" + jobtype = /datum/job/donor/barber + + uniform = /obj/item/clothing/under/rank/civilian/barber + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/boaterhat + l_ear = /obj/item/radio/headset/headset_service + id = /obj/item/card/id/barber + backpack_contents = list( + /obj/item/storage/box/barber = 1, + ) + + +/datum/job/donor/bath + title = "Bath" + department_flag = JOBCAT_SUPPORT + flag = JOB_BATH + total_positions = 1 + spawn_positions = 1 + ru_title = "Банщик" + alt_titles = list("Банщик", "Хозяин Бани", "Парильщик", "Пармейстер") + relate_job = "Bath" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/bath + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы БАНЩИК. Данная роль нацелена для создания душной атмосферы в замкнутых помещениях, РП-разговоров, встреч." + +/datum/outfit/job/donor/bath + name = "Bath" + jobtype = /datum/job/donor/bath + + uniform = /obj/item/clothing/under/costume/pirate_rags + suit = /obj/item/clothing/suit/mantle + shoes = /obj/item/clothing/shoes/sandal + glasses = /obj/item/clothing/glasses/goggles + l_ear = /obj/item/radio/headset/headset_service + id = /obj/item/card/id/bath + backpack_contents = list( + /obj/item/clothing/under/pants/white = 5, + /obj/item/clothing/head/beanie = 1, + /obj/item/clothing/head/beanie/black = 1, + /obj/item/clothing/head/beanie/red = 1, + /obj/item/clothing/head/beanie/green = 1, + /obj/item/clothing/head/beanie/darkblue = 1, + /obj/item/clothing/head/beanie/purple = 1, + /obj/item/clothing/head/beanie/yellow = 1, + /obj/item/clothing/head/beanie/cyan = 1, + /obj/item/clothing/head/beanie/orange = 5, + ) + + +/datum/job/donor/casino + title = "Casino" + department_flag = JOBCAT_SUPPORT + flag = JOB_CASINO + total_positions = 3 + spawn_positions = 3 + ru_title = "Крупье" + relate_job = "Bar" + alt_titles = list("Крупье", "Дилер", "Слот-Ассистент", "Пит-Босс", ) + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE, ACCESS_HYDROPONICS, ACCESS_BAR) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/casino + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы КРУПЬЕ. Данная роль нацелена на отыгрыш работника казино. Раздача карт, азарт - всё это ваша стезя. Организуйте свое лучшее казино." + +/datum/outfit/job/donor/casino + name = "Casino" + jobtype = /datum/job/donor/casino + + uniform = /obj/item/clothing/under/rank/procedure/iaa/purple + suit = /obj/item/clothing/suit/storage/iaa/purplejacket + shoes = /obj/item/clothing/shoes/laceup + belt = /obj/item/storage/belt/fannypack/purple + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/bar + id = /obj/item/card/id/casino + backpack_contents = list( + /obj/item/storage/bag/money = 1, + /obj/item/coin/twoheaded = 1, + /obj/item/coin/gold = 2, + /obj/item/coin/silver = 4, + /obj/item/coin/iron = 8, + /obj/item/eftpos = 1, + ) + +/datum/job/donor/waiter + title = "Waiter" + department_flag = JOBCAT_SUPPORT + flag = JOB_WAITER + total_positions = 2 + spawn_positions = 2 + ru_title = "Официант" + relate_job = "Bar" + alt_titles = list("Официант", "Хост Сервиса") + access = list(ACCESS_MAINT_TUNNELS, ACCESS_THEATRE, ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/waiter + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ОФИЦИАНТ. Данная роль нацелена на принеси-подай-иди-не мешай. Обеспечьте атмосферу настоящего ресторана." + +/datum/outfit/job/donor/waiter + name = "Waiter" + jobtype = /datum/job/donor/waiter + + uniform = /obj/item/clothing/under/misc/waiter + suit = /obj/item/clothing/suit/storage/iaa/blackjacket + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/fez + belt = /obj/item/storage/belt/fannypack/blue + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/chef + id = /obj/item/card/id/waiter + backpack_contents = list( + /obj/item/eftpos = 1, + /obj/item/clipboard = 1, + /obj/item/reagent_containers/glass/rag = 1, + ) + + +/datum/job/donor/acolyte + title = "Acolyte" + department_flag = JOBCAT_SUPPORT + flag = JOB_ACOLYTE + total_positions = 5 + spawn_positions = 5 + ru_title = "Послушник" + alt_titles = list("Послушник", "Монах", "Приспешник", "Последователь", "Обрядчик") + relate_job = "Chaplain" + access = list(ACCESS_CHAPEL_OFFICE, ACCESS_MAINT_TUNNELS) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/acolyte + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ПОСЛУШНИК. Данная роль нацелена на богослужение и помощь священнику. Несите слово священника, он ваш пастырь. \ + Вы не обладаете такими же способностями как священник, вы не можете освящать воду, но вы можете помочь тому, кто наделен этим даром!" + +/datum/outfit/job/donor/acolyte + name = "Acolyte" + jobtype = /datum/job/donor/acolyte + + uniform = /obj/item/clothing/under/suit/victsuit + suit = /obj/item/clothing/suit/hooded/monk + shoes = /obj/item/clothing/shoes/sandal + r_hand = /obj/item/storage/bag/garment/chaplain + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/chaplain + id = /obj/item/card/id/acolyte + +/* +/datum/job/donor/deliverer + title = "Deliverer" + department_flag = JOBCAT_SUPPORT + flag = JOB_DELIVERER + total_positions = 1 + spawn_positions = 1 + ru_title = "Доставщик" + alt_titles = list("Доставщик", "Почтальон", "Переносчик") + relate_job = "Cargo Technician" + supervisors = "главой персонала и квартирмейстером" + department_head = list("Head of Personnel", "Quartermaster") + access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_MINT, ACCESS_MINERAL_STOREROOM) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/deliverer + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ДОСТАВЩИК. Данная роль нацелена на доставку товаров от одного отдела до другого. Ваше призвание - доставлять ресурсы от отдела до отдела или еду от самого ШЕФа." +*/ +/datum/outfit/job/donor/deliverer + name = "Deliverer" + //jobtype = /datum/job/donor/deliverer + + uniform = /obj/item/clothing/under/misc/overalls + shoes = /obj/item/clothing/shoes/workboots + head = /obj/item/clothing/head/soft + r_hand = /obj/item/mail_scanner + belt = /obj/item/storage/belt/fannypack/orange + r_pocket = /obj/item/storage/bag/mail + l_ear = /obj/item/radio/headset/headset_service + r_ear = /obj/item/radio/headset/headset_cargo + pda = /obj/item/pda/cargo + id = /obj/item/card/id/courier + backpack_contents = list( + /obj/item/eftpos = 1, + /obj/item/clipboard = 1, + /obj/item/reagent_containers/spray/pepper = 1, + /obj/item/reagent_containers/spray/pestspray = 1, + /obj/item/reagent_containers/spray/plantbgone = 1, + ) + + backpack = /obj/item/storage/backpack/industrial + satchel = /obj/item/storage/backpack/satchel_eng + dufflebag = /obj/item/storage/backpack/duffel/engineering + + +/datum/outfit/job/donor/deliverer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.mind && H.mind.role_alt_title) + switch(H.mind.role_alt_title) + if("Почтальон") + uniform = /obj/item/clothing/under/misc/mailman + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/mailman + if("Доставщик") + uniform = /obj/item/clothing/under/rank/cargo/deliveryboy + head = /obj/item/clothing/head/soft/deliverysoft + + +/datum/job/donor/wrestler + title = "Wrestler" + department_flag = JOBCAT_SUPPORT + flag = JOB_BOXER + total_positions = 4 + spawn_positions = 4 + ru_title = "Борец" + alt_titles = list("Борец", "Рефери", "Тренер", "Боксёр", "Спортсмен") + relate_job = "Art" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE, ACCESS_RC_ANNOUNCE) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/wrestler + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы БОРЕЦ. Данная роль нацелена на дружественные соревнования. Найдите этот дух соревнования среди экипажа и обеспечьте зрелища!" + +/datum/outfit/job/donor/wrestler + name = "Wrestler" + jobtype = /datum/job/donor/wrestler + + uniform = /obj/item/clothing/under/pants/classicjeans + suit = /obj/item/clothing/suit/hooded/hoodie/blue + shoes = /obj/item/clothing/shoes/sandal + belt = /obj/item/storage/belt/fannypack/blue + gloves = /obj/item/clothing/gloves/fingerless + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/librarian + id = /obj/item/card/id/wrestler + backpack_contents = list( + /obj/item/clothing/gloves/boxing = 1, + /obj/item/clothing/gloves/boxing/green = 1, + /obj/item/clothing/gloves/boxing/blue = 1, + /obj/item/clothing/gloves/boxing/yellow = 1, + /obj/item/clothing/mask/luchador = 1, + /obj/item/clothing/mask/luchador/tecnicos = 1, + /obj/item/clothing/mask/luchador/rudos = 1, + /obj/item/clothing/under/pants/shorts/red = 1, + /obj/item/clothing/under/pants/shorts/green = 1, + /obj/item/clothing/under/pants/shorts/blue = 1, + /obj/item/clothing/under/pants/shorts/black = 1, + /obj/item/clothing/under/pants/shorts/grey = 1, + /obj/item/storage/belt/fannypack/blue = 1, + /obj/item/storage/belt/fannypack/red = 1, + ) + +/* +/datum/job/donor/painter + title = "Painter" + department_flag = JOBCAT_SUPPORT + flag = JOB_PAINTER + total_positions = 1 + spawn_positions = 1 + ru_title = "Художник" + alt_titles = list("Художник", "Творец", "Искусствовед", "Пейзажист", "Фотореалист", "Перфоманс-Артист") + relate_job = "Art" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/painter + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ХУДОЖНИК. Данная роль нацелена на демонстрацию вашей тонкой натуры. Найдите себе красильщик полов, создайте искусство! \ + Возможно вы захотите наложить инсталляцию посреди мостика?" +*/ +/datum/outfit/job/donor/painter + name = "Painter" + //jobtype = /datum/job/donor/painter + + uniform = /obj/item/clothing/under/misc/sl_suit + suit = /obj/item/clothing/suit/apron + shoes = /obj/item/clothing/shoes/white + head = /obj/item/clothing/head/beret/white + glasses = /obj/item/clothing/glasses/regular/hipster + l_ear = /obj/item/radio/headset/headset_service + id = /obj/item/card/id/painter + backpack_contents = list( + /obj/item/stack/cable_coil/random = 1, + /obj/item/camera = 1, + /obj/item/camera_film = 2, + /obj/item/storage/photo_album = 1, + /obj/item/hand_labeler = 1, + /obj/item/stack/tape_roll = 1, + /obj/item/paper = 4, + /obj/item/storage/fancy/crayons = 1, + /obj/item/pen/fancy = 1, + /obj/item/toy/crayon/rainbow = 1, + /obj/item/painter = 1, + ) + +/datum/job/donor/musican + title = "Musician" + department_flag = JOBCAT_SUPPORT + flag = JOB_MUSICIAN + total_positions = 1 + spawn_positions = 1 + ru_title = "Музыкант" + alt_titles = list("Музыкант", "Маэстро", "Гитарист", "Барабанщик", "Пианист", "Волынщик", "Скрипач", "Скоморох", "Саксофонист", "Солист", "Певец", "Гастролер") + relate_job = "Art" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/musican + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы МУЗЫКАНТ. Данная роль нацелена на создание музыкальной атмосферы. Приласкайте уши экипажа." + +/datum/outfit/job/donor/musican + name = "Musician" + jobtype = /datum/job/donor/musican + + uniform = /obj/item/clothing/under/costume/singerb + shoes = /obj/item/clothing/shoes/singerb + gloves = /obj/item/clothing/gloves/color/white + l_ear = /obj/item/radio/headset/headset_service + r_ear = /obj/item/clothing/ears/headphones + glasses = /obj/item/clothing/glasses/regular/hipster + id = /obj/item/card/id/musican + backpack_contents = list( + /obj/item/flashlight = 1, + /obj/item/instrument/violin = 1, + /obj/item/instrument/piano_synth = 1, + /obj/item/instrument/guitar = 1, + /obj/item/instrument/eguitar = 1, + /obj/item/instrument/accordion = 1, + /obj/item/instrument/saxophone = 1, + /obj/item/instrument/trombone = 1, + /obj/item/instrument/harmonica = 1 + ) + + +/datum/job/donor/actor + title = "Actor" + department_flag = JOBCAT_MEDSCI + flag = JOB_ACTOR + total_positions = 5 + spawn_positions = 5 + ru_title = "Актер" + alt_titles = list("Актер", "Артист", "Стендапер", "Комедиант", "Эстрадный Артист") + relate_job = "Art" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_THEATRE) + selection_color = "#558758" + hidden_from_job_prefs = FALSE + donator_tier = 2 + outfit = /datum/outfit/job/donor/actor + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы АКТЕР. Данная роль нацелена на ваше актерское мастерство. Сами вы им стали или ваши родители вас на это натолкнули, \ + но вы связаны со сценой. Устройте шоу, пригласите гостей! Попробуйте устроить совместное представление с другими актерами, клоуном и мимом." + +/datum/outfit/job/donor/actor + name = "Actor" + jobtype = /datum/job/donor/actor + + uniform = /obj/item/clothing/under/rank/procedure/lawyer/red + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/bowlerhat + gloves = /obj/item/clothing/gloves/color/white + glasses = /obj/item/clothing/glasses/regular + l_ear = /obj/item/radio/headset/headset_service + id = /obj/item/card/id/actor + backpack_contents = list( + /obj/item/clothing/under/rank/procedure/iaa/purple = 1, + /obj/item/clothing/suit/storage/iaa/purplejacket = 1, + /obj/item/clothing/under/suit/really_black = 1, + /obj/item/clothing/under/costume/cuban_suit = 1, + /obj/item/clothing/head/cuban_hat = 1, + ) + +/datum/outfit/job/donor/actor/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/procedure/lawyer/red/skirt + + if(H.mind && H.mind.role_alt_title) + switch(H.mind.role_alt_title) + if("Артист") + uniform = /obj/item/clothing/under/suit/victsuit/red + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/dress/victdress/red + suit = /obj/item/clothing/suit/victcoat/red + if("Комедиант") + uniform = /obj/item/clothing/under/costume/jester + head = /obj/item/clothing/head/jester + if("Эстрадный Артист") + uniform = /obj/item/clothing/under/suit/victsuit/redblk + suit = /obj/item/clothing/suit/draculacoat + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/dress/redeveninggown diff --git a/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm new file mode 100644 index 000000000000..9cc9d3c4c71c --- /dev/null +++ b/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm @@ -0,0 +1,327 @@ +/datum/job/donor/administrator + title = "Administrator" + department_flag = JOBCAT_MEDSCI + flag = JOB_ADMINISTRATOR + total_positions = 1 + spawn_positions = 1 + ru_title = "Сервис-Администратор" + alt_titles = list("Сервис-Администратор", "Сервис-Управитель", "Помпадур", "Сервис-Менеджер") + relate_job = "Bar" + access = list(ACCESS_THEATRE, ACCESS_LIBRARY, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_MINERAL_STOREROOM, ACCESS_JANITOR) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/administrator + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы АДМИНИСТРАТОР. Данная роль нацелена для налаживания работы в Отделе Обслуживания. Наладьте производство, \ + помогите главе персонала пока он занимается бумагами, убедитесь что каждый работник выполняет свою работу и делает это КАЧЕСТВЕННО! \ + А если всё замечательно, значит устройте новое развлечение или событие для экипажа. Довольный экипаж - работоспособный экипаж. \ + \nВы не являетесь заменой главы персонала и подчиняетесь ему напрямую. Вы не являетесь главой сервисного отдела. \ + Вы помощник, ассистент, консультант, наблюдатель, организатор." + +/datum/outfit/job/donor/administrator + name = "Administrator" + jobtype = /datum/job/donor/administrator + + uniform = /obj/item/clothing/under/rank/procedure/iaa + suit = /obj/item/clothing/suit/storage/iaa/blackjacket + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/fez + gloves = /obj/item/clothing/gloves/color/white + belt = /obj/item/storage/belt/fannypack/black + glasses = /obj/item/clothing/glasses/regular + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/librarian + id = /obj/item/card/id/administrator + backpack_contents = list( + /obj/item/clothing/under/rank/procedure/lawyer/black = 1, + /obj/item/clothing/under/misc/waiter = 1, + /obj/item/eftpos = 1, + /obj/item/clipboard = 1, + /obj/item/reagent_containers/glass/rag = 1, + ) + + +/datum/job/donor/tourist_tsf + title = "Tourist TSF" + department_flag = JOBCAT_MEDSCI + flag = JOB_TOURIST_TSF + ru_title = "Турист ТСФ" + alt_titles = list("Турист ТСФ", "Посетитель ТСФ") + relate_job = "Assistant" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/tourist_tsf + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ТУРИСТ ТСФ. Вы прибыли сюда для отдыха и возможно для подработок. На вас по прежнему действует КЗ НТ, не смотря на то \ + что вы являетесь гражданином ТСФ. ТСФ и СССП недоброжелательно относятся друг к другу, но это по прежнему не дает нарушать правила сервера. \ + " + +/datum/outfit/job/donor/tourist_tsf + name = "Tourist TSF" + jobtype = /datum/job/donor/tourist_tsf + + uniform = /obj/item/clothing/under/solgov + suit = /obj/item/clothing/suit/hooded/hoodie/blue + shoes = /obj/item/clothing/shoes/combat + head = /obj/item/clothing/head/soft/solgov/marines + belt = /obj/item/storage/belt/fannypack/black + gloves = /obj/item/clothing/gloves/fingerless + id = /obj/item/card/id/tourist_tsf + backpack_contents = list( + /obj/item/clothing/under/pants/shorts/blue = 1, + ) + +/datum/outfit/job/donor/tourist_tsf/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.add_language("Tradeband") + + +/datum/job/donor/tourist_ussp + title = "Tourist USSP" + department_flag = JOBCAT_MEDSCI + flag = JOB_TOURIST_USSP + ru_title = "Турист СССП" + alt_titles = list("Турист СССП", "Посетитель СССП") + relate_job = "Assistant" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/tourist_ussp + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ТУРИСТ СССП. Вы прибыли сюда для отдыха и возможно для подработок. На вас по прежнему действует КЗ НТ, не смотря на то \ + что вы являетесь гражданином СССП. ТСФ и СССП недоброжелательно относятся друг к другу, но это по прежнему не дает нарушать правила сервера. \ + " + + +/datum/outfit/job/donor/tourist_ussp + name = "Tourist USSP" + jobtype = /datum/job/donor/tourist_ussp + + uniform = /obj/item/clothing/under/new_soviet + suit = /obj/item/clothing/suit/sovietcoat + shoes = /obj/item/clothing/shoes/combat + head = /obj/item/clothing/head/sovietsidecap + belt = /obj/item/storage/belt/fannypack/red + gloves = /obj/item/clothing/gloves/fingerless + glasses = /obj/item/clothing/glasses/sunglasses/big + id = /obj/item/card/id/tourist_ussp + backpack_contents = list( + /obj/item/clothing/under/pants/shorts/red = 1, + /obj/item/clothing/head/ushanka = 1, + ) + +/datum/outfit/job/donor/tourist_ussp/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.add_language("Neo-Russkiya") + + +/datum/job/donor/cleaning_manager + title = "Cleaning Manager" + department_flag = JOBCAT_MEDSCI + flag = JOB_MANAGER_JANITOR + total_positions = 2 + spawn_positions = 2 + ru_title = "Менеджер по Клинингу" + alt_titles = list("Менеджер по Клинингу", "Ловец Крыс", "Уборщик I-разряда", "Уборщик II-разряда", "Уборщик III-разряда", "Уборщик IV-разряда", "Уборщик V-разряда") + relate_job = "Janitor" + access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_MEDICAL) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/cleaning_manager + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы Менеджер по Клинингу. Вы уборщик этой станции и должны следить за чистотой на ней. Вы давно на этой работе и снабжены лучшим снаряжением для идеальной работы. \ + Вы тот кто отделяет станцию от хаоса и обеспечивает порядок. Вы - настоящая действующая сила на этой станции." + +/datum/outfit/job/donor/cleaning_manager + name = "Cleaning Manager" + jobtype = /datum/job/donor/cleaning_manager + + uniform = /obj/item/clothing/under/rank/civilian/janitor + suit = /obj/item/clothing/suit/apron/overalls + shoes = /obj/item/clothing/shoes/galoshes/dry + gloves = /obj/item/clothing/gloves/color/purple + mask = /obj/item/clothing/mask/bandana/purple + head = /obj/item/clothing/head/soft/purple + belt = /obj/item/storage/belt/janitor/full + r_pocket = /obj/item/door_remote/janikeyring + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/janitor + id = /obj/item/card/id/cleaning_manager + backpack_contents = list( + /obj/item/clothing/head/beret/purple_normal = 1, + /obj/item/clothing/suit/storage/iaa/purplejacket = 1, + /obj/item/clipboard = 1, + ) + +/* +/datum/job/donor/apprentice + title = "Apprentice" + department_flag = JOBCAT_MEDSCI + flag = JOB_APPRENTICE + total_positions = 3 + spawn_positions = 3 + ru_title = "Подмастерье" + alt_titles = list("Подмастерье", "Ассистент-Механик", "Ассистент I-го разряда", "Ассистент II-го разряда", "Ассистент III-го разряда", "Ассистент IV-го разряда", "Ассистент V-го разряда") + relate_job = "Assistant" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_MINERAL_STOREROOM) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/apprentice + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ПОДМАСТЕРЬЕ. Вы ассистент с полномочиями для работы на станции. Построить свою мастерскую или заняться другим полезным для станции и вас делом - ваша стезя. \ + Но серые комбинезоны и тулбоксы так и манят вас..." + +*/ +/datum/outfit/job/donor/apprentice + name = "Apprentice" + //jobtype = /datum/job/donor/apprentice + + uniform = /obj/item/clothing/under/color/grey + suit = /obj/item/clothing/suit/apron/overalls + back = /obj/item/storage/backpack + shoes = /obj/item/clothing/shoes/workboots + mask = /obj/item/clothing/mask/gas + head = /obj/item/clothing/head/soft/grey + belt = /obj/item/storage/belt/fannypack/white + gloves = /obj/item/clothing/gloves/color/grey + l_hand = /obj/item/storage/toolbox/mechanical + r_hand = /obj/item/flag/grey + id = /obj/item/card/id/apprentice + backpack_contents = list( + /obj/item/clothing/head/welding = 1, + /obj/item/flashlight = 1, + /obj/item/clothing/under/pants/shorts/grey = 1, + /obj/item/clothing/under/misc/assistantformal = 1, + ) + +/datum/job/donor/guard + title = "Guard" + department_flag = JOBCAT_MEDSCI + flag = JOB_GUARD + total_positions = 1 + spawn_positions = 1 + ru_title = "Охранник" + alt_titles = list("Охранник", "Сторож Сервиса", "Охранник Сервиса", "Вышибала Сервиса") + relate_job = "Bar" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LIBRARY) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/guard + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ОХРАННИК. Данная роль нацелена на обеспечение порядка в баре и на кухне. Вы то что отдаляет кухню от хаоса и пьяных ассистентов. \ + Вы уполномочены вышвыривать из бара каждого, кто нарушает порядок. \ + \nВы НЕ являетесь службой безопасности, данная роль не дает вам полномочия охотиться за антагонистами." + +/datum/outfit/job/donor/guard + name = "Guard" + jobtype = /datum/job/donor/guard + + uniform = /obj/item/clothing/under/rank/civilian/bartender + suit = /obj/item/clothing/suit/armor/vest/old // с замедлением + belt = /obj/item/melee/classic_baton + shoes = /obj/item/clothing/shoes/jackboots/noisy + head = /obj/item/clothing/head/bowlerhat + glasses = /obj/item/clothing/glasses/sunglasses/big + l_ear = /obj/item/radio/headset/headset_service + pda = /obj/item/pda/bar + id = /obj/item/card/id/guard + backpack_contents = list( + /obj/item/clothing/suit/jacket/leather = 1, + ) + + +/datum/job/donor/migrant + title = "Migrant" + department_flag = JOBCAT_MEDSCI + flag = JOB_MIGRANT + ru_title = "Мигрант" + alt_titles = list("Мигрант") + relate_job = "Assistant" + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/migrant + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы МИГРАНТ. Сами вы прибыли на эту станцию или так вынудили обстоятельства, но вы теперь тут. \ + Присмотритесь к этой корпорации. Возможно здесь вы захотите жить и работать?" + +/datum/outfit/job/donor/migrant + name = "Migrant" + jobtype = /datum/job/donor/migrant + + uniform = /obj/item/clothing/under/costume/pirate_rags + suit = /obj/item/clothing/suit/poncho + shoes = /obj/item/clothing/shoes/sandal + head = /obj/item/clothing/head/sombrero + mask = /obj/item/clothing/mask/fakemoustache + belt = /obj/item/storage/belt/fannypack/orange + id = /obj/item/card/id/migrant + backpack_contents = list( + /obj/item/reagent_containers/drinks/bottle/tequila = 1, + /obj/item/food/snacks/taco = 6, + /obj/item/food/snacks/nachos = 3, + /obj/item/food/snacks/cheesenachos = 3, + /obj/item/food/snacks/cubannachos = 3, + /obj/item/clothing/suit/poncho/red = 1, + /obj/item/clothing/suit/poncho/green = 1, + ) + + +/datum/job/donor/uncertain + title = "Uncertain" + department_flag = JOBCAT_MEDSCI + flag = JOB_UNCERTAIN + ru_title = "Безработный" + alt_titles = list("Безработный", "Безработный Ассистент", "Свободный Ассистент", "Отрабатыващий Ассистент", "Ассистент Технических Тоннелей") + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION) + selection_color = "#63979a" + hidden_from_job_prefs = FALSE + donator_tier = 3 + outfit = /datum/outfit/job/donor/uncertain + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы БЕЗРАБОТНЫЙ. Данная роль нацелена на бездумное брождение по техническим тоннелям. Вас когда-то оставили без работы, \ + возможно эвакуационный шаттл улетел без вас, возможно технологии заменили вашу работу, причины могут быть разные. \ + Но суть всего этого одна - вы были брошены и занимаетесь собственным выживанием." + +/datum/outfit/job/donor/uncertain + name = "Uncertain" + jobtype = /datum/job/donor/uncertain + + uniform = /obj/item/clothing/under/costume/kilt + suit = /obj/item/clothing/suit/unathi/mantle + shoes = /obj/item/clothing/shoes/footwraps + head = /obj/item/clothing/head/beanie/yellow + glasses = /obj/item/clothing/glasses/eyepatch + belt = /obj/item/storage/belt/fannypack/black + mask = /obj/item/clothing/mask/cigarette/pipe/cobpipe + pda = /obj/item/pda/librarian + id = /obj/item/card/id/uncertain + backpack_contents = list( + /obj/item/reagent_containers/drinks/bottle/vodka = 1, + /obj/item/storage/fancy/cigarettes/cigpack_random = 2, + /obj/item/food/snacks/doshik = 3, + /obj/item/food/snacks/doshik_spicy = 3, + /obj/item/clothing/suit/mantle/old = 1, + /obj/item/clothing/head/flatcap = 1, + /obj/item/clothing/suit/browntrenchcoat = 1, + /obj/item/clothing/accessory/horrible = 1, + /obj/item/clothing/under/costume/pirate_rags = 1, + /obj/item/clothing/head/cowboyhat = 1, + /obj/item/clothing/shoes/sandal = 1, + ) + + backpack = /obj/item/storage/backpack/explorer + satchel = /obj/item/storage/backpack/satchel/explorer + dufflebag = /obj/item/storage/backpack/duffel diff --git a/modular_ss220/jobs/code/donor/job/4_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/4_tier_jobs.dm new file mode 100644 index 000000000000..676c681d2359 --- /dev/null +++ b/modular_ss220/jobs/code/donor/job/4_tier_jobs.dm @@ -0,0 +1,301 @@ +/datum/job/donor/adjutant + title = "Adjutant" + department_flag = JOBCAT_MEDSCI + flag = JOB_ADJUTANT + total_positions = 1 + spawn_positions = 1 + ru_title = "Адъютант" + alt_titles = list("Адъютант") + relate_job = "Internal Affairs Agent" + supervisors = "главой персонала и капитаном" + department_head = list("Head of Personnel", "Captain") + access = list(ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_EVA, ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_RESEARCH, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING) + selection_color = "#717097" + hidden_from_job_prefs = FALSE + donator_tier = 4 + outfit = /datum/outfit/job/donor/adjutant + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы Адъютант. Данная роль нацелена на помощь главам в соблюдении их СРП и заполнении бумаг. \ + Вы тот, кто поможет капитану нужным советом или своевременно принесет ему чашечку кофе, чтобы он \ + легче перенес работу. Вы тот, кто следит за ментальным здоровьем глав и помощи в исполнении их обязанностей. \ + \nВы не являетесь АВД или НТР'ом и можете не исполнять их обязанности. Но вы можете работать сообща с Юридическим Отделом." + +/datum/outfit/job/donor/adjutant + name = "Adjutant" + jobtype = /datum/job/donor/adjutant + + uniform = /obj/item/clothing/under/rank/procedure/iaa/blue + suit = /obj/item/clothing/suit/storage/iaa/bluejacket + shoes = /obj/item/clothing/shoes/laceup + l_ear = /obj/item/radio/headset/headset_iaa/alt + r_ear = /obj/item/radio/headset/headset_com + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + gloves = /obj/item/clothing/gloves/color/white + l_pocket = /obj/item/laser_pointer + r_pocket = /obj/item/clothing/accessory/lawyers_badge + l_hand = /obj/item/storage/briefcase + pda = /obj/item/pda/lawyer + id = /obj/item/card/id/adjutant + backpack_contents = list( + /obj/item/folder/blue = 1, + /obj/item/camera = 1, + /obj/item/taperecorder = 1, + /obj/item/storage/box/tapes = 1, + /obj/item/clipboard = 1, + /obj/item/clothing/under/rank/procedure/lawyer/blue = 1, + ) + bio_chips = list(/obj/item/bio_chip/mindshield) + satchel = /obj/item/storage/backpack/satchel_sec + dufflebag = /obj/item/storage/backpack/duffel/security + +/* +/datum/job/donor/butler + title = "Butler" + department_flag = JOBCAT_MEDSCI + flag = JOB_BUTLER + total_positions = 1 + spawn_positions = 1 + ru_title = "Дворецкий" + alt_titles = list("Дворецкий") + relate_job = "Vip" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_EVA, ACCESS_LAWYER) + selection_color = "#717097" + hidden_from_job_prefs = FALSE + donator_tier = 4 + outfit = /datum/outfit/job/donor/butler + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ДВОРЕЦКИЙ. Данная роль нацелена на обеспечение глав в удовлетворении физических потребностей, а мостик в чистоте." + +*/ +/datum/outfit/job/donor/butler + name = "Butler" + //jobtype = /datum/job/donor/butler + + uniform = /obj/item/clothing/under/rank/procedure/lawyer/black + shoes = /obj/item/clothing/shoes/laceup + head = /obj/item/clothing/head/beaverhat + glasses = /obj/item/clothing/glasses/monocle + gloves = /obj/item/clothing/gloves/color/white + l_ear = /obj/item/radio/headset/headset_service + r_ear = /obj/item/radio/headset/headset_com + pda = /obj/item/pda/bar + id = /obj/item/card/id/butler + backpack_contents = list( + /obj/item/reagent_containers/glass/rag = 1, + /obj/item/folder/blue = 1, + /obj/item/camera = 1, + /obj/item/taperecorder = 1, + /obj/item/storage/box/tapes = 1, + /obj/item/clipboard = 1, + /obj/item/clothing/under/rank/procedure/iaa = 1, + /obj/item/clothing/suit/storage/iaa/blackjacket = 1, + /obj/item/clothing/suit/chef/classic = 1, + ) +/* +/datum/job/donor/maid + title = "Maid" + department_flag = JOBCAT_MEDSCI + flag = JOB_MAID + total_positions = 1 + spawn_positions = 1 + ru_title = "Горничная" + alt_titles = list("Горничная") + relate_job = "Vip" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_EVA, ACCESS_LAWYER) + selection_color = "#717097" + hidden_from_job_prefs = FALSE + donator_tier = 4 + outfit = /datum/outfit/job/donor/maid + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ГОРНИЧНАЯ. Данная роль нацелена на обеспечение глав в удовлетворении физических потребностей, а мостик в чистоте." +*/ +/datum/outfit/job/donor/maid + name = "Maid" + //jobtype = /datum/job/donor/maid + + uniform = /obj/item/clothing/under/costume/janimaid + shoes = /obj/item/clothing/shoes/laceup + gloves = /obj/item/clothing/gloves/color/white + l_ear = /obj/item/radio/headset/headset_service + r_ear = /obj/item/radio/headset/headset_com + pda = /obj/item/pda/bar + id = /obj/item/card/id/maid + backpack_contents = list( + /obj/item/reagent_containers/glass/rag = 1, + /obj/item/folder/blue = 1, + /obj/item/camera = 1, + /obj/item/taperecorder = 1, + /obj/item/storage/box/tapes = 1, + /obj/item/clipboard = 1, + /obj/item/clothing/suit/chef/classic = 1, + ) + + +/datum/job/donor/representative_tsf + title = "Representative TSF" + department_flag = JOBCAT_ENGSEC + flag = JOB_REPRESENTATIVE_TSF + total_positions = 1 + spawn_positions = 1 + ru_title = "Представитель ТСФ" + alt_titles = list("Представитель ТСФ", "Дипломат ТСФ", "Публицист ТСФ") + relate_job = "Vip" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_EVA) + selection_color = "#717097" + hidden_from_job_prefs = FALSE + donator_tier = 4 + outfit = /datum/outfit/job/donor/representative_tsf + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ПРЕДСТАВИТЕЛЬ ТСФ. Вы прибыли сюда для отдыха и возможно для переговоров. На вас по прежнему действует КЗ НТ, не смотря на то \ + что вы являетесь гражданином ТСФ. ТСФ и СССП недоброжелательно относятся друг к другу, но это по прежнему не дает нарушать правила сервера. \ + " + +/datum/outfit/job/donor/representative_tsf + name = "Representative TSF" + jobtype = /datum/job/donor/representative_tsf + + uniform = /obj/item/clothing/under/solgov/rep + head = /obj/item/clothing/head/beret/solgov/command + belt = /obj/item/storage/belt/fannypack/black + glasses = /obj/item/clothing/glasses/sunglasses + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/centcom + l_pocket = /obj/item/melee/classic_baton/telescopic + box = /obj/item/storage/box/survival_mining + id = /obj/item/card/id/representative_tsf + backpack_contents = list( + /obj/item/bio_chip_implanter/death_alarm = 1, + /obj/item/lighter/zippo/blue = 1, + /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 1, + /obj/item/clothing/under/pants/shorts/blue = 1, + ) + + bio_chips = list(/obj/item/bio_chip/mindshield, + /obj/item/bio_chip/death_alarm + ) + +/datum/outfit/job/donor/representative_tsf/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.add_language("Tradeband") + + +/datum/job/donor/representative_ussp + title = "Representative USSP" + department_flag = JOBCAT_ENGSEC + flag = JOB_REPRESENTATIVE_USSP + total_positions = 1 + spawn_positions = 1 + ru_title = "Представитель СССП" + alt_titles = list("Представитель СССП", "Дипломат СССП", "Пресс-Секретарь СССП") + relate_job = "Vip" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_EVA) + selection_color = "#717097" + hidden_from_job_prefs = FALSE + donator_tier = 4 + outfit = /datum/outfit/job/donor/representative_ussp + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ПРЕДСТАВИТЕЛЬ СССП. Вы прибыли сюда для отдыха и возможно для переговоров. На вас по прежнему действует КЗ НТ, не смотря на то \ + что вы являетесь гражданином СССП. ТСФ и СССП недоброжелательно относятся друг к другу, но это по прежнему не дает нарушать правила сервера. \ + " + +/datum/outfit/job/donor/representative_ussp + name = "Representative USSP" + jobtype = /datum/job/donor/representative_ussp + + uniform = /obj/item/clothing/under/new_soviet/sovietofficer + suit = /obj/item/clothing/suit/sovietcoat/officer + head = /obj/item/clothing/head/sovietofficerhat + belt = /obj/item/storage/belt/fannypack/red + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/color/black + glasses = /obj/item/clothing/glasses/sunglasses + l_pocket = /obj/item/melee/classic_baton/telescopic + id = /obj/item/card/id/representative_ussp + box = /obj/item/storage/box/survival_mining + backpack_contents = list( + /obj/item/bio_chip_implanter/death_alarm = 1, + /obj/item/lighter/zippo/engraved = 1, + /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 1, + /obj/item/clothing/under/pants/shorts/red = 1, + /obj/item/clothing/head/ushanka = 1, + ) + + bio_chips = list(/obj/item/bio_chip/mindshield, + /obj/item/bio_chip/death_alarm + ) + +/datum/outfit/job/donor/representative_ussp/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.add_language("Neo-Russkiya") + + +/datum/job/donor/dealer + title = "Dealer" + department_flag = JOBCAT_ENGSEC + flag = JOB_DEALER + total_positions = 2 + spawn_positions = 2 + ru_title = "Торговец" + alt_titles = list("Торговец", "Независимый Торговец", "Сдельщик", "Барахольщик", "Меценат", "Коммерсант") + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_RC_ANNOUNCE, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_MINT, ACCESS_MINERAL_STOREROOM, ACCESS_CONSTRUCTION) + selection_color = "#717097" + hidden_from_job_prefs = FALSE + donator_tier = 4 + outfit = /datum/outfit/job/donor/dealer + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ТОРГОВЕЦ. Данная роль нацелена на продажу всячины, хлама и вещей экипажу. Обустройте себе торговую точку или продавайте всё из ширмы. \ + Найдите любыми способами предметы у экипажа и продайте его им же! Либо же продайте барахло которое вы привезли с собой. \ + Богатый торговец - успешный торговец! \ + \nВам выдан личный EFTPOS для снятия средств с карт." + +/datum/outfit/job/donor/dealer + name = "Dealer" + jobtype = /datum/job/donor/dealer + + uniform = /obj/item/clothing/under/suit/black + suit = /obj/item/clothing/suit/pirate_black + back = /obj/item/storage/backpack/duffel/engineering + belt = /obj/item/melee/classic_baton + head = /obj/item/clothing/head/fedora + shoes = /obj/item/clothing/shoes/cowboy/black + l_hand = /obj/item/cane + glasses = /obj/item/clothing/glasses/sunglasses/big + gloves = /obj/item/clothing/gloves/color/black + l_ear = /obj/item/radio/headset/headset_service + box = /obj/item/storage/box/survival_mining + pda = /obj/item/pda/librarian + id = /obj/item/card/id/dealer + backpack_contents = list( + /obj/item/eftpos = 1, + /obj/item/hand_labeler = 1, + /obj/item/hand_labeler_refill = 1, + /obj/item/storage/box/legal_loot/amount_30 = 1, + ) + +/datum/outfit/job/donor/dealer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.mind && H.mind.role_alt_title) + switch(H.mind.role_alt_title) + if("Сдельщик", "Независимый Торговец", "Барахольщик") + uniform = /obj/item/clothing/under/color/brown + suit = /obj/item/clothing/suit/pirate_brown + shoes = /obj/item/clothing/shoes/cowboy + head = /obj/item/clothing/head/cowboyhat + gloves = /obj/item/clothing/gloves/color/brown + +// Тоже добавляем ТСФ торгашам коллекционки +/datum/outfit/admin/sol_trader/New() + . = ..() + backpack_contents |= list( + /obj/item/storage/box/legal_loot/amount_15 = 1, + ) + +/datum/outfit/job/donor/dealer/post_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(visualsOnly) + return + H.add_language("Tradeband") diff --git a/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm new file mode 100644 index 000000000000..250533dbf66a --- /dev/null +++ b/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm @@ -0,0 +1,194 @@ +/datum/job/donor/vip_guest + title = "VIP Corporate Guest" + department_flag = JOBCAT_ENGSEC + flag = JOB_VIP_GUEST + ru_title = "VIP Гость" + alt_titles = list("VIP Гость", "VIP Персона", "VIP Гость NT", "VIP Персона NT", "Гость Корпорации NT") + relate_job = "Vip" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_HEADS, ACCESS_RC_ANNOUNCE, ACCESS_EVA) + selection_color = "#9d679d" + hidden_from_job_prefs = FALSE + donator_tier = 5 + outfit = /datum/outfit/job/donor/vip_guest + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы ВИП ПЕРСОНА. Данная роль нацелена на ваше пребывания на станции в качестве особого гостя. К вам особое отношение, \ + вы являетесь одним из любимцев корпорации Нанотрейзен. Чем вы занимаетесь? А какая разница. Вы очень важная персона." + +/datum/outfit/job/donor/vip_guest + name = "VIP Corporate Guest" + jobtype = /datum/job/donor/vip_guest + + uniform = /obj/item/clothing/under/suit/really_black + glasses = /obj/item/clothing/glasses/monocle + gloves = /obj/item/clothing/gloves/color/black + shoes = /obj/item/clothing/shoes/centcom + head = /obj/item/clothing/head/that + l_hand = /obj/item/cane + l_pocket = /obj/item/melee/classic_baton/telescopic + box = /obj/item/storage/box/engineer + id = /obj/item/card/id/vip_guest + backpack_contents = list( + /obj/item/stack/spacecash/c1000 = 2, + /obj/item/bio_chip_implanter/death_alarm = 1, + /obj/item/lighter/zippo/engraved = 1, + /obj/item/clothing/mask/cigarette/cigar/havana = 6, + ) + + bio_chips = list(/obj/item/bio_chip/mindshield, + /obj/item/bio_chip/death_alarm + ) + + +/datum/job/donor/banker + title = "Banker" + department_flag = JOBCAT_ENGSEC + flag = JOB_BANKER + total_positions = 2 + spawn_positions = 2 + ru_title = "Банкир" + alt_titles = list("Банкир", "Независимый Банкир", "Корпорат", "Бизнесмен", "Банкир NT", "Корпорат NT", "Бизнесмен NT") + relate_job = "Vip" + access = list(ACCESS_MAINT_TUNNELS, ACCESS_LIBRARY, ACCESS_EVA) + selection_color = "#9d679d" + hidden_from_job_prefs = FALSE + donator_tier = 5 + outfit = /datum/outfit/job/donor/banker + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы БАНКИР. Вы крайне богаты и нацелены открыть здесь свое дело. Банк, мастерские, возможно нанять собственных работников. \ + Корпорация Нанотрейзен не против, ведь вы приносите для неё деньги. Так за работу!" + +/datum/outfit/job/donor/banker + name = "Banker" + jobtype = /datum/job/donor/banker + + uniform = /obj/item/clothing/under/suit/really_black + suit = /obj/item/clothing/suit/victcoat + glasses = /obj/item/clothing/glasses/monocle + mask = /obj/item/clothing/mask/cigarette/pipe + gloves = /obj/item/clothing/gloves/color/white + shoes = /obj/item/clothing/shoes/centcom + head = /obj/item/clothing/head/fedora + l_hand = /obj/item/cane + l_pocket = /obj/item/melee/classic_baton/telescopic + back = /obj/item/storage/backpack/satchel + l_ear = /obj/item/radio/headset/headset_service + box = /obj/item/storage/box/engineer + id = /obj/item/card/id/banker + backpack_contents = list( + /obj/item/stack/spacecash/c1000 = 5, + + /obj/item/bio_chip_implanter/death_alarm = 1, + /obj/item/lighter/zippo/engraved = 1, + /obj/item/clothing/under/rank/procedure/lawyer/black = 1, + /obj/item/clothing/mask/cigarette/cigar/havana = 6, + ) + + bio_chips = list(/obj/item/bio_chip/mindshield, + /obj/item/bio_chip/death_alarm + ) + + +/datum/job/donor/seclown + title = "Security Clown" + department_flag = JOBCAT_ENGSEC + flag = JOB_SECURITY_CLOWN + total_positions = 1 + spawn_positions = 1 + ru_title = "Клоун Службы Безопасности" + alt_titles = list("Клоун Службы Безопасности", "Клоун-Детектив", "Клоун-Смотритель", "Хонкектив", "Клоун Кадет") + relate_job = "Security Officer" + supervisors = "главой службы безопасности" + department_head = list("Head of Security") + job_department_flags = DEP_FLAG_SECURITY + access = list(ACCESS_CLOWN, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS, ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT) + selection_color = "#9d679d" + hidden_from_job_prefs = FALSE + donator_tier = 5 + outfit = /datum/outfit/job/donor/seclown + important_information = "Ваша должность нацелена на свободный РП-отыгрыш и не разрешает нарушать правила сервера. \ + \nВы КЛОУН СЛУЖБЫ БЕЗОПАСНОСТИ. Данная роль нацелена на обеспечения сотрудников службы безопасности ментальным здоровьем и \ + поддерживать моральный облик вашего отдела. Вы не имеете права выступать против вашего отдела, ведь вас тренировали для этого. \ + Корпорация NT вложило много денег чтобы сделать из клоуна... вас. Так не подведите её. Вы то, что можно назвать корпоративным клоуном. \ + Ваша душа принадлежит NT, но ваше сердце по прежнему верно Хонкомаме. \ + \nВ вас присутствует ген клоуна. Не занимайтесь охотой антагонистов если есть действующие сотрудники службы безопасности. \ + Вы не являетесь офицером. Вы по прежнему клоун с полномочиями и гигантскими обязанностями. Это непростая роль, ведь вы из-за своего положения \ + не можете творить множество вещей и действий нарушающие Космический Закон." + +/datum/outfit/job/donor/seclown + name = "Security Clown" + jobtype = /datum/job/donor/seclown + + uniform = /obj/item/clothing/under/rank/security/officer/clown + suit = /obj/item/clothing/suit/armor/vest/security + shoes = /obj/item/clothing/shoes/clown_shoes + head = /obj/item/clothing/head/helmet + mask = /obj/item/clothing/mask/gas/clown_hat + gloves = /obj/item/clothing/gloves/color/red + l_pocket = /obj/item/bikehorn + suit_store = /obj/item/gun/energy/clown/security + l_ear = /obj/item/radio/headset/headset_service + r_ear = /obj/item/radio/headset/headset_sec/alt + glasses = /obj/item/clothing/glasses/hud/security/sunglasses + pda = /obj/item/pda/clown + id = /obj/item/card/id/seclown + backpack_contents = list( + /obj/item/food/snacks/grown/banana = 1, + /obj/item/stamp/clown = 1, + /obj/item/toy/crayon/rainbow = 1, + /obj/item/storage/fancy/crayons = 1, + /obj/item/reagent_containers/spray/waterflower = 1, + /obj/item/reagent_containers/drinks/bottle/bottleofbanana = 1, + /obj/item/instrument/bikehorn = 1, + /obj/item/flash = 1, + /obj/item/restraints/handcuffs/toy = 1, + ) + + bio_chips = list(/obj/item/bio_chip/sad_trombone, /obj/item/bio_chip/mindshield) + + backpack = /obj/item/storage/backpack/clown + satchel = /obj/item/storage/backpack/clown + dufflebag = /obj/item/storage/backpack/duffel/clown + +/datum/outfit/job/donor/seclown/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(!H.mind) + return + if(H.mind.role_alt_title) + switch(H.mind.role_alt_title) + if("Клоун-Детектив", "Хонкектив") + suit = /obj/item/clothing/suit/storage/det_suit + head = /obj/item/clothing/head/det_hat + if("Клоун-Смотритель") + suit = /obj/item/clothing/suit/armor/vest/warden + head = /obj/item/clothing/head/officer + suit_store = /obj/item/gun/energy/clown/security/warden + if("Клоун Кадет") + head = /obj/item/clothing/head/soft/sec + +/datum/outfit/job/donor/seclown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + if(ismachineperson(H)) + var/obj/item/organ/internal/cyberimp/brain/clown_voice/implant = new + implant.insert(H) + + H.dna.SetSEState(GLOB.clumsyblock, TRUE) + singlemutcheck(H, GLOB.clumsyblock, MUTCHK_FORCED) + H.dna.default_blocks.Add(GLOB.clumsyblock) + if(!ismachineperson(H)) + H.dna.SetSEState(GLOB.comicblock, TRUE) + singlemutcheck(H, GLOB.comicblock, MUTCHK_FORCED) + H.dna.default_blocks.Add(GLOB.comicblock) + H.check_mutations = TRUE + H.add_language("Clownish") + H.AddComponent(/datum/component/slippery, H, 8 SECONDS, 100, 0, FALSE, TRUE, "slip", TRUE) + + var/clown_name = pick(GLOB.clown_names) + var/newname = clean_input("Выберите имя для вашего Клоуна Службы Безопасности.", "Изменение Имени", clown_name, H) + if(newname) + H.rename_character(H.real_name, newname) + else + H.rename_character(H.real_name, clown_name) + diff --git a/modular_ss220/jobs/code/jobs.dm b/modular_ss220/jobs/code/jobs.dm index c1b8d290b371..6173b770444a 100644 --- a/modular_ss220/jobs/code/jobs.dm +++ b/modular_ss220/jobs/code/jobs.dm @@ -1,18 +1,3 @@ -/datum/nttc_configuration/New() - . = ..() - var/list/job_radio_dict = list() - for(var/i in (GLOB.medical_positions_ss220 + get_all_medical_alt_titles_ss220())) - job_radio_dict.Add(list("[i]" = "medradio")) - for(var/i in (GLOB.security_positions_ss220 + get_all_security_alt_titles_ss220())) - job_radio_dict.Add(list("[i]" = "secradio")) - for(var/i in (GLOB.engineering_positions_ss220 + get_all_engineering_alt_titles_ss220())) - job_radio_dict.Add(list("[i]" = "engradio")) - for(var/i in (GLOB.science_positions_ss220 + get_all_science_alt_titles_ss220())) - job_radio_dict.Add(list("[i]" = "scirradio")) - - all_jobs |= job_radio_dict - - // ======================================= // relate jobs for relate job slots // ======================================= @@ -20,28 +5,38 @@ return FALSE /datum/job - var/relate_job // for novice role and etc + var/relate_job // for relate positions and landmark + var/is_relate_positions = FALSE // Slots + var/is_extra_job = FALSE // Special Jobs Window /datum/job/doctor relate_job = "Intern" + is_relate_positions = TRUE /datum/job/doctor/intern relate_job = "Medical Doctor" /datum/job/scientist relate_job = "Student Scientist" + is_relate_positions = TRUE /datum/job/scientist/student relate_job = "Scientist" /datum/job/engineer relate_job = "Trainee Engineer" + is_relate_positions = TRUE /datum/job/engineer/trainee relate_job = "Station Engineer" /datum/job/officer relate_job = "Security Cadet" + is_relate_positions = TRUE /datum/job/officer/cadet relate_job = "Security Officer" +// ============================== +// PROCS +// ============================== + /datum/job/is_position_available() if(job_banned_gamemode) return FALSE @@ -49,10 +44,15 @@ if(check_hidden_from_job_prefs()) return FALSE - return relate_job ? check_relate_positions() : ..() + if(relate_job && is_relate_positions) + return check_relate_positions() + + return ..() /datum/job/proc/check_relate_positions() var/datum/job/temp = SSjobs.GetJob(relate_job) + if(!temp) + return FALSE var/current_count_positions = current_positions + temp.current_positions var/total_count_positions = total_positions + temp.total_positions @@ -64,13 +64,9 @@ /datum/job/proc/check_hidden_from_job_prefs() if(hidden_from_job_prefs) - for(var/job_title in GLOB.jobs_positions_ss220) + for(var/job_title in GLOB.all_jobs_ss220) if(job_title in alt_titles) return TRUE - if(title in GLOB.jobs_positions_ss220) + if(title in GLOB.all_jobs_ss220) return TRUE return FALSE - -// OFFICIAL parameters: 17 / HOS, Bart / 400 / 700 -/datum/character_save/SetChoices(mob/user, limit = 18, list/splitJobs = list("Head of Security", "Bartender"), widthPerColumn = 450, height = 700) - . = ..() diff --git a/modular_ss220/jobs/code/jobs_character.dm b/modular_ss220/jobs/code/jobs_character.dm index 4e526b4c4aa1..179a60381f11 100644 --- a/modular_ss220/jobs/code/jobs_character.dm +++ b/modular_ss220/jobs/code/jobs_character.dm @@ -22,6 +22,33 @@ H.update_action_buttons_icon() return FALSE +/datum/character_save + var/extra_jobs_check = FALSE + +// OFFICIAL parameters: 17 / HOS, Bart / 400 / 700 +/datum/character_save/SetChoices(mob/user, limit = 18, list/splitJobs = list("Head of Security", "Bartender"), widthPerColumn = 450, height = 700) + . = ..() + +/datum/character_save/proc/get_split_extra_jobs() + return list("Administrator", "Adjutant", "VIP Corporate Guest") + +/datum/preferences/process_link(mob/user, list/href_list) + if(!user) + return + + if(href_list["preference"] == "job") + switch(href_list["task"]) + if("extra_job") + active_character.extra_jobs_check = !active_character.extra_jobs_check + active_character.SetChoices(user) + return TRUE + . = ..() + +// В /SetChoices() определяем нужно ли пользователю создавать дополнительную кнопку +/datum/character_save/proc/check_available_extra_job_prefs(client/C) + if(C?.donator_level) + return TRUE + return FALSE // это копипаст мерзопакости. Я не буду рефакторить это в модуле, я шо, ебанутый? // Оно работает и ладно. И я не буду этот комментарий на английский переводить. @@ -29,16 +56,24 @@ /datum/character_save/update_preview_icon(for_observer=0) . = ..() - // qdel(preview_icon_front) - // qdel(preview_icon_side) - // qdel(preview_icon) + var/icon/clothes_s = get_clothes_icon() + + if(clothes_s) + preview_icon.Blend(clothes_s, ICON_OVERLAY) + + preview_icon_front = new(preview_icon, dir = SOUTH) + preview_icon_side = new(preview_icon, dir = WEST) + + qdel(clothes_s) + + +/datum/character_save/proc/get_clothes_icon() + var/icon/clothes_s = null var/g = "" if(gender == FEMALE) g = "f" - var/icon/clothes_s = null - if(job_medsci_high) switch(job_medsci_high) if(JOB_STUDENT) @@ -67,6 +102,33 @@ if(4) clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + if(JOB_ACTOR, JOB_ADMINISTRATOR, JOB_TOURIST_TSF, JOB_TOURIST_USSP, JOB_MANAGER_JANITOR, JOB_GUARD, JOB_MIGRANT, JOB_UNCERTAIN /* JOB_APPRENTICE, */) + if(prob(50)) + clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "iaa_s") + else + clothes_s = new /icon('icons/mob/clothing/under/misc.dmi', "waiter_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "fez"), ICON_OVERLAY) + if(backbag == 2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + else if(backbag == 3 || backbag == 4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + + if(JOB_ADJUTANT, /* JOB_BUTLER, JOB_MAID */) + clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "lawyer_black[g ? "_skirt" : ""]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY) + if(prob(10)) + clothes_s.Blend(new /icon('icons/mob/clothing/eyes.dmi', "monocle"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "beaver_hat"), ICON_OVERLAY) + if(backbag == 2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + else if(backbag == 3 || backbag == 4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + else if(job_engsec_high) switch(job_engsec_high) if(JOB_CADET) @@ -101,10 +163,78 @@ if(4) clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) - if(clothes_s) - preview_icon.Blend(clothes_s, ICON_OVERLAY) + if(JOB_REPRESENTATIVE_TSF, JOB_REPRESENTATIVE_USSP, JOB_DEALER) + clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "lawyer_black[g ? "_skirt" : ""]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY) + if(prob(10)) + clothes_s.Blend(new /icon('icons/mob/clothing/eyes.dmi', "monocle"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "beaver_hat"), ICON_OVERLAY) + if(backbag == 2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + else if(backbag == 3 || backbag == 4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(JOB_VIP_GUEST, JOB_BANKER) + clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "ntrep[g ? "_skirt" : ""]_s") + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "suitjacket_black_open"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/eyes.dmi', "monocle"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "tophat"), ICON_OVERLAY) + if(backbag == 2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + else if(backbag == 3 || backbag == 4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(JOB_SECURITY_CLOWN) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "security_clown_s") + clothes_s.Blend(new /icon('icons/mob/clothing/mask.dmi', "clown"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "clown"), ICON_UNDERLAY) + if(prob(25)) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "detective"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "detective"), ICON_OVERLAY) + else if(prob(25)) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "warden_jacket"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "sechat"), ICON_OVERLAY) + else if(prob(50)) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "armor"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "redsoft"), ICON_OVERLAY) + if(backbag == 2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "clownpack"), ICON_OVERLAY) + else if(backbag == 3 || backbag == 4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-clown"), ICON_OVERLAY) + + + else if(job_support_high) + switch(job_support_high) + if(JOB_PRISON) + if(prob(95)) + clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "prisoner_s") + else + clothes_s = new /icon('icons/mob/clothing/under/color.dmi', "prisoner_d_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY) - preview_icon_front = new(preview_icon, dir = SOUTH) - preview_icon_side = new(preview_icon, dir = WEST) + if(JOB_BARBER, JOB_BATH, JOB_CASINO, JOB_WAITER, JOB_ACOLYTE, JOB_BOXER, JOB_MUSICIAN /* JOB_DELIVERER, JOB_PAINTER, */) + clothes_s = new /icon('icons/mob/clothing/under/civilian.dmi', "barber_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "boater_hat"), ICON_OVERLAY) + if(backbag == 2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + else if(backbag == 3 || backbag == 4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) - qdel(clothes_s) + return clothes_s + +// Костыли с датумами для выставления должностей +/datum/character_save/proc/get_datum_last_support() + return JOBCAT_LAST_SUPPORT + +/datum/character_save/proc/get_datum_last_engsec() + return JOBCAT_LAST_ENGSEC + +/datum/character_save/proc/get_datum_last_medsci() + return JOBCAT_LAST_MEDSCI diff --git a/modular_ss220/jobs/code/jobs_gamemodes.dm b/modular_ss220/jobs/code/jobs_gamemodes.dm index 4db68643f8f3..c07577bce644 100644 --- a/modular_ss220/jobs/code/jobs_gamemodes.dm +++ b/modular_ss220/jobs/code/jobs_gamemodes.dm @@ -1,27 +1,44 @@ -/datum/game_mode/changeling/New() +/datum/game_mode/changeling/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 . = ..() - protected_jobs |= GLOB.security_positions_ss220 -/datum/game_mode/cult/New() +/datum/game_mode/cult/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 . = ..() - restricted_jobs |= GLOB.security_positions_ss220 -/datum/game_mode/revolution/New() +/datum/game_mode/revolution/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 . = ..() - restricted_jobs |= GLOB.security_positions_ss220 -/datum/game_mode/traitor/New() +/datum/game_mode/traitor/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 . = ..() - protected_jobs |= GLOB.security_positions_ss220 -/datum/game_mode/trifecta/New() +/datum/game_mode/trifecta/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 . = ..() - protected_jobs |= GLOB.security_positions_ss220 -/datum/game_mode/traitor/vampire/New() +/datum/game_mode/traitor/vampire/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 . = ..() - protected_jobs |= GLOB.security_positions_ss220 -/datum/game_mode/vampire/New() +/datum/game_mode/vampire/pre_setup() + protected_jobs |= GLOB.restricted_jobs_ss220 + . = ..() + +// antag mix scenarious +/datum/antag_scenario/traitor/New() + protected_roles |= GLOB.restricted_jobs_ss220 + . = ..() + +/datum/antag_scenario/changeling/New() + protected_roles |= GLOB.restricted_jobs_ss220 + . = ..() + +/datum/antag_scenario/vampire/New() + protected_roles |= GLOB.restricted_jobs_ss220 + . = ..() + +/datum/antag_scenario/team/blood_brothers/New() + protected_roles |= GLOB.restricted_jobs_ss220 . = ..() - protected_jobs |= GLOB.security_positions_ss220 diff --git a/modular_ss220/jobs/code/jobs_global_list.dm b/modular_ss220/jobs/code/jobs_global_list.dm index 3ae7787fba1f..3027eaf4d0ae 100644 --- a/modular_ss220/jobs/code/jobs_global_list.dm +++ b/modular_ss220/jobs/code/jobs_global_list.dm @@ -1,3 +1,5 @@ + +// ===================== STATION ===================== GLOBAL_LIST_INIT(medical_positions_ss220, list( "Intern", )) @@ -14,28 +16,122 @@ GLOBAL_LIST_INIT(security_positions_ss220, list( "Security Cadet", )) -GLOBAL_LIST_INIT(jobs_positions_ss220, (list() + ( - medical_positions_ss220 + science_positions_ss220 + engineering_positions_ss220 + security_positions_ss220))) +// ====================== DONOR ====================== +GLOBAL_LIST_INIT(donor_tier_1_jobs, list( + "Prisoner", // Заключенный +)) + +GLOBAL_LIST_INIT(donor_tier_2_jobs, list( + "Barber", // Парикмахер + "Bath", // Банщик + "Casino", // Крупье + "Waiter", // Официант + "Acolyte", // Послушник + "Deliverer", // Курьер + "Wrestler", // Боксёр, Рефери + "Painter", // Художник + "Musician", // Музыкант + "Actor", // Актёр +)) + +GLOBAL_LIST_INIT(donor_tier_3_jobs, list( + "Administrator", // Сервис-Администратор + "Tourist TSF", // Турист ТСФ + "Tourist USSP", // Турист ССП + "Cleaning Manager", // Менеджер по Клинингу + "Apprentice", // Подмастерье + "Guard", // Охранник Шестерочки + "Migrant", // Мигрант + "Uncertain", // Забытый Ассистент +)) + +GLOBAL_LIST_INIT(donor_tier_4_jobs, list( + "Adjutant", // Адъютант + "Butler", // Дворецкий + "Maid", // Горничная + "Representative TSF", // Представитель ТСФ + "Representative USSP", // Представитель ССП + "Dealer", // Независимый Торговец +)) + +GLOBAL_LIST_INIT(donor_tier_5_jobs, list( + "VIP Corporate Guest", // VIP гость - Важно! Это НЕ админский VIP Guest с ЦК. + "Banker", // Банкир + "Security Clown", // Клоун Службы Безопасности +)) + +GLOBAL_LIST_INIT(security_donor_jobs, list( + "Security Clown", +)) + +GLOBAL_LIST_INIT(assistant_donor_jobs, list( + "Prisoner", + "Tourist TSF", + "Tourist USSP", + "Apprentice", + "Migrant", + "Uncertain", + "Representative TSF", + "Representative USSP", + "VIP Corporate Guest", +)) + +GLOBAL_LIST_INIT(supply_donor_jobs, list( + "Deliverer", +)) + +GLOBAL_LIST_INIT(all_donor_jobs, donor_tier_1_jobs + donor_tier_2_jobs + donor_tier_3_jobs + donor_tier_4_jobs + donor_tier_5_jobs) + +GLOBAL_LIST_INIT(service_donor_jobs, all_donor_jobs - security_donor_jobs - assistant_donor_jobs - supply_donor_jobs) + +// Работы которые нельзя выбрать нигде +GLOBAL_LIST_INIT(jobs_excluded_from_selection, list("Donor")) + + +// ====================== SPECIAL ====================== +// cant be antags +GLOBAL_LIST_INIT(restricted_jobs_ss220, security_positions_ss220 + ( + donor_tier_4_jobs + donor_tier_5_jobs + jobs_excluded_from_selection +)) + +// ===================== ALL JOBS ===================== + +GLOBAL_LIST_INIT(all_jobs_ss220, (list() + ( + medical_positions_ss220 + science_positions_ss220 + engineering_positions_ss220 + security_positions_ss220 + all_donor_jobs))) + + +// ====================== TITLE ====================== /proc/get_alt_titles(list/positions) var/list/all_titles = list() for(var/rank in positions) var/datum/job/job = SSjobs.GetJob(rank) + if(!job) + continue if(length(job.alt_titles)) all_titles |= job.alt_titles return all_titles -/proc/get_all_medical_alt_titles_ss220() - return get_alt_titles(GLOB.medical_positions_ss220) +/proc/get_all_medical_titles_ss220() + return GLOB.medical_positions_ss220 + get_alt_titles(GLOB.medical_positions_ss220) + +/proc/get_all_security_titles_ss220() + return GLOB.security_positions_ss220 + get_alt_titles(GLOB.security_positions_ss220) + GLOB.security_donor_jobs + get_alt_titles(GLOB.security_donor_jobs) + +/proc/get_all_engineering_titles_ss220() + return GLOB.engineering_positions_ss220 + get_alt_titles(GLOB.engineering_positions_ss220) + +/proc/get_all_science_titles_ss220() + return GLOB.science_positions_ss220 + get_alt_titles(GLOB.science_positions_ss220) -/proc/get_all_security_alt_titles_ss220() - return get_alt_titles(GLOB.security_positions_ss220) +/proc/get_all_service_titles_ss220() + return GLOB.service_donor_jobs + get_alt_titles(GLOB.service_donor_jobs) -/proc/get_all_engineering_alt_titles_ss220() - return get_alt_titles(GLOB.engineering_positions_ss220) +/proc/get_all_supply_titles_ss220() + return GLOB.supply_donor_jobs + get_alt_titles(GLOB.supply_donor_jobs) -/proc/get_all_science_alt_titles_ss220() - return get_alt_titles(GLOB.science_positions_ss220) +/proc/get_all_assistant_titles_ss220() + return GLOB.assistant_donor_jobs + get_alt_titles(GLOB.assistant_donor_jobs) -/proc/get_all_alt_titles_ss220() - return get_all_medical_alt_titles_ss220() + get_all_security_alt_titles_ss220() + get_all_engineering_alt_titles_ss220() + get_all_science_alt_titles_ss220() +/proc/get_all_titles_ss220() + return get_all_medical_titles_ss220() + get_all_security_titles_ss220() + get_all_engineering_titles_ss220() + get_all_science_titles_ss220() + get_all_service_titles_ss220() + get_all_supply_titles_ss220() + get_all_assistant_titles_ss220() diff --git a/modular_ss220/jobs/code/landmarks.dm b/modular_ss220/jobs/code/landmarks.dm new file mode 100644 index 000000000000..320bce69e5a4 --- /dev/null +++ b/modular_ss220/jobs/code/landmarks.dm @@ -0,0 +1,44 @@ +/obj/effect/landmark/start/prisoner + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Prisoner" + icon_state = "prisoner" + +/obj/effect/landmark/spawner/prisoner + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Prisoner Arrive" + icon_state = "prisoner_arrive" + +/obj/effect/landmark/start/bar + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Bar" + icon_state = "bar" + +/obj/effect/landmark/start/artist + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Artist" + icon_state = "art" + +/obj/effect/landmark/start/vip + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Vip" + icon_state = "vip" + +/obj/effect/landmark/start/barber + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Barber" + icon_state = "barber" + +/obj/effect/landmark/start/uncertain + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Uncertain" + icon_state = "uncertain" + +/obj/effect/landmark/start/dealer + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Dealer" + icon_state = "dealer" + +/obj/effect/landmark/start/bath + icon = 'modular_ss220/jobs/icons/landmarks.dmi' + name = "Bath" + icon_state = "bath" diff --git a/modular_ss220/jobs/code/objects/job_objects.dm b/modular_ss220/jobs/code/objects/job_objects.dm index fe18b83d9c6a..406798ce86c7 100644 --- a/modular_ss220/jobs/code/objects/job_objects.dm +++ b/modular_ss220/jobs/code/objects/job_objects.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/arcade/recruiter/Initialize(mapload) . = ..() - jobs |= GLOB.jobs_positions_ss220 + get_all_alt_titles_ss220() + jobs |= GLOB.all_jobs_ss220 + get_all_titles_ss220() incorrect_jobs |= list( "Medical Sasistant", "Shitcurity Cadet", "Traneer Enginer", "Assistant Captain", "Engineer Cadet", "Traine Engener", "Intarn", "Entern", "Student Directar", "Head of Scientest", "Junior Codet" @@ -29,3 +29,142 @@ mob_name = "Security Cadet" id_job = "Security Cadet" outfit = /datum/outfit/job/officer/cadet + + +// TRADER - Хлам разрешенный на станции +/obj/item/storage/box/legal_loot + name = "Коробка всячины" + desc = "Коробка с легальными вещами или фальшивками. В любом случае, здесь ничего опасного и режущего! Безопасно для детей!" + icon = 'modular_ss220/aesthetics/boxes/icons/boxes.dmi' + icon_state = "thief_box" + var/loot_amount = 1 + var/list/possible_type_loot = list( + /obj/item/toy/balloon, + /obj/item/storage/wallet, + /obj/item/storage/photo_album, + /obj/item/storage/box/snappops, + /obj/item/storage/fancy/crayons, + /obj/item/storage/belt/champion, + /obj/item/soap/deluxe, + /obj/item/soap/ducttape, + /obj/item/soap/nanotrasen, + /obj/item/soap/homemade, + /obj/item/soap/syndie, + /obj/item/pickaxe/silver, + /obj/item/pen/invisible, + /obj/item/lipstick/random, + /obj/item/grenade/smokebomb, + /obj/item/grown/corncob, + /obj/item/poster/random_contraband, + /obj/item/bikehorn, + /obj/item/beach_ball, + /obj/item/beach_ball/holoball, + /obj/item/banhammer, + /obj/item/toy/balloon, + /obj/item/toy/blink, + /obj/item/toy/katana, + /obj/random/mech, + /obj/item/toy/spinningtoy, + /obj/item/toy/sword, + /obj/item/dualsaber/toy, + /obj/item/paicard, + /obj/item/instrument/violin, + /obj/item/instrument/guitar, + /obj/item/storage/belt/utility/full, + /obj/item/clothing/accessory/horrible, + /obj/random/carp_plushie, + /obj/random/plushie, + /obj/random/figure, + /obj/item/deck/cards, + /obj/item/deck/cards/tiny, + /obj/item/deck/unum, + /obj/item/toy/minimeteor, + /obj/item/toy/redbutton, + /obj/item/toy/figure/owl, + /obj/item/toy/figure/griffin, + /obj/item/clothing/head/blob, + /obj/item/id_decal/gold, + /obj/item/id_decal/silver, + /obj/item/id_decal/prisoner, + /obj/item/id_decal/centcom, + /obj/item/id_decal/emag, + /obj/item/spellbook/oneuse/fake_gib, + /obj/item/toy/foamblade, + /obj/item/toy/flash, + /obj/item/toy/minigibber, + /obj/item/toy/nuke, + /obj/item/toy/AI, + /obj/item/clothing/under/syndicate/tacticool, + /obj/item/storage/box/fakesyndiesuit, + /obj/item/gun/projectile/shotgun/toy/tommygun, + /obj/item/stack/tile/fakespace/loaded, + /obj/item/stack/tile/brass/fifty, + /obj/item/sord, + /obj/item/toy/prizeball/figure, + /obj/item/toy/prizeball/therapy, + + // pew pew + /obj/item/gun/projectile/automatic/toy, + /obj/item/gun/projectile/automatic/toy/pistol, + /obj/item/gun/projectile/shotgun/toy, + /obj/item/ammo_box/foambox, + /obj/item/toy/foamblade, + /obj/item/toy/syndicateballoon, + /obj/item/clothing/suit/syndicatefake, + /obj/item/clothing/head/syndicatefake, + /obj/item/gun/projectile/shotgun/toy/crossbow, + /obj/item/gun/projectile/automatic/c20r/toy/riot, + /obj/item/gun/projectile/automatic/l6_saw/toy/riot, + /obj/item/gun/projectile/automatic/sniper_rifle/toy, + /obj/item/ammo_box/foambox/riot, + /obj/item/deck/cards/syndicate + ) + +/obj/item/storage/box/legal_loot/populate_contents() + // "увеличиваем" шансы на выпадение коллекционного хлама + possible_type_loot |= subtypesof(/obj/item/toy) + subtypesof(/obj/item/clothing/head/collectable) + subtypesof(/obj/item/poster) + subtypesof(/obj/item/storage/fancy/cigarettes) + subtypesof(/obj/item/lighter/zippo) + subtypesof(/obj/item/id_skin) + for(var/i in 1 to loot_amount) + var/loot_type = pick(possible_type_loot) + new loot_type(src) + +/obj/item/storage/box/legal_loot/amount_2 + loot_amount = 2 + +/obj/item/storage/box/legal_loot/amount_5 + loot_amount = 5 + +/obj/item/storage/box/legal_loot/amount_10 + loot_amount = 10 + +/obj/item/storage/box/legal_loot/amount_15 + loot_amount = 15 + +/obj/item/storage/box/legal_loot/amount_20 + loot_amount = 20 + +/obj/item/storage/box/legal_loot/amount_30 + loot_amount = 30 + +/obj/item/storage/box/legal_loot/amount_40 + loot_amount = 40 + +/obj/item/storage/box/legal_loot/amount_50 + loot_amount = 50 + +// HONK Rifle // +/obj/item/gun/energy/clown + icon_state = "honkrifle" + item_state = "honkrifle" + icon = 'modular_ss220/jobs/icons/custom_gun/custom_guns.dmi' + lefthand_file = 'modular_ss220/jobs/icons/custom_gun/mob/custom_guns_lefthand.dmi' + righthand_file = 'modular_ss220/jobs/icons/custom_gun/mob/custom_guns_righthand.dmi' + +/obj/item/gun/energy/clown/security + name = "ХОНК-ружье офицера" + desc = "Личное оружие клоуна офицера. Смертоносное для ментального состояния каждого на ком было применено. Запрещено конвенкцией НТ 12 раз. Разрешено конвенкцией советов клоунов 13 раз. На рукояти выгривирован \"HONK\" и нацарапаны пару зачернутых черточек." + icon_state = "honkrifle_security" + item_state = "honkrifle_security" + +/obj/item/gun/energy/clown/security/warden + name = "Личное ХОНК-ружье смотрителя" + desc = "Личное смертоносное оружие клоуна-смотрителя, выданное за заслуги перед НТ и \[ДАННЫЕ ХОНКНУТЫ\]. Ходят слухи что это один из первых экземпляров произведенных во время войны мимов и клоунов на родной планете клоунов." diff --git a/modular_ss220/jobs/icons/clothing/uniforms.dmi b/modular_ss220/jobs/icons/clothing/uniforms.dmi index cab653e13b24..7b593a0b97f4 100644 Binary files a/modular_ss220/jobs/icons/clothing/uniforms.dmi and b/modular_ss220/jobs/icons/clothing/uniforms.dmi differ diff --git a/modular_ss220/jobs/icons/custom_gun/custom_guns.dmi b/modular_ss220/jobs/icons/custom_gun/custom_guns.dmi new file mode 100644 index 000000000000..5c2eec1ec23e Binary files /dev/null and b/modular_ss220/jobs/icons/custom_gun/custom_guns.dmi differ diff --git a/modular_ss220/jobs/icons/custom_gun/mob/custom_guns_lefthand.dmi b/modular_ss220/jobs/icons/custom_gun/mob/custom_guns_lefthand.dmi new file mode 100644 index 000000000000..0c0c7e8eb333 Binary files /dev/null and b/modular_ss220/jobs/icons/custom_gun/mob/custom_guns_lefthand.dmi differ diff --git a/modular_ss220/jobs/icons/custom_gun/mob/custom_guns_righthand.dmi b/modular_ss220/jobs/icons/custom_gun/mob/custom_guns_righthand.dmi new file mode 100644 index 000000000000..31a379ced390 Binary files /dev/null and b/modular_ss220/jobs/icons/custom_gun/mob/custom_guns_righthand.dmi differ diff --git a/modular_ss220/jobs/icons/hud.dmi b/modular_ss220/jobs/icons/hud.dmi index cc08b6d4a546..c7fde02dfce4 100644 Binary files a/modular_ss220/jobs/icons/hud.dmi and b/modular_ss220/jobs/icons/hud.dmi differ diff --git a/modular_ss220/jobs/icons/landmarks.dmi b/modular_ss220/jobs/icons/landmarks.dmi new file mode 100644 index 000000000000..2e114e152c5f Binary files /dev/null and b/modular_ss220/jobs/icons/landmarks.dmi differ diff --git a/modular_ss220/text_to_speech/code/tts_preferences.dm b/modular_ss220/text_to_speech/code/tts_preferences.dm index 48a38b4f786d..02a1335defb3 100644 --- a/modular_ss220/text_to_speech/code/tts_preferences.dm +++ b/modular_ss220/text_to_speech/code/tts_preferences.dm @@ -103,6 +103,10 @@ client.prefs.ShowChoices(src) return FALSE var/datum/tts_seed/seed = SStts220.tts_seeds[client.prefs.active_character.tts_seed] + if(!seed) + to_chat(usr, span_danger("Выбранный голос персонажа недоступен!")) + client.prefs.ShowChoices(src) + return FALSE switch(client.donator_level) if(LITTLE_WORKER_TIER)