mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-18 19:22:43 +01:00
Merge pull request #1606 from Arctaisia/bellies
SARCOPH FIXED THE BELLIES
This commit is contained in:
@@ -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
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user