Merge pull request #11151 from Fox-McCloud/suicide-refactor

Suicide Refactor
This commit is contained in:
variableundefined
2019-03-29 20:49:18 +08:00
committed by GitHub
43 changed files with 138 additions and 95 deletions
+3 -2
View File
@@ -491,5 +491,6 @@
/obj/item/clothing/mask/cursedclown/suicide_act(mob/user)
user.visible_message("<span class='danger'>[user] gazes into the eyes of [src]. [src] gazes back!</span>")
spawn(10)
user.gib()
return BRUTELOSS
if(user)
user.gib()
return OBLITERATION
+1 -1
View File
@@ -154,7 +154,7 @@
/obj/item/fluff/rsik_katana/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] tries to stab [src] into [user.p_their()] stomach! Except [src] shatters! [user.p_they(TRUE)] look[user.p_s()] as if [user.p_they()] might die from the shame.</span>")
return(BRUTELOSS)
return BRUTELOSS
/obj/item/crowbar/fluff/zelda_creedy_1 // Zomgponies: Griffin Rowley
name = "Zelda's Crowbar"
+6 -6
View File
@@ -25,9 +25,9 @@
throw_speed = 3
throw_range = 7
suicide_act(mob/user) //"A tiny net is a death sentence: it's a net and it's tiny!" https://www.youtube.com/watch?v=FCI9Y4VGCVw
to_chat(viewers(user), "<span class='warning'>[user] places the [src.name] on top of [user.p_their()] head, [user.p_their()] fingers tangled in the netting! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return(OXYLOSS)
/obj/item/fish_net/suicide_act(mob/user) //"A tiny net is a death sentence: it's a net and it's tiny!" https://www.youtube.com/watch?v=FCI9Y4VGCVw
to_chat(viewers(user), "<span class='warning'>[user] places the [src.name] on top of [user.p_their()] head, [user.p_their()] fingers tangled in the netting! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return OXYLOSS
/obj/item/fishfood
name = "fish food can"
@@ -51,9 +51,9 @@
throw_range = 7
attack_verb = list("scrubbed", "brushed", "scraped")
suicide_act(mob/user)
to_chat(viewers(user), "<span class='warning'>[user] is vigorously scrubbing [user.p_them()]self raw with the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return(BRUTELOSS|FIRELOSS)
/obj/item/tank_brush/suicide_act(mob/user)
to_chat(viewers(user), "<span class='warning'>[user] is vigorously scrubbing [user.p_them()]self raw with the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return BRUTELOSS|FIRELOSS
//////////////////////////////////////////////
// Fish Items //
@@ -131,7 +131,7 @@
user.name = newname
user.real_name = newname
desc = "Salt. From dead crew, presumably."
return (TOXLOSS)
return TOXLOSS
/obj/item/reagent_containers/food/condiment/peppermill
name = "pepper mill"
@@ -24,6 +24,18 @@
idle_power_usage = 2
active_power_usage = 500
/obj/machinery/gibber/suicide_act(mob/user)
if(occupant || locked)
return FALSE
user.visible_message("<span class='danger'>[user] climbs into [src] and turns it on!</b></span>")
user.Stun(10)
user.forceMove(src)
occupant = user
update_icon()
feedinTopanim()
addtimer(CALLBACK(src, .proc/startgibbing, user), 33)
return OBLITERATION
/obj/machinery/gibber/Destroy()
if(contents.len)
for(var/atom/movable/A in contents)
@@ -145,7 +157,7 @@
set name = "Empty Gibber"
set src in oview(1)
if(usr.stat != CONSCIOUS)
if(usr.incapacitated())
return
go_out()
+4 -4
View File
@@ -30,13 +30,13 @@
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1)
sleep(25)
if(!user)
return (OXYLOSS)
return OXYLOSS
user.say("BANG!")
sleep(25)
if(!user)
return (OXYLOSS)
return OXYLOSS
user.visible_message("<B>[user]</B> laughs so hard [user.p_they()] begin[user.p_s()] to suffocate!")
return (OXYLOSS)
return OXYLOSS
/obj/item/grown/bananapeel
seed = /obj/item/seeds/banana
@@ -52,7 +52,7 @@
/obj/item/grown/bananapeel/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is deliberately slipping on the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1)
return (BRUTELOSS)
return BRUTELOSS
// Mimana - invisible sprites are totally a feature!
+1 -1
View File
@@ -24,7 +24,7 @@
/obj/item/seeds/kudzu/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] swallows the pack of kudzu seeds! It looks like [user.p_theyre()] trying to commit suicide..</span>")
plant(user)
return (BRUTELOSS)
return BRUTELOSS
/obj/item/seeds/kudzu/proc/plant(mob/user)
if(istype(user.loc, /turf/space))
+1 -1
View File
@@ -45,7 +45,7 @@
/obj/item/grown/nettle/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is eating some of the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return (BRUTELOSS|TOXLOSS)
return BRUTELOSS|TOXLOSS
/obj/item/grown/nettle/pickup(mob/living/user)
..()
+4 -4
View File
@@ -34,7 +34,7 @@
/obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is huffing the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return (TOXLOSS)
return TOXLOSS
/obj/item/reagent_containers/spray/pestspray // -- Skie
desc = "It's some pest eliminator spray! <I>Do not inhale!</I>"
@@ -56,7 +56,7 @@
/obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is huffing the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return (TOXLOSS)
return TOXLOSS
/obj/item/cultivator
name = "cultivator"
@@ -91,7 +91,7 @@
/obj/item/hatchet/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is chopping at [user.p_them()]self with the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
return (BRUTELOSS)
return BRUTELOSS
/obj/item/hatchet/unathiknife
name = "duelling knife"
@@ -126,7 +126,7 @@
if(affecting)
affecting.droplimb(1, DROPLIMB_SHARP)
playsound(loc, pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg'), 50, 1, -1)
return (BRUTELOSS)
return BRUTELOSS
/obj/item/scythe/pre_attackby(atom/A, mob/living/user, params)
if(swiping || !istype(A, /obj/structure/spacevine) || get_turf(A) == get_turf(user))
+1 -1
View File
@@ -59,7 +59,7 @@
if(!gibbed && deathgasp_on_death)
emote("deathgasp")
if(suiciding)
if(mind && suiciding)
mind.suicided = TRUE
clear_fullscreens()
update_sight()
+1 -1
View File
@@ -104,7 +104,7 @@
H.visible_message("<span class='suicide'>[H] holds up a contract claiming his soul, then immediately catches fire. It looks like \he's trying to commit suicide!</span>")
H.adjust_fire_stacks(20)
H.IgniteMob()
return(FIRELOSS)
return FIRELOSS
else
..()
+1 -1
View File
@@ -26,7 +26,7 @@
/obj/item/pen/suicide_act(mob/user)
to_chat(viewers(user), "<span class='suicide'>[user] starts scribbling numbers over [user.p_them()]self with the [name]! It looks like [user.p_theyre()] trying to commit sudoku.</span>")
return (BRUTELOSS)
return BRUTELOSS
/obj/item/pen/blue
name = "blue-ink pen"
+1 -1
View File
@@ -15,7 +15,7 @@
/obj/item/stamp/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] stamps 'VOID' on [user.p_their()] forehead, then promptly falls over, dead.</span>")
return (OXYLOSS)
return OXYLOSS
/obj/item/stamp/qm
name = "Quartermaster's rubber stamp"
+1 -1
View File
@@ -504,7 +504,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
user.visible_message("<span class='suicide'>[user] is making a noose with the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
else
user.visible_message("<span class='suicide'>[user] is strangling [user.p_them()]self with the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return(OXYLOSS)
return OXYLOSS
/obj/item/stack/cable_coil/New(loc, length = MAXCOIL, paramcolor = null)
..()
+1 -1
View File
@@ -90,7 +90,7 @@
/obj/item/stock_parts/cell/suicide_act(mob/user)
to_chat(viewers(user), "<span class='suicide'>[user] is licking the electrodes of the [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
return (FIRELOSS)
return FIRELOSS
/obj/item/stock_parts/cell/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/reagent_containers/syringe))
+3 -3
View File
@@ -154,14 +154,14 @@
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
power_supply.use(shot.e_cost)
update_icon()
return(FIRELOSS)
return FIRELOSS
else
user.visible_message("<span class='suicide'>[user] panics and starts choking to death!</span>")
return(OXYLOSS)
return OXYLOSS
else
user.visible_message("<span class='suicide'>[user] is pretending to blow [user.p_their()] brains out with the [name]! It looks like [user.p_theyre()] trying to commit suicide!</b></span>")
playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1)
return (OXYLOSS)
return OXYLOSS
/obj/item/gun/energy/vv_edit_var(var_name, var_value)
switch(var_name)
@@ -137,7 +137,7 @@
playsound(loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
user.visible_message("<span class='suicide'>[user] cocks the [name] and pretends to blow [user.p_their()] brains out! It looks like [user.p_theyre()] trying to commit suicide!</b></span>")
shoot_live_shot()
return (OXYLOSS)
return OXYLOSS
// Plasma Cutters //
/obj/item/gun/energy/plasmacutter
+5 -5
View File
@@ -55,7 +55,7 @@
/obj/item/gun/projectile/proc/can_reload()
return !magazine
/obj/item/gun/projectile/proc/reload(obj/item/ammo_box/magazine/AM, mob/user as mob)
/obj/item/gun/projectile/proc/reload(obj/item/ammo_box/magazine/AM, mob/user as mob)
user.remove_from_mob(AM)
magazine = AM
magazine.loc = src
@@ -81,7 +81,7 @@
to_chat(user, "<span class='notice'>You perform a tactical reload on \the [src], replacing the magazine.</span>")
magazine.loc = get_turf(loc)
magazine.update_icon()
magazine = null
magazine = null
reload(AM, user)
return TRUE
else
@@ -165,14 +165,14 @@
if(user.l_hand == src || user.r_hand == src)
process_fire(user, user, 0, zone_override = "head")
user.visible_message("<span class='suicide'>[user] blows [user.p_their()] brains out with the [name]!</span>")
return(BRUTELOSS)
return BRUTELOSS
else
user.visible_message("<span class='suicide'>[user] panics and starts choking to death!</span>")
return(OXYLOSS)
return OXYLOSS
else
user.visible_message("<span class='suicide'>[user] is pretending to blow [user.p_their()] brains out with the [name]! It looks like [user.p_theyre()] trying to commit suicide!</b></span>")
playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1)
return (OXYLOSS)
return OXYLOSS
/obj/item/gun/projectile/proc/sawoff(mob/user)
if(sawn_state == SAWN_OFF)
+9 -9
View File
@@ -57,10 +57,10 @@
origin_tech = "materials=1;biotech=1"
attack_verb = list("drilled")
suicide_act(mob/user)
to_chat(viewers(user), pick("<span class='suicide'>[user] is pressing [src] to [user.p_their()] temple and activating it! It looks like [user.p_theyre()] trying to commit suicide.</span>",
"<span class='suicide'>[user] is pressing [src] to [user.p_their()] chest and activating it! It looks like [user.p_theyre()] trying to commit suicide.</span>"))
return (BRUTELOSS)
/obj/item/surgicaldrill/suicide_act(mob/user)
to_chat(viewers(user), pick("<span class='suicide'>[user] is pressing [src] to [user.p_their()] temple and activating it! It looks like [user.p_theyre()] trying to commit suicide.</span>",
"<span class='suicide'>[user] is pressing [src] to [user.p_their()] chest and activating it! It looks like [user.p_theyre()] trying to commit suicide.</span>"))
return BRUTELOSS
/obj/item/surgicaldrill/augment
desc = "Effectively a small power drill contained within your arm, edges dulled to prevent tissue damage. May or may not pierce the heavens."
@@ -87,11 +87,11 @@
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
suicide_act(mob/user)
to_chat(viewers(user), pick("<span class='suicide'>[user] is slitting [user.p_their()] wrists with [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>",
"<span class='suicide'>[user] is slitting [user.p_their()] throat with [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>",
"<span class='suicide'>[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku.</span>"))
return (BRUTELOSS)
/obj/item/scalpel/suicide_act(mob/user)
to_chat(viewers(user), pick("<span class='suicide'>[user] is slitting [user.p_their()] wrists with [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>",
"<span class='suicide'>[user] is slitting [user.p_their()] throat with [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>",
"<span class='suicide'>[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku.</span>"))
return BRUTELOSS
/obj/item/scalpel/augment