mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 13:07:46 +01:00
fixes merge conflict
This commit is contained in:
@@ -9,10 +9,10 @@ RCD
|
||||
icon_state = "rcd"
|
||||
opacity = 0
|
||||
density = 0
|
||||
anchored = 0.0
|
||||
flags = CONDUCT
|
||||
force = 10.0
|
||||
throwforce = 10.0
|
||||
anchored = 0
|
||||
flags = CONDUCT | NOBLUDGEON
|
||||
force = 0
|
||||
throwforce = 10
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
@@ -296,8 +296,6 @@ RCD
|
||||
var/turf/T1 = get_turf(A)
|
||||
QDEL_NULL(A)
|
||||
for(var/obj/structure/window/W in T1.contents)
|
||||
W.disassembled = 1
|
||||
W.density = 0
|
||||
qdel(W)
|
||||
for(var/cdir in cardinal)
|
||||
var/turf/T2 = get_step(T1, cdir)
|
||||
@@ -307,8 +305,6 @@ RCD
|
||||
continue
|
||||
for(var/obj/structure/window/W in T2.contents)
|
||||
if(W.dir == turn(cdir, 180))
|
||||
W.disassembled = 1
|
||||
W.density = 0
|
||||
qdel(W)
|
||||
var/obj/structure/window/reinforced/W = new(T2)
|
||||
W.dir = turn(cdir, 180)
|
||||
@@ -331,16 +327,12 @@ RCD
|
||||
activate()
|
||||
new /obj/structure/grille(A)
|
||||
for(var/obj/structure/window/W in contents)
|
||||
W.disassembled = 1 // Prevent that annoying glass breaking sound
|
||||
W.density = 0
|
||||
qdel(W)
|
||||
for(var/cdir in cardinal)
|
||||
var/turf/T = get_step(A, cdir)
|
||||
if(locate(/obj/structure/grille) in T.contents)
|
||||
for(var/obj/structure/window/W in T.contents)
|
||||
if(W.dir == turn(cdir, 180))
|
||||
W.disassembled = 1
|
||||
W.density = 0
|
||||
qdel(W)
|
||||
else // Build a window!
|
||||
var/obj/structure/window/reinforced/W = new(A)
|
||||
@@ -385,7 +377,7 @@ RCD
|
||||
buzz loudly!</b></span>","<span class='danger'><b>[src] begins \
|
||||
vibrating violently!</b></span>")
|
||||
// 5 seconds to get rid of it
|
||||
addtimer(src, "detonate_pulse_explode", 50)
|
||||
addtimer(CALLBACK(src, .proc/detonate_pulse_explode), 50)
|
||||
|
||||
/obj/item/rcd/proc/detonate_pulse_explode()
|
||||
explosion(src, 0, 0, 3, 1, flame_range = 1)
|
||||
|
||||
@@ -54,7 +54,7 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
if(istype(M) && M.on_fire)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(M)
|
||||
light("<span class='notice'>[user] coldly lights the [name] with the burning body of [M]. Clearly, they offer the warmest of regards...</span>")
|
||||
light("<span class='notice'>[user] coldly lights the [name] with the burning body of [M]. Clearly, [user.p_they()] offer[user.p_s()] the warmest of regards...</span>")
|
||||
return 1
|
||||
else
|
||||
return ..()
|
||||
@@ -73,31 +73,31 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
else if(istype(W, /obj/item/lighter/zippo))
|
||||
var/obj/item/lighter/zippo/Z = W
|
||||
if(Z.lit)
|
||||
light("<span class='rose'>With a single flick of their wrist, [user] smoothly lights their [name] with their [W]. Damn they're cool.</span>")
|
||||
light("<span class='rose'>With a single flick of [user.p_their()] wrist, [user] smoothly lights [user.p_their()] [name] with [user.p_their()] [W]. Damn [user.p_theyre()] cool.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/lighter))
|
||||
var/obj/item/lighter/L = W
|
||||
if(L.lit)
|
||||
light("<span class='notice'>After some fiddling, [user] manages to light their [name] with [W].</span>")
|
||||
light("<span class='notice'>After some fiddling, [user] manages to light [user.p_their()] [name] with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/match))
|
||||
var/obj/item/match/M = W
|
||||
if(M.lit == 1)
|
||||
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
|
||||
light("<span class='notice'>[user] lights [user.p_their()] [name] with [user.p_their()] [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/melee/energy/sword/saber))
|
||||
var/obj/item/melee/energy/sword/saber/S = W
|
||||
if(S.active)
|
||||
light("<span class='warning'>[user] swings their [W], barely missing their nose. They light their [name] in the process.</span>")
|
||||
light("<span class='warning'>[user] swings their [W], barely missing their nose. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [name] in the process.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/assembly/igniter))
|
||||
light("<span class='notice'>[user] fiddles with [W], and manages to light their [name].</span>")
|
||||
light("<span class='notice'>[user] fiddles with [W], and manages to light [user.p_their()] [name].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/gun/magic/wand/fireball))
|
||||
var/obj/item/gun/magic/wand/fireball/F = W
|
||||
if(F.charges)
|
||||
if(prob(50) || user.mind.assigned_role == "Wizard")
|
||||
light("<span class='notice'>Holy shit, did [user] just manage to light their [name] with [W], with only moderate eyebrow singing?</span>")
|
||||
light("<span class='notice'>Holy shit, did [user] just manage to light [user.p_their()] [name] with [W], with only moderate eyebrow singing?</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Unsure which end of the wand is which, [user] fails to light [name] with [W].</span>")
|
||||
explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2)
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
to_chat(user, "<span class='notice'>You need to wipe off the old lipstick first!</span>")
|
||||
return
|
||||
if(H == user)
|
||||
user.visible_message("<span class='notice'>[user] does their lips with \the [src].</span>", \
|
||||
"<span class='notice'>You take a moment to apply \the [src]. Perfect!</span>")
|
||||
user.visible_message("<span class='notice'>[user] does [user.p_their()] lips with [src].</span>", \
|
||||
"<span class='notice'>You take a moment to apply [src]. Perfect!</span>")
|
||||
H.lip_style = "lipstick"
|
||||
H.lip_color = colour
|
||||
H.update_body()
|
||||
@@ -106,11 +106,11 @@
|
||||
to_chat(user, "<span class='notice'>Already clean-shaven.</span>")
|
||||
return
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("<span class='notice'>[user] starts to shave their facial hair with \the [src].</span>", \
|
||||
user.visible_message("<span class='notice'>[user] starts to shave [user.p_their()] facial hair with [src].</span>", \
|
||||
"<span class='notice'>You take a moment shave your facial hair with \the [src].</span>")
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
user.visible_message("<span class='notice'>[user] shaves \his facial hair clean with the [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with the [src]. Fast and clean!</span>")
|
||||
user.visible_message("<span class='notice'>[user] shaves [user.p_their()] facial hair clean with [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with [src]. Fast and clean!</span>")
|
||||
C.f_style = "Shaved"
|
||||
H.update_fhair()
|
||||
playsound(src.loc, usesound, 20, 1)
|
||||
@@ -140,10 +140,10 @@
|
||||
to_chat(user, "<span class='warning'>Your razor isn't going to cut through tentacles.</span>")
|
||||
return
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("<span class='warning'>[user] starts to shave their head with \the [src].</span>", \
|
||||
user.visible_message("<span class='warning'>[user] starts to shave [user.p_their()] head with [src].</span>", \
|
||||
"<span class='warning'>You start to shave your head with \the [src].</span>")
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
user.visible_message("<span class='notice'>[user] shaves \his head with \the [src].</span>", \
|
||||
user.visible_message("<span class='notice'>[user] shaves [user.p_their()] head with [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with \the [src].</span>")
|
||||
C.h_style = "Skinhead"
|
||||
H.update_hair()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/gavelhammer/suicide_act(mob/user)
|
||||
user.visible_message("<span class='warning'>[user] has sentenced \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='warning'>[user] has sentenced [user.p_them()]self to death with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
if(istype(W, /obj/item/screwdriver))
|
||||
if(bcell)
|
||||
bcell.updateicon()
|
||||
bcell.update_icon()
|
||||
bcell.loc = get_turf(src.loc)
|
||||
bcell = null
|
||||
to_chat(user, "<span class='notice'>You remove the cell from the [src].</span>")
|
||||
@@ -276,7 +276,7 @@
|
||||
icon_state = "defibpaddles[wielded]_cooldown"
|
||||
|
||||
/obj/item/twohanded/shockpaddles/suicide_act(mob/user)
|
||||
user.visible_message("<span class='danger'>[user] is putting the live paddles on \his chest! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='danger'>[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
defib.deductcharge(revivecost)
|
||||
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||
return (OXYLOSS)
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
var/turf/bombturf = get_turf(src)
|
||||
var/area/A = get_area(bombturf)
|
||||
bombers += "E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]"
|
||||
investigate_log("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]", INVESTIGATE_BOMB)
|
||||
message_admins("E20 detonated at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a> with a roll of [result]. Triggered by: [key_name_admin(user)]")
|
||||
log_game("E20 detonated at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with a roll of [result]. Triggered by: [key_name(user)]")
|
||||
|
||||
|
||||
@@ -25,11 +25,11 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(NO_DNA in H.species.species_traits)
|
||||
to_chat(user, "<span class='warning'>You failed to inject [M], as they have no DNA to scramble, nor flesh to inject.</span>")
|
||||
to_chat(user, "<span class='warning'>You failed to inject [M], as [M.p_they()] [M.p_have()] no DNA to scramble, nor flesh to inject.</span>")
|
||||
return
|
||||
|
||||
if(M == user)
|
||||
user.visible_message("<span class='danger'>[user] injects \himself with [src]!</span>")
|
||||
user.visible_message("<span class='danger'>[user] injects [user.p_them()]self with [src]!</span>")
|
||||
injected(user, user)
|
||||
else
|
||||
user.visible_message("<span class='danger'>[user] is trying to inject [M] with [src]!</span>")
|
||||
|
||||
@@ -85,12 +85,12 @@
|
||||
target.overlays += image_overlay
|
||||
if(!nadeassembly)
|
||||
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>")
|
||||
addtimer(src, "prime", det_time*10)
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time*10)
|
||||
|
||||
/obj/item/grenade/plastic/suicide_act(mob/user)
|
||||
message_admins("[key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) suicided with [src.name] at ([user.x],[user.y],[user.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)",0,1)
|
||||
log_game("[key_name(user)] suicided with [name] at ([user.x],[user.y],[user.z])")
|
||||
user.visible_message("<span class='suicide'>[user] activates the [name] and holds it above \his head! It looks like \he's going out with a bang!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] activates the [name] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!</span>")
|
||||
var/message_say = "FOR NO RAISIN!"
|
||||
if(user.mind)
|
||||
if(user.mind.special_role)
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
return
|
||||
|
||||
if(improvised && ((M.head && (M.head.flags_cover & HEADCOVERSMOUTH)) || (M.wear_mask && (M.wear_mask.flags_cover & MASKCOVERSMOUTH)))) // Improvised garrotes are blocked by mouth-covering items.
|
||||
to_chat(user, "<span class = 'warning'>[M]'s neck is blocked by something they're wearing!</span>")
|
||||
to_chat(user, "<span class = 'warning'>[M]'s neck is blocked by something [M.p_theyre()] wearing!</span>")
|
||||
|
||||
if(strangling)
|
||||
to_chat(user, "<span class = 'warning'>You cannot use [src] on two people at once!</span>")
|
||||
@@ -134,7 +134,7 @@
|
||||
G = user.r_hand
|
||||
|
||||
else
|
||||
user.visible_message("<span class='warning'>[user] loses \his grip on [strangling]'s neck.</span>", \
|
||||
user.visible_message("<span class='warning'>[user] loses [user.p_their()] grip on [strangling]'s neck.</span>", \
|
||||
"<span class='warning'>You lose your grip on [strangling]'s neck.</span>")
|
||||
|
||||
strangling = null
|
||||
@@ -144,7 +144,7 @@
|
||||
return
|
||||
|
||||
if(!G.affecting)
|
||||
user.visible_message("<span class='warning'>[user] loses \his grip on [strangling]'s neck.</span>", \
|
||||
user.visible_message("<span class='warning'>[user] loses [user.p_their()] grip on [strangling]'s neck.</span>", \
|
||||
"<span class='warning'>You lose your grip on [strangling]'s neck.</span>")
|
||||
|
||||
strangling = null
|
||||
@@ -167,6 +167,6 @@
|
||||
|
||||
|
||||
/obj/item/twohanded/garrote/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is wrapping the [src] around \his neck and pulling the handles! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is wrapping the [src] around [user.p_their()] neck and pulling the handles! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
playsound(src.loc, 'sound/weapons/cablecuff.ogg', 15, 1, -1)
|
||||
return (OXYLOSS)
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
// This used to go before the assembly check, but that has absolutely zero to do with priming the damn thing. You could spam the admins with it.
|
||||
message_admins("[key_name_admin(usr)] has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a> [contained].")
|
||||
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) [contained].")
|
||||
bombers += "[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained]."
|
||||
investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])[contained].", INVESTIGATE_BOMB)
|
||||
to_chat(user, "<span class='warning'>You prime the [name]! [det_time / 10] second\s!</span>")
|
||||
playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1)
|
||||
active = 1
|
||||
@@ -422,7 +422,7 @@
|
||||
message_admins("grenade primed by an assembly, attached by [key_name_admin(M)]<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>(?)</A> (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[M]'>FLW</A>) and last touched by [key_name_admin(last)]<A HREF='?_src_=holder;adminmoreinfo=\ref[last]'>(?)</A> (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[last]'>FLW</A>) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>[A.name] (JMP)</a>.")
|
||||
log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])")
|
||||
else
|
||||
addtimer(src, "prime", det_time)
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time)
|
||||
var/turf/DT = get_turf(src)
|
||||
var/area/DA = get_area(DT)
|
||||
log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])")
|
||||
|
||||
@@ -7,5 +7,5 @@
|
||||
|
||||
/obj/item/grenade/empgrenade/prime()
|
||||
update_mob()
|
||||
empulse(src, 4, 10)
|
||||
qdel(src)
|
||||
empulse(src, 4, 10, 1)
|
||||
qdel(src)
|
||||
|
||||
@@ -49,11 +49,12 @@
|
||||
var/area/A = get_area(bombturf)
|
||||
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)].")
|
||||
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].")
|
||||
log_game("[key_name(user)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].")
|
||||
investigate_log("[key_name(user)] has primed a [name] for detonation at [A.name] [COORD(bombturf)])", INVESTIGATE_BOMB)
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.throw_mode_on()
|
||||
addtimer(src, "prime", det_time)
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time)
|
||||
|
||||
/obj/item/grenade/iedcasing/prime() //Blowing that can up
|
||||
update_mob()
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
var/area/A = get_area(bombturf)
|
||||
message_admins("[key_name_admin(usr)] has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>")
|
||||
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])")
|
||||
bombers += "[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])"
|
||||
investigate_log("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z])", INVESTIGATE_BOMB)
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.throw_mode_on()
|
||||
|
||||
@@ -1,53 +1,123 @@
|
||||
/obj/item/holosign_creator
|
||||
name = "holographic sign projector"
|
||||
desc = "A handy-dandy hologaphic projector that displays a janitorial sign."
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
desc = "A handy-dandy holographic projector that displays a janitorial sign."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "signmaker"
|
||||
item_state = "electronic"
|
||||
force = 5
|
||||
force = 0
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
origin_tech = "magnets=1;programming=3"
|
||||
flags = NOBLUDGEON
|
||||
var/list/signs = list()
|
||||
var/max_signs = 20
|
||||
|
||||
/obj/item/holosign_creator/Destroy()
|
||||
QDEL_LIST(signs)
|
||||
return ..()
|
||||
var/max_signs = 10
|
||||
var/creation_time = 0 //time to create a holosign in deciseconds.
|
||||
var/holosign_type = /obj/structure/holosign/wetsign
|
||||
var/holocreator_busy = FALSE //to prevent placing multiple holo barriers at once
|
||||
|
||||
/obj/item/holosign_creator/afterattack(atom/target, mob/user, flag)
|
||||
if(flag)
|
||||
if(!check_allowed_items(target, 1))
|
||||
return
|
||||
var/turf/T = get_turf(target)
|
||||
var/obj/effect/overlay/holograph/H = locate() in T
|
||||
var/obj/structure/holosign/H = locate(holosign_type) in T
|
||||
if(H)
|
||||
to_chat(user, "<span class='notice'>You use [src] to destroy [H].</span>")
|
||||
signs -= H
|
||||
to_chat(user, "<span class='notice'>You use [src] to deactivate [H].</span>")
|
||||
qdel(H)
|
||||
else
|
||||
if(signs.len < max_signs)
|
||||
H = new(get_turf(target))
|
||||
signs += H
|
||||
to_chat(user, "<span class='notice'>You create \a [H] with [src].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] is projecting at max capacity!</span>")
|
||||
if(!is_blocked_turf(T, TRUE)) //can't put holograms on a tile that has dense stuff
|
||||
if(holocreator_busy)
|
||||
to_chat(user, "<span class='notice'>[src] is busy creating a hologram.</span>")
|
||||
return
|
||||
if(signs.len < max_signs)
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 20, 1)
|
||||
if(creation_time)
|
||||
holocreator_busy = TRUE
|
||||
if(!do_after(user, creation_time, target = target))
|
||||
holocreator_busy = FALSE
|
||||
return
|
||||
holocreator_busy = FALSE
|
||||
if(signs.len >= max_signs)
|
||||
return
|
||||
if(is_blocked_turf(T, TRUE)) //don't try to sneak dense stuff on our tile during the wait.
|
||||
return
|
||||
H = new holosign_type(get_turf(target), src)
|
||||
to_chat(user, "<span class='notice'>You create [H] with [src].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] is projecting at max capacity!</span>")
|
||||
|
||||
/obj/item/holosign_creator/attack(mob/living/carbon/human/M, mob/user)
|
||||
return
|
||||
|
||||
/obj/item/holosign_creator/attack_self(mob/user)
|
||||
if(signs.len)
|
||||
var/list/L = signs.Copy()
|
||||
for(var/sign in L)
|
||||
qdel(sign)
|
||||
signs -= sign
|
||||
for(var/H in signs)
|
||||
qdel(H)
|
||||
to_chat(user, "<span class='notice'>You clear all active holograms.</span>")
|
||||
|
||||
/obj/effect/overlay/holograph
|
||||
name = "wet floor sign"
|
||||
desc = "The words flicker as if they mean nothing."
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "holosign"
|
||||
anchored = 1
|
||||
armor = list(melee = 0, bullet = 50, laser = 50, energy = 50, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/holosign_creator/security
|
||||
name = "security holobarrier projector"
|
||||
desc = "A holographic projector that creates holographic security barriers."
|
||||
icon_state = "signmaker_sec"
|
||||
holosign_type = /obj/structure/holosign/barrier
|
||||
creation_time = 30
|
||||
max_signs = 6
|
||||
|
||||
/obj/item/holosign_creator/engineering
|
||||
name = "engineering holobarrier projector"
|
||||
desc = "A holographic projector that creates holographic engineering barriers."
|
||||
icon_state = "signmaker_engi"
|
||||
holosign_type = /obj/structure/holosign/barrier/engineering
|
||||
creation_time = 30
|
||||
max_signs = 6
|
||||
|
||||
/obj/item/holosign_creator/atmos
|
||||
name = "ATMOS holofan projector"
|
||||
desc = "A holographic projector that creates holographic barriers that prevent changes in atmosphere conditions."
|
||||
icon_state = "signmaker_engi"
|
||||
holosign_type = /obj/structure/holosign/barrier/atmos
|
||||
creation_time = 0
|
||||
max_signs = 3
|
||||
|
||||
/obj/item/holosign_creator/cyborg
|
||||
name = "Energy Barrier Projector"
|
||||
desc = "A holographic projector that creates fragile energy fields."
|
||||
creation_time = 15
|
||||
max_signs = 9
|
||||
holosign_type = /obj/structure/holosign/barrier/cyborg
|
||||
var/shock = 0
|
||||
|
||||
/obj/item/holosign_creator/cyborg/attack_self(mob/user)
|
||||
if(isrobot(user))
|
||||
var/mob/living/silicon/robot/R = user
|
||||
|
||||
if(shock)
|
||||
to_chat(user, "<span class='notice'>You clear all active holograms, and reset your projector to normal.</span>")
|
||||
holosign_type = /obj/structure/holosign/barrier/cyborg
|
||||
creation_time = 5
|
||||
if(signs.len)
|
||||
for(var/H in signs)
|
||||
qdel(H)
|
||||
shock = 0
|
||||
return
|
||||
else if(R.emagged && !shock)
|
||||
to_chat(user, "<span class='warning'>You clear all active holograms, and overload your energy projector!</span>")
|
||||
holosign_type = /obj/structure/holosign/barrier/cyborg/hacked
|
||||
creation_time = 30
|
||||
if(signs.len)
|
||||
for(var/H in signs)
|
||||
qdel(H)
|
||||
shock = 1
|
||||
return
|
||||
else
|
||||
if(signs.len)
|
||||
for(var/H in signs)
|
||||
qdel(H)
|
||||
to_chat(user, "<span class='notice'>You clear all active holograms.</span>")
|
||||
if(signs.len)
|
||||
for(var/H in signs)
|
||||
qdel(H)
|
||||
to_chat(user, "<span class='notice'>You clear all active holograms.</span>")
|
||||
@@ -13,7 +13,7 @@
|
||||
var/list/fluff_transformations = list() //does it have any special transformations only accessible to it? Should only be subtypes of /obj/item/nullrod
|
||||
|
||||
/obj/item/nullrod/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is killing \himself with \the [src.name]! It looks like \he's trying to get closer to god!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is killing [user.p_them()]self with \the [src.name]! It looks like [user.p_theyre()] trying to get closer to god!</span>")
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/nullrod/attack(mob/M, mob/living/carbon/user)
|
||||
@@ -575,7 +575,7 @@
|
||||
if(missionary in viewers(target)) //missionary must maintain line of sight to target, but the target doesn't necessary need to be able to see the missionary
|
||||
do_convert(target, missionary)
|
||||
else
|
||||
to_chat(missionary, "<span class='warning'>You lost sight of the target before they could be converted!</span>")
|
||||
to_chat(missionary, "<span class='warning'>You lost sight of the target before [target.p_they()] could be converted!</span>")
|
||||
faith -= 25 //they escaped, so you only lost a little faith (to prevent spamming)
|
||||
else //the do_after failed, probably because you moved or dropped the staff
|
||||
to_chat(missionary, "<span class='warning'>Your concentration was broken!</span>")
|
||||
@@ -585,12 +585,12 @@
|
||||
if(!target || !ishuman(target) || !missionary || !ishuman(missionary))
|
||||
return
|
||||
if(ismindslave(target) || target.mind.zealot_master) //mindslaves and zealots override the staff because the staff is just a temporary mindslave
|
||||
to_chat(missionary, "<span class='warning'>Your faith is strong, but their mind is already slaved to someone else's ideals. Perhaps an inquisition would reveal more...</span>")
|
||||
to_chat(missionary, "<span class='warning'>Your faith is strong, but [target.p_their()] mind is already slaved to someone else's ideals. Perhaps an inquisition would reveal more...</span>")
|
||||
faith -= 25 //same faith cost as losing sight of them mid-conversion, but did you just find someone who can lead you to a fellow traitor?
|
||||
return
|
||||
if(ismindshielded(target))
|
||||
faith -= 75
|
||||
to_chat(missionary, "<span class='warning'>Your faith is strong, but their mind remains closed to your ideals. Your resolve helps you retain a bit of faith though.</span>")
|
||||
to_chat(missionary, "<span class='warning'>Your faith is strong, but [target.p_their()] mind remains closed to your ideals. Your resolve helps you retain a bit of faith though.</span>")
|
||||
return
|
||||
else if(target.mind.assigned_role == "Psychiatrist" || target.mind.assigned_role == "Librarian") //fancy book lernin helps counter religion (day 0 job love, what madness!)
|
||||
if(prob(35)) //35% chance to fail
|
||||
@@ -602,7 +602,7 @@
|
||||
faith -= 100
|
||||
else if(target.mind.assigned_role == "Civilian")
|
||||
if(prob(55)) //55% chance to take LESS faith than normal, because civies are stupid and easily manipulated
|
||||
to_chat(missionary, "<span class='notice'>Your message seems to resound well with [target]; converting them was much easier than expected.</span>")
|
||||
to_chat(missionary, "<span class='notice'>Your message seems to resound well with [target]; converting [target.p_them()] was much easier than expected.</span>")
|
||||
faith -= 50
|
||||
else //45% chance to take the normal 100 faith cost
|
||||
to_chat(missionary, "<span class='notice'>You successfully convert [target] to your cause. The following grows because of your faith!</span>")
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
/obj/item/implant/emp/activate()
|
||||
uses--
|
||||
empulse(imp_in, 3, 5)
|
||||
empulse(imp_in, 3, 5, 1)
|
||||
if(!uses)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -55,11 +55,11 @@
|
||||
ticker.mode.implanter[ref] = implanters
|
||||
ticker.mode.traitors += H.mind
|
||||
H.mind.special_role = SPECIAL_ROLE_TRAITOR
|
||||
to_chat(H, "<span class='warning'><B>You're now completely loyal to [user.name]!</B> You now must lay down your life to protect them and assist in their goals at any cost.</span>")
|
||||
to_chat(H, "<span class='warning'><B>You're now completely loyal to [user.name]!</B> You now must lay down your life to protect [user.p_them()] and assist in [user.p_their()] goals at any cost.</span>")
|
||||
var/datum/objective/protect/mindslave/MS = new
|
||||
MS.owner = H.mind
|
||||
MS.target = user.mind
|
||||
MS.explanation_text = "Obey every order from and protect [user.real_name], the [user.mind.assigned_role=="MODE" ? (user.mind.special_role) : (user.mind.assigned_role)]."
|
||||
MS.explanation_text = "Obey every order from and protect [user.real_name], the [user.mind.assigned_role == user.mind.special_role ? (user.mind.special_role) : (user.mind.assigned_role)]."
|
||||
H.mind.objectives += MS
|
||||
for(var/datum/objective/objective in H.mind.objectives)
|
||||
to_chat(H, "<B>Objective #1</B>: [objective.explanation_text]")
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
return
|
||||
var/mob/M = G.affecting
|
||||
if(M.buckled_mob)
|
||||
to_chat(usr, "[M] will not fit into [src] because they have a slime latched onto their head.")
|
||||
to_chat(usr, "[M] will not fit into [src] because [M.p_they()] [M.p_have()] a slime latched onto [M.p_their()] head.")
|
||||
return
|
||||
if(put_mob(M))
|
||||
qdel(G)
|
||||
|
||||
@@ -113,9 +113,9 @@
|
||||
sharp = 1
|
||||
|
||||
/obj/item/kitchen/knife/suicide_act(mob/user)
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>"))
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting [user.p_their()] wrists with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting [user.p_their()] throat with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is slitting [user.p_their()] stomach open with the [name]! It looks like [user.p_theyre()] trying to commit seppuku.</span>"))
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/kitchen/knife/plastic
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is sticking \his head in the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is sticking [user.p_their()] head in the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/New()
|
||||
..()
|
||||
addtimer(src, "dissipate", 100)
|
||||
addtimer(CALLBACK(src, .proc/dissipate), 100)
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate()
|
||||
if(!ismob(loc))
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(affecting.receive_damage( 0, 5 )) //INFERNO
|
||||
H.UpdateDamageIcon()
|
||||
H.updatehealth()
|
||||
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src], they however burn their finger in the process.</span>")
|
||||
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src], [user.p_they()] however burn[user.p_s()] [user.p_their()] finger in the process.</span>")
|
||||
|
||||
set_light(2)
|
||||
processing_objects.Add(src)
|
||||
@@ -70,7 +70,7 @@
|
||||
force = 0
|
||||
attack_verb = null //human_defense.dm takes care of it
|
||||
if(istype(src, /obj/item/lighter/zippo) )
|
||||
user.visible_message("<span class='rose'>You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing. Wow.")
|
||||
user.visible_message("<span class='rose'>You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow.")
|
||||
playsound(src.loc, 'sound/items/ZippoClose.ogg', 25, 1)
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] quietly shuts off the [src].")
|
||||
@@ -95,7 +95,7 @@
|
||||
cig.attackby(src, user)
|
||||
else
|
||||
if(istype(src, /obj/item/lighter/zippo))
|
||||
cig.light("<span class='rose'>[user] whips the [name] out and holds it for [M]. Their arm is as steady as the unflickering flame they light \the [cig] with.</span>")
|
||||
cig.light("<span class='rose'>[user] whips the [name] out and holds it for [M]. [user.p_their(TRUE)] arm is as steady as the unflickering flame [user.p_they()] light[user.p_s()] \the [cig] with.</span>")
|
||||
else
|
||||
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
|
||||
M.update_inv_wear_mask()
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
var/colormap = list(red=LIGHT_COLOR_RED, blue=LIGHT_COLOR_LIGHTBLUE, green=LIGHT_COLOR_GREEN, purple=LIGHT_COLOR_PURPLE, rainbow=LIGHT_COLOR_WHITE)
|
||||
|
||||
/obj/item/melee/energy/suicide_act(mob/user)
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>"))
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting [user.p_their()] stomach open with the [name]! It looks like [user.p_theyre()] trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>"))
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/melee/energy/attack_self(mob/living/carbon/user)
|
||||
@@ -80,7 +80,7 @@
|
||||
light_color = LIGHT_COLOR_WHITE
|
||||
|
||||
/obj/item/melee/energy/axe/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] swings the [name] towards [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
return (BRUTELOSS|FIRELOSS)
|
||||
|
||||
/obj/item/melee/energy/sword
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
/obj/item/melee/chainofcommand/suicide_act(mob/user)
|
||||
to_chat(viewers(user), "<span class='suicide'>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
to_chat(viewers(user), "<span class='suicide'>[user] is strangling [user.p_them()]self with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/melee/rapier
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
to_chat(user, "<span class='warning'>\The [src] lets out a weak hiss and doesn't react!</span>")
|
||||
return
|
||||
if(user && (CLUMSY in user.mutations) && prob(75))
|
||||
user.visible_message("<span class='warning'>[user] loses their grip on [src], causing it to go off!</span>", "<span class='userdanger'>[src] slips out of your hands and goes off!</span>")
|
||||
user.visible_message("<span class='warning'>[user] loses [user.p_their()] grip on [src], causing it to go off!</span>", "<span class='userdanger'>[src] slips out of your hands and goes off!</span>")
|
||||
user.drop_item()
|
||||
if(prob(10))
|
||||
target = get_turf(user)
|
||||
|
||||
@@ -1,211 +0,0 @@
|
||||
/obj/item/stock_parts/cell
|
||||
name = "power cell"
|
||||
desc = "A rechargable electrochemical power cell."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "cell"
|
||||
item_state = "cell"
|
||||
origin_tech = "powerstorage=1"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/charge = 0 // note %age conveted to actual charge in New
|
||||
var/maxcharge = 1000
|
||||
materials = list(MAT_METAL=700, MAT_GLASS=50)
|
||||
var/rigged = 0 // true if rigged to explode
|
||||
var/chargerate = 100 //how much power is given every tick in a recharger
|
||||
var/self_recharge = 0 //does it self recharge, over time, or not?
|
||||
var/grown_battery = FALSE // If it's a grown that acts as a battery, add a wire overlay to it.
|
||||
|
||||
/obj/item/stock_parts/cell/New()
|
||||
..()
|
||||
processing_objects.Add(src)
|
||||
charge = maxcharge
|
||||
updateicon()
|
||||
|
||||
/obj/item/stock_parts/cell/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/stock_parts/cell/vv_edit_var(var_name, var_value)
|
||||
switch(var_name)
|
||||
if("self_recharge")
|
||||
if(var_value)
|
||||
processing_objects.Add(src)
|
||||
else
|
||||
processing_objects.Remove(src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/stock_parts/cell/suicide_act(mob/user)
|
||||
to_chat(viewers(user), "<span class='suicide'>[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (FIRELOSS)
|
||||
|
||||
/obj/item/stock_parts/cell/process()
|
||||
if(self_recharge)
|
||||
give(chargerate * 0.25)
|
||||
else
|
||||
return PROCESS_KILL
|
||||
|
||||
/obj/item/stock_parts/cell/proc/updateicon()
|
||||
overlays.Cut()
|
||||
if(grown_battery)
|
||||
overlays += image('icons/obj/power.dmi', "grown_wires")
|
||||
if(charge < 0.01)
|
||||
return
|
||||
else if(charge/maxcharge >=0.995)
|
||||
overlays += image('icons/obj/power.dmi', "cell-o2")
|
||||
else
|
||||
overlays += image('icons/obj/power.dmi', "cell-o1")
|
||||
|
||||
/obj/item/stock_parts/cell/crap
|
||||
name = "\improper Nanotrasen brand rechargable AA battery"
|
||||
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
|
||||
maxcharge = 500
|
||||
materials = list(MAT_GLASS=40)
|
||||
rating = 2
|
||||
|
||||
/obj/item/stock_parts/cell/crap/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/secborg
|
||||
name = "\improper Security borg rechargable D battery"
|
||||
origin_tech = null
|
||||
maxcharge = 600 //600 max charge / 100 charge per shot = six shots
|
||||
materials = list(MAT_GLASS=40)
|
||||
rating = 2.5
|
||||
|
||||
/obj/item/stock_parts/cell/secborg/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/high
|
||||
name = "high-capacity power cell"
|
||||
origin_tech = "powerstorage=2"
|
||||
icon_state = "hcell"
|
||||
maxcharge = 10000
|
||||
materials = list(MAT_GLASS=60)
|
||||
rating = 3
|
||||
chargerate = 1500
|
||||
|
||||
/obj/item/stock_parts/cell/high/plus
|
||||
name = "high-capacity power cell+"
|
||||
desc = "Where did these come from?"
|
||||
icon_state = "h+cell"
|
||||
maxcharge = 15000
|
||||
chargerate = 2250
|
||||
|
||||
/obj/item/stock_parts/cell/high/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/super
|
||||
name = "super-capacity power cell"
|
||||
origin_tech = "powerstorage=3;materials=3"
|
||||
icon_state = "scell"
|
||||
maxcharge = 20000
|
||||
materials = list(MAT_GLASS=300)
|
||||
rating = 4
|
||||
chargerate = 2000
|
||||
|
||||
/obj/item/stock_parts/cell/super/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/hyper
|
||||
name = "hyper-capacity power cell"
|
||||
origin_tech = "powerstorage=4;engineering=4;materials=4"
|
||||
icon_state = "hpcell"
|
||||
maxcharge = 30000
|
||||
materials = list(MAT_GLASS=400)
|
||||
rating = 5
|
||||
chargerate = 3000
|
||||
|
||||
/obj/item/stock_parts/cell/hyper/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/bluespace
|
||||
name = "bluespace power cell"
|
||||
origin_tech = "powerstorage=5;bluespace=4;materials=4;engineering=4"
|
||||
icon_state = "bscell"
|
||||
maxcharge = 40000
|
||||
materials = list(MAT_GLASS=600)
|
||||
rating = 6
|
||||
chargerate = 4000
|
||||
|
||||
/obj/item/stock_parts/cell/bluespace/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/infinite
|
||||
name = "infinite-capacity power cell!"
|
||||
icon_state = "icell"
|
||||
origin_tech = "powerstorage=7"
|
||||
maxcharge = 30000
|
||||
materials = list(MAT_GLASS=1000)
|
||||
rating = 6
|
||||
chargerate = 30000
|
||||
|
||||
/obj/item/stock_parts/cell/infinite/use()
|
||||
return 1
|
||||
|
||||
/obj/item/stock_parts/cell/potato
|
||||
name = "potato battery"
|
||||
desc = "A rechargable starch based power cell."
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
icon_state = "potato"
|
||||
origin_tech = "powerstorage=1;biotech=1"
|
||||
charge = 100
|
||||
maxcharge = 300
|
||||
materials = list()
|
||||
rating = 1
|
||||
grown_battery = TRUE //it has the overlays for wires
|
||||
|
||||
/obj/item/stock_parts/cell/high/slime
|
||||
name = "charged slime core"
|
||||
desc = "A yellow slime core infused with plasma, it crackles with power."
|
||||
origin_tech = "powerstorage=5;biotech=4"
|
||||
icon = 'icons/mob/slimes.dmi'
|
||||
icon_state = "yellow slime extract"
|
||||
materials = list()
|
||||
self_recharge = 1 // Infused slime cores self-recharge, over time
|
||||
chargerate = 500
|
||||
|
||||
/obj/item/stock_parts/cell/pulse //200 pulse shots
|
||||
name = "pulse rifle power cell"
|
||||
maxcharge = 40000
|
||||
rating = 3
|
||||
chargerate = 1500
|
||||
|
||||
/obj/item/stock_parts/cell/pulse/carbine //25 pulse shots
|
||||
name = "pulse carbine power cell"
|
||||
maxcharge = 5000
|
||||
|
||||
/obj/item/stock_parts/cell/pulse/pistol //10 pulse shots
|
||||
name = "pulse pistol power cell"
|
||||
maxcharge = 2000
|
||||
|
||||
/obj/item/stock_parts/cell/ninja
|
||||
name = "spider-clan power cell"
|
||||
desc = "A standard ninja-suit power cell."
|
||||
maxcharge = 10000
|
||||
rating = 3
|
||||
materials = list(MAT_GLASS=60)
|
||||
|
||||
/obj/item/stock_parts/cell/emproof
|
||||
name = "\improper EMP-proof cell"
|
||||
desc = "An EMP-proof cell."
|
||||
maxcharge = 500
|
||||
rating = 2
|
||||
|
||||
/obj/item/stock_parts/cell/emproof/empty/New()
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/stock_parts/cell/emproof/emp_act(severity)
|
||||
return
|
||||
|
||||
/obj/item/stock_parts/cell/emproof/corrupt()
|
||||
return
|
||||
@@ -83,7 +83,7 @@
|
||||
user.do_attack_animation(target)
|
||||
|
||||
target.apply_damage(force * fisto_setting, BRUTE)
|
||||
target.visible_message("<span class='danger'>[user]'s powerfist lets out a loud hiss as they punch [target.name]!</span>", \
|
||||
target.visible_message("<span class='danger'>[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!</span>", \
|
||||
"<span class='userdanger'>You cry out in pain as [user]'s punch flings you backwards!</span>")
|
||||
new /obj/effect/temp_visual/kinetic_blast(target.loc)
|
||||
playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1)
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
playsound(loc, 'sound/goonstation/misc/Scissor.ogg', 100, 1)
|
||||
if(do_after(user, 50 * toolspeed, target = H))
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
user.visible_message("<span class='danger'>[user] abruptly stops cutting [M]'s hair and slices their throat!</span>", "<span class='danger'>You stop cutting [M]'s hair and slice their throat!</span>") //Just a little off the top.
|
||||
user.visible_message("<span class='danger'>[user] abruptly stops cutting [M]'s hair and slices [M.p_their()] throat!</span>", "<span class='danger'>You stop cutting [M]'s hair and slice [M.p_their()] throat!</span>") //Just a little off the top.
|
||||
H.AdjustLoseBreath(10) //30 Oxy damage over time
|
||||
H.apply_damage(18, BRUTE, "head", sharp =1, used_weapon = "scissors")
|
||||
var/turf/location = get_turf(src)
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
armor = list("melee" = 100, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0)
|
||||
|
||||
/obj/item/shard/suicide_act(mob/user)
|
||||
to_chat(viewers(user), pick("<span class='danger'>[user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.</span>",
|
||||
"<span class='danger'>[user] is slitting \his throat with \the [src]! It looks like \he's trying to commit suicide.</span>"))
|
||||
to_chat(viewers(user), pick("<span class='danger'>[user] is slitting [user.p_their()] wrists with [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>",
|
||||
"<span class='danger'>[user] is slitting [user.p_their()] throat with [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>"))
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/shard/New()
|
||||
|
||||
@@ -49,10 +49,10 @@
|
||||
if(istype(W, /obj/item/storage/backpack/holding))
|
||||
var/response = alert(user, "Are you sure you want to put the bag of holding inside another bag of holding?","Are you sure you want to die?","Yes","No")
|
||||
if(response == "Yes")
|
||||
user.visible_message("<span class='warning'>[user] grins as \he begins to put a Bag of Holding into a Bag of Holding!</span>", "<span class='warning'>You begin to put the Bag of Holding into the Bag of Holding!</span>")
|
||||
user.visible_message("<span class='warning'>[user] grins as [user.p_they()] begin[user.p_s()] to put a Bag of Holding into a Bag of Holding!</span>", "<span class='warning'>You begin to put the Bag of Holding into the Bag of Holding!</span>")
|
||||
if(do_after(user, 30, target=src))
|
||||
investigate_log("has become a singularity. Caused by [user.key]","singulo")
|
||||
user.visible_message("<span class='warning'>[user] erupts in evil laughter as \he puts the Bag of Holding into another Bag of Holding!</span>", "<span class='warning'>You can't help but laugh wildly as you put the Bag of Holding into another Bag of Holding, complete darkness surrounding you.</span>","<span class='warning'> You hear the sound of scientific evil brewing! </span>")
|
||||
user.visible_message("<span class='warning'>[user] erupts in evil laughter as [user.p_they()] put[user.p_s()] the Bag of Holding into another Bag of Holding!</span>", "<span class='warning'>You can't help but laugh wildly as you put the Bag of Holding into another Bag of Holding, complete darkness surrounding you.</span>","<span class='warning'> You hear the sound of scientific evil brewing! </span>")
|
||||
qdel(W)
|
||||
var/obj/singularity/singulo = new /obj/singularity(get_turf(user))
|
||||
singulo.energy = 300 //To give it a small boost
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
cant_hold = list(/obj/item/disk/nuclear)
|
||||
|
||||
/obj/item/storage/bag/trash/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] puts the [name] over [user.p_their()] head and starts chomping at the insides! Disgusting!</span>")
|
||||
playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1)
|
||||
return (TOXLOSS)
|
||||
|
||||
@@ -453,9 +453,9 @@
|
||||
sleep(rand(2,4))
|
||||
if( droppedSomething )
|
||||
if( foundtable )
|
||||
user.visible_message("<span class='notice'>[user] unloads their service tray.</span>")
|
||||
user.visible_message("<span class='notice'>[user] unloads [user.p_their()] service tray.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] drops all the items on their tray.</span>")
|
||||
user.visible_message("<span class='notice'>[user] drops all the items on [user.p_their()] tray.</span>")
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -58,8 +58,8 @@
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/t_scanner,
|
||||
/obj/item/analyzer,
|
||||
/obj/item/taperoll/engineering,
|
||||
/obj/item/extinguisher/mini)
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/holosign_creator)
|
||||
|
||||
/obj/item/storage/belt/utility/full/New()
|
||||
..()
|
||||
@@ -192,7 +192,7 @@
|
||||
/obj/item/melee/baton,
|
||||
/obj/item/melee/classic_baton,
|
||||
/obj/item/flashlight/seclite,
|
||||
/obj/item/taperoll/police,
|
||||
/obj/item/holosign_creator/security,
|
||||
/obj/item/melee/classic_baton/telescopic,
|
||||
/obj/item/restraints/legcuffs/bola)
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
if(M.stat !=2)
|
||||
/*if((M.mind in ticker.mode.cult) && (prob(20)))
|
||||
to_chat(M, "<span class='warning'>The power of [src.deity_name] clears your mind of heresy!</span>")
|
||||
to_chat(user, "<span class='warning'>You see how [M]'s eyes become clear, the cult no longer holds control over him!</span>")
|
||||
to_chat(user, "<span class='warning'>You see how [M]'s eyes become clear, the cult no longer holds control over [M.p_them()]!</span>")
|
||||
ticker.mode.remove_cultist(M.mind)*/
|
||||
if((istype(M, /mob/living/carbon/human) && prob(60)))
|
||||
bless(M)
|
||||
|
||||
@@ -421,6 +421,7 @@
|
||||
hide_from(usr)
|
||||
for(var/obj/item/I in contents)
|
||||
remove_from_storage(I, T)
|
||||
CHECK_TICK
|
||||
|
||||
/obj/item/storage/New()
|
||||
can_hold = typecacheof(can_hold)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/hitcost = 1000
|
||||
|
||||
/obj/item/melee/baton/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
return (FIRELOSS)
|
||||
|
||||
/obj/item/melee/baton/New()
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
else if(istype(W, /obj/item/screwdriver))
|
||||
if(bcell)
|
||||
bcell.updateicon()
|
||||
bcell.update_icon()
|
||||
bcell.loc = get_turf(src.loc)
|
||||
bcell = null
|
||||
to_chat(user, "<span class='notice'>You remove the cell from the [src].</span>")
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
/obj/item/melee/baton/attack(mob/M, mob/living/user)
|
||||
if(status && (CLUMSY in user.mutations) && prob(50))
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits themself with [src]!</span>", \
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits [user.p_them()]self with [src]!</span>", \
|
||||
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
|
||||
user.Weaken(stunforce*3)
|
||||
deductcharge(hitcost)
|
||||
@@ -175,7 +175,7 @@
|
||||
user.Weaken(stunforce)
|
||||
user.stuttering = stunforce
|
||||
deductcharge(hitcost)
|
||||
user.visible_message("<span class='warning'>[user] shocks themself while attempting to wash the active [src]!</span>", \
|
||||
user.visible_message("<span class='warning'>[user] shocks [user.p_them()]self while attempting to wash the active [src]!</span>", \
|
||||
"<span class='userdanger'>You unwisely attempt to wash [src] while it's still on.</span>")
|
||||
playsound(src, "sparks", 50, 1)
|
||||
return 1
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/*/obj/item/syndicate_uplink
|
||||
name = "station bounced radio"
|
||||
desc = "Remain silent about this..."
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon_state = "radio"
|
||||
var/temp = null
|
||||
var/uses = 10.0
|
||||
var/selfdestruct = 0.0
|
||||
var/traitor_frequency = 0.0
|
||||
var/mob/currentUser = null
|
||||
var/obj/item/radio/origradio = null
|
||||
flags = CONDUCT | ONBELT
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
item_state = "radio"
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
materials = list(MAT_METAL=100)
|
||||
origin_tech = "magnets=2;syndicate=3"*/
|
||||
|
||||
/obj/item/SWF_uplink
|
||||
name = "station-bounced radio"
|
||||
desc = "used to comunicate it appears."
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon_state = "radio"
|
||||
var/temp = null
|
||||
var/uses = 4.0
|
||||
var/selfdestruct = 0.0
|
||||
var/traitor_frequency = 0.0
|
||||
var/obj/item/radio/origradio = null
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
item_state = "radio"
|
||||
throwforce = 5
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
materials = list(MAT_METAL=100)
|
||||
origin_tech = "magnets=1"
|
||||
@@ -14,11 +14,11 @@
|
||||
|
||||
/obj/item/stack/tape_roll/attack(mob/living/carbon/human/M as mob, mob/living/user as mob)
|
||||
if(M.wear_mask)
|
||||
to_chat(user, "Remove their mask first!")
|
||||
to_chat(user, "Remove [M.p_their()] mask first!")
|
||||
else if(amount < 2)
|
||||
to_chat(user, "You'll need more tape for this!")
|
||||
else if(!M.check_has_mouth())
|
||||
to_chat(user, "They have no mouth to tape over!")
|
||||
to_chat(user, "[M.p_they(TRUE)] [M.p_have()] no mouth to tape over!")
|
||||
else
|
||||
if(M == user)
|
||||
to_chat(user, "You try to tape your own mouth shut.")
|
||||
@@ -29,7 +29,7 @@
|
||||
if(M == user)
|
||||
to_chat(user, "You cover your own mouth with a piece of duct tape.")
|
||||
else
|
||||
to_chat(user, "You cover [M]'s mouth with a piece of duct tape. That will shut them up!")
|
||||
to_chat(user, "You cover [M]'s mouth with a piece of duct tape. That will shut [M.p_them()] up!")
|
||||
M.visible_message("<span class='warning'>[user] tapes [M]'s mouth shut!</span>")
|
||||
var/obj/item/clothing/mask/muzzle/G = new /obj/item/clothing/mask/muzzle/tapegag
|
||||
M.equip_to_slot(G, slot_wear_mask)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
..()
|
||||
if(status)
|
||||
if((CLUMSY in user.mutations) && prob(50))
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits themself with [src]!</span>", \
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits [user.p_them()]self with [src]!</span>", \
|
||||
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
|
||||
user.Weaken(stunforce*3)
|
||||
deductcharge(hitcost)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
toolspeed = 1
|
||||
|
||||
/obj/item/wrench/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is beating themselves to death with [src]! It looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
user.put_in_active_hand(s_drill)
|
||||
|
||||
/obj/item/wrench/power/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is pressing [src] against their head! It looks like they're trying to commit suicide!")
|
||||
user.visible_message("<span class='suicide'>[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/wrench/medical
|
||||
@@ -86,7 +86,7 @@
|
||||
attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked")
|
||||
|
||||
/obj/item/wrench/medical/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is praying to the medical wrench to take their soul. It looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
// TODO Make them glow with the power of the M E D I C A L W R E N C H
|
||||
// during their ascension
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
toolspeed = 0.5
|
||||
|
||||
/obj/item/screwdriver/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is stabbing [src] into their [pick("temple", "heart")]! It looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/screwdriver/New(loc, var/param_color = null)
|
||||
@@ -192,7 +192,7 @@
|
||||
toolspeed = 0.25
|
||||
|
||||
/obj/item/screwdriver/power/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is putting [src] to their temple. It looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/screwdriver/power/attack_self(mob/user)
|
||||
@@ -247,7 +247,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/wirecutters/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is cutting at their arteries with [src]! It looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, usesound, 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
toolspeed = 0.25
|
||||
|
||||
/obj/item/wirecutters/power/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is wrapping \the [src] around their neck. It looks like they're trying to rip their head off!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is wrapping \the [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!</span>")
|
||||
playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
@@ -338,7 +338,7 @@
|
||||
to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].")
|
||||
|
||||
/obj/item/weldingtool/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] welds their every orifice closed! It looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return (FIRELOSS)
|
||||
|
||||
/obj/item/weldingtool/proc/update_torch()
|
||||
@@ -699,7 +699,7 @@ obj/item/weldingtool/experimental/process()
|
||||
var/airlock_open_time = 100 // Time required to open powered airlocks
|
||||
|
||||
/obj/item/crowbar/power/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is putting their head in [src], it looks like they're trying to commit suicide!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is putting [user.p_their()] head in [src]. It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
|
||||
@@ -176,16 +176,16 @@
|
||||
icon_state = "fireaxe[wielded]"
|
||||
return
|
||||
|
||||
/obj/item/twohanded/fireaxe/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
..()
|
||||
if(A && wielded && (istype(A,/obj/structure/window) || istype(A,/obj/structure/grille))) //destroys windows and grilles in one hit
|
||||
|
||||
if(istype(A,/obj/structure/window))
|
||||
/obj/item/twohanded/fireaxe/afterattack(atom/A, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(wielded)
|
||||
if(istype(A, /obj/structure/window))
|
||||
var/obj/structure/window/W = A
|
||||
W.destroy()
|
||||
else
|
||||
qdel(A)
|
||||
W.take_damage(200, BRUTE, "melee", 0)
|
||||
else if(istype(A, /obj/structure/grille))
|
||||
var/obj/structure/grille/G = A
|
||||
G.take_damage(40, BRUTE, "melee", 0)
|
||||
|
||||
/*
|
||||
* Double-Bladed Energy Swords - Cheridan
|
||||
@@ -247,6 +247,11 @@
|
||||
return ..()
|
||||
return 0
|
||||
|
||||
/obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up
|
||||
if(wielded)
|
||||
to_chat(user, "<span class='warning'>You can't pick up such a dangerous item with your meaty hands without losing fingers, better not to!</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/item/twohanded/dualsaber/green
|
||||
blade_color = "green"
|
||||
|
||||
@@ -742,7 +747,7 @@
|
||||
if(charged)
|
||||
charged--
|
||||
Z.take_organ_damage(0,30)
|
||||
user.visible_message("<span class='danger'>[user] slams the charged axe into [Z.name] with all their might!</span>")
|
||||
user.visible_message("<span class='danger'>[user] slams the charged axe into [Z.name] with all [user.p_their()] might!</span>")
|
||||
playsound(loc, 'sound/magic/lightningbolt.ogg', 5, 1)
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
@@ -751,7 +756,7 @@
|
||||
if(A && wielded && (istype(A, /obj/structure/window) || istype(A, /obj/structure/grille)))
|
||||
if(istype(A, /obj/structure/window))
|
||||
var/obj/structure/window/W = A
|
||||
W.destroy()
|
||||
W.deconstruct(FALSE)
|
||||
if(prob(4))
|
||||
charged++
|
||||
user.visible_message("<span class='notice'>The axe starts to emit an electric buzz!</span>")
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
|
||||
/obj/item/banhammer/suicide_act(mob/user)
|
||||
to_chat(viewers(user), "<span class='suicide'>[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life.</span>")
|
||||
to_chat(viewers(user), "<span class='suicide'>[user] is hitting [user.p_them()]self with the [src.name]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.</span>")
|
||||
return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS)
|
||||
|
||||
/obj/item/sord
|
||||
@@ -28,7 +28,7 @@
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
/obj/item/sord/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is trying to impale themself with [src]! It might be a suicide attempt if it weren't so shitty.</span>", \
|
||||
user.visible_message("<span class='suicide'>[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.</span>", \
|
||||
"<span class='suicide'>You try to impale yourself with [src], but it's USELESS...</span>")
|
||||
return SHAME
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
block_chance = 50
|
||||
|
||||
/obj/item/claymore/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is falling on the [name]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
return(BRUTELOSS)
|
||||
|
||||
/obj/item/claymore/ceremonial
|
||||
@@ -75,7 +75,7 @@
|
||||
slot_flags = null
|
||||
|
||||
/obj/item/katana/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>")
|
||||
user.visible_message("<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/harpoon
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/datum/unarmed_attack/attack = H.species.unarmed
|
||||
if(istype(attack, /datum/unarmed_attack/claws))
|
||||
H.visible_message("<span class='notice'>[H] sharpens \his claws on the [src]!</span>", "<span class='notice'>You sharpen your claws on the [src].</span>")
|
||||
H.visible_message("<span class='notice'>[H] sharpens [H.p_their()] claws on the [src]!</span>", "<span class='notice'>You sharpen your claws on the [src].</span>")
|
||||
playsound(get_turf(H), usesound, 50, 1)
|
||||
|
||||
/obj/item/whetstone/super
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
// WIRES
|
||||
|
||||
/obj/item/wire
|
||||
desc = "This is just a simple piece of regular insulated wire."
|
||||
name = "wire"
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "item_wire"
|
||||
var/amount = 1.0
|
||||
var/laying = 0.0
|
||||
var/old_lay = null
|
||||
materials = list(MAT_METAL=40)
|
||||
attack_verb = list("whipped", "lashed", "disciplined", "tickled")
|
||||
|
||||
suicide_act(mob/user)
|
||||
to_chat(viewers(user), "<span class='danger'>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (OXYLOSS)
|
||||
|
||||
|
||||
/obj/item/wire/proc/update()
|
||||
if(src.amount > 1)
|
||||
src.icon_state = "spool_wire"
|
||||
src.desc = text("This is just spool of regular insulated wire. It consists of about [] unit\s of wire.", src.amount)
|
||||
else
|
||||
src.icon_state = "item_wire"
|
||||
src.desc = "This is just a simple piece of regular insulated wire."
|
||||
return
|
||||
|
||||
/obj/item/wire/attack_self(mob/user as mob)
|
||||
if(src.laying)
|
||||
src.laying = 0
|
||||
to_chat(user, "<span class='notice'>You're done laying wire!</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You are not using this to lay wire...</span>")
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user