Merge pull request #13 from AlManiak/feature/small-bits-and-bob

Feature/small bits and bob
This commit is contained in:
sheepishgoat
2024-10-29 14:58:51 -04:00
committed by GitHub
20 changed files with 199 additions and 28 deletions
@@ -5,3 +5,9 @@
/datum/mood_event/fat_good
description = "<span class='nicegreen'><B>I'm so fat!</B></span>\n"
mood_change = 4
//GS13 Port
/datum/mood_event/lewd_headpat
description = "<span class='nicegreen'>I love headpats so much!</span>\n"
mood_change = 3
timeout = 2 MINUTES
+31
View File
@@ -94,3 +94,34 @@
if(H)
var/datum/species/species = H.dna.species
species.disliked_food = initial(species.disliked_food)
//GS13 Port
//Port from Shadow
/datum/quirk/donotclone
name = "DNC"
desc = "You have filed a Do Not Clone order, stating that you do not wish to be cloned. You can still be revived by other means."
value = -2
mob_trait = TRAIT_NEVER_CLONE
medical_record_text = "Patient has a DNC (Do not clone) order on file, and cannot be cloned as a result."
/datum/quirk/inheat
name = "In Heat"
desc = "Your system burns with the desire to be bred, your body will betray you and alert others' to your desire when examining you. Satisfying your lust will make you happy, but ignoring it may cause you to become sad and needy."
value = 0
mob_trait = TRAIT_HEAT
gain_text = "<span class='notice'>You body burns with the desire to be bred.</span>"
lose_text = "<span class='notice'>You feel more in control of your body and thoughts.</span>"
/datum/quirk/headpat_slut
name = "Headpat Slut"
desc = "You like headpats, alot, maybe even a little bit too much. Headpats give you a bigger mood boost and cause arousal"
mob_trait = TRAIT_HEADPAT_SLUT
value = 0
medical_record_text = "Patient seems overly affectionate."
/datum/quirk/headpat_hater
name = "Distant"
desc = "You don't seem to show much care for being touched. Whether it's because you're reserved or due to self control, you won't wag your tail outside of your own control should you possess one."
mob_trait = TRAIT_DISTANT
value = 0
medical_record_text = "Patient cares little with or dislikes being touched."
@@ -5,3 +5,43 @@
materials = list(/datum/material/iron = 1000, /datum/material/glass = 500)
build_path = /obj/item/assembly/infra/fat
category = list("initial", "Misc")
/datum/design/small_cup
name = "Small Gulp Cup"
id = "Small_Gulp"
build_type = AUTOLATHE
materials = list(/datum/material/plastic=200)
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/small
category = list("initial","Dinnerware")
/datum/design/medium_cup
name = "Medium Gulp Cup"
id = "Medium_Gulp"
build_type = AUTOLATHE
materials = list(/datum/material/plastic=300)
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/medium
category = list("initial","Dinnerware")
/datum/design/small_cup
name = "Big Gulp Cup"
id = "Big_Gulp"
build_type = AUTOLATHE
materials = list(/datum/material/plastic=500)
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/big
category = list("initial","Dinnerware")
/datum/design/extra_big_cup
name = "Extra Big Gulp Cup"
id = "Extra_Big_Gulp"
build_type = AUTOLATHE
materials = list(/datum/material/plastic=600)
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big
category = list("initial","Dinnerware")
/datum/design/super_extra_big_cup
name = "Super Extra Big Gulp Cup"
id = "Super_Extra_Big_Gulp"
build_type = AUTOLATHE
materials = list(/datum/material/plastic=1000)
build_path = /obj/item/reagent_containers/food/drinks/flask/paper_cup/super_extra_big
category = list("initial","Dinnerware")
@@ -171,3 +171,55 @@
icon = 'icons/obj/module.dmi'
icon_state = "datadisk0"
desc = "A dusty disk, desconstruction will be needed to recover data."
//GS 13 Port - Big gulps in all sizes
/obj/item/reagent_containers/food/drinks/flask/paper_cup
name = "paper cup"
icon = 'GainStation13/icons/obj/paper_cups.dmi'
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
volume = 50
reagent_flags = OPENCONTAINER
spillable = TRUE
container_HP = 5
pickup_sound = 'sound/items/handling/cardboardbox_pickup.ogg'
drop_sound = 'sound/items/handling/cardboardbox_drop.ogg'
/obj/item/reagent_containers/food/drinks/flask/paper_cup/small
name = "Small Gulp Cup"
desc = "A paper cup. It can hold up to 50 units. It's not very strong."
icon_state = "small"
custom_materials = list(/datum/material/plastic=200)
w_class = WEIGHT_CLASS_SMALL
/obj/item/reagent_containers/food/drinks/flask/paper_cup/medium
name = "Medium Gulp Cup"
desc = "It's a paper cup, but you wouldn't call it 'medium' though. It can hold up to 75 units. It's not very strong."
icon_state = "medium"
volume = 75
custom_materials = list(/datum/material/plastic=300)
w_class = WEIGHT_CLASS_SMALL
/obj/item/reagent_containers/food/drinks/flask/paper_cup/big
name = "Big Gulp Cup"
desc = "A huge paper cup, a normal person would struggle to drink it all in one sitting. It can hold up to 120 units. It's not very strong."
icon_state = "big"
volume = 120
custom_materials = list(/datum/material/plastic=500)
w_class = WEIGHT_CLASS_NORMAL
/obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big
name = "Extra Big Gulp Cup"
desc = "A comically large paper cup. It can hold up to 160 units. It's not very strong."
icon_state = "extra_big"
volume = 160
custom_materials = list(/datum/material/plastic=600)
w_class = WEIGHT_CLASS_BULKY
/obj/item/reagent_containers/food/drinks/flask/paper_cup/super_extra_big
name = "Super Extra Big Gulp Cup"
desc = "Its called a paper 'cup', but it looks more like an oversized bucket to you. It can hold up to 250 units. It's not very strong."
icon_state = "super_extra_big"
volume = 250
custom_materials = list(/datum/material/plastic=1000)
w_class = WEIGHT_CLASS_HUGE
+7
View File
@@ -289,6 +289,13 @@
#define TRAIT_WATER_SPONGE "water_sponge"
#define TRAIT_FATROUSAL "fatrousal"
//GS13 Port
#define TRAIT_HEADPAT_SLUT "headpat_slut"
#define TRAIT_NEVER_CLONE "donotclone"
#define TRAIT_HEAT "heat"
#define TRAIT_DISTANT "headpat_hater"
#define TRAIT_CUM_PLUS "cum_plus"
// mobility flag traits
// IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it)
// BUT FOR NOW, THESE ARE HOOKED TO DO update_mobility() VIA COMSIG IN living_mobility.dm
@@ -54,7 +54,7 @@
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
mid_length = 2
end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg'
volume = 15
volume = 5
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -65,12 +65,12 @@
volume = 50
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
/datum/looping_sound/deep_fryer
mid_length = 2
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
volume = 30
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/looping_sound/microwave
+1 -1
View File
@@ -190,7 +190,7 @@
// Get targets
var/obj/item/organ/eyes/old_eyes = quirk_holder.getorganslot(ORGAN_SLOT_EYES)
var/obj/item/organ/eyes/robotic/glow/new_eyes = new
// Replace eyes
qdel(old_eyes)
new_eyes.Insert(quirk_holder)
+1
View File
@@ -162,6 +162,7 @@
gain_text = "<span class='notice'>You feel like munching on a can of soda.</span>"
lose_text = "<span class='notice'>You no longer feel like you should be eating trash.</span>"
mob_trait = TRAIT_TRASHCAN
medical_record_text = "Patient has been observed eating inedible garbage."
// GS13 EDIT START
/datum/quirk/trashcan/add()
+6
View File
@@ -410,6 +410,12 @@
if(isbrain(mob_occupant))
dna = B.stored_dna
//GS13 Port - DNC
if(HAS_TRAIT(mob_occupant, TRAIT_NEVER_CLONE))
scantemp = "Subject has an active DNC record on file. Unable to clone."
playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0)
return
if(!can_scan(dna, mob_occupant, FALSE, has_bank_account))
return
+1
View File
@@ -6,6 +6,7 @@
zone = BODY_ZONE_PRECISE_GROIN
slot = ORGAN_SLOT_TESTICLES
size = BALLS_SIZE_MIN
fluid_max_volume = 10
arousal_verb = "Your balls ache a little"
unarousal_verb = "Your balls finally stop aching, again"
linked_organ_slot = ORGAN_SLOT_PENIS
+6
View File
@@ -3720,6 +3720,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(character.custom_body_size)
character.resize(character.custom_body_size)
//GS13 Port - Add back arousal
if(NOAROUSAL in pref_species.species_traits)
character.canbearoused = FALSE
else
character.canbearoused = arousable
//speech stuff
if(custom_tongue != "default")
var/new_tongue = GLOB.roundstart_tongues[custom_tongue]
@@ -131,4 +131,3 @@
reagents.reaction(target, TOUCH)
reagents.clear_reagents()
return
@@ -296,20 +296,40 @@
else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD)
var/datum/species/S
S = dna.species
if(ishuman(src))
S = dna.species
var/mob/living/carbon/human/H = src
//GS13 Port - Headpat slut stuff
if(HAS_TRAIT(H, TRAIT_DISTANT)) //No mood buff since you're not really liking it.
M.visible_message("<span class='notice'>[M] gives [H] a pat on the head to make [p_them()] feel better! They seem annoyed...</span>", \
"<span class='warning'>You give [H] a pat on the head to make [p_them()] feel better! They seem annoyed as they're now glaring towards you...</span>")
H.adjustArousal(-5) //Why are you touching me?
if(prob(5))
M.visible_message("<span class='warning'>[H] quickly twists [M]\'s arm!</span>", \
"<span class='boldwarning'>Your arm gets twisted in [H]\'s grasp. Maybe you should have taken the hint...</span>")
playsound(get_turf(H), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
M.emote("scream")
M.dropItemToGround(M.get_active_held_item())
M.apply_damage(50, STAMINA, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
M.Knockdown(60)//STOP TOUCHING ME! For those spam head pat individuals
else if(HAS_TRAIT(H, TRAIT_HEADPAT_SLUT))
M.visible_message("<span class='notice'>[M] gives [H] a pat on the head to make [p_them()] feel better! They seem incredibly pleased!</span>", \
"<span class='notice'>You give [H] a pat on the head to make [p_them()] feel better! They seem to like it way too much</span>")
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "lewd_headpat", /datum/mood_event/lewd_headpat)
H.adjustArousal(5) //Headpats are hot af
else
M.visible_message("<span class='notice'>[M] gives [H] a pat on the head to make [p_them()] feel better!</span>", \
"<span class='notice'>You give [H] a pat on the head to make [p_them()] feel better!</span>")
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat)
M.visible_message("<span class='notice'>[M] gives [src] a pat on the head to make [p_them()] feel better!</span>", \
"<span class='notice'>You give [src] a pat on the head to make [p_them()] feel better!</span>", target = src,
target_message = "<span class='notice'>[M] gives you a pat on the head to make you feel better!</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat)
friendly_check = TRUE
if(!(client?.prefs.cit_toggles & NO_AUTO_WAG))
if(S?.can_wag_tail(src) && !dna.species.is_wagging_tail())
var/static/list/many_tails = list("tail_human", "tail_lizard", "mam_tail")
for(var/T in many_tails)
if(S.mutant_bodyparts[T] && dna.features[T] != "None")
emote("wag")
if(!(HAS_TRAIT(src, TRAIT_DISTANT)))
if(!(client?.prefs.cit_toggles & NO_AUTO_WAG))
if(S?.can_wag_tail(src) && !dna.species.is_wagging_tail())
var/static/list/many_tails = list("tail_human", "tail_lizard", "mam_tail")
for(var/T in many_tails)
if(S.mutant_bodyparts[T] && dna.features[T] != "None")
emote("wag")
else if(check_zone(M.zone_selected) == BODY_ZONE_R_ARM || check_zone(M.zone_selected) == BODY_ZONE_L_ARM)
if((pulling == M) && (grab_state == GRAB_PASSIVE))
@@ -107,6 +107,11 @@
if(wear_id)
. += "[t_He] [t_is] wearing [wear_id.get_examine_string(user)]."
//GS13 Port
//Heat Detection
//if(breedable)
if(HAS_TRAIT(src, TRAIT_HEAT))
. += "<span class='love'>[t_He] [t_is] currently in heat.</span>"
//Status effects
var/effects_exam = status_effect_examines()
if(!isnull(effects_exam))
@@ -546,13 +546,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species)
//GS13 Port - Add back arousal
if(NOAROUSAL in species_traits)
C.canbearoused = FALSE
else
if(C.client)
C.canbearoused = C.client?.prefs?.arousable
/datum/species/proc/update_species_slowdown(mob/living/carbon/human/H)
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod)
+5 -1
View File
@@ -35,7 +35,11 @@
/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 8,
/obj/item/reagent_containers/food/drinks/ice = 10,
/obj/item/reagent_containers/food/drinks/flask = 3,
/obj/item/reagent_containers/food/drinks/beer = 6)
/obj/item/reagent_containers/food/drinks/beer = 6,
/obj/item/reagent_containers/food/drinks/flask/paper_cup/small = 20,
/obj/item/reagent_containers/food/drinks/flask/paper_cup/medium = 20,
/obj/item/reagent_containers/food/drinks/flask/paper_cup/big = 20,
/obj/item/reagent_containers/food/drinks/flask/paper_cup/extra_big = 15)
contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12,
/obj/item/reagent_containers/food/drinks/bottle/fernet = 5)
premium = list(/obj/item/reagent_containers/glass/bottle/ethanol = 4,
+3 -4
View File
@@ -5,7 +5,6 @@
name = "Extra productive genitals"
desc = "Your lower bits produce more and hold more than normal."
value = 0
category = CATEGORY_SEXUAL
mob_trait = TRAIT_CUM_PLUS
gain_text = "<span class='notice'>You feel pressure in your groin.</span>"
lose_text = "<span class='notice'>You feel a weight lifted from your groin.</span>"
@@ -16,14 +15,14 @@
if(M?.getorganslot("testicles"))
var/obj/item/organ/genital/testicles/T = M?.getorganslot("testicles")
T?.fluid_mult = 1.5 //Base is 1
T?.fluid_max_volume = 5
T?.fluid_max_volume = 20
/datum/quirk/cum_plus/remove()
var/mob/living/carbon/M = quirk_holder
if(quirk_holder.getorganslot("testicles"))
var/obj/item/organ/genital/testicles/T = M?.getorganslot("testicles")
T?.fluid_mult = 1 //Base is 1
T?.fluid_max_volume = 3 //Base is 3
T?.fluid_max_volume = 10 //Base is 3
/datum/quirk/cum_plus/on_process()
var/mob/living/carbon/M = quirk_holder //If you get balls later, then this will still proc
@@ -31,4 +30,4 @@
var/obj/item/organ/genital/testicles/T = M?.getorganslot("testicles")
if(T?.fluid_max_volume <= 5 || T?.fluid_mult <= 0.2) //INVALID EXPRESSION?
T?.fluid_mult = 1.5 //Base is 0.133
T?.fluid_max_volume = 5
T?.fluid_max_volume = 20
Binary file not shown.
Binary file not shown.
+1
View File
@@ -4077,6 +4077,7 @@
#include "hyperstation\code\modules\resize\sizechems.dm"
#include "hyperstation\code\modules\resize\sizegun.dm"
#include "hyperstation\code\modules\surgery\organs\augments_arms.dm"
#include "hyperstation\code\modules\traits.dm"
#include "hyperstation\code\obj\ashtray.dm"
#include "hyperstation\code\obj\decal.dm"
#include "hyperstation\code\obj\fleshlight.dm"