Merge pull request #1606 from Arctaisia/bellies

SARCOPH FIXED THE BELLIES
This commit is contained in:
QuoteFox
2022-05-03 08:56:43 +01:00
committed by GitHub
10 changed files with 78 additions and 60 deletions
+8
View File
@@ -0,0 +1,8 @@
#define BELLY_MIN_SIZE 0
#define BELLY_MAX_SIZE 8
#define BELLY_STRAIN_SIZE 3 // for flavor text
#define BELLY_STRETCH_SIZE 6 // for flavor text
#define BUTT_MIN_SIZE 0
#define BUTT_MAX_SIZE 5
+7 -7
View File
@@ -2430,14 +2430,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
to_chat(user,"<span class='danger'>Invalid color. Your color is not bright enough.</span>")
if("belly_size")
var/new_bellysize = input(user, "Belly size :\n(1-8)", "Character Preference") as num|null
if(new_bellysize)
features["belly_size"] = clamp(new_bellysize, 1, 8)
var/new_bellysize = input(user, "Belly size :\n([BELLY_MIN_SIZE]-[BELLY_MAX_SIZE])", "Character Preference") as num|null
if(new_bellysize != null)
features["belly_size"] = clamp(new_bellysize, BELLY_MIN_SIZE, BELLY_MAX_SIZE)
if("butt_size")
var/new_buttsize = input(user, "Butt size :\n(0-5)", "Character Preference") as num|null
if(new_buttsize)
features["butt_size"] = clamp(new_buttsize, 0, 5)
var/new_buttsize = input(user, "Butt size :\n([BUTT_MIN_SIZE]-[BUTT_MAX_SIZE])", "Character Preference") as num|null
if(new_buttsize != null)
features["butt_size"] = clamp(new_buttsize, BUTT_MIN_SIZE, BUTT_MAX_SIZE)
if("vag_shape")
var/new_shape
@@ -2572,7 +2572,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(features["has_belly"] == FALSE)
features["hide_belly"] = FALSE
features["inflatable_belly"] = FALSE
features["belly_size"] = 1
features["belly_size"] = 0
if("inflatable_belly")
features["inflatable_belly"] = !features["inflatable_belly"]
@@ -211,13 +211,7 @@
return
if(href_list["shrink_belly"])
var/obj/item/organ/genital/belly/E = usr.getorganslot("belly")
if(E.size > 0)
to_chat(usr, "<span class='userlove'>You feel your belly diminish.</span>")
E.size -= 1
H.update_genitals()
else
to_chat(usr, "<span class='warning'>Your belly is already at the minimum size! </span>")
H.shrink_belly(1)
if(href_list["removecondom"])
H.menuremovecondom()
@@ -0,0 +1,35 @@
/mob/living/carbon/proc/expand_belly(expansion = 1)
var/obj/item/organ/genital/belly/_belly = getorganslot("belly")
if(!expansion || !_belly || !_belly.inflatable)
return
var/original_size = _belly.size
_belly.size = clamp(_belly.size + expansion, BELLY_MIN_SIZE, BELLY_MAX_SIZE)
if(_belly.size == original_size)
return
var/_verb = "expand"
switch(_belly.size)
if(BELLY_MAX_SIZE to INFINITY)
_verb = "stretch to its limit"
if(BELLY_STRETCH_SIZE to BELLY_MAX_SIZE)
_verb = "stretch"
if(BELLY_STRAIN_SIZE to BELLY_STRETCH_SIZE)
_verb = "strain"
to_chat(src, "<span class='userlove'>You feel your belly [_verb].</span>")
_belly.update()
/mob/living/carbon/proc/shrink_belly(shrinkage = 1)
var/obj/item/organ/genital/belly/_belly = getorganslot("belly")
if(!shrinkage ||!_belly || !_belly.inflatable)
return
var/original_size = _belly.size
_belly.size = clamp(_belly.size - shrinkage, BELLY_MIN_SIZE, BELLY_MAX_SIZE)
if(_belly.size == original_size)
return
var/_verb = "diminish"
var/_class = "userlove"
if(_belly.size == BELLY_MIN_SIZE)
_verb = "can't shrink anymore"
_class = "warning"
to_chat(src, "<span class='[_class]'>You feel your belly [_verb].</span>")
_belly.update()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -437,17 +437,9 @@
if(!remote && !in_range(src, L))
return
if(do_after(src, mb_time, target = src))
if(!spillage) //hyper inflation
var/obj/item/organ/genital/belly/B = L.getorganslot("belly")
if(B)
if(B.inflatable && total_fluids > 80) //requires a big cumshot to expand.
if(B.size < 3)
B.size += 1
to_chat(L, "<span class='userlove'>You feel your belly expand.</span>")
else
to_chat(L, "<span class='userlove'>You feel your belly strain.</span>")
var/mob/living/carbon/H = L
if(!spillage && total_fluids > 80) //hyper inflation; requires a big cumshot to expand
H.expand_belly(1)
var/obj/item/organ/genital/penis/P = G
if (P.condom)//condomed.
src.condomclimax()
@@ -673,8 +665,6 @@
var/mob/living/carbon/C = check_target
if(C.exposed_genitals.len || C.is_groin_exposed() || C.is_chest_exposed()) //Are they naked enough?
partner = C
else //A cat is fine too
partner = check_target
if(partner) //Did they pass the clothing checks?
mob_climax_partner(G, partner, mb_time = 0) //Instant climax due to forced
continue //You've climaxed once with this organ, continue on
@@ -229,7 +229,7 @@
if(!getorganslot("belly"))
var/obj/item/organ/genital/belly/B = new
if(dna.features["belly_size"])
B.size = dna.features["belly_size"]-1
B.size = dna.features["belly_size"]
B.Insert(src)
if(B)
if(dna.species.use_skintones && dna.features["genitals_use_skintone"])
@@ -478,39 +478,39 @@
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
colourcode = S.color_src
//sizecheck added to prevent rendering blank icons
if(G.slot == "belly" && G.size > 0) //we have a different size system
if(G.slot == "belly")
size = round(size)
genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi'
genital_overlay.icon_state = "belly_[round(size)]_OTHER"
genital_overlay.icon_state = "belly_[size]_OTHER"
colourcode = "belly_color"
//creates directional layering by rendering twice.
genital_overlay_directional.icon = 'hyperstation/icons/obj/genitals/belly.dmi' //Added directionals for larger bellies!
genital_overlay_directional.icon_state = "belly_[round(size)]_NORTH"
genital_overlay_directional.icon_state = "belly_[size]_NORTH"
genital_overlay_directional.layer = -GENITALS_BEHIND_LAYER
//sizecheck added to prevent rendering blank icons
if(G.slot == "anus" && G.size > 0) //we have a different size system
if(G.slot == "anus")
size = round(size)
genital_overlay.icon = 'hyperstation/icons/obj/genitals/butt.dmi'
genital_overlay.icon_state = "butt_[round(size)]_OTHER"
genital_overlay.icon_state = "butt_[size]_OTHER"
genital_overlay.layer = -ID_LAYER //in front of suit, behind bellies.
//creates directional layering by rendering twice. North has higher layer priority to occlude hands.
genital_overlay_directional.icon = 'hyperstation/icons/obj/genitals/butt.dmi'
genital_overlay_directional.icon_state = "butt_[round(size)]_NORTH"
genital_overlay_directional.icon_state = "butt_[size]_NORTH"
genital_overlay_directional.layer = -NECK_LAYER
colourcode = "butt_color"
if(use_skintones) //butts are forced a colour, either skin tones, or main colour. how ever, mutants use a darker version, because of their body tone.
if(use_skintones && H.dna.features["genitals_use_skintone"])
//butts are forced a colour, either skin tones, or main colour.
//how ever, mutants use a darker version, because of their body tone.
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
genital_overlay.icon_state = "butt_[round(size)]_OTHER"
genital_overlay_directional.icon_state = "butt_[round(size)]_NORTH"
genital_overlay.icon_state = "butt_[size]_OTHER"
genital_overlay_directional.icon_state = "butt_[size]_NORTH"
else
genital_overlay.color = "#[H.dna.features["mcolor"]]"
genital_overlay.icon_state = "butt_[round(size)]_OTHER_m"
genital_overlay_directional.icon_state = "butt_[round(size)]_NORTH_m"
genital_overlay.icon_state = "butt_[size]_OTHER_m"
genital_overlay_directional.icon_state = "butt_[size]_NORTH_m"
if(S.center)
@@ -521,21 +521,10 @@
if (colourtint)
genital_overlay.color = "#[colourtint]"
else
switch(colourcode)
if("cock_color")
genital_overlay.color = "#[H.dna.features["cock_color"]]"
if (colourtint)
genital_overlay.color = "#[colourtint]"
if("balls_color")
genital_overlay.color = "#[H.dna.features["balls_color"]]"
if("breasts_color")
genital_overlay.color = "#[H.dna.features["breasts_color"]]"
if("vag_color")
genital_overlay.color = "#[H.dna.features["vag_color"]]"
if("belly_color")
genital_overlay.color = "#[H.dna.features["belly_color"]]"
if("butt_color")
genital_overlay.color = "#[H.dna.features["butt_color"]]"
if(colourcode != MUTCOLORS)
genital_overlay.color = "#[H.dna.features[colourcode]]"
if(colourcode == "cock_color" && colourtint)
genital_overlay.color = "#[colourtint]"
standing += genital_overlay
@@ -549,7 +538,7 @@
if (colourtint)
genital_overlay_directional.color = "#[colourtint]"
else
genital_overlay_directional.color = "#[H.dna.features["butt_color"]]"
genital_overlay_directional.color = "#[H.dna.features[colourcode]]"
standing += genital_overlay_directional
@@ -412,7 +412,7 @@
B = nB
//If they have & opt in, increase size.
if(H.client?.prefs.cit_toggles & ASS_ENLARGEMENT)
if(B.size < 5) //just make sure you dont break sprites
if(B.size < BUTT_MAX_SIZE) //just make sure you dont break sprites
B.size = B.size + 0.05
B.update()
..()
+2
View File
@@ -50,6 +50,7 @@
#include "code\__DEFINES\food.dm"
#include "code\__DEFINES\footsteps.dm"
#include "code\__DEFINES\hud.dm"
#include "code\__DEFINES\hyper_arousal.dm"
#include "code\__DEFINES\integrated_electronics.dm"
#include "code\__DEFINES\interaction_flags.dm"
#include "code\__DEFINES\inventory.dm"
@@ -3141,6 +3142,7 @@
#include "hyperstation\code\modules\antagonists\werewolf\werewolf.dm"
#include "hyperstation\code\modules\arousal\arousalhud.dm"
#include "hyperstation\code\modules\arousal\creampie.dm"
#include "hyperstation\code\modules\arousal\expansion.dm"
#include "hyperstation\code\modules\busy_space\air_traffic.dm"
#include "hyperstation\code\modules\busy_space\atc_controller.dm"
#include "hyperstation\code\modules\busy_space\loremaster.dm"