From 4e372e9daeea360903b710a21ffcf496412bd072 Mon Sep 17 00:00:00 2001 From: jbox1 <40789662+jbox144@users.noreply.github.com> Date: Sat, 21 Mar 2020 21:30:16 +1100 Subject: [PATCH] makes the cum --- _maps/RandomRuins/SpaceRuins/taniastation.dmm | 93 +++++++++++++++++++ code/datums/ruins/space.dm | 8 ++ code/game/area/areas/ruins/space.dm | 18 ++++ code/modules/client/preferences.dm | 11 ++- .../code/modules/arousal/organs/testicles.dm | 19 ++-- 5 files changed, 139 insertions(+), 10 deletions(-) create mode 100644 _maps/RandomRuins/SpaceRuins/taniastation.dmm diff --git a/_maps/RandomRuins/SpaceRuins/taniastation.dmm b/_maps/RandomRuins/SpaceRuins/taniastation.dmm new file mode 100644 index 00000000..0b964cdb --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/taniastation.dmm @@ -0,0 +1,93 @@ +"aa" = (/turf/open/space/basic,/area/template_noop) +"ab" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plating/airless,/area/solar/tania) +"ac" = (/obj/machinery/power/solar,/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plating/airless,/area/solar/tania) +"ad" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/space/basic,/area/solar/tania) +"ae" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "1-4"},/obj/structure/cable{icon_state = "2-4"},/turf/open/space/basic,/area/solar/tania) +"af" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/ruin/space/tania/lounge) +"ag" = (/turf/closed/wall,/area/ruin/space/tania/maint) +"ah" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "1-4"},/obj/structure/cable{icon_state = "2-4"},/obj/structure/cable{icon_state = "4-8"},/turf/open/space/basic,/area/solar/tania) +"ai" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aj" = (/obj/structure/chair/wood/normal{dir = 4},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"ak" = (/obj/structure/table/wood,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"al" = (/obj/structure/chair/wood/normal{dir = 8},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"am" = (/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"an" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{icon_state = "manifold"; dir = 4},/obj/machinery/light{dir = 4},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"ao" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{icon_state = "2-8"},/turf/open/space/basic,/area/solar/tania) +"ap" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "4-8"},/turf/open/space/basic,/area/solar/tania) +"aq" = (/obj/structure/chair/stool/bar,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"ar" = (/obj/machinery/power/solar,/obj/structure/cable{d2 = 4},/turf/open/floor/plating/airless,/area/solar/tania) +"as" = (/obj/machinery/door/airlock/external/glass,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"at" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"au" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "2-4"},/obj/structure/cable{icon_state = "2-8"},/turf/open/space/basic,/area/solar/tania) +"av" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "4-8"},/turf/open/space/basic,/area/solar/tania) +"aw" = (/turf/closed/wall,/area/ruin/space/tania/lounge) +"ax" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"ay" = (/obj/machinery/airalarm/directional/east,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"az" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer1,/obj/structure/lattice,/turf/open/space/basic,/area/space/nearstation) +"aA" = (/obj/structure/table/wood,/obj/machinery/chem_dispenser/drinks{dir = 8},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aB" = (/turf/closed/wall,/area/ruin/space/tania/dorms) +"aC" = (/obj/structure/chair/stool/bar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aD" = (/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"aE" = (/obj/structure/chair/stool/bar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aF" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plating,/area/ruin/space/tania/dorms) +"aG" = (/obj/structure/cable{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 6},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aH" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/obj/structure/lattice,/turf/open/space/basic,/area/space/nearstation) +"aJ" = (/obj/machinery/power/terminal{dir = 1},/obj/structure/cable{icon_state = "0-8"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aK" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{icon_state = "manifold"; dir = 1},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aM" = (/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 8},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aN" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-8"},/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 8},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aO" = (/obj/structure/cable{icon_state = "1-4"},/obj/machinery/airalarm/directional/west,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aP" = (/obj/machinery/power/solar_control,/obj/structure/cable{icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 9},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aQ" = (/obj/machinery/light{dir = 4},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aR" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 5},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"aS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aT" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"aU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"aV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/turf/open/floor/plasteel,/area/ruin/space/tania/lounge) +"aW" = (/obj/structure/table/wood,/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{icon_state = "scrub_map_on"; dir = 4},/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aX" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"aY" = (/obj/machinery/light,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"aZ" = (/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{icon_state = "intact"; dir = 8},/turf/open/floor/plasteel,/area/ruin/space/tania/dorms) +"ba" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1,/turf/open/floor/plasteel,/area/ruin/space/tania/dorms) +"bb" = (/obj/machinery/atmospherics/components/unary/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/ruin/space/tania/maint) +"bc" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/cable{d2 = 4},/obj/machinery/power/apc/auto_name/east,/turf/open/floor/plating,/area/ruin/space/tania/maint) +"bd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/obj/machinery/power/apc/auto_name/east,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"be" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{icon_state = "scrub_map_on"; dir = 8},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"bf" = (/obj/structure/cable{d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1,/obj/machinery/power/apc/auto_name/east,/turf/open/floor/plasteel,/area/ruin/space/tania/dorms) +"bg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{icon_state = "scrub_map_on"; dir = 4},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{icon_state = "scrub_map_on"; dir = 8},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bi" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/open/floor/plating,/area/ruin/space/tania/maint) +"bj" = (/obj/structure/table/wood,/obj/item/flashlight/lamp/green,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"bk" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/drinks/drinkingglass,/obj/item/reagent_containers/food/drinks/drinkingglass,/obj/item/reagent_containers/food/drinks/drinkingglass,/obj/item/reagent_containers/food/drinks/drinkingglass,/turf/open/floor/wood,/area/ruin/space/tania/lounge) +"bl" = (/obj/machinery/light{dir = 1},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bm" = (/obj/structure/dresser,/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bn" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bo" = (/obj/structure/chair/wood/normal{dir = 8},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bp" = (/obj/machinery/airalarm/directional/west,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/ruin/space/tania/dorms) +"bq" = (/obj/structure/chair/wood/normal{dir = 4},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"br" = (/obj/item/toy/plush/slimeplushie/tania,/obj/structure/closet/crate{icon_state = "engi_e_crate"},/turf/open/floor/plating,/area/ruin/space/tania/maint) +"bs" = (/obj/structure/bed,/obj/item/bedsheet/purple,/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bt" = (/obj/structure/bed,/obj/item/bedsheet/green,/turf/open/floor/carpet,/area/ruin/space/tania/dorms) +"bu" = (/obj/structure/table/wood,/obj/item/paper/fluff{info = "Love you honey! Hope you have a great day!"; step_x = 4; step_y = 8; text = "p"},/obj/item/pen{step_x = -4; step_y = -2},/turf/open/floor/carpet,/area/ruin/space/tania/dorms) + +(1,1,1) = {" +aaaaaaaaaaaaaaabaaaaaaaa +aaaaaaacacacaaadaaacacac +aaaaaaaeahahapauapavavao +aaaaaaarararaaadaaararar +aaaaaaaaaaaaaaadaaaaaaaa +afafafafafafagasaiazaaaa +afajbjalamamagataiaIaaaa +afamaxamamayagasaiaKagaa +afaqaCaEaEaGaHaLaNaPagaa +awbkakaWaManagaOaJbcagaa +awamamamaAbdagaRbeaQagaa +awamaYamamaSagbbbibragaa +aBaBaBaBaBaVagagagagagaa +aBbsblbmaBbfaBbmblbtaBaa +aFaTaUbgaZbaaZbhaUaXaFaa +aBbuboaDaBbpaBaDbqbnaBaa +aBaBaBaBaBaFaBaBaBaBaBaa +"} diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 3d4f6ade..055c0b93 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -317,3 +317,11 @@ suffix = "advancedlab.dmm" name = "Abductor Replication Lab" description = "Some scientists tried and almost succeeded to recreate abductor tools. Somewhat slower and a bit less modern than their originals, these tools are the best you can get if you aren't an alien." + +/datum/map_template/ruin/space/taniastation + id = "taniastation" + suffix = "taniastation.dmm" + + name = "Mysterious Station" + + description = "A mysterious outpost built by a disgruntled Nanotransen Employee." \ No newline at end of file diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index d5ceb833..06415ed7 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -472,3 +472,21 @@ /area/ruin/space/has_grav/powered/advancedlab name = "Abductor Replication Lab" icon_state = "yellow" + +//TANIA STATION + +/area/solar/tania + name = "Solar Array" + icon_state = "panelsS" + +/area/ruin/space/tania/maint + name = "Maintainence" + icon_state = "yellow" + +/area/ruin/space/tania/lounge + name = "Lounge" + icon_state = "yellow" + +/area/ruin/space/tania/dorms + name = "Dorms" + icon_state = "yellow" \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 48673f47..fbc30413 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -777,6 +777,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Testicles Color:
" dat += "    Change
" dat += "Testicles showing:[features["balls_shape"]]" + dat += "Produces:[features["balls_fluid"]]" dat += APPEARANCE_CATEGORY_COLUMN dat += "

Vagina

" dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]" @@ -807,7 +808,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Lactates:[features["breasts_producing"] == TRUE ? "Yes" : "No"]" if(features["breasts_producing"] == TRUE) dat += "Produces:[features["breasts_fluid"]]" - + dat += "" dat += "" dat += "" @@ -1996,6 +1997,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_shape) features["balls_shape"] = new_shape + if("balls_fluid") + var/new_shape + new_shape = input(user, "Balls Fluid", "Character Preference") as null|anything in GLOB.genital_fluids_list + if(new_shape) + features["balls_fluid"] = new_shape + if("egg_size") var/new_size var/list/egg_sizes = list(1,2,3) @@ -2023,7 +2030,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) new_shape = input(user, "Breast Shape", "Character Preference") as null|anything in GLOB.breasts_shapes_list if(new_shape) features["breasts_shape"] = new_shape - + if("breasts_fluid") var/new_shape new_shape = input(user, "Breast Fluid", "Character Preference") as null|anything in GLOB.genital_fluids_list diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index f4ef4b50..dd983e0e 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -9,6 +9,9 @@ var/size_name = "average" shape = "single" var/sack_size = BALLS_SACK_SIZE_DEF + var/cached_size = 6 + fluid_mult = 0.133 // Set to a lower value due to production scaling with size (I.E. 6 inches the "normal" amount) + fluid_max_volume = 3 fluid_id = "semen" producing = TRUE can_masturbate_with = FALSE @@ -19,15 +22,14 @@ /obj/item/organ/genital/testicles/on_life() if(QDELETED(src)) return - if(reagents && producing) + if(!reagents || !owner) + return + reagents.maximum_volume = fluid_max_volume * cached_size// fluid amount is also scaled by the size of the organ + if(fluid_id && producing) if(reagents.total_volume == 0) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank. fluid_rate = 0.1 else - fluid_rate = CUM_RATE - if(reagents.total_volume >= 5) - fluid_mult = 0.5 - else - fluid_mult = 1 + fluid_rate = CUM_RATE * cached_size * fluid_mult // fluid rate is scaled by the size of the organ generate_cum() /obj/item/organ/genital/testicles/proc/generate_cum() @@ -42,7 +44,7 @@ if(!linked_organ) return FALSE reagents.isolate_reagent(fluid_id)//remove old reagents if it changed and just clean up generally - reagents.add_reagent(fluid_id, (fluid_mult * fluid_rate))//generate the cum + reagents.add_reagent(fluid_id, (fluid_rate))//generate the cum /obj/item/organ/genital/testicles/update_link() if(owner && !QDELETED(src)) @@ -50,7 +52,8 @@ if(linked_organ) linked_organ.linked_organ = src size = linked_organ.size - + var/obj/item/organ/genital/penis/O = linked_organ + cached_size = O.length else if(linked_organ) linked_organ.linked_organ = null