mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-08 22:46:52 +01:00
Blueberry Virus
Added "infectious" blueberry juice, which makes you swell depending on how much you have inside of you (also turns you blue). While you have some inside, clicking on yourself with a beaker will juice up to 10 out of you Added this juice as an option for genitals fluid Added Berrification virus, which makes you produce juice. It is a level 7 virus. It can be cured through normal virology means or by getting all infected juice out of the person Added a "Blueberry Inflation" preference (juice will disappear when inside you, virus will not make you produce)
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
/datum/symptom/berry
|
||||
name = "Berrification"
|
||||
desc = "The virus causes the host's biology to overflow with a blue substance. Infection ends if the substance is completely removed from their body, besides ordinary cures."
|
||||
stealth = -5
|
||||
resistance = -4
|
||||
stage_speed = 1
|
||||
transmittable = 6
|
||||
level = 7
|
||||
severity = 5
|
||||
base_message_chance = 100
|
||||
symptom_delay_min = 15
|
||||
symptom_delay_max = 45
|
||||
threshold_desc = list(
|
||||
"Stage Speed" = "Increases the rate of liquid production.",
|
||||
)
|
||||
var/datum/reagent/infection_reagent = /datum/reagent/berry_juice_infection
|
||||
|
||||
/datum/symptom/berry/Start(datum/disease/advance/A)
|
||||
if(!..())
|
||||
return
|
||||
if(A.affected_mob?.client?.prefs?.blueberry_inflation)
|
||||
A.affected_mob.reagents.add_reagent(infection_reagent, max(1, A.properties["stage_rate"]) * 10)
|
||||
..()
|
||||
|
||||
/datum/symptom/berry/Activate(datum/disease/advance/A)
|
||||
if(!..())
|
||||
return
|
||||
var/mob/living/carbon/M = A.affected_mob
|
||||
if(!(M?.client?.prefs?.blueberry_inflation))
|
||||
return
|
||||
if(M.reagents.get_reagent_amount(infection_reagent) <= 0)
|
||||
A.remove_disease()
|
||||
switch(A.stage)
|
||||
if(1, 2, 3, 4)
|
||||
if(prob(base_message_chance))
|
||||
to_chat(M, "<span class='warning'>[pick("You feel oddly full...", "Your stomach churns...", "You hear a gurgle...", "You taste berries...")]</span>")
|
||||
else
|
||||
to_chat(M, "<span class='warning'><i>[pick("A deep slosh comes from inside you...", "Your mind feels so light...", "You think blue really suits you...", "Your skin feels so tight...")]</i></span>")
|
||||
M.reagents.add_reagent(infection_reagent, max(A.properties["stage_rate"], 1))
|
||||
|
||||
/datum/reagent/berry_juice_infection
|
||||
name = "Blueberry Juice"
|
||||
description = "Totally infectious."
|
||||
reagent_state = LIQUID
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
color = "#0004ff"
|
||||
var/picked_color
|
||||
var/list/random_color_list = list("#0058db","#5d00c7","#0004ff","#0057e7")
|
||||
taste_description = "blueberry pie"
|
||||
var/no_mob_color = FALSE
|
||||
value = 10 //it sells. Make that berry factory
|
||||
|
||||
/datum/reagent/berry_juice_infection/on_mob_add(mob/living/L, amount)
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/affected_mob = L
|
||||
if(!(affected_mob?.client?.prefs?.blueberry_inflation))
|
||||
affected_mob.reagents.remove_reagent(/datum/reagent/berry_juice_infection, volume)
|
||||
return
|
||||
picked_color = pick(random_color_list)
|
||||
affected_mob.fat_hide(affected_mob.fatness_real + ((3 * (volume * volume))/50), src)
|
||||
else
|
||||
L.reagents.remove_reagent(/datum/reagent/berry_juice_infection, volume)
|
||||
..()
|
||||
|
||||
/datum/reagent/berry_juice_infection/on_mob_life(mob/living/carbon/M)
|
||||
if(!(M?.client?.prefs?.blueberry_inflation))
|
||||
M.reagents.remove_reagent(/datum/reagent/berry_juice_infection, volume)
|
||||
return
|
||||
if(!no_mob_color)
|
||||
M.add_atom_colour(picked_color, WASHABLE_COLOUR_PRIORITY)
|
||||
M.fat_hide(M.fatness_real + ((3 * (volume * volume))/50), src)
|
||||
M.adjust_fatness(1, FATTENING_TYPE_CHEM)
|
||||
..()
|
||||
|
||||
/datum/reagent/berry_juice_infection/on_mob_delete(mob/living/L)
|
||||
if(!iscarbon(L))
|
||||
return
|
||||
var/mob/living/carbon/C = L
|
||||
C.fat_show()
|
||||
|
||||
/obj/item/reagent_containers/glass/attack(mob/M, mob/user, obj/target)
|
||||
if(M.reagents.get_reagent_amount(/datum/reagent/berry_juice_infection) > 0 && (reagents.total_volume + min(amount_per_transfer_from_this, 10)) <= volume)
|
||||
reagents.add_reagent(/datum/reagent/berry_juice_infection, min(10, amount_per_transfer_from_this))
|
||||
M.reagents.remove_reagent(/datum/reagent/berry_juice_infection, min(10, amount_per_transfer_from_this))
|
||||
if(M != user)
|
||||
to_chat(user, "<span class='warning'>You juice [M.name]...</span>")
|
||||
to_chat(M, "<span class='warning'>[user.name] juices you...</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You get some juice out of you...</span>")
|
||||
return
|
||||
..()
|
||||
@@ -13,6 +13,8 @@
|
||||
var/weight_gain_magic = FALSE
|
||||
///Weight gain from viruses
|
||||
var/weight_gain_viruses = FALSE
|
||||
///Blueberry Inflation
|
||||
var/blueberry_inflation = FALSE
|
||||
///Extreme weight gain
|
||||
var/weight_gain_extreme = FALSE
|
||||
///stuckage
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
|
||||
GLOB.breasts_size_list = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
|
||||
GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment")
|
||||
GLOB.genital_fluids_list = list ("Milk", "Water", "Semen", "Femcum", "Honey", "Strawberry Milk", "Nutriment", "Berry Juice")
|
||||
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")
|
||||
for(var/K in GLOB.breasts_shapes_list)
|
||||
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]
|
||||
|
||||
@@ -895,6 +895,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Honey</a>"
|
||||
if(/datum/reagent/consumable/nutriment)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Nutriment</a>"
|
||||
if(/datum/reagent/berry_juice_infection)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Berry Juice</a>"
|
||||
else
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Nothing?</a>"
|
||||
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
|
||||
@@ -944,6 +946,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Strawberry Milk</a>"
|
||||
if(/datum/reagent/consumable/nutriment)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Nutriment</a>"
|
||||
if(/datum/reagent/berry_juice_infection)
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=balls_fluid;task=input'>Berry Juice</a>"
|
||||
else
|
||||
dat += "<a style='display:block;width:50px' href='?_src_=prefs;preference=breasts_fluid;task=input'>Nothing?</a>"
|
||||
//This else is a safeguard for errors, and if it happened, they wouldn't be able to change this pref,
|
||||
@@ -1059,6 +1063,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Weight Gain - Weapons:</b><a href='?_src_=prefs;preference=weight_gain_weapons'>[weight_gain_weapons == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Weight Gain - Magic:</b><a href='?_src_=prefs;preference=weight_gain_magic'>[weight_gain_magic == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Weight Gain - Viruses:</b><a href='?_src_=prefs;preference=weight_gain_viruses'>[weight_gain_viruses == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
dat += "<b>Blueberry Inflation:</b><a href='?_src_=prefs;preference=blueberry_inflation'>[blueberry_inflation == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
|
||||
dat += "<h2>GS13 Gameplay Preferences</h2>"
|
||||
dat += "<b>Stuckage (weight results in getting stuck in doors):</b><a href='?_src_=prefs;preference=stuckage'>[stuckage == TRUE ? "Enabled" : "Disabled"]</a><BR>"
|
||||
@@ -2391,6 +2396,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
features["balls_fluid"] = /datum/reagent/consumable/pinkmilk
|
||||
if("Nutriment")
|
||||
features["balls_fluid"] = /datum/reagent/consumable/nutriment
|
||||
if("Berry Juice")
|
||||
features["balls_fluid"] = /datum/reagent/berry_juice_infection
|
||||
|
||||
if("egg_size")
|
||||
var/new_size
|
||||
@@ -2438,6 +2445,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
features["breasts_fluid"] = /datum/reagent/consumable/pinkmilk
|
||||
if("Nutriment")
|
||||
features["breasts_fluid"] = /datum/reagent/consumable/nutriment
|
||||
if("Berry Juice")
|
||||
features["breasts_fluid"] = /datum/reagent/berry_juice_infection
|
||||
|
||||
if("breasts_color")
|
||||
var/new_breasts_color = input(user, "Breast Color:", "Character Preference", "#"+features["breasts_color"]) as color|null
|
||||
@@ -2633,6 +2642,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
noncon_weight_gain = !noncon_weight_gain
|
||||
if("stuckage")
|
||||
stuckage = !stuckage
|
||||
if("blueberry_inflation")
|
||||
blueberry_inflation = !blueberry_inflation
|
||||
if("max_fatness")
|
||||
var/pickedweight = input(user,
|
||||
"Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit",
|
||||
|
||||
@@ -159,6 +159,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["noncon_weight_gain"] >> noncon_weight_gain
|
||||
S["max_weight"] >> max_weight
|
||||
S["stuckage"] >> stuckage
|
||||
S["blueberry_inflation"] >> blueberry_inflation
|
||||
|
||||
|
||||
//try to fix any outdated data if necessfary
|
||||
@@ -300,7 +301,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain)
|
||||
WRITE_FILE(S["max_weight"], max_weight)
|
||||
WRITE_FILE(S["stuckage"], stuckage)
|
||||
|
||||
WRITE_FILE(S["blueberry_inflation"], blueberry_inflation)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
@@ -3077,6 +3077,7 @@
|
||||
#include "GainStation13\code\clothing\head.dm"
|
||||
#include "GainStation13\code\clothing\suits.dm"
|
||||
#include "GainStation13\code\datums\components\fattening_door.dm"
|
||||
#include "GainStation13\code\datums\diseases\advance\symptoms\berry.dm"
|
||||
#include "GainStation13\code\datums\mutations\fatfang.dm"
|
||||
#include "GainStation13\code\datums\status_effects\fatstun.dm"
|
||||
#include "GainStation13\code\game\lore_papers.dm"
|
||||
|
||||
Reference in New Issue
Block a user