Merge pull request #13 from AlManiak/feature/small-bits-and-bob
Feature/small bits and bob
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user