Merge remote-tracking branch 'citadel/master' into shield_refactor

This commit is contained in:
kevinz000
2020-03-22 15:07:41 -07:00
44 changed files with 988 additions and 697 deletions
+28 -51
View File
@@ -718,8 +718,7 @@
}, },
/obj/machinery/firealarm{ /obj/machinery/firealarm{
dir = 4; dir = 4;
pixel_x = -26; pixel_x = -26
pixel_y = 0
}, },
/turf/open/floor/plasteel/showroomfloor, /turf/open/floor/plasteel/showroomfloor,
/area/security/main) /area/security/main)
@@ -1167,8 +1166,7 @@
}, },
/obj/machinery/firealarm{ /obj/machinery/firealarm{
dir = 8; dir = 8;
pixel_x = 28; pixel_x = 28
pixel_y = 0
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/hos) /area/crew_quarters/heads/hos)
@@ -4085,8 +4083,7 @@
/obj/effect/turf_decal/bot, /obj/effect/turf_decal/bot,
/obj/machinery/camera{ /obj/machinery/camera{
c_tag = "Brig Infirmary"; c_tag = "Brig Infirmary";
dir = 4; dir = 4
network = list("ss13")
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/security/brig) /area/security/brig)
@@ -4658,8 +4655,7 @@
}, },
/obj/machinery/camera{ /obj/machinery/camera{
c_tag = "Brig Central"; c_tag = "Brig Central";
dir = 8; dir = 8
network = list("ss13")
}, },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8 dir = 8
@@ -4683,8 +4679,7 @@
/area/security/brig) /area/security/brig)
"aiK" = ( "aiK" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/processing) /area/security/processing)
@@ -5087,8 +5082,7 @@
dir = 4 dir = 4
}, },
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/obj/structure/disposalpipe/segment{ /obj/structure/disposalpipe/segment{
dir = 4 dir = 4
@@ -6516,8 +6510,7 @@
/area/security/brig) /area/security/brig)
"amU" = ( "amU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/obj/structure/chair/office/dark{ /obj/structure/chair/office/dark{
dir = 8 dir = 8
@@ -6673,7 +6666,6 @@
/obj/machinery/door/firedoor, /obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{ /obj/machinery/door/airlock/security{
name = "Evidence Storage"; name = "Evidence Storage";
req_access = null;
req_access_txt = "3" req_access_txt = "3"
}, },
/turf/open/floor/plasteel/showroomfloor, /turf/open/floor/plasteel/showroomfloor,
@@ -6743,8 +6735,7 @@
dir = 8 dir = 8
}, },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/brig) /area/security/brig)
@@ -6830,8 +6821,7 @@
pixel_y = -36 pixel_y = -36
}, },
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/obj/structure/bed, /obj/structure/bed,
/obj/item/bedsheet/blue, /obj/item/bedsheet/blue,
@@ -7552,7 +7542,6 @@
normaldoorcontrol = 1; normaldoorcontrol = 1;
pixel_x = -24; pixel_x = -24;
pixel_y = -40; pixel_y = -40;
req_access = null;
req_access_txt = "2" req_access_txt = "2"
}, },
/obj/machinery/button/door{ /obj/machinery/button/door{
@@ -7561,7 +7550,6 @@
normaldoorcontrol = 1; normaldoorcontrol = 1;
pixel_x = -24; pixel_x = -24;
pixel_y = -24; pixel_y = -24;
req_access = null;
req_access_txt = "2" req_access_txt = "2"
}, },
/turf/open/floor/plasteel/showroomfloor, /turf/open/floor/plasteel/showroomfloor,
@@ -8324,9 +8312,7 @@
"ary" = ( "ary" = (
/obj/machinery/power/apc{ /obj/machinery/power/apc{
areastring = "/area/security/warden"; areastring = "/area/security/warden";
dir = 2;
name = "Brig Control APC"; name = "Brig Control APC";
pixel_x = 0;
pixel_y = -24 pixel_y = -24
}, },
/obj/machinery/button/door{ /obj/machinery/button/door{
@@ -8334,7 +8320,6 @@
name = "Cell Shutters"; name = "Cell Shutters";
pixel_x = 6; pixel_x = 6;
pixel_y = -40; pixel_y = -40;
req_access = null;
req_access_txt = "2" req_access_txt = "2"
}, },
/obj/machinery/button/door{ /obj/machinery/button/door{
@@ -8392,8 +8377,7 @@
dir = 8 dir = 8
}, },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/brig) /area/security/brig)
@@ -8512,8 +8496,7 @@
dir = 8 dir = 8
}, },
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/security/brig) /area/security/brig)
@@ -8580,8 +8563,7 @@
/area/hallway/primary/fore) /area/hallway/primary/fore)
"asb" = ( "asb" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/obj/machinery/camera{ /obj/machinery/camera{
c_tag = "Brig Evidence Storage"; c_tag = "Brig Evidence Storage";
@@ -8735,8 +8717,7 @@
}, },
/obj/machinery/firealarm{ /obj/machinery/firealarm{
dir = 8; dir = 8;
pixel_x = 28; pixel_x = 28
pixel_y = 0
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/security/brig) /area/security/brig)
@@ -8754,7 +8735,6 @@
name = "Brig Control Shutters"; name = "Brig Control Shutters";
pixel_x = 6; pixel_x = 6;
pixel_y = -40; pixel_y = -40;
req_access = null;
req_access_txt = "2" req_access_txt = "2"
}, },
/obj/machinery/button/door{ /obj/machinery/button/door{
@@ -8805,8 +8785,7 @@
}, },
/obj/machinery/firealarm{ /obj/machinery/firealarm{
dir = 8; dir = 8;
pixel_x = 28; pixel_x = 28
pixel_y = 0
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/processing) /area/security/processing)
@@ -33788,9 +33767,9 @@
"bCG" = ( "bCG" = (
/obj/structure/table, /obj/structure/table,
/obj/item/folder/white, /obj/item/folder/white,
/obj/item/gun/syringe,
/obj/item/reagent_containers/dropper, /obj/item/reagent_containers/dropper,
/obj/item/soap/nanotrasen, /obj/item/soap/nanotrasen,
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/white, /turf/open/floor/plasteel/white,
/area/medical/sleeper) /area/medical/sleeper)
"bCH" = ( "bCH" = (
@@ -35592,6 +35571,7 @@
pixel_y = 2 pixel_y = 2
}, },
/obj/item/clothing/neck/stethoscope, /obj/item/clothing/neck/stethoscope,
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/white, /turf/open/floor/plasteel/white,
/area/medical/sleeper) /area/medical/sleeper)
"bGT" = ( "bGT" = (
@@ -54412,8 +54392,7 @@
/area/security/prison) /area/security/prison)
"eXz" = ( "eXz" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/processing) /area/security/processing)
@@ -54973,8 +54952,7 @@
"gDP" = ( "gDP" = (
/obj/machinery/firealarm{ /obj/machinery/firealarm{
dir = 8; dir = 8;
pixel_x = 28; pixel_x = 28
pixel_y = 0
}, },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6 dir = 6
@@ -55524,6 +55502,11 @@
}, },
/turf/closed/wall/r_wall, /turf/closed/wall/r_wall,
/area/engine/gravity_generator) /area/engine/gravity_generator)
"iLJ" = (
/obj/item/reagent_containers/glass/bucket,
/mob/living/simple_animal/pet/bumbles,
/turf/open/floor/plasteel,
/area/hydroponics)
"iMv" = ( "iMv" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{ /obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9 dir = 9
@@ -56598,8 +56581,7 @@
/obj/machinery/door/airlock/security/glass{ /obj/machinery/door/airlock/security/glass{
id_tag = "innerbrig"; id_tag = "innerbrig";
name = "Brig Infirmary"; name = "Brig Infirmary";
req_access_txt = "2"; req_access_txt = "2"
req_one_access_txt = "0"
}, },
/obj/effect/mapping_helpers/airlock/cyclelink_helper{ /obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1 dir = 1
@@ -56720,8 +56702,7 @@
pixel_y = -36 pixel_y = -36
}, },
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/obj/structure/bed, /obj/structure/bed,
/obj/item/bedsheet/yellow, /obj/item/bedsheet/yellow,
@@ -57070,7 +57051,6 @@
"nEj" = ( "nEj" = (
/obj/effect/spawner/structure/window/reinforced, /obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external{ /obj/structure/sign/warning/vacuum/external{
pixel_x = 0;
pixel_y = 32 pixel_y = 32
}, },
/turf/open/floor/plating, /turf/open/floor/plating,
@@ -57287,8 +57267,7 @@
pixel_y = -36 pixel_y = -36
}, },
/obj/machinery/atmospherics/components/unary/vent_pump/on{ /obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/obj/structure/bed, /obj/structure/bed,
/obj/item/bedsheet/green, /obj/item/bedsheet/green,
@@ -58087,8 +58066,7 @@
dir = 8 dir = 8
}, },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1; dir = 1
pixel_x = 0
}, },
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/security/brig) /area/security/brig)
@@ -60615,7 +60593,6 @@
"xWq" = ( "xWq" = (
/obj/effect/spawner/structure/window/reinforced, /obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external{ /obj/structure/sign/warning/vacuum/external{
pixel_x = 0;
pixel_y = -32 pixel_y = -32
}, },
/turf/open/floor/plating, /turf/open/floor/plating,
@@ -102207,7 +102184,7 @@ aSU
aXo aXo
aXo aXo
aXo aXo
aYO iLJ
bap bap
ikm ikm
aYV aYV
+18 -4
View File
@@ -90569,7 +90569,6 @@
pixel_y = 3 pixel_y = 3
}, },
/obj/item/storage/box/syringes, /obj/item/storage/box/syringes,
/obj/item/gun/syringe,
/obj/machinery/status_display/evac{ /obj/machinery/status_display/evac{
pixel_x = -32 pixel_x = -32
}, },
@@ -90581,6 +90580,7 @@
/obj/effect/turf_decal/tile/neutral{ /obj/effect/turf_decal/tile/neutral{
dir = 4 dir = 4
}, },
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/medical/storage) /area/medical/storage)
"cWv" = ( "cWv" = (
@@ -99195,7 +99195,7 @@
/obj/structure/table/reinforced, /obj/structure/table/reinforced,
/obj/machinery/light/small, /obj/machinery/light/small,
/obj/structure/bedsheetbin, /obj/structure/bedsheetbin,
/obj/item/gun/syringe, /obj/item/gun/syringe/dart,
/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{ /obj/effect/turf_decal/tile/neutral{
dir = 1 dir = 1
@@ -106576,11 +106576,11 @@
/obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle,
/obj/item/clothing/glasses/sunglasses/blindfold, /obj/item/clothing/glasses/sunglasses/blindfold,
/obj/item/clothing/ears/earmuffs, /obj/item/clothing/ears/earmuffs,
/obj/item/gun/syringe,
/obj/item/clothing/glasses/eyepatch, /obj/item/clothing/glasses/eyepatch,
/obj/effect/turf_decal/tile/blue{ /obj/effect/turf_decal/tile/blue{
dir = 8 dir = 8
}, },
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/white, /turf/open/floor/plasteel/white,
/area/medical/surgery) /area/medical/surgery)
"dyE" = ( "dyE" = (
@@ -126360,6 +126360,20 @@
}, },
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/science/mixing) /area/science/mixing)
"jwo" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/mob/living/simple_animal/pet/bumbles,
/turf/open/floor/plasteel,
/area/hydroponics)
"jBE" = ( "jBE" = (
/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{ /obj/effect/turf_decal/tile/neutral{
@@ -160698,7 +160712,7 @@ bjt
bli bli
bnk bnk
boB boB
bnj jwo
bnj bnj
bnh bnh
bvB bvB
+15 -16
View File
@@ -22793,9 +22793,6 @@
pixel_y = 4 pixel_y = 4
}, },
/obj/item/storage/box/beakers, /obj/item/storage/box/beakers,
/obj/item/gun/syringe{
pixel_y = 5
},
/obj/item/reagent_containers/spray/cleaner, /obj/item/reagent_containers/spray/cleaner,
/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{ /obj/effect/turf_decal/tile/neutral{
@@ -22804,6 +22801,7 @@
/obj/machinery/light_switch{ /obj/machinery/light_switch{
pixel_y = 24 pixel_y = 24
}, },
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/dark, /turf/open/floor/plasteel/dark,
/area/medical/storage) /area/medical/storage)
"aKZ" = ( "aKZ" = (
@@ -43879,18 +43877,6 @@
/obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating, /turf/open/floor/plating,
/area/maintenance/central) /area/maintenance/central)
"bqG" = (
/obj/effect/turf_decal/tile/green{
dir = 8
},
/obj/effect/turf_decal/tile/green{
dir = 1
},
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/turf/open/floor/plasteel,
/area/hydroponics)
"bqH" = ( "bqH" = (
/obj/effect/turf_decal/tile/green{ /obj/effect/turf_decal/tile/green{
dir = 4 dir = 4
@@ -88232,6 +88218,19 @@
"whw" = ( "whw" = (
/turf/closed/wall/rust, /turf/closed/wall/rust,
/area/medical/surgery) /area/medical/surgery)
"whZ" = (
/obj/effect/turf_decal/tile/green{
dir = 8
},
/obj/effect/turf_decal/tile/green{
dir = 1
},
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/mob/living/simple_animal/pet/bumbles,
/turf/open/floor/plasteel,
/area/hydroponics)
"wmX" = ( "wmX" = (
/turf/closed/wall/rust, /turf/closed/wall/rust,
/area/quartermaster/qm) /area/quartermaster/qm)
@@ -122394,7 +122393,7 @@ aZd
bqh bqh
bnJ bnJ
bpl bpl
bqG whZ
bsL bsL
buw buw
bwH bwH
File diff suppressed because it is too large Load Diff
+12 -4
View File
@@ -54133,7 +54133,6 @@
/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health,
/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health,
/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health,
/obj/item/gun/syringe,
/obj/structure/window/reinforced{ /obj/structure/window/reinforced{
dir = 1 dir = 1
}, },
@@ -54146,6 +54145,7 @@
/obj/effect/turf_decal/tile/blue{ /obj/effect/turf_decal/tile/blue{
dir = 8 dir = 8
}, },
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/white, /turf/open/floor/plasteel/white,
/area/medical/storage) /area/medical/storage)
"cds" = ( "cds" = (
@@ -59207,13 +59207,13 @@
}, },
/obj/item/clothing/suit/straight_jacket, /obj/item/clothing/suit/straight_jacket,
/obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle,
/obj/item/gun/syringe,
/obj/item/clothing/glasses/eyepatch, /obj/item/clothing/glasses/eyepatch,
/obj/item/clothing/glasses/sunglasses/blindfold, /obj/item/clothing/glasses/sunglasses/blindfold,
/obj/item/clothing/ears/earmuffs, /obj/item/clothing/ears/earmuffs,
/obj/item/storage/belt/medical{ /obj/item/storage/belt/medical{
pixel_y = 2 pixel_y = 2
}, },
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/white/side, /turf/open/floor/plasteel/white/side,
/area/medical/surgery) /area/medical/surgery)
"cnu" = ( "cnu" = (
@@ -61843,7 +61843,7 @@
"csa" = ( "csa" = (
/obj/structure/table, /obj/structure/table,
/obj/item/restraints/handcuffs/cable/white, /obj/item/restraints/handcuffs/cable/white,
/obj/item/gun/syringe, /obj/item/gun/syringe/dart,
/turf/open/floor/plating, /turf/open/floor/plating,
/area/maintenance/starboard/aft) /area/maintenance/starboard/aft)
"csb" = ( "csb" = (
@@ -82724,6 +82724,14 @@
/obj/structure/grille, /obj/structure/grille,
/turf/open/floor/plating/airless, /turf/open/floor/plating/airless,
/area/space/nearstation) /area/space/nearstation)
"soe" = (
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 4
},
/mob/living/simple_animal/pet/bumbles,
/turf/open/floor/plasteel,
/area/hydroponics)
"soh" = ( "soh" = (
/obj/structure/cable/yellow{ /obj/structure/cable/yellow{
icon_state = "4-8" icon_state = "4-8"
@@ -117831,7 +117839,7 @@ bSV
bUk bUk
bVv bVv
bWQ bWQ
bWQ soe
bWQ bWQ
caL caL
ccv ccv
@@ -27696,12 +27696,12 @@
pixel_y = 3 pixel_y = 3
}, },
/obj/item/storage/box/syringes, /obj/item/storage/box/syringes,
/obj/item/gun/syringe,
/obj/item/reagent_containers/hypospray/CMO, /obj/item/reagent_containers/hypospray/CMO,
/obj/item/storage/belt/medical, /obj/item/storage/belt/medical,
/obj/item/storage/belt/medical, /obj/item/storage/belt/medical,
/obj/item/clothing/neck/stethoscope, /obj/item/clothing/neck/stethoscope,
/obj/item/clothing/neck/stethoscope, /obj/item/clothing/neck/stethoscope,
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/medical/medbay/zone3) /area/medical/medbay/zone3)
"aXR" = ( "aXR" = (
+11 -10
View File
@@ -22504,14 +22504,6 @@
/obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green,
/turf/open/floor/plasteel, /turf/open/floor/plasteel,
/area/hydroponics) /area/hydroponics)
"bbe" = (
/obj/structure/chair/stool,
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 8
},
/turf/open/floor/plasteel,
/area/hydroponics)
"bbg" = ( "bbg" = (
/obj/effect/landmark/start/cook, /obj/effect/landmark/start/cook,
/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/components/unary/vent_pump/on,
@@ -39520,7 +39512,6 @@
"bMK" = ( "bMK" = (
/obj/item/soap/nanotrasen, /obj/item/soap/nanotrasen,
/obj/item/clothing/neck/stethoscope, /obj/item/clothing/neck/stethoscope,
/obj/item/gun/syringe,
/obj/structure/table/glass, /obj/structure/table/glass,
/obj/effect/turf_decal/tile/blue{ /obj/effect/turf_decal/tile/blue{
dir = 1 dir = 1
@@ -39529,6 +39520,7 @@
/obj/effect/turf_decal/tile/blue{ /obj/effect/turf_decal/tile/blue{
dir = 8 dir = 8
}, },
/obj/item/gun/syringe/dart,
/turf/open/floor/plasteel/white, /turf/open/floor/plasteel/white,
/area/medical/medbay/central) /area/medical/medbay/central)
"bMM" = ( "bMM" = (
@@ -59851,6 +59843,15 @@
}, },
/turf/open/floor/plating, /turf/open/floor/plating,
/area/science/xenobiology) /area/science/xenobiology)
"ttS" = (
/obj/structure/chair/stool,
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 8
},
/mob/living/simple_animal/pet/bumbles,
/turf/open/floor/plasteel,
/area/hydroponics)
"tue" = ( "tue" = (
/obj/structure/cable{ /obj/structure/cable{
icon_state = "2-4" icon_state = "2-4"
@@ -90071,7 +90072,7 @@ aRN
aXZ aXZ
aYQ aYQ
aXS aXS
bbe ttS
bcd bcd
bdo bdo
ben ben
+2 -2
View File
@@ -47,9 +47,9 @@
/datum/brain_trauma/special/imaginary_friend/proc/get_ghost() /datum/brain_trauma/special/imaginary_friend/proc/get_ghost()
set waitfor = FALSE set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [owner]'s imaginary friend?", ROLE_PAI, null, null, 75, friend, POLL_IGNORE_IMAGINARYFRIEND) var/list/candidates = pollCandidatesForMob("Do you want to play as [owner]'s imaginary friend?", ROLE_PAI, null, null, 75, friend, POLL_IGNORE_IMAGINARYFRIEND)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
C.transfer_ckey(friend, FALSE) C.transfer_ckey(friend, FALSE)
friend_initialized = TRUE friend_initialized = TRUE
else else
@@ -27,9 +27,9 @@
/datum/brain_trauma/severe/split_personality/proc/get_ghost() /datum/brain_trauma/severe/split_personality/proc/get_ghost()
set waitfor = FALSE set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [owner]'s split personality?", ROLE_PAI, null, null, 75, stranger_backseat, POLL_IGNORE_SPLITPERSONALITY) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as [owner]'s split personality?", ROLE_PAI, null, null, 75, stranger_backseat, POLL_IGNORE_SPLITPERSONALITY)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
C.transfer_ckey(stranger_backseat, FALSE) C.transfer_ckey(stranger_backseat, FALSE)
log_game("[key_name(stranger_backseat)] became [key_name(owner)]'s split personality.") log_game("[key_name(stranger_backseat)] became [key_name(owner)]'s split personality.")
message_admins("[ADMIN_LOOKUPFLW(stranger_backseat)] became [ADMIN_LOOKUPFLW(owner)]'s split personality.") message_admins("[ADMIN_LOOKUPFLW(stranger_backseat)] became [ADMIN_LOOKUPFLW(owner)]'s split personality.")
+2 -2
View File
@@ -76,9 +76,9 @@
/datum/disease/transformation/proc/replace_banned_player(var/mob/living/new_mob) // This can run well after the mob has been transferred, so need a handle on the new mob to kill it if needed. /datum/disease/transformation/proc/replace_banned_player(var/mob/living/new_mob) // This can run well after the mob has been transferred, so need a handle on the new mob to kill it if needed.
set waitfor = FALSE set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [affected_mob.name]?", bantype, null, bantype, 50, affected_mob) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as [affected_mob.name]?", bantype, null, bantype, 50, affected_mob)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
to_chat(affected_mob, "Your mob has been taken over by a ghost! Appeal your job ban if you want to avoid this in the future!") to_chat(affected_mob, "Your mob has been taken over by a ghost! Appeal your job ban if you want to avoid this in the future!")
message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(affected_mob)]) to replace a jobbaned player.") message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(affected_mob)]) to replace a jobbaned player.")
affected_mob.ghostize(0) affected_mob.ghostize(0)
+3 -10
View File
@@ -41,16 +41,9 @@
var/count = 0 var/count = 0
/datum/sabotage_objective/processing/power_sink/check_condition_processing() /datum/sabotage_objective/processing/power_sink/check_condition_processing()
count += 1 for(var/s in GLOB.power_sinks)
if(count==10 || sink_found) // doesn't need to fire that often unless a sink exists var/obj/item/powersink/sink = s
var/sink_found_this_time = FALSE won = max(won,sink.power_drained/1e8)
for(var/datum/powernet/PN in GLOB.powernets)
for(var/obj/item/powersink/sink in PN.nodes)
sink_found_this_time = TRUE
won = max(won,sink.power_drained/1e8)
sink_found = sink_found_this_time
count = 0
return FALSE
/obj/item/paper/guides/antag/supermatter_sabotage /obj/item/paper/guides/antag/supermatter_sabotage
info = "Ways to sabotage a supermatter:<br>\ info = "Ways to sabotage a supermatter:<br>\
+1 -1
View File
@@ -51,7 +51,7 @@
var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone?", null, null, null, 100, H) var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone?", null, null, null, 100, H)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
H.key = C.key H.key = C.key
if(grab_ghost_when == CLONER_FRESH_CLONE) if(grab_ghost_when == CLONER_FRESH_CLONE)
@@ -1,5 +1,7 @@
// Powersink - used to drain station power // Powersink - used to drain station power
GLOBAL_LIST_EMPTY(power_sinks)
/obj/item/powersink /obj/item/powersink
desc = "A nulling power sink which drains energy from electrical systems." desc = "A nulling power sink which drains energy from electrical systems."
name = "power sink" name = "power sink"
@@ -26,6 +28,14 @@
var/obj/structure/cable/attached // the attached cable var/obj/structure/cable/attached // the attached cable
/obj/item/powersink/Initialize()
. = ..()
GLOB.power_sinks += src
/obj/item/powersink/Destroy()
GLOB.power_sinks -= src
. = ..()
/obj/item/powersink/update_icon_state() /obj/item/powersink/update_icon_state()
icon_state = "powersink[mode == OPERATING]" icon_state = "powersink[mode == OPERATING]"
+12
View File
@@ -463,6 +463,16 @@
hitsound = 'sound/weapons/rapierhit.ogg' hitsound = 'sound/weapons/rapierhit.ogg'
var/possessed = FALSE var/possessed = FALSE
/obj/item/nullrod/scythe/talking/process()
for(var/mob/living/simple_animal/shade/S in contents)
if(S.mind)
return
else
qdel(S)
possessed = FALSE
visible_message("<span class='warning'>The blade makes a short sigh. The spirit within seems to have passed on...</span>")
return PROCESS_KILL
/obj/item/nullrod/scythe/talking/relaymove(mob/user) /obj/item/nullrod/scythe/talking/relaymove(mob/user)
return //stops buckled message spam for the ghost. return //stops buckled message spam for the ghost.
@@ -484,6 +494,8 @@
S.ckey = C.ckey S.ckey = C.ckey
S.status_flags |= GODMODE S.status_flags |= GODMODE
S.language_holder = user.language_holder.copy(S) S.language_holder = user.language_holder.copy(S)
S.AddElement(/datum/element/ghost_role_eligibility)
START_PROCESSING(SSprocessing,src)
var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN) var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN)
if(src && input) if(src && input)
-1
View File
@@ -282,7 +282,6 @@
throwforce = 5 throwforce = 5
stamforce = 25 stamforce = 25
hitcost = 1000 hitcost = 1000
knockdown = FALSE
throw_hit_chance = 10 throw_hit_chance = 10
slot_flags = ITEM_SLOT_BACK slot_flags = ITEM_SLOT_BACK
var/obj/item/assembly/igniter/sparkler var/obj/item/assembly/igniter/sparkler
+1 -1
View File
@@ -55,7 +55,7 @@
var/question = "Would you like to be [group_name]?" var/question = "Would you like to be [group_name]?"
var/list/candidates = pollCandidatesForMobs(question, ROLE_PAI, null, FALSE, 100, bodies) var/list/candidates = pollCandidatesForMobs(question, ROLE_PAI, null, FALSE, 100, bodies)
while(LAZYLEN(candidates) && LAZYLEN(bodies)) while(LAZYLEN(candidates) && LAZYLEN(bodies))
var/mob/dead/observer/C = pick_n_take(candidates) var/mob/C = pick_n_take(candidates)
var/mob/living/body = pick_n_take(bodies) var/mob/living/body = pick_n_take(bodies)
to_chat(body, "Your mob has been taken over by a ghost!") to_chat(body, "Your mob has been taken over by a ghost!")
@@ -220,4 +220,17 @@
/proc/_instantiate_at(thing, location) /proc/_instantiate_at(thing, location)
new thing(location) new thing(location)
/// Locating turfs
/proc/_turf_in_offset(s = usr, x = 0, y = 0, z = 0)
var/turf/T = get_turf(s)
return locate(clamp(T.x + x, 1, world.maxx), clamp(T.y + y, 1, world.maxy), clamp(T.z + z, 1, world.maxz))
/proc/_random_turf_in_range(s = usr, r = 7)
return _turf_in_offset(s, rand(-r, r), rand(-r, r))
/proc/_random_turf_in_view(s = usr, r = 7)
var/list/v = view(s, r)
. = list()
for(var/turf/T in v)
. += T
return pick(.)
@@ -84,9 +84,9 @@ GLOBAL_LIST_EMPTY(antagonists)
/datum/antagonist/proc/replace_banned_player() /datum/antagonist/proc/replace_banned_player()
set waitfor = FALSE set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [name]?", "[name]", null, job_rank, 50, owner.current) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as a [name]?", "[name]", null, job_rank, 50, owner.current)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
to_chat(owner, "Your mob has been taken over by a ghost! Appeal your job ban if you want to avoid this in the future!") to_chat(owner, "Your mob has been taken over by a ghost! Appeal your job ban if you want to avoid this in the future!")
message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(owner.current)]) to replace a jobbaned player.") message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(owner.current)]) to replace a jobbaned player.")
owner.current.ghostize(0) owner.current.ghostize(0)
@@ -248,7 +248,7 @@
if(used || QDELETED(src)) if(used || QDELETED(src))
return return
used = TRUE used = TRUE
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
spawn_antag(C.client, get_turf(src), initial(demon_type.name),user.mind) spawn_antag(C.client, get_turf(src), initial(demon_type.name),user.mind)
to_chat(user, shatter_msg) to_chat(user, shatter_msg)
to_chat(user, veil_msg) to_chat(user, veil_msg)
+1 -1
View File
@@ -169,7 +169,7 @@
B.naut = TRUE //temporary placeholder to prevent creation of more than one per factory. B.naut = TRUE //temporary placeholder to prevent creation of more than one per factory.
to_chat(src, "<span class='notice'>You attempt to produce a blobbernaut.</span>") to_chat(src, "<span class='notice'>You attempt to produce a blobbernaut.</span>")
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as a [blobstrain.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50) //players must answer rapidly var/list/mob/candidates = pollGhostCandidates("Do you want to play as a [blobstrain.name] blobbernaut?", ROLE_BLOB, null, ROLE_BLOB, 50) //players must answer rapidly
if(LAZYLEN(candidates)) //if we got at least one candidate, they're a blobbernaut now. if(LAZYLEN(candidates)) //if we got at least one candidate, they're a blobbernaut now.
B.max_integrity = initial(B.max_integrity) * 0.25 //factories that produced a blobbernaut have much lower health B.max_integrity = initial(B.max_integrity) * 0.25 //factories that produced a blobbernaut have much lower health
B.obj_integrity = min(B.obj_integrity, B.max_integrity) B.obj_integrity = min(B.obj_integrity, B.max_integrity)
@@ -352,9 +352,9 @@
break break
if(!L.client || L.client.is_afk()) if(!L.client || L.client.is_afk())
set waitfor = FALSE set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [L.name], an inactive clock cultist?", ROLE_SERVANT_OF_RATVAR, null, ROLE_SERVANT_OF_RATVAR, 50, L) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as a [L.name], an inactive clock cultist?", ROLE_SERVANT_OF_RATVAR, null, ROLE_SERVANT_OF_RATVAR, 50, L)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
to_chat(L, "<span class='userdanger'>Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form!</span>") to_chat(L, "<span class='userdanger'>Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form!</span>")
message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(L)]) to replace an inactive clock cultist.") message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(L)]) to replace an inactive clock cultist.")
L.ghostize(0) L.ghostize(0)
+2 -2
View File
@@ -569,9 +569,9 @@ structure_check() searches for nearby cultist structures required for the invoca
mob_to_revive.grab_ghost() mob_to_revive.grab_ghost()
if(!mob_to_revive.client || mob_to_revive.client.is_afk()) if(!mob_to_revive.client || mob_to_revive.client.is_afk())
set waitfor = FALSE set waitfor = FALSE
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [mob_to_revive.name], an inactive blood cultist?", ROLE_CULTIST, null, ROLE_CULTIST, 50, mob_to_revive) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as a [mob_to_revive.name], an inactive blood cultist?", ROLE_CULTIST, null, ROLE_CULTIST, 50, mob_to_revive)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
to_chat(mob_to_revive.mind, "Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form.") to_chat(mob_to_revive.mind, "Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form.")
message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(mob_to_revive)]) to replace an AFK player.") message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(mob_to_revive)]) to replace an AFK player.")
mob_to_revive.ghostize(0) mob_to_revive.ghostize(0)
@@ -397,7 +397,7 @@
inert = TRUE inert = TRUE
visible_message("<span class='revenwarning'>[src] settles down and seems lifeless.</span>") visible_message("<span class='revenwarning'>[src] settles down and seems lifeless.</span>")
return return
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
C.transfer_ckey(revenant.key, FALSE) C.transfer_ckey(revenant.key, FALSE)
if(!revenant.key) if(!revenant.key)
qdel(revenant) qdel(revenant)
@@ -127,7 +127,7 @@
. = ..() . = ..()
if (.) if (.)
to_chat(user, "<span class='notice'>The uplink vibrates quietly, connecting to nearby agents...</span>") to_chat(user, "<span class='notice'>The uplink vibrates quietly, connecting to nearby agents...</span>")
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the Contractor Support Unit for [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_CONTRACTOR_SUPPORT) var/list/mob/candidates = pollGhostCandidates("Do you want to play as the Contractor Support Unit for [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_CONTRACTOR_SUPPORT)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/dead/observer/C = pick(candidates)
spawn_contractor_partner(user, C.key) spawn_contractor_partner(user, C.key)
@@ -224,4 +224,4 @@
/obj/item/storage/box/contractor/fulton_extraction/PopulateContents() /obj/item/storage/box/contractor/fulton_extraction/PopulateContents()
new /obj/item/extraction_pack(src) new /obj/item/extraction_pack(src)
new /obj/item/fulton_core(src) new /obj/item/fulton_core(src)
@@ -266,6 +266,7 @@
M.equipOutfit(ctf_gear) M.equipOutfit(ctf_gear)
M.dna.species.punchdamagehigh = 25 M.dna.species.punchdamagehigh = 25
M.dna.species.punchdamagelow = 25 M.dna.species.punchdamagelow = 25
M.AddElement(/datum/element/ghost_role_eligibility)
spawned_mobs += M spawned_mobs += M
/obj/machinery/capture_the_flag/Topic(href, href_list) /obj/machinery/capture_the_flag/Topic(href, href_list)
@@ -127,10 +127,10 @@
if(!current_wizard) if(!current_wizard)
return return
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as Wizard Academy Defender?", ROLE_WIZARD, null, ROLE_WIZARD, 50, current_wizard) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as Wizard Academy Defender?", ROLE_WIZARD, null, ROLE_WIZARD, 50, current_wizard)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Wizard Academy Defender") message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Wizard Academy Defender")
current_wizard.ghostize() // on the off chance braindead defender gets back in current_wizard.ghostize() // on the off chance braindead defender gets back in
C.transfer_ckey(current_wizard, FALSE) C.transfer_ckey(current_wizard, FALSE)
@@ -269,9 +269,9 @@
A.setup_master(user) A.setup_master(user)
servant_mind.transfer_to(H) servant_mind.transfer_to(H)
var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as [user.real_name] Servant?", ROLE_WIZARD, null, ROLE_WIZARD, 50, H) var/list/mob/candidates = pollCandidatesForMob("Do you want to play as [user.real_name] Servant?", ROLE_WIZARD, null, ROLE_WIZARD, 50, H)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Dice Servant") message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Dice Servant")
C.transfer_ckey(H, FALSE) C.transfer_ckey(H, FALSE)
+2 -2
View File
@@ -44,7 +44,7 @@
var/spawned_animals = 0 var/spawned_animals = 0
while(spawned_animals < animals && candidates.len && potential.len) while(spawned_animals < animals && candidates.len && potential.len)
var/mob/living/simple_animal/SA = pick_n_take(potential) var/mob/living/simple_animal/SA = pick_n_take(potential)
var/mob/dead/observer/SG = pick_n_take(candidates) var/mob/SG = pick_n_take(candidates)
spawned_animals++ spawned_animals++
@@ -59,7 +59,7 @@
SA.del_on_death = FALSE SA.del_on_death = FALSE
spawned_mobs += SA spawned_mobs += SA
SA.AddElement(/datum/element/ghost_role_eligibility)
to_chat(SA, "<span class='userdanger'>Hello world!</span>") to_chat(SA, "<span class='userdanger'>Hello world!</span>")
to_chat(SA, "<span class='warning'>Due to freak radiation and/or chemicals \ to_chat(SA, "<span class='warning'>Due to freak radiation and/or chemicals \
and/or lucky chance, you have gained human level intelligence \ and/or lucky chance, you have gained human level intelligence \
@@ -653,6 +653,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return 0 return 0
transfer_ckey(target, FALSE) transfer_ckey(target, FALSE)
target.AddElement(/datum/element/ghost_role_eligibility)
target.faction = list("neutral") target.faction = list("neutral")
return 1 return 1
@@ -707,7 +707,7 @@
/mob/living/carbon/human/wash_cream() /mob/living/carbon/human/wash_cream()
if(creamed) //clean both to prevent a rare bug if(creamed) //clean both to prevent a rare bug
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_lizard")) cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_snout"))
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_human")) cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_human"))
creamed = FALSE creamed = FALSE
@@ -5,10 +5,10 @@
icon_living = "bumbles" icon_living = "bumbles"
icon_dead = "bumbles_dead" icon_dead = "bumbles_dead"
turns_per_move = 1 turns_per_move = 1
response_help = "shoos" response_help = "pets"
response_disarm = "brushes aside" response_disarm = "brushes aside"
response_harm = "squashes" response_harm = "squashes"
speak_emote = list("bzzzs") speak_emote = list("buzzes")
maxHealth = 100 maxHealth = 100
health = 100 health = 100
harm_intent_damage = 1 harm_intent_damage = 1
@@ -20,10 +20,12 @@
mob_size = MOB_SIZE_TINY mob_size = MOB_SIZE_TINY
mob_biotypes = MOB_ORGANIC|MOB_BEAST mob_biotypes = MOB_ORGANIC|MOB_BEAST
gold_core_spawnable = FRIENDLY_SPAWN gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "bzzs" verb_say = "buzzs"
verb_ask = "bzzs inquisitively" verb_ask = "buzzes inquisitively"
verb_exclaim = "bzzs intensely" verb_exclaim = "buzzes intensely"
verb_yell = "bzzs intensely" verb_yell = "buzzes intensely"
emote_see = list("buzzes.", "makes a loud buzz.", "rolls several times.", "buzzes happily.")
speak_chance = 1
/mob/living/simple_animal/pet/bumbles/Initialize() /mob/living/simple_animal/pet/bumbles/Initialize()
. = ..() . = ..()
@@ -44,3 +46,22 @@
/mob/living/simple_animal/pet/bumbles/bee_friendly() /mob/living/simple_animal/pet/bumbles/bee_friendly()
return TRUE //treaty signed at the Beeneeva convention return TRUE //treaty signed at the Beeneeva convention
/mob/living/simple_animal/pet/bumbles/handle_automated_movement()
. = ..()
if(!isturf(loc) || !CHECK_MOBILITY(src, MOBILITY_MOVE) || buckled)
return
if(!resting && prob(1))
emote("me", EMOTE_VISIBLE, pick("curls up on the surface below ", "is looking very sleepy.", "buzzes softly ", "looks around for a flower nap "))
set_resting(TRUE)
else if (resting && prob(1))
emote("me", EMOTE_VISIBLE, pick("wakes up with a smiling buzz.", "rolls upside down before waking up.", "stops resting."))
set_resting(FALSE)
/mob/living/simple_animal/pet/bumbles/update_mobility()
. = ..()
if(stat != DEAD)
if(!CHECK_MOBILITY(src, MOBILITY_STAND))
icon_state = "[icon_living]_rest"
else
icon_state = "[icon_living]"
regenerate_icons()
@@ -161,7 +161,7 @@ While using this makes the system rely on OnFire, it still gives options for tim
INVOKE_ASYNC(src, .proc/arena_checks) INVOKE_ASYNC(src, .proc/arena_checks)
if(TUMOR_INACTIVE) if(TUMOR_INACTIVE)
activity = TUMOR_ACTIVE activity = TUMOR_ACTIVE
var/mob/dead/observer/elitemind = null var/mob/elitemind = null
visible_message("<span class='boldwarning'>[src] begins to convulse. Your instincts tell you to step back.</span>") visible_message("<span class='boldwarning'>[src] begins to convulse. Your instincts tell you to step back.</span>")
activator = user activator = user
if(!boosted) if(!boosted)
+2 -2
View File
@@ -443,10 +443,10 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
var/datum/antagonist/A = M.mind.has_antag_datum(/datum/antagonist/) var/datum/antagonist/A = M.mind.has_antag_datum(/datum/antagonist/)
if(A) if(A)
poll_message = "[poll_message] Status:[A.name]." poll_message = "[poll_message] Status:[A.name]."
var/list/mob/dead/observer/candidates = pollCandidatesForMob(poll_message, ROLE_PAI, null, FALSE, 100, M) var/list/mob/candidates = pollCandidatesForMob(poll_message, ROLE_PAI, null, FALSE, 100, M)
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
to_chat(M, "Your mob has been taken over by a ghost!") to_chat(M, "Your mob has been taken over by a ghost!")
message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(M)])") message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(M)])")
M.ghostize(FALSE, TRUE) M.ghostize(FALSE, TRUE)
@@ -339,7 +339,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
else else
// Pass all the gas related code an empty gas container // Pass all the gas related code an empty gas container
removed = new() removed = new()
damage = min(damage_archived + (DAMAGE_HARDCAP * explosion_point),damage)
damage_archived = damage damage_archived = damage
if(!removed || !removed.total_moles() || isspaceturf(T)) //we're in space or there is no gas to process if(!removed || !removed.total_moles() || isspaceturf(T)) //we're in space or there is no gas to process
if(takes_damage) if(takes_damage)
@@ -680,7 +680,7 @@
var/list/candidates = pollCandidatesForMob("Do you want to play as [SM.name]?", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, SM, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm var/list/candidates = pollCandidatesForMob("Do you want to play as [SM.name]?", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, SM, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm
if(LAZYLEN(candidates)) if(LAZYLEN(candidates))
var/mob/dead/observer/C = pick(candidates) var/mob/C = pick(candidates)
C.transfer_ckey(SM, FALSE) C.transfer_ckey(SM, FALSE)
SM.mind.enslave_mind_to_creator(user) SM.mind.enslave_mind_to_creator(user)
SM.sentience_act() SM.sentience_act()
@@ -0,0 +1,4 @@
author: "Xantholne"
delete-after: True
changes:
- rscadd: "Bumbles is now actually in every station's hydroponics."
@@ -0,0 +1,5 @@
author: "Putnam3145"
delete-after: True
changes:
- rscadd: "CTF spawns, random animals and possessed blades can now be pinged for ghost roles."
- bugfix: "A bunch of polls now work with ghost role eligible non-observers."
@@ -0,0 +1,4 @@
author: "kevinz000"
delete-after: True
changes:
- balance: "stunprods knockdown again."
@@ -0,0 +1,4 @@
author: "Detective-Google"
delete-after: True
changes:
- balance: "Medical no longer spawns with syringe guns, Medical now spawns with medidart guns."
@@ -0,0 +1,4 @@
author: "Putnam3145"
delete-after: True
changes:
- bugfix: "Removes superfluous line in supermatter processing."
@@ -0,0 +1,4 @@
author: "Putnam3145"
delete-after: True
changes:
- code_imp: "Power sink objective processing now makes sense."
@@ -0,0 +1,4 @@
author: "Xantholne"
delete-after: True
changes:
- bugfix: "Bumbles will now actually rest, sit up, and buzz"
@@ -0,0 +1,4 @@
author: "Ghommie"
delete-after: True
changes:
- bugfix: "Fixed permanent slapstick comedy pie'd overlay for snouted humanoids."
@@ -0,0 +1,7 @@
author: "dapnee"
delete-after: True
changes:
- rscadd: "Robotic's APC, a few missing buttons (bridge shutters and crematorium), paramedic has spawn locations now, two rapid cable deployers to engineering"
- tweak: "Renamed some doors and edited engineering to be a bit more open in one spot"
- bugfix: "a few APCs with bad area tags, access on maintenance doors fixed, engine APC is now connected to the grid instead of power created by the engine"
- rscdel: "the two syringe guns in medical were removed"
@@ -0,0 +1,5 @@
author: "dapnee"
delete-after: True
changes:
- rscadd: "couple gas masks around atmos"
- bugfix: "direction on turbine plasma pressure tank, cloning actually has a cloning console now"