Merge branch 'master' into upstream-merge-35383
This commit is contained in:
@@ -0,0 +1,947 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/turf/closed/wall/clockwork,
|
||||
/area/shuttle/escape)
|
||||
"ac" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"ad" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"ae" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/turf/closed/wall/mineral/cult,
|
||||
/area/shuttle/escape)
|
||||
"af" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor,
|
||||
/obj/structure/destructible/clockwork/trap/brass_skewer,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"ag" = (
|
||||
/obj/structure/shuttle/engine/propulsion/right{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"ah" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"ai" = (
|
||||
/obj/machinery/computer/emergency_shuttle,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aj" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/card/emag/fake,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"ak" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"am" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/effect/decal/cleanable/crayon,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"an" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"ao" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/tome,
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"ap" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/gloves/clockwork,
|
||||
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor,
|
||||
/obj/structure/destructible/clockwork/trap/brass_skewer,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"aq" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/suit/armor/clockwork,
|
||||
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor,
|
||||
/obj/structure/destructible/clockwork/trap/brass_skewer,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"ar" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/shoes/clockwork,
|
||||
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor,
|
||||
/obj/structure/destructible/clockwork/trap/brass_skewer,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"as" = (
|
||||
/obj/structure/shuttle/engine/propulsion{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"at" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/machinery/portable_atmospherics/canister/water_vapor,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"au" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/structure/holosign/wetsign,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"av" = (
|
||||
/obj/machinery/door/airlock/command/glass{
|
||||
name = "bridge door";
|
||||
req_access_txt = "19";
|
||||
secondsElectrified = -1
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aw" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"ax" = (
|
||||
/obj/structure/shuttle/engine/propulsion/left{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
/obj/machinery/light,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/turf/closed/wall/mineral/cult,
|
||||
/area/shuttle/escape)
|
||||
"aA" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/twohanded/spear,
|
||||
/obj/item/device/assembly/flash/handheld,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/greentext,
|
||||
/obj/item/banhammer,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"aC" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"aD" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "security airlock";
|
||||
req_access_txt = "63";
|
||||
secondsElectrified = -1
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"aE" = (
|
||||
/obj/structure/sign/poster/contraband/energy_swords,
|
||||
/turf/closed/wall/clockwork,
|
||||
/area/shuttle/escape)
|
||||
"aF" = (
|
||||
/obj/structure/sign/poster/contraband/revolver,
|
||||
/turf/closed/wall/clockwork,
|
||||
/area/shuttle/escape)
|
||||
"aG" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/machinery/door/airlock/clockwork{
|
||||
req_access = null
|
||||
},
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"aH" = (
|
||||
/obj/structure/sign/poster/contraband/kudzu,
|
||||
/turf/closed/wall/clockwork,
|
||||
/area/shuttle/escape)
|
||||
"aI" = (
|
||||
/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6,
|
||||
/turf/closed/wall/clockwork,
|
||||
/area/shuttle/escape)
|
||||
"aJ" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aK" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aL" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/mask/vape,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aM" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/toy/plush/plushvar,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aN" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/food/snacks/salad/validsalad,
|
||||
/obj/item/toy/figure/warden,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aO" = (
|
||||
/obj/item/grown/bananapeel,
|
||||
/obj/item/storage/backpack,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aR" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/toy/spinningtoy,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aS" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/toy/katana,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aT" = (
|
||||
/obj/machinery/door/airlock/titanium,
|
||||
/obj/item/soap/deluxe,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/toy/syndicateballoon,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aW" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/mask/vape,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aX" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/toy/plush/narplush,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"aY" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/food/snacks/salad/validsalad,
|
||||
/obj/item/toy/figure/hos,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"ba" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/gun/ballistic/revolver/reverse,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bb" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/toy/sword,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bc" = (
|
||||
/obj/machinery/light/small,
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bd" = (
|
||||
/obj/machinery/door/airlock/titanium,
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dheight = 0;
|
||||
dir = 8;
|
||||
dwidth = 6;
|
||||
height = 18;
|
||||
name = "Saltmine";
|
||||
port_direction = 4;
|
||||
timid = 1;
|
||||
width = 14
|
||||
},
|
||||
/obj/item/soap/deluxe,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"be" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/mob/living/simple_animal/bot/secbot/beepsky,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bf" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large,
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bg" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bh" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/mask/vape,
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bi" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/toy/plush/nukeplushie,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bj" = (
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bk" = (
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/food/snacks/salad/validsalad,
|
||||
/obj/item/toy/figure/secofficer,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bl" = (
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/obj/item/storage/backpack,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bm" = (
|
||||
/obj/structure/window/plasma/reinforced,
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bn" = (
|
||||
/obj/structure/sign/poster/contraband/lizard,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bo" = (
|
||||
/obj/structure/sign/poster/contraband/lusty_xenomorph,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bp" = (
|
||||
/obj/structure/sign/poster/contraband/grey_tide,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"bq" = (
|
||||
/obj/structure/sign/poster/contraband/fun_police,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"br" = (
|
||||
/obj/structure/sign/poster/official/wtf_is_co2,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bs" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/glass/beaker/waterbottle/large,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bt" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bu" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/head/collectable/wizard,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bv" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/clothing/head/kitty/genuine,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bw" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/device/assembly/flash,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bx" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/toy/plush/lizardplushie,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"by" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bz" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/suit/wizrobe,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bA" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/head/rabbitears,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bB" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/stack/sheet/animalhide/lizard,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bC" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/bikehorn,
|
||||
/obj/item/organ/eyes/moth,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bD" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/turf/open/floor/fakepit,
|
||||
/area/shuttle/escape)
|
||||
"bE" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/storage/firstaid/fire,
|
||||
/turf/open/floor/fakepit,
|
||||
/area/shuttle/escape)
|
||||
"bF" = (
|
||||
/obj/machinery/light,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/gun/magic/wand/resurrection/inert,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bG" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/clothing/head/rabbitears,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bH" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/lizardwine,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bI" = (
|
||||
/turf/open/chasm,
|
||||
/area/shuttle/escape)
|
||||
"bJ" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/clothing/mask/frog,
|
||||
/obj/item/storage/box/hug/medical,
|
||||
/turf/open/floor/fakepit,
|
||||
/area/shuttle/escape)
|
||||
"bK" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/clothing/head/kitty/genuine,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bL" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/toy/plush/lizardplushie,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"bM" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/machinery/sleeper/syndie,
|
||||
/turf/open/floor/fakepit,
|
||||
/area/shuttle/escape)
|
||||
"bN" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grenade/flashbang,
|
||||
/obj/item/grenade/flashbang,
|
||||
/obj/item/grenade/flashbang,
|
||||
/obj/item/grenade/flashbang,
|
||||
/obj/item/grenade/flashbang,
|
||||
/turf/open/floor/fakepit,
|
||||
/area/shuttle/escape)
|
||||
"jz" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/statue/plasma/scientist{
|
||||
desc = "This statue is suitably made from tears of a certain man, you can still hear him crying to this day.";
|
||||
oreAmount = 0
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"oC" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/window,
|
||||
/obj/structure/window{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/simple_animal/hostile/retaliate/clown{
|
||||
health = 200;
|
||||
maxHealth = 200
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"rH" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/honker,
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"vf" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"wp" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/destructible/clockwork/trap/trigger/pressure_sensor,
|
||||
/obj/structure/destructible/clockwork/trap/brass_skewer,
|
||||
/obj/item/device/radio/beacon,
|
||||
/turf/open/indestructible/clock_spawn_room,
|
||||
/area/shuttle/escape)
|
||||
"xd" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/codespeak_manual/unlimited,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"xi" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"Ac" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/mob/living/simple_animal/bot/honkbot,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"CB" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/window{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/simple_animal/hostile/retaliate/clown{
|
||||
health = 200;
|
||||
maxHealth = 200
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"Ho" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/neck/petcollar,
|
||||
/obj/item/restraints/handcuffs,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"HA" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/under/schoolgirl,
|
||||
/obj/item/clothing/head/kitty,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"Iq" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/structure/bed/dogbed/ian,
|
||||
/obj/item/stack/sheet/animalhide/corgi,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/corgi,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"LR" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/mecha/combat/honker{
|
||||
max_integrity = 60
|
||||
},
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
"Uc" = (
|
||||
/obj/effect/decal/cleanable/salt,
|
||||
/obj/item/grown/bananapeel,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/suit/armor/reactive/table,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
ac
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
aa
|
||||
ac
|
||||
ah
|
||||
LR
|
||||
CB
|
||||
vf
|
||||
jz
|
||||
aU
|
||||
aU
|
||||
aU
|
||||
jz
|
||||
ah
|
||||
ac
|
||||
aa
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
aa
|
||||
ac
|
||||
ai
|
||||
oC
|
||||
xi
|
||||
av
|
||||
Ac
|
||||
ak
|
||||
be
|
||||
ak
|
||||
Ac
|
||||
ak
|
||||
ac
|
||||
aa
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
aa
|
||||
ac
|
||||
aj
|
||||
rH
|
||||
ay
|
||||
ac
|
||||
aJ
|
||||
aJ
|
||||
bf
|
||||
bs
|
||||
aJ
|
||||
aJ
|
||||
ac
|
||||
aa
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
aa
|
||||
ac
|
||||
ak
|
||||
at
|
||||
ak
|
||||
ac
|
||||
aK
|
||||
aK
|
||||
bg
|
||||
bt
|
||||
aK
|
||||
aK
|
||||
ac
|
||||
aa
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
aa
|
||||
ac
|
||||
Iq
|
||||
au
|
||||
ak
|
||||
ac
|
||||
aL
|
||||
aW
|
||||
bh
|
||||
bu
|
||||
bz
|
||||
bF
|
||||
ah
|
||||
ac
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
aa
|
||||
ae
|
||||
ae
|
||||
av
|
||||
az
|
||||
ae
|
||||
aK
|
||||
aK
|
||||
bg
|
||||
bt
|
||||
aK
|
||||
aK
|
||||
aK
|
||||
ac
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
aa
|
||||
ae
|
||||
al
|
||||
al
|
||||
al
|
||||
az
|
||||
aM
|
||||
aX
|
||||
bi
|
||||
bv
|
||||
bA
|
||||
bG
|
||||
bK
|
||||
ac
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
aa
|
||||
ae
|
||||
am
|
||||
al
|
||||
aA
|
||||
aD
|
||||
aK
|
||||
aK
|
||||
bj
|
||||
bw
|
||||
aK
|
||||
aK
|
||||
aK
|
||||
ad
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
aa
|
||||
ae
|
||||
an
|
||||
al
|
||||
al
|
||||
az
|
||||
aN
|
||||
aY
|
||||
bk
|
||||
bx
|
||||
bB
|
||||
bH
|
||||
bL
|
||||
ad
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
aa
|
||||
ae
|
||||
al
|
||||
al
|
||||
al
|
||||
ae
|
||||
aO
|
||||
aO
|
||||
bl
|
||||
bt
|
||||
aK
|
||||
aK
|
||||
aK
|
||||
ad
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
aa
|
||||
ae
|
||||
ao
|
||||
xd
|
||||
aB
|
||||
ae
|
||||
aP
|
||||
ba
|
||||
bm
|
||||
Ho
|
||||
aK
|
||||
Uc
|
||||
HA
|
||||
ac
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aE
|
||||
aQ
|
||||
aQ
|
||||
bn
|
||||
ah
|
||||
bC
|
||||
ad
|
||||
ac
|
||||
ac
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
ab
|
||||
wp
|
||||
ap
|
||||
af
|
||||
af
|
||||
aF
|
||||
aR
|
||||
aR
|
||||
bo
|
||||
by
|
||||
bD
|
||||
bD
|
||||
bM
|
||||
ac
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
ab
|
||||
wp
|
||||
aq
|
||||
af
|
||||
af
|
||||
aG
|
||||
aQ
|
||||
aQ
|
||||
bp
|
||||
by
|
||||
bD
|
||||
bI
|
||||
bD
|
||||
ac
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
ab
|
||||
wp
|
||||
ar
|
||||
aw
|
||||
aC
|
||||
aH
|
||||
aS
|
||||
bb
|
||||
bq
|
||||
ac
|
||||
bE
|
||||
bJ
|
||||
bN
|
||||
ac
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aI
|
||||
aQ
|
||||
bc
|
||||
br
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
ac
|
||||
ag
|
||||
as
|
||||
ax
|
||||
ac
|
||||
ac
|
||||
aT
|
||||
bd
|
||||
ac
|
||||
ah
|
||||
ag
|
||||
as
|
||||
ax
|
||||
ac
|
||||
"}
|
||||
@@ -1506,10 +1506,13 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
|
||||
// Makes a call in the context of a different usr
|
||||
// Use sparingly
|
||||
/world/proc/PushUsr(mob/M, datum/callback/CB)
|
||||
/world/proc/PushUsr(mob/M, datum/callback/CB, ...)
|
||||
var/temp = usr
|
||||
usr = M
|
||||
. = CB.Invoke()
|
||||
if (length(args) > 2)
|
||||
. = CB.Invoke(arglist(args.Copy(3)))
|
||||
else
|
||||
. = CB.Invoke()
|
||||
usr = temp
|
||||
|
||||
//Returns a list of all servants of Ratvar and observers.
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/S = usr
|
||||
S.sensor_mode()
|
||||
S.toggle_sensors()
|
||||
|
||||
|
||||
/datum/hud/ai
|
||||
|
||||
@@ -78,11 +78,13 @@
|
||||
if(W)
|
||||
var/mob/M = W.resolve()
|
||||
if(M)
|
||||
if (length(args))
|
||||
return world.PushUsr(arglist(list(M, src) + args))
|
||||
return world.PushUsr(M, src)
|
||||
|
||||
|
||||
if (!object)
|
||||
return
|
||||
|
||||
|
||||
var/list/calling_arguments = arguments
|
||||
if (length(args))
|
||||
if (length(arguments))
|
||||
@@ -104,11 +106,13 @@
|
||||
if(W)
|
||||
var/mob/M = W.resolve()
|
||||
if(M)
|
||||
if (length(args))
|
||||
return world.PushUsr(arglist(list(M, src) + args))
|
||||
return world.PushUsr(M, src)
|
||||
|
||||
|
||||
if (!object)
|
||||
return
|
||||
|
||||
|
||||
var/list/calling_arguments = arguments
|
||||
if (length(args))
|
||||
if (length(arguments))
|
||||
|
||||
@@ -202,6 +202,12 @@
|
||||
var/list/entries = list()
|
||||
var/language = /datum/language/common //Initial language, can be changed by HOLORECORD_LANGUAGE entries
|
||||
|
||||
/datum/holorecord/proc/set_caller_image(mob/user)
|
||||
var/olddir = user.dir
|
||||
user.setDir(SOUTH)
|
||||
caller_image = getFlatIcon(user)
|
||||
user.setDir(olddir)
|
||||
|
||||
/obj/item/disk/holodisk
|
||||
name = "holorecord disk"
|
||||
desc = "Stores recorder holocalls."
|
||||
@@ -278,7 +284,7 @@
|
||||
else
|
||||
var/datum/preset_holoimage/H = new preset_image_type
|
||||
record.caller_image = H.build_image()
|
||||
|
||||
|
||||
//These build caller image from outfit and some additional data, for use by mappers for ruin holorecords
|
||||
/datum/preset_holoimage
|
||||
var/nonhuman_mobtype //Fill this if you just want something nonhuman
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
description = "A respectable mid-sized shuttle that first saw service shuttling Nanotrasen crew to and from their asteroid belt embedded facilities."
|
||||
credit_cost = 3000
|
||||
|
||||
|
||||
/datum/map_template/shuttle/emergency/bar
|
||||
suffix = "bar"
|
||||
name = "The Emergency Escape Bar"
|
||||
@@ -109,6 +110,18 @@
|
||||
admin_notes = "This shuttle will likely crush escape, killing anyone there."
|
||||
credit_cost = -5000
|
||||
|
||||
/datum/map_template/shuttle/emergency/saltmine
|
||||
suffix = "saltmine"
|
||||
name = "The Saltmine"
|
||||
description = "Contains everything that upsets you."
|
||||
admin_notes = "Don't forget: You're here forever."
|
||||
credit_cost = 5000
|
||||
|
||||
/datum/map_template/shuttle/emergency/saltmine/prerequisites_met()
|
||||
if("revenant" in SSshuttle.shuttle_purchase_requirements_met)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/map_template/shuttle/emergency/luxury
|
||||
suffix = "luxury"
|
||||
name = "Luxury Shuttle"
|
||||
|
||||
@@ -110,11 +110,15 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
|
||||
if(!istype(linked_techweb))
|
||||
say("Warning: No linked research system!")
|
||||
return
|
||||
var/adjusted = orig_light - 10 - linked_techweb.max_bomb_value
|
||||
var/adjusted = orig_light - 20 - linked_techweb.max_bomb_value
|
||||
if(adjusted <= 0)
|
||||
say("Explosion not large enough for research calculations.")
|
||||
return
|
||||
var/point_gain = techweb_scale_bomb(adjusted)
|
||||
if(point_gain <= 0)
|
||||
say("Explosion not large enough for research calculations.")
|
||||
return
|
||||
var/point_gain = techweb_scale_bomb(adjusted)
|
||||
if(point_gain <= 0)
|
||||
say("Explosion not large enough for research calculations.")
|
||||
return
|
||||
|
||||
@@ -58,6 +58,7 @@ Possible to do for anyone motivated enough:
|
||||
var/static/force_answer_call = FALSE //Calls will be automatically answered after a couple rings, here for debugging
|
||||
var/static/list/holopads = list()
|
||||
var/obj/effect/overlay/holoray/ray
|
||||
var/offset = FALSE
|
||||
|
||||
/obj/machinery/holopad/Initialize()
|
||||
. = ..()
|
||||
@@ -279,7 +280,16 @@ Possible to do for anyone motivated enough:
|
||||
record_stop()
|
||||
else if(href_list["record_clear"])
|
||||
record_clear()
|
||||
|
||||
else if(href_list["offset"])
|
||||
offset++
|
||||
if (offset > 4)
|
||||
offset = FALSE
|
||||
var/turf/new_turf
|
||||
if (!offset)
|
||||
new_turf = get_turf(src)
|
||||
else
|
||||
new_turf = get_step(src, GLOB.cardinals[offset])
|
||||
replay_holo.forceMove(new_turf)
|
||||
updateDialog()
|
||||
|
||||
//do not allow AIs to answer calls or people will use it to meta the AI sattelite
|
||||
@@ -493,7 +503,8 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
replay_mode = TRUE
|
||||
replay_holo = setup_replay_holo(disk.record)
|
||||
temp = "Replaying...<br>"
|
||||
temp += "<A href='?src=[REF(src)];replay_stop=1'>End replay.</A>"
|
||||
temp += "<A href='?src=[REF(src)];offset=1'>Change offset</A><br>"
|
||||
temp += "<A href='?src=[REF(src)];replay_stop=1'>End replay</A>"
|
||||
SetLightsAndPower()
|
||||
replay_entry(1)
|
||||
return
|
||||
@@ -502,6 +513,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
if(replay_mode)
|
||||
replay_mode = FALSE
|
||||
loop_mode = FALSE
|
||||
offset = FALSE
|
||||
temp = null
|
||||
QDEL_NULL(replay_holo)
|
||||
SetLightsAndPower()
|
||||
@@ -514,16 +526,10 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
record_mode = TRUE
|
||||
record_start = world.time
|
||||
record_user = user
|
||||
disk.record.caller_image = get_record_icon(user)
|
||||
disk.record.set_caller_image(user)
|
||||
temp = "Recording...<br>"
|
||||
temp += "<A href='?src=[REF(src)];record_stop=1'>End recording.</A>"
|
||||
|
||||
/obj/machinery/holopad/proc/get_record_icon(mob/living/user)
|
||||
var/olddir = user.dir
|
||||
user.setDir(SOUTH)
|
||||
. = getFlatIcon(user)
|
||||
user.setDir(olddir)
|
||||
|
||||
/obj/machinery/holopad/proc/record_message(mob/living/speaker,message,language)
|
||||
if(!record_mode)
|
||||
return
|
||||
@@ -553,8 +559,10 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
|
||||
/obj/machinery/holopad/proc/replay_entry(entry_number)
|
||||
if(!replay_mode)
|
||||
return
|
||||
if (!disk.record.entries.len) // check for zero entries such as photographs and no text recordings
|
||||
return // and pretty much just display them statically untill manually stopped
|
||||
if(disk.record.entries.len < entry_number)
|
||||
if (loop_mode)
|
||||
if(loop_mode)
|
||||
entry_number = 1
|
||||
else
|
||||
replay_stop()
|
||||
|
||||
@@ -191,6 +191,7 @@
|
||||
var/obj/machinery/door/firedoor/FD = D
|
||||
FD.CalculateAffectingAreas()
|
||||
to_chat(usr, "<span class='notice'>You rename the '[prevname]' to '[str]'.</span>")
|
||||
log_game("[key_name(usr)] has renamed [prevname] to [str]")
|
||||
interact()
|
||||
return 1
|
||||
|
||||
|
||||
@@ -78,6 +78,10 @@
|
||||
return
|
||||
A.emag_act(user)
|
||||
|
||||
/obj/item/card/emag/fake/afterattack()
|
||||
playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
|
||||
return
|
||||
|
||||
/obj/item/card/id
|
||||
name = "identification card"
|
||||
desc = "A card used to provide ID and determine access across the station."
|
||||
|
||||
@@ -119,6 +119,7 @@
|
||||
loop.start()
|
||||
|
||||
/obj/item/device/geiger_counter/rad_act(amount)
|
||||
. = ..()
|
||||
if(amount <= RAD_BACKGROUND_RADIATION || !scanning)
|
||||
return
|
||||
current_tick_amount += amount
|
||||
|
||||
@@ -365,6 +365,7 @@
|
||||
buildstacktype = /obj/item/stack/tile/brass
|
||||
buildstackamount = 1
|
||||
item_chair = null
|
||||
var/turns = 0
|
||||
|
||||
/obj/structure/chair/brass/Destroy()
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
@@ -373,11 +374,15 @@
|
||||
/obj/structure/chair/brass/process()
|
||||
setDir(turn(dir,-90))
|
||||
playsound(src, 'sound/effects/servostep.ogg', 50, FALSE)
|
||||
turns++
|
||||
if(turns >= 8)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/obj/structure/chair/brass/ratvar_act()
|
||||
return
|
||||
|
||||
/obj/structure/chair/brass/AltClick(mob/living/user)
|
||||
turns = 0
|
||||
if(!user.canUseTopic(src, be_close = TRUE))
|
||||
return
|
||||
if(!isprocessing)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
name = "magic mirror"
|
||||
desc = "Turn and face the strange... face."
|
||||
icon_state = "magic_mirror"
|
||||
var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth", "memezombies", "clockwork golem servant")
|
||||
var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth", "memezombies", "clockwork golem servant", "android", "synth")
|
||||
var/list/choosable_races = list()
|
||||
|
||||
/obj/structure/mirror/magic/New()
|
||||
|
||||
@@ -352,7 +352,9 @@
|
||||
|
||||
|
||||
/turf/open/rad_act(pulse_strength)
|
||||
. = ..()
|
||||
if (air.gases[/datum/gas/carbon_dioxide] && air.gases[/datum/gas/oxygen])
|
||||
pulse_strength = min(pulse_strength,air.gases[/datum/gas/carbon_dioxide][MOLES]*1000,air.gases[/datum/gas/oxygen][MOLES]*2000) //Ensures matter is conserved properly
|
||||
air.gases[/datum/gas/carbon_dioxide][MOLES]=max(air.gases[/datum/gas/carbon_dioxide][MOLES]-(pulse_strength/1000),0)
|
||||
air.gases[/datum/gas/oxygen][MOLES]=max(air.gases[/datum/gas/oxygen][MOLES]-(pulse_strength/2000),0)
|
||||
air.assert_gas(/datum/gas/pluoxium)
|
||||
|
||||
@@ -89,13 +89,12 @@
|
||||
if(cooldowntime > world.time)
|
||||
to_chat(user, "<span class='cult italic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
|
||||
return
|
||||
var/choice = alert(user,"You study the schematics etched into the altar...",,"Eldritch Whetstone","Construct Shells","Flask of Unholy Water")
|
||||
var/choice = alert(user,"You study the schematics etched into the altar...",,"Eldritch Whetstone","Construct Shell","Flask of Unholy Water")
|
||||
var/list/pickedtype = list()
|
||||
switch(choice)
|
||||
if("Eldritch Whetstone")
|
||||
pickedtype += /obj/item/sharpener/cult
|
||||
if("Construct Shells")
|
||||
pickedtype += /obj/structure/constructshell
|
||||
if("Construct Shell")
|
||||
pickedtype += /obj/structure/constructshell
|
||||
if("Flask of Unholy Water")
|
||||
pickedtype += /obj/item/reagent_containers/glass/beaker/unholywater
|
||||
|
||||
@@ -138,21 +138,10 @@ This file contains the cult dagger and rune list code
|
||||
if(isspaceturf(T))
|
||||
to_chat(user, "<span class='warning'>You cannot scribe runes in space!</span>")
|
||||
return FALSE
|
||||
|
||||
if(locate(/obj/effect/rune) in T)
|
||||
to_chat(user, "<span class='cult'>There is already a rune here.</span>")
|
||||
return FALSE
|
||||
|
||||
|
||||
if(!is_station_level(T.z) && !is_mining_level(T.z))
|
||||
to_chat(user, "<span class='warning'>The veil is not weak enough here.</span>")
|
||||
|
||||
return FALSE
|
||||
|
||||
var/area/A = get_area(T)
|
||||
if(A && !A.blob_allowed)
|
||||
to_chat(user, "<span class='warning'>There's a passage in [src] specifically forbidding oyster consumption, triple-frying, and building outside of designated cult zones.</span>")
|
||||
return FALSE
|
||||
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -316,7 +316,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
to_chat(M, "<span class='cultlarge'>\"I accept this meager sacrifice.\"</span>")
|
||||
|
||||
var/obj/item/device/soulstone/stone = new /obj/item/device/soulstone(get_turf(src))
|
||||
if(sacrificial.mind)
|
||||
if(sacrificial.mind && !sacrificial.suiciding)
|
||||
stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul()
|
||||
stone.transfer_soul("FORCE", sacrificial, usr)
|
||||
stone.invisibility = 0
|
||||
|
||||
@@ -224,6 +224,7 @@
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
revealed = FALSE
|
||||
ghostize(0)//Don't re-enter invisible corpse
|
||||
SSshuttle.shuttle_purchase_requirements_met |= "revenant"
|
||||
|
||||
|
||||
//reveal, stun, icon updates, cast checks, and essence changing
|
||||
|
||||
@@ -152,6 +152,7 @@
|
||||
|
||||
if(plasma_burn_rate > MINIMUM_HEAT_CAPACITY)
|
||||
ASSERT_GAS(/datum/gas/carbon_dioxide, air) //don't need to assert o2, since if it isn't present we'll never reach this point anyway
|
||||
plasma_burn_rate = min(plasma_burn_rate,cached_gases[/datum/gas/plasma][MOLES],cached_gases[/datum/gas/oxygen][MOLES]/oxygen_burn_rate) //Ensures matter is conserved properly
|
||||
cached_gases[/datum/gas/plasma][MOLES] = QUANTIZE(cached_gases[/datum/gas/plasma][MOLES] - plasma_burn_rate)
|
||||
cached_gases[/datum/gas/oxygen][MOLES] = QUANTIZE(cached_gases[/datum/gas/oxygen][MOLES] - (plasma_burn_rate * oxygen_burn_rate))
|
||||
if (super_saturation)
|
||||
@@ -207,13 +208,13 @@
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/catalyst_efficency = max(min(cached_gases[/datum/gas/plasma][MOLES]/cached_gases[/datum/gas/tritium][MOLES],MAX_CATALYST_EFFICENCY)-(temperature/FUSION_HEAT_DROPOFF),1)
|
||||
var/reaction_energy = THERMAL_ENERGY(air)
|
||||
var/moles_impurities = air.total_moles()-(cached_gases[/datum/gas/plasma][MOLES]+cached_gases[/datum/gas/tritium][MOLES])
|
||||
var/moles_impurities = max(air.total_moles()-(cached_gases[/datum/gas/plasma][MOLES]+cached_gases[/datum/gas/tritium][MOLES]),1) //This makes it assume a minimum of 1 mol impurities so the reaction energy doesn't divide by 0
|
||||
|
||||
var/plasma_fused = (PLASMA_FUSED_COEFFICENT*catalyst_efficency)*(temperature/PLASMA_BINDING_ENERGY)/10
|
||||
var/tritium_catalyzed = (CATALYST_COEFFICENT*catalyst_efficency)*(temperature/PLASMA_BINDING_ENERGY)/40
|
||||
var/plasma_fused = min((PLASMA_FUSED_COEFFICENT*catalyst_efficency)*(temperature/PLASMA_BINDING_ENERGY)/10,cached_gases[/datum/gas/plasma][MOLES]) //Preserve matter
|
||||
var/tritium_catalyzed = min((CATALYST_COEFFICENT*catalyst_efficency)*(temperature/PLASMA_BINDING_ENERGY)/40,cached_gases[/datum/gas/tritium][MOLES]) //Ditto
|
||||
var/oxygen_added = tritium_catalyzed
|
||||
var/waste_added = max((plasma_fused-oxygen_added)-((air.total_moles()*air.heat_capacity())/PLASMA_BINDING_ENERGY),0)
|
||||
reaction_energy = max(reaction_energy+((catalyst_efficency*cached_gases[/datum/gas/plasma][MOLES])/((moles_impurities/catalyst_efficency)+2)*10)+((plasma_fused/((moles_impurities/catalyst_efficency)))*PLASMA_BINDING_ENERGY),0)
|
||||
reaction_energy = max(reaction_energy+((catalyst_efficency*cached_gases[/datum/gas/plasma][MOLES])/((moles_impurities/catalyst_efficency)+2)*10)+((plasma_fused/(moles_impurities/catalyst_efficency))*PLASMA_BINDING_ENERGY),0)
|
||||
|
||||
air.assert_gases(/datum/gas/oxygen, /datum/gas/carbon_dioxide, /datum/gas/water_vapor, /datum/gas/nitrous_oxide, /datum/gas/nitryl)
|
||||
//Fusion produces an absurd amount of waste products now, requiring active filtration.
|
||||
@@ -251,7 +252,7 @@
|
||||
var/temperature = air.temperature
|
||||
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/heat_efficency = temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*100)
|
||||
var/heat_efficency = min(temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*100),cached_gases[/datum/gas/oxygen][MOLES],cached_gases[/datum/gas/nitrogen][MOLES])
|
||||
var/energy_used = heat_efficency*NITRYL_FORMATION_ENERGY
|
||||
ASSERT_GAS(/datum/gas/nitryl,air)
|
||||
|
||||
@@ -283,7 +284,7 @@
|
||||
var/pressure = air.return_pressure()
|
||||
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/reaction_efficency = 1/((pressure/(0.1*ONE_ATMOSPHERE))*(max(cached_gases[/datum/gas/plasma][MOLES]/cached_gases[/datum/gas/tritium][MOLES],1)))
|
||||
var/reaction_efficency = min(1/((pressure/(0.1*ONE_ATMOSPHERE))*(max(cached_gases[/datum/gas/plasma][MOLES]/cached_gases[/datum/gas/tritium][MOLES],1))),cached_gases[/datum/gas/tritium][MOLES],cached_gases[/datum/gas/plasma][MOLES]/2)
|
||||
var/energy_released = 2*reaction_efficency*FIRE_CARBON_ENERGY_RELEASED
|
||||
|
||||
ASSERT_GAS(/datum/gas/bz,air)
|
||||
@@ -314,9 +315,8 @@
|
||||
var/list/cached_gases = air.gases
|
||||
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/heat_scale = air.temperature/STIMULUM_HEAT_SCALE
|
||||
var/stim_energy_change
|
||||
stim_energy_change =heat_scale + (STIMULUM_FIRST_RISE(heat_scale**2)) - (STIMULUM_FIRST_DROP(heat_scale**3)) + (STIMULUM_SECOND_RISE(heat_scale**4)) - (STIMULUM_ABSOLUTE_DROP(heat_scale**5))
|
||||
var/heat_scale = min(air.temperature/STIMULUM_HEAT_SCALE,cached_gases[/datum/gas/tritium][MOLES],cached_gases[/datum/gas/plasma][MOLES],cached_gases[/datum/gas/nitryl][MOLES])
|
||||
var/stim_energy_change = heat_scale + STIMULUM_FIRST_RISE*(heat_scale**2) - STIMULUM_FIRST_DROP*(heat_scale**3) + STIMULUM_SECOND_RISE*(heat_scale**4) - STIMULUM_ABSOLUTE_DROP*(heat_scale**5)
|
||||
|
||||
ASSERT_GAS(/datum/gas/stimulum,air)
|
||||
cached_gases[/datum/gas/stimulum][MOLES]+= heat_scale/10
|
||||
@@ -345,7 +345,7 @@
|
||||
var/list/cached_gases = air.gases
|
||||
air.assert_gases(/datum/gas/hypernoblium,/datum/gas/bz)
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/nob_formed = (cached_gases[/datum/gas/nitrogen][MOLES]*cached_gases[/datum/gas/tritium][MOLES])/100
|
||||
var/nob_formed = min((cached_gases[/datum/gas/nitrogen][MOLES]+cached_gases[/datum/gas/tritium][MOLES])/100,cached_gases[/datum/gas/tritium][MOLES]/10,cached_gases[/datum/gas/nitrogen][MOLES]/20)
|
||||
var/energy_taken = nob_formed*(NOBLIUM_FORMATION_ENERGY/(max(cached_gases[/datum/gas/bz][MOLES],1)))
|
||||
cached_gases[/datum/gas/tritium][MOLES] = max(cached_gases[/datum/gas/tritium][MOLES]- 10*nob_formed,0)
|
||||
cached_gases[/datum/gas/nitrogen][MOLES] = max(cached_gases[/datum/gas/nitrogen][MOLES]- 20*nob_formed,0)
|
||||
|
||||
@@ -184,7 +184,8 @@
|
||||
if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic.
|
||||
beaker.reagents.trans_to(occupant, 1, efficiency * 0.25) // Transfer reagents.
|
||||
beaker.reagents.reaction(occupant, VAPOR)
|
||||
air1.gases[/datum/gas/oxygen][MOLES] -= 2 / efficiency //Let's use gas for this
|
||||
air1.gases[/datum/gas/oxygen][MOLES] -= max(0,air1.gases[/datum/gas/oxygen][MOLES] - 2 / efficiency) //Let's use gas for this
|
||||
air1.garbage_collect()
|
||||
if(++reagent_transfer >= 10 * efficiency) // Throttle reagent transfer (higher efficiency will transfer the same amount but consume less from the beaker).
|
||||
reagent_transfer = 0
|
||||
|
||||
@@ -220,7 +221,8 @@
|
||||
air1.temperature = max(air1.temperature - heat / air_heat_capacity, TCMB)
|
||||
mob_occupant.bodytemperature = max(mob_occupant.bodytemperature + heat / heat_capacity, TCMB)
|
||||
|
||||
air1.gases[/datum/gas/oxygen][MOLES] -= 0.5 / efficiency // Magically consume gas? Why not, we run on cryo magic.
|
||||
air1.gases[/datum/gas/oxygen][MOLES] = max(0,air1.gases[/datum/gas/oxygen][MOLES] - 0.5 / efficiency) // Magically consume gas? Why not, we run on cryo magic.
|
||||
air1.garbage_collect()
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/cryo_cell/power_change()
|
||||
..()
|
||||
|
||||
@@ -64,6 +64,7 @@ GLOBAL_VAR(posibrain_notify_cooldown)
|
||||
return
|
||||
if(brainmob.client)
|
||||
visible_message(success_message)
|
||||
playsound(src, 'sound/machines/ping.ogg', 15, TRUE)
|
||||
else
|
||||
visible_message(fail_message)
|
||||
|
||||
|
||||
@@ -1622,8 +1622,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
//Body temperature is adjusted in two parts: first there your body tries to naturally preserve homeostasis (shivering/sweating), then it reacts to the surrounding environment
|
||||
//Thermal protection (insulation) has mixed benefits in two situations (hot in hot places, cold in hot places)
|
||||
if(!H.on_fire) //If you're on fire, you do not heat up or cool down based on surrounding gases
|
||||
if((abs(BODYTEMP_NORMAL - H.bodytemperature) <= 5) && (abs(BODYTEMP_NORMAL - loc_temp) <= 25))
|
||||
return //Performance saver
|
||||
var/natural = 0
|
||||
if(H.stat != DEAD)
|
||||
natural = H.natural_bodytemperature_stabilization()
|
||||
|
||||
@@ -865,6 +865,8 @@
|
||||
to_chat(G, "<span class='holoparasite'>Your summoner has changed form!</span>")
|
||||
|
||||
/mob/living/rad_act(amount)
|
||||
. = ..()
|
||||
|
||||
if(!amount || amount < RAD_MOB_SKIN_PROTECTION)
|
||||
return
|
||||
|
||||
|
||||
@@ -235,7 +235,8 @@
|
||||
if(href_list["toggle"])
|
||||
secHUD = !secHUD
|
||||
if(secHUD)
|
||||
add_sec_hud()
|
||||
var/datum/atom_hud/sec = GLOB.huds[sec_hud]
|
||||
sec.add_hud_to(src)
|
||||
else
|
||||
var/datum/atom_hud/sec = GLOB.huds[sec_hud]
|
||||
sec.remove_hud_from(src)
|
||||
@@ -243,8 +244,8 @@
|
||||
if(href_list["toggle"])
|
||||
medHUD = !medHUD
|
||||
if(medHUD)
|
||||
add_med_hud()
|
||||
|
||||
var/datum/atom_hud/med = GLOB.huds[med_hud]
|
||||
med.add_hud_to(src)
|
||||
else
|
||||
var/datum/atom_hud/med = GLOB.huds[med_hud]
|
||||
med.remove_hud_from(src)
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
var/ioncheck[1]
|
||||
var/devillawcheck[5]
|
||||
|
||||
var/sensors_on = 0
|
||||
var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use
|
||||
var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use
|
||||
var/d_hud = DATA_HUD_DIAGNOSTIC_BASIC //Determines the diag hud to use
|
||||
@@ -328,7 +329,7 @@
|
||||
/mob/living/silicon/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt silicon units
|
||||
return -10
|
||||
|
||||
/mob/living/silicon/proc/remove_med_sec_hud()
|
||||
/mob/living/silicon/proc/remove_sensors()
|
||||
var/datum/atom_hud/secsensor = GLOB.huds[sec_hud]
|
||||
var/datum/atom_hud/medsensor = GLOB.huds[med_hud]
|
||||
var/datum/atom_hud/diagsensor = GLOB.huds[d_hud]
|
||||
@@ -336,36 +337,24 @@
|
||||
medsensor.remove_hud_from(src)
|
||||
diagsensor.remove_hud_from(src)
|
||||
|
||||
/mob/living/silicon/proc/add_sec_hud()
|
||||
/mob/living/silicon/proc/add_sensors()
|
||||
var/datum/atom_hud/secsensor = GLOB.huds[sec_hud]
|
||||
secsensor.add_hud_to(src)
|
||||
|
||||
/mob/living/silicon/proc/add_med_hud()
|
||||
var/datum/atom_hud/medsensor = GLOB.huds[med_hud]
|
||||
medsensor.add_hud_to(src)
|
||||
|
||||
/mob/living/silicon/proc/add_diag_hud()
|
||||
var/datum/atom_hud/diagsensor = GLOB.huds[d_hud]
|
||||
secsensor.add_hud_to(src)
|
||||
medsensor.add_hud_to(src)
|
||||
diagsensor.add_hud_to(src)
|
||||
|
||||
/mob/living/silicon/proc/sensor_mode()
|
||||
/mob/living/silicon/proc/toggle_sensors()
|
||||
if(incapacitated())
|
||||
return
|
||||
var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security", "Medical","Diagnostic","Disable")
|
||||
remove_med_sec_hud()
|
||||
switch(sensor_type)
|
||||
if ("Security")
|
||||
add_sec_hud()
|
||||
to_chat(src, "<span class='notice'>Security records overlay enabled.</span>")
|
||||
if ("Medical")
|
||||
add_med_hud()
|
||||
to_chat(src, "<span class='notice'>Life signs monitor overlay enabled.</span>")
|
||||
if ("Diagnostic")
|
||||
add_diag_hud()
|
||||
to_chat(src, "<span class='notice'>Robotics diagnostic overlay enabled.</span>")
|
||||
if ("Disable")
|
||||
to_chat(src, "Sensor augmentations disabled.")
|
||||
|
||||
sensors_on = !sensors_on
|
||||
if (!sensors_on)
|
||||
to_chat(src, "Sensor overlay deactivated.")
|
||||
remove_sensors()
|
||||
return
|
||||
add_sensors()
|
||||
to_chat(src, "Sensor overlay activated.")
|
||||
|
||||
/mob/living/silicon/proc/GetPhoto()
|
||||
if (aicamera)
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
/mob/living/simple_animal/hostile/guardian/bomb/AltClickOn(atom/movable/A)
|
||||
if(!istype(A))
|
||||
return
|
||||
if(src.loc == summoner)
|
||||
if(loc == summoner)
|
||||
to_chat(src, "<span class='danger'><B>You must be manifested to create bombs!</span></B>")
|
||||
return
|
||||
if(isobj(A))
|
||||
if(isobj(A) && Adjacent(A))
|
||||
if(bomb_cooldown <= world.time && !stat)
|
||||
var/obj/guardian_bomb/B = new /obj/guardian_bomb(get_turf(A))
|
||||
to_chat(src, "<span class='danger'><B>Success! Bomb armed!</span></B>")
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
max_mobs = 3
|
||||
spawn_time = 200
|
||||
spawn_text = "peels itself off from"
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion)
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 20
|
||||
anchored = FALSE
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
maxHealth = 250
|
||||
max_mobs = 3
|
||||
spawn_time = 300 //30 seconds default
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/tendril)
|
||||
spawn_text = "emerges from"
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
|
||||
minbodytemp = 0
|
||||
@@ -28,10 +28,10 @@
|
||||
var/obj/effect/light_emitter/tendril/emitted_light
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/lavaland/goliath
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast/tendril)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/lavaland/legion
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/tendril)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/lavaland/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -71,11 +71,11 @@
|
||||
icon_living = "nether"
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
spawn_time = 50 //5 seconds
|
||||
spawn_time = 600 //1 minute
|
||||
max_mobs = 15
|
||||
icon = 'icons/mob/nest.dmi'
|
||||
spawn_text = "crawls through"
|
||||
mob_type = /mob/living/simple_animal/hostile/netherworld/migo
|
||||
mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody)
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
faction = list("nether")
|
||||
deathmessage = "shatters into oblivion."
|
||||
@@ -93,7 +93,7 @@
|
||||
if(M)
|
||||
playsound(src, 'sound/magic/demon_consume.ogg', 50, 1)
|
||||
M.adjustBruteLoss(60)
|
||||
new /obj/effect/gibspawner/human(get_turf(M))
|
||||
new /obj/effect/gibspawner/generic(get_turf(M))
|
||||
if(M.stat == DEAD)
|
||||
var/mob/living/simple_animal/hostile/netherworld/blankbody/blank
|
||||
blank = new(loc)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/max_mobs = 5
|
||||
var/spawn_delay = 0
|
||||
var/spawn_time = 300 //30 seconds default
|
||||
var/mob_type = /mob/living/simple_animal/hostile/carp
|
||||
var/mob_types = list(/mob/living/simple_animal/hostile/carp)
|
||||
var/spawn_text = "emerges from"
|
||||
status_flags = 0
|
||||
anchored = TRUE
|
||||
@@ -42,7 +42,8 @@
|
||||
if(spawn_delay > world.time)
|
||||
return 0
|
||||
spawn_delay = world.time + spawn_time
|
||||
var/mob/living/simple_animal/L = new mob_type(src.loc)
|
||||
var/chosen_mob_type = pick(mob_types)
|
||||
var/mob/living/simple_animal/L = new chosen_mob_type(src.loc)
|
||||
L.admin_spawned = admin_spawned //If we were admin spawned, lets have our children count as that as well.
|
||||
spawned_mobs += L
|
||||
L.nest = src
|
||||
@@ -54,7 +55,7 @@
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "syndbeacon"
|
||||
spawn_text = "warps in from"
|
||||
mob_type = /mob/living/simple_animal/hostile/syndicate/ranged
|
||||
mob_types = list(/mob/living/simple_animal/hostile/syndicate/ranged)
|
||||
faction = list(ROLE_SYNDICATE)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/skeleton
|
||||
@@ -67,7 +68,7 @@
|
||||
maxHealth = 150
|
||||
max_mobs = 15
|
||||
spawn_time = 150
|
||||
mob_type = /mob/living/simple_animal/hostile/skeleton
|
||||
mob_types = list(/mob/living/simple_animal/hostile/skeleton)
|
||||
spawn_text = "climbs out of"
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
faction = list("skeleton")
|
||||
@@ -82,26 +83,31 @@
|
||||
max_mobs = 3
|
||||
icon = 'icons/mob/nest.dmi'
|
||||
spawn_text = "crawls out of"
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/goldgrub
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub, /mob/living/simple_animal/hostile/asteroid/goliath, /mob/living/simple_animal/hostile/asteroid/hivelord, /mob/living/simple_animal/hostile/asteroid/basilisk, /mob/living/simple_animal/hostile/asteroid/fugu)
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
faction = list("mining")
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/mining/goldgrub
|
||||
name = "goldgrub den"
|
||||
desc = "A den housing a nest of goldgrubs, annoying but arguably much better than anything else you'll find in a nest."
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/mining/goliath
|
||||
name = "goliath den"
|
||||
desc = "A den housing a nest of goliaths, oh god why?"
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/goliath
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/mining/hivelord
|
||||
name = "hivelord den"
|
||||
desc = "A den housing a nest of hivelords."
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/mining/basilisk
|
||||
name = "basilisk den"
|
||||
desc = "A den housing a nest of basilisks, bring a coat."
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/basilisk
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk)
|
||||
|
||||
/mob/living/simple_animal/hostile/spawner/mining/wumborian
|
||||
name = "wumborian fugu den"
|
||||
desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?"
|
||||
mob_type = /mob/living/simple_animal/hostile/asteroid/fugu
|
||||
mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu)
|
||||
|
||||
@@ -131,6 +131,7 @@
|
||||
var/blueprints = 0 //are blueprints visible in the current photo being created?
|
||||
var/list/aipictures = list() //Allows for storage of pictures taken by AI, in a similar manner the datacore stores info. Keeping this here allows us to share some procs w/ regualar camera
|
||||
var/see_ghosts = 0 //for the spoop of it
|
||||
var/obj/item/disk/holodisk/disk
|
||||
|
||||
|
||||
/obj/item/device/camera/CheckParts(list/parts_list)
|
||||
@@ -189,8 +190,24 @@
|
||||
qdel(I)
|
||||
pictures_left = pictures_max
|
||||
return
|
||||
if(istype(I, /obj/item/disk/holodisk))
|
||||
if (!disk)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>[I] is stuck to your hand!</span>")
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>You slide [I] into the back of [src].</span>")
|
||||
disk = I
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There's already a disk inside [src].</span>")
|
||||
return TRUE //no afterattack
|
||||
..()
|
||||
|
||||
/obj/item/device/camera/attack_self(mob/user)
|
||||
if(!disk)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You eject [disk] out the back of [src].</span>")
|
||||
user.put_in_hands(disk)
|
||||
disk = null
|
||||
|
||||
/obj/item/device/camera/examine(mob/user)
|
||||
..()
|
||||
@@ -437,13 +454,24 @@
|
||||
/obj/item/device/camera/afterattack(atom/target, mob/user, flag)
|
||||
if(!on || !pictures_left || !isturf(target.loc))
|
||||
return
|
||||
if (disk)
|
||||
if(ismob(target))
|
||||
if (disk.record)
|
||||
QDEL_NULL(disk.record)
|
||||
|
||||
captureimage(target, user, flag)
|
||||
disk.record = new
|
||||
var/mob/M = target
|
||||
disk.record.caller_name = M.name
|
||||
disk.record.set_caller_image(M)
|
||||
else
|
||||
return
|
||||
else
|
||||
captureimage(target, user, flag)
|
||||
pictures_left--
|
||||
to_chat(user, "<span class='notice'>[pictures_left] photos left.</span>")
|
||||
|
||||
playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, 1, -3)
|
||||
|
||||
pictures_left--
|
||||
to_chat(user, "<span class='notice'>[pictures_left] photos left.</span>")
|
||||
icon_state = "camera_off"
|
||||
on = FALSE
|
||||
addtimer(CALLBACK(src, .proc/cooldown), 64)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
playsound(src, 'sound/machines/ding.ogg', 50, 1)
|
||||
eject()
|
||||
else
|
||||
var/gasdrained = powerproduction_drain*drainratio
|
||||
var/gasdrained = min(powerproduction_drain*drainratio,loaded_tank.air_contents.gases[/datum/gas/plasma][MOLES])
|
||||
loaded_tank.air_contents.gases[/datum/gas/plasma][MOLES] -= gasdrained
|
||||
loaded_tank.air_contents.assert_gas(/datum/gas/tritium)
|
||||
loaded_tank.air_contents.gases[/datum/gas/tritium][MOLES] += gasdrained
|
||||
@@ -189,6 +189,7 @@
|
||||
update_icons()
|
||||
|
||||
/obj/machinery/power/rad_collector/rad_act(pulse_strength)
|
||||
. = ..()
|
||||
if(loaded_tank && active && pulse_strength > RAD_COLLECTOR_EFFICIENCY)
|
||||
last_power += (pulse_strength-RAD_COLLECTOR_EFFICIENCY)*RAD_COLLECTOR_COEFFICIENT
|
||||
|
||||
|
||||
@@ -1104,6 +1104,7 @@
|
||||
id = "fungalspores"
|
||||
description = "Active fungal spores."
|
||||
color = "#92D17D" // rgb: 146, 209, 125
|
||||
can_synth = FALSE
|
||||
taste_description = "slime"
|
||||
|
||||
/datum/reagent/fungalspores/reaction_mob(mob/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
|
||||
|
||||
@@ -282,7 +282,6 @@
|
||||
H.reagents.add_reagent("nitryl_gas",1)
|
||||
|
||||
breath_gases[/datum/gas/nitryl][MOLES]-=gas_breathed
|
||||
gas_breathed = 0
|
||||
// Stimulum
|
||||
gas_breathed = breath_gases[/datum/gas/stimulum][MOLES]
|
||||
if (gas_breathed > gas_stimulation_min)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
author: "CitadelStationBot"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixes Noblium Formation being multiplicative, so having 500 moles of tritium and 500 moles of nitrogen no longer produces 2500 moles of noblium (it should correctly produce 10 moles)"
|
||||
- bugfix: "Fixes most reactions deleting more gas than exists and making gas out of nowhere"
|
||||
- bugfix: "Fixes Stim Formation invoking a byond bug and not using its intended polynomial formula"
|
||||
- bugfix: "Fixes Cryo Cells not having garbage_collect and clamping"
|
||||
- bugfix: "Fixes Rad Collectors not having clamping"
|
||||
- bugfix: "Fixes Division by Zero when Fusion has no impurities."
|
||||
- bugfix: "Removes a redundant line in lungs"
|
||||
- bugfix: "Fixes rad_act signal not firing from turfs, living mobs, rad collectors and geiger counters"
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "Robustin"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "The \"construct shell\" option from the cult archives structure will now only yield one shell instead of two."
|
||||
- balance: "Sacrificing suicide victims will now only yield an empty shard."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Xhuis"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Brass chairs now stop spinning after eight rotations, so you can't crash the server with them."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Dax Dupont"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Posibrains have gotten a small firmware update, they will now play a sound on successful activation."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Robustin"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "Synths and Androids are no longer available species at the magic mirror."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "CitadelStationBot"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Pressure damage now takes effect in certain situations where it should have but did not."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Denton"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Fungal tuberculosis spores can no longer be synthesized by machinery."
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "Dax Dupont"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "You can now insert holodisks into cameras and take a static holographic picture of someone!"
|
||||
- rscadd: "Hologram recordings can now be offset slightly."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "CitadelStationBot"
|
||||
delete-after: True
|
||||
changes:
|
||||
- balance: "Explosive holoparasites must now be adjacent to turn objects into bombs, instead of being able to do so from any range."
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "Dax Dupont"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Killing a revenant will now result in an unique shuttle to be able to be bought. You probably won't like it though."
|
||||
- rscadd: "Fake emag now available."
|
||||
Reference in New Issue
Block a user