mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-18 03:21:30 +01:00
Merge branch 'master' into various-fixes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -99,16 +99,23 @@
|
||||
path = /obj/item/clothing/head/crystalline
|
||||
ckeywhitelist = list("dragontrance")
|
||||
|
||||
/datum/gear/lyricalpawsplush
|
||||
name = "Winter Dawn Plushie"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/toy/plush/mammal/lyricalpaws
|
||||
ckeywhitelist = list("lyricalpaws")
|
||||
|
||||
/datum/gear/lyricalpawssuit
|
||||
name = "Fleet Commander's Overcoat"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/suit/hooded/wintercoat/chloe
|
||||
path = /obj/item/clothing/suit/chloe
|
||||
ckeywhitelist = list("lyricalpaws")
|
||||
|
||||
/datum/gear/lyricalpawshat
|
||||
name = "Fleet Commander's Beret"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/clothing/head/chloe
|
||||
cost = 0
|
||||
ckeywhitelist = list("lyricalpaws")
|
||||
|
||||
datum/gear/darksabresheath
|
||||
name = "Dark Sabre Sheath"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/storage/belt/sabre/chloesabre
|
||||
ckeywhitelist = list("lyricalpaws")
|
||||
|
||||
/datum/gear/cherostavikmask
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,6 +3,11 @@
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/fingerless
|
||||
|
||||
/datum/gear/gcgloves
|
||||
name = "Fingerless Leather Gloves"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/guncaster
|
||||
|
||||
/datum/gear/goldring
|
||||
name = "A gold ring"
|
||||
category = SLOT_GLOVES
|
||||
@@ -19,4 +24,4 @@
|
||||
name = "A diamond ring"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/ring/diamond
|
||||
cost = 4
|
||||
cost = 4
|
||||
@@ -120,6 +120,17 @@
|
||||
path = /obj/item/clothing/suit/flakjack
|
||||
cost = 2
|
||||
|
||||
/datum/gear/gcvest
|
||||
name = "Guncaster's Vest"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/gcvest
|
||||
|
||||
/datum/gear/gcvestalt
|
||||
name = "Hellraider's Vest"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/gcvest/alt
|
||||
|
||||
|
||||
/datum/gear/trekds9_coat
|
||||
name = "DS9 Overcoat (use uniform)"
|
||||
category = SLOT_WEAR_SUIT
|
||||
@@ -218,3 +229,8 @@
|
||||
name = "Pharoah tunic"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/nemes
|
||||
|
||||
/datum/gear/fluffcoat
|
||||
name = "Winter labcoat"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/toggle/labcoat/formallab
|
||||
@@ -458,6 +458,12 @@
|
||||
path = /obj/item/clothing/under/polychromic/bottomless
|
||||
cost = 2
|
||||
|
||||
/datum/gear/polysweatervirgin
|
||||
name = "Polychromic Virginkiller Sweater"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/polychromic/vsweater
|
||||
cost = 2
|
||||
|
||||
/datum/gear/corset
|
||||
name = "Corset"
|
||||
category = SLOT_W_UNIFORM
|
||||
|
||||
@@ -57,6 +57,7 @@ datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
|
||||
..()
|
||||
character.give_genitals(TRUE)
|
||||
character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially
|
||||
character.ooc_text = features["ooc_text"] //Let's update their flavor_text at least initially
|
||||
character.canbearoused = arousable
|
||||
character.client?.prefs.lewdchem = lewdchem
|
||||
if(icon_updates)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
features["ipc_antenna"] = sanitize_inlist(features["ipc_antenna"], GLOB.ipc_antennas_list)
|
||||
//Citadel
|
||||
features["flavor_text"] = sanitize_text(features["flavor_text"], initial(features["flavor_text"]))
|
||||
features["ooc_text"] = sanitize_text(features["ooc_text"], initial(features["ooc_text"]))
|
||||
if(!features["mcolor2"] || features["mcolor"] == "#000")
|
||||
features["mcolor2"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
|
||||
if(!features["mcolor3"] || features["mcolor"] == "#000")
|
||||
@@ -84,6 +85,7 @@
|
||||
WRITE_FILE(S["feature_can_get_preg"], features["can_get_preg"])
|
||||
//flavor text
|
||||
WRITE_FILE(S["feature_flavor_text"], features["flavor_text"])
|
||||
WRITE_FILE(S["feature_ooc_text"], features["ooc_text"])
|
||||
//custom job titles
|
||||
WRITE_FILE(S["alt_titles_preferences"], alt_titles_preferences)
|
||||
//belly
|
||||
|
||||
@@ -209,4 +209,26 @@
|
||||
primary_color = "#808080" //RGB in hexcode
|
||||
secondary_color = "#FFFFFF"
|
||||
hastertiary = FALSE
|
||||
body_parts_covered= CHEST|GROIN
|
||||
body_parts_covered= CHEST|GROIN
|
||||
|
||||
/obj/item/clothing/under/polychromic/vsweater
|
||||
name = "virgin killer sweater"
|
||||
desc = "A sweater designed to be as provocative as possible, with almost all of the back missing, bairly hiding anything from that angle. Warning: Doesn't actually kill virgins."
|
||||
icon_state = "vkiller"
|
||||
item_color = "vkiller"
|
||||
item_state = "rainbow"
|
||||
primary_color = "#E1D6C9" //RGB in hexcode
|
||||
secondary_color = "#FFFFFF"
|
||||
hastertiary = FALSE
|
||||
body_parts_covered= CHEST|GROIN
|
||||
|
||||
/obj/item/clothing/under/polychromic/onepeice
|
||||
name = "polychromic swimsuit"
|
||||
desc = "Perfect for summer, and those who want to have something with a bit more material."
|
||||
icon_state = "onepeice"
|
||||
item_color = "onepeice"
|
||||
item_state = "rainbow"
|
||||
primary_color = "#010052" //RGB in hexcode
|
||||
secondary_color = "#eb7a7a"
|
||||
tertiary_color = "#ffffff"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
@@ -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
|
||||
|
||||
@@ -19,13 +19,14 @@
|
||||
incomingstammult = max(0.01, incomingstammult/(amount*0.05))
|
||||
return amount
|
||||
|
||||
/*
|
||||
/mob/living/carbon/doSprintLossTiles(tiles)
|
||||
doSprintBufferRegen(FALSE) //first regen.
|
||||
if(sprint_buffer)
|
||||
var/use = min(tiles, sprint_buffer)
|
||||
sprint_buffer -= use
|
||||
tiles -= use
|
||||
update_hud_sprint_bar()
|
||||
// update_hud_sprint_bar()
|
||||
if(!tiles) //we had enough, we're done!
|
||||
return
|
||||
adjustStaminaLoss(tiles * sprint_stamina_cost) //use stamina to cover deficit.
|
||||
@@ -34,5 +35,4 @@
|
||||
var/diff = world.time - sprint_buffer_regen_last
|
||||
sprint_buffer_regen_last = world.time
|
||||
sprint_buffer = min(sprint_buffer_max, sprint_buffer + sprint_buffer_regen_ds * diff)
|
||||
if(updating)
|
||||
update_hud_sprint_bar()
|
||||
*/
|
||||
@@ -20,6 +20,7 @@
|
||||
. += 1
|
||||
. += ..()
|
||||
|
||||
/*
|
||||
/mob/living/carbon/human/proc/togglesprint() // If you call this proc outside of hotkeys or clicking the HUD button, I'll be disappointed in you.
|
||||
sprinting = !sprinting
|
||||
if(!resting && m_intent == MOVE_INTENT_RUN && canmove)
|
||||
@@ -27,11 +28,12 @@
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
else
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
if(hud_used && hud_used.static_inventory)
|
||||
for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
|
||||
selector.insert_witty_toggle_joke_here(src)
|
||||
// if(hud_used && hud_used.static_inventory)
|
||||
// for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
|
||||
// selector.insert_witty_toggle_joke_here(src)
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/proc/sprint_hotkey(targetstatus)
|
||||
if(targetstatus ? !sprinting : sprinting)
|
||||
togglesprint()
|
||||
*/
|
||||
@@ -15,7 +15,7 @@
|
||||
. = ..()
|
||||
if(!client || !hud_used)
|
||||
return
|
||||
if(hud_used.staminas)
|
||||
hud_used.staminas.icon_state = staminahudamount()
|
||||
if(hud_used.staminabuffer)
|
||||
hud_used.staminabuffer.icon_state = staminabufferhudamount()
|
||||
// if(hud_used.staminas)
|
||||
// hud_used.staminas.icon_state = staminahudamount()
|
||||
// if(hud_used.staminabuffer)
|
||||
// hud_used.staminabuffer.icon_state = staminabufferhudamount()
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
/mob/living/carbon/Life()
|
||||
. = ..()
|
||||
doSprintBufferRegen()
|
||||
. = ..()
|
||||
@@ -127,6 +127,8 @@
|
||||
update_canmove()
|
||||
update_health_hud()
|
||||
|
||||
/*
|
||||
/mob/living/proc/update_hud_sprint_bar()
|
||||
if(hud_used && hud_used.sprint_buffer)
|
||||
hud_used.sprint_buffer.update_to_mob(src)
|
||||
*/
|
||||
@@ -3,15 +3,12 @@
|
||||
|
||||
/mob/living/silicon/robot/Move(NewLoc, direct)
|
||||
. = ..()
|
||||
if(. && sprinting && !(movement_type & FLYING) && canmove && !resting)
|
||||
if(!(cell?.use(25)))
|
||||
togglesprint(TRUE)
|
||||
|
||||
/mob/living/silicon/robot/movement_delay()
|
||||
. = ..()
|
||||
if(!resting && !sprinting)
|
||||
. += 1
|
||||
|
||||
/*
|
||||
/mob/living/silicon/robot/proc/togglesprint(shutdown = FALSE) //Basically a copypaste of the proc from /mob/living/carbon/human
|
||||
if(!shutdown && (!cell || cell.charge < 25))
|
||||
return FALSE
|
||||
@@ -23,11 +20,12 @@
|
||||
if(shutdown)
|
||||
playsound_local(src, 'sound/effects/light_flicker.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
playsound_local(src, 'modular_citadel/sound/misc/sprintdeactivate.ogg', 50, FALSE, pressure_affected = FALSE)
|
||||
if(hud_used && hud_used.static_inventory)
|
||||
for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
|
||||
selector.insert_witty_toggle_joke_here(src)
|
||||
// if(hud_used && hud_used.static_inventory)
|
||||
// for(var/obj/screen/sprintbutton/selector in hud_used.static_inventory)
|
||||
// selector.insert_witty_toggle_joke_here(src)
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/robot/proc/sprint_hotkey(targetstatus)
|
||||
if(targetstatus ? !sprinting : sprinting)
|
||||
togglesprint()
|
||||
*/
|
||||
@@ -32,6 +32,8 @@
|
||||
|
||||
/datum/reagent/fermi/breast_enlarger/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(iswendigo(M))
|
||||
return
|
||||
if(!ishuman(M)) //The monkey clause
|
||||
if(volume >= 15) //To prevent monkey breast farms
|
||||
var/turf/T = get_turf(M)
|
||||
@@ -164,6 +166,8 @@
|
||||
|
||||
/datum/reagent/fermi/BEsmaller_hypo/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(iswendigo(M))
|
||||
return
|
||||
if(!M.getorganslot("vagina"))
|
||||
if(M.dna.features["has_vag"])
|
||||
var/obj/item/organ/genital/vagina/nV = new
|
||||
@@ -208,6 +212,8 @@
|
||||
|
||||
/datum/reagent/fermi/penis_enlarger/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(iswendigo(M))
|
||||
return
|
||||
if(!ishuman(M)) //Just monkeying around.
|
||||
if(volume >= 15) //to prevent monkey penis farms
|
||||
var/turf/T = get_turf(M)
|
||||
@@ -351,6 +357,8 @@
|
||||
|
||||
/datum/reagent/fermi/PEsmaller_hypo/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
if(iswendigo(M))
|
||||
return
|
||||
if(!M.getorganslot("testicles"))
|
||||
if(M.dna.features["has_balls"])
|
||||
var/obj/item/organ/genital/testicles/nT = new
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user