Merge branch 'master' into plant-adding

This commit is contained in:
DragonTrance
2021-02-21 12:06:48 -07:00
committed by GitHub
246 changed files with 4270 additions and 3557 deletions
@@ -389,7 +389,10 @@
if(!arrivals_docked)
var/obj/screen/splash/Spl = new(character.client, TRUE)
Spl.Fade(TRUE)
character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25)
if(!prob(1))
character.playsound_local(get_turf(character), 'sound/voice/Approaching.ogg', 25)
else
character.playsound_local(get_turf(character), 'sound/voice/boat.ogg', 35) //boatbomber easter egg. (love your videos man, thanks for visiting!)
character.update_parallax_teleport()
@@ -589,12 +592,9 @@
H.name = real_name
//h13 assign your characters custom height.
if (H.custom_body_size) //Do they have it set?
//H.size_multiplier = (max(min( round((H.custom_body_size)), MAX_BODYSIZE),MIN_BODYSIZE)* 0.01) //Old method
H.resize(H.custom_body_size * 0.01)
//h13 give your starting impregchance (30%)
if (H.breedable == TRUE)
H.impregchance = 30
. = H
new_character = .
if(transfer_after)
@@ -470,7 +470,17 @@
/datum/sprite_accessory/hair/quotey
name = "Tail Hair"
icon_state = "hair_tailhair"
ckeys_allowed = list("quotefox")
/datum/sprite_accessory/hair/mommy
name = "Hairfre"
name = "(Hyper) Hairfre"
icon_state = "hair_hairfre"
/datum/sprite_accessory/hair/sidehair
name = "(Hyper) Side Hair"
icon_state = "hair_tailhair2"
ckeys_allowed = list("quotefox")
/datum/sprite_accessory/hair/curtains
name = "(Hyper) Curtains"
icon_state = "hair_curtains"
@@ -85,6 +85,10 @@
icon_state = "socks_short"
has_color = TRUE
/datum/sprite_accessory/underwear/socks/stockings_black
name = "Stockings - Black"
icon_state = "stockings_black"
/datum/sprite_accessory/underwear/socks/stockings_blue
name = "Stockings - Blue"
icon_state = "stockings_blue"
@@ -343,3 +343,10 @@
/datum/sprite_accessory/underwear/top/cowboyshirt/red/s
name = "Cowboy Shirt Shortsleeved Red"
icon_state = "cowboyshirt_reds"
/datum/sprite_accessory/underwear/top/arms
name = "Arm Warmers"
icon_state = "armwarmer"
has_color = TRUE
gender = FEMALE
+3 -1
View File
@@ -35,7 +35,7 @@
if(bleed_rate < 0)
bleed_rate = 0
if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here.
return
@@ -44,6 +44,7 @@
//Blood regeneration if there is some space
if(blood_volume < (BLOOD_VOLUME_NORMAL * blood_ratio) && !HAS_TRAIT(src, TRAIT_NOHUNGER))
var/nutrition_ratio = 0
var/thirst_ratio = 1
switch(nutrition)
if(0 to NUTRITION_LEVEL_STARVING)
nutrition_ratio = 0.2
@@ -60,6 +61,7 @@
if(satiety > 80)
nutrition_ratio *= 1.25
nutrition = max(0, nutrition - nutrition_ratio * HUNGER_FACTOR)
thirst = max(0, thirst - thirst_ratio * THIRST_FACTOR)
blood_volume = min((BLOOD_VOLUME_NORMAL * blood_ratio), blood_volume + 0.5 * nutrition_ratio)
//Effects of bloodloss
@@ -286,7 +286,19 @@
var/mob/living/carbon/human/H = src
var/datum/species/pref_species = H.dna.species
if(HAS_TRAIT(H, TRAIT_HEADPAT_SLUT))
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.adjustArousalLoss(-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(src, COMSIG_ADD_MOOD_EVENT, "lewd_headpat", /datum/mood_event/lewd_headpat)
@@ -302,7 +314,10 @@
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M)
else if (mood.sanity >= SANITY_DISTURBED)
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/betterhug, M)
if(H.dna.species.can_wag_tail(H))
if(HAS_TRAIT(H, TRAIT_DISTANT))
return
else if(H.dna.species.can_wag_tail(H))
if("tail_human" in pref_species.default_features)
if(H.dna.features["tail_human"] == "None")
return
@@ -40,6 +40,8 @@
if(HAS_TRAIT(src, TRAIT_NOHUNGER))
nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous
else if(nutrition && stat != DEAD)
nutrition -= HUNGER_FACTOR/10
nutrition -= HUNGER_FACTOR/12
thirst -= THIRST_FACTOR/12
if(m_intent == MOVE_INTENT_RUN)
nutrition -= HUNGER_FACTOR/10
nutrition -= HUNGER_FACTOR/5
thirst -= THIRST_FACTOR/5 //running around depleats thirst more so.
@@ -100,6 +100,7 @@
stat("Unique Identity:", "[dna.unique_enzymes]")
stat("Overall Status:", "[stat > 1 ? "dead" : "[health]% healthy"]")
stat("Nutrition Status:", "[nutrition]")
stat("Hydration Status:", "[thirst]")
stat("Oxygen Loss:", "[getOxyLoss()]")
stat("Toxin Levels:", "[getToxLoss()]")
stat("Burn Severity:", "[getFireLoss()]")
@@ -68,5 +68,5 @@
var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot))
var/lastpuke = 0
var/last_fire_update
var/account_id
can_be_held = "micro"
@@ -132,6 +132,7 @@
to_chat(src, "<span class='warning'>Use of ranged weaponry would bring dishonor to the clan.</span>")
return FALSE
/mob/living/carbon/human/can_see_reagents()
. = ..()
if(.) //No need to run through all of this if it's already true.
@@ -1243,6 +1243,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if (H.nutrition > 0 && H.stat != DEAD && !HAS_TRAIT(H, TRAIT_NOHUNGER))
// THEY HUNGER
var/hunger_rate = HUNGER_FACTOR
var/thirst_rate = THIRST_FACTOR
var/datum/component/mood/mood = H.GetComponent(/datum/component/mood)
if(mood && mood.sanity > SANITY_DISTURBED)
hunger_rate *= max(0.5, 1 - 0.002 * mood.sanity) //0.85 to 0.75
@@ -1261,6 +1262,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
hunger_rate = 3 * HUNGER_FACTOR
hunger_rate *= H.physiology.hunger_mod
H.nutrition = max(0, H.nutrition - hunger_rate)
H.thirst = max(0, H.thirst - thirst_rate)
if (H.nutrition > NUTRITION_LEVEL_FULL)
@@ -1296,6 +1298,14 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(0 to NUTRITION_LEVEL_STARVING)
H.throw_alert("nutrition", /obj/screen/alert/starving)
switch(H.thirst)
if(NUTRITION_LEVEL_HUNGRY to INFINITY)
H.clear_alert("thirst")
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
H.throw_alert("thirst", /obj/screen/alert/thirsty)
if(0 to NUTRITION_LEVEL_STARVING)
H.throw_alert("thirst", /obj/screen/alert/dehydrated)
/datum/species/proc/update_health_hud(mob/living/carbon/human/H)
return 0
@@ -26,9 +26,6 @@
use_skintones = FALSE
var/datum/martial_art/mushpunch/mush
/datum/species/mush/after_equip_job(datum/job/J, mob/living/carbon/human/H)
H.grant_language(/datum/language/mushroom) //pomf pomf
/datum/species/mush/on_species_gain(mob/living/carbon/C, datum/species/old_species)
. = ..()
if(ishuman(C))
+23 -2
View File
@@ -78,7 +78,7 @@
if(HAS_TRAIT(B, TRAIT_CHOKE_SLUT))
B.adjustArousalLoss(7)
if (B.getArousalLoss() >= 100 && ishuman(B) && B.has_dna())
B.mob_climax(forced_climax=TRUE)
B.mob_climax(forced_climax=TRUE)
else
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation)
else
@@ -285,6 +285,27 @@
var/nitryl_partialpressure = (breath_gases[/datum/gas/nitryl]/breath.total_moles())*breath_pressure
adjustFireLoss(nitryl_partialpressure/4)
//PHEROMONE
if(breath_gases[/datum/gas/pheromone])
var/pheromone_partialpressure = (breath_gases[/datum/gas/pheromone]/breath.total_moles())*breath_pressure
if(pheromone_partialpressure > MINIMUM_MOLES_DELTA_TO_MOVE)
//pheromone side effects
switch(pheromone_partialpressure)
if(1 to 5)
// At lower pp, give out a little warning
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "smell")
if(prob(5))
to_chat(src, "<span class='notice'>There is an entracing smell in the air.</span>")
if(5 to 20)
//At somewhat higher pp, warning becomes more obvious
if(prob(15))
to_chat(src, "<span class='warning'>You smell something enticing inside this room.</span>")
if(15 to INFINITY)
//Small chance to vomit. By now, people have internals on anyway
if(prob(5))
to_chat(src, "<span class='warning'>The enticing smell is unbearable!</span>")
//MIASMA
if(breath_gases[/datum/gas/miasma])
var/miasma_partialpressure = (breath_gases[/datum/gas/miasma]/breath.total_moles())*breath_pressure
@@ -407,7 +428,7 @@
if(O)
O.on_life()
else
if(reagents.has_reagent("formaldehyde", 1)) // No organ decay if the body contains formaldehyde.
if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1)) // No organ decay if the body contains formaldehyde.
return
for(var/V in internal_organs)
var/obj/item/organ/O = V
+4
View File
@@ -174,6 +174,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
src.log_talk(message, LOG_SAY, forced_by=forced)
message = treat_message(message) // unfortunately we still need this
if(client?.prefs.autocorrect)
message = autocorrect(message)
var/sigreturn = SEND_SIGNAL(src, COMSIG_MOB_SAY, args)
if (sigreturn & COMPONENT_UPPERCASE_SPEECH)
message = uppertext(message)
@@ -106,6 +106,7 @@
melee_damage_lower = 5
melee_damage_upper = 10
poison_per_bite = 3
gold_core_spawnable = NO_SPAWN
var/atom/movable/cocoon_target
var/fed = 0
var/obj/effect/proc_holder/wrap/wrap
+1
View File
@@ -57,6 +57,7 @@
var/dizziness = 0//Carbon
var/jitteriness = 0//Carbon
var/nutrition = NUTRITION_LEVEL_START_MIN // randomised in Initialize
var/thirst = NUTRITION_LEVEL_START_MIN // randomised in Initialize
var/satiety = 0//Carbon
var/overeatduration = 0 // How long this guy is overeating //Carbon
+9
View File
@@ -528,3 +528,12 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
//Can the mob see reagents inside of containers?
/mob/proc/can_see_reagents()
return stat == DEAD || has_unlimited_silicon_privilege //Dead guys and silicons can always see reagents
/mob/proc/can_read(obj/O)
if(is_blind())
to_chat(src, "<span class='warning'>As you are trying to read [O], you suddenly feel very stupid!</span>")
return
if(!is_literate())
to_chat(src, "<span class='notice'>You try to read [O], but can't comprehend any of it.</span>")
return
return TRUE