mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-10 15:36:56 +01:00
That was gassy
This commit is contained in:
@@ -1,38 +1,37 @@
|
||||
/proc/gs13_get_sfx(soundin)
|
||||
if(istext(soundin))
|
||||
switch(soundin)
|
||||
if("belch")
|
||||
soundin = pick( 'GainStation13/sound/voice/belch1.ogg',
|
||||
'GainStation13/sound/voice/belch2.ogg',
|
||||
'GainStation13/sound/voice/belch3.ogg',
|
||||
'GainStation13/sound/voice/belch4.ogg',
|
||||
'GainStation13/sound/voice/belch5.ogg',
|
||||
'GainStation13/sound/voice/belch6.ogg',
|
||||
'GainStation13/sound/voice/belch7.ogg',
|
||||
'GainStation13/sound/voice/belch8.ogg',
|
||||
'GainStation13/sound/voice/belch9.ogg',
|
||||
'GainStation13/sound/voice/belch10.ogg',
|
||||
'GainStation13/sound/voice/belch11.ogg')
|
||||
if("brap")
|
||||
soundin = pick( 'GainStation13/sound/voice/brap1.ogg',
|
||||
'GainStation13/sound/voice/brap2.ogg',
|
||||
'GainStation13/sound/voice/brap3.ogg',
|
||||
'GainStation13/sound/voice/brap4.ogg',
|
||||
'GainStation13/sound/voice/brap5.ogg',
|
||||
'GainStation13/sound/voice/brap6.ogg',
|
||||
'GainStation13/sound/voice/brap7.ogg',
|
||||
'GainStation13/sound/voice/brap8.ogg')
|
||||
if("burp")
|
||||
soundin = pick( 'GainStation13/sound/voice/burp1.ogg')
|
||||
if("burunyu")
|
||||
soundin = pick( 'GainStation13/sound/voice/funnycat.ogg')
|
||||
if("fart")
|
||||
soundin = pick( 'GainStation13/sound/voice/fart1.ogg',
|
||||
'GainStation13/sound/voice/fart2.ogg',
|
||||
'GainStation13/sound/voice/fart3.ogg',
|
||||
'GainStation13/sound/voice/fart4.ogg')
|
||||
if("gurgle")
|
||||
soundin = pick( 'GainStation13/sound/voice/gurgle1.ogg',
|
||||
'GainStation13/sound/voice/gurgle2.ogg',
|
||||
'GainStation13/sound/voice/gurgle3.ogg')
|
||||
return soundin
|
||||
/proc/playsound_prefed(atom/source, soundin, pref, vol as num, vary, extrarange as num, falloff, frequency = null, channel = 0, pressure_affected = TRUE, ignore_walls = TRUE, soundenvwet = -10000, soundenvdry = 0)
|
||||
if(isarea(source))
|
||||
throw EXCEPTION("playsound(): source is an area")
|
||||
return
|
||||
|
||||
var/turf/turf_source = get_turf(source)
|
||||
|
||||
if (!turf_source)
|
||||
return
|
||||
|
||||
//allocate a channel if necessary now so its the same for everyone
|
||||
channel = channel || open_sound_channel()
|
||||
|
||||
// Looping through the player list has the added bonus of working for mobs inside containers
|
||||
var/sound/S = sound(get_sfx(soundin))
|
||||
var/maxdistance = (world.view + extrarange)
|
||||
var/z = turf_source.z
|
||||
var/list/listeners = SSmobs.clients_by_zlevel[z]
|
||||
if(!ignore_walls) //these sounds don't carry through walls
|
||||
listeners = listeners & hearers(maxdistance,turf_source)
|
||||
|
||||
for(var/P in listeners)
|
||||
var/mob/M = P
|
||||
if(!M.client)
|
||||
continue
|
||||
if((!M.client?.prefs.cit_toggles & pref))
|
||||
continue
|
||||
if(get_dist(M, turf_source) <= maxdistance)
|
||||
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, soundenvwet, soundenvdry)
|
||||
for(var/P in SSmobs.dead_players_by_zlevel[z])
|
||||
var/mob/M = P
|
||||
if(!M.client)
|
||||
continue
|
||||
if((!M.client?.prefs.cit_toggles & pref))
|
||||
continue
|
||||
if(get_dist(M, turf_source) <= maxdistance)
|
||||
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, soundenvwet, soundenvdry)
|
||||
|
||||
@@ -1,136 +1,99 @@
|
||||
/datum/emote/living/proc/make_noise(var/mob/living/user, noise_name, pref_toggle)
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
|
||||
var/turf/source = get_turf(user)
|
||||
var/sound/noise = sound(gs13_get_sfx(noise_name))
|
||||
for(var/mob/living/M in get_hearers_in_view(3, source))
|
||||
if ((pref_toggle == 0) || (M.client && M.client?.prefs?.cit_toggles & pref_toggle))
|
||||
M.playsound_local(source, noise_name, 50, 1, S = noise)
|
||||
|
||||
/datum/emote/living/proc/reduce_fullness(var/mob/living/user, fullness_amount) // fullness_amount should be between 5 and 20 for balance and below 80 for functionality
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/N = user
|
||||
if(N.fullness >= FULLNESS_LEVEL_BLOATED && N.fullness_reducion_timer + FULLNESS_REDUCTION_COOLDOWN < world.time)
|
||||
N.fullness -= fullness_amount
|
||||
if(fullness_amount <= 5)
|
||||
to_chat(N, "You felt that make some space")
|
||||
if(fullness_amount > 5)
|
||||
to_chat(N, "You felt that make a lot of space")
|
||||
|
||||
/datum/emote/living/belch
|
||||
key = "belch"
|
||||
key_third_person = "belches loudly"
|
||||
message = "belches"
|
||||
/datum/emote/living/gurgle
|
||||
key = "gurgle"
|
||||
key_third_person = "gurgles"
|
||||
message = "'s belly gurgles"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
//god hates me for this -Metha
|
||||
sound = 'GainStation13/sound/voice/gurgle1.ogg'
|
||||
|
||||
/datum/emote/living/belch/run_emote(mob/living/user, params)
|
||||
/datum/emote/living/gurgle/get_sound()
|
||||
return pick('GainStation13/sound/voice/gurgle1.ogg',
|
||||
'GainStation13/sound/voice/gurgle2.ogg',
|
||||
'GainStation13/sound/voice/gurgle3.ogg')
|
||||
|
||||
/datum/emote/living/gurgle/run_emote(mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
|
||||
make_noise(user, "belch", BURPING_NOISES)
|
||||
return FALSE
|
||||
|
||||
. = ..()
|
||||
reduce_fullness(user, rand(6,12))
|
||||
playsound(user, "gurgle")
|
||||
|
||||
/datum/emote/living/brap
|
||||
key = "brap"
|
||||
key_third_person = "braps"
|
||||
message = " "
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/brap/select_message_type(var/mob/living/user)
|
||||
return pick("farts loudly!", "cuts a fat one!", "rips absolute ass!")
|
||||
|
||||
/datum/emote/living/brap/run_emote(var/mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
|
||||
make_noise(user, "brap", FARTING_NOISES)
|
||||
var/obj/item/storage/book/bible/b = locate(/obj/item/storage/book/bible) in get_turf(user) //Biblefart
|
||||
if(b) //Devine Retribution
|
||||
user.visible_message("<span class='danger'>\The [user] farts on \the [b], causing a violent, otherworldly ripple to echo outwards before they explode in a gorey mess of divine retribution!</span>",
|
||||
"<span class='userdanger'>You feel a deep sense of dread as you release pressure from your rear over \the [b], immediately realizing your mistake as Divine Retribution rends your form into a gorey mess.</span>")
|
||||
user.emote("scream")
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] farted on a bible at [ADMIN_VERBOSEJMP(user)] and was gibbed.")
|
||||
log_game("[key_name(user)] farted on a bible at [AREACOORD(user)] and was gibbed")
|
||||
user.gib()
|
||||
return ..() //Gassy is dead, no fullness to reduce
|
||||
|
||||
. = ..()
|
||||
reduce_fullness(user, rand(6,12))
|
||||
. = ..()
|
||||
|
||||
/datum/emote/living/burp
|
||||
key = "burp"
|
||||
key_third_person = "burps"
|
||||
message = "burps"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
var/reduction_min = 4
|
||||
var/reduction_max = 8
|
||||
var/noise_type = "burp"
|
||||
var/noise_pref = BURPING_NOISES
|
||||
|
||||
/datum/emote/living/burp/run_emote(mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
. = ..()
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
make_noise(user, "burp", BURPING_NOISES)
|
||||
playsound_prefed(user, noise_type, noise_pref, 100, TRUE, -7)
|
||||
|
||||
. = ..()
|
||||
reduce_fullness(user, rand(4,8))
|
||||
user.reduce_fullness(rand(reduction_min,reduction_max))
|
||||
|
||||
/datum/emote/living/fart
|
||||
/datum/emote/living/burp/fart //Butt burp.
|
||||
key = "fart"
|
||||
key_third_person = "farts"
|
||||
message = "farts"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
//god hates me for this -Metha
|
||||
noise_type = "fart"
|
||||
noise_pref = FARTING_NOISES
|
||||
|
||||
/datum/emote/living/fart/run_emote(mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
|
||||
make_noise(user, "fart", FARTING_NOISES)
|
||||
var/obj/item/storage/book/bible/b = locate(/obj/item/storage/book/bible) in get_turf(user) //Biblefart
|
||||
if(b) //Devine Retribution
|
||||
user.visible_message("<span class='danger'>\The [user] farts on \the [b], causing a violent, otherworldly ripple to echo outwards before they explode in a gorey mess of divine retribution!</span>",
|
||||
"<span class='userdanger'>You feel a deep sense of dread as you release pressure from your rear over \the [b], immediately realizing your mistake as Divine Retribution rends your form into a gorey mess.</span>")
|
||||
user.emote("scream")
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] farted on a bible at [ADMIN_VERBOSEJMP(user)] and was gibbed.")
|
||||
log_game("[key_name(user)] farted on a bible at [AREACOORD(user)] and was gibbed")
|
||||
user.gib()
|
||||
return ..() //Gassy is dead, no fullness to reduce
|
||||
|
||||
. = ..()
|
||||
reduce_fullness(user, rand(4,8))
|
||||
|
||||
/datum/emote/living/gurgle
|
||||
key = "gurgle"
|
||||
key_third_person = "gurgles"
|
||||
message = "'s belly gurgles"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/gurgle/run_emote(mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
/datum/emote/living/burp/fart/run_emote(mob/living/user, params)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
make_noise(user, "gurgle", 0)
|
||||
var/obj/item/storage/book/bible/b = locate(/obj/item/storage/book/bible) in get_turf(user) //Biblefart
|
||||
if(b)//Devine Retribution
|
||||
var/mob/living/heretic = user //Heresy.
|
||||
heretic.visible_message(
|
||||
"<span class='danger'>\The [heretic] farts on \the [b], causing a violent, otherworldly ripple to echo \
|
||||
outwards before they explode in a gorey mess of divine retribution!</span>",
|
||||
"<span class='userdanger'>You feel a deep sense of dread as you release pressure from your rear over \the [b], \
|
||||
immediately realizing your mistake as Divine Retribution rends your form into a gorey mess.</span>")
|
||||
heretic.emote("scream")
|
||||
message_admins("[ADMIN_LOOKUPFLW(heretic)] farted on a bible at [ADMIN_VERBOSEJMP(heretic)] and was gibbed.")
|
||||
log_game("[key_name(heretic)] farted on a bible at [AREACOORD(heretic)] and was gibbed")
|
||||
heretic.gib()
|
||||
return //Gassy is dead
|
||||
|
||||
. = ..()
|
||||
/datum/emote/living/burp/belch
|
||||
key = "belch"
|
||||
key_third_person = "belches loudly"
|
||||
message = "belches"
|
||||
//god hates me for this -Metha
|
||||
reduction_min = 6
|
||||
reduction_max = 12
|
||||
|
||||
/datum/emote/living/burp/fart/brap
|
||||
key = "brap"
|
||||
key_third_person = "braps"
|
||||
message = ""
|
||||
reduction_min = 6
|
||||
reduction_max = 12
|
||||
|
||||
/datum/emote/living/burp/fart/brap/select_message_type(var/mob/living/user)
|
||||
return pick("farts loudly!", "cuts a fat one!", "rips absolute ass!")
|
||||
|
||||
/datum/emote/living/burp/fart/goon // Fart but it's funny !
|
||||
key = "goonfart"
|
||||
key_third_person = "goonfarts"
|
||||
noise_type = 'goon/sound/voice/farts/fart4.ogg'
|
||||
|
||||
//Shhh... It's a secret! Don't tell or I'll steal your legs
|
||||
/datum/emote/living/burunyu
|
||||
key = "burunyu"
|
||||
key_third_person = "burunyues"
|
||||
message = "emits a strange feline sound"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
|
||||
/datum/emote/living/burunyu/run_emote(mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
|
||||
make_noise(user, "burunyu", 0)
|
||||
|
||||
. = ..()
|
||||
sound = 'GainStation13/sound/voice/funnycat.ogg'
|
||||
|
||||
/datum/emote/living/bellyrub
|
||||
key = "bellyrub"
|
||||
@@ -139,7 +102,8 @@
|
||||
emote_type = EMOTE_VISIBLE
|
||||
|
||||
/datum/emote/living/bellyrub/run_emote(mob/living/user, params)
|
||||
if(!ishuman(user))
|
||||
return FALSE
|
||||
. = ..()
|
||||
reduce_fullness(user, rand(4,16))
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
user.reduce_fullness(rand(4,16), FALSE)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/mob/living/proc/reduce_fullness(amount, notify = TRUE) // fullness_amount should be between 5 and 20 for balance and below 80 for functionality
|
||||
if(!ishuman(src))
|
||||
return
|
||||
|
||||
if(fullness >= FULLNESS_LEVEL_BLOATED && fullness_reducion_timer + FULLNESS_REDUCTION_COOLDOWN < world.time)
|
||||
|
||||
fullness -= amount // Remove Fullness
|
||||
|
||||
if(!notify)
|
||||
return
|
||||
|
||||
if(amount <= 5)
|
||||
to_chat(src, "You felt that make some space")
|
||||
if(amount > 5)
|
||||
to_chat(src, "You felt that make a lot of space")
|
||||
|
||||
@@ -227,4 +227,28 @@
|
||||
if("slosh")
|
||||
soundin = pick('sound/effects/slosh1.ogg', 'sound/effects/slosh2.ogg')
|
||||
//END OF CIT CHANGES
|
||||
// GS13 Start - Gainstation sounds
|
||||
if("belch")
|
||||
soundin = pick( 'GainStation13/sound/voice/belch1.ogg', 'GainStation13/sound/voice/belch2.ogg',
|
||||
'GainStation13/sound/voice/belch3.ogg', 'GainStation13/sound/voice/belch4.ogg',
|
||||
'GainStation13/sound/voice/belch5.ogg', 'GainStation13/sound/voice/belch6.ogg',
|
||||
'GainStation13/sound/voice/belch7.ogg', 'GainStation13/sound/voice/belch8.ogg',
|
||||
'GainStation13/sound/voice/belch9.ogg', 'GainStation13/sound/voice/belch10.ogg',
|
||||
'GainStation13/sound/voice/belch11.ogg')
|
||||
if("brap")
|
||||
soundin = pick( 'GainStation13/sound/voice/brap1.ogg', 'GainStation13/sound/voice/brap2.ogg',
|
||||
'GainStation13/sound/voice/brap3.ogg', 'GainStation13/sound/voice/brap4.ogg',
|
||||
'GainStation13/sound/voice/brap5.ogg', 'GainStation13/sound/voice/brap6.ogg',
|
||||
'GainStation13/sound/voice/brap7.ogg', 'GainStation13/sound/voice/brap8.ogg')
|
||||
if("burp")
|
||||
soundin = pick( 'GainStation13/sound/voice/burp1.ogg')
|
||||
if("burunyu")
|
||||
soundin = pick( 'GainStation13/sound/voice/funnycat.ogg')
|
||||
if("fart")
|
||||
soundin = pick( 'GainStation13/sound/voice/fart1.ogg', 'GainStation13/sound/voice/fart2.ogg',
|
||||
'GainStation13/sound/voice/fart3.ogg', 'GainStation13/sound/voice/fart4.ogg')
|
||||
if("gurgle")
|
||||
soundin = pick( 'GainStation13/sound/voice/gurgle1.ogg', 'GainStation13/sound/voice/gurgle2.ogg',
|
||||
'GainStation13/sound/voice/gurgle3.ogg')
|
||||
// GS13 end
|
||||
return soundin
|
||||
|
||||
Binary file not shown.
@@ -3127,6 +3127,7 @@
|
||||
#include "GainStation13\code\modules\mob\living\emote.dm"
|
||||
#include "GainStation13\code\modules\mob\living\emote_modular.dm"
|
||||
#include "GainStation13\code\modules\mob\living\emote_ported.dm"
|
||||
#include "GainStation13\code\modules\mob\living\fullness.dm"
|
||||
#include "GainStation13\code\modules\mob\living\nutribot.dm"
|
||||
#include "GainStation13\code\modules\mob\living\vore\eating\living_vr.dm"
|
||||
#include "GainStation13\code\modules\mob\living\vore\eating\trasheat_lists.dm"
|
||||
|
||||
Reference in New Issue
Block a user