Merge branch 'update-tgui' of https://github.com/sarcoph/Hyper-Station-13 into update-tgui

This commit is contained in:
sarcoph
2022-02-27 11:58:31 -09:00
12 changed files with 88623 additions and 88008 deletions
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -121,7 +121,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/autosurgeon/womb = 1,
/obj/item/toy/plush/random = 1,
/obj/item/grenade/spawnergrenade/clustaur = 1,
/obj/effect/spawner/lootdrop/grille_or_trash = 5
/obj/effect/spawner/lootdrop/trash = 5
))
GLOBAL_LIST_INIT(ratking_trash, list(//Garbage: used by the regal rat mob when spawning garbage.
+23
View File
@@ -61,6 +61,29 @@
/area/centcom/supplypod/loading/four
name = "Supplypod Loading Bay #4"
/area/centcom/bunk
hidden = TRUE
/area/centcom/bunk/one
name = "Centcom Bunk #1"
/area/centcom/bunk/two
name = "Centcom Bunk #2"
/area/centcom/bunk/three
name = "Centcom Bunk #3"
/area/centcom/bunk/four
name = "Centcom Bunk #4"
/area/centcom/bunk/five
name = "Centcom Bunk #5"
/area/centcom/bunk/six
name = "Centcom Bunk #6"
//THUNDERDOME
/area/tdome
@@ -68,6 +68,20 @@
/obj/item/toy/cards/deck/syndicate = 2
)
/obj/effect/spawner/lootdrop/trash
name = "maint trash spawner"
loot = list(/obj/item/cigbutt = 1,
/obj/item/trash/cheesie = 1,
/obj/item/trash/candy = 1,
/obj/item/trash/chips = 1,
/obj/item/reagent_containers/food/snacks/deadmouse = 1,
/obj/item/trash/pistachios = 1,
/obj/item/trash/plate = 1,
/obj/item/trash/popcorn = 1,
/obj/item/trash/raisins = 1,
/obj/item/trash/sosjerky = 1,
/obj/item/trash/syndi_cakes = 1)
/obj/effect/spawner/lootdrop/grille_or_trash
name = "maint grille or trash spawner"
loot = list(/obj/structure/grille = 5,
+1 -1
View File
@@ -35,7 +35,7 @@
if(!new_grad_color)
return
human_target.hair_color = new_hair_color
human_target.hair_color = sanitize_hexcolor(new_hair_color)
human_target.grad_style = new_grad_style
human_target.grad_color = sanitize_hexcolor(new_grad_color)
to_chat(human_target, "<span class='notice'>You start applying the hair dye...</span>")
@@ -25,6 +25,9 @@
dat += "<a href='byond://?src=[REF(src)];container=1'>Fill container</A>"
dat += "(Use a container in your hand to collect your seminal fluid.)<BR>"
dat += "<a href='byond://?src=[REF(src)];climaxself=1'>Climax on self</A>"
dat += "(Stimulate a sexual organ to climax onto yourself.)<BR>"
var/mob/living/carbon/human/C = usr
if(C && C.w_uniform || C.wear_suit) //if they are wearing cloths
dat += "<a href='byond://?src=[REF(src)];clothesplosion=1'>Explode out of clothes</A>"
@@ -160,6 +163,14 @@
to_chat(usr, "<span class='warning'>You aren't aroused enough for that! </span>")
return
if(href_list["climaxself"])
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
H.climaxself()
return
else
to_chat(usr, "<span class='warning'>You aren't aroused enough for that! </span>")
return
if(href_list["climax"])
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
H.climaxalone(FALSE)
@@ -503,4 +514,29 @@ obj/screen/arousal/proc/kiss()
cut_overlay(mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi', "cum_large"))
if(cum_splatter_icon)
cut_overlay(cum_splatter_icon)
return TRUE
return TRUE
/mob/living/carbon/human/proc/climaxself()
if(restrained(TRUE))
to_chat(src, "<span class='warning'>You can't do that while restrained!</span>")
return
var/free_hands = get_num_arms()
if(!free_hands)
to_chat(src, "<span class='warning'>You need at least one free arm.</span>")
return
for(var/helditem in held_items)
if(isobj(helditem))
free_hands--
if(free_hands <= 0)
to_chat(src, "<span class='warning'>You're holding too many things.</span>")
return
//We got hands, let's pick an organ
var/obj/item/organ/genital/picked_organ
picked_organ = pick_masturbate_genitals()
if(picked_organ)
src << browse(null, "window=arousal") //closes the window
mob_masturbate(picked_organ, cover = TRUE)
return
else //They either lack organs that can masturbate, or they didn't pick one.
to_chat(src, "<span class='warning'>You cannot climax without choosing genitals.</span>")
return
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

@@ -238,7 +238,7 @@
//These are various procs that we'll use later, split up for readability instead of having one, huge proc.
//For all of these, we assume the arguments given are proper and have been checked beforehand.
/mob/living/carbon/human/proc/mob_masturbate(obj/item/organ/genital/G, mb_time = 30) //Masturbation, keep it gender-neutral
/mob/living/carbon/human/proc/mob_masturbate(obj/item/organ/genital/G, cover = FALSE, mb_time = 30) //Masturbation, keep it gender-neutral
var/total_fluids = 0
var/datum/reagents/fluid_source = null
var/condomed = 0
@@ -267,10 +267,36 @@
if(total_fluids > 5 &&!condomed &&!sounded)
fluid_source.reaction(src.loc, TOUCH, 1, 0)
fluid_source.clear_reagents()
if(!condomed &&!sounded)
if(!condomed && !sounded && !cover)
src.visible_message("<span class='love'>[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!</span>", \
"<span class='userlove'>You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].</span>", \
"<span class='userlove'>You have relieved yourself.</span>")
"<span class='userlove'>You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].</span>", \
"<span class='userlove'>You have relieved yourself.</span>")
if(!condomed &&!sounded && cover)//For when you want to make a mess of yourself.
fluid_source.trans_to(src, total_fluids*G.fluid_transfer_factor)
total_fluids -= total_fluids*G.fluid_transfer_factor
if(total_fluids > 80) // now thats a big cum!
if(isliving(src))
var/mutable_appearance/cumoverlaylarge = mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi')
cumoverlaylarge.icon_state = "cum_large"
src.add_overlay(cumoverlaylarge)
if(total_fluids > 5)
fluid_source.reaction(src.loc, TOUCH, 1, 0)
var/mob/living/carbon/human/H = src
if(H && G.name == "penis")
H.cumdrip_rate += rand(5,10)
fluid_source.clear_reagents()
src.visible_message("<span class='love'>[src] climaxes over [p_their()] self, using [p_their()] [G.name]!</span>", \
"<span class='userlove'>You orgasm over yourself, using your [G.name].</span>", \
"<span class='userlove'>You have climaxed over something, using your [G.name].</span>")
if(isliving(src))
var/mutable_appearance/cumoverlay = mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi')
cumoverlay.icon_state = "cum_normal"
src.add_overlay(cumoverlay)
else
src.add_cum_overlay()
if(condomed) //condomed
src.visible_message("<span class='love'>[src] orgasms, climaxing into [p_their()] condom </span>", \
"<span class='userlove'>You cum into your condom.</span>", \
@@ -611,6 +637,8 @@
//Here's the main proc itself
/mob/living/carbon/human/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints
if(stat == DEAD) //corpses can't cum
return
if(mb_cd_timer > world.time)
if(!forced_climax) //Don't spam the message to the victim if forced to come too fast
to_chat(src, "<span class='warning'>You need to wait [DisplayTimeText((mb_cd_timer - world.time), TRUE)] before you can do that again!</span>")
@@ -83,7 +83,7 @@
owner.exposed_genitals += src
if("Hidden by clothes")
through_clothes = FALSE
hidden = TRUE
hidden = FALSE
mode = "clothes"
if(src in owner.exposed_genitals)
owner.exposed_genitals -= src
@@ -28,7 +28,7 @@
var/noncon = FALSE //Definitely want this off by default
// stuff that was in base
max_save_slots = 20
max_save_slots = 30
/datum/preferences/New(client/C)
+3 -3
View File
@@ -1566,9 +1566,9 @@
}
},
"cached-path-relative": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz",
"integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg=="
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz",
"integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA=="
},
"call-bind": {
"version": "1.0.0",
+14 -14
View File
@@ -877,11 +877,11 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2:
version "6.10.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
fast-deep-equal "^2.0.1"
fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
@@ -2490,15 +2490,15 @@ extract-css-chunks-webpack-plugin@^4.6.0:
webpack-external-import "^0.3.0-beta.0"
webpack-sources "^1.1.0"
fast-deep-equal@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-deep-equal@^3.1.1:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@~2.0.6:
version "2.0.6"
@@ -5963,9 +5963,9 @@ upath@^1.1.1:
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
uri-js@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"