Mobility exoskeleton & modules, max fat genital sizes
Added the mobility exoskeleton, weak MODsuit that comes with mobility-related modules. Added mobility-related modules Added preference for max genital sizes due to fat increase
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/species/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self)
|
||||
if(HAS_TRAIT(H, TRAIT_NO_BACKPACK) && slot ==ITEM_SLOT_BACK)
|
||||
if(!istype(I, /obj/item/mod) && HAS_TRAIT(H, TRAIT_NO_BACKPACK) && slot ==ITEM_SLOT_BACK)
|
||||
to_chat(H, "<span class='warning'>You are too fat to wear anything on your back.</span>")
|
||||
return FALSE
|
||||
|
||||
@@ -13,8 +13,13 @@
|
||||
to_chat(H, "<span class='warning'>You are too fat to wear [I].</span>")
|
||||
return FALSE
|
||||
|
||||
if(HAS_TRAIT(H, TRAIT_NO_MISC) && (slot == ITEM_SLOT_FEET || slot ==ITEM_SLOT_GLOVES || slot == ITEM_SLOT_OCLOTHING))
|
||||
if(!mod_check(I) && HAS_TRAIT(H, TRAIT_NO_MISC) && (slot == ITEM_SLOT_FEET || slot ==ITEM_SLOT_GLOVES || slot == ITEM_SLOT_OCLOTHING))
|
||||
to_chat(H, "<span class='warning'>You are too fat to wear [I].</span>")
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/species/proc/mod_check(I)
|
||||
if(istype(I, /obj/item/mod) || istype(I, /obj/item/clothing/head/mod) || istype(I, /obj/item/clothing/gloves/mod) || istype(I, /obj/item/clothing/shoes/mod) || istype(I, /obj/item/clothing/suit/mod) )
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
if(breath)
|
||||
var/pressure = breath.return_pressure()
|
||||
var/total_moles = breath.total_moles()
|
||||
#define PP_MOLES(X) ((X / total_moles) * pressure)
|
||||
//#define PP_MOLES(X) ((X / total_moles) * pressure)
|
||||
#define PP(air, gas) PP_MOLES(air.get_moles(gas))
|
||||
var/gas_breathed = PP(breath,GAS_H2O)
|
||||
if(gas_breathed > 0)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
slot = ORGAN_SLOT_BELLY
|
||||
w_class = 3
|
||||
size = 0
|
||||
var/max_size = 0
|
||||
shape = DEF_BELLY_SHAPE
|
||||
var/statuscheck = FALSE
|
||||
genital_flags = UPDATE_OWNER_APPEARANCE
|
||||
@@ -65,6 +66,7 @@
|
||||
else
|
||||
color = "#[D.features["belly_color"]]"
|
||||
size = D.features["belly_size"]
|
||||
max_size = D.features["max_belly_size"]
|
||||
starting_size = D.features["belly_size"]
|
||||
shape = D.features["belly_shape"]
|
||||
inflatable = D.features["inflatable_belly"]
|
||||
|
||||
@@ -7,11 +7,23 @@
|
||||
var/obj/item/organ/genital/breasts/breasts = H.getorganslot(ORGAN_SLOT_BREASTS)
|
||||
|
||||
if(butt)
|
||||
butt.modify_size(size_change)
|
||||
if(butt.max_size > 0)
|
||||
if((butt.size + size_change) <= butt.max_size)
|
||||
butt.modify_size(size_change)
|
||||
else
|
||||
butt.modify_size(size_change)
|
||||
if(belly)
|
||||
belly.modify_size(size_change)
|
||||
if(belly.max_size > 0)
|
||||
if((belly.size + size_change) <= belly.max_size)
|
||||
belly.modify_size(size_change)
|
||||
else
|
||||
belly.modify_size(size_change)
|
||||
if(breasts)
|
||||
breasts.modify_size(size_change)
|
||||
if(breasts.max_size > 0)
|
||||
if((breasts.cached_size + size_change) <= breasts.max_size)
|
||||
breasts.modify_size(size_change)
|
||||
else
|
||||
breasts.modify_size(size_change)
|
||||
|
||||
H.genital_override = TRUE
|
||||
H.update_body()
|
||||
@@ -38,7 +50,7 @@
|
||||
|
||||
/datum/species/proc/handle_helplessness(mob/living/carbon/human/fatty)
|
||||
var/datum/preferences/preferences = fatty?.client?.prefs
|
||||
if(!istype(preferences))
|
||||
if(!istype(preferences) || HAS_TRAIT(fatty, TRAIT_NO_HELPLESSNESS))
|
||||
return FALSE
|
||||
|
||||
if(preferences.helplessness_no_movement)
|
||||
@@ -161,17 +173,17 @@
|
||||
ADD_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT)
|
||||
|
||||
var/obj/item/clothing/suit/worn_suit = fatty.wear_suit
|
||||
if(istype(worn_suit))
|
||||
if(istype(worn_suit) && !istype(worn_suit, /obj/item/clothing/suit/mod))
|
||||
to_chat(fatty, "<span class='warning'>[worn_suit] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(worn_suit)
|
||||
|
||||
var/obj/item/clothing/gloves/worn_gloves = fatty.gloves
|
||||
if(istype(worn_gloves))
|
||||
if(istype(worn_gloves)&& !istype(worn_gloves, /obj/item/clothing/gloves/mod))
|
||||
to_chat(fatty, "<span class='warning'>[worn_gloves] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(worn_gloves)
|
||||
|
||||
var/obj/item/clothing/shoes/worn_shoes = fatty.shoes
|
||||
if(istype(worn_shoes))
|
||||
if(istype(worn_shoes) && !istype(worn_shoes, /obj/item/clothing/shoes/mod))
|
||||
to_chat(fatty, "<span class='warning'>[worn_shoes] can no longer contain your weight!</span>")
|
||||
fatty.dropItemToGround(worn_shoes)
|
||||
|
||||
@@ -189,7 +201,7 @@
|
||||
if(fatty.fatness >= preferences.helplessness_clothing_back)
|
||||
ADD_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)
|
||||
var/obj/item/back_item = fatty.back
|
||||
if(istype(back_item))
|
||||
if(istype(back_item) && !istype(back_item, /obj/item/mod))
|
||||
to_chat(fatty, "<span class='warning'>Your weight makes it impossible for you to carry [back_item].</span>")
|
||||
fatty.dropItemToGround(back_item)
|
||||
|
||||
@@ -220,6 +232,42 @@
|
||||
id = "fat"
|
||||
variable = TRUE
|
||||
|
||||
/mob/living/carbon
|
||||
var/list/fatness_delay_modifiers
|
||||
|
||||
/datum/fatness_delay_modifier
|
||||
var/name
|
||||
var/amount = 0
|
||||
var/multiplier = 1
|
||||
|
||||
/mob/living/carbon/proc/add_fat_delay_modifier(name = "", amount = 0, multiplier = 1)
|
||||
var/find_name = FALSE
|
||||
for(var/datum/fatness_delay_modifier/modifier in fatness_delay_modifiers)
|
||||
if(modifier.name == name && find_name == FALSE)
|
||||
modifier.amount = amount
|
||||
modifier.multiplier = multiplier
|
||||
find_name = TRUE
|
||||
if(find_name == FALSE)
|
||||
var/datum/fatness_delay_modifier/new_modifier = new()
|
||||
new_modifier.name = name
|
||||
new_modifier.amount = amount
|
||||
new_modifier.multiplier = multiplier
|
||||
LAZYADD(fatness_delay_modifiers, new_modifier)
|
||||
|
||||
/mob/living/carbon/proc/remove_fat_delay_modifier(name)
|
||||
for(var/datum/fatness_delay_modifier/modifier in fatness_delay_modifiers)
|
||||
if(modifier.name == name)
|
||||
LAZYREMOVE(fatness_delay_modifiers, modifier)
|
||||
|
||||
/datum/species/proc/apply_fatness_speed_modifiers(mob/living/carbon/human/H, fatness_delay)
|
||||
for(var/datum/fatness_delay_modifier/modifier in H.fatness_delay_modifiers)
|
||||
fatness_delay = fatness_delay + modifier.amount
|
||||
for(var/datum/fatness_delay_modifier/modifier in H.fatness_delay_modifiers)
|
||||
fatness_delay *= modifier.multiplier
|
||||
fatness_delay = max(fatness_delay, 0)
|
||||
fatness_delay = min(fatness_delay, FATNESS_MAX_MOVE_PENALTY)
|
||||
return fatness_delay
|
||||
|
||||
/datum/species/proc/handle_fatness(mob/living/carbon/human/H)
|
||||
handle_helplessness(H)
|
||||
H.handle_modular_items()
|
||||
@@ -241,6 +289,7 @@
|
||||
fatness_delay = min(fatness_delay, 60)
|
||||
|
||||
if(fatness_delay)
|
||||
fatness_delay = apply_fatness_speed_modifiers(H, fatness_delay)
|
||||
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/fatness, TRUE, fatness_delay)
|
||||
else
|
||||
H.remove_movespeed_modifier(/datum/movespeed_modifier/fatness)
|
||||
|
||||
215
GainStation13/code/modules/mod/modules/modules_fat.dm
Normal file
215
GainStation13/code/modules/mod/modules/modules_fat.dm
Normal file
@@ -0,0 +1,215 @@
|
||||
/obj/item/mod/module/hydraulic_movement
|
||||
icon = 'GainStation13/icons/obj/clothing/modsuit/mod_modules.dmi'
|
||||
icon_state = "hydraulic_mod"
|
||||
name = "MOD hydraulic movement assistance module"
|
||||
desc = "A module created by GATO, installed across the suit, featuring a system of hydraulic pistons \
|
||||
that support and lighten vast amounts of excess weight to provide easier movement."
|
||||
complexity = 1
|
||||
incompatible_modules = list(/obj/item/mod/module/hydraulic_movement)
|
||||
idle_power_cost = 5
|
||||
var/amount = -2
|
||||
var/modifier_name = "hydraulic_mod"
|
||||
|
||||
/obj/item/mod/module/hydraulic_movement/on_suit_activation()
|
||||
var/mob/living/carbon/human/wearer = mod.wearer
|
||||
wearer.add_fat_delay_modifier(modifier_name, amount)
|
||||
|
||||
if(!HAS_TRAIT_FROM(wearer, TRAIT_NO_HELPLESSNESS, src))
|
||||
ADD_TRAIT(wearer, TRAIT_NO_HELPLESSNESS, src)
|
||||
|
||||
if(HAS_TRAIT_FROM(wearer, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(wearer, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT)
|
||||
// if(HAS_TRAIT_FROM(wearer, TRAIT_CLUMSY, HELPLESSNESS_TRAIT))
|
||||
// REMOVE_TRAIT(wearer, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)
|
||||
// if(HAS_TRAIT_FROM(wearer, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT))
|
||||
// wearer.cure_nearsighted(HELPLESSNESS_TRAIT)
|
||||
// if(HAS_TRAIT_FROM(wearer, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT))
|
||||
// REMOVE_TRAIT(wearer, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT)
|
||||
if(HAS_TRAIT_FROM(wearer, TRAIT_MUTE, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(wearer, TRAIT_MUTE, HELPLESSNESS_TRAIT)
|
||||
if(HAS_TRAIT_FROM(wearer, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(wearer, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT)
|
||||
REMOVE_TRAIT(wearer, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT)
|
||||
wearer.update_disabled_bodyparts()
|
||||
// if(HAS_TRAIT_FROM(wearer, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT))
|
||||
// REMOVE_TRAIT(wearer, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)
|
||||
if(HAS_TRAIT_FROM(wearer, TRAIT_NO_MISC, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(wearer, TRAIT_NO_MISC, HELPLESSNESS_TRAIT)
|
||||
if(HAS_TRAIT_FROM(wearer, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT))
|
||||
REMOVE_TRAIT(wearer, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)
|
||||
// if(HAS_TRAIT_FROM(wearer, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT))
|
||||
// REMOVE_TRAIT(wearer, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT)
|
||||
|
||||
/obj/item/mod/module/hydraulic_movement/on_suit_deactivation(deleting = FALSE)
|
||||
if(deleting)
|
||||
return
|
||||
if(HAS_TRAIT_FROM(mod.wearer, TRAIT_NO_HELPLESSNESS, src))
|
||||
REMOVE_TRAIT(mod.wearer, TRAIT_NO_HELPLESSNESS, src)
|
||||
mod.wearer.remove_fat_delay_modifier(modifier_name)
|
||||
|
||||
/datum/design/module/hydraulic_movement
|
||||
name = "Hydraulic Assistance Module"
|
||||
id = "mod_hydraulic"
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 200)
|
||||
build_path = /datum/design/module/hydraulic_movement
|
||||
desc = "A GATO-designed module that supports plumper bodies and allows easier movement."
|
||||
|
||||
/obj/item/mod/module/calovoltaic
|
||||
icon = 'GainStation13/icons/obj/clothing/modsuit/mod_modules.dmi'
|
||||
icon_state = "calovoltaic_mod"
|
||||
name = "MOD calovoltaic generator module"
|
||||
desc = "A module created by GATO, capable of burning adipose tissue \
|
||||
to generate power for the suit it is installed onto."
|
||||
module_type = MODULE_TOGGLE
|
||||
complexity = 1
|
||||
incompatible_modules = list(/obj/item/mod/module/calovoltaic)
|
||||
var/rate = 5
|
||||
|
||||
/obj/item/mod/module/calovoltaic/on_select()
|
||||
. = ..()
|
||||
if(active)
|
||||
balloon_alert(mod.wearer, "activeted!")
|
||||
else
|
||||
balloon_alert(mod.wearer, "deactivated!")
|
||||
|
||||
/obj/item/mod/module/calovoltaic/on_active_process(delta_time)
|
||||
if(istype(mod.wearer, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = mod.wearer
|
||||
var/adjusted_rate = rate * C.weight_loss_rate
|
||||
if(C.fatness_real > 0 && (C.fatness_real - adjusted_rate) >= adjusted_rate)
|
||||
C.adjust_fatness(-rate, FATTENING_TYPE_WEIGHT_LOSS)
|
||||
mod.cell.give(rate)
|
||||
|
||||
/datum/design/module/calovoltaic
|
||||
name = "Calovoltaic Generator Module"
|
||||
id = "mod_calovoltaic"
|
||||
materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/plasma = 500)
|
||||
build_path = /obj/item/mod/module/calovoltaic
|
||||
desc = "A GATO-designed module for burning excess fat to make power for your suit."
|
||||
|
||||
/obj/item/mod/construction/armor/exoskeleton
|
||||
theme = /datum/mod_theme/exoskeleton
|
||||
|
||||
/obj/item/mod/control/Initialize(mapload, new_theme, new_skin)
|
||||
. = ..()
|
||||
gs13_icon_update()
|
||||
|
||||
/obj/item/mod/control/proc/gs13_icon_update()
|
||||
if(theme.use_gs_icon == TRUE)
|
||||
icon = 'GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi'
|
||||
mob_overlay_icon = 'GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
icon_state = "[theme]-control"
|
||||
item_state = "[theme]-control"
|
||||
|
||||
helmet.icon = 'GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi'
|
||||
helmet.mob_overlay_icon = 'GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
helmet.icon_state = "[theme]-helmet"
|
||||
helmet.item_state = "[theme]-helmet"
|
||||
|
||||
chestplate.icon = 'GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi'
|
||||
chestplate.mob_overlay_icon = 'GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
chestplate.icon_state = "[theme]-chestplate"
|
||||
chestplate.item_state = "[theme]-chestplate"
|
||||
|
||||
gauntlets.icon = 'GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi'
|
||||
gauntlets.mob_overlay_icon = 'GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
gauntlets.icon_state = "[theme]-gauntlets"
|
||||
gauntlets.item_state = "[theme]-gauntlets"
|
||||
|
||||
boots.icon = 'GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi'
|
||||
boots.mob_overlay_icon = 'GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
boots.icon_state = "[theme]-boots"
|
||||
boots.item_state = "[theme]-boots"
|
||||
|
||||
/datum/mod_theme
|
||||
var/use_gs_icon = FALSE
|
||||
|
||||
/datum/mod_theme/exoskeleton
|
||||
use_gs_icon = TRUE
|
||||
name = "exoskeleton"
|
||||
desc = "The design for a GATO-branded mobility exoskeleton"
|
||||
extended_desc = "To combat the obesity epidemic that spreads on its stations, \
|
||||
GATO scientists have worked hard to create this simple yet efficient way to support \
|
||||
people whose weight proves restrictive and help them on their journey to lose it."
|
||||
default_skin = "exoskeleton"
|
||||
complexity_max = 5
|
||||
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 5, BIO = 5, FIRE = 5, ACID = 5, WOUND = 5, RAD = 5)
|
||||
resistance_flags = FIRE_PROOF
|
||||
max_heat_protection_temperature = 1
|
||||
min_cold_protection_temperature = -1
|
||||
permeability_coefficient = 1
|
||||
siemens_coefficient = 1
|
||||
slowdown_inactive = 0.5
|
||||
slowdown_active = 0
|
||||
inbuilt_modules = list(/obj/item/mod/module/hydraulic_movement, /obj/item/mod/module/calovoltaic, /obj/item/mod/module/storage)
|
||||
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
|
||||
skins = list(
|
||||
"exoskeleton" = list(
|
||||
HELMET_LAYER = NECK_LAYER,
|
||||
HELMET_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
UNSEALED_INVISIBILITY = NONE,
|
||||
SEALED_INVISIBILITY = NONE,
|
||||
SEALED_COVER = NONE,
|
||||
),
|
||||
CHESTPLATE_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
SEALED_INVISIBILITY = NONE,
|
||||
),
|
||||
GAUNTLETS_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
),
|
||||
BOOTS_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
),
|
||||
),
|
||||
"invisible" = list(
|
||||
HELMET_LAYER = NECK_LAYER,
|
||||
HELMET_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
UNSEALED_INVISIBILITY = NONE,
|
||||
SEALED_INVISIBILITY = NONE,
|
||||
SEALED_COVER = NONE,
|
||||
),
|
||||
CHESTPLATE_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
SEALED_INVISIBILITY = NONE,
|
||||
),
|
||||
GAUNTLETS_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
),
|
||||
BOOTS_FLAGS = list(
|
||||
UNSEALED_CLOTHING = NONE,
|
||||
SEALED_CLOTHING = NONE,
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
/obj/item/mod/control/pre_equipped/exoskeleton
|
||||
desc = "A pre-built GATO mobility exoskeleton, designed to support high weights, favor movement and weight loss."
|
||||
theme = /datum/mod_theme/exoskeleton
|
||||
cell = /obj/item/stock_parts/cell/upgraded/plus
|
||||
|
||||
/datum/design/module/exoskeleton
|
||||
name = "MOD exoskeleton"
|
||||
id = "mod_exoskeleton"
|
||||
materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/plasma = 5000)
|
||||
build_path = /obj/item/mod/control/pre_equipped/exoskeleton
|
||||
desc = "A GATO-designed assistance exoskeleton based on MODsuit tech."
|
||||
build_type = MECHFAB
|
||||
construction_time = 10 SECONDS
|
||||
category = list("MODsuit Chassis", "MODsuit Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/gear/hands/exoskeleton
|
||||
name = "MOD exoskeleton"
|
||||
category = LOADOUT_CATEGORY_HANDS
|
||||
path = /obj/item/mod/control/pre_equipped/exoskeleton
|
||||
cost = 4
|
||||
BIN
GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi
Normal file
BIN
GainStation13/icons/mob/clothing/modsuit/mod_clothing.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
BIN
GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi
Normal file
BIN
GainStation13/icons/obj/clothing/modsuit/mod_clothing.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
BIN
GainStation13/icons/obj/clothing/modsuit/mod_construction.dmi
Normal file
BIN
GainStation13/icons/obj/clothing/modsuit/mod_construction.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
BIN
GainStation13/icons/obj/clothing/modsuit/mod_modules.dmi
Normal file
BIN
GainStation13/icons/obj/clothing/modsuit/mod_modules.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -260,6 +260,7 @@
|
||||
#define TRAIT_LIVESTOCK "livestock"
|
||||
#define TRAIT_NO_FAT_SLOWDOWN "no_fat_slowdown"
|
||||
#define HELPLESSNESS_TRAIT "helplessness"
|
||||
#define TRAIT_NO_HELPLESSNESS "no_helplessness"
|
||||
|
||||
#define TRAIT_RADRESONANCE "radresonance" //FIX THIS LATER
|
||||
#define COMSIG_MICRO_PICKUP_FEET "micro_force_grabbed" //From /datum/element/mob_holder/micro
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
zone = BODY_ZONE_CHEST
|
||||
slot = ORGAN_SLOT_BREASTS
|
||||
size = BREASTS_SIZE_DEF // "c". Refer to the breast_values static list below for the cups associated number values
|
||||
var/max_size = 0 //GS13 Edit
|
||||
fluid_id = /datum/reagent/consumable/milk
|
||||
fluid_rate = MILK_RATE
|
||||
producing = TRUE
|
||||
@@ -115,6 +116,7 @@
|
||||
else
|
||||
color = "#[D.features["breasts_color"]]"
|
||||
size = D.features["breasts_size"]
|
||||
max_size = D.features["max_breasts_size"]
|
||||
starting_size = D.features["breasts_size"]
|
||||
shape = D.features["breasts_shape"]
|
||||
if(!D.features["breasts_producing"])
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
slot = ORGAN_SLOT_BUTT
|
||||
w_class = 3
|
||||
size = 0
|
||||
var/max_size = 0 //GS13 Edit
|
||||
var/size_name = "nonexistent"
|
||||
shape = "Pair" //turn this into a default constant if for some inexplicable reason we get more than one butt type but I doubt it.
|
||||
genital_flags = UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN
|
||||
@@ -84,6 +85,7 @@
|
||||
else
|
||||
color = "#[D.features["butt_color"]]"
|
||||
size = D.features["butt_size"]
|
||||
max_size = D.features["max_butt_size"]
|
||||
starting_size = D.features["butt_size"] // GS13 EDIT
|
||||
prev_size = size
|
||||
toggle_visibility(D.features["butt_visibility"], FALSE)
|
||||
|
||||
@@ -810,6 +810,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Color:</b></a><BR>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["breasts_color"]];'><font color='[color_hex2num(features["breasts_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["breasts_color"]]</font></span> <a href='?_src_=prefs;preference=breasts_color;task=input'>Change</a><br>"
|
||||
dat += "<b>Cup Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_size;task=input'>[features["breasts_size"]]</a>"
|
||||
dat += "<b>Max Fat Breast Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=max_breasts_size;task=input'>[features["max_breasts_size"]]</a>" //GS13 Edit
|
||||
dat += "<b>Breasts Shape:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_shape;task=input'>[features["breasts_shape"]]</a>"
|
||||
dat += "<b>Breasts Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=breasts_visibility;task=input'>[features["breasts_visibility"]]</a>"
|
||||
dat += "<b>Lactates:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_producing'>[features["breasts_producing"] == TRUE ? "Yes" : "No"]</a>"
|
||||
@@ -846,6 +847,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Color:</b></a><BR>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["butt_color"]];'><font color='[color_hex2num(features["butt_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["butt_color"]]</font></span> <a href='?_src_=prefs;preference=butt_color;task=input'>Change</a><br>"
|
||||
dat += "<b>Butt Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=butt_size;task=input'>[features["butt_size"]]</a>"
|
||||
dat += "<b>Max Fat Butt Size:</b><a style='display:block;width:50px' href='?_src_=prefs;preference=max_butt_size;task=input'>[features["max_butt_size"]]</a>" //GS13 Edit
|
||||
dat += "<b>Butt Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=butt_visibility;task=input'>[features["butt_visibility"]]</a>"
|
||||
dat += "</td>"
|
||||
dat += "</td>"
|
||||
@@ -860,6 +862,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
else
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["belly_color"]];'><font color='[color_hex2num(features["belly_color"]) < 200 ? "FFFFFF" : "000000"]'>#[features["belly_color"]]</font></span> <a href='?_src_=prefs;preference=belly_color;task=input'>Change</a><br>"
|
||||
dat += "<b>Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=belly_size;task=input'>[features["belly_size"]]</a>"
|
||||
dat += "<b>Max Fat Belly Size:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=max_belly_size;task=input'>[features["max_belly_size"]]</a>"
|
||||
dat += "<b>Belly Shape:</b> <a style='display:block;width:120px' href='?_src_=prefs;preference=belly_shape;task=input'>[features["belly_shape"]]</a>"
|
||||
dat += "<b>Belly Visibility:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=belly_visibility;task=input'>[features["belly_visibility"]]</a>"
|
||||
// GS13: tweak inflation description
|
||||
@@ -2698,6 +2701,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/new_size = input(user, "Breast Size", "Character Preference") as null|anything in CONFIG_GET(keyed_list/breasts_cups_prefs)
|
||||
if(new_size)
|
||||
features["breasts_size"] = new_size
|
||||
//GS13 Edit
|
||||
if("max_breasts_size")
|
||||
var/new_max = input(user, "Max fat breasts size:\n([0]-[30])", "Character Preference") as num|null
|
||||
if(new_max)
|
||||
features["max_breasts_size"] = clamp(round(new_max), 0, 30)
|
||||
|
||||
if("breasts_shape")
|
||||
var/new_shape
|
||||
@@ -2783,6 +2791,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/new_length = input(user, "Butt size:\n([min_B]-[max_B])", "Character Preference") as num|null
|
||||
if(new_length)
|
||||
features["butt_size"] = clamp(round(new_length), min_B, max_B)
|
||||
//GS13 Edit
|
||||
if("max_butt_size")
|
||||
var/new_max = input(user, "Max fat butt size:\n([0]-[10])", "Character Preference") as num|null
|
||||
if(new_max)
|
||||
features["max_butt_size"] = clamp(round(new_max), 0, 10)
|
||||
|
||||
if("butt_visibility")
|
||||
var/n_vis = input(user, "Butt Visibility", "Character Preference") as null|anything in CONFIG_GET(str_list/safe_visibility_toggles)
|
||||
@@ -2806,6 +2819,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(new_bellysize)
|
||||
features["belly_size"] = clamp(round(new_bellysize), 1, 10)
|
||||
|
||||
if("max_belly_size")
|
||||
var/new_bellymax = input(user, "Max belly fat size :\n(0-10, 0 = none)", "Character Preference") as num|null
|
||||
if(new_bellymax)
|
||||
features["max_belly_size"] = clamp(round(new_bellymax), 0, 10)
|
||||
|
||||
if("belly_shape") //GS13 - belly shapes
|
||||
var/new_shape
|
||||
new_shape = input(user, "Belly Type", "Character Preference") as null|anything in GLOB.belly_shapes_list
|
||||
|
||||
@@ -874,6 +874,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
//breasts features
|
||||
S["feature_has_breasts"] >> features["has_breasts"]
|
||||
S["feature_breasts_size"] >> features["breasts_size"]
|
||||
S["feature_max_breasts_size"] >> features["max_breasts_size"] //GS13 Edit - Max size
|
||||
S["feature_breasts_shape"] >> features["breasts_shape"]
|
||||
S["feature_breasts_color"] >> features["breasts_color"]
|
||||
S["feature_breasts_producing"] >> features["breasts_producing"]
|
||||
@@ -889,10 +890,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["feature_has_butt"] >> features["has_butt"]
|
||||
S["feature_butt_color"] >> features["butt_color"]
|
||||
S["feature_butt_size"] >> features["butt_size"]
|
||||
S["feature_max_butt_size"] >> features["max_butt_size"] //GS13 Edit - Max size
|
||||
S["feature_butt_visibility"] >> features["butt_visibility"]
|
||||
//belly features
|
||||
S["feature_has_belly"] >> features["has_belly"]
|
||||
S["feature_belly_size"] >> features["belly_size"]
|
||||
S["feature_max_belly_size"] >> features["max_belly_size"]
|
||||
S["feature_belly_shape"] >> features["belly_shape"]
|
||||
S["feature_belly_color"] >> features["belly_color"]
|
||||
S["feature_hide_belly"] >> features["hide_belly"]
|
||||
@@ -1291,6 +1294,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
|
||||
WRITE_FILE(S["feature_has_breasts"], features["has_breasts"])
|
||||
WRITE_FILE(S["feature_breasts_size"], features["breasts_size"])
|
||||
WRITE_FILE(S["feature_max_breasts_size"], features["max_breasts_size"]) //GS13 Edit - Max size
|
||||
WRITE_FILE(S["feature_breasts_shape"], features["breasts_shape"])
|
||||
WRITE_FILE(S["feature_breasts_color"], features["breasts_color"])
|
||||
WRITE_FILE(S["feature_breasts_producing"], features["breasts_producing"])
|
||||
@@ -1306,10 +1310,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["feature_has_butt"], features["has_butt"])
|
||||
WRITE_FILE(S["feature_butt_color"], features["butt_color"])
|
||||
WRITE_FILE(S["feature_butt_size"], features["butt_size"])
|
||||
WRITE_FILE(S["feature_max_butt_size"], features["max_butt_size"]) //GS13 Edit - Max size
|
||||
WRITE_FILE(S["feature_butt_visibility"], features["butt_visibility"])
|
||||
//belly features
|
||||
WRITE_FILE(S["feature_has_belly"], features["has_belly"])
|
||||
WRITE_FILE(S["feature_belly_size"], features["belly_size"])
|
||||
WRITE_FILE(S["feature_max_belly_size"], features["max_belly_size"])
|
||||
WRITE_FILE(S["feature_belly_shape"], features["belly_shape"])
|
||||
WRITE_FILE(S["feature_belly_color"], features["belly_color"])
|
||||
WRITE_FILE(S["feature_hide_belly"], features["hide_belly"])
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
"mod_welding",
|
||||
"mod_mouthhole",
|
||||
"mod_flashlight",
|
||||
//GS13 Edit
|
||||
"mod_hydraulic",
|
||||
"mod_calovoltaic",
|
||||
"mod_exoskeleton",
|
||||
)
|
||||
|
||||
/datum/techweb_node/mod_advanced
|
||||
|
||||
@@ -4055,6 +4055,7 @@
|
||||
#include "GainStation13\code\modules\mob\living\nutribot.dm"
|
||||
#include "GainStation13\code\modules\mob\living\species.dm"
|
||||
#include "GainStation13\code\modules\mob\living\vore\eating\trasheat_lists.dm"
|
||||
#include "GainStation13\code\modules\mod\modules\modules_fat.dm"
|
||||
#include "GainStation13\code\modules\reagents\chemistry\reagents\consumable_reagents.dm"
|
||||
#include "GainStation13\code\modules\reagents\chemistry\reagents\dwarverndrinks.dm"
|
||||
#include "GainStation13\code\modules\reagents\chemistry\reagents\fatty_drinks.dm"
|
||||
|
||||
Reference in New Issue
Block a user