Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,9 @@ GLOBAL_LIST_INIT(announcer_keys, list(
#define SFX_MALE_SIGH "male_sigh"
#define SFX_FEMALE_SIGH "female_sigh"
#define SFX_WRITING_PEN "writing_pen"
// Surf Shack 13 Edit
#define SFX_SHEEP_BLEAT "sheep"
// Surf Shack 13 End

// Standard is 44.1khz
#define MIN_EMOTE_PITCH 40000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,26 @@
tier = DNA_MUTANT_TIER_ONE
unreachable_effect = TRUE
status_effect_type = /datum/status_effect/organ_set_bonus/fish
// Surf Shack Edit
/datum/infuser_entry/sheep
name = "Sheep"
infuse_mob_name = "sheep"
desc = "Skittish and fluffy creatures, most psychologists warn that infusing yourself with sheep DNA may make one more prone to manipulation tactics."
threshold_desc = "their flesh will develop a certain fluffiness and texture similiar to wool. Such changes provide great insulation against all extremely cold temperatures."
qualities = list(
"skittish",
"fluffy",
"loves to eat grass",
"hops when happy",
)
input_obj_or_mob = list(
/mob/living/basic/sheep,
)
output_organs = list(
/obj/item/organ/heart/sheep,
/obj/item/organ/liver/sheep,
)
infusion_desc = "skittish"
tier = DNA_MUTANT_TIER_ONE
status_effect_type = /datum/status_effect/organ_set_bonus/sheep
// Surf Shack End
50 changes: 50 additions & 0 deletions code/game/machinery/dna_infuser/organ_sets/sheep_organs.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/obj/item/organ/heart/sheep
name = "sheep heart"
desc = "An heart that's seen it's fair share of work. Likely extracted from a sheep."
icon_state = "heart-on"
base_icon_state = "heart"
maxHealth = STANDARD_ORGAN_THRESHOLD * 0.5 // Something to help counteract the bonus, frequent brushes with death will seal your fate. Also shorter time before your heart decays while dead.
var/damage_heart_toggle = TRUE
/// The cooldown until the next time this heart cam speed you up.
COOLDOWN_DECLARE(sheep_boost_cooldown)

/obj/item/organ/heart/sheep/on_life(seconds_per_tick, times_fired)
. = ..()
if(owner.health < 5 && COOLDOWN_FINISHED(src, sheep_boost_cooldown) && !(organ_flags & ORGAN_FAILING))
COOLDOWN_START(src, sheep_boost_cooldown, rand(25 SECONDS, 1 MINUTES))
to_chat(owner, span_userdanger("You feel yourself dying, but something primal kicks in to keep you moving!"))
owner.heal_overall_damage(brute = 15, burn = 15, required_bodytype = BODYTYPE_ORGANIC)
if(damage_heart_toggle)
var/mob/living/carbon/my_human = owner
my_human.adjustOrganLoss(ORGAN_SLOT_HEART, 20)
if(owner.reagents.get_reagent_amount(/datum/reagent/determination) < 10)
owner.reagents.add_reagent(/datum/reagent/determination, 10)

/obj/item/organ/heart/sheep/Initialize(mapload)
. = ..()
AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/sheep)

/obj/item/organ/liver/sheep
name = "sheep liver"
desc = "A sheep's liver. Rumored to provide healing for those weak of heart."
icon_state = "liver"

/obj/item/organ/liver/sheep/handle_chemical(mob/living/carbon/organ_owner, datum/reagent/chem, seconds_per_tick, times_fired)
. = ..()
//parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if((. & COMSIG_MOB_STOP_REAGENT_CHECK) || (organ_flags & ORGAN_FAILING))
return
if(istype(chem, /datum/reagent/consumable/nutriment))
owner.heal_overall_damage(brute = 0.1, burn = 0.1, required_bodytype = BODYTYPE_ORGANIC)

/obj/item/organ/liver/sheep/Initialize(mapload)
. = ..()
AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/sheep)

///bonus of the sheep: your woolly flesh insulates you from the cold!
/datum/status_effect/organ_set_bonus/sheep
id = "organ_set_bonus_sheep"
organs_needed = 2
bonus_activate_text = span_notice("Sheep DNA is deeply infused with you! You've become resistant to extremely cold temperatures!")
bonus_deactivate_text = span_notice("Your DNA is no longer majority sheep, and you're no longer resistant to extremely cold temperatures...")
bonus_traits = list(TRAIT_RESISTCOLD)
8 changes: 8 additions & 0 deletions code/game/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -763,4 +763,12 @@
'sound/effects/writing_pen/writing_pen6.ogg',
'sound/effects/writing_pen/writing_pen7.ogg',
)
// Surf Shack Edit
if(SFX_SHEEP_BLEAT)
soundin = pick(
'sound/mobs/non-humanoids/sheep/sheep1.ogg',
'sound/mobs/non-humanoids/sheep/sheep2.ogg',
'sound/mobs/non-humanoids/sheep/sheep3.ogg',
)
// Surf Shack End
return soundin
30 changes: 30 additions & 0 deletions code/modules/mob/living/carbon/emote.dm
Original file line number Diff line number Diff line change
Expand Up @@ -252,3 +252,33 @@
if(isalien(user))
return SFX_HISS
return user.dna.species.get_hiss_sound()

// Surf Shack 13 Edit
/datum/emote/living/carbon/bleat
key = "bleat"
key_third_person = "bleats"
vary = TRUE
sound = SFX_SHEEP_BLEAT
message = "bleats!"
message_mime = "bleats silently."
emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE

/datum/emote/living/carbon/bleat/can_run_emote(mob/living/carbon/user, status_check = TRUE , intentional, params)
if(!iscarbon(user) || ((!istype(user.get_organ_slot(ORGAN_SLOT_HEART), /obj/item/organ/heart/sheep) && !istype(user.get_organ_slot(ORGAN_SLOT_LIVER), /obj/item/organ/liver/sheep))))
return FALSE
return ..()

/datum/emote/living/carbon/baah
key = "baah"
key_third_person = "baahs"
vary = TRUE
sound = SFX_SHEEP_BLEAT
message = "baahs!"
message_mime = "baahs silently."
emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE

/datum/emote/living/carbon/baah/can_run_emote(mob/living/carbon/user, status_check = TRUE , intentional, params)
if(!iscarbon(user) || ((!istype(user.get_organ_slot(ORGAN_SLOT_HEART), /obj/item/organ/heart/sheep) && !istype(user.get_organ_slot(ORGAN_SLOT_LIVER), /obj/item/organ/liver/sheep))))
return FALSE
return ..()
// Surf Shack 13 End
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2207,6 +2207,7 @@
#include "code\game\machinery\dna_infuser\organ_sets\gondola_organs.dm"
#include "code\game\machinery\dna_infuser\organ_sets\rat_organs.dm"
#include "code\game\machinery\dna_infuser\organ_sets\roach_organs.dm"
#include "code\game\machinery\dna_infuser\organ_sets\sheep_organs.dm"
#include "code\game\machinery\doors\airlock.dm"
#include "code\game\machinery\doors\airlock_electronics.dm"
#include "code\game\machinery\doors\brigdoors.dm"
Expand Down
Loading