diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 077c715440c..d9e4263ebcd 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -627,7 +627,7 @@ //////////////////////////////////////////////////////////////////////// // WAS: /datum/bioEffect/superfart -/datum/dna/gene/basic/superfart +/datum/dna/gene/basic/grant_spell/superfart name = "High-Pressure Intestines" desc = "Vastly increases the gas capacity of the subject's digestive tract." activation_messages = list("You feel bloated and gassy.") @@ -635,7 +635,45 @@ instability=1 mutation = SUPER_FART + spelltype = /obj/effect/proc_holder/spell/aoe_turf/superfart New() ..() block = SUPERFARTBLOCK + +/obj/effect/proc_holder/spell/aoe_turf/superfart + name = "Super Fart" + desc = "Fart with the fury of 1000 burritos." + panel = "Abilities" + charge_max = 900 + invocation_type = "emote" + range = 3 + clothes_req = 0 + selection_type = "view" + action_icon_state = "superfart" + +/obj/effect/proc_holder/spell/aoe_turf/superfart/invocation(mob/user = usr) + invocation = "[user] hunches down and grits their teeth!" + invocation_emote_self = invocation + ..(user) + +/obj/effect/proc_holder/spell/aoe_turf/superfart/cast(list/targets) + var/UT = get_turf(usr) + + if(do_after(usr, 30, target = usr)) + playsound(UT, 'sound/goonstation/effects/superfart.ogg', 50, 0) + usr.visible_message("[usr] unleashes a [pick("tremendous","gigantic","colossal")] fart!", "You hear a [pick("tremendous","gigantic","colossal")] fart.") + for(var/T in targets) + for(var/mob/living/M in T) + shake_camera(M, 10, 5) + if (M == usr) + continue + if(!airborne_can_reach(UT, T)) + continue + M << "You are sent flying!" + M.Weaken(5) + step_away(M, UT, 15) + step_away(M, UT, 15) + step_away(M, UT, 15) + else + usr << "You were interrupted and couldn't fart! Rude!" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 130bf7b05db..1b8a7b077ed 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -782,8 +782,6 @@ var/turf/location = get_turf(src) var/aoe_range=2 // Default - if(SUPER_FART in mutations) - aoe_range+=3 //Was 5 // Process toxic farts first. if(TOXIC_FARTS in mutations) @@ -803,26 +801,6 @@ continue M.reagents.add_reagent("space_drugs",rand(1,10)) - if(SUPER_FART in mutations) - visible_message("\red [name] hunches down and grits their teeth!") - if(do_after(usr,30, target = src)) - visible_message("\red [name] unleashes a [pick("tremendous","gigantic","colossal")] fart!","You hear a [pick("tremendous","gigantic","colossal")] fart.") - //playsound(L.loc, 'superfart.ogg', 50, 0) - for(var/mob/living/V in range(location,aoe_range)) - shake_camera(V,10,5) - if (V == src) - continue - if(!airborne_can_reach(get_turf(src), get_turf(V))) - continue - V << "\red You are sent flying!" - V.Weaken(5) // why the hell was this set to 12 christ - step_away(V,location,15) - step_away(V,location,15) - step_away(V,location,15) - else - usr << "\red You were interrupted and couldn't fart! Rude!" - - if ("help") var/emotelist = "aflap(s), airguitar, blink(s), blink(s)_r, blush(es), bow(s)-(none)/mob, burp(s), choke(s), chuckle(s), clap(s), collapse(s), cough(s),cry, cries, custom, dap(s)(none)/mob," \ + " deathgasp(s), drool(s), eyebrow,fart(s), faint(s), flap(s), flip(s), frown(s), gasp(s), giggle(s), glare(s)-(none)/mob, grin(s), groan(s), grumble(s), handshake-mob, hug(s)-(none)/mob," \ diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 814d9bf3153..a45ae88ca58 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ diff --git a/sound/goonstation/effects/superfart.ogg b/sound/goonstation/effects/superfart.ogg new file mode 100644 index 00000000000..8a83fa7c64a Binary files /dev/null and b/sound/goonstation/effects/superfart.ogg differ