Merge remote-tracking branch 'upstream/master'

This commit is contained in:
DeltaFire
2020-06-26 17:02:01 +02:00
213 changed files with 76624 additions and 139057 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+22 -34
View File
@@ -666,7 +666,7 @@
pixel_x = 24;
specialfunctions = 4
},
/obj/item/bedsheet/red,
/obj/effect/spawner/lootdrop/bedsheet,
/turf/open/floor/wood,
/area/awaymission/beach)
"bU" = (
@@ -799,9 +799,7 @@
/turf/open/floor/wood,
/area/awaymission/beach)
"cn" = (
/obj/machinery/vending/boozeomat{
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. May not work for bartenders that don't have Nanotrasen bank accounts."
},
/obj/machinery/vending/boozeomat,
/turf/open/floor/wood,
/area/awaymission/beach)
"co" = (
@@ -897,9 +895,7 @@
/area/awaymission/beach)
"cD" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/rag{
pixel_y = 7
},
/obj/item/reagent_containers/rag,
/turf/open/floor/wood,
/area/awaymission/beach)
"cE" = (
@@ -1081,14 +1077,6 @@
/obj/item/clothing/glasses/heat,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"iy" = (
/obj/item/toy/seashell,
/turf/open/floor/plating/beach/coastline_t,
/area/awaymission/beach)
"MD" = (
/obj/item/toy/seashell,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
(1,1,1) = {"
aa
@@ -4660,9 +4648,9 @@ ac
aw
af
ay
MD
ak
MD
ak
ak
aT
ao
aY
@@ -4766,7 +4754,7 @@ ac
aw
af
ay
MD
ak
ak
ak
ak
@@ -4875,7 +4863,7 @@ ay
ak
ak
ak
MD
ak
ak
ak
ak
@@ -5216,7 +5204,7 @@ aY
ae
aw
ag
MD
ak
aZ
ak
ak
@@ -5317,7 +5305,7 @@ ak
ak
ak
ak
MD
ak
aT
aj
aj
@@ -5328,7 +5316,7 @@ ak
ak
ak
ak
MD
ak
aT
ao
ar
@@ -6294,7 +6282,7 @@ ak
ak
ak
ak
iy
ap
ar
ac
ac
@@ -6474,7 +6462,7 @@ ac
ac
ad
ag
MD
ak
ak
ak
ak
@@ -6822,7 +6810,7 @@ cl
bd
bd
bd
cD
cC
cH
ba
ak
@@ -6929,7 +6917,7 @@ cm
bd
bd
bd
cC
cD
cH
ba
ak
@@ -8956,7 +8944,7 @@ ak
ak
ak
ak
MD
ak
ak
ak
cu
@@ -10328,7 +10316,7 @@ ac
ac
aw
ag
MD
ak
ak
ak
ak
@@ -10436,7 +10424,7 @@ ad
af
ay
ak
MD
ak
ak
ak
ak
@@ -10574,7 +10562,7 @@ ak
ak
cO
ak
iy
ap
ar
ac
ac
@@ -10787,7 +10775,7 @@ ak
ak
ak
aK
MD
ak
ap
ar
ac
@@ -10970,7 +10958,7 @@ ac
ac
ax
ag
MD
ak
ak
ak
ak
@@ -11000,7 +10988,7 @@ ak
ak
ak
ak
MD
ak
bo
aq
ar
@@ -15007,7 +14995,7 @@ ad
ag
al
ak
MD
ak
ap
ar
ab
+222 -182
View File
@@ -12,7 +12,6 @@
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
name = "lava";
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
@@ -37,7 +36,6 @@
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
name = "lava";
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_three)
@@ -116,7 +114,7 @@
},
/obj/item/veilrender/honkrender,
/obj/item/clothing/mask/gas/clown_hat,
/obj/item/organ/heart/demon,
/obj/item/organ/heart/cursed,
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
@@ -188,9 +186,7 @@
amount = 25
},
/obj/item/coin/antagtoken,
/obj/item/book/granter/spell/summonitem{
name = "an extremely flamboyant book"
},
/obj/item/book/granter/spell/smoke,
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
@@ -239,7 +235,6 @@
/area/awaymission/caves/BMP_asteroid/level_three)
"aM" = (
/obj/structure/ladder/unbreakable{
anchored = 1;
height = 1;
id = "minedeep"
},
@@ -266,7 +261,6 @@
/area/awaymission/caves/BMP_asteroid/level_three)
"aP" = (
/obj/structure/ladder/unbreakable{
anchored = 1;
height = 1;
id = "dungeon";
name = "rusty ladder"
@@ -317,7 +311,6 @@
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
name = "lava";
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
@@ -356,7 +349,11 @@
/area/awaymission/caves/BMP_asteroid/level_four)
"ba" = (
/obj/structure/destructible/cult/talisman,
/obj/item/book/granter/martial/plasma_fist,
/obj/item/storage/belt/champion,
/obj/item/melee/sabre{
icon_state = "cultblade";
name = "blood-red sabre"
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
@@ -446,12 +443,11 @@
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bo" = (
/obj/structure/flora/rock,
/obj/item/soulstone/anybody,
/turf/open/floor/plating/asteroid/basalt{
/obj/structure/trap/chill,
/turf/open/floor/plating/asteroid/basalt/lava{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_three)
/area/awaymission/caves/BMP_asteroid/level_four)
"bp" = (
/obj/machinery/gateway{
dir = 10
@@ -516,8 +512,8 @@
},
/area/awaymission/caves/BMP_asteroid/level_three)
"by" = (
/obj/item/twohanded/mjollnir,
/mob/living/simple_animal/hostile/poison/giant_spider/nurse,
/obj/item/nullrod/hammmer,
/turf/open/floor/plating/asteroid/basalt{
initial_gas_mix = "n2=23;o2=14"
},
@@ -531,8 +527,8 @@
/area/awaymission/caves/BMP_asteroid/level_four)
"bA" = (
/obj/structure/destructible/cult/tome,
/obj/item/necromantic_stone,
/obj/effect/decal/cleanable/blood,
/obj/item/immortality_talisman,
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
@@ -563,7 +559,6 @@
/area/awaymission/caves/BMP_asteroid/level_four)
"bF" = (
/obj/structure/ladder/unbreakable{
anchored = 1;
height = 2;
id = "dungeon";
name = "rusty ladder"
@@ -573,7 +568,9 @@
},
/area/awaymission/caves/BMP_asteroid/level_three)
"bG" = (
/obj/item/gun/ballistic/automatic/pistol/deagle/gold,
/obj/item/gun/ballistic/revolver/reverse{
name = "suspicious .357 revovler"
},
/turf/open/floor/plating/asteroid/basalt/lava{
initial_gas_mix = "n2=23;o2=14"
},
@@ -581,12 +578,14 @@
"bH" = (
/obj/effect/decal/remains/human,
/obj/item/clothing/under/misc/patriotsuit,
/obj/structure/trap/chill,
/turf/open/floor/plating/asteroid/basalt/lava{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bI" = (
/obj/item/bedsheet/patriot,
/obj/structure/trap/chill,
/turf/open/floor/plating/asteroid/basalt/lava{
initial_gas_mix = "n2=23;o2=14"
},
@@ -606,7 +605,6 @@
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
name = "lava";
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid)
@@ -617,7 +615,6 @@
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
name = "lava";
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_two)
@@ -734,7 +731,6 @@
/area/awaymission/caves/BMP_asteroid/level_two)
"ce" = (
/obj/structure/ladder/unbreakable{
anchored = 1;
height = 1;
id = "mineintro"
},
@@ -1030,7 +1026,7 @@
/area/awaymission/caves/research)
"cX" = (
/obj/structure/table,
/obj/item/melee/baton,
/obj/item/gun/energy/temperature,
/turf/open/floor/plasteel{
initial_gas_mix = "n2=23;o2=14"
},
@@ -1093,9 +1089,6 @@
/obj/structure/closet/secure_closet/miner{
name = "weapon equipment"
},
/obj/item/grenade/syndieminibomb/concussion,
/obj/item/grenade/syndieminibomb/concussion,
/obj/item/grenade/syndieminibomb/concussion,
/turf/open/floor/plasteel{
initial_gas_mix = "n2=23;o2=14"
},
@@ -1122,7 +1115,6 @@
/area/awaymission/caves/BMP_asteroid/level_two)
"dj" = (
/obj/structure/ladder/unbreakable{
anchored = 1;
height = 2;
id = "minedeep"
},
@@ -1195,7 +1187,6 @@
"dw" = (
/obj/structure/bed,
/obj/item/bedsheet,
/obj/effect/landmark/awaystart,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid/level_two)
"dx" = (
@@ -1376,35 +1367,35 @@
"eg" = (
/obj/effect/decal/cleanable/robot_debris/old,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eh" = (
/obj/structure/table,
/obj/item/radio,
/obj/item/radio,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"ei" = (
/obj/structure/table,
/obj/item/paper_bin,
/obj/item/pen,
/turf/open/floor/plating,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"ej" = (
/turf/open/floor/plating,
/area/awaymission/caves/BMP_asteroid)
"ek" = (
/obj/structure/window{
icon_state = "window";
dir = 8
},
/mob/living/simple_animal/hostile/mining_drone,
/turf/open/floor/plating,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"el" = (
/obj/structure/closet/secure_closet/personal,
/obj/item/gun/energy/laser/captain/scattershot,
/turf/open/floor/wood,
/area/awaymission/caves/northblock)
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"em" = (
/obj/structure/closet/secure_closet/personal,
/turf/open/floor/wood{
@@ -1433,20 +1424,19 @@
dir = 8
},
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"er" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"es" = (
/obj/structure/window{
icon_state = "window";
dir = 8
},
/obj/structure/window,
/mob/living/simple_animal/hostile/mining_drone,
/turf/open/floor/plating,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"et" = (
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/plating{
@@ -1467,37 +1457,47 @@
/obj/item/mining_scanner,
/obj/item/mining_scanner,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"ex" = (
/obj/structure/closet/secure_closet/miner,
/obj/effect/decal/cleanable/cobweb,
/obj/item/survivalcapsule,
/obj/item/extinguisher/mini,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
"ey" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
"ez" = (
/obj/machinery/light/small/built{
dir = 1
/obj/structure/cable{
icon_state = "0-4"
},
/obj/machinery/power/port_gen/pacman,
/obj/item/wrench,
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"ey" = (
/obj/machinery/suit_storage_unit/mining{
desc = "An industrial unit made to hold space suits. Age has seemed to rust the sliding door mechanisms, making it difficult to open.";
name = "rusted suit storage unit"
},
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"ez" = (
/obj/structure/cable{
icon_state = "1-8"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"eA" = (
/obj/structure/table,
/obj/item/paper/fluff/awaymissions/caves/work_notice,
/obj/machinery/light/small/built{
dir = 1
},
/obj/item/stack/sheet/mineral/plasma,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eB" = (
/obj/structure/barricade/wooden,
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eC" = (
/obj/structure/table,
/obj/item/gps/mining,
@@ -1506,17 +1506,19 @@
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eD" = (
/obj/structure/closet/secure_closet/miner,
/obj/item/survivalcapsule,
/obj/item/extinguisher/mini,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eE" = (
/obj/effect/landmark/awaystart,
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eF" = (
/turf/closed/wall,
/area/awaymission/caves/listeningpost)
@@ -1526,7 +1528,7 @@
"eH" = (
/obj/machinery/vending/sustenance,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eI" = (
/obj/structure/closet/crate/trashcart,
/obj/item/switchblade,
@@ -1546,7 +1548,7 @@
"eL" = (
/obj/machinery/vending/sovietsoda,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eM" = (
/obj/machinery/light/small{
dir = 8
@@ -1593,7 +1595,7 @@
"eR" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eS" = (
/obj/machinery/light/small/built,
/obj/machinery/suit_storage_unit/mining{
@@ -1601,11 +1603,11 @@
name = "rusted suit storage unit"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eT" = (
/obj/structure/closet/emcloset,
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
/area/awaymission/caves/listeningpost)
"eU" = (
/obj/structure/table,
/obj/item/storage/toolbox/mechanical,
@@ -1651,16 +1653,11 @@
/area/awaymission/caves/BMP_asteroid/level_two)
"fc" = (
/obj/structure/closet/crate,
/obj/item/paper/fluff/awaymissions/caves/shipment_receipt,
/obj/item/gun/energy/laser/captain/scattershot,
/obj/item/gun/energy/laser/captain/scattershot,
/obj/item/gun/energy/laser,
/obj/item/grenade/syndieminibomb/concussion,
/obj/item/grenade/syndieminibomb/concussion,
/obj/item/grenade/syndieminibomb/concussion,
/obj/item/slimepotion/fireproof,
/obj/item/slimepotion/fireproof,
/obj/item/clothing/glasses/thermal,
/obj/item/gun/energy/laser,
/obj/item/survivalcapsule,
/obj/item/kitchen/knife/combat/survival,
/obj/item/kitchen/knife/combat/survival,
/turf/open/floor/plating/asteroid/basalt{
initial_gas_mix = "n2=23;o2=14"
},
@@ -1708,11 +1705,14 @@
},
/area/awaymission/caves/BMP_asteroid/level_two)
"fk" = (
/obj/item/grenade/syndieminibomb/concussion,
/turf/open/floor/plating/asteroid/basalt{
initial_gas_mix = "n2=23;o2=14"
/obj/machinery/gateway{
dir = 8
},
/area/awaymission/caves/BMP_asteroid/level_two)
/obj/machinery/light{
dir = 8
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"fl" = (
/obj/effect/decal/remains/human,
/turf/open/floor/plating/asteroid/basalt{
@@ -1726,10 +1726,11 @@
/obj/structure/closet/crate{
icon_state = "crateopen"
},
/obj/item/paper/fluff/awaymissions/caves/shipment_receipt,
/obj/item/organ/eyes/robotic/thermals,
/obj/item/gun/energy/laser/captain/scattershot,
/obj/item/slimepotion/fireproof,
/obj/item/gun/energy/laser,
/obj/item/gun/energy/laser,
/obj/item/survivalcapsule,
/obj/item/kitchen/knife/combat/survival,
/obj/item/kitchen/knife/combat/survival,
/turf/open/floor/plating/asteroid/basalt{
initial_gas_mix = "n2=23;o2=14"
},
@@ -1791,11 +1792,14 @@
},
/area/awaymission/caves/BMP_asteroid/level_two)
"fw" = (
/obj/item/gun/energy/laser/captain/scattershot,
/turf/open/floor/plating/asteroid/basalt{
initial_gas_mix = "n2=23;o2=14"
/obj/machinery/gateway/centeraway{
calibrated = 0
},
/area/awaymission/caves/BMP_asteroid/level_two)
/obj/structure/cable{
icon_state = "0-2"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"fx" = (
/obj/effect/bump_teleporter{
id = "mineintroup";
@@ -1968,7 +1972,6 @@
/area/awaymission/caves/BMP_asteroid)
"ga" = (
/obj/structure/ladder/unbreakable{
anchored = 1;
height = 2;
id = "mineintro"
},
@@ -2035,11 +2038,14 @@
/turf/open/floor/plasteel,
/area/awaymission/caves/BMP_asteroid)
"gk" = (
/obj/effect/landmark/awaystart,
/turf/open/floor/plating/asteroid/basalt{
initial_gas_mix = "n2=23;o2=14"
/obj/machinery/gateway{
dir = 4
},
/area/awaymission/caves/BMP_asteroid/level_two)
/obj/machinery/light{
dir = 4
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"gl" = (
/obj/item/trash/plate,
/turf/open/floor/plasteel,
@@ -2260,7 +2266,6 @@
/turf/open/lava/smooth{
desc = "Looks hot.";
luminosity = 5;
name = "lava";
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
@@ -2276,6 +2281,41 @@
/obj/effect/baseturf_helper/asteroid/basalt,
/turf/closed/wall,
/area/awaymission/caves/northblock)
"tk" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"CY" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"GV" = (
/obj/structure/barricade/wooden,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"Hp" = (
/obj/machinery/gateway,
/obj/structure/cable{
icon_state = "0-2"
},
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
"If" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/plasteel,
/area/awaymission/caves/listeningpost)
(1,1,1) = {"
aa
@@ -6581,7 +6621,7 @@ dO
dP
dI
dZ
el
dA
dt
bL
bL
@@ -10180,13 +10220,13 @@ bL
bL
bL
bL
dX
dX
dW
dW
dW
dW
dW
eG
eG
eF
eF
eF
eF
eF
bL
bL
bL
@@ -10432,18 +10472,18 @@ bL
bL
bM
bL
bL
bL
bL
bL
bL
dX
eG
eG
eF
eF
eG
eG
ex
eD
eD
eD
eD
dX
eG
bL
bL
bL
@@ -10689,18 +10729,18 @@ bL
bL
bM
bM
bL
bL
bL
bL
bL
dW
eF
el
fk
If
eJ
eF
ey
ev
ev
ev
eJ
eJ
eJ
eR
dX
eG
bL
bL
bL
@@ -10946,18 +10986,18 @@ bL
bL
bL
bM
bL
bL
bL
bL
bL
dX
eG
eB
fw
Hp
CY
GV
ez
eE
ev
ev
eO
eJ
eJ
eS
dX
eG
bL
bL
bL
@@ -11203,18 +11243,18 @@ bL
bL
bL
bM
bL
bL
bL
bL
bL
dX
eG
eE
gk
tk
eJ
eG
eA
ev
ev
ev
eJ
eJ
eJ
eT
dW
eF
bL
bV
bV
@@ -11460,17 +11500,17 @@ bL
bL
bL
bM
bL
bL
bL
bL
bL
dX
ev
ev
ev
ev
ev
eF
eF
eG
eG
eG
eG
eJ
eJ
eJ
eJ
eJ
eF
eG
eG
@@ -11719,15 +11759,15 @@ bL
bV
bV
bL
dW
dX
dX
dX
eB
dW
eF
eG
eG
eG
eW
eF
eH
eL
ev
eJ
eW
eN
eJ
@@ -11976,11 +12016,11 @@ bL
bV
bV
bL
dW
eF
eg
eq
ev
ev
eJ
eJ
eF
eF
eF
@@ -12233,11 +12273,11 @@ bL
bV
bV
bL
dX
eG
eh
ej
fm
eg
ev
eJ
eF
eI
eM
@@ -12490,11 +12530,11 @@ bL
bV
bV
bL
dX
eG
ei
er
ej
ev
fm
eJ
eG
eJ
eN
@@ -12624,7 +12664,7 @@ ae
ac
ac
ac
bo
aj
bv
ac
ag
@@ -12747,11 +12787,11 @@ bL
bV
bV
bL
dX
ej
ej
ev
ev
eG
fm
fm
eJ
eJ
eG
eJ
eO
@@ -13004,7 +13044,7 @@ bL
bV
bV
bL
dW
eF
ek
es
ew
@@ -13261,11 +13301,11 @@ bL
bV
bV
bV
dW
dW
dX
dX
dW
eF
eF
eG
eG
eF
eF
eK
eP
@@ -50925,7 +50965,7 @@ ad
ai
ai
ai
ai
bo
ai
ai
ad
@@ -51181,7 +51221,7 @@ ad
ad
ad
ai
ai
bo
bG
bI
ai
@@ -54147,7 +54187,7 @@ bJ
bJ
bJ
cQ
gk
bJ
bJ
gs
bJ
@@ -64676,7 +64716,7 @@ bJ
bK
bK
bK
fw
bJ
bJ
bJ
cq
@@ -64931,7 +64971,7 @@ bJ
bJ
bJ
fe
fk
bJ
fn
fd
bJ
File diff suppressed because it is too large Load Diff
@@ -18,7 +18,6 @@
/area/awaymission/moonoutpost19/hive)
"ae" = (
/obj/machinery/computer/arcade{
icon_state = "arcade";
dir = 1
},
/turf/open/floor/plasteel/dark,
@@ -359,7 +358,6 @@
/mob/living/simple_animal/hostile/alien/queen/large{
desc = "A gigantic alien who is in charge of the hive and all of its loyal servants.";
name = "alien queen";
pixel_x = -16;
plants_off = 1
},
/turf/open/floor/plating/asteroid{
@@ -435,9 +433,7 @@
},
/area/awaymission/moonoutpost19/syndicate)
"aZ" = (
/obj/effect/turf_decal/tile/red{
dir = 2
},
/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
@@ -490,9 +486,7 @@
/area/awaymission/moonoutpost19/syndicate)
"bh" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/red{
dir = 2
},
/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
@@ -915,11 +909,9 @@
/area/awaymission/moonoutpost19/syndicate)
"bT" = (
/obj/machinery/power/smes{
charge = 0;
input_level = 10000;
inputting = 0;
output_level = 15000;
outputting = 1
output_level = 15000
},
/obj/structure/cable{
icon_state = "0-8"
@@ -961,7 +953,6 @@
/area/awaymission/moonoutpost19/hive)
"bX" = (
/obj/machinery/conveyor{
dir = 2;
id = "awaysyndie"
},
/obj/effect/turf_decal/stripes/line{
@@ -1334,8 +1325,7 @@
/area/awaymission/moonoutpost19/syndicate)
"cC" = (
/obj/machinery/mineral/processing_unit{
dir = 1;
output_dir = 2
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -1426,8 +1416,6 @@
"cK" = (
/obj/structure/cable,
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 1;
name = "Worn-out APC";
pixel_y = -25;
req_access = null;
@@ -1472,12 +1460,9 @@
"cN" = (
/obj/structure/cable,
/obj/machinery/power/port_gen/pacman{
desc = "A portable generator for emergency backup power.";
name = "P.A.C.M.A.N.-type portable generator"
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating{
heat_capacity = 1e+006
},
@@ -1486,12 +1471,9 @@
/obj/structure/cable,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/power/port_gen/pacman/super{
desc = "A portable generator for emergency backup power.";
name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator"
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating{
heat_capacity = 1e+006
},
@@ -1823,7 +1805,6 @@
/obj/structure/closet/secure_closet{
desc = "It's a secure locker for personnel. The first card swiped gains control.";
icon_state = "cabinet";
locked = 1;
name = "personal closet";
req_access_txt = "150"
},
@@ -2036,8 +2017,7 @@
/turf/open/floor/plating{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
icon_state = "platingdmg1";
temperature = 251
},
/area/awaymission/moonoutpost19/syndicate)
@@ -2059,23 +2039,11 @@
/obj/machinery/light/small{
dir = 1
},
/turf/open/floor/plating{
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 251
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"dM" = (
/turf/open/floor/plating{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 251
},
/area/awaymission/moonoutpost19/main)
"dN" = (
/obj/item/stack/ore/iron{
pixel_x = -7;
@@ -2400,14 +2368,12 @@
/area/awaymission/moonoutpost19/research)
"eK" = (
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/research)
"eL" = (
/obj/structure/alien/weeds,
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/research)
@@ -2467,7 +2433,6 @@
/area/awaymission/moonoutpost19/research)
"eS" = (
/obj/machinery/power/port_gen/pacman{
desc = "A portable generator for emergency backup power.";
name = "P.A.C.M.A.N.-type portable generator"
},
/obj/structure/cable{
@@ -2479,7 +2444,6 @@
/area/awaymission/moonoutpost19/research)
"eT" = (
/obj/machinery/power/port_gen/pacman/super{
desc = "A portable generator for emergency backup power.";
name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator"
},
/obj/structure/cable{
@@ -2525,8 +2489,7 @@
charge = 1.5e+006;
input_level = 10000;
inputting = 0;
output_level = 15000;
outputting = 1
output_level = 15000
},
/turf/open/floor/plating{
heat_capacity = 1e+006
@@ -2619,9 +2582,7 @@
icon_state = "2-8"
},
/obj/structure/alien/weeds,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -2655,7 +2616,6 @@
/area/awaymission/moonoutpost19/research)
"fh" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/structure/table,
@@ -2801,9 +2761,7 @@
icon_state = "1-4"
},
/obj/structure/alien/weeds,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -3041,7 +2999,6 @@
"fT" = (
/obj/structure/closet/secure_closet{
icon_state = "sec";
locked = 1;
name = "security officer's locker";
req_access_txt = "201"
},
@@ -3109,9 +3066,7 @@
icon_state = "1-2"
},
/obj/structure/alien/weeds,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -3241,9 +3196,7 @@
pixel_x = 28
},
/obj/structure/alien/weeds,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -3471,9 +3424,7 @@
req_access = null;
start_charge = 100
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -3626,9 +3577,7 @@
pixel_x = 23;
req_access = null
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -3712,7 +3661,6 @@
"hb" = (
/obj/machinery/light{
active_power_usage = 0;
dir = 2;
icon_state = "tube-broken";
status = 2
},
@@ -3826,7 +3774,6 @@
req_access_txt = "201"
},
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/research)
@@ -3842,7 +3789,6 @@
status = 2
},
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/research)
@@ -3867,7 +3813,6 @@
"hq" = (
/obj/structure/closet/secure_closet{
icon_state = "rd";
locked = 1;
name = "research director's locker";
req_access_txt = "201"
},
@@ -3885,7 +3830,6 @@
pixel_y = 2
},
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel/cafeteria{
@@ -3935,9 +3879,7 @@
},
/area/awaymission/moonoutpost19/research)
"hw" = (
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -4027,7 +3969,6 @@
},
/obj/machinery/light/small{
active_power_usage = 0;
dir = 2;
icon_state = "bulb-broken";
status = 2
},
@@ -4303,7 +4244,6 @@
/obj/structure/closet/l3closet,
/obj/machinery/light/small{
active_power_usage = 0;
dir = 2;
icon_state = "bulb-broken";
status = 2
},
@@ -4453,7 +4393,6 @@
},
/obj/machinery/shower{
dir = 4;
icon_state = "shower";
name = "emergency shower"
},
/obj/effect/turf_decal/stripes/line{
@@ -4581,7 +4520,6 @@
},
/obj/machinery/light/small{
active_power_usage = 0;
dir = 2;
icon_state = "bulb-broken";
status = 2
},
@@ -4623,9 +4561,7 @@
/area/awaymission/moonoutpost19/research)
"iL" = (
/obj/machinery/light/small,
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -4720,9 +4656,7 @@
/turf/closed/wall/rust,
/area/awaymission/moonoutpost19/arrivals)
"iU" = (
/obj/machinery/vending/boozeomat{
req_access_txt = "0"
},
/obj/machinery/vending/boozeomat,
/turf/open/floor/plasteel/cafeteria{
dir = 5
},
@@ -5680,9 +5614,7 @@
/obj/machinery/door/firedoor/closed{
opacity = 0
},
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -5830,9 +5762,7 @@
/obj/structure/chair{
dir = 8
},
/obj/effect/turf_decal/stripes/corner{
dir = 2
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -6048,9 +5978,7 @@
},
/area/awaymission/moonoutpost19/arrivals)
"lG" = (
/obj/effect/turf_decal/stripes/corner{
dir = 2
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -6224,9 +6152,7 @@
},
/area/awaymission/moonoutpost19/arrivals)
"mh" = (
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
@@ -6237,7 +6163,6 @@
/obj/machinery/portable_atmospherics/canister/air,
/obj/effect/decal/cleanable/dirt,
/obj/structure/window{
icon_state = "window";
dir = 1
},
/turf/open/floor/plating{
@@ -6271,7 +6196,6 @@
/area/awaymission/moonoutpost19/arrivals)
"mm" = (
/obj/structure/closet/secure_closet{
icon_state = "secure";
locked = 0;
name = "kitchen Cabinet";
req_access_txt = "201"
@@ -6375,9 +6299,7 @@
/area/awaymission/moonoutpost19/arrivals)
"mx" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
@@ -6786,18 +6708,6 @@
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/arrivals)
"nu" = (
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/plating{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 251
},
/area/awaymission/moonoutpost19/arrivals)
"nw" = (
/obj/machinery/washing_machine,
/obj/effect/turf_decal/tile/blue{
@@ -6842,9 +6752,7 @@
pixel_x = 23;
req_access = null
},
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
@@ -7088,18 +6996,6 @@
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/arrivals)
"nW" = (
/obj/machinery/light/small{
dir = 1
},
/turf/open/floor/plating{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 251
},
/area/awaymission/moonoutpost19/arrivals)
"nX" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -7117,9 +7013,7 @@
dir = 4
},
/obj/effect/decal/cleanable/generic,
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
@@ -7128,12 +7022,9 @@
/area/awaymission/moonoutpost19/arrivals)
"nZ" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating{
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 251
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/main)
"oa" = (
@@ -7163,12 +7054,9 @@
/obj/structure/disposalpipe/trunk{
dir = 1
},
/turf/open/floor/plating{
/turf/open/floor/plating/asteroid{
initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 251
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/main)
"od" = (
@@ -7203,7 +7091,6 @@
/obj/structure/window/reinforced,
/obj/structure/closet/secure_closet{
icon_state = "science";
locked = 1;
name = "scientist's locker";
req_access_txt = "201"
},
@@ -36454,7 +36341,7 @@ hI
hI
hI
hI
nW
lj
ba
ba
ba
@@ -36711,7 +36598,7 @@ zZ
nA
nK
Wf
dM
ba
ba
ba
ba
@@ -36968,7 +36855,7 @@ zZ
lM
lN
Wf
dM
ba
ba
ba
ba
@@ -37225,7 +37112,7 @@ hI
nB
nL
hI
nW
lj
ba
ba
ba
@@ -40774,7 +40661,7 @@ du
dx
dC
dI
dM
ba
ba
ba
ba
@@ -41594,13 +41481,13 @@ hJ
lM
lN
hI
dM
ba
ba
ba
dM
dM
dM
ba
ba
ba
ba
od
ba
ba
@@ -41857,7 +41744,7 @@ nZ
nZ
nZ
oc
dM
ba
ba
ba
ba
@@ -42108,13 +41995,13 @@ hI
nJ
nR
hJ
dM
ba
ba
ba
dM
dM
dM
ba
ba
ba
ba
ba
oe
ba
@@ -42872,9 +42759,9 @@ lN
hJ
ba
ba
dM
dM
nu
ba
ba
mO
ba
ba
ba
+55 -66
View File
@@ -919,7 +919,6 @@
/area/awaymission/research/interior/gateway)
"ck" = (
/obj/machinery/door/window/eastright{
icon_state = "right";
dir = 2
},
/obj/effect/landmark/awaystart,
@@ -1363,16 +1362,6 @@
"dc" = (
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"dd" = (
/obj/structure/closet/crate,
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
name = "encrypted genetic data disk";
read_only = 1
},
/obj/item/firing_pin/dna,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"de" = (
/obj/structure/filingcabinet,
/obj/structure/filingcabinet,
@@ -1391,8 +1380,8 @@
name = "encrypted genetic data disk";
read_only = 1
},
/obj/item/dnainjector/xraymut,
/obj/item/dnainjector/xraymut,
/obj/item/dnainjector/glow,
/obj/item/storage/toolbox/syndicate,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"dg" = (
@@ -1481,18 +1470,6 @@
"do" = (
/turf/closed/wall/r_wall,
/area/awaymission/research/interior/security)
"dp" = (
/obj/structure/closet/crate,
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
name = "encrypted genetic data disk";
read_only = 1
},
/obj/item/dnainjector/telemut,
/obj/item/dnainjector/telemut,
/obj/item/dnainjector/chavmut,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"dq" = (
/obj/machinery/light{
dir = 8
@@ -1743,8 +1720,6 @@
"dJ" = (
/obj/structure/rack,
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/head/helmet/alt,
/obj/item/clothing/head/helmet/alt,
/obj/machinery/light/small{
dir = 4
@@ -1769,19 +1744,19 @@
/area/awaymission/research/interior/secure)
"dL" = (
/obj/structure/closet/crate,
/obj/item/disk/data{
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastily written over it.";
fields = list("label" = "Buffer1:George Melons", "UI" = "3c300f11b5421ca7014d8", "SE" = "430431205660551642142504334461413202111310233445620533134255", "UE" = "6893e6a0b0076a41897776b10cc2b324", "name" = "George Melons", "blood_type" = "B+");
name = "old genetics data disk"
},
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
name = "encrypted genetic data disk";
read_only = 1
},
/obj/item/firing_pin/dna,
/obj/item/dnainjector/dwarf,
/obj/item/dnainjector/dwarf,
/obj/item/disk/data{
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off.";
fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+");
name = "dusty genetics data disk";
read_only = 1
},
/obj/item/dnainjector/insulated,
/obj/item/gun/energy/disabler,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"dM" = (
@@ -1792,11 +1767,13 @@
read_only = 1
},
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
name = "encrypted genetic data disk";
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off.";
fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+");
name = "dusty genetics data disk";
read_only = 1
},
/obj/item/dnainjector/chameleonmut,
/obj/item/dnainjector/glow,
/obj/item/storage/toolbox/syndicate,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"dN" = (
@@ -1890,7 +1867,6 @@
"dU" = (
/obj/structure/rack,
/obj/item/gun/ballistic/automatic/wt550,
/obj/item/gun/ballistic/automatic/wt550,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
/obj/effect/turf_decal/tile/red{
@@ -2070,7 +2046,6 @@
"ep" = (
/obj/structure/rack,
/obj/item/gun/ballistic/automatic/pistol/m1911,
/obj/item/gun/ballistic/automatic/pistol/m1911,
/obj/item/ammo_box/magazine/m45,
/obj/item/ammo_box/magazine/m45,
/obj/effect/turf_decal/tile/red{
@@ -3071,7 +3046,6 @@
icon_state = "4-8"
},
/obj/machinery/door/airlock/highsecurity{
aiDisabledIdScanner = 0;
name = "Vault Storage";
req_access_txt = "36"
},
@@ -3531,7 +3505,6 @@
/turf/open/floor/plasteel/white,
/area/awaymission/research/interior/cryo)
"gR" = (
/obj/item/melee/classic_baton/telescopic,
/obj/effect/turf_decal/tile/purple{
dir = 1
},
@@ -3542,6 +3515,7 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
/obj/item/melee/baton/cattleprod,
/turf/open/floor/plasteel/white,
/area/awaymission/research/interior/cryo)
"gS" = (
@@ -3914,7 +3888,6 @@
/area/awaymission/research/interior/cryo)
"hw" = (
/obj/machinery/computer/arcade{
icon_state = "arcade";
dir = 8
},
/turf/open/floor/plasteel/yellowsiding{
@@ -4126,20 +4099,22 @@
/area/awaymission/research/interior/security)
"hS" = (
/obj/structure/closet/crate,
/obj/item/clothing/head/collectable/petehat{
name = "dusty hat"
},
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
name = "encrypted genetic data disk";
read_only = 1
},
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. ";
name = "encrypted genetic data disk";
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off.";
fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+");
name = "dusty genetics data disk";
read_only = 1
},
/obj/item/clothing/head/collectable/petehat{
name = "dusty hat"
},
/obj/item/firing_pin/dna,
/obj/item/dnainjector/gigantism,
/obj/item/kitchen/knife/combat/survival,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"hT" = (
@@ -4150,12 +4125,13 @@
read_only = 1
},
/obj/item/disk/data{
desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines.";
name = "encrypted genetic data disk";
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off.";
fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+");
name = "dusty genetics data disk";
read_only = 1
},
/obj/item/firing_pin/dna,
/obj/item/dnainjector/hulkmut,
/obj/item/dnainjector/antenna,
/obj/item/clothing/suit/armor/vest,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"hU" = (
@@ -4296,10 +4272,14 @@
name = "encrypted genetic data disk";
read_only = 1
},
/obj/item/firing_pin/dna/dredd,
/obj/item/firing_pin/dna/dredd,
/obj/item/dnainjector/lasereyesmut,
/obj/item/dnainjector/lasereyesmut,
/obj/item/disk/data{
desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off.";
fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+");
name = "dusty genetics data disk";
read_only = 1
},
/obj/item/dnainjector/gigantism,
/obj/item/kitchen/knife/combat/survival,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/secure)
"im" = (
@@ -4603,7 +4583,6 @@
/area/awaymission/research/interior/bathroom)
"iN" = (
/obj/machinery/shower{
icon_state = "shower";
dir = 8
},
/turf/open/floor/plasteel/freezer,
@@ -6335,7 +6314,7 @@
/area/space/nearstation)
"nb" = (
/obj/structure/table/wood,
/obj/item/book/granter/spell/random,
/obj/item/book/granter/spell/smoke,
/turf/open/floor/mineral/plasma,
/area/space/nearstation)
"nc" = (
@@ -6460,6 +6439,11 @@
},
/turf/open/floor/plating,
/area/awaymission/research/interior/maint)
"Hs" = (
/obj/structure/table/wood,
/obj/item/book/granter/crafting_recipe/bone_bow,
/turf/open/floor/mineral/plasma,
/area/space/nearstation)
"Km" = (
/obj/machinery/door/airlock/security/glass{
id_tag = "outerbrig";
@@ -6582,6 +6566,11 @@
},
/turf/open/floor/plating,
/area/awaymission/research/interior/escapepods)
"ZZ" = (
/obj/structure/table/wood,
/obj/item/book/granter/action/origami,
/turf/open/floor/mineral/plasma,
/area/space/nearstation)
(1,1,1) = {"
aa
@@ -11121,8 +11110,8 @@ ab
ab
na
nb
nb
nb
Hs
ZZ
na
ab
ab
@@ -31113,8 +31102,8 @@ ad
ad
ad
cQ
dd
dp
dL
dL
dL
cQ
dc
@@ -31126,7 +31115,7 @@ cQ
dc
cQ
hS
dM
il
il
cQ
ad
@@ -32399,7 +32388,7 @@ ad
ad
cQ
df
dd
dM
dM
cQ
dc
@@ -32412,7 +32401,7 @@ dc
cQ
hT
hT
dd
hT
cQ
ad
ad
+28 -92
View File
@@ -417,7 +417,6 @@
dir = 1
},
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -1035,7 +1034,6 @@
/area/awaymission/snowdin/post/research)
"cE" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/effect/decal/cleanable/dirt,
@@ -1281,7 +1279,6 @@
"cY" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -1329,7 +1326,6 @@
"db" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -1389,7 +1385,6 @@
"df" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -1861,7 +1856,6 @@
/area/awaymission/snowdin/post)
"em" = (
/obj/machinery/power/apc{
dir = 2;
name = "Gateway APC";
pixel_y = -24;
req_access = 150
@@ -1936,9 +1930,7 @@
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/messhall)
"et" = (
/obj/machinery/vending/boozeomat{
req_access_txt = "0"
},
/obj/machinery/vending/boozeomat,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
@@ -1968,7 +1960,6 @@
/area/awaymission/snowdin/post/messhall)
"ew" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/tile/bar,
@@ -2210,7 +2201,6 @@
dir = 1
},
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/tile/blue{
@@ -2411,7 +2401,6 @@
/area/awaymission/snowdin/post/dorm)
"fw" = (
/obj/machinery/sleeper{
icon_state = "sleeper";
dir = 4
},
/obj/effect/turf_decal/tile/blue{
@@ -2631,7 +2620,6 @@
/area/awaymission/snowdin/post/hydro)
"fT" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/tile/green{
@@ -3808,7 +3796,6 @@
/area/awaymission/snowdin/post)
"iu" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -4483,7 +4470,8 @@
/turf/open/floor/plating,
/area/awaymission/snowdin/post/garage)
"jL" = (
/obj/vehicle/ridden/atv,
/obj/vehicle/ridden/atv/snowmobile,
/obj/item/key,
/turf/open/floor/plating,
/area/awaymission/snowdin/post/garage)
"jM" = (
@@ -5060,8 +5048,9 @@
/turf/open/floor/plating,
/area/awaymission/snowdin/post/garage)
"lc" = (
/obj/vehicle/ridden/atv,
/obj/effect/decal/cleanable/oil,
/obj/vehicle/ridden/atv/snowmobile,
/obj/item/key,
/turf/open/floor/plating,
/area/awaymission/snowdin/post/garage)
"ld" = (
@@ -5285,7 +5274,6 @@
/area/awaymission/snowdin/post)
"lv" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -5421,7 +5409,6 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -5468,7 +5455,6 @@
/area/awaymission/snowdin/post/hydro)
"lG" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 2;
piping_layer = 3;
pixel_x = 5;
pixel_y = 5
@@ -6601,7 +6587,6 @@
/obj/item/ammo_box/a762,
/obj/structure/closet/secure_closet{
icon_state = "sec";
locked = 1;
name = "security officer's locker";
req_access_txt = "201"
},
@@ -6800,7 +6785,6 @@
/area/awaymission/snowdin/post/hydro)
"ot" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel,
@@ -8715,7 +8699,6 @@
/area/awaymission/snowdin/outside)
"sW" = (
/obj/machinery/power/turbine{
dir = 2;
luminosity = 2
},
/obj/structure/cable,
@@ -9863,7 +9846,6 @@
"wm" = (
/obj/machinery/porta_turret/centcom_shuttle/weak{
desc = "A turret built with substandard parts and run down further with age.";
icon_state = "syndie_off";
dir = 9;
faction = list("pirate")
},
@@ -9958,7 +9940,6 @@
},
/obj/effect/light_emitter{
light_color = "#FAA019";
light_power = 1;
light_range = 4;
name = "fire light"
},
@@ -9990,7 +9971,6 @@
/area/awaymission/snowdin/outside)
"wC" = (
/obj/vehicle/ridden/atv{
icon_state = "atv";
dir = 4
},
/obj/effect/light_emitter{
@@ -11092,10 +11072,8 @@
/turf/open/floor/plating,
/area/awaymission/snowdin/post/minipost)
"zq" = (
/obj/vehicle/ridden/atv{
icon_state = "atv";
dir = 8
},
/obj/vehicle/ridden/atv/snowmobile,
/obj/item/key,
/turf/open/floor/plating,
/area/awaymission/snowdin/post/minipost)
"zr" = (
@@ -11412,12 +11390,6 @@
/obj/item/clothing/suit/hooded/wintercoat,
/turf/open/floor/plating/snowed,
/area/awaymission/snowdin/outside)
"Ah" = (
/obj/structure/window/reinforced/fulltile/ice,
/obj/structure/grille,
/obj/item/clothing/suit/hooded/wintercoat,
/turf/open/floor/plating,
/area/awaymission/snowdin/post/minipost)
"Ai" = (
/turf/open/floor/plating{
icon_state = "platingdmg1"
@@ -11588,7 +11560,6 @@
},
/obj/effect/light_emitter{
light_color = "#FAA019";
light_power = 1;
light_range = 4;
name = "fire light"
},
@@ -12299,7 +12270,6 @@
desc = "It's a storage unit for a Syndicate boarding party."
},
/obj/effect/turf_decal/bot_white,
/obj/item/gun/ballistic/automatic/pistol,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -12345,7 +12315,6 @@
/area/awaymission/snowdin/cave)
"CP" = (
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 4
},
/obj/effect/turf_decal/stripes/line{
@@ -12635,14 +12604,6 @@
/obj/item/stack/rods,
/turf/open/floor/mineral/plastitanium/red,
/area/awaymission/snowdin/cave)
"Ds" = (
/obj/item/grenade/plastic/c4,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/awaymission/snowdin/cave)
"Dt" = (
/obj/structure/table/reinforced,
/obj/structure/window/reinforced{
@@ -12880,7 +12841,6 @@
/area/awaymission/snowdin/cave)
"DU" = (
/obj/structure/shuttle/engine/heater{
icon_state = "heater";
dir = 4
},
/obj/effect/turf_decal/stripes/line{
@@ -13215,26 +13175,14 @@
/obj/item/toy/plush/nukeplushie,
/turf/open/floor/plasteel/dark,
/area/awaymission/snowdin/cave)
"EE" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/weather/snow,
/obj/machinery/suit_storage_unit{
state_open = 1
},
/turf/open/floor/mineral/plastitanium{
initial_gas_mix = "o2=22;n2=82;TEMP=180";
planetary_atmos = 1;
temperature = 180
},
/area/awaymission/snowdin/cave)
"EF" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/effect/turf_decal/weather/snow,
/obj/machinery/suit_storage_unit/syndicate,
/obj/item/clothing/suit/hooded/wintercoat/security,
/obj/item/tank/internals/emergency_oxygen/engi,
/obj/structure/rack,
/turf/open/floor/mineral/plastitanium{
initial_gas_mix = "o2=22;n2=82;TEMP=180";
planetary_atmos = 1;
@@ -13246,9 +13194,9 @@
dir = 5
},
/obj/effect/turf_decal/weather/snow,
/obj/machinery/suit_storage_unit{
state_open = 1
},
/obj/item/clothing/suit/hooded/wintercoat/security,
/obj/item/tank/internals/emergency_oxygen/engi,
/obj/structure/rack,
/turf/open/floor/mineral/plastitanium{
initial_gas_mix = "o2=22;n2=82;TEMP=180";
planetary_atmos = 1;
@@ -13320,7 +13268,6 @@
/area/awaymission/snowdin/cave)
"EN" = (
/obj/machinery/sleeper/syndie{
icon_state = "sleeper_s";
dir = 1
},
/obj/effect/turf_decal/bot_white,
@@ -13333,7 +13280,6 @@
"EP" = (
/obj/effect/turf_decal/bot_white,
/obj/machinery/sleeper/syndie{
icon_state = "sleeper_s";
dir = 1
},
/turf/open/floor/plasteel/dark,
@@ -13757,7 +13703,6 @@
/area/awaymission/snowdin/cave/cavern)
"FY" = (
/obj/machinery/conveyor{
dir = 2;
id = "snowdin_belt_mine"
},
/obj/machinery/light/small{
@@ -13780,8 +13725,7 @@
/area/awaymission/snowdin/post/mining_main)
"Gc" = (
/obj/structure/statue/snow/snowman{
anchored = 1;
name = "snowman"
anchored = 1
},
/obj/item/pickaxe/mini{
pixel_x = 5;
@@ -13868,7 +13812,6 @@
"Gn" = (
/obj/structure/plasticflaps,
/obj/machinery/conveyor{
dir = 2;
id = "snowdin_belt_mine"
},
/turf/open/floor/plating,
@@ -14054,7 +13997,6 @@
output_dir = 2
},
/obj/machinery/conveyor{
dir = 2;
id = "snowdin_belt_mine"
},
/turf/open/floor/plating,
@@ -14170,7 +14112,6 @@
/area/awaymission/snowdin/post/mining_main/mechbay)
"Hk" = (
/obj/machinery/conveyor{
dir = 2;
id = "snowdin_belt_mine"
},
/turf/open/floor/plating,
@@ -14286,11 +14227,9 @@
/area/awaymission/snowdin/post/mining_main/mechbay)
"HC" = (
/obj/machinery/mineral/processing_unit{
dir = 1;
output_dir = 2
dir = 1
},
/obj/machinery/conveyor{
dir = 2;
id = "snowdin_belt_mine"
},
/turf/open/floor/plating,
@@ -14555,7 +14494,6 @@
/area/awaymission/snowdin/post/mining_main/mechbay)
"In" = (
/obj/mecha/working/ripley/mining{
icon_state = "ripley";
dir = 1
},
/obj/effect/turf_decal/bot,
@@ -14615,11 +14553,9 @@
/turf/open/floor/plating,
/area/awaymission/snowdin/post/mining_main)
"Ix" = (
/obj/vehicle/ridden/atv{
icon_state = "atv";
dir = 1
},
/obj/effect/decal/cleanable/oil,
/obj/vehicle/ridden/atv/snowmobile,
/obj/item/key,
/turf/open/floor/plating,
/area/awaymission/snowdin/post/mining_main)
"Iy" = (
@@ -27300,7 +27236,7 @@ oa
dX
yW
yW
Ah
AX
Av
Lw
yX
@@ -36093,7 +36029,7 @@ CC
El
an
an
EE
EF
CC
ae
ae
@@ -36607,7 +36543,7 @@ OF
En
Es
Dp
EE
EF
CC
zh
af
@@ -38396,7 +38332,7 @@ CC
CL
CW
Di
Ds
Di
Di
CC
CX
@@ -55604,7 +55540,7 @@ eL
eJ
tp
qi
tt
tz
qi
tp
eJ
@@ -56372,13 +56308,13 @@ eJ
eJ
tp
qi
tt
tz
tv
qi
tt
qi
tv
tt
tz
qi
tp
eJ
@@ -57146,7 +57082,7 @@ eJ
eJ
tp
qi
tt
tz
qi
tp
eJ
@@ -69622,7 +69558,7 @@ tp
qi
tz
qi
tt
tz
qi
qi
qi
@@ -70385,7 +70321,7 @@ eJ
gW
tp
qi
tt
tz
tp
qi
qi
@@ -71159,7 +71095,7 @@ qi
qi
tp
qi
tt
tz
qi
tp
tp
File diff suppressed because it is too large Load Diff
@@ -261,9 +261,7 @@
/area/awaymission/undergroundoutpost45/central)
"aO" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -423,7 +421,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/secure_closet{
icon_state = "sec";
locked = 1;
name = "security officer's locker";
req_access_txt = "201"
},
@@ -626,8 +623,7 @@
/area/awaymission/undergroundoutpost45/central)
"bB" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5;
level = 1
dir = 5
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -652,8 +648,7 @@
/area/awaymission/undergroundoutpost45/central)
"bD" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10;
level = 1
dir = 10
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -811,8 +806,7 @@
/area/awaymission/undergroundoutpost45/central)
"bV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10;
level = 1
dir = 10
},
/turf/closed/wall,
/area/awaymission/undergroundoutpost45/central)
@@ -1260,7 +1254,6 @@
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/structure/window{
icon_state = "window";
dir = 8
},
/turf/open/floor/plating{
@@ -1282,7 +1275,6 @@
},
/obj/structure/reagent_dispensers/fueltank,
/obj/structure/window{
icon_state = "window";
dir = 4
},
/turf/open/floor/plating{
@@ -1291,8 +1283,7 @@
/area/awaymission/undergroundoutpost45/central)
"cV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10;
level = 1
dir = 10
},
/turf/closed/wall/rust,
/area/awaymission/undergroundoutpost45/central)
@@ -1428,7 +1419,6 @@
/area/awaymission/undergroundoutpost45/central)
"dm" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel{
@@ -1448,9 +1438,7 @@
layer = 5
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/green{
dir = 2
},
/obj/effect/turf_decal/tile/green,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -1729,7 +1717,6 @@
dir = 4
},
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/tile/green{
@@ -1858,9 +1845,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -2125,15 +2110,6 @@
icon_state = "platingdmg1"
},
/area/awaymission/undergroundoutpost45/central)
"eu" = (
/turf/open/floor/plating{
initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9";
heat_capacity = 1e+006;
icon_plating = "asteroidplating";
icon_state = "asteroidplating";
temperature = 363.9
},
/area/awaymission/undergroundoutpost45/caves)
"ev" = (
/obj/item/clothing/under/misc/pj/red,
/obj/structure/closet/secure_closet{
@@ -2328,9 +2304,7 @@
/obj/machinery/door/firedoor,
/obj/item/folder/red,
/obj/machinery/door/window/southleft{
base_state = "left";
dir = 8;
icon_state = "left";
name = "Security Checkpoint";
req_access_txt = "201"
},
@@ -2369,9 +2343,7 @@
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
/obj/machinery/door/window/southleft{
base_state = "left";
dir = 4;
icon_state = "left";
name = "Hydroponics Desk";
req_access_txt = "201"
},
@@ -2508,9 +2480,7 @@
},
/area/awaymission/undergroundoutpost45/central)
"fb" = (
/obj/effect/turf_decal/tile/green{
dir = 2
},
/obj/effect/turf_decal/tile/green,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -2568,7 +2538,6 @@
network = list("uo45")
},
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "Hydroponics APC";
pixel_y = -25;
@@ -3055,15 +3024,13 @@
/area/awaymission/undergroundoutpost45/central)
"gc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5;
level = 1
dir = 5
},
/turf/closed/wall/r_wall,
/area/awaymission/undergroundoutpost45/central)
"gd" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10;
level = 1
dir = 10
},
/turf/closed/wall/r_wall,
/area/awaymission/undergroundoutpost45/central)
@@ -3319,7 +3286,6 @@
amount = 23
},
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/research)
@@ -3327,7 +3293,6 @@
/obj/structure/table,
/obj/item/storage/toolbox/mechanical,
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/research)
@@ -3452,7 +3417,6 @@
},
/obj/machinery/camera{
c_tag = "Research Lab";
dir = 2;
network = list("uo45","uo45r")
},
/turf/open/floor/plasteel/white{
@@ -3461,7 +3425,6 @@
/area/awaymission/undergroundoutpost45/research)
"gZ" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel/white{
@@ -3614,9 +3577,7 @@
},
/area/awaymission/undergroundoutpost45/crew_quarters)
"ho" = (
/obj/machinery/vending/boozeomat{
req_access_txt = "0"
},
/obj/machinery/vending/boozeomat,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
@@ -4531,8 +4492,7 @@
/area/awaymission/undergroundoutpost45/gateway)
"iX" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10;
level = 1
dir = 10
},
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
@@ -4626,7 +4586,6 @@
/area/awaymission/undergroundoutpost45/crew_quarters)
"jf" = (
/obj/structure/closet/secure_closet{
icon_state = "secure";
locked = 0;
name = "kitchen Cabinet";
req_access_txt = "201"
@@ -5169,7 +5128,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/secure_closet{
icon_state = "rd";
locked = 1;
name = "research director's locker";
req_access_txt = "201"
},
@@ -5934,7 +5892,6 @@
},
/obj/machinery/camera{
c_tag = "Gateway Ready Room";
dir = 2;
network = list("uo45","uo45r")
},
/turf/open/floor/plasteel{
@@ -5971,7 +5928,6 @@
/obj/item/reagent_containers/spray/pepper,
/obj/structure/closet/secure_closet{
icon_state = "sec";
locked = 1;
name = "security officer's locker";
req_access_txt = "201"
},
@@ -6029,9 +5985,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6041,9 +5995,7 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6064,9 +6016,7 @@
dir = 1;
network = list("uo45","uo45r")
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6081,9 +6031,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6096,9 +6044,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6115,9 +6061,7 @@
name = "Research Division Access";
req_access_txt = "201"
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6130,9 +6074,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6151,9 +6093,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6171,9 +6111,7 @@
pixel_y = -24
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6183,7 +6121,6 @@
icon_state = "0-8"
},
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Research Division APC";
pixel_y = -25;
@@ -6196,9 +6133,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6211,9 +6146,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6234,9 +6167,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6245,17 +6176,13 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/research)
"lM" = (
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6270,9 +6197,7 @@
dir = 1;
network = list("uo45","uo45r")
},
/obj/effect/turf_decal/tile/purple{
dir = 2
},
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6408,7 +6333,6 @@
},
/obj/machinery/camera{
c_tag = "Engineering Secure Storage";
dir = 2;
network = list("uo45")
},
/turf/open/floor/plating{
@@ -6472,7 +6396,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/portable_atmospherics/scrubber,
/obj/structure/window{
icon_state = "window";
dir = 4
},
/obj/effect/decal/cleanable/dirt,
@@ -6547,9 +6470,7 @@
pixel_y = -32
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white{
heat_capacity = 1e+006
},
@@ -6744,7 +6665,6 @@
"mE" = (
/obj/structure/cable,
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Gateway APC";
pixel_y = -25;
@@ -7392,9 +7312,7 @@
/obj/structure/cable{
icon_state = "2-4"
},
/obj/effect/turf_decal/stripes/corner{
dir = 2
},
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
@@ -7409,9 +7327,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
@@ -7495,7 +7411,6 @@
},
/obj/machinery/computer/security/telescreen{
desc = "Used for monitoring the research division and the labs within.";
dir = 2;
name = "research monitor";
network = list("uo45r")
},
@@ -7687,7 +7602,6 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/machinery/camera{
c_tag = "Dormitories";
dir = 2;
network = list("uo45")
},
/obj/effect/turf_decal/tile/neutral{
@@ -7943,8 +7857,7 @@
charge = 1.5e+006;
input_level = 10000;
inputting = 0;
output_level = 7000;
outputting = 1
output_level = 7000
},
/turf/open/floor/plating{
heat_capacity = 1e+006
@@ -7956,8 +7869,7 @@
charge = 1.5e+006;
input_level = 30000;
inputting = 0;
output_level = 7000;
outputting = 1
output_level = 7000
},
/turf/open/floor/plating{
heat_capacity = 1e+006
@@ -8091,9 +8003,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -8121,9 +8031,7 @@
"oJ" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -8164,9 +8072,7 @@
/area/awaymission/undergroundoutpost45/crew_quarters)
"oM" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/effect/turf_decal/tile/neutral{
dir = 2
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -8281,7 +8187,6 @@
dir = 1
},
/obj/machinery/power/port_gen/pacman{
desc = "A portable generator for emergency backup power.";
name = "P.A.C.M.A.N.-type portable generator"
},
/obj/structure/cable{
@@ -8296,7 +8201,6 @@
dir = 1
},
/obj/machinery/power/port_gen/pacman/super{
desc = "A portable generator for emergency backup power.";
name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator"
},
/obj/item/wrench,
@@ -8315,7 +8219,6 @@
dir = 1
},
/obj/machinery/power/port_gen/pacman{
desc = "A portable generator for emergency backup power.";
name = "P.A.C.M.A.N.-type portable generator"
},
/obj/structure/cable{
@@ -8676,7 +8579,6 @@
/area/awaymission/undergroundoutpost45/engineering)
"pE" = (
/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos{
dir = 2;
icon_state = "in";
id_tag = "UO45_air_out";
name = "air out"
@@ -8688,7 +8590,6 @@
/area/awaymission/undergroundoutpost45/engineering)
"pF" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos{
dir = 2;
id = "UO45_air_in"
},
/turf/open/floor/engine/air,
@@ -9012,7 +8913,6 @@
/obj/item/clothing/glasses/hud/health,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/white/corner{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/research)
@@ -9025,7 +8925,6 @@
/obj/item/hand_labeler,
/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plasteel/white/side{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/research)
@@ -9248,7 +9147,6 @@
},
/obj/machinery/camera{
c_tag = "Atmospherics";
dir = 2;
network = list("uo45")
},
/obj/structure/table,
@@ -9257,7 +9155,6 @@
pixel_y = 5
},
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/item/multitool,
@@ -9303,21 +9200,15 @@
dir = 10
},
/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
"qN" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
@@ -9560,7 +9451,6 @@
/area/awaymission/undergroundoutpost45/engineering)
"rl" = (
/obj/machinery/firealarm{
dir = 2;
pixel_y = 24
},
/obj/structure/tank_dispenser{
@@ -9643,7 +9533,6 @@
},
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 8;
locked = 1;
name = "UO45 Engineering APC";
pixel_x = -25;
req_access = null;
@@ -9683,7 +9572,6 @@
/obj/item/clothing/head/helmet,
/obj/structure/closet/secure_closet{
icon_state = "sec";
locked = 1;
name = "security officer's locker";
req_access_txt = "201"
},
@@ -9750,11 +9638,8 @@
"rx" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
@@ -10167,9 +10052,7 @@
name = "Privacy Shutters"
},
/obj/machinery/door/window/southleft{
base_state = "left";
dir = 4;
icon_state = "left";
name = "Engineering Reception";
req_access_txt = "201"
},
@@ -10260,7 +10143,6 @@
"sj" = (
/obj/structure/cable,
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Mining APC";
pixel_y = -25;
@@ -10280,9 +10162,7 @@
},
/obj/item/storage/backpack/satchel/eng,
/obj/item/clothing/gloves/fingerless,
/obj/effect/turf_decal/tile/brown{
dir = 2
},
/obj/effect/turf_decal/tile/brown,
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -10290,8 +10170,7 @@
"sk" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
name = "Mix to Distro";
on = 0
name = "Mix to Distro"
},
/turf/open/floor/plasteel{
heat_capacity = 1e+006
@@ -10955,9 +10834,7 @@
},
/area/awaymission/undergroundoutpost45/crew_quarters)
"tv" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 2
},
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/obj/machinery/portable_atmospherics/pump,
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -10969,9 +10846,7 @@
/area/awaymission/undergroundoutpost45/engineering)
"tw" = (
/obj/machinery/light/small,
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 2
},
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/obj/structure/window/reinforced{
dir = 4;
layer = 2.9
@@ -11145,8 +11020,7 @@
/area/awaymission/undergroundoutpost45/engineering)
"tK" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5;
level = 1
dir = 5
},
/turf/closed/wall/rust,
/area/awaymission/undergroundoutpost45/research)
@@ -11404,11 +11278,8 @@
dir = 1
},
/obj/machinery/portable_atmospherics/canister/air,
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
@@ -11716,17 +11587,13 @@
},
/area/awaymission/undergroundoutpost45/research)
"uL" = (
/obj/machinery/atmospherics/components/binary/valve{
dir = 2
},
/obj/machinery/atmospherics/components/binary/valve,
/turf/open/floor/plating{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/research)
"uM" = (
/obj/machinery/atmospherics/components/binary/valve{
dir = 2
},
/obj/machinery/atmospherics/components/binary/valve,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
@@ -11813,8 +11680,7 @@
/area/awaymission/undergroundoutpost45/engineering)
"uV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5;
level = 1
dir = 5
},
/obj/structure/chair/office/dark{
dir = 8
@@ -12342,9 +12208,7 @@
/obj/structure/sign/warning/electricshock{
pixel_y = -32
},
/obj/machinery/vending/engivend{
req_access_txt = "0"
},
/obj/machinery/vending/engivend,
/obj/machinery/camera{
c_tag = "Engineering Foyer";
dir = 1;
@@ -12402,11 +12266,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
@@ -12415,11 +12276,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
@@ -12428,11 +12286,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
/obj/effect/turf_decal/bot{
dir = 2
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel{
dir = 2;
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/engineering)
@@ -13274,7 +13129,6 @@
/area/awaymission/undergroundoutpost45/engineering)
"xl" = (
/obj/machinery/conveyor{
dir = 2;
id = "UO45_mining"
},
/obj/effect/turf_decal/stripes/line{
@@ -13328,7 +13182,6 @@
/area/awaymission/undergroundoutpost45/mining)
"xq" = (
/obj/machinery/conveyor{
dir = 2;
id = "UO45_mining"
},
/obj/structure/sign/warning/nosmoking{
@@ -13383,8 +13236,7 @@
/area/awaymission/undergroundoutpost45/mining)
"xw" = (
/obj/machinery/mineral/processing_unit{
dir = 1;
output_dir = 2
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -13468,7 +13320,6 @@
/area/awaymission/undergroundoutpost45/mining)
"xE" = (
/obj/machinery/conveyor{
dir = 2;
id = "UO45_mining"
},
/obj/machinery/light/small{
@@ -13604,7 +13455,6 @@
/area/awaymission/undergroundoutpost45/mining)
"xS" = (
/obj/machinery/mech_bay_recharge_port{
icon_state = "recharge_port";
dir = 8
},
/obj/structure/cable{
@@ -42626,7 +42476,7 @@ tT
gy
uN
hH
eu
eJ
eJ
ad
ad
@@ -42883,7 +42733,7 @@ tU
uw
uO
vk
eu
eJ
eJ
eJ
ad
@@ -43140,7 +42990,7 @@ tV
ux
uP
hH
eu
eJ
eJ
eJ
eJ
@@ -48811,7 +48661,7 @@ ww
xZ
yc
ww
eu
eJ
eJ
eJ
eJ
@@ -49068,7 +48918,7 @@ xX
ya
yd
yf
eu
eJ
eJ
eJ
eJ
@@ -49325,7 +49175,7 @@ xY
yb
ye
ww
eu
eJ
eJ
eJ
eJ
@@ -51326,9 +51176,9 @@ ad
ad
ad
ad
eu
eu
eu
eJ
eJ
eJ
fn
eJ
eJ
+72 -89
View File
@@ -50,15 +50,13 @@
/turf/open/floor/circuit/off,
/area/awaymission/wildwest/vault)
"an" = (
/turf/open/floor/plasteel/cult{
name = "engraved floor"
},
/turf/open/floor/plasteel/cult,
/area/awaymission/wildwest/vault)
"ao" = (
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"ap" = (
/obj/machinery/wish_granter_dark,
/obj/item/nullrod/claymore/glowing,
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"aq" = (
@@ -69,54 +67,72 @@
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"as" = (
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"at" = (
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"au" = (
/obj/machinery/gateway{
dir = 8
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"av" = (
/obj/machinery/gateway/centeraway{
calibrated = 0
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"aw" = (
/obj/machinery/gateway{
dir = 4
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"ax" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"ay" = (
/obj/machinery/gateway,
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"az" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"aA" = (
/obj/effect/meatgrinder,
/turf/open/floor/circuit/green/off,
@@ -162,9 +178,7 @@
/area/awaymission/wildwest/vault)
"aL" = (
/obj/item/paper/fluff/awaymissions/wildwest/grinder,
/turf/open/floor/plasteel/cult{
name = "engraved floor"
},
/turf/open/floor/plasteel/cult,
/area/awaymission/wildwest/vault)
"aM" = (
/turf/closed/mineral/silver,
@@ -174,9 +188,7 @@
/area/awaymission/wildwest/mines)
"aO" = (
/obj/effect/mob_spawn/human/corpse/syndicatecommando,
/turf/open/floor/plasteel/cult{
name = "engraved floor"
},
/turf/open/floor/plasteel/cult,
/area/awaymission/wildwest/vault)
"aP" = (
/obj/effect/decal/cleanable/blood/splatter,
@@ -349,11 +361,6 @@
/obj/structure/bed,
/turf/open/floor/wood,
/area/awaymission/wildwest/mines)
"bC" = (
/obj/structure/table/wood,
/obj/item/gun/ballistic,
/turf/open/floor/wood,
/area/awaymission/wildwest/mines)
"bD" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -595,17 +602,8 @@
dir = 5
},
/area/awaymission/wildwest/mines)
"ch" = (
/obj/structure/table/wood,
/obj/item/gun/ballistic,
/turf/open/floor/plasteel/cafeteria{
dir = 5
},
/area/awaymission/wildwest/mines)
"ci" = (
/obj/structure/mineral_door/wood{
icon_state = "wood"
},
/obj/structure/mineral_door/wood,
/turf/open/floor/wood,
/area/awaymission/wildwest/mines)
"cj" = (
@@ -755,7 +753,7 @@
/area/awaymission/wildwest/mines)
"cL" = (
/obj/structure/table/wood,
/obj/item/twohanded/dualsaber,
/obj/item/nullrod/claymore/saber/red,
/turf/open/floor/wood,
/area/awaymission/wildwest/gov)
"cM" = (
@@ -767,9 +765,7 @@
/turf/open/floor/wood,
/area/awaymission/wildwest/gov)
"cO" = (
/obj/structure/mineral_door/wood{
icon_state = "wood"
},
/obj/structure/mineral_door/wood,
/turf/open/floor/wood,
/area/awaymission/wildwest/gov)
"cP" = (
@@ -946,17 +942,13 @@
/turf/open/floor/carpet,
/area/awaymission/wildwest/mines)
"dm" = (
/obj/structure/mineral_door/wood{
icon_state = "wood"
},
/obj/structure/mineral_door/wood,
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
/area/awaymission/wildwest/mines)
"dn" = (
/obj/structure/mineral_door/wood{
icon_state = "wood"
},
/obj/structure/mineral_door/wood,
/obj/effect/decal/cleanable/blood/tracks,
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
@@ -1048,9 +1040,7 @@
},
/area/awaymission/wildwest/gov)
"dD" = (
/obj/structure/mineral_door/wood{
icon_state = "wood"
},
/obj/structure/mineral_door/wood,
/turf/open/floor/plating/ironsand{
icon_state = "ironsand1"
},
@@ -1176,7 +1166,6 @@
/area/awaymission/wildwest/gov)
"dV" = (
/obj/machinery/shower{
icon_state = "shower";
dir = 4
},
/turf/open/floor/plasteel/cafeteria{
@@ -1185,7 +1174,6 @@
/area/awaymission/wildwest/mines)
"dW" = (
/obj/machinery/shower{
icon_state = "shower";
dir = 8
},
/turf/open/floor/plasteel/cafeteria{
@@ -2009,10 +1997,6 @@
/obj/machinery/photocopier,
/turf/open/floor/wood,
/area/awaymission/wildwest/mines)
"gm" = (
/obj/item/gun/ballistic,
/turf/open/floor/wood,
/area/awaymission/wildwest/mines)
"gn" = (
/mob/living/simple_animal/hostile/netherworld,
/turf/open/floor/grass,
@@ -2195,10 +2179,9 @@
/area/awaymission/wildwest/mines)
"gW" = (
/obj/structure/table/reinforced,
/obj/item/clothing/suit/space/syndicate/black/orange,
/obj/item/clothing/head/helmet/space/syndicate/black/orange,
/obj/item/clothing/mask/gas/syndicate,
/obj/item/tank/internals/oxygen,
/obj/item/clothing/suit/space/syndicate/blue,
/obj/item/clothing/head/helmet/space/syndicate/blue,
/turf/open/floor/mineral/titanium/yellow,
/area/awaymission/wildwest/refine)
"gX" = (
@@ -32762,9 +32745,9 @@ aT
aN
aN
aT
aT
aT
aT
ar
au
ax
aT
aT
aT
@@ -33019,9 +33002,9 @@ aT
aN
aN
aT
aT
aT
aT
as
av
ay
aT
aT
aT
@@ -33276,9 +33259,9 @@ aT
aN
aN
aT
aT
aT
aT
at
aw
az
aT
aT
aT
@@ -38117,7 +38100,7 @@ bu
bz
bM
bM
ch
bM
by
bu
bj
@@ -39913,7 +39896,7 @@ bj
bj
aT
bu
bC
bD
bj
bj
bu
@@ -46340,7 +46323,7 @@ aT
bu
bD
bj
bC
bD
cl
bj
bj
@@ -47563,9 +47546,9 @@ aa
ab
ab
ab
ar
au
ax
ao
ao
ao
ao
ao
ao
@@ -47820,9 +47803,9 @@ aa
ab
ab
ab
as
av
ay
ao
ao
ao
ao
ao
ao
@@ -48077,9 +48060,9 @@ aa
aa
ab
ab
at
aw
az
ao
ao
ao
ao
ao
ao
@@ -48850,7 +48833,7 @@ aa
ab
ab
ao
ao
ap
ao
ab
ab
@@ -51159,7 +51142,7 @@ aa
aa
aa
ab
ap
ao
ao
aq
ab
@@ -52283,7 +52266,7 @@ eX
dj
bj
bu
gm
bj
bj
eM
bj
+5 -1
View File
@@ -32,4 +32,8 @@
list("", "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\
list("gondolapod", "gondola", "The silent walker. This one seems to be part of a delivery agency."),\
list("", "", "")\
)
)
#define PACK_GOODY_NONE 0
#define PACK_GOODY_PUBLIC 1 //can be bought by both privates and cargo
#define PACK_GOODY_PRIVATE 2 //can be bought only by privates
+7
View File
@@ -232,6 +232,10 @@
#define COMSIG_LIVING_STATUS_STAGGER "living_stagger" //from base of mob/living/Stagger() (amount, update, ignore)
#define COMPONENT_NO_STUN 1 //For all of them
#define COMSIG_LIVING_LIFE "life_tick" //from base of mob/living/Life() (seconds, times_fired)
#define COMPONENT_INTERRUPT_LIFE_BIOLOGICAL 1 // interrupt biological processes
#define COMPONENT_INTERRUPT_LIFE_PHYSICAL 2 // interrupt physical handling
// /mob/living/carbon signals
#define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity))
#define COMSIG_CARBON_IDENTITY_TRANSFERRED_TO "carbon_id_transferred_to" //from datum/dna/transfer_identity(): (datum/dna, transfer_SE)
@@ -250,6 +254,9 @@
#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled)
#define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag)
#define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value)
#define COMSIG_OBJ_ATTACK_GENERIC "obj_attack_generic" //from base of atom/animal_attack(): (/mob/user)
#define COMPONENT_STOP_GENERIC_ATTACK 1
// /machinery signals
#define COMSIG_MACHINE_EJECT_OCCUPANT "eject_occupant" //from base of obj/machinery/dropContents() (occupant)
+16
View File
@@ -6,10 +6,26 @@
#define RETURN_TYPE(X) set SpacemanDMM_return_type = X
#define SHOULD_CALL_PARENT(X) set SpacemanDMM_should_call_parent = X
#define UNLINT(X) SpacemanDMM_unlint(X)
#define SHOULD_NOT_OVERRIDE(X) set SpacemanDMM_should_not_override = X
#define SHOULD_NOT_SLEEP(X) set SpacemanDMM_should_not_sleep = X
#define SHOULD_BE_PURE(X) set SpacemanDMM_should_be_pure = X
#define PRIVATE_PROC(X) set SpacemanDMM_private_proc = X
#define PROTECTED_PROC(X) set SpacemanDMM_protected_proc = X
#define VAR_FINAL var/SpacemanDMM_final
#define VAR_PRIVATE var/SpacemanDMM_private
#define VAR_PROTECTED var/SpacemanDMM_protected
#else
#define RETURN_TYPE(X)
#define SHOULD_CALL_PARENT(X)
#define UNLINT(X) X
#define SHOULD_NOT_OVERRIDE(X)
#define SHOULD_NOT_SLEEP(X)
#define SHOULD_BE_PURE(X)
#define PRIVATE_PROC(X)
#define PROTECTED_PROC(X)
#define VAR_FINAL var
#define VAR_PRIVATE var
#define VAR_PROTECTED var
#endif
/world/proc/enable_debugger()
+1 -1
View File
@@ -3,7 +3,7 @@
for(var/file in args)
src << browse_rsc(file)
/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html", "md"))
/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html", "md", "json"))
var/path = root
for(var/i=0, i<max_iterations, i++)
+2
View File
@@ -375,6 +375,8 @@ GLOBAL_LIST_EMPTY(species_list)
override = TRUE
if(HAS_TRAIT(M, TRAIT_SIXTHSENSE))
override = TRUE
if(SSticker.current_state == GAME_STATE_FINISHED)
override = TRUE
if(isnewplayer(M) && !override)
continue
if(M.stat != DEAD && !override)
+1
View File
@@ -233,6 +233,7 @@
for(var/antag_name in total_antagonists)
var/list/L = total_antagonists[antag_name]
log_game("[antag_name]s :[L.Join(", ")].")
set_observer_default_invisibility(0, "<span class='warning'>The round is over! You are now visible to the living.</span>")
CHECK_TICK
SSdbcore.SetRoundEnd()
+1 -1
View File
@@ -76,7 +76,7 @@
if(check_click_intercept(params,A))
return
if(notransform)
if(mob_transforming)
return
if(SEND_SIGNAL(src, COMSIG_MOB_CLICKON, A, params) & COMSIG_MOB_CANCEL_CLICKON)
+1 -1
View File
@@ -23,7 +23,7 @@ SUBSYSTEM_DEF(npcpool)
var/mob/living/simple_animal/SA = currentrun[currentrun.len]
--currentrun.len
if(!SA.ckey && !SA.notransform)
if(!SA.ckey && !SA.mob_transforming)
if(SA.stat != DEAD)
SA.handle_automated_movement()
if(SA.stat != DEAD)
+2 -2
View File
@@ -409,7 +409,7 @@ SUBSYSTEM_DEF(ticker)
var/mob/living = player.transfer_character()
if(living)
qdel(player)
living.notransform = TRUE
living.mob_transforming = TRUE
if(living.client)
if (living.client.prefs && living.client.prefs.auto_ooc)
if (living.client.prefs.chat_toggles & CHAT_OOC)
@@ -423,7 +423,7 @@ SUBSYSTEM_DEF(ticker)
/datum/controller/subsystem/ticker/proc/release_characters(list/livings)
for(var/I in livings)
var/mob/living/L = I
L.notransform = FALSE
L.mob_transforming = FALSE
/datum/controller/subsystem/ticker/proc/send_tip_of_the_round()
var/m
@@ -123,7 +123,9 @@
trauma = _trauma
return ..()
/mob/living/split_personality/Life()
/mob/living/split_personality/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(QDELETED(body))
qdel(src) //in case trauma deletion doesn't already do it
@@ -132,8 +134,6 @@
trauma.switch_personalities()
qdel(trauma)
..()
/mob/living/split_personality/Login()
..()
to_chat(src, "<span class='notice'>As a split personality, you cannot do anything but observe. However, you will eventually gain control of your body, switching places with the current personality.</span>")
+5 -5
View File
@@ -30,7 +30,7 @@ GLOBAL_LIST_EMPTY(cinematics)
/datum/cinematic
var/id = CINEMATIC_DEFAULT
var/list/watching = list() //List of clients watching this
var/list/locked = list() //Who had notransform set during the cinematic
var/list/locked = list() //Who had mob_transforming set during the cinematic
var/is_global = FALSE //Global cinematics will override mob-specific ones
var/obj/screen/cinematic/screen
var/datum/callback/special_callback //For special effects synced with animation (explosions after the countdown etc)
@@ -45,7 +45,7 @@ GLOBAL_LIST_EMPTY(cinematics)
GLOB.cinematics -= src
QDEL_NULL(screen)
for(var/mob/M in locked)
M.notransform = FALSE
M.mob_transforming = FALSE
return ..()
/datum/cinematic/proc/play(watchers)
@@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(cinematics)
for(var/mob/M in GLOB.mob_list)
if(M in watchers)
M.notransform = TRUE //Should this be done for non-global cinematics or even at all ?
M.mob_transforming = TRUE //Should this be done for non-global cinematics or even at all ?
locked += M
//Close watcher ui's
SStgui.close_user_uis(M)
@@ -79,7 +79,7 @@ GLOBAL_LIST_EMPTY(cinematics)
M.client.screen += screen
else
if(is_global)
M.notransform = TRUE
M.mob_transforming = TRUE
locked += M
//Actually play it
@@ -254,4 +254,4 @@ Nuke.Explosion()
Narsie()
-> Cinematic(CULT,world)
*/
*/
+1 -1
View File
@@ -109,7 +109,7 @@
AM.visible_message("<span class='boldwarning'>[AM] falls into [parent]!</span>", "<span class='userdanger'>[oblivion_message]</span>")
if (isliving(AM))
var/mob/living/L = AM
L.notransform = TRUE
L.mob_transforming = TRUE
L.Paralyze(200)
var/oldtransform = AM.transform
+74
View File
@@ -0,0 +1,74 @@
/**
* omen.dm: For when you want someone to have a really bad day
*
* When you attach an omen component to someone, they start running the risk of all sorts of bad environmental injuries, like nearby vending machines randomly falling on you,
* or hitting your head really hard when you slip and fall, or... well, for now those two are all I have. More will come.
*
* Omens are removed once the victim is either maimed by one of the possible injuries, or if they receive a blessing (read: bashing with a bible) from the chaplain.
*/
/datum/component/omen
dupe_mode = COMPONENT_DUPE_UNIQUE
/// Whatever's causing the omen, if there is one. Destroying the vessel won't stop the omen, but we destroy the vessel (if one exists) upon the omen ending
var/obj/vessel
/datum/component/omen/Initialize(silent=FALSE, vessel)
if(!isliving(parent))
return COMPONENT_INCOMPATIBLE
var/mob/person = parent
if(!silent)
to_chat(person, "<span class='warning'>You get a bad feeling...</span>")
src.vessel = vessel
/datum/component/omen/Destroy(force, silent)
if(vessel)
vessel.visible_message("<span class='warning'>[vessel] burns up in a sinister flash, taking an evil energy with it...</span>")
vessel = null
return ..()
/datum/component/omen/RegisterWithParent()
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/check_accident)
RegisterSignal(parent, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/check_slip)
RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/check_bless)
/datum/component/omen/UnregisterFromParent()
UnregisterSignal(parent, list(COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_MOVABLE_MOVED, COMSIG_ADD_MOOD_EVENT))
/**
* check_accident() is called each step we take
*
* While we're walking around, roll to see if there's any environmental hazards (currently only vending machines) on one of the adjacent tiles we can trigger.
* We do the prob() at the beginning to A. add some tension for /when/ it will strike, and B. (more importantly) ameliorate the fact that we're checking up to 5 turfs's contents each time
*/
/datum/component/omen/proc/check_accident(atom/movable/our_guy)
if(!prob(15))
return
for(var/t in get_adjacent_open_turfs(our_guy))
var/turf/the_turf = t
for(var/obj/machinery/vending/darth_vendor in the_turf)
if(darth_vendor.tiltable)
darth_vendor.tilt(our_guy)
qdel(src)
return
/// If we get knocked down, see if we have a really bad slip and bash our head hard
/datum/component/omen/proc/check_slip(mob/living/our_guy, amount)
if(amount <= 0 || prob(50)) // 50% chance to bonk our head
return
var/obj/item/bodypart/the_head = our_guy.get_bodypart(BODY_ZONE_HEAD)
if(!the_head)
return
playsound(get_turf(our_guy), "sound/effects/tableheadsmash.ogg", 90, TRUE)
our_guy.visible_message("<span class='danger'>[our_guy] hits [our_guy.p_their()] head really badly falling down!</span>", "<span class='userdanger'>You hit your head really badly falling down!</span>")
the_head.receive_damage(75)
our_guy.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100)
qdel(src)
/// Hijack the mood system to see if we get the blessing mood event to cancel the omen
/datum/component/omen/proc/check_bless(mob/living/our_guy, category)
if(category != "blessing")
return
to_chat(our_guy, "<span class='nicegreen'>You feel a horrible omen lifted off your shoulders!</span>")
qdel(src)
+10 -3
View File
@@ -8,6 +8,8 @@
var/list/faction = list("mining")
/datum/component/spawner/Initialize(_mob_types, _spawn_time, _faction, _spawn_text, _max_mobs)
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
if(_spawn_time)
spawn_time=_spawn_time
if(_mob_types)
@@ -19,20 +21,25 @@
if(_max_mobs)
max_mobs=_max_mobs
RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), .proc/stop_spawning)
RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/stop_spawning)
RegisterSignal(parent, COMSIG_OBJ_ATTACK_GENERIC, .proc/on_attack_generic)
START_PROCESSING(SSprocessing, src)
/datum/component/spawner/process()
try_spawn_mob()
/datum/component/spawner/proc/stop_spawning(force, hint)
/datum/component/spawner/proc/stop_spawning(datum/source, force, hint)
STOP_PROCESSING(SSprocessing, src)
for(var/mob/living/simple_animal/L in spawned_mobs)
if(L.nest == src)
L.nest = null
spawned_mobs = null
// Stopping clientless simple mobs' from indiscriminately bashing their own spawners due DestroySurroundings() et similars.
/datum/component/spawner/proc/on_attack_generic(datum/source, mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration)
if(!user.client && ((user.faction & faction) || (user in spawned_mobs)))
return COMPONENT_STOP_GENERIC_ATTACK
/datum/component/spawner/proc/try_spawn_mob()
var/atom/P = parent
if(spawned_mobs.len >= max_mobs)
+2 -2
View File
@@ -52,9 +52,9 @@
to_chat(affected_mob, pick(stage5))
if(QDELETED(affected_mob))
return
if(affected_mob.notransform)
if(affected_mob.mob_transforming)
return
affected_mob.notransform = 1
affected_mob.mob_transforming = 1
for(var/obj/item/W in affected_mob.get_equipped_items(TRUE))
affected_mob.dropItemToGround(W)
for(var/obj/item/I in affected_mob.held_items)
+3 -3
View File
@@ -72,8 +72,8 @@
/// Checking to see if we're gonna embed into a human
/datum/element/embed/proc/checkEmbedMob(obj/item/weapon, mob/living/carbon/victim, hit_zone, datum/thrownthing/throwingdatum, forced=FALSE)
if(!istype(victim) || HAS_TRAIT(victim, TRAIT_PIERCEIMMUNE))
/datum/element/embed/proc/checkEmbedMob(obj/item/weapon, mob/living/carbon/victim, hit_zone, datum/thrownthing/throwingdatum, blocked = FALSE, forced = FALSE)
if(blocked || !istype(victim) || HAS_TRAIT(victim, TRAIT_PIERCEIMMUNE))
return
var/actual_chance = embed_chance
@@ -89,7 +89,7 @@
return
var/roll_embed = prob(actual_chance)
var/pass = forced || ((((throwingdatum ? throwingdatum.speed : weapon.throw_speed) >= EMBED_THROWSPEED_THRESHOLD) || ignore_throwspeed_threshold) && roll_embed)
var/pass = forced || ((((throwingdatum ? throwingdatum.speed : weapon.throw_speed) >= EMBED_THROWSPEED_THRESHOLD) || ignore_throwspeed_threshold) && roll_embed && (!HAS_TRAIT(victim, TRAIT_AUTO_CATCH_ITEM) || victim.incapacitated() || victim.get_active_held_item()))
if(!pass)
return
+5 -5
View File
@@ -81,11 +81,11 @@
owner.adjustStaminaLoss(-0.5) //reduce stamina loss by 0.5 per tick, 10 per 2 seconds
if(human_owner && human_owner.drunkenness)
human_owner.drunkenness *= 0.997 //reduce drunkenness by 0.3% per tick, 6% per 2 seconds
if(prob(20))
if(carbon_owner)
carbon_owner.handle_dreams()
if(prob(10) && owner.health > owner.crit_threshold)
owner.emote("snore")
if(carbon_owner && !carbon_owner.dreaming && prob(2))
carbon_owner.dream()
// 2% per second, tick interval is in deciseconds
if(prob((tick_interval+1) * 0.2) && owner.health > owner.crit_threshold)
owner.emote("snore")
/datum/status_effect/staggered
id = "staggered"
+5 -4
View File
@@ -6,6 +6,7 @@
var/id = "effect" //Used for screen alerts.
var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means.
var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second.
var/next_tick //The scheduled time for the next tick.
var/mob/living/owner //The mob affected by the status effect.
var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted
var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
@@ -31,7 +32,7 @@
return
if(duration != -1)
duration = world.time + duration
tick_interval = world.time + tick_interval
next_tick = world.time + tick_interval
if(alert_type)
var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type)
A.attached_effect = src //so the alert can reference us, if it needs to
@@ -52,9 +53,9 @@
if(!owner)
qdel(src)
return
if(tick_interval < world.time)
if(next_tick < world.time)
tick()
tick_interval = world.time + initial(tick_interval)
next_tick = world.time + tick_interval
if(duration != -1 && duration < world.time)
qdel(src)
@@ -221,7 +222,7 @@
threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again
on_threshold_drop()
if(stacks_added > 0)
tick_interval += delay_before_decay //refreshes time until decay
next_tick += delay_before_decay //refreshes time until decay
stacks = min(stacks, max_stacks)
status_overlay.icon_state = "[overlay_state][stacks]"
status_underlay.icon_state = "[underlay_state][stacks]"
+2 -2
View File
@@ -413,8 +413,8 @@
// shock user with probability prb (if all connections & power are working)
// returns TRUE if shocked, FALSE otherwise
// The preceding comment was borrowed from the grille's shock script
/obj/machinery/door/airlock/proc/shock(mob/user, prb)
if(!hasPower()) // unpowered, no shock
/obj/machinery/door/airlock/proc/shock(mob/living/user, prb)
if(!istype(user) || !hasPower()) // unpowered, no shock
return FALSE
if(shockCooldown > world.time)
return FALSE //Already shocked someone recently?
+2 -1
View File
@@ -13,7 +13,8 @@
var/obj/item/reagent_containers/beaker
var/static/list/drip_containers = typecacheof(list(/obj/item/reagent_containers/blood,
/obj/item/reagent_containers/food,
/obj/item/reagent_containers/glass))
/obj/item/reagent_containers/glass,
/obj/item/reagent_containers/chem_pack))
/obj/machinery/iv_drip/Initialize(mapload)
. = ..()
+1
View File
@@ -26,6 +26,7 @@
"Firefighter",
"Odysseus",
"Gygax",
"Medical-Spec Gygax",
"Durand",
"H.O.N.K",
"Phazon",
+298
View File
@@ -642,6 +642,304 @@
user.visible_message("[user] unfastens Gygax Armor Plates.", "<span class='notice'>You unfasten Gygax Armor Plates.</span>")
return TRUE
//Begin Medigax
/datum/component/construction/unordered/mecha_chassis/medigax
result = /datum/component/construction/mecha/medigax
steps = list(
/obj/item/mecha_parts/part/medigax_torso,
/obj/item/mecha_parts/part/medigax_left_arm,
/obj/item/mecha_parts/part/medigax_right_arm,
/obj/item/mecha_parts/part/medigax_left_leg,
/obj/item/mecha_parts/part/medigax_right_leg,
/obj/item/mecha_parts/part/medigax_head
)
/datum/component/construction/mecha/medigax
result = /obj/mecha/medical/medigax
base_icon = "medigax"
steps = list(
//1
list(
"key" = TOOL_WRENCH,
"desc" = "The hydraulic systems are disconnected."
),
//2
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_WRENCH,
"desc" = "The hydraulic systems are connected."
),
//3
list(
"key" = /obj/item/stack/cable_coil,
"amount" = 5,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "The hydraulic systems are active."
),
//4
list(
"key" = TOOL_WIRECUTTER,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "The wiring is added."
),
//5
list(
"key" = /obj/item/circuitboard/mecha/gygax/main,
"action" = ITEM_DELETE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "The wiring is adjusted."
),
//6
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "Central control module is installed."
),
//7
list(
"key" = /obj/item/circuitboard/mecha/gygax/peripherals,
"action" = ITEM_DELETE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "Central control module is secured."
),
//8
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "Peripherals control module is installed."
),
//9
list(
"key" = /obj/item/circuitboard/mecha/gygax/targeting,
"action" = ITEM_DELETE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "Peripherals control module is secured."
),
//10
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "Weapon control module is installed."
),
//11
list(
"key" = /obj/item/stock_parts/scanning_module,
"action" = ITEM_MOVE_INSIDE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "Weapon control module is secured."
),
//12
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "Scanner module is installed."
),
//13
list(
"key" = /obj/item/stock_parts/capacitor,
"action" = ITEM_MOVE_INSIDE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "Scanner module is secured."
),
//14
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "Capacitor is installed."
),
//15
list(
"key" = /obj/item/stock_parts/cell,
"action" = ITEM_MOVE_INSIDE,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "Capacitor is secured."
),
//16
list(
"key" = TOOL_SCREWDRIVER,
"back_key" = TOOL_CROWBAR,
"desc" = "The power cell is installed."
),
//17
list(
"key" = /obj/item/stack/sheet/metal,
"amount" = 5,
"back_key" = TOOL_SCREWDRIVER,
"desc" = "The power cell is secured."
),
//18
list(
"key" = TOOL_WRENCH,
"back_key" = TOOL_CROWBAR,
"desc" = "Internal armor is installed."
),
//19
list(
"key" = TOOL_WELDER,
"back_key" = TOOL_WRENCH,
"desc" = "Internal armor is wrenched."
),
//20
list(
"key" = /obj/item/mecha_parts/part/medigax_armor,
"action" = ITEM_DELETE,
"back_key" = TOOL_WELDER,
"desc" = "Internal armor is welded."
),
//21
list(
"key" = TOOL_WRENCH,
"back_key" = TOOL_CROWBAR,
"desc" = "External armor is installed."
),
//22
list(
"key" = TOOL_WELDER,
"back_key" = TOOL_WRENCH,
"desc" = "External armor is wrenched."
),
)
/datum/component/construction/mecha/medigax/action(datum/source, atom/used_atom, mob/user)
return check_step(used_atom,user)
/datum/component/construction/mecha/medigax/custom_action(obj/item/I, mob/living/user, diff)
if(!..())
return FALSE
switch(index)
if(1)
user.visible_message("[user] connects [parent] hydraulic systems", "<span class='notice'>You connect [parent] hydraulic systems.</span>")
if(2)
if(diff==FORWARD)
user.visible_message("[user] activates [parent] hydraulic systems.", "<span class='notice'>You activate [parent] hydraulic systems.</span>")
else
user.visible_message("[user] disconnects [parent] hydraulic systems", "<span class='notice'>You disconnect [parent] hydraulic systems.</span>")
if(3)
if(diff==FORWARD)
user.visible_message("[user] adds the wiring to [parent].", "<span class='notice'>You add the wiring to [parent].</span>")
else
user.visible_message("[user] deactivates [parent] hydraulic systems.", "<span class='notice'>You deactivate [parent] hydraulic systems.</span>")
if(4)
if(diff==FORWARD)
user.visible_message("[user] adjusts the wiring of [parent].", "<span class='notice'>You adjust the wiring of [parent].</span>")
else
user.visible_message("[user] removes the wiring from [parent].", "<span class='notice'>You remove the wiring from [parent].</span>")
if(5)
if(diff==FORWARD)
user.visible_message("[user] installs [I] into [parent].", "<span class='notice'>You install [I] into [parent].</span>")
else
user.visible_message("[user] disconnects the wiring of [parent].", "<span class='notice'>You disconnect the wiring of [parent].</span>")
if(6)
if(diff==FORWARD)
user.visible_message("[user] secures the mainboard.", "<span class='notice'>You secure the mainboard.</span>")
else
user.visible_message("[user] removes the central control module from [parent].", "<span class='notice'>You remove the central computer mainboard from [parent].</span>")
if(7)
if(diff==FORWARD)
user.visible_message("[user] installs [I] into [parent].", "<span class='notice'>You install [I] into [parent].</span>")
else
user.visible_message("[user] unfastens the mainboard.", "<span class='notice'>You unfasten the mainboard.</span>")
if(8)
if(diff==FORWARD)
user.visible_message("[user] secures the peripherals control module.", "<span class='notice'>You secure the peripherals control module.</span>")
else
user.visible_message("[user] removes the peripherals control module from [parent].", "<span class='notice'>You remove the peripherals control module from [parent].</span>")
if(9)
if(diff==FORWARD)
user.visible_message("[user] installs [I] into [parent].", "<span class='notice'>You install [I] into [parent].</span>")
else
user.visible_message("[user] unfastens the peripherals control module.", "<span class='notice'>You unfasten the peripherals control module.</span>")
if(10)
if(diff==FORWARD)
user.visible_message("[user] secures the weapon control module.", "<span class='notice'>You secure the weapon control module.</span>")
else
user.visible_message("[user] removes the weapon control module from [parent].", "<span class='notice'>You remove the weapon control module from [parent].</span>")
if(11)
if(diff==FORWARD)
user.visible_message("[user] installs [I] to [parent].", "<span class='notice'>You install [I] to [parent].</span>")
else
user.visible_message("[user] unfastens the weapon control module.", "<span class='notice'>You unfasten the weapon control module.</span>")
if(12)
if(diff==FORWARD)
user.visible_message("[user] secures the scanner module.", "<span class='notice'>You secure the scanner module.</span>")
else
user.visible_message("[user] removes the scanner module from [parent].", "<span class='notice'>You remove the scanner module from [parent].</span>")
if(13)
if(diff==FORWARD)
user.visible_message("[user] installs [I] to [parent].", "<span class='notice'>You install [I] to [parent].</span>")
else
user.visible_message("[user] unfastens the scanner module.", "<span class='notice'>You unfasten the scanner module.</span>")
if(14)
if(diff==FORWARD)
user.visible_message("[user] secures the capacitor.", "<span class='notice'>You secure the capacitor.</span>")
else
user.visible_message("[user] removes the capacitor from [parent].", "<span class='notice'>You remove the capacitor from [parent].</span>")
if(15)
if(diff==FORWARD)
user.visible_message("[user] installs [I] into [parent].", "<span class='notice'>You install [I] into [parent].</span>")
else
user.visible_message("[user] unfastens the capacitor.", "<span class='notice'>You unfasten the capacitor.</span>")
if(16)
if(diff==FORWARD)
user.visible_message("[user] secures the power cell.", "<span class='notice'>You secure the power cell.</span>")
else
user.visible_message("[user] pries the power cell from [parent].", "<span class='notice'>You pry the power cell from [parent].</span>")
if(17)
if(diff==FORWARD)
user.visible_message("[user] installs the internal armor layer to [parent].", "<span class='notice'>You install the internal armor layer to [parent].</span>")
else
user.visible_message("[user] unfastens the power cell.", "<span class='notice'>You unfasten the power cell.</span>")
if(18)
if(diff==FORWARD)
user.visible_message("[user] secures the internal armor layer.", "<span class='notice'>You secure the internal armor layer.</span>")
else
user.visible_message("[user] pries internal armor layer from [parent].", "<span class='notice'>You pry internal armor layer from [parent].</span>")
if(19)
if(diff==FORWARD)
user.visible_message("[user] welds the internal armor layer to [parent].", "<span class='notice'>You weld the internal armor layer to [parent].</span>")
else
user.visible_message("[user] unfastens the internal armor layer.", "<span class='notice'>You unfasten the internal armor layer.</span>")
if(20)
if(diff==FORWARD)
user.visible_message("[user] installs [I] to [parent].", "<span class='notice'>You install [I] to [parent].</span>")
else
user.visible_message("[user] cuts the internal armor layer from [parent].", "<span class='notice'>You cut the internal armor layer from [parent].</span>")
if(21)
if(diff==FORWARD)
user.visible_message("[user] secures Gygax Armor Plates.", "<span class='notice'>You secure Medical Gygax Armor Plates.</span>")
else
user.visible_message("[user] pries Gygax Armor Plates from [parent].", "<span class='notice'>You pry Medical Gygax Armor Plates from [parent].</span>")
if(22)
if(diff==FORWARD)
user.visible_message("[user] welds Gygax Armor Plates to [parent].", "<span class='notice'>You weld Medical Gygax Armor Plates to [parent].</span>")
else
user.visible_message("[user] unfastens Gygax Armor Plates.", "<span class='notice'>You unfasten Medical Gygax Armor Plates.</span>")
return TRUE
// End Medigax
/datum/component/construction/unordered/mecha_chassis/firefighter
result = /datum/component/construction/mecha/firefighter
steps = list(
+41
View File
@@ -129,6 +129,47 @@
desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction."
icon_state = "gygax_armor"
///////// Medical Gygax
/obj/item/mecha_parts/chassis/medigax
name = "\improper Medical Gygax chassis"
construct_type = /datum/component/construction/unordered/mecha_chassis/medigax
/obj/item/mecha_parts/part/medigax_torso
name = "\improper Medical Gygax torso"
desc = "A torso part of Gygax. Contains power unit, processing core and life support systems."
icon_state = "medigax_harness"
/obj/item/mecha_parts/part/medigax_head
name = "\improper Medical Gygax head"
desc = "A Gygax head. Houses advanced surveillance and targeting sensors."
icon_state = "medigax_head"
/obj/item/mecha_parts/part/medigax_left_arm
name = "\improper Medical Gygax left arm"
desc = "A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons."
icon_state = "medigax_l_arm"
/obj/item/mecha_parts/part/medigax_right_arm
name = "\improper Medical Gygax right arm"
desc = "A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons."
icon_state = "medigax_r_arm"
/obj/item/mecha_parts/part/medigax_left_leg
name = "\improper Medical Gygax left leg"
desc = "A Gygax left leg. Constructed with advanced servomechanisms and actuators to enable faster speed."
icon_state = "medigax_l_leg"
/obj/item/mecha_parts/part/medigax_right_leg
name = "\improper Medical Gygax right leg"
desc = "A Gygax right leg. Constructed with advanced servomechanisms and actuators to enable faster speed."
icon_state = "medigax_r_leg"
/obj/item/mecha_parts/part/medigax_armor
gender = PLURAL
name = "\improper Medical Gygax armor plates"
desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction."
icon_state = "medigax_armor"
//////////// Durand
+18
View File
@@ -125,6 +125,24 @@
name = "\improper Dark Gygax wreckage"
icon_state = "darkgygax-broken"
/obj/structure/mecha_wreckage/medigax
name = "\improper Medical Gygax wreckage"
icon_state = "medigax-broken"
/obj/structure/mecha_wreckage/medigax/Initialize()
. = ..()
var/list/parts = list(/obj/item/mecha_parts/part/medigax_torso,
/obj/item/mecha_parts/part/medigax_head,
/obj/item/mecha_parts/part/medigax_left_arm,
/obj/item/mecha_parts/part/medigax_right_arm,
/obj/item/mecha_parts/part/medigax_left_leg,
/obj/item/mecha_parts/part/medigax_right_leg)
for(var/i = 0; i < 2; i++)
if(parts.len && prob(40))
var/part = pick(parts)
welder_salvage += part
parts -= part
/obj/structure/mecha_wreckage/marauder
name = "\improper Marauder wreckage"
icon_state = "marauder-broken"
+34
View File
@@ -0,0 +1,34 @@
/obj/mecha/medical/medigax
desc = "A Gygax with it's actuator overload stripped and a slick white paint scheme, for medical use, These exosuits are developed and produced by Vey-Med. (&copy; All rights reserved)."
name = "\improper Medical Gygax"
icon_state = "medigax"
step_in = 1.75 // a little faster than an odysseus
max_temperature = 25000
max_integrity = 250
wreckage = /obj/structure/mecha_wreckage/odysseus
armor = list("melee" = 25, "bullet" = 20, "laser" = 30, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
internal_damage_threshold = 35
deflect_chance = 15
step_energy_drain = 6
infra_luminosity = 6
/obj/mecha/medical/medigax/moved_inside(mob/living/carbon/human/H)
. = ..()
if(.)
var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
hud.add_hud_to(H)
/obj/mecha/medical/medigax/go_out()
if(isliving(occupant))
var/mob/living/carbon/human/L = occupant
var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
hud.remove_hud_from(L)
..()
/obj/mecha/medical/medigax/mmi_moved_inside(obj/item/mmi/mmi_as_oc, mob/user)
. = ..()
if(.)
var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
var/mob/living/brain/B = mmi_as_oc.brainmob
hud.add_hud_to(B)
+13 -1
View File
@@ -257,7 +257,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
. += "[src] is made of cold-resistant materials."
if(resistance_flags & FIRE_PROOF)
. += "[src] is made of fire-retardant materials."
if(item_flags & (ITEM_CAN_BLOCK | ITEM_CAN_PARRY))
var/datum/block_parry_data/data = return_block_parry_datum(block_parry_data)
. += "[src] has the capacity to be used to block and/or parry. <a href='?src=[REF(data)];name=[name];block=[item_flags & ITEM_CAN_BLOCK];parry=[item_flags & ITEM_CAN_PARRY];render=1'>\[Show Stats\]</a>"
@@ -635,6 +635,18 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/itempush = 1
if(w_class < 4)
itempush = 0 //too light to push anything
if(isliving(hit_atom)) //Living mobs handle hit sounds differently.
var/volume = get_volume_by_throwforce_and_or_w_class()
if (throwforce > 0)
if (throwhitsound)
playsound(hit_atom, throwhitsound, volume, TRUE, -1)
else if(hitsound)
playsound(hit_atom, hitsound, volume, TRUE, -1)
else
playsound(hit_atom, 'sound/weapons/genhit.ogg',volume, TRUE, -1)
else
playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1)
return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum)
/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE)
+2 -1
View File
@@ -88,6 +88,7 @@
var/obj/effect/decal/cleanable/C = locate() in target
qdel(C)
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
target.clean_blood()
SEND_SIGNAL(target, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
target.wash_cream()
return
@@ -180,4 +181,4 @@
name = "Canned Laughter"
desc = "Just looking at this makes you want to giggle."
icon_state = "laughter"
list_reagents = list(/datum/reagent/consumable/laughter = 50)
list_reagents = list(/datum/reagent/consumable/laughter = 50)
@@ -545,7 +545,7 @@
to_chat(usr, "<span class='notice'>This unit already has an expand module installed!</span>")
return FALSE
R.notransform = TRUE
R.mob_transforming = TRUE
var/prev_locked_down = R.locked_down
R.SetLockdown(1)
R.anchored = TRUE
@@ -559,7 +559,7 @@
if(!prev_locked_down)
R.SetLockdown(0)
R.anchored = FALSE
R.notransform = FALSE
R.mob_transforming = FALSE
R.resize = 2
R.hasExpanded = TRUE
R.update_transform()
@@ -779,6 +779,9 @@ GLOBAL_LIST_INIT(plastic_recipes, list(
/obj/item/stack/sheet/plastic/fifty
amount = 50
/obj/item/stack/sheet/plastic/twenty
amount = 20
/obj/item/stack/sheet/plastic/five
amount = 5
@@ -266,6 +266,9 @@
/obj/item/stack/tile/carpet/blackred/twenty
amount = 20
/obj/item/stack/tile/carpet/blackred/thirty
amount = 30
/obj/item/stack/tile/carpet/blackred/fifty
amount = 50
@@ -275,6 +278,9 @@
/obj/item/stack/tile/carpet/monochrome/twenty
amount = 20
/obj/item/stack/tile/carpet/monochrome/thirty
amount = 30
/obj/item/stack/tile/carpet/monochrome/fifty
amount = 50
@@ -284,6 +290,9 @@
/obj/item/stack/tile/carpet/blue/twenty
amount = 20
/obj/item/stack/tile/carpet/blue/thirty
amount = 30
/obj/item/stack/tile/carpet/blue/fifty
amount = 50
@@ -293,6 +302,9 @@
/obj/item/stack/tile/carpet/cyan/twenty
amount = 20
/obj/item/stack/tile/carpet/cyan/thirty
amount = 30
/obj/item/stack/tile/carpet/cyan/fifty
amount = 50
@@ -302,6 +314,9 @@
/obj/item/stack/tile/carpet/green/twenty
amount = 20
/obj/item/stack/tile/carpet/green/thirty
amount = 30
/obj/item/stack/tile/carpet/green/fifty
amount = 50
@@ -311,6 +326,9 @@
/obj/item/stack/tile/carpet/orange/twenty
amount = 20
/obj/item/stack/tile/carpet/orange/thirty
amount = 30
/obj/item/stack/tile/carpet/orange/fifty
amount = 50
@@ -320,6 +338,9 @@
/obj/item/stack/tile/carpet/purple/twenty
amount = 20
/obj/item/stack/tile/carpet/purple/thirty
amount = 30
/obj/item/stack/tile/carpet/purple/fifty
amount = 50
@@ -329,6 +350,9 @@
/obj/item/stack/tile/carpet/red/twenty
amount = 20
/obj/item/stack/tile/carpet/red/thirty
amount = 30
/obj/item/stack/tile/carpet/red/fifty
amount = 50
@@ -338,6 +362,9 @@
/obj/item/stack/tile/carpet/royalblack/twenty
amount = 20
/obj/item/stack/tile/carpet/royalblack/thirty
amount = 30
/obj/item/stack/tile/carpet/royalblack/fifty
amount = 50
@@ -347,6 +374,9 @@
/obj/item/stack/tile/carpet/royalblue/twenty
amount = 20
/obj/item/stack/tile/carpet/royalblue/thirty
amount = 30
/obj/item/stack/tile/carpet/royalblue/fifty
amount = 50
+1 -1
View File
@@ -391,7 +391,7 @@
STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT
STR.max_volume = STORAGE_VOLUME_CHEMISTRY_BAG
STR.insert_preposition = "in"
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/syringe/dart))
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/syringe/dart, /obj/item/reagent_containers/chem_pack))
/*
* Biowaste bag (mostly for xenobiologists)
+2 -1
View File
@@ -180,7 +180,8 @@
/obj/item/implantcase,
/obj/item/implant,
/obj/item/implanter,
/obj/item/pinpointer/crew
/obj/item/pinpointer/crew,
/obj/item/reagent_containers/chem_pack
))
/obj/item/storage/belt/medical/surgery_belt_adv
+19
View File
@@ -138,6 +138,22 @@
icon_type = "cigarette"
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
custom_price = PRICE_ALMOST_CHEAP
var/spawn_coupon = TRUE
/obj/item/storage/fancy/cigarettes/attack_self(mob/user)
if(contents.len == 0 && spawn_coupon)
to_chat(user, "<span class='notice'>You rip the back off \the [src] and get a coupon!</span>")
var/obj/item/coupon/attached_coupon = new
user.put_in_hands(attached_coupon)
attached_coupon.generate()
attached_coupon = null
spawn_coupon = FALSE
name = "discarded cigarette packet"
desc = "An old cigarette packet with the back torn off, worth less than nothing now."
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 0
return
return ..()
/obj/item/storage/fancy/cigarettes/ComponentInitialize()
. = ..()
@@ -148,6 +164,8 @@
/obj/item/storage/fancy/cigarettes/examine(mob/user)
. = ..()
. += "<span class='notice'>Alt-click to extract contents.</span>"
if(spawn_coupon)
. += "<span class='notice'>There's a coupon on the back of the pack! You can tear it off once it's empty.</span>"
/obj/item/storage/fancy/cigarettes/AltClick(mob/living/carbon/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
@@ -308,6 +326,7 @@
w_class = WEIGHT_CLASS_NORMAL
icon_type = "premium cigar"
spawn_type = /obj/item/clothing/mask/cigarette/cigar
spawn_coupon = FALSE
/obj/item/storage/fancy/cigarettes/cigars/ComponentInitialize()
. = ..()
+2 -1
View File
@@ -418,7 +418,8 @@
/obj/item/circuitboard/computer/crew,
/obj/item/stack/sheet/glass,
/obj/item/stack/sheet/mineral/silver,
/obj/item/organ_storage
/obj/item/organ_storage,
/obj/item/reagent_containers/chem_pack
))
//hijacking the minature first aids for hypospray boxes. <3
+43 -10
View File
@@ -188,19 +188,52 @@
new /obj/item/clothing/accessory/medal/plasma/nobel_science(src)
/obj/item/storage/lockbox/medal/engineering
name = "engineering medal box"
desc = "A locked box used to store medals to be given to the members of the engineering department."
req_access = list(ACCESS_CE)
name = "engineering medal box"
desc = "A locked box used to store medals to be given to the members of the engineering department."
req_access = list(ACCESS_CE)
/obj/item/storage/lockbox/medal/engineering/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/clothing/accessory/medal/engineer(src)
for(var/i in 1 to 3)
new /obj/item/clothing/accessory/medal/engineer(src)
/obj/item/storage/lockbox/medal/medical
name = "medical medal box"
desc = "A locked box used to store medals to be given to the members of the medical department."
req_access = list(ACCESS_CMO)
name = "medical medal box"
desc = "A locked box used to store medals to be given to the members of the medical department."
req_access = list(ACCESS_CMO)
/obj/item/storage/lockbox/medal/medical/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src)
for(var/i in 1 to 3)
new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src)
/obj/item/storage/lockbox/order
name = "order lockbox"
desc = "A box used to secure small cargo orders from being looted by those who didn't order it. Yeah, cargo tech, that means you."
icon = 'icons/obj/storage.dmi'
icon_state = "secure"
item_state = "sec-case"
lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi'
w_class = WEIGHT_CLASS_HUGE
var/datum/bank_account/buyer_account
var/privacy_lock = TRUE
/obj/item/storage/lockbox/order/Initialize(datum/bank_account/_buyer_account)
. = ..()
buyer_account = _buyer_account
/obj/item/storage/lockbox/order/attackby(obj/item/W, mob/user, params)
if(!istype(W, /obj/item/card/id))
return ..()
var/obj/item/card/id/id_card = W
if(iscarbon(user))
add_fingerprint(user)
if(id_card.registered_account != buyer_account)
to_chat(user, "<span class='notice'>Bank account does not match with buyer!</span")
return
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SET_LOCKSTATE, !privacy_lock)
privacy_lock = SEND_SIGNAL(src, COMSIG_IS_STORAGE_LOCKED)
user.visible_message("<span class='notice'>[user] [privacy_lock ? "" : "un"]locks [src]'s privacy lock.</span>",
"<span class='notice'>You [privacy_lock ? "" : "un"]lock [src]'s privacy lock.</span>")
+2
View File
@@ -103,6 +103,8 @@
take_damage(400, BRUTE, "melee", 0, get_dir(src, B))
/obj/proc/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) //used by attack_alien, attack_animal, and attack_slime
if(SEND_SIGNAL(src, COMSIG_OBJ_ATTACK_GENERIC, user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) & COMPONENT_STOP_GENERIC_ATTACK)
return FALSE
user.do_attack_animation(src)
user.changeNext_move(CLICK_CD_MELEE)
return take_damage(damage_amount, damage_type, damage_flag, sound_effect, get_dir(src, user), armor_penetration)
@@ -6,8 +6,16 @@
max_integrity = 250
armor = list("melee" = 30, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80)
secure = TRUE
var/melee_min_damage = 20
/obj/structure/closet/secure_closet/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == "melee" && damage_amount < 20)
if(damage_flag == "melee" && damage_amount < melee_min_damage)
return 0
. = ..()
. = ..()
// Exists to work around the minimum 700 cr price for goodies / small items
/obj/structure/closet/secure_closet/goodies
icon_state = "goodies"
desc = "A sturdier card-locked storage unit used for bulky shipments."
max_integrity = 500 // Same as crates.
melee_min_damage = 25 // Idem.
@@ -134,6 +134,8 @@
if(!ishuman(pushed_mob))
return
var/mob/living/carbon/human/H = pushed_mob
if(iscatperson(H))
H.emote("nya")
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table)
/obj/structure/table/shove_act(mob/living/target, mob/living/user)
+5
View File
@@ -87,6 +87,11 @@
smooth = SMOOTH_TRUE
explosion_block = INFINITY
/turf/closed/indestructible/syndicate
icon = 'icons/turf/walls/plastitanium_wall.dmi'
icon_state = "map-shuttle"
smooth = SMOOTH_TRUE
/turf/closed/indestructible/riveted/uranium
icon = 'icons/turf/walls/uranium_wall.dmi'
icon_state = "uranium"
+1 -1
View File
@@ -205,7 +205,7 @@
if(floor_tile)
if(prob(70))
remove_tile()
else if(prob(50))
else if(prob(50) && (/turf/open/space in baseturfs))
ReplaceWithLattice()
/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20)
@@ -0,0 +1,12 @@
/obj/structure/fluff/iced_abductor ///Unless more non-machine ayy structures made, it will stay in fluff.
name = "Mysterious Block of Ice"
desc = "A shadowy figure lies in this sturdy-looking block of ice. Who knows where it came from?"
icon = 'icons/effects/freeze.dmi'
icon_state = "ice_ayy"
density = TRUE
deconstructible = FALSE
/obj/structure/fluff/iced_abductor/Destroy()
var/turf/T = get_turf(src)
new /obj/effect/mob_spawn/human/abductor(T)
. = ..()
@@ -103,7 +103,9 @@
factory.spores += src
. = ..()
/mob/living/simple_animal/hostile/blob/blobspore/Life()
/mob/living/simple_animal/hostile/blob/blobspore/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(!is_zombie && isturf(src.loc))
for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile
if(H.stat == DEAD)
@@ -111,7 +113,6 @@
break
if(factory && z != factory.z)
death()
..()
/mob/living/simple_animal/hostile/blob/blobspore/proc/Zombify(mob/living/carbon/human/H)
is_zombie = 1
@@ -233,39 +234,40 @@
return FALSE
return ..()
/mob/living/simple_animal/hostile/blob/blobbernaut/Life()
if(..())
var/list/blobs_in_area = range(2, src)
if(independent)
return // strong independent blobbernaut that don't need no blob
var/damagesources = 0
if(!(locate(/obj/structure/blob) in blobs_in_area))
damagesources++
if(!factory)
damagesources++
else
if(locate(/obj/structure/blob/core) in blobs_in_area)
adjustHealth(-maxHealth*0.1)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(src)) //hello yes you are being healed
if(overmind)
H.color = overmind.blobstrain.complementary_color
else
H.color = "#000000"
if(locate(/obj/structure/blob/node) in blobs_in_area)
adjustHealth(-maxHealth*0.05)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(src))
if(overmind)
H.color = overmind.blobstrain.complementary_color
else
H.color = "#000000"
if(damagesources)
for(var/i in 1 to damagesources)
adjustHealth(maxHealth*0.025) //take 2.5% of max health as damage when not near the blob or if the naut has no factory, 5% if both
var/image/I = new('icons/mob/blob.dmi', src, "nautdamage", MOB_LAYER+0.01)
I.appearance_flags = RESET_COLOR
/mob/living/simple_animal/hostile/blob/blobbernaut/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
var/list/blobs_in_area = range(2, src)
if(independent)
return // strong independent blobbernaut that don't need no blob
var/damagesources = 0
if(!(locate(/obj/structure/blob) in blobs_in_area))
damagesources++
if(!factory)
damagesources++
else
if(locate(/obj/structure/blob/core) in blobs_in_area)
adjustHealth(-maxHealth*0.1)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(src)) //hello yes you are being healed
if(overmind)
I.color = overmind.blobstrain.complementary_color
flick_overlay_view(I, src, 8)
H.color = overmind.blobstrain.complementary_color
else
H.color = "#000000"
if(locate(/obj/structure/blob/node) in blobs_in_area)
adjustHealth(-maxHealth*0.05)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(src))
if(overmind)
H.color = overmind.blobstrain.complementary_color
else
H.color = "#000000"
if(damagesources)
for(var/i in 1 to damagesources)
adjustHealth(maxHealth*0.025) //take 2.5% of max health as damage when not near the blob or if the naut has no factory, 5% if both
var/image/I = new('icons/mob/blob.dmi', src, "nautdamage", MOB_LAYER+0.01)
I.appearance_flags = RESET_COLOR
if(overmind)
I.color = overmind.blobstrain.complementary_color
flick_overlay_view(I, src, 8)
/mob/living/simple_animal/hostile/blob/blobbernaut/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
. = ..()
@@ -129,10 +129,10 @@
target.Stun(power_time)
to_chat(L, "<span class='notice'>[target] is fixed in place by your hypnotic gaze.</span>")
target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm
target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze.
target.mob_transforming = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze.
spawn(power_time)
if(istype(target) && success)
target.notransform = FALSE
target.mob_transforming = FALSE
if(istype(L) && target.stat == CONSCIOUS && (target in L.fov_view(10))) // They Woke Up! (Notice if within view)
to_chat(L, "<span class='warning'>[target] has snapped out of their trance.</span>")
@@ -20,7 +20,7 @@
. = ..()
if(!.)
return
if(owner.notransform || !get_turf(owner))
if(owner.mob_transforming || !get_turf(owner))
return FALSE
return TRUE
@@ -83,7 +83,7 @@
// Freeze Me
user.next_move = world.time + mist_delay
user.Stun(mist_delay, ignore_canstun = TRUE)
user.notransform = TRUE
user.mob_transforming = TRUE
user.density = FALSE
var/invis_was = user.invisibility
user.invisibility = INVISIBILITY_MAXIMUM
@@ -106,7 +106,7 @@
user.dir = get_dir(my_turf, target_turf)
user.next_move = world.time + mist_delay / 2
user.Stun(mist_delay / 2, ignore_canstun = TRUE)
user.notransform = FALSE
user.mob_transforming = FALSE
user.density = 1
user.invisibility = invis_was
@@ -21,7 +21,7 @@
var/datum/changelingprofile/chosen_prof = changeling.get_dna(chosen_name)
if(!chosen_prof)
return
if(!user || user.notransform)
if(!user || user.mob_transforming)
return 0
to_chat(user, "<span class='notice'>We transform our appearance.</span>")
@@ -11,9 +11,9 @@
//Transform into a monkey.
/obj/effect/proc_holder/changeling/lesserform/sting_action(mob/living/carbon/human/user)
if(!user || user.notransform)
if(!user || user.mob_transforming)
return 0
to_chat(user, "<span class='warning'>Our genes cry out!</span>")
user.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPORGANS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE)
return TRUE
return TRUE
@@ -40,8 +40,9 @@
if(!shield_health)
return "<span class='warning'>Its shield has been destroyed!</span>"
/mob/living/simple_animal/hostile/clockwork/marauder/Life()
..()
/mob/living/simple_animal/hostile/clockwork/marauder/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
var/turf/T = get_turf(src)
var/turf/open/space/S = isspaceturf(T)? T : null
var/less_space_damage
+3 -2
View File
@@ -48,8 +48,9 @@
..()
boost = world.time + 30
/mob/living/simple_animal/imp/Life()
..()
/mob/living/simple_animal/imp/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(boost<world.time)
speed = 1
else
@@ -107,7 +107,9 @@
mind.add_antag_datum(/datum/antagonist/revenant)
//Life, Stat, Hud Updates, and Say
/mob/living/simple_animal/revenant/Life()
/mob/living/simple_animal/revenant/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(stasis)
return
if(revealed && essence <= 0)
@@ -120,14 +122,13 @@
to_chat(src, "<span class='revenboldnotice'>You are once more concealed.</span>")
if(unstun_time && world.time >= unstun_time)
unstun_time = 0
notransform = FALSE
mob_transforming = FALSE
to_chat(src, "<span class='revenboldnotice'>You can move again!</span>")
if(essence_regenerating && !inhibited && essence < essence_regen_cap) //While inhibited, essence will not regenerate
essence = min(essence_regen_cap, essence+essence_regen_amount)
update_action_buttons_icon() //because we update something required by our spells in life, we need to update our buttons
update_spooky_icon()
update_health_hud()
..()
/mob/living/simple_animal/revenant/Stat()
..()
@@ -218,7 +219,7 @@
return 0
stasis = TRUE
to_chat(src, "<span class='revendanger'>NO! No... it's too late, you can feel your essence [pick("breaking apart", "drifting away")]...</span>")
notransform = TRUE
mob_transforming = TRUE
revealed = TRUE
invisibility = 0
playsound(src, 'sound/effects/screech.ogg', 100, 1)
@@ -260,7 +261,7 @@
return
if(time <= 0)
return
notransform = TRUE
mob_transforming = TRUE
if(!unstun_time)
to_chat(src, "<span class='revendanger'>You cannot move!</span>")
unstun_time = world.time + time
@@ -271,7 +272,7 @@
/mob/living/simple_animal/revenant/proc/update_spooky_icon()
if(revealed)
if(notransform)
if(mob_transforming)
if(draining)
icon_state = icon_drain
else
@@ -320,7 +321,7 @@
/mob/living/simple_animal/revenant/proc/death_reset()
revealed = FALSE
unreveal_time = 0
notransform = 0
mob_transforming = 0
unstun_time = 0
inhibited = FALSE
draining = FALSE
@@ -257,6 +257,8 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
return
if (active)
return //prevent the AI from activating an already active doomsday
if (owner_AI.shunted)
return //prevent AI from activating doomsday while shunted.
active = TRUE
set_us_up_the_bomb(owner)
@@ -369,7 +369,7 @@
var/mob/living/carbon/last_user
/obj/item/warpwhistle/proc/interrupted(mob/living/carbon/user)
if(!user || QDELETED(src) || user.notransform)
if(!user || QDELETED(src) || user.mob_transforming)
on_cooldown = FALSE
return TRUE
return FALSE
@@ -1,20 +1,39 @@
/*Cabin areas*/
/area/awaymission/snowforest
name = "Snow Forest"
icon_state = "away"
requires_power = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
/area/awaymission/cabin
name = "Cabin"
icon_state = "away2"
requires_power = TRUE
dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
/area/awaymission/snowforest/lumbermill
/area/awaymission/cabin/snowforest
name = "Snow Forest"
icon_state = "away"
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
/area/awaymission/cabin/snowforest/sovietsurface
name = "Snow Forest"
icon_state = "awaycontent29"
requires_power = FALSE
/area/awaymission/cabin/lumbermill
name = "Lumbermill"
icon_state = "away3"
requires_power = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
/area/awaymission/cabin/caves/sovietcave
name = "Soviet Bunker"
icon_state = "awaycontent4"
/area/awaymission/cabin/caves
name = "North Snowdin Caves"
icon_state = "awaycontent15"
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
/area/awaymission/cabin/caves/mountain
name = "North Snowdin Mountains"
icon_state = "awaycontent24"
/obj/structure/firepit
name = "firepit"
@@ -92,7 +111,7 @@
egg_type = null
speak = list()
/*Cabin's forest*/
/*Cabin's forest. Removed in the new cabin map since it was buggy and I prefer manual placement.*/
/datum/mapGenerator/snowy
modules = list(/datum/mapGeneratorModule/bottomlayer/snow, \
/datum/mapGeneratorModule/snow/pineTrees, \
@@ -136,4 +155,4 @@
endTurfX = 159
endTurfY = 157
startTurfX = 37
startTurfY = 35
startTurfY = 35
@@ -475,43 +475,26 @@
/obj/effect/spawner/lootdrop/snowdin/dungeonlite
name = "dungeon lite"
loot = list(/obj/item/melee/classic_baton = 11,
/obj/item/melee/classic_baton/telescopic = 12,
/obj/item/book/granter/spell/smoke = 10,
loot = list(/obj/item/book/granter/spell/smoke = 10,
/obj/item/book/granter/spell/blind = 10,
/obj/item/storage/firstaid/regular = 45,
/obj/item/storage/firstaid/toxin = 35,
/obj/item/storage/firstaid/brute = 27,
/obj/item/storage/firstaid/fire = 27,
/obj/item/storage/toolbox/syndicate = 12,
/obj/item/grenade/plastic/c4 = 7,
/obj/item/grenade/clusterbuster/smoke = 15,
/obj/item/clothing/under/chameleon = 13,
/obj/item/clothing/shoes/chameleon/noslip = 10,
/obj/item/borg/upgrade/ddrill = 3)
/obj/effect/spawner/lootdrop/snowdin/dungeonmid
name = "dungeon mid"
loot = list(/obj/item/defibrillator/compact = 6,
/obj/item/storage/firstaid/tactical = 35,
/obj/item/shield/energy = 6,
/obj/item/shield/riot/tele = 12,
/obj/item/dnainjector/lasereyesmut = 7,
/obj/item/gun/magic/wand/fireball/inert = 3,
loot = list(/obj/item/shield/riot = 12,
/obj/item/pneumatic_cannon = 15,
/obj/item/melee/transforming/energy/sword = 7,
/obj/item/book/granter/spell/knock = 15,
/obj/item/book/granter/spell/summonitem = 20,
/obj/item/book/granter/spell/forcewall = 17,
/obj/item/storage/backpack/holding = 12,
/obj/item/grenade/spawnergrenade/manhacks = 6,
/obj/item/grenade/spawnergrenade/spesscarp = 7,
/obj/item/grenade/clusterbuster/inferno = 3,
/obj/item/stack/sheet/mineral/diamond{amount = 15} = 10,
/obj/item/stack/sheet/mineral/uranium{amount = 15} = 10,
/obj/item/stack/sheet/mineral/plasma{amount = 15} = 10,
/obj/item/stack/sheet/mineral/gold{amount = 15} = 10,
/obj/item/book/granter/spell/barnyard = 4,
/obj/item/pickaxe/drill/diamonddrill = 6,
/obj/item/borg/upgrade/vtec = 7,
/obj/item/borg/upgrade/disablercooler = 7)
@@ -519,21 +502,12 @@
/obj/effect/spawner/lootdrop/snowdin/dungeonheavy
name = "dungeon heavy"
loot = list(/obj/item/twohanded/singularityhammer = 25,
/obj/item/twohanded/mjollnir = 10,
/obj/item/twohanded/fireaxe = 25,
loot = list(/obj/item/twohanded/fireaxe = 25,
/obj/item/organ/brain/alien = 17,
/obj/item/twohanded/dualsaber = 15,
/obj/item/organ/heart/demon = 7,
/obj/item/gun/ballistic/automatic/c20r/unrestricted = 16,
/obj/item/gun/magic/wand/resurrection/inert = 15,
/obj/item/gun/magic/wand/resurrection = 10,
/obj/item/uplink/old = 2,
/obj/item/book/granter/spell/charge = 12,
/obj/item/grenade/clusterbuster/spawner_manhacks = 15,
/obj/item/book/granter/spell/fireball = 10,
/obj/item/organ/heart/cursed = 7,
/obj/item/book/granter/spell/forcewall = 17,
/obj/item/gun/magic/wand/fireball/inert = 3,
/obj/item/pickaxe/drill/jackhammer = 30,
/obj/item/borg/upgrade/syndicate = 13,
/obj/item/borg/upgrade/selfrepair = 17)
/obj/effect/spawner/lootdrop/snowdin/dungeonmisc
@@ -1,51 +0,0 @@
//Spacebattle Areas
/area/awaymission/spacebattle
name = "Space Battle"
icon_state = "awaycontent1"
requires_power = FALSE
/area/awaymission/spacebattle/cruiser
name = "Nanotrasen Cruiser"
icon_state = "awaycontent2"
/area/awaymission/spacebattle/syndicate1
name = "Syndicate Assault Ship 1"
icon_state = "awaycontent3"
/area/awaymission/spacebattle/syndicate2
name = "Syndicate Assault Ship 2"
icon_state = "awaycontent4"
/area/awaymission/spacebattle/syndicate3
name = "Syndicate Assault Ship 3"
icon_state = "awaycontent5"
/area/awaymission/spacebattle/syndicate4
name = "Syndicate War Sphere 1"
icon_state = "awaycontent6"
/area/awaymission/spacebattle/syndicate5
name = "Syndicate War Sphere 2"
icon_state = "awaycontent7"
/area/awaymission/spacebattle/syndicate6
name = "Syndicate War Sphere 3"
icon_state = "awaycontent8"
/area/awaymission/spacebattle/syndicate7
name = "Syndicate Fighter"
icon_state = "awaycontent9"
/area/awaymission/spacebattle/secret
name = "Hidden Chamber"
icon_state = "awaycontent10"
/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,
/obj/item/gun/ballistic/automatic/c20r,
/obj/item/shield/energy)
/mob/living/simple_animal/hostile/syndicate/melee/spacebattle
deathmessage = "falls limp as they release their grip from the energy weapons, activating their self-destruct function!"
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
+21 -1
View File
@@ -18,6 +18,7 @@
var/obj/item/radio/headset/radio
/// var that tracks message cooldown
var/message_cooldown
var/list/loaded_coupons
light_color = "#E2853D"//orange
@@ -134,6 +135,8 @@
"cost" = P.cost,
"id" = pack,
"desc" = P.desc || P.name, // If there is a description, use it. Otherwise use the pack's name.
"private_goody" = P.goody == PACK_GOODY_PRIVATE,
"goody" = P.goody == PACK_GOODY_PUBLIC,
"access" = P.access,
"can_private_buy" = P.can_private_buy
))
@@ -215,8 +218,22 @@
if(isnull(reason) || ..())
return
if(pack.goody == PACK_GOODY_PRIVATE && !self_paid)
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
say("ERROR: Private small crates may only be purchased by private accounts.")
return
var/obj/item/coupon/applied_coupon
for(var/i in loaded_coupons)
var/obj/item/coupon/coupon_check = i
if(pack.type == coupon_check.discounted_pack)
say("Coupon found! [round(coupon_check.discount_pct_off * 100)]% off applied!")
coupon_check.moveToNullspace()
applied_coupon = coupon_check
break
var/turf/T = get_turf(src)
var/datum/supply_order/SO = new(pack, name, rank, ckey, reason, account)
var/datum/supply_order/SO = new(pack, name, rank, ckey, reason, account, applied_coupon)
SO.generateRequisition(T)
if(requestonly && !self_paid)
SSshuttle.requestlist += SO
@@ -229,6 +246,9 @@
var/id = text2num(params["id"])
for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
if(SO.id == id)
if(SO.applied_coupon)
say("Coupon refunded.")
SO.applied_coupon.forceMove(get_turf(src))
SSshuttle.shoppinglist -= SO
. = TRUE
break
+50
View File
@@ -0,0 +1,50 @@
#define COUPON_OMEN "omen"
/obj/item/coupon
name = "coupon"
desc = "It doesn't matter if you didn't want it before, what matters now is that you've got a coupon for it!"
icon_state = "data_1"
icon = 'icons/obj/card.dmi'
item_flags = NOBLUDGEON
w_class = WEIGHT_CLASS_TINY
var/datum/supply_pack/discounted_pack
var/discount_pct_off = 0.05
var/obj/machinery/computer/cargo/inserted_console
/// Choose what our prize is :D
/obj/item/coupon/proc/generate()
discounted_pack = pick(subtypesof(/datum/supply_pack/goody))
var/list/chances = list("0.10" = 4, "0.15" = 8, "0.20" = 10, "0.25" = 8, "0.50" = 4, COUPON_OMEN = 1)
discount_pct_off = pickweight(chances)
if(discount_pct_off == COUPON_OMEN)
name = "coupon - fuck you"
desc = "The small text reads, 'You will be slaughtered'... That doesn't sound right, does it?"
if(ismob(loc))
var/mob/M = loc
to_chat(M, "<span class='warning'>The coupon reads '<b>fuck you</b>' in large, bold text... is- is that a prize, or?</span>")
M.AddComponent(/datum/component/omen, TRUE, src)
else
discount_pct_off = text2num(discount_pct_off)
name = "coupon - [round(discount_pct_off * 100)]% off [initial(discounted_pack.name)]"
/obj/item/coupon/attack_obj(obj/O, mob/living/user)
if(!istype(O, /obj/machinery/computer/cargo))
return ..()
if(discount_pct_off == COUPON_OMEN)
to_chat(user, "<span class='warning'>\The [O] validates the coupon as authentic, but refuses to accept it...</span>")
O.say("Coupon fulfillment already in progress...")
return
inserted_console = O
LAZYADD(inserted_console.loaded_coupons, src)
inserted_console.say("Coupon for [initial(discounted_pack.name)] applied!")
forceMove(inserted_console)
/obj/item/coupon/Destroy()
if(inserted_console)
LAZYREMOVE(inserted_console.loaded_coupons, src)
inserted_console = null
. = ..()
#undef COUPON_OMEN
+42 -33
View File
@@ -27,10 +27,12 @@
var/orderer_rank
var/orderer_ckey
var/reason
var/discounted_pct
var/datum/supply_pack/pack
var/datum/bank_account/paying_account
var/obj/item/coupon/applied_coupon
/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason, paying_account)
/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason, paying_account, coupon)
id = SSshuttle.ordernum++
src.pack = pack
src.orderer = orderer
@@ -38,6 +40,7 @@
src.orderer_ckey = orderer_ckey
src.reason = reason
src.paying_account = paying_account
src.applied_coupon = coupon
/datum/supply_order/proc/generateRequisition(turf/T)
var/obj/item/paper/P = new(T)
@@ -57,58 +60,64 @@
P.update_icon()
return P
/datum/supply_order/proc/generateManifest(obj/structure/closet/crate/C)
var/obj/item/paper/fluff/jobs/cargo/manifest/P = new(C, id, pack.cost)
/datum/supply_order/proc/generateManifest(obj/container, owner, packname) //generates-the-manifests.
var/obj/item/paper/fluff/jobs/cargo/manifest/P = new(container, id, 0)
var/station_name = (P.errors & MANIFEST_ERROR_NAME) ? new_station_name() : station_name()
P.name = "shipping manifest - #[id] ([pack.name])"
P.name = "shipping manifest - [packname?"#[id] ([pack.name])":"(Grouped Item Crate)"]"
P.info += "<h2>[command_name()] Shipping Manifest</h2>"
P.info += "<hr/>"
if(paying_account)
P.info += "Direct purchase from [paying_account.account_holder]<br/>"
P.name += " - Purchased by [paying_account.account_holder]"
if(id && !(id == "Cargo"))
P.info += "Direct purchase from [owner]<br/>"
P.name += " - Purchased by [owner]"
P.info += "Order #[id]<br/>"
P.info += "Destination: [station_name]<br/>"
P.info += "Item: [pack.name]<br/>"
if(packname)
P.info += "Item: [packname]<br/>"
P.info += "Contents: <br/>"
P.info += "<ul>"
for(var/atom/movable/AM in C.contents - P - C.lockerelectronics)
var/list/ignore_this = list(P)
if(istype(container, /obj/structure/closet))
var/obj/structure/closet/C = container
ignore_this += C.lockerelectronics
for(var/atom/movable/AM in container.contents - ignore_this)
if((P.errors & MANIFEST_ERROR_CONTENTS) && prob(50))
continue
P.info += "<li>[AM.name]</li>"
P.info += "</ul>"
P.info += "<h4>Stamp below to confirm receipt of goods:</h4>"
if(P.errors & MANIFEST_ERROR_ITEM)
var/static/list/blacklisted_error = typecacheof(list(
/obj/structure/closet/crate/secure,
/obj/structure/closet/crate/large,
/obj/structure/closet/secure_closet/goodies
))
if(blacklisted_error[container.type])
P.errors &= ~MANIFEST_ERROR_ITEM
else
var/lost = max(round(container.contents.len / 10), 1)
while(--lost >= 0)
qdel(pick(container.contents))
P.update_icon()
P.forceMove(C)
C.manifest = P
C.update_icon()
P.forceMove(container)
if(istype(container, /obj/structure/closet/crate))
var/obj/structure/closet/crate/C = container
C.manifest = P
C.update_icon()
return P
/datum/supply_order/proc/generate(atom/A)
var/obj/structure/closet/crate/C = pack.generate(A, paying_account)
var/obj/item/paper/fluff/jobs/cargo/manifest/M = generateManifest(C)
if(M.errors & MANIFEST_ERROR_ITEM)
if(istype(C, /obj/structure/closet/crate/secure) || istype(C, /obj/structure/closet/crate/large))
M.errors &= ~MANIFEST_ERROR_ITEM
else
var/lost = max(round(C.contents.len / 10), 1)
while(--lost >= 0)
qdel(pick(C.contents))
generateManifest(C, paying_account, pack)
return C
//Paperwork for NT
/obj/item/folder/paperwork
name = "Incomplete Paperwork"
desc = "These should've been filled out four months ago! Unfinished grant papers issued by Nanotrasen's finance department. Complete this page for additional funding."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "docs_generic"
/obj/item/folder/paperwork_correct
name = "Finished Paperwork"
desc = "A neat stack of filled-out forms, in triplicate and signed. Is there anything more satisfying? Make sure they get stamped."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "docs_verified"
/datum/supply_order/proc/generateCombo(var/miscbox, var/misc_own, var/misc_contents)
for (var/I in misc_contents)
new I(miscbox)
generateManifest(miscbox, misc_own, "")
return
+1
View File
@@ -15,6 +15,7 @@
var/special_enabled = FALSE
var/DropPodOnly = FALSE //only usable by the Bluespace Drop Pod via the express cargo console
var/admin_spawned = FALSE //Can only an admin spawn this crate?
var/goody = PACK_GOODY_NONE //Small items can be grouped into a single crate.They also come in a closet/lockbox instead of a full crate, so the 700 min doesn't apply
var/can_private_buy = TRUE //Can it be purchased privately by each crewmember?
/datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account)
-9
View File
@@ -37,15 +37,6 @@
contains = list(/obj/item/storage/box/chemimp)
crate_name = "chemical implant crate"
/datum/supply_pack/security/armory/combatknives
name = "Combat Knives Crate"
desc = "Contains three sharpened combat knives. Each knife guaranteed to fit snugly inside any Nanotrasen-standard boot. Requires Armory access to open."
cost = 3200
contains = list(/obj/item/kitchen/knife/combat,
/obj/item/kitchen/knife/combat,
/obj/item/kitchen/knife/combat)
crate_name = "combat knife crate"
/datum/supply_pack/security/armory/ballistic
name = "Combat Shotguns Crate"
desc = "For when the enemy absolutely needs to be replaced with lead. Contains three Aussec-designed Combat Shotguns, with three Shotgun Bandoliers, as well as seven buchshot and 12g shotgun slugs. Requires Armory access to open."
+1 -10
View File
@@ -90,16 +90,6 @@
crate_name = "industrial rcd"
crate_type = /obj/structure/closet/crate/secure/engineering
/datum/supply_pack/engineering/powergamermitts
name = "Insulated Gloves Crate"
desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains three insulated gloves."
cost = 2300 //Made of pure-grade bullshittinium
contains = list(/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/gloves/color/yellow)
crate_name = "insulated gloves crate"
crate_type = /obj/structure/closet/crate/engineering/electrical
/datum/supply_pack/engineering/inducers
name = "NT-75 Electromagnetic Power Inducers Crate"
desc = "No rechargers? No problem, with the NT-75 EPI, you can recharge any standard cell-based equipment anytime, anywhere. Contains two Inducers."
@@ -162,6 +152,7 @@
/obj/item/storage/toolbox/mechanical)
cost = 1200
crate_name = "toolbox crate"
special = TRUE //Department resupply shuttle loan event.
/datum/supply_pack/engineering/bsa
name = "Bluespace Artillery Parts"
+77
View File
@@ -0,0 +1,77 @@
/datum/supply_pack/goody
access = NONE
group = "Goodies"
goody = PACK_GOODY_PRIVATE
/datum/supply_pack/goody/combatknives_single
name = "Combat Knife Single-Pack"
desc = "Contains one sharpened combat knive. Guaranteed to fit snugly inside any Nanotrasen-standard boot."
cost = 800
contains = list(/obj/item/kitchen/knife/combat)
/datum/supply_pack/goody/sologamermitts
name = "Insulated Gloves Single-Pack"
desc = "The backbone of modern society. Barely ever ordered for actual engineering."
cost = 800
contains = list(/obj/item/clothing/gloves/color/yellow)
/datum/supply_pack/goody/firstaidbruises_single
name = "Bruise Treatment Kit Single-Pack"
desc = "A single brute first-aid kit, perfect for recovering from being crushed in an airlock. Did you know people get crushed in airlocks all the time? Interesting..."
cost = 330
contains = list(/obj/item/storage/firstaid/brute)
/datum/supply_pack/goody/firstaidburns_single
name = "Burn Treatment Kit Single-Pack"
desc = "A single burn first-aid kit. The advertisement displays a winking atmospheric technician giving a thumbs up, saying \"Mistakes happen!\""
cost = 330
contains = list(/obj/item/storage/firstaid/fire)
/datum/supply_pack/goody/firstaid_single
name = "First Aid Kit Single-Pack"
desc = "A single first-aid kit, fit for healing most types of bodily harm."
cost = 250
contains = list(/obj/item/storage/firstaid/regular)
/datum/supply_pack/goody/firstaidoxygen_single
name = "Oxygen Deprivation Kit Single-Pack"
desc = "A single oxygen deprivation first-aid kit, marketed heavily to those with crippling fears of asphyxiation."
cost = 330
contains = list(/obj/item/storage/firstaid/o2)
/datum/supply_pack/goody/firstaidtoxins_single
name = "Toxin Treatment Kit Single-Pack"
desc = "A single first aid kit focused on healing damage dealt by heavy toxins."
cost = 330
contains = list(/obj/item/storage/firstaid/toxin)
/datum/supply_pack/goody/toolbox // mostly just to water down coupon probability
name = "Mechanical Toolbox"
desc = "A fully stocked mechanical toolbox, for when you're too lazy to just print them out."
cost = 300
contains = list(/obj/item/storage/toolbox/mechanical)
/datum/supply_pack/goody/electrical_toolbox // mostly just to water down coupon probability
name = "Mechanical Toolbox"
desc = "A fully stocked electrical toolbox, for when you're too lazy to just print them out."
cost = 300
contains = list(/obj/item/storage/toolbox/electrical)
/datum/supply_pack/goody/valentine
name = "Valentine Card"
desc = "Make an impression on that special someone! Comes with one valentine card and a free candy heart!"
cost = 150
contains = list(/obj/item/valentine, /obj/item/reagent_containers/food/snacks/candyheart)
/datum/supply_pack/goody/beeplush
name = "Bee Plushie"
desc = "The most important thing you could possibly spend your hard-earned money on."
cost = 1500
contains = list(/obj/item/toy/plush/beeplushie)
/datum/supply_pack/goody/beach_ball
name = "Beach Ball"
desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen"
cost = 200
contains = list(/obj/item/toy/beach_ball)
+27 -49
View File
@@ -14,53 +14,60 @@
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/materials/cardboard50
goody = PACK_GOODY_PUBLIC
name = "50 Cardboard Sheets"
desc = "Create a bunch of boxes."
cost = 1000
cost = 300 //thrice their export value
contains = list(/obj/item/stack/sheet/cardboard/fifty)
crate_name = "cardboard sheets crate"
/datum/supply_pack/materials/glass50
goody = PACK_GOODY_PUBLIC
name = "50 Glass Sheets"
desc = "Let some nice light in with fifty glass sheets!"
cost = 850
cost = 300 //double their export value
contains = list(/obj/item/stack/sheet/glass/fifty)
crate_name = "glass sheets crate"
/datum/supply_pack/materials/metal50
goody = PACK_GOODY_PUBLIC
name = "50 Metal Sheets"
desc = "Any construction project begins with a good stack of fifty metal sheets!"
cost = 850
cost = 300 //double their export value
contains = list(/obj/item/stack/sheet/metal/fifty)
crate_name = "metal sheets crate"
/datum/supply_pack/materials/plasteel20
goody = PACK_GOODY_PUBLIC
name = "20 Plasteel Sheets"
desc = "Reinforce the station's integrity with twenty plasteel sheets!"
cost = 4700
cost = 4000
contains = list(/obj/item/stack/sheet/plasteel/twenty)
crate_name = "plasteel sheets crate"
/datum/supply_pack/materials/plasteel50
name = "50 Plasteel Sheets"
desc = "For when you REALLY have to reinforce something."
cost = 9050
contains = list(/obj/item/stack/sheet/plasteel/fifty)
crate_name = "plasteel sheets crate"
/datum/supply_pack/materials/plastic50
goody = PACK_GOODY_PUBLIC
name = "50 Plastic Sheets"
desc = "Build a limitless amount of toys with fifty plastic sheets!"
cost = 950
contains = list(/obj/item/stack/sheet/plastic/fifty)
crate_name = "plastic sheets crate"
cost = 200 // double their export
contains = list(/obj/item/stack/sheet/plastic/twenty)
/datum/supply_pack/materials/sandstone30
goody = PACK_GOODY_PUBLIC
name = "30 Sandstone Blocks"
desc = "Neither sandy nor stoney, these thirty blocks will still get the job done."
cost = 800
cost = 150 // five times their export
contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty)
crate_name = "sandstone blocks crate"
/datum/supply_pack/materials/wood50
goody = PACK_GOODY_PUBLIC
name = "50 Wood Planks"
desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!"
cost = 400 // 6-7 planks shy from having equal import/export prices
contains = list(/obj/item/stack/sheet/mineral/wood/twenty)
/datum/supply_pack/materials/rcdammo
goody = PACK_GOODY_PUBLIC
name = "Large RCD ammo Single-Pack"
desc = "A single large compressed RCD matter pack, to help with any holes or projects people might be working on."
cost = 600
contains = list(/obj/item/rcd_ammo/large)
/datum/supply_pack/materials/rawlumber
name = "50 Towercap Logs"
@@ -74,35 +81,6 @@
for(var/i in 1 to 49)
new /obj/item/grown/log(.)
/datum/supply_pack/materials/wood50
name = "50 Wood Planks"
desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!"
cost = 1450
contains = list(/obj/item/stack/sheet/mineral/wood/fifty)
crate_name = "wood planks crate"
/datum/supply_pack/materials/rcdammo
name = "Spare RCD ammo"
desc = "This crate contains sixteen RCD compressed matter packs, to help with any holes or projects people might be working on."
cost = 3750
contains = list(/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo,
/obj/item/rcd_ammo)
crate_name = "rcd ammo"
//////////////////////////////////////////////////////////////////////////////
///////////////////////////// Canisters //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
-57
View File
@@ -141,34 +141,6 @@
///////////////////////////// Medical Kits ///////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/medical/firstaidbruises
name = "Bruise Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing bruises and broken bones."
cost = 1000
contains = list(/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/brute)
crate_name = "brute treatment kit crate"
/datum/supply_pack/medical/firstaidburns
name = "Burn Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing severe burns."
cost = 1000
contains = list(/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/fire)
crate_name = "burn treatment kit crate"
/datum/supply_pack/medical/firstaid
name = "First Aid Kit Crate"
desc = "Contains four first aid kits for healing most types of wounds."
cost = 1000
contains = list(/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/regular)
crate_name = "first aid kit crate"
/datum/supply_pack/medical/sprays
name = "Medical Sprays"
desc = "Contains two cans of Styptic Spray, Silver Sulfadiazine Spray, Synthflesh Spray and Sterilizer Compound Spray."
@@ -183,35 +155,6 @@
/obj/item/reagent_containers/medspray/sterilizine)
crate_name = "medical supplies crate"
/datum/supply_pack/medical/firstaidmixed
name = "Mixed Medical Kits"
desc = "Contains one of each medical kits for dealing with a variety of injured crewmembers."
cost = 1250
contains = list(/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/o2,
/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/regular)
crate_name = "medical supplies crate"
/datum/supply_pack/medical/firstaidoxygen
name = "Oxygen Deprivation Kit Crate"
desc = "Contains three first aid kits focused on helping oxygen deprivation victims."
cost = 1000
contains = list(/obj/item/storage/firstaid/o2,
/obj/item/storage/firstaid/o2,
/obj/item/storage/firstaid/o2)
crate_name = "oxygen deprivation kit crate"
/datum/supply_pack/medical/firstaidtoxins
name = "Toxin Treatment Kit Crate"
desc = "Contains three first aid kits focused on healing damage dealt by heavy toxins."
cost = 1000
contains = list(/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin,
/obj/item/storage/firstaid/toxin)
crate_name = "toxin treatment kit crate"
/datum/supply_pack/medical/advrad
name = "Radiation Treatment Crate Deluxe"
desc = "A crate for when radiation is out of hand... Contains two rad-b-gone kits, one bottle of anti radiation deluxe pills, as well as a radiation treatment deluxe pill bottle!"
+51 -38
View File
@@ -333,45 +333,58 @@
//////////////////////////// Misc + Decor ////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/datum/supply_pack/misc/carpet_exotic
name = "Exotic Carpet Crate"
desc = "Exotic carpets straight from Space Russia, for all your decorating needs. Contains 100 tiles each of 10 different flooring patterns."
cost = 7000
contains = list(/obj/item/stack/tile/carpet/blue/fifty,
/obj/item/stack/tile/carpet/blue/fifty,
/obj/item/stack/tile/carpet/cyan/fifty,
/obj/item/stack/tile/carpet/cyan/fifty,
/obj/item/stack/tile/carpet/green/fifty,
/obj/item/stack/tile/carpet/green/fifty,
/obj/item/stack/tile/carpet/orange/fifty,
/obj/item/stack/tile/carpet/orange/fifty,
/obj/item/stack/tile/carpet/purple/fifty,
/obj/item/stack/tile/carpet/purple/fifty,
/obj/item/stack/tile/carpet/red/fifty,
/obj/item/stack/tile/carpet/red/fifty,
/obj/item/stack/tile/carpet/royalblue/fifty,
/obj/item/stack/tile/carpet/royalblue/fifty,
/obj/item/stack/tile/carpet/royalblack/fifty,
/obj/item/stack/tile/carpet/royalblack/fifty,
/obj/item/stack/tile/carpet/blackred/fifty,
/obj/item/stack/tile/carpet/blackred/fifty,
/obj/item/stack/tile/carpet/monochrome/fifty,
/obj/item/stack/tile/carpet/monochrome/fifty)
crate_name = "exotic carpet crate"
/datum/supply_pack/misc/carpet
name = "Premium Carpet Crate"
desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains some classic carpet, along with black, red, and monochrome varients."
cost = 1350
contains = list(/obj/item/stack/tile/carpet/fifty,
/obj/item/stack/tile/carpet/fifty,
/obj/item/stack/tile/carpet/black/fifty,
/obj/item/stack/tile/carpet/black/fifty,
/obj/item/stack/tile/carpet/blackred/fifty,
/obj/item/stack/tile/carpet/blackred/fifty,
/obj/item/stack/tile/carpet/monochrome/fifty,
/obj/item/stack/tile/carpet/monochrome/fifty)
crate_name = "premium carpet crate"
goody = PACK_GOODY_PUBLIC
name = "Classic Carpet Single-Pack"
desc = "Plasteel floor tiles getting on your nerves? This 50 units stack of extra soft carpet will tie any room together."
cost = 200
contains = list(/obj/item/stack/tile/carpet/fifty)
/datum/supply_pack/misc/carpet/black
name = "Black Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/black/fifty)
/datum/supply_pack/misc/carpet/premium
name = "Monochrome Carpet Single-Pack"
desc = "Exotic carpets for all your decorating needs. This 30 units stack of extra soft carpet will tie any room together."
cost = 250
contains = list(/obj/item/stack/tile/carpet/monochrome/thirty)
/datum/supply_pack/misc/carpet/premium/blackred
name = "Black-Red Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/blackred/thirty)
/datum/supply_pack/misc/carpet/premium/royalblack
name = "Royal Black Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/royalblack/thirty)
/datum/supply_pack/misc/carpet/premium/royalblue
name = "Royal Blue Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/royalblue/thirty)
/datum/supply_pack/misc/carpet/premium/red
name = "Red Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/red/thirty)
/datum/supply_pack/misc/carpet/premium/purple
name = "Purple Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/purple/thirty)
/datum/supply_pack/misc/carpet/premium/orange
name = "Orange Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/orange/thirty)
/datum/supply_pack/misc/carpet/premium/green
name = "Green Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/green/thirty)
/datum/supply_pack/misc/carpet/premium/cyan
name = "Cyan Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/cyan/thirty)
/datum/supply_pack/misc/carpet/premium/blue
name = "Blue Carpet Single-Pack"
contains = list(/obj/item/stack/tile/carpet/blue/thirty)
/datum/supply_pack/misc/noslipfloor
name = "High-traction Floor Tiles"
+9
View File
@@ -437,3 +437,12 @@
item_state = "hunter"
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/kepi
name = "kepi"
desc = "A white cap with visor. Oui oui, mon capitane!"
icon_state = "kepi"
/obj/item/clothing/head/kepi/old
icon_state = "kepi_old"
desc = "A flat, white circular cap with a visor, that demands some honor from it's wearer."
@@ -84,7 +84,7 @@
user.alpha = 255
user.update_atom_colour()
user.animate_movement = FORWARD_STEPS
user.notransform = 0
user.mob_transforming = 0
user.anchored = FALSE
teleporting = 0
for(var/obj/item/I in user.held_items)
@@ -125,7 +125,7 @@
ADD_TRAIT(I, TRAIT_NODROP, CHRONOSUIT_TRAIT)
user.animate_movement = NO_STEPS
user.changeNext_move(8 + phase_in_ds)
user.notransform = 1
user.mob_transforming = 1
user.anchored = TRUE
user.Stun(INFINITY)
+2 -2
View File
@@ -85,8 +85,8 @@
/datum/round_event_control/stray_cargo/syndicate
name = "Stray Syndicate Cargo Pod"
typepath = /datum/round_event/stray_cargo/syndicate
weight = 6
max_occurrences = 1
weight = 0
max_occurrences = 0
earliest_start = 30 MINUTES
/datum/round_event/stray_cargo/syndicate
-4
View File
@@ -1,7 +1,3 @@
/mob/living/carbon/proc/handle_dreams()
if(prob(10) && !dreaming)
dream()
/mob/living/carbon/proc/dream()
set waitfor = FALSE
var/list/dream_fragments = list()
+4 -4
View File
@@ -303,12 +303,12 @@ All foods are distributed among various categories. Use common sense.
var/obj/item/result
if(cooked_type)
result = new cooked_type(T)
//if the result is food, set its food quality to the original food item's quality
if(isfood(result))
var/obj/item/reagent_containers/food/food_output = result
food_output.adjust_food_quality(food_quality + M.quality_increase)
if(istype(M))
initialize_cooked_food(result, M.efficiency)
//if the result is food, set its food quality to the original food item's quality
if(isfood(result))
var/obj/item/reagent_containers/food/food_output = result
food_output.adjust_food_quality(food_quality + M.quality_increase)
else
initialize_cooked_food(result, 1)
SSblackbox.record_feedback("tally", "food_made", 1, result.type)
@@ -463,7 +463,7 @@
return TRUE
if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted
return FALSE
if(istype(O, /obj/item/reagent_containers/syringe) || istype(O, /obj/item/reagent_containers/glass/bottle) || istype(O, /obj/item/reagent_containers/glass/beaker) || istype(O, /obj/item/reagent_containers/spray) || istype(O, /obj/item/reagent_containers/medspray))
if(istype(O, /obj/item/reagent_containers/syringe) || istype(O, /obj/item/reagent_containers/glass/bottle) || istype(O, /obj/item/reagent_containers/glass/beaker) || istype(O, /obj/item/reagent_containers/spray) || istype(O, /obj/item/reagent_containers/medspray) || istype(O, /obj/item/reagent_containers/chem_pack))
return TRUE
return FALSE
+3 -2
View File
@@ -56,8 +56,9 @@
cached_z = z
poof()
/mob/living/simple_animal/jacq/Life()
..()
/mob/living/simple_animal/jacq/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(!ckey)
if((last_poof+3 MINUTES) < world.realtime)
poof()
@@ -492,7 +492,7 @@
setDir(user.dir)
user.forceMove(src)
user.notransform = TRUE
user.mob_transforming = TRUE
user.status_flags |= GODMODE
can_destroy = FALSE
@@ -501,7 +501,7 @@
/obj/effect/immortality_talisman/proc/unvanish(mob/user)
user.status_flags &= ~GODMODE
user.notransform = FALSE
user.mob_transforming = FALSE
user.forceMove(get_turf(src))
user.visible_message("<span class='danger'>[user] pops back into reality!</span>")
+3 -3
View File
@@ -68,7 +68,7 @@ INITIALIZE_IMMEDIATE(/mob/dead)
set category = "OOC"
set name = "Server Hop!"
set desc= "Jump to the other server"
if(notransform)
if(mob_transforming)
return
var/list/csa = CONFIG_GET(keyed_list/cross_server)
var/pick
@@ -93,9 +93,9 @@ INITIALIZE_IMMEDIATE(/mob/dead)
to_chat(C, "<span class='notice'>Sending you to [pick].</span>")
new /obj/screen/splash(C)
notransform = TRUE
mob_transforming = TRUE
sleep(29) //let the animation play
notransform = FALSE
mob_transforming = FALSE
if(!C)
return
+3 -3
View File
@@ -37,10 +37,10 @@
C.put_in_hands(B1)
C.put_in_hands(B2)
C.regenerate_icons()
src.notransform = TRUE
src.mob_transforming = TRUE
spawn(0)
bloodpool_sink(B)
src.notransform = FALSE
src.mob_transforming = FALSE
return 1
/mob/living/proc/bloodpool_sink(obj/effect/decal/cleanable/B)
@@ -155,7 +155,7 @@
addtimer(CALLBACK(src, /atom/.proc/remove_atom_colour, TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS)
/mob/living/proc/phasein(obj/effect/decal/cleanable/B)
if(src.notransform)
if(src.mob_transforming)
to_chat(src, "<span class='warning'>Finish eating first!</span>")
return 0
B.visible_message("<span class='warning'>[B] starts to bubble...</span>")
+2 -6
View File
@@ -1,11 +1,7 @@
/mob/living/brain/Life()
set invisibility = 0
if (notransform)
/mob/living/brain/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(!loc)
return
. = ..()
handle_emp_damage()
/mob/living/brain/update_stat()
@@ -8,9 +8,6 @@
/mob/living/carbon/alien/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
return ..(AM, skipcatch = TRUE, hitpush = FALSE)
/mob/living/carbon/alien/can_embed(obj/item/I)
return FALSE
/*Code for aliens attacking aliens. Because aliens act on a hivemind, I don't see them as very aggressive with each other.
As such, they can either help or harm other aliens. Help works like the human help command while harm is a simple nibble.
In all, this is a lot like the monkey code. /N
@@ -1,14 +1,10 @@
/mob/living/carbon/alien/larva/Life()
set invisibility = 0
if (notransform)
/mob/living/carbon/alien/larva/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(..()) //not dead
// GROW!
if(amount_grown < max_grown)
amount_grown++
update_icons()
// GROW!
if(amount_grown < max_grown)
amount_grown++
update_icons()
/mob/living/carbon/alien/larva/update_stat()
+3 -2
View File
@@ -1,6 +1,7 @@
/mob/living/carbon/alien/Life()
/mob/living/carbon/alien/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
findQueen()
return..()
/mob/living/carbon/alien/check_breath(datum/gas_mixture/breath)
if(status_flags & GODMODE)
@@ -92,7 +92,7 @@
ghost.transfer_ckey(new_xeno, FALSE)
SEND_SOUND(new_xeno, sound('sound/voice/hiss5.ogg',0,0,0,100)) //To get the player's attention
new_xeno.Paralyze(6)
new_xeno.notransform = TRUE
new_xeno.mob_transforming = TRUE
new_xeno.invisibility = INVISIBILITY_MAXIMUM
sleep(6)
@@ -102,7 +102,7 @@
if(new_xeno)
new_xeno.SetParalyzed(0)
new_xeno.notransform = FALSE
new_xeno.mob_transforming = FALSE
new_xeno.invisibility = 0
var/mob/living/carbon/old_owner = owner
@@ -65,17 +65,6 @@
throw_mode_off()
return TRUE
/mob/living/carbon/embed_item(obj/item/I)
throw_alert("embeddedobject", /obj/screen/alert/embeddedobject)
var/obj/item/bodypart/L = pick(bodyparts)
L.embedded_objects |= I
I.add_mob_blood(src)//it embedded itself in you, of course it's bloody!
I.forceMove(src)
I.embedded()
L.receive_damage(I.w_class*I.embedding["impact_pain_mult"])
visible_message("<span class='danger'>[I] embeds itself in [src]'s [L.name]!</span>","<span class='userdanger'>[I] embeds itself in your [L.name]!</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded)
/mob/living/carbon/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
var/totitemdamage = pre_attacked_by(I, user) * damage_multiplier
var/impacting_zone = (user == src)? check_zone(user.zone_selected) : ran_zone(user.zone_selected)
+10 -9
View File
@@ -1,20 +1,21 @@
/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE)
/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE)
SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone)
var/hit_percent = (100-blocked)/100
if(!forced && hit_percent <= 0)
return 0
var/obj/item/bodypart/BP = null
if(isbodypart(def_zone)) //we specified a bodypart object
BP = def_zone
else
if(!def_zone)
def_zone = ran_zone(def_zone)
BP = get_bodypart(check_zone(def_zone))
if(!BP)
BP = bodyparts[1]
if(!spread_damage)
if(isbodypart(def_zone)) //we specified a bodypart object
BP = def_zone
else
if(!def_zone)
def_zone = ran_zone(def_zone)
BP = get_bodypart(check_zone(def_zone))
if(!BP)
BP = bodyparts[1]
var/damage_amount = forced ? damage : damage * hit_percent
switch(damagetype)
@@ -1,5 +1,5 @@
/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE)
/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage)
// depending on the species, it will run the corresponding apply_damage code there
return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced)
return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced, spread_damage)
+10 -21
View File
@@ -18,32 +18,21 @@
#define THERMAL_PROTECTION_HAND_LEFT 0.025
#define THERMAL_PROTECTION_HAND_RIGHT 0.025
/mob/living/carbon/human/Life(seconds, times_fired)
set invisibility = 0
if (notransform)
/mob/living/carbon/human/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
handle_active_genes()
//heart attack stuff
handle_heart()
dna.species.spec_life(src) // for mutantraces
return (stat != DEAD) && !QDELETED(src)
. = ..()
if (QDELETED(src))
return 0
if(.) //not dead
handle_active_genes()
if(stat != DEAD)
//heart attack stuff
handle_heart()
/mob/living/carbon/human/PhysicalLife(seconds, times_fired)
if(!(. = ..()))
return
//Update our name based on whether our face is obscured/disfigured
name = get_visible_name()
dna.species.spec_life(src) // for mutantraces
if(stat != DEAD)
return 1
/mob/living/carbon/human/calculate_affecting_pressure(pressure)
var/headless = !get_bodypart(BODY_ZONE_HEAD) //should the mob be perennially headless (see dullahans), we only take the suit into account, so they can into space.
if (wear_suit && istype(wear_suit, /obj/item/clothing) && (headless || (head && istype(head, /obj/item/clothing))))
+17 -17
View File
@@ -1492,12 +1492,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/miss_chance = 100//calculate the odds that a punch misses entirely. considers stamina and brute damage of the puncher. punches miss by default to prevent weird cases
if(user.dna.species.punchdamagelow)
if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists have a flat 10% miss chance
miss_chance = 10
if(atk_verb == ATTACK_EFFECT_KICK) //kicks never miss (provided your species deals more than 0 damage)
miss_chance = 0
else if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists have a flat 10% miss chance
miss_chance = 10
else
miss_chance = min(10 + ((puncherstam + puncherbrute)*0.5), 100) //probability of miss has a base of 10, and modified based on half brute total. Capped at max 100 to prevent weirdness in prob()
miss_chance = min(10 + max(puncherstam * 0.5, puncherbrute * 0.5), 100) //probability of miss has a base of 10, and modified based on half brute total. Capped at max 100 to prevent weirdness in prob()
if(!damage || !affecting || prob(miss_chance))//future-proofing for species that have 0 damage/weird cases where no zone is targeted
playsound(target.loc, user.dna.species.miss_sound, 25, TRUE, -1)
@@ -1939,7 +1939,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
append_message += ", causing them to drop [target_held_item]"
log_combat(user, target, "shoved", append_message)
/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE)
/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE, spread_damage = FALSE)
SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone)
var/hit_percent = (100-(blocked+armor))/100
hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100
@@ -1947,20 +1947,20 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
return 0
var/obj/item/bodypart/BP = null
if(isbodypart(def_zone))
if(damagetype == STAMINA && istype(def_zone, /obj/item/bodypart/head))
BP = H.get_bodypart(check_zone(BODY_ZONE_CHEST))
if(!spread_damage)
if(isbodypart(def_zone))
if(damagetype == STAMINA && istype(def_zone, /obj/item/bodypart/head))
BP = H.get_bodypart(check_zone(BODY_ZONE_CHEST))
else
BP = def_zone
else
BP = def_zone
else
if(!def_zone)
def_zone = ran_zone(def_zone)
if(damagetype == STAMINA && def_zone == BODY_ZONE_HEAD)
def_zone = BODY_ZONE_CHEST
BP = H.get_bodypart(check_zone(def_zone))
if(!BP)
BP = H.bodyparts[1]
if(!def_zone)
def_zone = ran_zone(def_zone)
if(damagetype == STAMINA && def_zone == BODY_ZONE_HEAD)
def_zone = BODY_ZONE_CHEST
BP = H.get_bodypart(check_zone(def_zone))
if(!BP)
BP = H.bodyparts[1]
switch(damagetype)
if(BRUTE)
@@ -239,7 +239,7 @@
"<span class='notice'>You focus intently on moving your body while \
standing perfectly still...</span>")
H.notransform = TRUE
H.mob_transforming = TRUE
if(do_after(owner, delay=60, needhand=FALSE, target=owner, progress=TRUE))
if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT)
@@ -249,7 +249,7 @@
else
to_chat(H, "<span class='warning'>...but fail to stand perfectly still!</span>")
H.notransform = FALSE
H.mob_transforming = FALSE
/datum/action/innate/split_body/proc/make_dupe()
var/mob/living/carbon/human/H = owner
@@ -267,7 +267,7 @@
spare.Move(get_step(H.loc, pick(NORTH,SOUTH,EAST,WEST)))
H.blood_volume *= 0.45
H.notransform = 0
H.mob_transforming = 0
var/datum/species/jelly/slime/origin_datum = H.dna.species
origin_datum.bodies |= spare
@@ -466,8 +466,9 @@
if(new_color)
var/temp_hsv = RGBtoHSV(new_color)
if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright
H.dna.features["mcolor"] = sanitize_hexcolor(new_color)
H.dna.features["mcolor"] = sanitize_hexcolor(new_color, 6)
H.update_body()
H.update_hair()
else
to_chat(H, "<span class='notice'>Invalid color. Your color is not bright enough.</span>")
else if(select_alteration == "Hair Style")
+15 -20
View File
@@ -1,29 +1,19 @@
/mob/living/carbon/Life()
set invisibility = 0
if(notransform)
return
if(damageoverlaytemp)
damageoverlaytemp = 0
update_damage_hud()
/mob/living/carbon/BiologicalLife(seconds, times_fired)
//Reagent processing needs to come before breathing, to prevent edge cases.
handle_organs()
. = ..()
if (QDELETED(src))
if(stat == DEAD)
return FALSE
if(!(. = ..()))
return
if(.) //not dead
handle_blood()
handle_blood()
// handle_blood *could* kill us.
// we should probably have a better system for if we need to check for death or something in the future hmw
if(stat != DEAD)
var/bprv = handle_bodyparts()
if(bprv & BODYPART_LIFE_UPDATE_HEALTH)
updatehealth()
update_stamina()
doSprintBufferRegen()
if(stat != DEAD)
handle_brain_damage()
@@ -35,12 +25,17 @@
stop_sound_channel(CHANNEL_HEARTBEAT)
handle_death()
rot()
. = FALSE
//Updates the number of stored chemicals for powers
handle_changeling()
if(stat != DEAD)
return 1
/mob/living/carbon/PhysicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(damageoverlaytemp)
damageoverlaytemp = 0
update_damage_hud()
//Procs called while dead
/mob/living/carbon/proc/handle_death()
+18 -22
View File
@@ -3,30 +3,26 @@
/mob/living/carbon/monkey
/mob/living/carbon/monkey/Life()
set invisibility = 0
if (notransform)
/mob/living/carbon/monkey/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(..())
if(!client)
if(stat == CONSCIOUS)
if(on_fire || buckled || restrained() || (!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(src, MOBILITY_MOVE))) //CIT CHANGE - makes it so monkeys attempt to resist if they're resting)
if(!resisting && prob(MONKEY_RESIST_PROB))
resisting = TRUE
walk_to(src,0)
resist()
else if(resisting)
resisting = FALSE
else if((mode == MONKEY_IDLE && !pickupTarget && !prob(MONKEY_SHENANIGAN_PROB)) || !handle_combat())
if(prob(25) && CHECK_MOBILITY(src, MOBILITY_MOVE) && isturf(loc) && !pulledby)
step(src, pick(GLOB.cardinals))
else if(prob(1))
emote(pick("scratch","jump","roll","tail"))
else
if(client)
return
if(stat == CONSCIOUS)
if(on_fire || buckled || restrained() || (!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(src, MOBILITY_MOVE))) //CIT CHANGE - makes it so monkeys attempt to resist if they're resting)
if(!resisting && prob(MONKEY_RESIST_PROB))
resisting = TRUE
walk_to(src,0)
resist()
else if(resisting)
resisting = FALSE
else if((mode == MONKEY_IDLE && !pickupTarget && !prob(MONKEY_SHENANIGAN_PROB)) || !handle_combat())
if(prob(25) && CHECK_MOBILITY(src, MOBILITY_MOVE) && isturf(loc) && !pulledby)
step(src, pick(GLOB.cardinals))
else if(prob(1))
emote(pick("scratch","jump","roll","tail"))
else
walk_to(src,0)
/mob/living/carbon/monkey/handle_mutations_and_radiation()
if(radiation)
@@ -31,11 +31,12 @@
if(relic_mask)
equip_to_slot_or_del(new relic_mask, SLOT_WEAR_MASK)
/mob/living/carbon/monkey/punpun/Life()
/mob/living/carbon/monkey/punpun/BiologicalLife(seconds, times_fired)
if(!(. = ..()))
return
if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved)
Write_Memory(FALSE, FALSE)
memory_saved = TRUE
..()
/mob/living/carbon/monkey/punpun/death(gibbed)
if(!memory_saved)

Some files were not shown because too many files have changed in this diff Show More