@@ -409,7 +409,7 @@
|
||||
"jf" = (/obj/effect/mob_spawn/human/lavaland_syndicate{dir = 4; icon_state = "sleeper_s"},/obj/machinery/airalarm/syndicate{pixel_y = 24},/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"jg" = (/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"jh" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"ji" = (/obj/machinery/vending/snack/random{extended_inventory = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"ji" = (/obj/machinery/vending/snack/random{extended_inventory = 1; free = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jj" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/effect/turf_decal/tile/red{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jk" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"jl" = (/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
@@ -418,7 +418,7 @@
|
||||
"jp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jq" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{dir = 1},/obj/structure/bed,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"jr" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"js" = (/obj/machinery/vending/cola/random{extended_inventory = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"js" = (/obj/machinery/vending/cola/random{extended_inventory = 1; free = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jt" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"ju" = (/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"jv" = (/obj/effect/turf_decal/delivery,/obj/machinery/door/firedoor,/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/machinery/door/airlock/engineering{dir = 4; name = "Engineering"; req_access_txt = "150"},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
@@ -577,7 +577,7 @@
|
||||
"mS" = (/turf/closed/wall/mineral/plastitanium/explosive,/area/ruin/unpowered/syndicate_lava_base/telecomms)
|
||||
"mT" = (/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"mU" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"mX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/vending/kink,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"mX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/vending/kink{free = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"mY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{dir = 1},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"mZ" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/door/airlock/medical/glass{dir = 4; name = "Medbay"},/turf/open/floor/plasteel/white,/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"na" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel/white/side{dir = 8},/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
@@ -690,6 +690,7 @@
|
||||
"JA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{dir = 1},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"LX" = (/obj/machinery/hydroponics/constructable,/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"Mn" = (/turf/closed/wall/mineral/plastitanium/explosive,/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
"MY" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"NH" = (/obj/machinery/air_sensor{frequency = 1442; id_tag = "syndie_lavaland_tox_sensor"},/turf/open/floor/plating/airless,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"NZ" = (/obj/structure/table,/obj/item/storage/toolbox/syndicate,/obj/item/multitool,/obj/machinery/button/door{id = "lavalandsyndi_telecomms"; name = "Telecomms Blast Door Control"; pixel_x = 26; req_access_txt = "150"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/telecomms)
|
||||
"Ov" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
@@ -760,7 +761,7 @@ aaabababababababababababdGleopjyorjZjNlhlilZlkouovllozjyjDkQaDlnmElooAnclqlrlslt
|
||||
aaabababababababababababhalwlwjyjyoHjZlzlAlBlCaklElFuBjyjDkQlHlImElKkQlLlMlNlOEZlPSulQlRnGjuabababaa
|
||||
aaababababmnmnmnRuRuRuRumnlTgsmOjynSlVlWlXlYlZmajymcjyjyTpkQmeUgmfYjkUncmhmimjmkmlDGjujujujuabababaa
|
||||
aaabababiimnmMmnmpmpIaNZmnmsmsmTjymvmumvjyvxmxjyjyjyjymzocmAmBmCmEmEutncmGmHmImJmKnjjuababababababaa
|
||||
aaabababmnmMmMmPTimQmRWtmSzVzVyqmUmUEFZvjyjyMnjyvDXamXmYzymZnauXnbnbRancjuneRVngsZNHjuababababababaa
|
||||
aaabababmnmMmMmPTimQmRWtmSzVzVyqMYmUEFZvjyjyMnjyvDXamXmYzymZnauXnbnbRancjuneRVngsZNHjuababababababaa
|
||||
aaabababmnFbnkaEnknlnmmonnrFnonpBkamnrpiQmjPJAnsntRsfDnwhWnynzloRYmECDZInDnEtWnFnGRDjuababababababaa
|
||||
aaabababmnmMmMmnnInJnKnLmnmTnQmTfPfPaoarPanTnUnXnXnXfKauhXmTobfkaVcDszjujuofOYjujujuhBababababababaa
|
||||
aaabababgmmnmMmnoiojokmnmnmTGYPaPaPaPaJccIPamTgWgWgWgWgXmTmTmTmTmTmTmTmTotFlFRpVabababababababababaa
|
||||
|
||||
@@ -42,13 +42,13 @@
|
||||
"aP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -29},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/green{dir = 1},/obj/effect/turf_decal/tile/green{dir = 4},/obj/effect/turf_decal/tile/green,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock{dir = 4; name = "Personal Quarters"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aS" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aT" = (/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},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aU" = (/obj/effect/turf_decal/stripes/red/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/structure/sign/poster/contraband/random{pixel_y = 30},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aW" = (/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aX" = (/obj/structure/closet/firecloset/full{anchored = 1},/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/turf/open/floor/mineral/plastitanium,/area/ruin/space/has_grav/listeningstation)
|
||||
"aY" = (/obj/machinery/vending/snack/random{extended_inventory = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/sign/poster/contraband/random{pixel_x = 32},/obj/effect/turf_decal/tile/red{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aY" = (/obj/machinery/vending/snack/random{extended_inventory = 1; free = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/sign/poster/contraband/random{pixel_x = 32},/obj/effect/turf_decal/tile/red{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"aZ" = (/turf/closed/mineral/random,/area/ruin/space/has_grav/listeningstation)
|
||||
"ba" = (/obj/machinery/vending/boozeomat/syndicate_access,/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/space/has_grav/listeningstation)
|
||||
"bb" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/public/glass{dir = 4; name = "Botany"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/listeningstation)
|
||||
@@ -71,7 +71,7 @@
|
||||
"bs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"bt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/open/floor/wood,/area/ruin/space/has_grav/listeningstation)
|
||||
"bu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/wood,/area/ruin/space/has_grav/listeningstation)
|
||||
"bv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/vending/cola/shamblers,/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"bv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/vending/cola/shamblers{free = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"bw" = (/obj/structure/closet/secure_closet/hydroponics{req_access = null},/obj/item/reagent_containers/spray/pestspray{pixel_x = 3; pixel_y = 4},/obj/item/shovel/spade,/obj/effect/decal/cleanable/dirt,/obj/item/storage/bag/plants,/obj/effect/turf_decal/tile/green{dir = 8},/obj/effect/turf_decal/tile/green{dir = 1},/obj/effect/turf_decal/tile/green,/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"bx" = (/obj/effect/turf_decal/tile/green,/obj/effect/turf_decal/tile/green{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/listeningstation)
|
||||
"by" = (/obj/machinery/power/terminal{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1},/obj/structure/reagent_dispensers/fueltank,/obj/item/clothing/head/welding,/obj/item/weldingtool/largetank,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plating,/area/ruin/space/has_grav/listeningstation)
|
||||
|
||||
@@ -1670,7 +1670,7 @@
|
||||
"aGf" = (/obj/machinery/shower{pixel_y = 19},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet)
|
||||
"aGg" = (/obj/machinery/cryopod{dir = 4},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/cryopod)
|
||||
"aGh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/open/floor/plasteel/yellowsiding{dir = 1},/area/crew_quarters/fitness/pool)
|
||||
"aGi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/maintenance/starboard/fore)
|
||||
"aGi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore)
|
||||
"aGj" = (/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/carpet,/area/crew_quarters/theatre)
|
||||
"aGk" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{icon_state = "2-4"},/obj/structure/disposalpipe/sorting/mail{dir = 4; sortType = 19},/turf/open/floor/plating,/area/maintenance/starboard/fore)
|
||||
"aGl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/dorms)
|
||||
@@ -2047,7 +2047,7 @@
|
||||
"aNs" = (/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen)
|
||||
"aNt" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/vault{req_access_txt = "53"},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai_upload)
|
||||
"aNu" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/central)
|
||||
"aNv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/plasticflaps/opaque,/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/turf/open/floor/plating,/area/crew_quarters/kitchen)
|
||||
"aNv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/plasticflaps/opaque,/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/turf/open/floor/plating,/area/crew_quarters/kitchen)
|
||||
"aNw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/crew_quarters/kitchen)
|
||||
"aNx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/plasticflaps/opaque,/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/maintenance/starboard/fore)
|
||||
"aNy" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/obj/structure/disposalpipe/segment{dir = 5},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{icon_state = "1-4"},/turf/open/floor/plasteel,/area/hallway/primary/central)
|
||||
|
||||
@@ -20165,7 +20165,6 @@
|
||||
},
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
"aOh" = (
|
||||
/obj/structure/chair,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
@@ -20176,6 +20175,9 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel{
|
||||
heat_capacity = 1e+006
|
||||
},
|
||||
@@ -25501,9 +25503,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
@@ -25514,6 +25513,9 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/crew_quarters/bar)
|
||||
"aZb" = (
|
||||
@@ -41964,6 +41966,9 @@
|
||||
/obj/effect/turf_decal/tile/purple{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/aft)
|
||||
"bHn" = (
|
||||
@@ -53371,9 +53376,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/dorms)
|
||||
"coo" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
|
||||
/obj/machinery/airalarm{
|
||||
dir = 1;
|
||||
pixel_y = -22
|
||||
@@ -58566,6 +58569,13 @@
|
||||
/obj/structure/grille,
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"gZw" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"heC" = (
|
||||
/obj/machinery/power/apc/highcap/five_k{
|
||||
dir = 8;
|
||||
@@ -59568,6 +59578,12 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/crew_quarters/dorms)
|
||||
"jKu" = (
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/main/monastery)
|
||||
"jLW" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/purple/visible,
|
||||
/turf/closed/wall/r_wall,
|
||||
@@ -59765,6 +59781,20 @@
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/maintenance/department/crew_quarters/dorms)
|
||||
"kks" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel/white/corner{
|
||||
dir = 1
|
||||
},
|
||||
/area/hallway/secondary/entry)
|
||||
"kkQ" = (
|
||||
/obj/machinery/vending/cola/pwr_game,
|
||||
/turf/open/floor/plating{
|
||||
@@ -61151,6 +61181,21 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/science/xenobiology)
|
||||
"nFk" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"nGi" = (
|
||||
/obj/structure/chair{
|
||||
dir = 4
|
||||
@@ -63383,6 +63428,15 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/aft)
|
||||
"tcR" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atm{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"tcY" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -82030,7 +82084,7 @@ bOw
|
||||
bQg
|
||||
bQe
|
||||
bWV
|
||||
bXJ
|
||||
jKu
|
||||
bXJ
|
||||
bZm
|
||||
bYB
|
||||
@@ -84797,7 +84851,7 @@ aIC
|
||||
pvK
|
||||
aKD
|
||||
gmO
|
||||
aQt
|
||||
aHz
|
||||
aOh
|
||||
aWK
|
||||
aRE
|
||||
@@ -86351,7 +86405,7 @@ azW
|
||||
abG
|
||||
aHz
|
||||
aYG
|
||||
aZA
|
||||
kks
|
||||
aGp
|
||||
bbR
|
||||
bbR
|
||||
@@ -86363,7 +86417,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aYG
|
||||
bbR
|
||||
tcR
|
||||
bbR
|
||||
aJu
|
||||
baK
|
||||
@@ -93530,7 +93584,7 @@ aEz
|
||||
aFx
|
||||
aGk
|
||||
awR
|
||||
aHQ
|
||||
nFk
|
||||
aIO
|
||||
aJO
|
||||
aKT
|
||||
@@ -103804,7 +103858,7 @@ aym
|
||||
awr
|
||||
aAO
|
||||
aBP
|
||||
com
|
||||
coo
|
||||
apX
|
||||
aET
|
||||
aaH
|
||||
@@ -104318,9 +104372,9 @@ ayn
|
||||
azv
|
||||
col
|
||||
aBR
|
||||
coo
|
||||
bns
|
||||
apX
|
||||
aGV
|
||||
gZw
|
||||
aDZ
|
||||
aGD
|
||||
aDZ
|
||||
|
||||
@@ -12900,6 +12900,23 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/centcom/ferry)
|
||||
"Cl" = (
|
||||
/obj/structure/flora/ausbushes/grassybush,
|
||||
/obj/structure/flora/ausbushes/sparsegrass,
|
||||
/obj/structure/flora/ausbushes/fernybush,
|
||||
/obj/item/storage/backpack/duffelbag/drone{
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/effect/decal/cleanable/ash{
|
||||
name = "ashes of drone (760)"
|
||||
},
|
||||
/obj/item/clothing/head/hardhat/weldhat,
|
||||
/turf/open/floor/plasteel{
|
||||
dir = 6;
|
||||
icon_state = "asteroid8";
|
||||
name = "sand"
|
||||
},
|
||||
/area/centcom/control)
|
||||
"Cn" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade,
|
||||
@@ -18945,6 +18962,9 @@
|
||||
/obj/structure/table/wood,
|
||||
/obj/structure/window/reinforced/spawner/north,
|
||||
/obj/structure/window/reinforced/spawner/west,
|
||||
/obj/item/rupee{
|
||||
desc = "A gift, right?"
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/centcom/ferry)
|
||||
"RD" = (
|
||||
@@ -62724,7 +62744,7 @@ io
|
||||
io
|
||||
io
|
||||
qw
|
||||
WI
|
||||
Cl
|
||||
Wk
|
||||
WI
|
||||
lN
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
#define ADMIN_PUNISHMENT_FAKEBWOINK "Fake Bwoink"
|
||||
#define ADMIN_PUNISHMENT_NUGGET "Nugget"
|
||||
#define ADMIN_PUNISHMENT_BREADIFY ":b:read"
|
||||
#define ADMIN_PUNISHMENT_BOOKIFY "Bookify"
|
||||
|
||||
#define AHELP_ACTIVE 1
|
||||
#define AHELP_CLOSED 2
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#define COLOR_FLOORTILE_GRAY "#8D8B8B"
|
||||
#define COLOR_ALMOST_BLACK "#333333"
|
||||
#define COLOR_SILVER "#C0C0C0"
|
||||
#define COLOR_BLACK "#000000"
|
||||
#define COLOR_RED "#FF0000"
|
||||
#define COLOR_RED_LIGHT "#FF3333"
|
||||
@@ -63,4 +64,4 @@
|
||||
#define COLOR_ASSEMBLY_LBLUE "#5D99BE"
|
||||
#define COLOR_ASSEMBLY_BLUE "#38559E"
|
||||
#define COLOR_ASSEMBLY_PURPLE "#6F6192"
|
||||
#define COLOR_ASSEMBLY_PINK "#ff4adc"
|
||||
#define COLOR_ASSEMBLY_PINK "#ff4adc"
|
||||
|
||||
@@ -6,6 +6,10 @@
|
||||
#define PLANE_SPACE -95
|
||||
#define PLANE_SPACE_PARALLAX -90
|
||||
|
||||
#define OPENSPACE_LAYER 17 //Openspace layer over all
|
||||
#define OPENSPACE_PLANE -4 //Openspace plane below all turfs
|
||||
#define OPENSPACE_BACKDROP_PLANE -3 //Black square just over openspace plane to guaranteed cover all in openspace turf
|
||||
|
||||
#define FLOOR_PLANE -2
|
||||
#define GAME_PLANE -1
|
||||
#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals
|
||||
@@ -87,9 +91,6 @@
|
||||
#define ABOVE_LIGHTING_PLANE 16
|
||||
#define ABOVE_LIGHTING_LAYER 16
|
||||
|
||||
#define FLOOR_OPENSPACE_PLANE 17
|
||||
#define OPENSPACE_LAYER 17
|
||||
|
||||
#define BYOND_LIGHTING_PLANE 18
|
||||
#define BYOND_LIGHTING_LAYER 18
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/last_parallax_shift //world.time of last update
|
||||
var/parallax_throttle = 0 //ds between updates
|
||||
var/parallax_movedir = 0
|
||||
var/parallax_layers_max = 3
|
||||
var/parallax_layers_max = 4
|
||||
var/parallax_animate_timer
|
||||
|
||||
/datum/hud/proc/create_parallax(mob/viewmob)
|
||||
@@ -22,6 +22,8 @@
|
||||
C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_1(null, C.view)
|
||||
C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_2(null, C.view)
|
||||
C.parallax_layers_cached += new /obj/screen/parallax_layer/planet(null, C.view)
|
||||
if(SSparallax.random_layer)
|
||||
C.parallax_layers_cached += new SSparallax.random_layer
|
||||
C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_3(null, C.view)
|
||||
|
||||
C.parallax_layers = C.parallax_layers_cached.Copy()
|
||||
@@ -64,12 +66,12 @@
|
||||
switch(C.prefs.parallax)
|
||||
if (PARALLAX_INSANE)
|
||||
C.parallax_throttle = FALSE
|
||||
C.parallax_layers_max = 4
|
||||
C.parallax_layers_max = 5
|
||||
return TRUE
|
||||
|
||||
if (PARALLAX_MED)
|
||||
C.parallax_throttle = PARALLAX_DELAY_MED
|
||||
C.parallax_layers_max = 2
|
||||
C.parallax_layers_max = 3
|
||||
return TRUE
|
||||
|
||||
if (PARALLAX_LOW)
|
||||
@@ -81,7 +83,7 @@
|
||||
return FALSE
|
||||
|
||||
C.parallax_throttle = PARALLAX_DELAY_DEFAULT
|
||||
C.parallax_layers_max = 3
|
||||
C.parallax_layers_max = 4
|
||||
return TRUE
|
||||
|
||||
/datum/hud/proc/update_parallax_pref(mob/viewmob)
|
||||
@@ -167,7 +169,7 @@
|
||||
/datum/hud/proc/update_parallax()
|
||||
var/client/C = mymob.client
|
||||
var/turf/posobj = get_turf(C.eye)
|
||||
if(!posobj)
|
||||
if(!posobj)
|
||||
return
|
||||
var/area/areaobj = posobj.loc
|
||||
|
||||
@@ -296,6 +298,23 @@
|
||||
speed = 1.4
|
||||
layer = 3
|
||||
|
||||
/obj/screen/parallax_layer/random
|
||||
blend_mode = BLEND_OVERLAY
|
||||
speed = 3
|
||||
layer = 3
|
||||
|
||||
/obj/screen/parallax_layer/random/space_gas
|
||||
icon_state = "space_gas"
|
||||
|
||||
/obj/screen/parallax_layer/random/space_gas/Initialize(mapload, view)
|
||||
src.add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY)
|
||||
|
||||
/obj/screen/parallax_layer/random/asteroids
|
||||
icon_state = "asteroids"
|
||||
|
||||
/obj/screen/parallax_layer/random/nebula
|
||||
icon_state = "nebula1"
|
||||
|
||||
/obj/screen/parallax_layer/planet
|
||||
icon_state = "planet"
|
||||
blend_mode = BLEND_OVERLAY
|
||||
@@ -304,11 +323,11 @@
|
||||
layer = 30
|
||||
|
||||
/obj/screen/parallax_layer/planet/update_status(mob/M)
|
||||
var/turf/T = get_turf(M)
|
||||
if(is_station_level(T.z))
|
||||
invisibility = 0
|
||||
else
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
var/client/C = M.client
|
||||
var/turf/posobj = get_turf(C.eye)
|
||||
if(!posobj)
|
||||
return
|
||||
invisibility = is_station_level(posobj.z) ? 0 : INVISIBILITY_ABSTRACT
|
||||
|
||||
/obj/screen/parallax_layer/planet/update_o()
|
||||
return //Shit wont move
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/obj/screen/plane_master/openspace
|
||||
name = "open space plane master"
|
||||
plane = FLOOR_OPENSPACE_PLANE
|
||||
plane = OPENSPACE_BACKDROP_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
blend_mode = BLEND_MULTIPLY
|
||||
alpha = 255
|
||||
|
||||
@@ -7,9 +7,15 @@ SUBSYSTEM_DEF(parallax)
|
||||
var/list/currentrun
|
||||
var/planet_x_offset = 128
|
||||
var/planet_y_offset = 128
|
||||
var/random_layer
|
||||
var/random_parallax_color
|
||||
|
||||
/datum/controller/subsystem/parallax/Initialize(timeofday)
|
||||
//These are cached per client so needs to be done asap so people joining at roundstart do not miss these.
|
||||
/datum/controller/subsystem/parallax/PreInit()
|
||||
. = ..()
|
||||
if(prob(70)) //70% chance to pick a special extra layer
|
||||
random_layer = pick(/obj/screen/parallax_layer/random/space_gas, /obj/screen/parallax_layer/random/asteroids, /obj/screen/parallax_layer/random/nebula)
|
||||
random_parallax_color = pick(COLOR_TEAL, COLOR_GREEN, COLOR_SILVER, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE)//Special color for random_layer1. Has to be done here so everyone sees the same color.
|
||||
planet_y_offset = rand(100, 160)
|
||||
planet_x_offset = rand(100, 160)
|
||||
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
|
||||
var/renamedByPlayer = FALSE //set when a player uses a pen on a renamable object
|
||||
|
||||
vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of obj in openspace.
|
||||
|
||||
/obj/vv_edit_var(vname, vval)
|
||||
switch(vname)
|
||||
if("anchored")
|
||||
|
||||
@@ -453,6 +453,7 @@
|
||||
H.update_inv_wear_mask()
|
||||
else
|
||||
H.lip_style = null
|
||||
H.nail_style = null
|
||||
H.update_body()
|
||||
if(H.glasses && washglasses && wash_obj(H.glasses))
|
||||
H.update_inv_glasses()
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdrop, new)
|
||||
|
||||
/atom/movable/openspace_backdrop
|
||||
name = "openspace_backdrop"
|
||||
|
||||
anchored = TRUE
|
||||
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "grey"
|
||||
plane = OPENSPACE_BACKDROP_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
layer = SPLASHSCREEN_LAYER
|
||||
|
||||
/turf/open/openspace
|
||||
name = "open space"
|
||||
desc = "Watch your step!"
|
||||
icon_state = "grey"
|
||||
icon_state = "transparent"
|
||||
baseturfs = /turf/open/openspace
|
||||
CanAtmosPassVertical = ATMOS_PASS_YES
|
||||
//mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
@@ -14,8 +27,11 @@
|
||||
|
||||
/turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
|
||||
. = ..()
|
||||
plane = FLOOR_OPENSPACE_PLANE
|
||||
plane = OPENSPACE_PLANE
|
||||
layer = OPENSPACE_LAYER
|
||||
|
||||
vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it.
|
||||
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/turf/open/openspace/LateInitialize()
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
light_power = 0.25
|
||||
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
|
||||
bullet_bounce_sound = null
|
||||
|
||||
vis_flags = VIS_INHERIT_ID //when this be added to vis_contents of something it be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf.
|
||||
|
||||
/turf/open/space/basic/New() //Do not convert to Initialize
|
||||
//This is used to optimize the map loader
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
//IE if the turf is supposed to be water, set TRUE.
|
||||
|
||||
var/tiled_dirt = FALSE // use smooth tiled dirt decal
|
||||
|
||||
vis_flags = VIS_INHERIT_PLANE|VIS_INHERIT_ID //when this be added to vis_contents of something it inherit something.plane and be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf.
|
||||
|
||||
/turf/vv_edit_var(var_name, new_value)
|
||||
var/static/list/banned_edits = list("x", "y", "z")
|
||||
|
||||
@@ -1247,6 +1247,11 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
var/obj/item/reagent_containers/food/snacks/store/bread/plain/funnyBread = new(get_turf(target))
|
||||
target.forceMove(funnyBread)
|
||||
|
||||
/client/proc/bookify(atom/movable/target)
|
||||
var/obj/item/reagent_containers/food/snacks/store/book/funnyBook = new(get_turf(target))
|
||||
target.forceMove(funnyBook)
|
||||
funnyBook.name = "Book of " + target.name
|
||||
|
||||
/client/proc/smite(mob/living/carbon/human/target as mob)
|
||||
set name = "Smite"
|
||||
set category = "Fun"
|
||||
@@ -1268,7 +1273,8 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
ADMIN_PUNISHMENT_TABLETIDESTATIONWIDE,
|
||||
ADMIN_PUNISHMENT_FAKEBWOINK,
|
||||
ADMIN_PUNISHMENT_NUGGET,
|
||||
ADMIN_PUNISHMENT_BREADIFY)
|
||||
ADMIN_PUNISHMENT_BREADIFY,
|
||||
ADMIN_PUNISHMENT_BOOKIFY)
|
||||
|
||||
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list
|
||||
|
||||
@@ -1379,6 +1385,14 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
|
||||
target.transformation_animation(bread_appearance, time = BREADIFY_TIME, transform_overlay=transform_scanline, reset_after=TRUE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/breadify, target), BREADIFY_TIME)
|
||||
#undef BREADIFY_TIME
|
||||
if(ADMIN_PUNISHMENT_BOOKIFY)
|
||||
#define BOOKIFY_TIME (2 SECONDS)
|
||||
var/mutable_appearance/book_appearance = mutable_appearance('icons/obj/library.dmi', "book")
|
||||
var/mutable_appearance/transform_scanline = mutable_appearance('icons/effects/effects.dmi', "transform_effect")
|
||||
target.transformation_animation(book_appearance, time = BOOKIFY_TIME, transform_overlay=transform_scanline, reset_after=TRUE)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/bookify, target), BOOKIFY_TIME)
|
||||
playsound(target, 'hyperstation/sound/misc/bookify.ogg', 60, 1)
|
||||
#undef BOOKIFY_TIME
|
||||
|
||||
punish_log(target, punishment)
|
||||
|
||||
|
||||
@@ -203,6 +203,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
anchored = TRUE // should only appear in vis_contents, but to be safe
|
||||
layer = FLY_LAYER
|
||||
appearance_flags = TILE_BOUND
|
||||
vis_flags = NONE
|
||||
|
||||
/obj/effect/overlay/gas/New(state, alph)
|
||||
. = ..()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
for(var/V in GLOB.player_list)
|
||||
var/mob/M = V
|
||||
if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z))
|
||||
M.playsound_local(M, 'sound/ambience/aurora_caelus_new.ogg', 40, FALSE, pressure_affected = FALSE) //ogg is "The Fire is Gone" by Heaven Pierce Her, used in the videogame ULTRAKILL. All respects and credits to the equivalent artists who worked on it.
|
||||
M.playsound_local(M, pick('sound/ambience/aurora_caelus_new.ogg','sound/ambience/aurora_caelus.ogg'), 40, FALSE, pressure_affected = FALSE) //ogg is "The Fire is Gone" by Heaven Pierce Her, used in the videogame ULTRAKILL. All respects and credits to the equivalent artists who worked on it.
|
||||
start_checking()
|
||||
|
||||
/datum/round_event/aurora_caelus/proc/start_checking()
|
||||
|
||||
@@ -378,3 +378,16 @@ All foods are distributed among various categories. Use common sense.
|
||||
TB.MouseDrop(over)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/book
|
||||
name = "book"
|
||||
desc = "Could it be? A LoR reference? And is it... Edible?"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "book"
|
||||
tastes = list("broken dreams and promises" = 10)
|
||||
foodtype = GROSS
|
||||
dunkable = TRUE
|
||||
volume = 80
|
||||
bitesize = 4
|
||||
bonus_reagents = list(/datum/reagent/consumable/nutriment = 1)
|
||||
list_reagents = list(/datum/reagent/consumable/sodiumchloride = 1)
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
|
||||
var/lip_color = "white"
|
||||
|
||||
var/nail_style = null
|
||||
var/nail_color = "white"
|
||||
|
||||
var/age = 30 //Player's age
|
||||
|
||||
var/underwear = "Nude" //Which underwear the player wants
|
||||
|
||||
@@ -550,6 +550,12 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
MA.color = "#[H.socks_color]"
|
||||
standing += MA
|
||||
|
||||
// nail paint (hyper)
|
||||
if(H.nail_style)
|
||||
var/mutable_appearance/nail_overlay = mutable_appearance('hyperstation/icons/mobs/nails.dmi', "nails", -HANDS_PART_LAYER)
|
||||
nail_overlay.color = H.nail_color
|
||||
standing += nail_overlay
|
||||
|
||||
if(standing.len)
|
||||
H.overlays_standing[BODY_LAYER] = standing
|
||||
|
||||
|
||||
@@ -142,3 +142,5 @@
|
||||
var/typing_indicator_timerid
|
||||
/// Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays.
|
||||
var/mutable_appearance/typing_indicator_current
|
||||
|
||||
vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace.
|
||||
|
||||
@@ -465,7 +465,7 @@
|
||||
has_panel_overlay = FALSE
|
||||
amount = 10
|
||||
pixel_y = 6
|
||||
layer = WALL_OBJ_LAYER
|
||||
layer = 4
|
||||
circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks
|
||||
working_state = null
|
||||
nopower_state = null
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
taste_description = "alcohol"
|
||||
var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
|
||||
pH = 7.33
|
||||
hydration = 1 * REAGENTS_METABOLISM
|
||||
hydration = 1
|
||||
|
||||
/*
|
||||
Boozepwr Chart
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
glass_icon_state = "glass_orange"
|
||||
glass_name = "glass of orange juice"
|
||||
glass_desc = "Vitamins! Yay!"
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
pH = 3.3
|
||||
|
||||
/datum/reagent/consumable/orangejuice/on_mob_life(mob/living/carbon/M)
|
||||
@@ -28,7 +28,7 @@
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of tomato juice"
|
||||
glass_desc = "Are you sure this is tomato juice?"
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getFireLoss() && prob(20))
|
||||
@@ -45,7 +45,7 @@
|
||||
glass_name = "glass of lime juice"
|
||||
glass_desc = "A glass of sweet-sour lime juice."
|
||||
pH = 2.2
|
||||
hydration = 3 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getToxLoss() && prob(20))
|
||||
@@ -61,7 +61,7 @@
|
||||
glass_icon_state = "carrotjuice"
|
||||
glass_name = "glass of carrot juice"
|
||||
glass_desc = "It's just like a carrot but without crunching."
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/carrotjuice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_blurriness(-1)
|
||||
@@ -83,7 +83,7 @@
|
||||
glass_icon_state = "berryjuice"
|
||||
glass_name = "glass of berry juice"
|
||||
glass_desc = "Berry juice. Or maybe it's jam. Who cares?"
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/applejuice
|
||||
name = "Apple Juice"
|
||||
@@ -91,7 +91,7 @@
|
||||
color = "#ECFF56" // rgb: 236, 255, 86
|
||||
taste_description = "apples"
|
||||
pH = 3.2 // ~ 2.7 -> 3.7
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/poisonberryjuice
|
||||
name = "Poison Berry Juice"
|
||||
@@ -101,7 +101,7 @@
|
||||
glass_icon_state = "poisonberryjuice"
|
||||
glass_name = "glass of berry juice"
|
||||
glass_desc = "Berry juice. Or maybe it's poison. Who cares?"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustToxLoss(1, 0)
|
||||
@@ -116,7 +116,7 @@
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of watermelon juice"
|
||||
glass_desc = "A glass of watermelon juice."
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/lemonjuice
|
||||
name = "Lemon Juice"
|
||||
@@ -127,7 +127,7 @@
|
||||
glass_name = "glass of lemon juice"
|
||||
glass_desc = "Sour..."
|
||||
pH = 2
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/strawberryjuice
|
||||
name = "Strawberry Juice"
|
||||
@@ -136,7 +136,7 @@
|
||||
taste_description = "strawberry"
|
||||
glass_name = "glass of strawberry juice"
|
||||
glass_desc = "Refreshing seasonal summer drink."
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/banana
|
||||
name = "Banana Juice"
|
||||
@@ -146,7 +146,7 @@
|
||||
glass_icon_state = "banana"
|
||||
glass_name = "glass of banana juice"
|
||||
glass_desc = "The raw essence of a banana. HONK."
|
||||
hydration = 1 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/banana/on_mob_life(mob/living/carbon/M)
|
||||
if((ishuman(M) && M.job == "Clown") || ismonkey(M))
|
||||
@@ -210,7 +210,7 @@
|
||||
description = "The juice of a bunch of grapes. Guaranteed non-alcoholic."
|
||||
color = "#290029" // dark purple
|
||||
taste_description = "grape soda"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/milk
|
||||
name = "Milk"
|
||||
@@ -221,7 +221,7 @@
|
||||
glass_name = "milk drum"
|
||||
glass_desc = "White and nutritious goodness!"
|
||||
pH = 6.5
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M)
|
||||
if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER))
|
||||
@@ -243,7 +243,7 @@
|
||||
glass_icon_state = "glass_white"
|
||||
glass_name = "glass of soy milk"
|
||||
glass_desc = "White and nutritious soy goodness!"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
@@ -260,7 +260,7 @@
|
||||
glass_icon_state = "glass_white"
|
||||
glass_name = "glass of coconut milk"
|
||||
glass_desc = "White and nutritious goodness!"
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/coconutmilk/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
@@ -276,7 +276,7 @@
|
||||
glass_icon_state = "glass_white"
|
||||
glass_name = "glass of cream"
|
||||
glass_desc = "Ewwww..."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/cream/on_mob_life(mob/living/carbon/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
@@ -294,7 +294,7 @@
|
||||
glass_icon_state = "glass_brown"
|
||||
glass_name = "glass of coffee"
|
||||
glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/coffee/overdose_process(mob/living/M)
|
||||
M.Jitter(5)
|
||||
@@ -320,7 +320,7 @@
|
||||
glass_icon_state = "teaglass"
|
||||
glass_name = "glass of tea"
|
||||
glass_desc = "Drinking it from here would not seem right."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
@@ -341,7 +341,7 @@
|
||||
glass_icon_state = "lemonpitcher"
|
||||
glass_name = "pitcher of lemonade"
|
||||
glass_desc = "This drink leaves you feeling nostalgic for some reason."
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/tea/arnold_palmer
|
||||
name = "Arnold Palmer"
|
||||
@@ -353,7 +353,7 @@
|
||||
glass_icon_state = "arnold_palmer"
|
||||
glass_name = "Arnold Palmer"
|
||||
glass_desc = "You feel like taking a few golf swings after a few swigs of this."
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(5))
|
||||
@@ -370,7 +370,7 @@
|
||||
glass_icon_state = "icedcoffeeglass"
|
||||
glass_name = "iced coffee"
|
||||
glass_desc = "A drink to perk you up and refresh you!"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -390,7 +390,7 @@
|
||||
glass_icon_state = "icedteaglass"
|
||||
glass_name = "iced tea"
|
||||
glass_desc = "All natural, antioxidant-rich flavour sensation."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
@@ -410,7 +410,7 @@
|
||||
glass_icon_state = "glass_brown"
|
||||
glass_name = "glass of Space Cola"
|
||||
glass_desc = "A glass of refreshing Space Cola."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(0,M.drowsyness-5)
|
||||
@@ -426,7 +426,7 @@
|
||||
glass_icon_state = "nuka_colaglass"
|
||||
glass_name = "glass of Nuka Cola"
|
||||
glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
@@ -471,7 +471,7 @@
|
||||
glass_icon_state = "dr_gibb_glass"
|
||||
glass_name = "glass of Dr. Gibb"
|
||||
glass_desc = "Dr. Gibb. Not as dangerous as the glass_name might imply."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/carbon/M)
|
||||
M.drowsyness = max(0,M.drowsyness-6)
|
||||
@@ -486,7 +486,7 @@
|
||||
glass_icon_state = "space-up_glass"
|
||||
glass_name = "glass of Space-Up"
|
||||
glass_desc = "Space-up. It helps you keep your cool."
|
||||
hydration = 5 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/space_up/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -500,7 +500,7 @@
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "glass of lemon-lime"
|
||||
glass_desc = "You're pretty certain a real fruit has never actually touched this."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -514,7 +514,7 @@
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of Pwr Game"
|
||||
glass_desc = "Goes well with a Vlad's salad."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/pwr_game/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -528,7 +528,7 @@
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of Shambler's juice"
|
||||
glass_desc = "Mmm mm, shambly."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/shamblers/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -543,7 +543,7 @@
|
||||
glass_icon_state = "grey_bull_glass"
|
||||
glass_name = "glass of Grey Bull"
|
||||
glass_desc = "Surprisingly it isnt grey."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
@@ -569,7 +569,7 @@
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "glass of soda water"
|
||||
glass_desc = "Soda water. Why not make a scotch and soda?"
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -585,7 +585,7 @@
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "glass of tonic water"
|
||||
glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
||||
hydration = 4 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -604,7 +604,7 @@
|
||||
glass_icon_state = "iceglass"
|
||||
glass_name = "glass of ice"
|
||||
glass_desc = "Generally, you're supposed to put something else in there too..."
|
||||
hydration = 5 * REAGENTS_METABOLISM //ice is water dummy, just as good.
|
||||
hydration = 5
|
||||
|
||||
/datum/reagent/consumable/ice/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -619,7 +619,7 @@
|
||||
glass_icon_state = "soy_latte"
|
||||
glass_name = "soy latte"
|
||||
glass_desc = "A nice and refreshing beverage while you're reading."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -641,7 +641,7 @@
|
||||
glass_icon_state = "cafe_latte"
|
||||
glass_name = "cafe latte"
|
||||
glass_desc = "A nice, strong and refreshing beverage while you're reading."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -663,7 +663,7 @@
|
||||
glass_icon_state = "doctorsdelightglass"
|
||||
glass_name = "Doctor's Delight"
|
||||
glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-0.5, 0)
|
||||
@@ -730,7 +730,7 @@
|
||||
glass_icon_state = "pumpkin_latte"
|
||||
glass_name = "pumpkin latte"
|
||||
glass_desc = "A mix of coffee and pumpkin juice."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/gibbfloats
|
||||
name = "Gibb Floats"
|
||||
@@ -742,14 +742,14 @@
|
||||
glass_icon_state = "gibbfloats"
|
||||
glass_name = "Gibbfloat"
|
||||
glass_desc = "Dr. Gibb with ice cream on top."
|
||||
hydration = 3 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/pumpkinjuice
|
||||
name = "Pumpkin Juice"
|
||||
description = "Juiced from real pumpkin."
|
||||
color = "#FFA500"
|
||||
taste_description = "pumpkin"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/blumpkinjuice
|
||||
name = "Blumpkin Juice"
|
||||
@@ -766,7 +766,7 @@
|
||||
glass_icon_state = "triplecitrus" //needs own sprite mine are trash
|
||||
glass_name = "glass of triple citrus"
|
||||
glass_desc = "A mixture of citrus juices. Tangy, yet smooth."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/grape_soda
|
||||
name = "Grape soda"
|
||||
@@ -775,7 +775,7 @@
|
||||
taste_description = "grape soda"
|
||||
glass_name = "glass of grape juice"
|
||||
glass_desc = "It's grape (soda)!"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -788,7 +788,7 @@
|
||||
color = "#7D4E29"
|
||||
quality = DRINK_NICE
|
||||
taste_description = "chocolate milk"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/menthol
|
||||
name = "Menthol"
|
||||
@@ -810,7 +810,7 @@
|
||||
taste_description = "sweet pomegranates"
|
||||
glass_name = "glass of grenadine"
|
||||
glass_desc = "Delicious flavored syrup."
|
||||
hydration = 1 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/parsnipjuice
|
||||
name = "Parsnip Juice"
|
||||
@@ -818,7 +818,7 @@
|
||||
color = "#FFA500"
|
||||
taste_description = "parsnip"
|
||||
glass_name = "glass of parsnip juice"
|
||||
hydration = 1 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/pineapplejuice
|
||||
name = "Pineapple Juice"
|
||||
@@ -827,7 +827,7 @@
|
||||
taste_description = "pineapple"
|
||||
glass_name = "glass of pineapple juice"
|
||||
glass_desc = "Tart, tropical, and hotly debated."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink
|
||||
name = "Peach Juice"
|
||||
@@ -835,7 +835,7 @@
|
||||
color = "#E78108"
|
||||
taste_description = "peaches"
|
||||
glass_name = "glass of peach juice"
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/cream_soda
|
||||
name = "Cream Soda"
|
||||
@@ -846,7 +846,7 @@
|
||||
glass_icon_state = "cream_soda"
|
||||
glass_name = "Cream Soda"
|
||||
glass_desc = "A classic space-American vanilla flavored soft drink."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M)
|
||||
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
|
||||
@@ -888,7 +888,7 @@
|
||||
taste_description = "sweet strawberry and milk cream"
|
||||
glass_name = "tall glass of strawberry milk"
|
||||
glass_desc = "Delicious flavored strawberry syrup mixed with milk."
|
||||
hydration = 3 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/pinkmilk/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(15))
|
||||
@@ -905,7 +905,7 @@
|
||||
taste_description = "sweet tea with a hint of strawberry"
|
||||
glass_name = "mug of strawberry tea"
|
||||
glass_desc = "Delicious traditional tea flavored with strawberries."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/tea/pinktea/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(10))
|
||||
@@ -921,7 +921,7 @@
|
||||
glass_icon_state = "monkey_energy_glass"
|
||||
glass_name = "glass of Monkey Energy"
|
||||
glass_desc = "You can unleash the ape, but without the pop of the can?"
|
||||
hydration = 1 * REAGENTS_METABOLISM
|
||||
hydration = 4
|
||||
|
||||
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M)
|
||||
M.Jitter(20)
|
||||
@@ -939,7 +939,7 @@
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "glass of bungo juice"
|
||||
glass_desc = "Exotic! You feel like you are on vacation already."
|
||||
hydration = 1 * REAGENTS_METABOLISM
|
||||
hydration = 5
|
||||
|
||||
/datum/reagent/consumable/aloejuice
|
||||
name = "Aloe Juice"
|
||||
@@ -949,7 +949,7 @@
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "glass of aloe juice"
|
||||
glass_desc = "A healthy and refreshing juice."
|
||||
hydration = 2 * REAGENTS_METABOLISM
|
||||
hydration = 5
|
||||
|
||||
/datum/reagent/consumable/aloejuice/on_mob_life(mob/living/M)
|
||||
if(prob(30))
|
||||
@@ -984,7 +984,7 @@
|
||||
glass_icon_state = "wockyslush"
|
||||
glass_name = "Wocky Slush"
|
||||
glass_desc = "That thang bleedin' to the-... ya know I mean?"
|
||||
hydration = 3 * REAGENTS_METABOLISM
|
||||
hydration = 3
|
||||
|
||||
/datum/reagent/consumable/wockyslush/on_mob_life(mob/living/carbon/M)
|
||||
M.emote(pick("twitch","giggle","stare"))
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
/datum/reagent/consumable/on_mob_life(mob/living/carbon/M)
|
||||
current_cycle++
|
||||
M.nutrition += nutriment_factor
|
||||
M.thirst += hydration
|
||||
holder.remove_reagent(type, metabolization_rate)
|
||||
|
||||
/datum/reagent/consumable/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
|
||||
@@ -221,7 +221,8 @@
|
||||
. = ..()
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/patient = M
|
||||
if(reac_volume >= 5 && HAS_TRAIT_FROM(patient, TRAIT_HUSK, "burn") && patient.getFireLoss() < THRESHOLD_UNHUSK) //One carp yields 12u rezadone.
|
||||
var/vol = reac_volume + M.reagents.get_reagent_amount(/datum/reagent/medicine/rezadone)
|
||||
if(vol >= 5 && HAS_TRAIT_FROM(patient, TRAIT_HUSK, "burn") && patient.getFireLoss() < THRESHOLD_UNHUSK) //One carp yields 12u rezadone.
|
||||
patient.cure_husk("burn")
|
||||
patient.visible_message("<span class='nicegreen'>[patient]'s body rapidly absorbs moisture from the enviroment, taking on a more healthy appearance.")
|
||||
|
||||
@@ -428,7 +429,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
overdose_threshold = 40
|
||||
value = 6
|
||||
|
||||
/datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume,show_message = 1)
|
||||
/datum/reagent/medicine/synthflesh/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
|
||||
if(iscarbon(M))
|
||||
if (M.stat == DEAD)
|
||||
show_message = 0
|
||||
@@ -445,8 +446,9 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
|
||||
if(show_message)
|
||||
to_chat(M, "<span class='danger'>You feel your burns and bruises healing! It stings like hell!</span>")
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
|
||||
var/vol = reac_volume + M.reagents.get_reagent_amount(/datum/reagent/medicine/synthflesh)
|
||||
//Has to be at less than THRESHOLD_UNHUSK burn damage and have 100 synthflesh before unhusking. Corpses dont metabolize.
|
||||
if(HAS_TRAIT_FROM(M, TRAIT_HUSK, "burn") && M.getFireLoss() < THRESHOLD_UNHUSK && M.reagents.has_reagent(/datum/reagent/medicine/synthflesh, 100))
|
||||
if(HAS_TRAIT_FROM(M, TRAIT_HUSK, "burn") && M.getFireLoss() < THRESHOLD_UNHUSK && (vol >= 100))
|
||||
M.cure_husk("burn")
|
||||
M.visible_message("<span class='nicegreen'>Most of [M]'s burnt off or charred flesh has been restored.")
|
||||
..()
|
||||
|
||||
@@ -258,7 +258,7 @@
|
||||
glass_name = "glass of water"
|
||||
glass_desc = "The father of all refreshments."
|
||||
shot_glass_icon_state = "shotglassclear"
|
||||
hydration = 10 * REAGENTS_METABOLISM
|
||||
hydration = 5
|
||||
|
||||
/*
|
||||
* Water reaction to turf
|
||||
@@ -1242,6 +1242,7 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.lip_style)
|
||||
H.lip_style = null
|
||||
H.nail_style = null
|
||||
H.update_body()
|
||||
for(var/obj/item/I in C.held_items)
|
||||
SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
|
||||
@@ -854,10 +854,10 @@
|
||||
var/obj/vehicle/V = C
|
||||
var/datum/component/riding/R = V.GetComponent(/datum/component/riding)
|
||||
if(R)
|
||||
if(R.vehicle_move_delay <= 1 )
|
||||
if(R.vehicle_move_delay <= 2 )
|
||||
to_chat(user, "<span class='warning'>The [C] can't be made any faster!</span>")
|
||||
return ..()
|
||||
R.vehicle_move_delay = 1
|
||||
R.vehicle_move_delay = 2
|
||||
|
||||
to_chat(user, "<span class='notice'>You slather the red gunk over the [C], making it faster.</span>")
|
||||
C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
|
||||
@@ -1773,7 +1773,7 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes
|
||||
cost = 2
|
||||
restricted_roles = list("Curator")
|
||||
limited_stock = 1 //please don't spam deadchat
|
||||
|
||||
/* Disabled because this is waaaay too chaotic for hyper
|
||||
/datum/uplink_item/role_restricted/his_grace
|
||||
name = "His Grace"
|
||||
desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \
|
||||
@@ -1784,24 +1784,24 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes
|
||||
cost = 20
|
||||
restricted_roles = list("Chaplain")
|
||||
surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain
|
||||
|
||||
///datum/uplink_item/role_restricted/clockwork_slab
|
||||
/datum/uplink_item/dangerous/clockwork_slab
|
||||
*/
|
||||
/datum/uplink_item/role_restricted/clockwork_slab
|
||||
name = "Clockwork Slab"
|
||||
desc = "A reverse engineered clockwork slab. Is this really a good idea?"
|
||||
item = /obj/item/clockwork/slab/traitor
|
||||
cost = 20
|
||||
refundable = TRUE
|
||||
//restricted_roles = list("Chaplain","Curator")
|
||||
restricted_roles = list("Chaplain","Curator")
|
||||
cant_discount = TRUE
|
||||
|
||||
///datum/uplink_item/role_restricted/arcane_tome
|
||||
/datum/uplink_item/dangerous/arcane_tome
|
||||
/datum/uplink_item/role_restricted/arcane_tome
|
||||
name = "Arcane Tome"
|
||||
desc = "A 'replica' of a Nar'sian tome. This is probably a bad idea..."
|
||||
item = /obj/item/tome/traitor
|
||||
cost = 20
|
||||
refundable = TRUE
|
||||
//restricted_roles = list("Chaplain","Curator")
|
||||
restricted_roles = list("Chaplain","Curator")
|
||||
cant_discount = TRUE
|
||||
|
||||
/datum/uplink_item/role_restricted/explosive_hot_potato
|
||||
name = "Exploding Hot Potato"
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
/obj/item/clothing/suit/toggle/jacket_purple = 3,
|
||||
/obj/item/clothing/suit/toggle/jacket_white = 3,
|
||||
/obj/item/clothing/suit/jacket/letterman_red = 3,
|
||||
/obj/item/clothing/suit/fluffyhalfcrop = 3,
|
||||
/obj/item/clothing/ears/headphones = 10,
|
||||
/obj/item/clothing/suit/apron/purple_bartender = 4,
|
||||
/obj/item/clothing/under/rank/bartender/purple = 4,
|
||||
|
||||
@@ -3,7 +3,8 @@ SUBSYSTEM_DEF(economy)
|
||||
wait = 5 MINUTES
|
||||
init_order = INIT_ORDER_ECONOMY
|
||||
runlevels = RUNLEVEL_GAME
|
||||
flags = SS_NO_FIRE //Let's not forget this. This subsystem does not use fire and was needlessly using CPU.
|
||||
var/roundstart_paychecks = 5
|
||||
var/budget_pool = 35000
|
||||
var/list/generated_accounts = list()
|
||||
var/list/bank_accounts = list() //List of normal accounts (not department accounts)
|
||||
var/list/bank_accounts = list() //List of normal accounts (not department accounts)
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
//hyperstation 13 nail polish
|
||||
|
||||
/obj/item/nailpolish
|
||||
name = "nail polish"
|
||||
desc = "Paint with a fine brush to do your nails, or someone elses."
|
||||
icon = 'hyperstation/icons/obj/cosmetic.dmi'
|
||||
icon_state = "nailcap"
|
||||
item_state = "nailpolish"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/paint = "black"
|
||||
price = 5
|
||||
var/mutable_appearance/bottle //show the colour on the bottle.
|
||||
|
||||
/obj/item/nailpolish/red
|
||||
name = "red nail polish"
|
||||
paint = "red"
|
||||
|
||||
/obj/item/nailpolish/blue
|
||||
name = "blue nail polish"
|
||||
paint = "blue"
|
||||
|
||||
/obj/item/nailpolish/aqua
|
||||
name = "cyan nail polish"
|
||||
paint = "aqua"
|
||||
|
||||
/obj/item/nailpolish/black
|
||||
name = "black nail polish"
|
||||
paint = "black"
|
||||
|
||||
/obj/item/nailpolish/white
|
||||
name = "white nail polish"
|
||||
paint = "white"
|
||||
|
||||
/obj/item/nailpolish/navy
|
||||
name = "navy nail polish"
|
||||
paint = "navy"
|
||||
|
||||
/obj/item/nailpolish/yellow
|
||||
name = "yellow nail polish"
|
||||
paint = "yellow"
|
||||
|
||||
/obj/item/nailpolish/purple
|
||||
name = "purple nail polish"
|
||||
paint = "purple"
|
||||
|
||||
/obj/item/nailpolish/Initialize()
|
||||
. = ..()
|
||||
bottle = mutable_appearance('hyperstation/icons/obj/cosmetic.dmi', "nailpolish")
|
||||
bottle.color = paint
|
||||
add_overlay(bottle)
|
||||
|
||||
|
||||
/obj/item/nailpolish/attack(mob/M, mob/user)
|
||||
if(!ismob(M))
|
||||
return
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.nail_style) //to stop stacking bugs
|
||||
to_chat(user, "<span class='warning'>Remove the old nail polish first!</span>")
|
||||
|
||||
if(H == user)
|
||||
user.visible_message("<span class='notice'>[user] does [user.p_their()] nails with \the [src].</span>", \
|
||||
"<span class='notice'>You take a moment to apply \the [src]. Perfect!</span>")
|
||||
H.nail_style = "nails"
|
||||
H.nail_color = paint
|
||||
H.update_body()
|
||||
else
|
||||
user.visible_message("<span class='warning'>[user] begins to do [H]'s nails with \the [src].</span>", \
|
||||
"<span class='notice'>You begin to apply \the [src] on [H]'s nails...</span>")
|
||||
if(do_after(user, 20, target = H))
|
||||
user.visible_message("[user] does [H]'s nails with \the [src].", \
|
||||
"<span class='notice'>You apply \the [src] on [H]'s nails.</span>")
|
||||
H.nail_style = "nails"
|
||||
H.nail_color = paint
|
||||
H.update_body()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Where are the nail on that?</span>")
|
||||
@@ -54,7 +54,7 @@
|
||||
dat += "<a href='byond://?src=[REF(src)];removesound=1'>Remove sounding rod (penis)</A><BR>"
|
||||
for(var/obj/item/organ/genital/G in U.internal_organs)
|
||||
if(G.equipment) //they have equipment
|
||||
dat += "<a href='byond://?src=[REF(src)];removeequipment[G.name]=1;'>Remove [G.equipment.name] ([G.name]).</A><BR>"
|
||||
dat += "<a href='byond://?src=[REF(src)];removeequipment[G.name]=1;'>Remove [G.equipment.name] ([G.name])</A><BR>"
|
||||
|
||||
dat += {"<HR>"}//Newline for the objects
|
||||
//bottom options
|
||||
@@ -201,6 +201,9 @@
|
||||
var/obj/item/organ/genital/vagina/O = usr.getorganslot("vagina")
|
||||
var/obj/item/I = O.equipment
|
||||
usr.put_in_hands(I)
|
||||
if(istype(I, /obj/item/portalpanties))
|
||||
var/obj/item/portalpanties/P = I
|
||||
P.remove()
|
||||
O.equipment = null
|
||||
|
||||
if(href_list["removeequipmentbelly"])
|
||||
|
||||
@@ -0,0 +1,297 @@
|
||||
//Hyperstation 13 fleshlight
|
||||
//Humbley request this doesnt get ported to other code bases, we strive to make things unique on our server and we dont have alot of coders
|
||||
//but if you absolutely must. please give us some credit~ <3
|
||||
|
||||
/obj/item/fleshlight
|
||||
name = "fleshlight"
|
||||
desc = "A sex toy disguised as a flashlight, used to stimulate someones penis, complete with colour changing sleeve."
|
||||
icon = 'hyperstation/icons/obj/fleshlight.dmi'
|
||||
icon_state = "fleshlight_base"
|
||||
item_state = "fleshlight"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/sleevecolor = "#ffcbd4" //pink
|
||||
price = 8
|
||||
var/mutable_appearance/sleeve
|
||||
var/inuse = 0
|
||||
|
||||
/obj/item/fleshlight/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-Click \the [src.name] to customize it.</span>"
|
||||
|
||||
/obj/item/fleshlight/Initialize()
|
||||
. = ..()
|
||||
sleeve = mutable_appearance('hyperstation/icons/obj/fleshlight.dmi', "vagina")
|
||||
sleeve.color = sleevecolor
|
||||
add_overlay(sleeve)
|
||||
|
||||
/obj/item/fleshlight/AltClick(mob/user)
|
||||
. = ..()
|
||||
var/style = input(usr, "Choose style", "Customize Fleshlight", "vagina") in list("vagina", "anus")
|
||||
var/new_color = input(user, "Choose color.", "Customize Fleshlight", sleevecolor) as color|null
|
||||
if(new_color)
|
||||
cut_overlays()
|
||||
sleeve = mutable_appearance('hyperstation/icons/obj/fleshlight.dmi', style)
|
||||
sleevecolor = new_color
|
||||
sleeve.color = new_color
|
||||
add_overlay(sleeve)
|
||||
return TRUE
|
||||
|
||||
/obj/item/fleshlight/attack(mob/living/carbon/C, mob/living/user)
|
||||
var/obj/item/organ/genital/penis/P = C.getorganslot("penis")
|
||||
if(inuse == 1) //just to stop stacking and causing people to cum instantly
|
||||
return
|
||||
if(P&&P.is_exposed())
|
||||
inuse = 1
|
||||
if(!(C == user)) //if we are targeting someone else.
|
||||
C.visible_message("<span class='userlove'>[user] is trying to use [src] on [C]'s penis.</span>", "<span class='userlove'>[user] is trying to use [src] on your penis.</span>")
|
||||
|
||||
if(!do_mob(user, C, 3 SECONDS)) //3 second delay
|
||||
inuse = 0
|
||||
return
|
||||
|
||||
//checked if not used on yourself, if not, carry on.
|
||||
playsound(src, 'sound/lewd/slaps.ogg', 30, 1, -1) //slapping sound
|
||||
inuse = 0
|
||||
if(!(C == user)) //lewd flavour text
|
||||
C.visible_message("<span class='userlove'>[user] pumps [src] on [C]'s penis.</span>", "<span class='userlove'>[user] pumps [src] up and down on your penis.</span>")
|
||||
else
|
||||
user.visible_message("<span class='userlove'>[user] pumps [src] on their penis.</span>", "<span class='userlove'>You pump the fleshlight on your penis.</span>")
|
||||
|
||||
if(prob(30)) //30% chance to make them moan.
|
||||
C.emote("moan")
|
||||
|
||||
C.do_jitter_animation()
|
||||
C.adjustArousalLoss(20) //make the target more aroused.
|
||||
if (C.getArousalLoss() >= 100 && ishuman(C) && C.has_dna())
|
||||
C.mob_climax(forced_climax=TRUE) //make them cum if they are over the edge.
|
||||
|
||||
return
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't see anywhere to use this on.</span>")
|
||||
|
||||
inuse = 0
|
||||
..()
|
||||
|
||||
|
||||
//Hyperstation 13 portal fleshlight
|
||||
//kinky!
|
||||
|
||||
/obj/item/portallight
|
||||
name = "portal fleshlight"
|
||||
desc = "A silver love(TM) fleshlight, used to stimulate someones penis, with bluespace tech that allows lovers to hump at a distance."
|
||||
icon = 'hyperstation/icons/obj/fleshlight.dmi'
|
||||
icon_state = "unpaired"
|
||||
item_state = "fleshlight"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/partnercolor = "#ffcbd4"
|
||||
var/partnerbase = "normal"
|
||||
var/partnerorgan = "portal_vag"
|
||||
price = 20
|
||||
var/mutable_appearance/sleeve
|
||||
var/mutable_appearance/organ
|
||||
var/inuse = 0
|
||||
var/paired = 0
|
||||
var/obj/item/portalunderwear
|
||||
var/useable = FALSE
|
||||
var/option = ""
|
||||
|
||||
/obj/item/portallight/examine(mob/user)
|
||||
. = ..()
|
||||
if(!portalunderwear)
|
||||
. += "<span class='notice'>The device is unpaired, to pair, swipe against a pair of portal panties(TM). </span>"
|
||||
else
|
||||
. += "<span class='notice'>The device is paired, and awaiting input. </span>"
|
||||
|
||||
/obj/item/portallight/attack(mob/living/carbon/C, mob/living/user) //use portallight! nearly the same as the fleshlight apart from you have a buddy!
|
||||
var/obj/item/organ/genital/penis/P = C.getorganslot("penis")
|
||||
|
||||
if(inuse) //just to stop stacking and causing people to cum instantly
|
||||
return
|
||||
if(!useable)
|
||||
to_chat(user, "<span class='notice'>It seems the device has failed or your partner is not wearing their device.</span>")
|
||||
|
||||
if(C == user)//if your using it on yourself, more options! otherwise, just fuck.
|
||||
option = input(usr, "Choose action", "Portal Fleshlight", "Fuck") in list("Fuck", "Lick", "Touch")
|
||||
else
|
||||
option = "Fuck"
|
||||
|
||||
var/obj/item/organ/genital/vagina/V = portalunderwear.loc
|
||||
if(!V)
|
||||
return
|
||||
var/mob/living/carbon/human/M = V.owner
|
||||
|
||||
if(option == "Fuck"&&!P.is_exposed()) //we are trying to fuck with no penis!
|
||||
to_chat(user, "<span class='notice'>You don't see anywhere to use this on.</span>")
|
||||
return
|
||||
else //other options dont need checks
|
||||
inuse = 1
|
||||
if(!(C == user)) //if we are targeting someone else.
|
||||
C.visible_message("<span class='userlove'>[user] is trying to use [src] on [C]'s penis.</span>", "<span class='userlove'>[user] is trying to use [src] on your penis.</span>")
|
||||
|
||||
if(!do_mob(user, C, 3 SECONDS)) //3 second delay
|
||||
inuse = 0
|
||||
return
|
||||
|
||||
//checked if not used on yourself, if not, carry on.
|
||||
if(option == "Fuck")
|
||||
playsound(src, 'sound/lewd/slaps.ogg', 30, 1, -1) //slapping sound for fuck.
|
||||
|
||||
inuse = 0
|
||||
if(!(C == user))
|
||||
C.visible_message("<span class='userlove'>[user] pumps [src] on [C]'s penis.</span>", "<span class='userlove'>[user] pumps [src] up and down on your penis.</span>")
|
||||
else
|
||||
if(option == "Fuck")
|
||||
user.visible_message("<span class='userlove'>[user] pumps [src] on their penis.</span>", "<span class='userlove'>You pump the fleshlight on your penis.</span>")
|
||||
if(option == "Lick")
|
||||
user.visible_message("<span class='userlove'>[user] licks into [src].</span>", "<span class='userlove'>You lick into [src].</span>")
|
||||
if(option == "Touch")
|
||||
user.visible_message("<span class='userlove'>[user] touches softly against [src].</span>", "<span class='userlove'>You touch softly on [src].</span>")
|
||||
|
||||
|
||||
if(prob(30)) //30% chance to make your partner moan.
|
||||
M.emote("moan")
|
||||
|
||||
if(option == "Fuck")// normal fuck
|
||||
to_chat(M, "<span class='love'>You feel a [P.shape] shaped penis pumping through the portal into your vagina.</span>")//message your partner and kinky!
|
||||
if(prob(30)) //30% chance to make them moan.
|
||||
C.emote("moan")
|
||||
if(prob(30)) //30% chance to make your partner moan.
|
||||
M.emote("moan")
|
||||
C.adjustArousalLoss(20)
|
||||
M.adjustArousalLoss(20)
|
||||
M.do_jitter_animation() //make your partner shake too!
|
||||
if(option == "Lick")
|
||||
to_chat(M, "<span class='love'>You feel a tongue lick you through the portal against your vagina.</span>")
|
||||
M.adjustArousalLoss(10)
|
||||
if(option == "Touch")
|
||||
to_chat(M, "<span class='love'>You feel someone touching your vagina through the portal.</span>")
|
||||
M.adjustArousalLoss(5)
|
||||
|
||||
if (C.getArousalLoss() >= 100 && ishuman(C) && C.has_dna())
|
||||
var/mob/living/carbon/human/O = C
|
||||
O.mob_climax_partner(P, M, TRUE, FALSE, FALSE, TRUE) //climax with their partner remotely!
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/portallight/proc/updatesleeve()
|
||||
//get their looks and vagina colour!
|
||||
cut_overlays()//remove current overlays
|
||||
|
||||
var/obj/item/organ/genital/vagina/V = portalunderwear.loc
|
||||
var/mob/living/carbon/human/H = V.owner
|
||||
|
||||
if(H) //if the portal panties are on someone.
|
||||
sleeve = mutable_appearance('hyperstation/icons/obj/fleshlight.dmi', "portal_sleeve_normal")
|
||||
if(H.dna.species.name == "Lizardperson") // lizard nerd
|
||||
sleeve = mutable_appearance('hyperstation/icons/obj/fleshlight.dmi', "portal_sleeve_lizard")
|
||||
|
||||
if(H.dna.species.name == "Slimeperson") // slime nerd
|
||||
sleeve = mutable_appearance('hyperstation/icons/obj/fleshlight.dmi', "portal_sleeve_slime")
|
||||
|
||||
sleeve.color = "#" + H.dna.features["mcolor"]
|
||||
add_overlay(sleeve)
|
||||
|
||||
organ = mutable_appearance('hyperstation/icons/obj/fleshlight.dmi', "portal_vag")
|
||||
organ.color = portalunderwear.loc.color
|
||||
|
||||
useable = TRUE
|
||||
add_overlay(organ)
|
||||
else
|
||||
useable = FALSE
|
||||
|
||||
//Hyperstation 13 portal underwear
|
||||
//can be attached to vagina, just like the vibrator, still requires pairing with the portallight
|
||||
|
||||
/obj/item/portalpanties
|
||||
name = "portal panties"
|
||||
desc = "A silver love(TM) pair of portal underwear, with bluespace tech allows lovers to hump at a distance. Needs to be paired with a portal fleshlight before use."
|
||||
icon = 'hyperstation/icons/obj/fleshlight.dmi'
|
||||
icon_state = "portalpanties"
|
||||
item_state = "fleshlight"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/obj/item/portallight
|
||||
var/attached = FALSE
|
||||
|
||||
/obj/item/portalpanties/examine(mob/user)
|
||||
. = ..()
|
||||
if(!portallight)
|
||||
. += "<span class='notice'>The device is unpaired, to pair, swipe the fleshlight against this pair of portal panties(TM). </span>"
|
||||
else
|
||||
. += "<span class='notice'>The device is paired, and awaiting attachment. </span>"
|
||||
|
||||
|
||||
/obj/item/portalpanties/attackby(obj/item/I, mob/living/user) //pairing
|
||||
if(istype(I, /obj/item/portallight))
|
||||
var/obj/item/portallight/P = I
|
||||
if(!P.portalunderwear) //make sure it aint linked to someone else
|
||||
portallight = P //pair the fleshlight
|
||||
P.portalunderwear = src //pair the panties on the fleshlight.
|
||||
P.icon_state = "paired" //we are paired!
|
||||
playsound(src, 'sound/machines/ping.ogg', 50, FALSE)
|
||||
to_chat(user, "<span class='notice'>[P] has been linked up successfully.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[P] has already been linked to another pair of underwear.</span>")
|
||||
else
|
||||
..() //just allows people to hit it with other objects, if they so wished.
|
||||
|
||||
/obj/item/portalpanties/attack(mob/living/carbon/C, mob/living/user)
|
||||
|
||||
if(!portallight) //we arent paired yet! noobie trap, let them know.
|
||||
to_chat(user, "<span class='warning'>[src] can only be attached once paired with a portal fleshlight.</span>")
|
||||
return
|
||||
|
||||
var/obj/item/organ/genital/picked_organ
|
||||
var/mob/living/carbon/human/S = user
|
||||
var/mob/living/carbon/human/T = C
|
||||
picked_organ = S.target_genitals(T) //allowing to pick organ for anus down the line
|
||||
if(picked_organ)
|
||||
C.visible_message("<span class='warning'>[user] is trying to attach [src] to [T]!</span>",\
|
||||
"<span class='warning'>[user] is trying to put [src] on you!</span>")
|
||||
if(!do_mob(user, C, 5 SECONDS))//warn them and have a delay of 5 seconds to apply.
|
||||
return
|
||||
|
||||
if(!(picked_organ.name == "vagina")) //only fits on a vagina
|
||||
to_chat(user, "<span class='warning'>[src] can only be attached to a vagina.</span>")
|
||||
return
|
||||
|
||||
if(!picked_organ.equipment)
|
||||
to_chat(user, "<span class='love'>You wrap [src] around [T]'s [picked_organ.name].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>They already have a [picked_organ.equipment.name] there.</span>")
|
||||
return
|
||||
|
||||
if(!user.transferItemToLoc(src, picked_organ)) //check if you can put it in
|
||||
return
|
||||
src.attached = TRUE
|
||||
picked_organ.equipment = src
|
||||
|
||||
var/obj/item/portallight/P = portallight
|
||||
//now we need to send what they look like, but saddly if the person changes colour for what ever reason, it wont update. but dont tell people shh.
|
||||
if(P) //just to make sure
|
||||
P.updatesleeve()
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't see anywhere to attach this.</span>")
|
||||
|
||||
/obj/item/portalpanties/proc/remove() //if taken off update it.
|
||||
if(portallight)
|
||||
var/obj/item/portallight/P = portallight
|
||||
P.updatesleeve()
|
||||
|
||||
/obj/item/storage/box/portallight
|
||||
name = "Portal Fleshlight and Underwear"
|
||||
icon = 'hyperstation/icons/obj/fleshlight.dmi'
|
||||
desc = "A small silver box with Silver Love Co embossed."
|
||||
icon_state = "box"
|
||||
price = 15
|
||||
|
||||
// portal fleshlight box
|
||||
/obj/item/storage/box/portallight/PopulateContents()
|
||||
new /obj/item/portallight/(src)
|
||||
new /obj/item/portalpanties/(src)
|
||||
new /obj/item/paper/fluff/portallight(src)
|
||||
|
||||
/obj/item/paper/fluff/portallight
|
||||
name = "Portal Fleshlight Instructions"
|
||||
info = "Thank you for purchasing the Silver Love Portal Fleshlight!<BR>To use, simply register your new portal fleshlight with the provided underwear to link them together. The ask your lover to wear the underwear.<BR>Have fun lovers,<BR><BR>Wilhelmina Steiner."
|
||||
@@ -39,7 +39,7 @@
|
||||
//the classic click clack
|
||||
|
||||
obj/item/clothing/neck/stole
|
||||
name = "white stole"
|
||||
name = "white boa"
|
||||
desc = "Fluffy neck wear to keep you warm, and attract others."
|
||||
icon = 'hyperstation/icons/obj/clothing/neck.dmi'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
@@ -48,11 +48,22 @@ obj/item/clothing/neck/stole
|
||||
price = 3
|
||||
|
||||
obj/item/clothing/neck/stole/black
|
||||
name = "black stole"
|
||||
name = "black boa"
|
||||
desc = "Fluffy neck wear to keep you warm, and attract others."
|
||||
icon = 'hyperstation/icons/obj/clothing/neck.dmi'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
icon_state = "stole"
|
||||
item_state = "" //no inhands
|
||||
color = "#3d3d3d"
|
||||
price = 3
|
||||
price = 3
|
||||
|
||||
/obj/item/clothing/suit/fluffyhalfcrop
|
||||
name = "fluffy half-crop jacket"
|
||||
desc = "A fluffy synthetic fur half-cropped jacket, less about warmth, more about style!"
|
||||
icon_state = "fluffy"
|
||||
item_state = "fluffy"
|
||||
icon = 'hyperstation/icons/obj/clothing/suits.dmi'
|
||||
alternate_worn_icon = 'hyperstation/icons/mobs/suits.dmi'
|
||||
body_parts_covered = CHEST|LEGS|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION
|
||||
|
||||
|
After Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 777 B After Width: | Height: | Size: 890 B |
|
After Width: | Height: | Size: 304 B |
|
After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 554 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 6.7 KiB |
@@ -65,6 +65,8 @@
|
||||
/obj/item/clothing/under/jabroni = 3,
|
||||
/obj/item/electropack/vibrator/small = 2,
|
||||
/obj/item/electropack/vibrator = 2,
|
||||
/obj/item/fleshlight = 2,
|
||||
/obj/item/storage/box/portallight = 1,
|
||||
)
|
||||
contraband = list(
|
||||
/obj/item/clothing/under/gear_harness = 3,
|
||||
|
||||
@@ -321,7 +321,7 @@
|
||||
setArousalLoss(min_arousal)
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, impreg = FALSE,cover = FALSE, mb_time = 30) //Used for climaxing with any living thing
|
||||
/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, impreg = FALSE,cover = FALSE,remote = FALSE, mb_time = 30) //Used for climaxing with any living thing
|
||||
var/total_fluids = 0
|
||||
var/datum/reagents/fluid_source = null
|
||||
|
||||
@@ -369,7 +369,9 @@
|
||||
setArousalLoss(min_arousal)
|
||||
|
||||
if(spillage && !cover)
|
||||
if(do_after(src, mb_time, target = src) && in_range(src, L))
|
||||
if(do_after(src, mb_time, target = src))
|
||||
if(!in_range(src, L) && !remote)
|
||||
return
|
||||
fluid_source.trans_to(L, total_fluids*G.fluid_transfer_factor)
|
||||
total_fluids -= total_fluids*G.fluid_transfer_factor
|
||||
if(total_fluids > 5)
|
||||
@@ -408,6 +410,7 @@
|
||||
if (L.mind == obj.target)
|
||||
L.mind.sexed = TRUE //sexed
|
||||
to_chat(src, "<span class='userlove'>You feel deep satisfaction with yourself.</span>")
|
||||
//Hyper - remote
|
||||
|
||||
if(impreg)
|
||||
//Role them odds, only people with the dicks can send the chance to the person with the settings enabled at the momment.
|
||||
@@ -491,7 +494,7 @@
|
||||
if(!G.dontlist)
|
||||
genitals_list += G
|
||||
if(genitals_list.len)
|
||||
ret_organ = input(src, "", "Gentials", null) as null|obj in genitals_list
|
||||
ret_organ = input(src, "", "Genitals", null) as null|obj in genitals_list
|
||||
return ret_organ
|
||||
return null //error stuff
|
||||
|
||||
|
||||
@@ -430,12 +430,12 @@
|
||||
//otherwise, appear under clothing
|
||||
if(G.slot == "penis" || G.slot == "testicles")
|
||||
if(G.size < 3) //is actually "less than 11 inches"
|
||||
genital_overlay.layer = -GENITALS_UNDER_LAYER
|
||||
genital_overlay.layer = -GENITALS_UNDER_LAYER
|
||||
if(G.slot == "breasts")
|
||||
var/obj/item/organ/genital/breasts/B = G
|
||||
if(B.cached_size < 8) //anything smaller than a g-cup
|
||||
genital_overlay.layer = -GENITALS_UNDER_LAYER
|
||||
|
||||
|
||||
//Get the icon
|
||||
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
|
||||
colourcode = S.color_src
|
||||
|
||||
@@ -175,12 +175,12 @@
|
||||
name = "Teal Lipstick"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/lipstick/teal
|
||||
|
||||
|
||||
/datum/gear/lipstick_fuchsia
|
||||
name = "Fuchsia Lipstick"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/lipstick/fuchsia
|
||||
|
||||
|
||||
/datum/gear/lipstick_navy
|
||||
name = "Navy Blue Lipstick"
|
||||
category = SLOT_IN_BACKPACK
|
||||
@@ -196,6 +196,46 @@
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/lipstick/white
|
||||
|
||||
/datum/gear/nailpolish_red
|
||||
name = "Red Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/red
|
||||
|
||||
/datum/gear/nailpolish_blue
|
||||
name = "Blue Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/blue
|
||||
|
||||
/datum/gear/nailpolish_aqua
|
||||
name = "Cyan Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/aqua
|
||||
|
||||
/datum/gear/nailpolish_black
|
||||
name = "Black Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/black
|
||||
|
||||
/datum/gear/nailpolish_white
|
||||
name = "White Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/white
|
||||
|
||||
/datum/gear/nailpolish_navy
|
||||
name = "Navy Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/navy
|
||||
|
||||
/datum/gear/nailpolish_yellow
|
||||
name = "Yellow Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/yellow
|
||||
|
||||
/datum/gear/nailpolish_purple
|
||||
name = "Purple Nail Polish"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/nailpolish/purple
|
||||
|
||||
/datum/gear/condom
|
||||
name = "Condom"
|
||||
category = SLOT_IN_BACKPACK
|
||||
|
||||
@@ -1558,6 +1558,14 @@ datum/sprite_accessory/mam_tails/insect
|
||||
name = "Wolf"
|
||||
icon_state = "wolf"
|
||||
|
||||
/datum/sprite_accessory/mam_tails/spade
|
||||
name = "Demon Spade"
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/mam_tails_animated/spade
|
||||
name = "Demon Spade"
|
||||
icon_state = "spade"
|
||||
|
||||
/datum/sprite_accessory/mam_tails/synthliz
|
||||
recommended_species = list("synthliz")
|
||||
color_src = MUTCOLORS
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
glass_icon_state = "semen"
|
||||
glass_name = "chalice of semen"
|
||||
glass_desc = "In the Sumerian mythology, Enki - the God of water, was believed to have created the Tigris and Euphrates rivers by masturbating and ejaculating into their empty riverbeds."
|
||||
hydration = 2 * REAGENTS_METABOLISM //thats one way to stay hydrated...
|
||||
|
||||
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
|
||||
if(!istype(T))
|
||||
@@ -56,7 +55,6 @@
|
||||
color = "#AAAAAA77"
|
||||
can_synth = FALSE
|
||||
nutriment_factor = 0.5 * REAGENTS_METABOLISM
|
||||
hydration = 1 * REAGENTS_METABOLISM //thats one way to stay hydrated...
|
||||
|
||||
/obj/effect/decal/cleanable/femcum
|
||||
name = "female ejaculate"
|
||||
|
||||
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 73 KiB |
@@ -3036,6 +3036,7 @@
|
||||
#include "hyperstation\code\datums\ruins\lavaland.dm"
|
||||
#include "hyperstation\code\datums\traits\good.dm"
|
||||
#include "hyperstation\code\datums\traits\neutral.dm"
|
||||
#include "hyperstation\code\game\objects\items\cosmetics.dm"
|
||||
#include "hyperstation\code\game\objects\structures\ghost_role_spawners.dm"
|
||||
#include "hyperstation\code\gamemode\traitor_lewd.dm"
|
||||
#include "hyperstation\code\gamemode\traitor_thief.dm"
|
||||
@@ -3089,6 +3090,7 @@
|
||||
#include "hyperstation\code\obj\condom.dm"
|
||||
#include "hyperstation\code\obj\decal.dm"
|
||||
#include "hyperstation\code\obj\economy.dm"
|
||||
#include "hyperstation\code\obj\fleshlight.dm"
|
||||
#include "hyperstation\code\obj\fluff.dm"
|
||||
#include "hyperstation\code\obj\kinkyclothes.dm"
|
||||
#include "hyperstation\code\obj\leash.dm"
|
||||
|
||||