Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into tgui-alerts-and-what-not
@@ -5636,6 +5636,7 @@
|
||||
"akL" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/meter,
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"akM" = (
|
||||
@@ -7654,14 +7655,6 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/power/apc{
|
||||
areastring = "/area/commons/fitness";
|
||||
name = "Fitness Room APC";
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore/secondary)
|
||||
"apv" = (
|
||||
@@ -11734,6 +11727,14 @@
|
||||
/area/commons/dorms)
|
||||
"aAo" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/power/apc{
|
||||
areastring = "/area/commons/fitness";
|
||||
name = "Fitness Room APC";
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/commons/dorms)
|
||||
"aAp" = (
|
||||
@@ -11743,6 +11744,9 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/commons/dorms)
|
||||
"aAr" = (
|
||||
@@ -13044,6 +13048,10 @@
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/commons/toilet)
|
||||
"aDW" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/cargo/warehouse)
|
||||
"aDZ" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -16620,10 +16628,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"aOg" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"aOh" = (
|
||||
@@ -21423,10 +21431,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/exit)
|
||||
"baF" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"baG" = (
|
||||
@@ -23427,8 +23435,8 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/exit)
|
||||
"bgg" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/exit)
|
||||
"bgh" = (
|
||||
@@ -25073,11 +25081,11 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/research)
|
||||
"bkj" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/machinery/airalarm{
|
||||
pixel_y = 24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/cargo/storage)
|
||||
"bkk" = (
|
||||
@@ -25803,6 +25811,7 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"blR" = (
|
||||
@@ -33256,11 +33265,7 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/science/storage)
|
||||
"bDg" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
lootcount = 3;
|
||||
name = "3maintenance loot spawner"
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard)
|
||||
"bDh" = (
|
||||
@@ -35075,6 +35080,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"bHp" = (
|
||||
@@ -46846,8 +46852,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"cmo" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"cmq" = (
|
||||
@@ -50917,6 +50922,7 @@
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"cBE" = (
|
||||
@@ -51909,6 +51915,13 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"cPO" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"cQw" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -52419,7 +52432,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engineering/atmos)
|
||||
"dbb" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{
|
||||
dir = 1
|
||||
},
|
||||
@@ -52866,6 +52878,7 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"dPs" = (
|
||||
@@ -55457,6 +55470,10 @@
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/commons/dorms)
|
||||
"hmT" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"hnc" = (
|
||||
/obj/structure/chair/pew/left{
|
||||
dir = 4
|
||||
@@ -55579,6 +55596,10 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/green/visible,
|
||||
/turf/open/floor/plating,
|
||||
/area/engineering/atmos)
|
||||
"hyY" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/fore)
|
||||
"hzs" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/plate_press,
|
||||
@@ -56988,6 +57009,13 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"jNT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"jOB" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -57171,6 +57199,13 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/brig)
|
||||
"kbO" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/fore)
|
||||
"kcx" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/machinery/atmospherics/pipe/simple/dark/visible,
|
||||
@@ -59356,6 +59391,7 @@
|
||||
/obj/structure/sign/poster/official/fruit_bowl{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel/white/corner{
|
||||
dir = 1
|
||||
},
|
||||
@@ -59640,11 +59676,7 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/prison/cells)
|
||||
"nkP" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
lootcount = 8;
|
||||
name = "8maintenance loot spawner"
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"nmZ" = (
|
||||
@@ -59821,6 +59853,14 @@
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"nzX" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
lootcount = 8;
|
||||
name = "8maintenance loot spawner"
|
||||
},
|
||||
/obj/structure/rack,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"nBI" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -60155,6 +60195,10 @@
|
||||
/obj/machinery/vending/kink,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/bar)
|
||||
"odV" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore/secondary)
|
||||
"ofj" = (
|
||||
/obj/machinery/smartfridge/organ/preloaded,
|
||||
/turf/closed/wall,
|
||||
@@ -60729,6 +60773,10 @@
|
||||
"pgf" = (
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/commons/dorms)
|
||||
"pgl" = (
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/port)
|
||||
"pgn" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
@@ -62140,6 +62188,11 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/processing)
|
||||
"rla" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"rmN" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
@@ -64398,6 +64451,9 @@
|
||||
/obj/structure/disposalpipe/sorting/mail{
|
||||
sortType = 26
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/commons/dorms)
|
||||
"uys" = (
|
||||
@@ -65387,6 +65443,10 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/dark/visible,
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"vPd" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"vPs" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/structure/cable{
|
||||
@@ -65577,6 +65637,13 @@
|
||||
/obj/item/assembly/signaler,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/bar)
|
||||
"wgo" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"wgu" = (
|
||||
/obj/machinery/door/airlock/maintenance{
|
||||
name = "Permabrig Maintenance";
|
||||
@@ -65594,6 +65661,11 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/commons/fitness/pool)
|
||||
"wiR" = (
|
||||
/obj/effect/landmark/event_spawn,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"wjd" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/structure/table,
|
||||
@@ -77093,7 +77165,7 @@ awW
|
||||
awZ
|
||||
aym
|
||||
azz
|
||||
aAF
|
||||
wgo
|
||||
awW
|
||||
aaa
|
||||
aaa
|
||||
@@ -77326,7 +77398,7 @@ apJ
|
||||
awZ
|
||||
aIK
|
||||
ayl
|
||||
aAE
|
||||
rla
|
||||
awW
|
||||
aaa
|
||||
aaa
|
||||
@@ -82463,7 +82535,7 @@ cCs
|
||||
ann
|
||||
ann
|
||||
hCn
|
||||
arH
|
||||
cwS
|
||||
ayh
|
||||
azi
|
||||
aAx
|
||||
@@ -82481,7 +82553,7 @@ aPz
|
||||
aPz
|
||||
aPz
|
||||
aPz
|
||||
aSg
|
||||
hmT
|
||||
aWj
|
||||
aXP
|
||||
aZr
|
||||
@@ -83485,7 +83557,7 @@ anH
|
||||
oCF
|
||||
amC
|
||||
anJ
|
||||
aFJ
|
||||
wiR
|
||||
alU
|
||||
axK
|
||||
azG
|
||||
@@ -84803,7 +84875,7 @@ aQN
|
||||
fRe
|
||||
qSo
|
||||
aPA
|
||||
bgt
|
||||
hmT
|
||||
bhS
|
||||
bjk
|
||||
aPz
|
||||
@@ -85290,7 +85362,7 @@ alU
|
||||
alU
|
||||
alU
|
||||
alU
|
||||
ntt
|
||||
cPO
|
||||
amC
|
||||
avW
|
||||
gYo
|
||||
@@ -87587,7 +87659,7 @@ aaa
|
||||
ali
|
||||
aoo
|
||||
avY
|
||||
amC
|
||||
vPd
|
||||
gsM
|
||||
sCa
|
||||
aoX
|
||||
@@ -88179,7 +88251,7 @@ bCq
|
||||
bVE
|
||||
bWz
|
||||
bHE
|
||||
bHE
|
||||
nkP
|
||||
bLu
|
||||
bCq
|
||||
bLu
|
||||
@@ -88909,7 +88981,7 @@ aTJ
|
||||
aPK
|
||||
aWA
|
||||
aWC
|
||||
baS
|
||||
aDW
|
||||
aZI
|
||||
baS
|
||||
cCn
|
||||
@@ -89930,7 +90002,7 @@ aKc
|
||||
aLp
|
||||
aMV
|
||||
aOy
|
||||
aLE
|
||||
pgl
|
||||
aPQ
|
||||
aRV
|
||||
aSW
|
||||
@@ -90481,7 +90553,7 @@ bHD
|
||||
bJe
|
||||
bCq
|
||||
nkP
|
||||
bHE
|
||||
nzX
|
||||
bHE
|
||||
bHE
|
||||
bHE
|
||||
@@ -91963,7 +92035,7 @@ nbY
|
||||
aiX
|
||||
iRj
|
||||
anz
|
||||
aov
|
||||
kbO
|
||||
cCi
|
||||
apU
|
||||
ajd
|
||||
@@ -101722,7 +101794,7 @@ uhm
|
||||
ahn
|
||||
aiA
|
||||
ahn
|
||||
grc
|
||||
odV
|
||||
anE
|
||||
aod
|
||||
ahn
|
||||
@@ -107955,7 +108027,7 @@ bFH
|
||||
bHb
|
||||
bIw
|
||||
bBN
|
||||
bKT
|
||||
jNT
|
||||
bMb
|
||||
bNd
|
||||
bOt
|
||||
@@ -110989,7 +111061,7 @@ alP
|
||||
anf
|
||||
anf
|
||||
alP
|
||||
anf
|
||||
hyY
|
||||
anf
|
||||
apE
|
||||
anf
|
||||
@@ -115438,7 +115510,7 @@ clt
|
||||
cQw
|
||||
cCt
|
||||
cOe
|
||||
cOe
|
||||
cmo
|
||||
cNW
|
||||
aaa
|
||||
aaS
|
||||
@@ -116696,7 +116768,7 @@ bKc
|
||||
cNW
|
||||
bMB
|
||||
bNA
|
||||
cOe
|
||||
cmo
|
||||
bSl
|
||||
bUq
|
||||
flc
|
||||
|
||||
@@ -3715,6 +3715,7 @@
|
||||
"alM" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard/fore)
|
||||
"alN" = (
|
||||
@@ -8243,6 +8244,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/fore)
|
||||
"aCE" = (
|
||||
@@ -13713,8 +13715,8 @@
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "o2=0.01;n2=0.01";
|
||||
luminosity = 2;
|
||||
initial_temperature = 2.7
|
||||
initial_temperature = 2.7;
|
||||
luminosity = 2
|
||||
},
|
||||
/area/security/prison)
|
||||
"ban" = (
|
||||
@@ -14376,8 +14378,8 @@
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "o2=0.01;n2=0.01";
|
||||
luminosity = 2;
|
||||
initial_temperature = 2.7
|
||||
initial_temperature = 2.7;
|
||||
luminosity = 2
|
||||
},
|
||||
/area/security/prison)
|
||||
"bdo" = (
|
||||
@@ -31965,6 +31967,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard)
|
||||
"clv" = (
|
||||
@@ -35124,6 +35127,7 @@
|
||||
"cuI" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard)
|
||||
"cuJ" = (
|
||||
@@ -36310,6 +36314,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port)
|
||||
"cCK" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"cCM" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -38007,6 +38017,7 @@
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"cLM" = (
|
||||
@@ -38752,6 +38763,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard/aft)
|
||||
"cNJ" = (
|
||||
@@ -57355,6 +57367,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"dAv" = (
|
||||
@@ -59204,6 +59217,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel{
|
||||
heat_capacity = 1e+006
|
||||
},
|
||||
@@ -62652,6 +62666,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/aft)
|
||||
"dLj" = (
|
||||
@@ -62702,6 +62717,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard/aft)
|
||||
"dLn" = (
|
||||
@@ -63084,6 +63100,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel{
|
||||
heat_capacity = 1e+006
|
||||
},
|
||||
@@ -79161,6 +79178,10 @@
|
||||
"gWu" = (
|
||||
/turf/closed/wall,
|
||||
/area/cargo/warehouse)
|
||||
"gWF" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"gXc" = (
|
||||
/obj/structure/sign/painting/library{
|
||||
pixel_y = 32
|
||||
@@ -95240,6 +95261,11 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/service/library/abandoned)
|
||||
"mpB" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"mqb" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -97242,6 +97268,17 @@
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/circuit)
|
||||
"mYR" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard/aft)
|
||||
"mYT" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/closet/cardboard,
|
||||
@@ -109909,6 +109946,7 @@
|
||||
"rCr" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/cargo/warehouse)
|
||||
"rCv" = (
|
||||
@@ -109944,6 +109982,11 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/cargo/storage)
|
||||
"rCR" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"rDp" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/structure/cable/white{
|
||||
@@ -114162,6 +114205,13 @@
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/commons/vacant_room/office)
|
||||
"sWQ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"sWY" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/cable/white{
|
||||
@@ -119197,6 +119247,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/command/heads_quarters/hos)
|
||||
"uIT" = (
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"uJd" = (
|
||||
/obj/item/kirbyplants/random,
|
||||
/obj/item/radio/intercom{
|
||||
@@ -128561,6 +128615,21 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/cargo/storage)
|
||||
"yia" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/loot_pile/maint,
|
||||
/turf/open/floor/plasteel{
|
||||
heat_capacity = 1e+006
|
||||
},
|
||||
/area/maintenance/starboard/aft)
|
||||
"yiq" = (
|
||||
/obj/structure/reflector/single/anchored{
|
||||
dir = 6
|
||||
@@ -150094,7 +150163,7 @@ opi
|
||||
xbs
|
||||
qjg
|
||||
qjg
|
||||
ceb
|
||||
mpB
|
||||
cLv
|
||||
cMQ
|
||||
cOq
|
||||
@@ -157015,7 +157084,7 @@ caE
|
||||
cdY
|
||||
cfR
|
||||
chI
|
||||
ceb
|
||||
mpB
|
||||
cfU
|
||||
cmi
|
||||
cnI
|
||||
@@ -158117,7 +158186,7 @@ dOl
|
||||
ean
|
||||
dLW
|
||||
dZg
|
||||
dLW
|
||||
rCR
|
||||
ecv
|
||||
edf
|
||||
edl
|
||||
@@ -158756,7 +158825,7 @@ lxH
|
||||
odN
|
||||
quN
|
||||
asF
|
||||
alg
|
||||
gWF
|
||||
avq
|
||||
awo
|
||||
axJ
|
||||
@@ -159295,7 +159364,7 @@ qOV
|
||||
ary
|
||||
aKj
|
||||
bbQ
|
||||
alg
|
||||
gWF
|
||||
beK
|
||||
bgj
|
||||
alf
|
||||
@@ -159345,7 +159414,7 @@ ojB
|
||||
roP
|
||||
uhj
|
||||
cCO
|
||||
cea
|
||||
uIT
|
||||
cJZ
|
||||
cLI
|
||||
cNg
|
||||
@@ -160932,7 +161001,7 @@ dPG
|
||||
dQz
|
||||
dRy
|
||||
dSx
|
||||
dOS
|
||||
cCK
|
||||
dUg
|
||||
dUX
|
||||
dVL
|
||||
@@ -164529,7 +164598,7 @@ dOY
|
||||
dPR
|
||||
dfm
|
||||
dRK
|
||||
dOl
|
||||
sWQ
|
||||
pPz
|
||||
sBt
|
||||
vSo
|
||||
@@ -180428,7 +180497,7 @@ hYQ
|
||||
jjL
|
||||
pzu
|
||||
fzU
|
||||
cYj
|
||||
yia
|
||||
cZV
|
||||
dbC
|
||||
ddr
|
||||
@@ -181206,7 +181275,7 @@ ddt
|
||||
ddt
|
||||
aaB
|
||||
dbD
|
||||
diW
|
||||
mYR
|
||||
aaR
|
||||
dbA
|
||||
dnU
|
||||
|
||||
@@ -95,3 +95,6 @@
|
||||
|
||||
#define STICKYBAN_DB_CACHE_TIME 10 SECONDS
|
||||
#define STICKYBAN_ROGUE_CHECK_TIME 5
|
||||
|
||||
/// for asay pings, this is the index in the return list for [/proc/check_admin_pings] that contains the message modified with underlines for the spotted names
|
||||
#define ADMINSAY_PING_UNDERLINE_NAME_INDEX "!underlined_names"
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
var/image/item_overlay = image(holding)
|
||||
item_overlay.alpha = 92
|
||||
|
||||
if(!user.can_equip(holding, slot_id, TRUE))
|
||||
if(!user.can_equip(holding, slot_id, TRUE, TRUE))
|
||||
item_overlay.color = "#FF0000"
|
||||
else
|
||||
item_overlay.color = "#00ff00"
|
||||
|
||||
@@ -88,3 +88,6 @@
|
||||
/datum/config_entry/number/rounds_until_hard_restart
|
||||
config_entry_value = -1
|
||||
min_val = 0
|
||||
|
||||
/datum/config_entry/string/force_gamemode
|
||||
config_entry_value = null
|
||||
|
||||
@@ -71,6 +71,9 @@ SUBSYSTEM_DEF(ticker)
|
||||
var/station_integrity = 100 // stored at roundend for use in some antag goals
|
||||
var/emergency_reason
|
||||
|
||||
/// If the gamemode fails to be run too many times, we swap to a preset gamemode, this should give admins time to set their preferred one
|
||||
var/emergency_swap = 0
|
||||
|
||||
/datum/controller/subsystem/ticker/Initialize(timeofday)
|
||||
load_mode()
|
||||
|
||||
@@ -179,7 +182,11 @@ SUBSYSTEM_DEF(ticker)
|
||||
timeLeft = 0
|
||||
|
||||
if(!modevoted)
|
||||
send_gamemode_vote()
|
||||
var/forcemode = CONFIG_GET(string/force_gamemode)
|
||||
if(forcemode)
|
||||
force_gamemode(forcemode)
|
||||
if(!forcemode || (GLOB.master_mode == "dynamic" && CONFIG_GET(flag/dynamic_voting)))
|
||||
send_gamemode_vote()
|
||||
//countdown
|
||||
if(timeLeft < 0)
|
||||
return
|
||||
@@ -227,13 +234,15 @@ SUBSYSTEM_DEF(ticker)
|
||||
/datum/controller/subsystem/ticker/proc/setup()
|
||||
to_chat(world, "<span class='boldannounce'>Starting game...</span>")
|
||||
var/init_start = world.timeofday
|
||||
GLOB.master_mode = "dynamic"
|
||||
if(emergency_swap >= 10)
|
||||
force_gamemode("extended") // If everything fails extended does not have hard requirements for starting, could be changed if needed.
|
||||
mode = config.pick_mode(GLOB.master_mode)
|
||||
if(!mode.can_start())
|
||||
to_chat(world, "<B>Unable to start [mode.name].</B> Not enough players, [mode.required_players] players and [mode.required_enemies] eligible antagonists needed. Reverting to pre-game lobby.")
|
||||
qdel(mode)
|
||||
mode = null
|
||||
SSjob.ResetOccupations()
|
||||
emergency_swap++
|
||||
return 0
|
||||
|
||||
CHECK_TICK
|
||||
@@ -252,6 +261,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
QDEL_NULL(mode)
|
||||
to_chat(world, "<B>Error setting up [GLOB.master_mode].</B> Reverting to pre-game lobby.")
|
||||
SSjob.ResetOccupations()
|
||||
emergency_swap++
|
||||
return 0
|
||||
else
|
||||
message_admins("<span class='notice'>DEBUG: Bypassing prestart checks...</span>")
|
||||
@@ -305,6 +315,19 @@ SUBSYSTEM_DEF(ticker)
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/force_gamemode(gamemode)
|
||||
if(gamemode)
|
||||
if(!modevoted)
|
||||
modevoted = TRUE
|
||||
if(gamemode in config.modes)
|
||||
GLOB.master_mode = gamemode
|
||||
SSticker.save_mode(gamemode)
|
||||
message_admins("The gamemode has been set to [gamemode].")
|
||||
else
|
||||
GLOB.master_mode = "extended"
|
||||
SSticker.save_mode("extended")
|
||||
message_admins("force_gamemode proc received an invalid gamemode, defaulting to extended.")
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/PostSetup()
|
||||
set waitfor = FALSE
|
||||
mode.post_setup()
|
||||
@@ -618,7 +641,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
/datum/controller/subsystem/ticker/proc/load_mode()
|
||||
var/mode = trim(file2text("data/mode.txt"))
|
||||
if(mode)
|
||||
GLOB.master_mode = "dynamic"
|
||||
GLOB.master_mode = mode
|
||||
else
|
||||
GLOB.master_mode = GLOB.dynamic_forced_extended
|
||||
log_game("Saved mode is '[GLOB.master_mode]'")
|
||||
|
||||
@@ -169,14 +169,21 @@
|
||||
/obj/item/clothing/mask/gas/mime/sexy,
|
||||
/obj/item/clothing/under/rank/civilian/mime/sexy)
|
||||
|
||||
/obj/effect/spawner/bundle/crate
|
||||
var/pickone = FALSE
|
||||
|
||||
/obj/effect/spawner/bundle/crate/Initialize(mapload)
|
||||
SHOULD_CALL_PARENT(FALSE)
|
||||
if(items && items.len)
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/structure/closet/LC = locate(/obj/structure/closet) in T
|
||||
if(LC)
|
||||
for(var/path in items)
|
||||
new path(LC)
|
||||
if(pickone)
|
||||
var/tospawn = pick(items)
|
||||
new tospawn(LC)
|
||||
else
|
||||
for(var/path in items)
|
||||
new path(LC)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/effect/spawner/bundle/crate/mosin
|
||||
@@ -192,3 +199,29 @@
|
||||
/obj/item/gun/ballistic/automatic/surplus,
|
||||
/obj/item/ammo_box/magazine/m10mm/rifle
|
||||
)
|
||||
|
||||
/obj/effect/spawner/bundle/crate/levergun
|
||||
name = "lever-action rifle spawner"
|
||||
items = list(
|
||||
/obj/item/gun/ballistic/shotgun/leveraction,
|
||||
/obj/item/ammo_box/c38/pouch
|
||||
)
|
||||
|
||||
/obj/effect/spawner/bundle/crate/cowboyhat
|
||||
name = "cowboy hat spawner"
|
||||
pickone = TRUE
|
||||
items = list(
|
||||
/obj/item/clothing/head/cowboyhat,
|
||||
/obj/item/clothing/head/cowboyhat/black,
|
||||
/obj/item/clothing/head/cowboyhat/white,
|
||||
/obj/item/clothing/head/cowboyhat/pink,
|
||||
/obj/item/clothing/head/cowboyhat/sec
|
||||
)
|
||||
|
||||
/obj/effect/spawner/bundle/crate/cowboyboots
|
||||
name = "cowboy boots spawner"
|
||||
pickone = TRUE
|
||||
items = list(
|
||||
/obj/item/clothing/shoes/cowboyboots,
|
||||
/obj/item/clothing/shoes/cowboyboots/black
|
||||
)
|
||||
|
||||
@@ -300,6 +300,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
desc = "A Xeno Filtered brand cigarette."
|
||||
list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4)
|
||||
|
||||
/obj/item/clothing/mask/cigarette/dart
|
||||
name = "fat dart"
|
||||
desc = "Chuff back this fat dart"
|
||||
icon_state = "bigoff"
|
||||
icon_on = "bigon"
|
||||
icon_off = "bigoff"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
smoketime = 10000
|
||||
chem_volume = 50
|
||||
list_reagents = list(/datum/reagent/drug/nicotine = 15)
|
||||
|
||||
// Rollies.
|
||||
|
||||
/obj/item/clothing/mask/cigarette/rollie
|
||||
|
||||
@@ -161,13 +161,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked
|
||||
var/initiator_ckey
|
||||
var/initiator_key_name
|
||||
var/heard_by_no_admins = FALSE
|
||||
|
||||
var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log()
|
||||
|
||||
var/obj/effect/statclick/ahelp/statclick
|
||||
|
||||
var/static/ticket_counter = 0
|
||||
/// did we send "answered" to irc yet
|
||||
var/answered = FALSE
|
||||
|
||||
//call this on its own to create a ticket, don't manually assign current_ticket
|
||||
//msg is the title of the ticket: usually the ahelp text
|
||||
@@ -209,7 +210,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.")
|
||||
if(admin_number_present <= 0)
|
||||
to_chat(C, "<span class='notice'>No active admins are online, your adminhelp was sent to the admin irc.</span>")
|
||||
heard_by_no_admins = TRUE
|
||||
else
|
||||
// citadel edit: send anyways
|
||||
send2adminchat(initiator_ckey, "Ticket #[id]: [name] - Heard by [admin_number_present] admins present with +BAN.")
|
||||
@@ -223,9 +223,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
return ..()
|
||||
|
||||
/datum/admin_help/proc/AddInteraction(formatted_message)
|
||||
// if(heard_by_no_admins usr && usr.ckey != initiator_ckey)
|
||||
// heard_by_no_admins = FALSE
|
||||
if(usr && (usr.ckey != initiator_ckey))
|
||||
if(usr && (usr.ckey != initiator_ckey) && !answered)
|
||||
answered = TRUE
|
||||
send2adminchat(initiator_ckey, "Ticket #[id]: Answered by [key_name(usr)]")
|
||||
_interactions += "[TIME_STAMP("hh:mm:ss", FALSE)]: [formatted_message]"
|
||||
|
||||
@@ -732,3 +731,34 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
return founds
|
||||
|
||||
return msg
|
||||
|
||||
/**
|
||||
* Checks a given message to see if any of the words contain an active admin's ckey with an @ before it
|
||||
*
|
||||
* Returns nothing if no pings are found, otherwise returns an associative list with ckey -> client
|
||||
* Also modifies msg to underline the pings, then stores them in the key [ADMINSAY_PING_UNDERLINE_NAME_INDEX] for returning
|
||||
*
|
||||
* Arguments:
|
||||
* * msg - the message being scanned
|
||||
*/
|
||||
/proc/check_admin_pings(msg)
|
||||
//explode the input msg into a list
|
||||
var/list/msglist = splittext(msg, " ")
|
||||
var/list/admins_to_ping = list()
|
||||
|
||||
var/i = 0
|
||||
for(var/word in msglist)
|
||||
i++
|
||||
if(!length(word))
|
||||
continue
|
||||
if(word[1] != "@")
|
||||
continue
|
||||
var/ckey_check = lowertext(copytext(word, 2))
|
||||
var/client/client_check = GLOB.directory[ckey_check]
|
||||
if(client_check?.holder)
|
||||
msglist[i] = "<u>[word]</u>"
|
||||
admins_to_ping[ckey_check] = client_check
|
||||
|
||||
if(length(admins_to_ping))
|
||||
admins_to_ping[ADMINSAY_PING_UNDERLINE_NAME_INDEX] = jointext(msglist, " ") // without tuples, we must make do!
|
||||
return admins_to_ping
|
||||
|
||||
@@ -8,6 +8,19 @@
|
||||
msg = copytext_char(sanitize(msg), 1, MAX_MESSAGE_LEN)
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
var/list/pinged_admin_clients = check_admin_pings(msg)
|
||||
if(length(pinged_admin_clients) && pinged_admin_clients[ADMINSAY_PING_UNDERLINE_NAME_INDEX])
|
||||
msg = pinged_admin_clients[ADMINSAY_PING_UNDERLINE_NAME_INDEX]
|
||||
pinged_admin_clients -= ADMINSAY_PING_UNDERLINE_NAME_INDEX
|
||||
|
||||
for(var/iter_ckey in pinged_admin_clients)
|
||||
var/client/iter_admin_client = pinged_admin_clients[iter_ckey]
|
||||
if(!iter_admin_client?.holder)
|
||||
continue
|
||||
window_flash(iter_admin_client)
|
||||
SEND_SOUND(iter_admin_client.mob, sound('sound/misc/bloop.ogg'))
|
||||
|
||||
msg = emoji_parse(msg)
|
||||
mob.log_talk(msg, LOG_ASAY)
|
||||
|
||||
|
||||
@@ -145,6 +145,9 @@
|
||||
else
|
||||
to_chat(src,"<span class='userlove'>You can't make that genital [picked_organ.aroused_state ? "unaroused" : "aroused"]!</span>")
|
||||
picked_organ.update_appearance()
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/human = src
|
||||
human.update_genitals()
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -183,6 +183,29 @@
|
||||
var/item = pick(contains)
|
||||
new item(C)
|
||||
|
||||
/datum/supply_pack/security/armory/frontier
|
||||
name = "Old West Surplus Crate"
|
||||
desc = "Do you have a fauna problem? Do you want to live out your frontier-taming fantasies on a state-of-the-art plasma research and mining station? Do you want to pretend you lived in the Old West of Earthen fame? Well, this box - and its many hats - may be for you."
|
||||
cost = 7500
|
||||
contraband = TRUE
|
||||
contains = list(/obj/effect/spawner/bundle/crate/cowboyhat,
|
||||
/obj/effect/spawner/bundle/crate/cowboyboots,
|
||||
/obj/item/clothing/under/pants/chaps,
|
||||
/obj/item/reagent_containers/food/snacks/butterbiscuit,
|
||||
/obj/item/reagent_containers/food/snacks/butterbiscuit,
|
||||
/obj/item/reagent_containers/food/snacks/plumphelmetbiscuit,
|
||||
/obj/item/reagent_containers/food/snacks/plumphelmetbiscuit,
|
||||
/obj/item/ammo_box/c38/pouch,
|
||||
/obj/item/ammo_box/c38/pouch,
|
||||
/obj/item/ammo_box/c38/pouch,
|
||||
/obj/effect/spawner/bundle/crate/levergun
|
||||
)
|
||||
|
||||
/datum/supply_pack/security/armory/frontier/fill(obj/structure/closet/crate/C)
|
||||
for(var/i in 1 to 5)
|
||||
var/item = pick(contains)
|
||||
new item(C)
|
||||
|
||||
/datum/supply_pack/security/armory/swat
|
||||
name = "SWAT Crate"
|
||||
desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open."
|
||||
|
||||
@@ -27,9 +27,12 @@
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(slot == ITEM_SLOT_GLOVES)
|
||||
var/mob/living/carbon/human/H = user
|
||||
tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance)
|
||||
switch(slot) // I didn't like how it looked
|
||||
if(SLOT_GLOVES)
|
||||
var/mob/living/carbon/human/H = user
|
||||
tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance)
|
||||
else
|
||||
qdel(tackler) // Only wearing it!
|
||||
|
||||
/obj/item/clothing/gloves/tackler/dropped(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
#define MINER_DASH_RANGE 4
|
||||
|
||||
/*
|
||||
|
||||
BLOOD-DRUNK MINER
|
||||
|
||||
Effectively a highly aggressive miner, the blood-drunk miner has very few attacks but compensates by being highly aggressive.
|
||||
|
||||
The blood-drunk miner's attacks are as follows
|
||||
- If not in KA range, it will rapidly dash at its target
|
||||
- If in KA range, it will fire its kinetic accelerator
|
||||
@@ -13,11 +10,8 @@ The blood-drunk miner's attacks are as follows
|
||||
- After any of these attacks, may transform its cleaving saw:
|
||||
Untransformed, it attacks very rapidly for smaller amounts of damage
|
||||
Transformed, it attacks at normal speed for higher damage and cleaves enemies hit
|
||||
|
||||
When the blood-drunk miner dies, it leaves behind the cleaving saw it was using and its kinetic accelerator.
|
||||
|
||||
Difficulty: Medium
|
||||
|
||||
*/
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner
|
||||
@@ -37,7 +31,7 @@ Difficulty: Medium
|
||||
move_to_delay = 2
|
||||
projectiletype = /obj/item/projectile/kinetic/miner
|
||||
projectilesound = 'sound/weapons/kenetic_accel.ogg'
|
||||
ranged = 1
|
||||
ranged = TRUE
|
||||
ranged_cooldown_time = 16
|
||||
pixel_x = -16
|
||||
crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka, /obj/item/crusher_trophy/miner_eye, /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe,
|
||||
@@ -55,18 +49,56 @@ Difficulty: Medium
|
||||
var/dashing = FALSE
|
||||
var/dash_cooldown = 15
|
||||
var/guidance = FALSE
|
||||
var/transform_stop_attack = FALSE // stops the blood drunk miner from attacking after transforming his weapon until the next attack chain
|
||||
deathmessage = "falls to the ground, decaying into glowing particles."
|
||||
death_sound = "bodyfall"
|
||||
|
||||
deathsound = "bodyfall"
|
||||
footstep_type = FOOTSTEP_MOB_HEAVY
|
||||
attack_action_types = list(/datum/action/innate/megafauna_attack/dash,
|
||||
/datum/action/innate/megafauna_attack/kinetic_accelerator,
|
||||
/datum/action/innate/megafauna_attack/transform_weapon)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance
|
||||
guidance = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget()
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize()
|
||||
. = ..()
|
||||
if(. && prob(12))
|
||||
INVOKE_ASYNC(src, .proc/dash)
|
||||
miner_saw = new(src)
|
||||
|
||||
/datum/action/innate/megafauna_attack/dash
|
||||
name = "Dash To Target"
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "sniper_zoom"
|
||||
chosen_message = "<span class='colossus'>You are now dashing to your target.</span>"
|
||||
chosen_attack_num = 1
|
||||
|
||||
/datum/action/innate/megafauna_attack/kinetic_accelerator
|
||||
name = "Fire Kinetic Accelerator"
|
||||
icon_icon = 'icons/obj/guns/energy.dmi'
|
||||
button_icon_state = "kineticgun"
|
||||
chosen_message = "<span class='colossus'>You are now shooting your kinetic accelerator.</span>"
|
||||
chosen_attack_num = 2
|
||||
|
||||
/datum/action/innate/megafauna_attack/transform_weapon
|
||||
name = "Transform Weapon"
|
||||
icon_icon = 'icons/obj/lavaland/artefacts.dmi'
|
||||
button_icon_state = "cleaving_saw"
|
||||
chosen_message = "<span class='colossus'>You are now transforming your weapon.</span>"
|
||||
chosen_attack_num = 3
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire()
|
||||
if(client)
|
||||
switch(chosen_attack)
|
||||
if(1)
|
||||
dash(target)
|
||||
if(2)
|
||||
shoot_ka()
|
||||
if(3)
|
||||
transform_weapon()
|
||||
return
|
||||
|
||||
Goto(target, move_to_delay, minimum_distance)
|
||||
if(get_dist(src, target) > MINER_DASH_RANGE && dash_cooldown <= world.time)
|
||||
dash_attack()
|
||||
else
|
||||
shoot_ka()
|
||||
transform_weapon()
|
||||
|
||||
/obj/item/melee/transforming/cleaving_saw/miner //nerfed saw because it is very murdery
|
||||
force = 6
|
||||
@@ -74,7 +106,7 @@ Difficulty: Medium
|
||||
|
||||
/obj/item/melee/transforming/cleaving_saw/miner/attack(mob/living/target, mob/living/carbon/human/user)
|
||||
target.add_stun_absorption("miner", 10, INFINITY)
|
||||
. = ..()
|
||||
..()
|
||||
target.stun_absorption -= "miner"
|
||||
|
||||
/obj/item/projectile/kinetic/miner
|
||||
@@ -83,22 +115,16 @@ Difficulty: Medium
|
||||
icon_state = "ka_tracer"
|
||||
range = MINER_DASH_RANGE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize()
|
||||
. = ..()
|
||||
internal = new/obj/item/gps/internal/miner(src)
|
||||
miner_saw = new(src)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
|
||||
var/adjustment_amount = amount * 0.1
|
||||
if(world.time + adjustment_amount > next_action)
|
||||
DelayNextAction(adjustment_amount, considered_action = FALSE, flush = TRUE) //attacking it interrupts it attacking, but only briefly
|
||||
DelayNextAction(adjustment_amount) //attacking it interrupts it attacking, but only briefly
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/death()
|
||||
if(health > 0)
|
||||
return
|
||||
new /obj/effect/temp_visual/dir_setting/miner_death(loc, dir)
|
||||
return ..()
|
||||
. = ..()
|
||||
if(.)
|
||||
new /obj/effect/temp_visual/dir_setting/miner_death(loc, dir)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Move(atom/newloc)
|
||||
if(dashing || (newloc && newloc.z == z && (islava(newloc) || ischasm(newloc)))) //we're not stupid!
|
||||
@@ -110,11 +136,14 @@ Difficulty: Medium
|
||||
return
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/MeleeAction(patience = TRUE)
|
||||
transform_stop_attack = FALSE
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/AttackingTarget()
|
||||
if(QDELETED(target))
|
||||
return
|
||||
if(!CheckActionCooldown() || !Adjacent(target)) //some cheating
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop)
|
||||
if(client)
|
||||
transform_stop_attack = FALSE
|
||||
if(QDELETED(target) || transform_stop_attack)
|
||||
return
|
||||
face_atom(target)
|
||||
if(isliving(target))
|
||||
@@ -129,12 +158,10 @@ Difficulty: Medium
|
||||
adjustHealth(-(L.maxHealth * 0.5))
|
||||
L.gib()
|
||||
return TRUE
|
||||
miner_saw.melee_attack_chain(src, target, null, ATTACK_IGNORE_CLICKDELAY)
|
||||
FlushCurrentAction()
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
miner_saw.melee_attack_chain(src, target)
|
||||
if(guidance)
|
||||
adjustHealth(-2)
|
||||
transform_weapon()
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop)
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
|
||||
@@ -147,16 +174,10 @@ Difficulty: Medium
|
||||
. = ..()
|
||||
if(. && target && !targets_the_same)
|
||||
wander = TRUE
|
||||
transform_weapon()
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire()
|
||||
Goto(target, move_to_delay, minimum_distance)
|
||||
if(get_dist(src, target) > MINER_DASH_RANGE && dash_cooldown <= world.time)
|
||||
INVOKE_ASYNC(src, .proc/dash, target)
|
||||
else
|
||||
shoot_ka()
|
||||
transform_weapon()
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash_attack()
|
||||
INVOKE_ASYNC(src, .proc/dash, target)
|
||||
shoot_ka()
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/shoot_ka()
|
||||
if(ranged_cooldown <= world.time && get_dist(src, target) <= MINER_DASH_RANGE && !Adjacent(target))
|
||||
@@ -165,22 +186,7 @@ Difficulty: Medium
|
||||
face_atom(target)
|
||||
new /obj/effect/temp_visual/dir_setting/firing_effect(loc, dir)
|
||||
Shoot(target)
|
||||
DelayNextAction(CLICK_CD_RANGE, flush = TRUE)
|
||||
|
||||
//I'm still of the belief that this entire proc needs to be wiped from existence.
|
||||
// do not take my touching of it to be endorsement of it. ~mso
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/quick_attack_loop()
|
||||
while(!QDELETED(target) && !CheckActionCooldown()) //this is done this way because next_move can change to be sooner while we sleep.
|
||||
stoplag(1)
|
||||
sleep((next_action - world.time) * 1.5) //but don't ask me what the fuck this is about
|
||||
if(QDELETED(target))
|
||||
return
|
||||
if(dashing || !CheckActionCooldown() || !Adjacent(target))
|
||||
if(dashing && next_action <= world.time)
|
||||
SetNextAction(1, considered_action = FALSE, immediate = FALSE, flush = TRUE)
|
||||
INVOKE_ASYNC(src, .proc/quick_attack_loop) //lets try that again.
|
||||
return
|
||||
AttackingTarget()
|
||||
DelayNextAction(CLICK_CD_RANGE)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash(atom/dash_target)
|
||||
if(world.time < dash_cooldown)
|
||||
@@ -225,19 +231,23 @@ Difficulty: Medium
|
||||
dashing = TRUE
|
||||
alpha = 0
|
||||
animate(src, alpha = 255, time = 5)
|
||||
sleep(2)
|
||||
SLEEP_CHECK_DEATH(2)
|
||||
D.forceMove(step_forward_turf)
|
||||
forceMove(target_turf)
|
||||
playsound(target_turf, 'sound/weapons/punchmiss.ogg', 40, 1, -1)
|
||||
sleep(1)
|
||||
SLEEP_CHECK_DEATH(1)
|
||||
dashing = FALSE
|
||||
shoot_ka()
|
||||
return TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/transform_weapon()
|
||||
if(time_until_next_transform <= world.time)
|
||||
miner_saw.transform_cooldown = 0
|
||||
miner_saw.transform_weapon(src, TRUE)
|
||||
if(!miner_saw.active)
|
||||
rapid_melee = 5 // 4 deci cooldown before changes, npcpool subsystem wait is 20, 20/4 = 5
|
||||
else
|
||||
rapid_melee = 3 // same thing but halved (slightly rounded up)
|
||||
transform_stop_attack = TRUE
|
||||
icon_state = "miner[miner_saw.active ? "_transformed":""]"
|
||||
icon_living = "miner[miner_saw.active ? "_transformed":""]"
|
||||
time_until_next_transform = world.time + rand(50, 100)
|
||||
@@ -269,6 +279,14 @@ Difficulty: Medium
|
||||
desc = "The sweet blood, oh, it sings to me."
|
||||
invisibility = 100
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance
|
||||
guidance = TRUE
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget()
|
||||
. = ..()
|
||||
if(. && prob(12))
|
||||
INVOKE_ASYNC(src, .proc/dash)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom
|
||||
name = "hostile-environment miner"
|
||||
desc = "A miner destined to hop across dimensions for all eternity, hunting anomalous creatures."
|
||||
@@ -277,4 +295,5 @@ Difficulty: Medium
|
||||
ranged_cooldown_time = 8
|
||||
dash_cooldown = 8
|
||||
|
||||
|
||||
#undef MINER_DASH_RANGE
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
/obj/item/ammo_casing/c38/lethal
|
||||
name = ".38 bullet casing"
|
||||
desc = "A .38 bullet casing"
|
||||
desc = "A .38 bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/c38
|
||||
|
||||
/obj/item/ammo_casing/c38/trac
|
||||
|
||||
@@ -60,6 +60,13 @@
|
||||
desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with."
|
||||
ammo_type = /obj/item/ammo_casing/c38/match
|
||||
|
||||
/obj/item/ammo_box/c38/pouch
|
||||
name = "ammo packet (.38)"
|
||||
desc = "A small ammunition packet made of synthleather. Not particularly useful for speedily reloading, but can hold a bit more."
|
||||
multiload = FALSE
|
||||
max_ammo = 8
|
||||
icon_state = "38pch"
|
||||
|
||||
/obj/item/ammo_box/g4570
|
||||
name = "ammo box (.45-70 GOVT)"
|
||||
desc = "Brought to you at great expense,this box contains 10 more .45-70 GOVT bullets."
|
||||
|
||||
@@ -61,3 +61,7 @@
|
||||
ammo_type = /obj/item/ammo_casing/c38 // they're rubber by default, i guess
|
||||
caliber = "38"
|
||||
max_ammo = 7
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/levergun/brush
|
||||
name = "brush gun internal magazine"
|
||||
ammo_type = /obj/item/ammo_casing/g4570
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
icon_state = "c20r[magazine ? "-[CEILING(get_ammo(0)/4, 1)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
|
||||
|
||||
/obj/item/gun/ballistic/automatic/wt550
|
||||
name = "security semi-auto smg"
|
||||
name = "security semi-auto PDW"
|
||||
desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Semi-Automatic SMG."
|
||||
icon_state = "wt550"
|
||||
item_state = "arg"
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot
|
||||
casing_ejector = FALSE
|
||||
var/recentpump = 0 // to prevent spammage
|
||||
var/clip_delay = CLICK_CD_MELEE
|
||||
weapon_weight = WEAPON_HEAVY
|
||||
sawn_item_state = "sawnshotgun"
|
||||
|
||||
@@ -24,7 +25,8 @@
|
||||
playsound(user, 'sound/weapons/shotguninsert.ogg', 60, 1)
|
||||
A.update_icon()
|
||||
update_icon()
|
||||
user.SetNextAction(CLICK_CD_MELEE)
|
||||
if(istype(A, /obj/item/ammo_box))
|
||||
user.SetNextAction(clip_delay)
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/process_chamber(mob/living/user, empty_chamber = 0)
|
||||
return ..() //changed argument value
|
||||
@@ -359,9 +361,13 @@
|
||||
icon_state = "levercarabine"
|
||||
item_state = "leveraction"
|
||||
sawn_item_state = "maresleg"
|
||||
var/can_cut = TRUE
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/leveraction/attackby(obj/item/A, mob/user, params)
|
||||
..()
|
||||
if(!can_cut)
|
||||
to_chat(user, "<span class='warning'>You can't cut \the [src] down!</span>")
|
||||
return
|
||||
if(A.tool_behaviour == TOOL_SAW || istype(A, /obj/item/gun/energy/plasmacutter))
|
||||
sawoff(user)
|
||||
if(istype(A, /obj/item/melee/transforming/energy))
|
||||
@@ -377,3 +383,11 @@
|
||||
icon_state = "[unique_reskin[current_skin]][sawn_off ? "-sawn" : ""][chambered ? "" : "-e"]"
|
||||
else
|
||||
icon_state = "[initial(icon_state)][sawn_off ? "-sawn" : ""][chambered ? "" : "-e"]"
|
||||
|
||||
/obj/item/gun/ballistic/shotgun/leveraction/brush
|
||||
name = "brush gun"
|
||||
desc = "While lever-actions have been horribly out of date for hundreds of years now, \
|
||||
putting a nicely sized hole in a man-sized target with a .45-70 round has stayed relatively timeless."
|
||||
icon_state = "brushgun"
|
||||
can_cut = FALSE
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/levergun/brush
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
/obj/item/storage/fancy/rollingpapers = 5)
|
||||
contraband = list(/obj/item/lighter = 3,
|
||||
/obj/item/clothing/mask/vape = 5,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1)
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1,
|
||||
/obj/item/clothing/mask/cigarette/dart = 3)
|
||||
premium = list(/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3,
|
||||
/obj/item/storage/fancy/cigarettes/cigars = 1,
|
||||
/obj/item/storage/fancy/cigarettes/cigars/havana = 1,
|
||||
|
||||
@@ -66,3 +66,9 @@ DISABLE_HIGH_POP_MC_MODE_AMOUNT 60
|
||||
|
||||
## Uncomment to set the number of /world/Reboot()s before the DreamDaemon restarts itself. 0 means restart every round. Requires tgstation server tools.
|
||||
#ROUNDS_UNTIL_HARD_RESTART 10
|
||||
|
||||
## Force Gamemode ##
|
||||
## Disallows roundstart gamemode voting if not null or uncommented
|
||||
## Just input the gamemode lowercase in there, the thing will take a simple string for it
|
||||
## Invalid gamemodes will default extended, have fun.
|
||||
#FORCE_GAMEMODE
|
||||
|
||||
@@ -50,6 +50,44 @@
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
||||
<h2 class="date">16 October 2021</h2>
|
||||
<h3 class="author">Ryll/Shaps updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Asay now supports pings (via using @[adminckey])</li>
|
||||
</ul>
|
||||
<h3 class="author">SandPoot updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">If a gamemode fails to load too many times, a safe gamemode will be loaded instead.</li>
|
||||
<li class="code_imp">Dynamic is no longer hardcoded, and you can now set a gamemode to be forced in the configs.</li>
|
||||
<li class="bugfix">Equip delays are a bit less weird now, only relevant for coders/people who use straight jackets... on themself, since that's the only thing that uses it right now.</li>
|
||||
<li class="bugfix">Toggling arousal will properly update your sprite.</li>
|
||||
<li class="bugfix">That also means no spam when moving it in your hands.</li>
|
||||
</ul>
|
||||
<h3 class="author">WanderingFox95 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Removes the quick attack loop (like TG did it)</li>
|
||||
</ul>
|
||||
<h3 class="author">dapnee updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">BEPIS to science tweak: moved the courtroom</li>
|
||||
</ul>
|
||||
<h3 class="author">keronshb updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Adds the fat dart cigarette and to vendors</li>
|
||||
<li class="imageadd">Adds the sprites for the fat dart</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">13 October 2021</h2>
|
||||
<h3 class="author">Hatterhat updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Contraband dealers are now embracing their inner Old Space Westerner. Look for the Old West Surplus Crate on your mildly-hacked cargo console today.</li>
|
||||
</ul>
|
||||
<h3 class="author">MrJWhit updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Adds more fire-saftey closets and trashpiles to boxstation</li>
|
||||
<li class="rscadd">Adds trashpiles to delta.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">30 September 2021</h2>
|
||||
<h3 class="author">Hatterhat updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
@@ -482,32 +520,6 @@
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Polyvitiligo actually changes your color now</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">13 August 2021</h2>
|
||||
<h3 class="author">Putnam3145 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">makes certain organs no longer have circular references</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">12 August 2021</h2>
|
||||
<h3 class="author">Arturlang updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscdel">Nonslimes and nonvampires will no longer be able to increase their blood to stupid heights</li>
|
||||
</ul>
|
||||
<h3 class="author">Putnam3145 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="refactor">Supermatter values use auxgm</li>
|
||||
</ul>
|
||||
<h3 class="author">cadyn updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="server">precompile.sh and build.sh updated, auxmos set to 0.2.3 in dependencies.sh</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">11 August 2021</h2>
|
||||
<h3 class="author">timothyteakettle updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">lets felinids, humans and moths have markings</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<b>GoonStation 13 Development Team</b>
|
||||
|
||||
@@ -30120,3 +30120,30 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
to outbreaks, theoretically.
|
||||
Putnam3145:
|
||||
- rscdel: Minesweeper's "play on same board"
|
||||
2021-10-13:
|
||||
Hatterhat:
|
||||
- rscadd: Contraband dealers are now embracing their inner Old Space Westerner.
|
||||
Look for the Old West Surplus Crate on your mildly-hacked cargo console today.
|
||||
MrJWhit:
|
||||
- rscadd: Adds more fire-saftey closets and trashpiles to boxstation
|
||||
- rscadd: Adds trashpiles to delta.
|
||||
2021-10-16:
|
||||
Ryll/Shaps:
|
||||
- rscadd: Asay now supports pings (via using @[adminckey])
|
||||
SandPoot:
|
||||
- bugfix: If a gamemode fails to load too many times, a safe gamemode will be loaded
|
||||
instead.
|
||||
- code_imp: Dynamic is no longer hardcoded, and you can now set a gamemode to be
|
||||
forced in the configs.
|
||||
- bugfix: Equip delays are a bit less weird now, only relevant for coders/people
|
||||
who use straight jackets... on themself, since that's the only thing that uses
|
||||
it right now.
|
||||
- bugfix: Toggling arousal will properly update your sprite.
|
||||
- bugfix: That also means no spam when moving it in your hands.
|
||||
WanderingFox95:
|
||||
- bugfix: Removes the quick attack loop (like TG did it)
|
||||
dapnee:
|
||||
- rscadd: 'BEPIS to science tweak: moved the courtroom'
|
||||
keronshb:
|
||||
- rscadd: Adds the fat dart cigarette and to vendors
|
||||
- imageadd: Adds the sprites for the fat dart
|
||||
|
||||
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 50 KiB |