Reduce lines by removing blank lines added by PJ's script

This commit is contained in:
Tigercat2000
2016-04-05 08:25:57 -07:00
parent 9d430844c3
commit 78f53553f8
1049 changed files with 3 additions and 8630 deletions
-2
View File
@@ -37,10 +37,8 @@
if (isslime(M) || isAI(M))
if(M == usr)
to_chat(M, "<span class='warning'>You are unable to buckle yourself to the [src]!</span>")
else
to_chat(usr, "<span class='warning'>You are unable to buckle [M] to the [src]!</span>")
return 0
M.buckled = src
-4
View File
@@ -319,22 +319,18 @@
switch(status)
if(BURST)
to_chat(user, "<span class='notice'>You clear the hatched egg.</span>")
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
qdel(src)
return
if(GROWING)
to_chat(user, "<span class='notice'>The child is not developed yet.</span>")
return
if(GROWN)
to_chat(user, "<span class='notice'>You retrieve the child.</span>")
Burst(0)
return
else
to_chat(user, "<span class='notice'>It feels slimy.</span>")
user.changeNext_move(CLICK_CD_MELEE)
-1
View File
@@ -36,7 +36,6 @@
if(istype(I, /obj/item/device/analyzer))
to_chat(user, "<span class='notice'>Analyzing... [src]'s unstable field is fluctuating along frequency [aSignal.code]:[format_frequency(aSignal.frequency)].</span>")
///////////////////////
/obj/effect/anomaly/grav
@@ -51,7 +51,6 @@
else
isactive[name] = t.fields["p_stat"]
// to_chat(world, "[name]: [rank]")
//cael - to prevent multiple appearances of a player/job combination, add a continue after each line
var/department = 0
if(real_rank in command_positions)
@@ -93,7 +93,6 @@ var/global/list/image/splatter_cache=list()
var/taken = rand(1,amount)
amount -= taken
to_chat(user, "<span class='notice'>You get some of \the [src] on your hands.</span>")
if (!user.blood_DNA)
user.blood_DNA = list()
user.blood_DNA |= blood_DNA.Copy()
@@ -142,7 +141,6 @@ var/global/list/image/splatter_cache=list()
..(user)
to_chat(user, "It reads: <font color='[basecolor]'>\"[message]\"<font>")
/obj/effect/decal/cleanable/blood/gibs
name = "gibs"
desc = "They look bloody and gruesome."
@@ -79,7 +79,6 @@ var/global/list/image/fluidtrack_cache=list()
// Process 4 bits
for(var/bi=0;bi<4;bi++)
to_chat(b=1, bi)
// COMING BIT
// If setting
if(comingdir&b)
@@ -15,14 +15,11 @@
if(src.reagents && W.reagents && !noscoop)
if(!src.reagents.total_volume)
to_chat(user, "<span class='notice'>There isn't enough [src] to scoop up!</span>")
return
if(W.reagents.total_volume >= W.reagents.maximum_volume)
to_chat(user, "<span class='notice'>[W] is full!</span>")
return
to_chat(user, "<span class='notice'>You scoop the [src] into [W]!</span>")
reagents.trans_to(W, reagents.total_volume)
if(!reagents.total_volume && !noclear) //scooped up all of it
qdel(src)
@@ -34,7 +31,6 @@
src.reagents.handle_reactions()
to_chat(user, "<span class='notice'>You heat [src] with [W]!</span>")
/obj/effect/decal/cleanable/ex_act()
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
@@ -60,7 +60,6 @@
if(check)
to_chat(user, "<span class='notice'>The wall is far too cluttered to place a poster!</span>")
return
resulting_poster.loc = W //Looks like it's uncluttered enough. Place the poster
@@ -312,11 +311,9 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
if(ruined)
to_chat(user, "<span class='notice'>You remove the remnants of the poster.</span>")
qdel(src)
else
to_chat(user, "<span class='notice'>You carefully remove the poster from the wall.</span>")
roll_and_drop(user.loc)
return
@@ -358,18 +355,15 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
for(var/obj/O in user.loc.contents) //Let's see if it already has a poster on it or too much stuff
if(istype(O,/obj/structure/sign))
to_chat(user, "<span class='notice'>The wall is far too cluttered to place a poster!</span>")
return
stuff_on_wall++
if(stuff_on_wall >= 4)
to_chat(user, "<span class='notice'>The wall is far too cluttered to place a poster!</span>")
return
to_chat(user, "<span class='notice'>You start placing the poster on the wall...</span>")//Looks like it's uncluttered enough. Place the poster.
//declaring D because otherwise if P gets 'deconstructed' we lose our reference to P.resulting_poster
var/obj/structure/sign/poster/D = P.resulting_poster
@@ -390,7 +384,6 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
D.pixel_y = 0
else
to_chat(user, "<span class='notice'>You cannot reach the wall from here!</span>")
return
flick("poster_being_set",D)
@@ -404,7 +397,6 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
if(istype(src,/turf/simulated/wall) && user && user.loc == temp_loc) //Let's check if everything is still there
to_chat(user, "<span class='notice'>You place the poster!</span>")
else
D.roll_and_drop(temp_loc)
return
@@ -1094,7 +1094,6 @@ steam.start() -- spawns the effect
else
to_chat(user, "<span class='notice'>You hit the metal foam but bounce off it.</span>")
/obj/structure/foamedmetal/attackby(var/obj/item/I, var/mob/user, params)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
@@ -1112,7 +1111,6 @@ steam.start() -- spawns the effect
else
to_chat(user, "<span class='warning'>You hit the metal foam to no effect.</span>")
/obj/structure/foamedmetal/attack_animal(mob/living/simple_animal/M)
M.do_attack_animation(src)
if(M.melee_damage_upper == 0)
@@ -1159,11 +1157,9 @@ steam.start() -- spawns the effect
for(var/mob/M in viewers(5, location))
to_chat(M, "\red The solution violently explodes.")
for(var/mob/M in viewers(1, location))
if (prob (50 * amount))
to_chat(M, "\red The explosion knocks you down.")
M.Weaken(rand(1,5))
return
else
@@ -1188,7 +1184,6 @@ steam.start() -- spawns the effect
for(var/mob/M in viewers(8, location))
to_chat(M, "\red The solution violently explodes.")
explosion(location, devastation, heavy, light, flash)
proc/holder_damage(var/atom/holder)
-1
View File
@@ -26,7 +26,6 @@
proc/Gib(atom/location, var/list/viruses = list(), var/datum/dna/MobDNA = null)
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
to_chat(world, "\red Gib list length mismatch!")
return
var/obj/effect/decal/cleanable/blood/gibs/gib = null
-1
View File
@@ -22,7 +22,6 @@
if(istype(M, /mob/living/carbon/human))
for(var/mob/O in viewers(world.view, src.loc))
to_chat(O, "<font color='red'>[M] triggered the \icon[src] [src]</font>")
triggered = 1
call(src,triggerproc)(M)
-2
View File
@@ -66,7 +66,6 @@
else if(istype(mover, /mob/living))
if(prob(50))
to_chat(mover, "<span class='danger'>You get stuck in \the [src] for a moment.</span>")
return 0
else if(istype(mover, /obj/item/projectile))
return prob(30)
@@ -209,7 +208,6 @@
S.key = C.key
if(master_commander)
to_chat(S, "<span class='userdanger'>You are a spider who is loyal to [master_commander], obey [master_commander]'s every order and assist them in completing their goals at any cost.</span>")
qdel(src)
/obj/effect/decal/cleanable/spiderling_remains
-1
View File
@@ -17,7 +17,6 @@
for(var/mob/M in range(heavy_range, epicenter))
to_chat(M, 'sound/effects/EMPulse.ogg')
for(var/atom/T in range(light_range, epicenter))
var/distance = get_dist(epicenter, T)
if(distance < 0)
-1
View File
@@ -75,7 +75,6 @@
if(M.ear_deaf <= 0 || !M.ear_deaf) if(!istype(M.loc,/turf/space))
to_chat(M, 'sound/effects/explosionfar.ogg')
if(heavy_impact_range > 1)
var/datum/effect/system/explosion/E = new/datum/effect/system/explosion()
E.set_up(epicenter)
-20
View File
@@ -165,7 +165,6 @@
to_chat(user, msg)
/obj/item/attack_hand(mob/user as mob)
if (!user) return 0
if (hasorgans(user))
@@ -175,11 +174,9 @@
temp = H.organs_by_name["l_hand"]
if(!temp)
to_chat(user, "<span class='warning'>You try to use your hand, but it's missing!</span>")
return 0
if(temp && !temp.is_usable())
to_chat(user, "<span class='warning'>You try to move your [temp.name], but cannot!</span>")
return 0
if (istype(src.loc, /obj/item/weapon/storage))
@@ -211,7 +208,6 @@
if(src in A.contents) // To stop Aliens having items stuck in their pockets
A.unEquip(src)
to_chat(user, "Your claws aren't capable of such fine manipulation.")
return
if (istype(src.loc, /obj/item/weapon/storage))
@@ -239,7 +235,6 @@
if(src in A.contents) // To stop Aliens having items stuck in their pockets
A.unEquip(src)
to_chat(user, "Your claws aren't capable of such fine manipulation.")
return
attack_hand(A)
@@ -274,14 +269,11 @@
S.handle_item_insertion(I, 1) //The 1 stops the "You put the [src] into [S]" insertion message from being displayed.
if(success && !failure)
to_chat(user, "<span class='notice'>You put everything in [S].</span>")
else if(success)
to_chat(user, "<span class='notice'>You put some things in [S].</span>")
else
to_chat(user, "<span class='notice'>You fail to pick anything up with [S].</span>")
else if(S.can_be_inserted(src))
S.handle_item_insertion(src)
@@ -352,27 +344,21 @@
return
if((!istype(usr, /mob/living/carbon)) || (istype(usr, /mob/living/carbon/brain)))//Is humanoid, and is not a brain
to_chat(usr, "\red You can't pick things up!")
return
if( usr.stat || usr.restrained() )//Is not asleep/dead and is not restrained
to_chat(usr, "\red You can't pick things up!")
return
if(src.anchored) //Object isn't anchored
to_chat(usr, "\red You can't pick that up!")
return
if(!usr.hand && usr.r_hand) //Right hand is not full
to_chat(usr, "\red Your right hand is full.")
return
if(usr.hand && usr.l_hand) //Left hand is not full
to_chat(usr, "\red Your left hand is full.")
return
if(!istype(src.loc, /turf)) //Object is on a turf
to_chat(usr, "\red You can't pick that up!")
return
//All checks are done, time to pick it up!
usr.UnarmedAttack(src)
@@ -407,12 +393,10 @@
))
// you can't stab someone in the eyes wearing a mask!
to_chat(user, "<span class='danger'>You're going to need to remove that mask/helmet/glasses first!</span>")
return
if(istype(M, /mob/living/carbon/alien) || istype(M, /mob/living/carbon/slime))//Aliens don't have eyes./N slimes also don't have eyes!
to_chat(user, "<span class='warning'>You cannot locate any eyes on this creature!</span>")
return
if(!iscarbon(user))
@@ -447,11 +431,9 @@
if(M.stat != 2)
if(!(eyes.status & ORGAN_ROBOT) || !(eyes.status & ORGAN_ASSISTED)) //robot eyes bleeding might be a bit silly
to_chat(M, "<span class='danger'>Your eyes start to bleed profusely!</span>")
if(prob(50))
if(M.stat != 2)
to_chat(M, "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>")
M.drop_item()
M.eye_blurry += 10
M.Paralyse(1)
@@ -459,7 +441,6 @@
if (eyes.damage >= eyes.min_broken_damage)
if(M.stat != 2)
to_chat(M, "<span class='danger'>You go blind!</span>")
var/obj/item/organ/external/affecting = H.get_organ("head")
if(affecting.take_damage(7))
H.UpdateDamageIcon()
@@ -536,7 +517,6 @@
if(flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand.
return
to_chat(user, "<span class='notice'>You start washing [src]...</span>")
if(!do_after(user, 40, target = source))
return
clean_blood()
-3
View File
@@ -20,7 +20,6 @@
if (istype(W,/obj/item/weapon/cigbutt) || istype(W,/obj/item/clothing/mask/cigarette) || istype(W, /obj/item/weapon/match))
if (contents.len >= max_butts)
to_chat(user, "This ashtray is full.")
return
user.unEquip(W)
W.loc = src
@@ -36,7 +35,6 @@
else if (cig.lit == 0)
to_chat(user, "You place [cig] in [src] without even smoking it. Why would you do that?")
src.visible_message("[user] places [W] in [src].")
user.update_inv_l_hand()
user.update_inv_r_hand()
@@ -50,7 +48,6 @@
else
health = max(0,health - W.force)
to_chat(user, "You hit [src] with [W].")
if (health < 1)
die()
return
-7
View File
@@ -133,15 +133,12 @@
switch(res)
if(ROOM_ERR_SPACE)
to_chat(usr, "<span class='warning'>The new area must be completely airtight.</span>")
return
if(ROOM_ERR_TOOLARGE)
to_chat(usr, "<span class='warning'>The new area is too large.</span>")
return
else
to_chat(usr, "<span class='warning'>Error! Please notify administration.</span>")
return
var/list/turf/turfs = res
var/str = trim(stripped_input(usr,"New area name:", "Blueprint Editing", "", MAX_NAME_LEN))
@@ -149,14 +146,12 @@
return
if(length(str) > 50)
to_chat(usr, "<span class='warning'>The given name is too long. The area remains undefined.</span>")
return
var/area/A = new
A.name = str
//var/ma
//ma = A.master ? "[A.master]" : "(null)"
// to_chat(world, "DEBUG: create_area: <br>A.name=[A.name]<br>A.tag=[A.tag]<br>A.master=[ma]")
A.power_equip = 0
A.power_light = 0
A.power_environ = 0
@@ -179,12 +174,10 @@
return
if(length(str) > 50)
to_chat(usr, "<span class='warning'>The given name is too long. The area's name is unchanged.</span>")
return
set_area_machinery_title(A,str,prevname)
A.name = str
to_chat(usr, "<span class='notice'>You rename the '[prevname]' to '[str]'.</span>")
interact()
return 1
-5
View File
@@ -58,7 +58,6 @@
return
else if(istype(W, /obj/item/weapon/wirecutters))
to_chat(user, "You cut the tag off the bodybag")
src.name = "body bag"
src.overlays.Cut()
return
@@ -92,7 +91,6 @@
if(!open())
to_chat(user, "<span class='notice'>It won't budge!</span>")
/obj/item/bodybag/cryobag
name = "stasis bag"
desc = "A folded, non-reusable bag designed for the preservation of an occupant's brain by stasis."
@@ -129,7 +127,6 @@
if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src))))
if(!ishuman(usr)) return
to_chat(usr, "\red You can't fold that up anymore..")
..()
attackby(W as obj, mob/user as mob, params)
@@ -137,8 +134,6 @@
if(src.allowed(user))
src.locked = !src.locked
to_chat(user, "The controls are now [src.locked ? "locked." : "unlocked."]")
else
to_chat(user, "\red Access denied.")
return
-6
View File
@@ -86,16 +86,13 @@
else if(graffiti.Find(drawtype))
temp = "graffiti"
to_chat(user, "You start drawing a [temp] on the [target.name].")
if(instant || do_after(user, 50, target = target))
new /obj/effect/decal/cleanable/crayon(target,colour,drawtype,temp)
to_chat(user, "You finish drawing [temp].")
if(uses)
uses--
if(!uses)
to_chat(user, "<span class='danger'>You used up your [src.name]!</span>")
qdel(src)
return
@@ -103,13 +100,11 @@
var/huffable = istype(src,/obj/item/toy/crayon/spraycan)
if(M == user)
to_chat(user, "You take a [huffable ? "huff" : "bite"] of the [src.name]. Delicious!")
user.nutrition += 5
if(uses)
uses -= 5
if(uses <= 0)
to_chat(user, "<span class='danger'>There is no more of [src.name] left!</span>")
qdel(src)
else
..()
@@ -220,7 +215,6 @@
switch(choice)
if("Toggle Cap")
to_chat(user, "<span class='notice'>You [capped ? "Remove" : "Replace"] the cap of the [src]</span>")
capped = capped ? 0 : 1
icon_state = "spraycan[capped ? "_cap" : ""]"
update_icon()
-2
View File
@@ -13,7 +13,6 @@
src.add_fingerprint(user) // Anyone can add their fingerprints to it with this
if(owned)
to_chat(user, "<span class='notice'>[src] stares up at you with friendly eyes.</span>")
owner = user
owned = 0
return ..()
@@ -23,7 +22,6 @@
if(!proximity) return
if(istype(O,/obj/structure/sink))
to_chat(user, "<span class='notice'>You place [src] under a stream of water...</span>")
user.drop_item()
loc = get_turf(O)
return Swell()
@@ -84,7 +84,6 @@
flush = 1
AI.suiciding = 1
to_chat(AI, "Your core files are being wiped!")
while (AI && AI.stat != DEAD)
AI.adjustOxyLoss(2)
AI.updatehealth()
@@ -94,16 +93,12 @@
if (href_list["radio"])
AI.aiRadio.disabledAi = text2num(href_list["radio"])
to_chat(AI, "<span class='warning'>Your Subspace Transceiver has been [AI.aiRadio.disabledAi ? "disabled" : "enabled"]!</span>")
to_chat(user, "<span class='notice'>You [AI.aiRadio.disabledAi ? "disable" : "enable"] the AI's Subspace Transceiver.</span>")
if (href_list["wireless"])
AI.control_disabled = text2num(href_list["wireless"])
to_chat(AI, "<span class='warning'>Your wireless interface has been [AI.control_disabled ? "disabled" : "enabled"]!</span>")
to_chat(user, "<span class='notice'>You [AI.control_disabled ? "disable" : "enable"] the AI's wireless interface.</span>")
update_icon()
return 1
@@ -80,7 +80,6 @@
set name = "Print Data"
if(usr.stat || !(istype(usr,/mob/living/carbon/human)))
to_chat(usr, "No.")
return
var/scan_data = ""
@@ -189,17 +188,14 @@
src.timeofdeath = null
to_chat(user, "\red A new patient has been registered.. Purging data for previous patient.")
src.timeofdeath = M.timeofdeath
var/obj/item/organ/external/S = M.get_organ(user.zone_sel.selecting)
if(!S)
to_chat(usr, "<b>You can't scan this body part.</b>")
return
if(!S.open)
to_chat(usr, "<b>You have to cut the limb open first!</b>")
return
for(var/mob/O in viewers(M))
O.show_message("\red [user.name] scans the wounds on [M.name]'s [S.name] with \the [src.name]", 1)
@@ -63,7 +63,6 @@
var/turf/T = get_turf(user.loc)
if(T.z != current.z || !current.can_use())
to_chat(user, "<span class='danger'>[src] has lost the signal.</span>")
current = null
user.reset_view(null)
user.unset_machine()
@@ -224,12 +223,10 @@
if(istype(C))
if(!C.can_use())
to_chat(usr, "<span class='danger'>Something's wrong with that camera. You can't get a feed.</span>")
return
var/turf/T = get_turf(loc)
if(!T || C.z != T.z)
to_chat(usr, "<span class='danger'>You can't get a signal.</span>")
return
current = C
spawn(6)
@@ -32,7 +32,6 @@
if(istype(target,/obj/item) && !istype(target, /obj/item/weapon/disk/nuclear))
playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6)
to_chat(user, "<span class='notice'>Scanned [target].</span>")
saved_item = target.type
saved_icon = target.icon
saved_icon_state = target.icon_state
@@ -47,7 +46,6 @@
qdel(active_dummy)
active_dummy = null
to_chat(usr, "<span class='notice'>You deactivate \the [src].</span>")
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
T.icon = 'icons/effects/effects.dmi'
flick("emppulse",T)
@@ -61,7 +59,6 @@
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, saved_underlays, src)
qdel(O)
to_chat(usr, "<span class='notice'>You activate \the [src].</span>")
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
T.icon = 'icons/effects/effects.dmi'
flick("emppulse",T)
@@ -111,19 +108,16 @@
/obj/effect/dummy/chameleon/attackby()
for(var/mob/M in src)
to_chat(M, "<span class='danger'>Your chameleon-projector deactivates.</span>")
master.disrupt()
/obj/effect/dummy/chameleon/attack_hand()
for(var/mob/M in src)
to_chat(M, "<span class='danger'>Your chameleon-projector deactivates.</span>")
master.disrupt()
/obj/effect/dummy/chameleon/ex_act(var/severity) //no longer bomb-proof
for(var/mob/M in src)
to_chat(M, "<span class='danger'>Your chameleon-projector deactivates.</span>")
spawn()
M.ex_act(severity)
master.disrupt()
@@ -131,7 +125,6 @@
/obj/effect/dummy/chameleon/bullet_act()
for(var/mob/M in src)
to_chat(M, "<span class='danger'>Your chameleon-projector deactivates.</span>")
..()
master.disrupt()
@@ -25,26 +25,20 @@
var/obj/machinery/power/apc/A = O
if(A.emagged || A.malfhack)
to_chat(user, "\red There is a software error with the device.")
else
to_chat(user, "\blue The device's software appears to be fine.")
return 1
if(istype(O, /obj/machinery/door))
var/obj/machinery/door/D = O
if(D.operating == -1)
to_chat(user, "\red There is a software error with the device.")
else
to_chat(user, "\blue The device's software appears to be fine.")
return 1
else if(istype(O, /obj/machinery))
var/obj/machinery/A = O
if(A.emagged)
to_chat(user, "\red There is a software error with the device.")
else
to_chat(user, "\blue The device's software appears to be fine.")
return 1
-10
View File
@@ -28,16 +28,13 @@
if(istype(W, /obj/item/weapon/screwdriver))
if(battery_panel)
to_chat(user, "<span class='notice'>You close the battery compartment on the [src].</span>")
battery_panel = 0
else
to_chat(user, "<span class='notice'>You open the battery compartment on the [src].</span>")
battery_panel = 1
if(battery_panel && !overcharged)
if(istype(W, /obj/item/weapon/stock_parts/cell))
to_chat(user, "<span class='notice'>You jam the cell into battery compartment on the [src].</span>")
qdel(W)
overcharged = 1
overlays += "overcharge"
@@ -89,18 +86,14 @@
M.Stun(1)
visible_message("<span class='disarm'>[user] blinds [M] with the flash!</span>")
to_chat(user, "<span class='danger'>You blind [M] with the flash!</span>")
to_chat(M, "<span class='userdanger'>[user] blinds you with the flash!</span>")
if(M.weakeyes)
M.Stun(2)
M.visible_message("<span class='disarm'>[M] gasps and shields their eyes!</span>", "<span class='userdanger'>You gasp and shields your eyes!</span>")
else
visible_message("<span class='disarm'>[user] fails to blind [M] with the flash!</span>")
to_chat(user, "<span class='warning'>You fail to blind [M] with the flash!</span>")
to_chat(M, "<span class='danger'>[user] fails to blind you with the flash!</span>")
else
if(M.flash_eyes())
M.confused += power
@@ -168,15 +161,12 @@
if(resisted)
to_chat(user, "<span class='warning'>This mind seems resistant to the [src.name]!</span>")
else
to_chat(user, "<span class='warning'>They must be conscious before you can convert them!</span>")
else
to_chat(user, "<span class='warning'>This mind is so vacant that it is not susceptible to influence!</span>")
/obj/item/device/flash/cyborg
origin_tech = null
@@ -33,7 +33,6 @@
if(!isturf(user.loc))
to_chat(user, "You cannot turn the light on while in this [user.loc].")//To prevent some lighting anomalities.
return 0
on = !on
update_brightness(user)
@@ -49,13 +48,11 @@
if(!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") //don't have dexterity
to_chat(user, "<span class='notice'>You don't have the dexterity to do this!</span>")
return
var/mob/living/carbon/human/H = M //mob has protective eyewear
if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
to_chat(user, "<span class='notice'>You're going to need to remove that [(H.head && H.head.flags & HEADCOVERSEYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) ? "mask": "glasses"] first.</span>")
return
if(M == user) //they're using it on themselves
@@ -73,14 +70,11 @@
if(istype(M, /mob/living/carbon/human)) //robots and aliens are unaffected
if(M.stat == DEAD || M.sdisabilities & BLIND) //mob is dead or fully blind
to_chat(user, "<span class='notice'>[M] pupils does not react to the light!</span>")
else if(XRAY in M.mutations) //mob has X-RAY vision
to_chat(user, "<span class='notice'>[M] pupils give an eerie glow!</span>")
else //they're okay!
if(M.flash_eyes(visual = 1))
to_chat(user, "<span class='notice'>[M]'s pupils narrow.</span>")
else
return ..()
@@ -200,7 +194,6 @@ obj/item/device/flashlight/lamp/bananalamp
// Usual checks
if(!fuel)
to_chat(user, "<span class='notice'>It's out of fuel.</span>")
return
if(on)
return
@@ -282,9 +275,7 @@ obj/item/device/flashlight/lamp/bananalamp
var/mob/M = A
add_logs(M, user, "attacked", object="EMP-light")
to_chat(user, "\The [src] now has [emp_cur_charges] charge\s.")
A.emp_act(1)
else
to_chat(user, "<span class='warning'>\The [src] needs time to recharge!</span>")
return
@@ -51,15 +51,12 @@
W.loc = src
diode = W
to_chat(user, "<span class='notice'>You install a [diode.name] in [src].</span>")
else
to_chat(user, "<span class='notice'>[src] already has a cell.</span>")
else if(istype(W, /obj/item/weapon/screwdriver))
if(diode)
to_chat(user, "<span class='notice'>You remove the [diode.name] from the [src].</span>")
diode.loc = get_turf(src.loc)
diode = null
return
@@ -76,11 +73,9 @@
return
if (!diode)
to_chat(user, "<span class='notice'>You point [src] at [target], but nothing happens!</span>")
return
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
add_fingerprint(user)
@@ -88,7 +83,6 @@
//nothing happens if the battery is drained
if(recharge_locked)
to_chat(user, "<span class='notice'>You point [src] at [target], but it's still charging.</span>")
return
var/outmsg
@@ -122,7 +116,6 @@
S.flash_eyes(affect_silicon = 1)
S.Weaken(rand(5,10))
to_chat(S, "<span class='warning'>Your sensors were overloaded by a laser!</span>")
outmsg = "<span class='notice'>You overload [S] by shining [src] at their sensors.</span>"
S.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had a laser pointer shone in their eyes by [user.name] ([user.ckey])</font>")
@@ -162,11 +155,9 @@
if(outmsg)
to_chat(user, outmsg)
else
to_chat(user, "<span class='info'>You point [src] at [target].</span>")
energy -= 1
if(energy <= max_energy)
if(!recharging)
@@ -174,7 +165,6 @@
processing_objects.Add(src)
if(energy <= 0)
to_chat(user, "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>")
recharge_locked = 1
flick_overlay(I, showto, 10)
@@ -70,7 +70,6 @@
if(..(user, 2))
to_chat(user, "It has [uses] lights remaining.")
/obj/item/device/lightreplacer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/sheet/glass))
var/obj/item/stack/sheet/glass/G = W
@@ -78,7 +77,6 @@
var/remaining = max(G.amount - decrement, 0)
if(!remaining && !(G.amount - decrement) == 0)
to_chat(user, "There isn't enough glass.")
return
G.amount = remaining
if(!G.amount)
@@ -86,7 +84,6 @@
qdel(G)
AddUses(increment)
to_chat(user, "You insert a piece of glass into the [src.name]. You have [uses] lights remaining.")
return
if(istype(W, /obj/item/weapon/light))
@@ -95,13 +92,11 @@
if(uses < max_uses)
AddUses(1)
to_chat(user, "You insert the [L.name] into the [src.name]. You have [uses] lights remaining.")
user.drop_item()
qdel(L)
return
else
to_chat(user, "You need a working light.")
return
/obj/item/device/lightreplacer/emag_act(user as mob)
@@ -115,12 +110,10 @@
if(R.emagged)
src.Emag()
to_chat(usr, "You shortcircuit the [src].")
return
*/
to_chat(usr, "It has [uses] lights remaining.")
/obj/item/device/lightreplacer/update_icon()
icon_state = "lightreplacer[emagged]"
@@ -148,7 +141,6 @@
if(!Use(U)) return
to_chat(U, "<span class='notice'>You replace the [target.fitting] with the [src].</span>")
if(target.status != LIGHT_EMPTY)
var/obj/item/weapon/light/L1 = new target.light_type(target.loc)
@@ -182,11 +174,9 @@
else
to_chat(U, failmsg)
return
else
to_chat(U, "There is a working [target.fitting] already inserted.")
return
/obj/item/device/lightreplacer/proc/Emag()
@@ -15,26 +15,21 @@
if (user.client)
if(user.client.prefs.muted & MUTE_IC)
to_chat(src, "\red You cannot speak in IC (muted).")
return
if(!ishuman(user))
to_chat(user, "\red You don't know how to use this!")
return
if(user.silent)
to_chat(user, "<span class='warning'>You find yourself unable to speak at all.</span>")
return
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H && H.mind)
if(H.mind.miming)
to_chat(user, "<span class='warning'>Your vow of silence prevents you from speaking.</span>")
return
if(spamcheck)
to_chat(user, "\red \The [src] needs to recharge!")
return
var/message = input(user, "Shout a message:", "Megaphone") as text|null
@@ -51,7 +46,6 @@
insults--
else
to_chat(user, "\red *BZZZZzzzzzt*")
else
saymsg(user, message)
@@ -68,6 +62,5 @@
/obj/item/device/megaphone/emag_act(user as mob)
if(!emagged)
to_chat(user, "\red You overload \the [src]'s voice synthesizer.")
emagged = 1
insults = rand(1, 3)//to prevent dickflooding
@@ -23,7 +23,6 @@
if(!parts)
to_chat(user, "<span class='warning'>This kit has no parts for this modification left.</span>")
user.unEquip(src)
qdel(src)
return
@@ -36,19 +35,16 @@
var/obj/item/clothing/I = O
if (!istype(I) || !allowed)
to_chat(user, "<span class='notice'>[src] is unable to modify that.</span>")
return
var/excluding = ("exclude" in I.species_restricted)
var/in_list = (target_species in I.species_restricted)
if (excluding ^ in_list)
to_chat(user, "<span class='notice'>[I] is already modified.</span>")
return
if(!isturf(O.loc))
to_chat(user, "<span class='warning'>[O] must be safely placed on the ground for modification.</span>")
return
playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1)
@@ -70,7 +66,6 @@
..(user)
to_chat(user, "It looks as though it modifies hardsuits to fit [target_species] users.")
/obj/item/device/modkit/tajaran
name = "Tajaran hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajaran."
@@ -244,19 +244,16 @@
var/mob/M = usr
if(!istype(M, /mob/living/carbon))
to_chat(usr, "<font color=blue>You don't have any DNA, or your DNA is incompatible with this device.</font>")
else
var/datum/dna/dna = usr.dna
pai.master = M.real_name
pai.master_dna = dna.unique_enzymes
to_chat(pai, "<font color = red><h3>You have been bound to a new master.</h3></font>")
if(href_list["request"])
var/delta = (world.time / 10) - last_request
if(request_cooldown > delta)
var/cooldown_time = round(request_cooldown - ((world.time / 10) - last_request), 1)
to_chat(usr, "\red The request system is currently offline. Please wait another [cooldown_time] seconds.")
return
last_request = world.time / 10
src.looking_for_personality = 1
@@ -266,13 +263,9 @@
if(confirm == "Yes")
for(var/mob/M in src)
to_chat(M, "<font color = #ff0000><h2>You feel yourself slipping away from reality.</h2></font>")
to_chat(M, "<font color = #ff4d4d><h3>Byte by byte you lose your sense of self.</h3></font>")
to_chat(M, "<font color = #ff8787><h4>Your mental faculties leave you.</h4></font>")
to_chat(M, "<font color = #ffc4c4><h5>oblivion... </h5></font>")
var/mob/living/silicon/pai/P = M
if(istype(P))
if(P.resting || P.canmove)
@@ -291,11 +284,8 @@
if(newlaws)
pai.pai_laws = newlaws
to_chat(pai, "Your supplemental directives have been updated. Your new directives are:")
to_chat(pai, "Prime Directive: <br>[pai.pai_law0]")
to_chat(pai, "Supplemental Directives: <br>[pai.pai_laws]")
attack_self(usr)
// WIRE_SIGNAL = 1
@@ -21,7 +21,6 @@
var/turf/T = P.loc
if (P.level < 2 && T.level==1 && isturf(T) && T.intact)
to_chat(user, "<span class='warning'>You must remove the plating first.</span>")
return
P.change_color(pipe_colors[mode])
@@ -32,4 +31,3 @@
/obj/item/device/pipe_painter/examine(mob/user)
..(user)
to_chat(user, "It is in [mode] mode.")
@@ -14,7 +14,6 @@
/obj/item/device/pizza_bomb/attack_self(mob/user)
if(disarmed)
to_chat(user, "<span class='notice'>\The [src] is disarmed.</span>")
return
if(!timer_set)
name = "pizza bomb"
@@ -31,7 +30,6 @@
timer = Clamp(timer, 10, 100)
icon_state = "pizzabox1"
to_chat(user, "<span class='notice'>You set the timer to [timer / 10] before activating the payload and closing \the [src].")
message_admins("[key_name_admin(usr)] has set a timer on a pizza bomb to [timer/10] seconds at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>(JMP)</a>.")
log_game("[key_name(usr)] has set the timer on a pizza bomb to [timer/10] seconds ([loc.x],[loc.y],[loc.z]).")
armer = usr
@@ -44,7 +42,6 @@
icon_state = "pizzabox_bomb"
audible_message("<span class='warning'>\icon[src] *beep* *beep*</span>")
to_chat(user, "<span class='danger'>That's no pizza! That's a bomb!</span>")
message_admins("[key_name_admin(usr)] has triggered a pizza bomb armed by [armer] at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>(JMP)</a>.")
log_game("[key_name(usr)] has triggered a pizza bomb armed by [armer] ([loc.x],[loc.y],[loc.z]).")
primed = 1
@@ -63,7 +60,6 @@
/obj/item/device/pizza_bomb/attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/wirecutters) && primed)
to_chat(user, "<span class='danger'>Oh God, what wire do you cut?!</span>")
var/chosen_wire = input(user, "OH GOD OH GOD", "WHAT WIRE?!") in wires
if(!in_range(src, usr) || issilicon(usr) || !usr.canmove || usr.restrained())
return
@@ -73,7 +69,6 @@
if(chosen_wire == correct_wire)
src.audible_message("<span class='warning'>\icon[src] \The [src] suddenly stops beeping and seems lifeless.</span>")
to_chat(user, "<span class='notice'>You did it!</span>")
icon_state = "pizzabox_bomb_[correct_wire]"
name = "pizza bomb"
desc = "A devious contraption, made of a small explosive payload hooked up to pressure-sensitive wires. It's disarmed."
@@ -82,13 +77,11 @@
return
else
to_chat(user, "<span class='userdanger'>WRONG WIRE!</span>")
go_boom()
return
if(istype(I, /obj/item/weapon/wirecutters) && disarmed)
if(!in_range(user, src))
to_chat(user, "<span class='warning'>You can't see the box well enough to cut the wires out.</span>")
return
user.visible_message("<span class='notice'>[user] starts removing the payload and wires from \the [src].</span>")
if(do_after(user, 40, target = src))
@@ -37,7 +37,6 @@
attached = locate() in T
if(!attached)
to_chat(user, "No exposed cable here to attach to.")
return
else
anchored = 1
@@ -48,7 +47,6 @@
return
else
to_chat(user, "Device must be placed over an exposed cable to attach to it.")
return
else
if (mode == 2)
@@ -23,7 +23,6 @@
syndicate = 1
to_chat(user, "\blue The This beacon now only be locked on to by emagged teleporters!")
/obj/item/device/radio/beacon/hear_talk()
return
@@ -60,7 +59,6 @@
/obj/item/device/radio/beacon/syndicate/attack_self(mob/user as mob)
if(user)
to_chat(user, "\blue Locked In")
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
qdel(src)
@@ -74,7 +72,6 @@
/obj/item/device/radio/beacon/syndicate/bomb/attack_self(mob/user as mob)
if(user)
to_chat(user, "\blue Locked In")
new /obj/machinery/syndicatebomb( user.loc )
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
qdel(src)
@@ -15,7 +15,6 @@
/obj/item/device/radio/electropack/attack_hand(mob/user as mob)
if(src == user.back)
to_chat(user, "<span class='notice'>You need help taking this off!</span>")
return 0
. = ..()
@@ -34,14 +33,12 @@
if(istype(W, /obj/item/clothing/head/helmet))
if(!b_stat)
to_chat(user, "<span class='notice'>[src] is not ready to be attached!</span>")
return
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user )
A.icon = 'icons/obj/assemblies.dmi'
if(!user.unEquip(W))
to_chat(user, "<span class='notice'>\the [W] is stuck to your hand, you cannot attach it to \the [src]!</span>")
return
W.loc = A
W.master = A
@@ -90,7 +87,6 @@
if(M)
M.moved_recently = 0
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, M)
s.start()
@@ -43,10 +43,8 @@
return
to_chat(user, "The following channels are available:")
to_chat(user, radio_desc)
/obj/item/device/radio/headset/handle_message_mode(mob/living/M as mob, message, channel)
if (channel == "special")
if (translate_binary)
@@ -324,15 +322,12 @@
recalculateChannels()
to_chat(user, "You pop out the encryption keys in the headset!")
else
to_chat(user, "This headset doesn't have any encryption keys! How useless...")
if(istype(W, /obj/item/device/encryptionkey/))
if(keyslot1 && keyslot2)
to_chat(user, "The headset can't hold another key!")
return
if(!keyslot1)
@@ -137,7 +137,6 @@
if(3)
if(iswirecutter(W) && b_stat && wires.IsAllCut())
to_chat(user, "<span class='notice'>You cut out the intercoms wiring and disconnect its electronics.</span>")
playsound(get_turf(src), 'sound/items/Wirecutter.ogg', 50, 1)
if(do_after(user, 10, target = src))
new /obj/item/stack/cable_coil(get_turf(src),5)
@@ -157,7 +156,6 @@
b_stat = 0
buildstage = 3
to_chat(user, "<span class='notice'>You secure the electronics!</span>")
update_icon()
processing_objects.Add(src)
for(var/i, i<= 5, i++)
@@ -168,22 +166,18 @@
var/obj/item/stack/cable_coil/coil = W
if(coil.amount < 5)
to_chat(user, "<span class='warning'>You need more cable for this!</span>")
return
if(do_after(user, 10, target = src))
coil.use(5)
to_chat(user, "<span class='notice'>You wire \the [src]!</span>")
buildstage = 2
return 1
if(iscrowbar(W))
to_chat(user, "<span class='notice'>You begin removing the electronics...</span>")
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 10, target = src))
new /obj/item/weapon/intercom_electronics(get_turf(src))
to_chat(user, "<span class='notice'>The circuitboard pops out!</span>")
buildstage = 0
return 1
if(0)
@@ -192,7 +186,6 @@
if(do_after(user, 10, target = src))
qdel(W)
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src]!</span>")
buildstage = 1
return 1
if(iswelder(W))
@@ -200,11 +193,9 @@
playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1)
if(!WT.remove_fuel(3, user))
to_chat(user, "<span class='warning'>You're out of welding fuel.</span>")
return 1
if(do_after(user, 10, target = src))
to_chat(user, "<span class='notice'>You cut the intercom frame from the wall!</span>")
new /obj/item/mounted/frame/intercom(get_turf(src))
qdel(src)
return 1
@@ -239,7 +239,6 @@ var/global/list/default_medbay_channels = list(
if(channel && channels && channels.len > 0)
if (channel == "department")
// to_chat(world, "DEBUG: channel=\"[channel]\" switching to \"[channels[1]]\"")
channel = channels[1]
connection = secure_radio_connections[channel]
else
@@ -640,15 +639,12 @@ var/global/list/default_medbay_channels = list(
recalculateChannels()
to_chat(user, "You pop out the encryption key in the radio!")
else
to_chat(user, "This radio doesn't have any encryption keys!")
if(istype(W, /obj/item/device/encryptionkey/))
if(keyslot)
to_chat(user, "The radio can't hold another key!")
return
if(!keyslot)
@@ -702,11 +698,9 @@ var/global/list/default_medbay_channels = list(
subspace_transmission = !subspace_transmission
if(subspace_transmission)
to_chat(usr, "<span class='notice'>Subspace Transmission is enabled.</span>")
else
to_chat(usr, "<span class='notice'>Subspace Transmission is disabled.</span>")
if(subspace_transmission == 0)//Simple as fuck, clears the channel list to prevent talking/listening over them if subspace transmission is disabled
channels = list()
else
@@ -719,11 +713,9 @@ var/global/list/default_medbay_channels = list(
if(shut_up)
canhear_range = 0
to_chat(usr, "<span class='notice'>Loudspeaker disabled.</span>")
else
canhear_range = 3
to_chat(usr, "<span class='notice'>Loudspeaker enabled.</span>")
. = 1
@@ -129,7 +129,6 @@ REAGENT SCANNER
/obj/item/device/healthanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
if (( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
to_chat(user, text("\red You try to analyze the floor's vitals!"))
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1)
user.show_message(text("\blue Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1)
@@ -191,7 +190,6 @@ REAGENT SCANNER
for(var/datum/disease/D in M.viruses)
if(!(D.visibility_flags & HIDDEN_SCANNER))
to_chat(user, "<span class='alert'><b>Warning: [D.form] detected</b>\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]</span>")
if(M.getStaminaLoss())
user.show_message("<span class='info'>Subject appears to be suffering from fatigue.</span>")
if (M.getCloneLoss())
@@ -260,19 +258,15 @@ REAGENT SCANNER
switch (mode)
if(1)
to_chat(usr, "The scanner now shows specific limb damage.")
if(0)
to_chat(usr, "The scanner no longer shows limb damage.")
/obj/item/device/healthanalyzer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/device/healthupgrade))
if(upgraded)
to_chat(user, "<span class='notice'>You have already installed an upgraded in the [src].</span>")
else
to_chat(user, "<span class='notice'>You install the upgrade in the [src].</span>")
overlays += "advanced"
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
upgraded = 1
@@ -391,11 +385,9 @@ REAGENT SCANNER
return
if (crit_fail)
to_chat(user, "<span class='warning'>This device has critically failed and is no longer functional!</span>")
return
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
if(reagents.total_volume)
var/list/blood_traces = list()
@@ -403,7 +395,6 @@ REAGENT SCANNER
if(R.id != "blood")
reagents.clear_reagents()
to_chat(user, "<span class='warning'>The sample was contaminated! Please insert another sample.</span>")
return
else
blood_traces = params2list(R.data["trace_chem"])
@@ -424,7 +415,6 @@ REAGENT SCANNER
else
recent_fail = 1
to_chat(user, "[dat]")
reagents.clear_reagents()
return
@@ -455,13 +445,11 @@ REAGENT SCANNER
return
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
if(!istype(O))
return
if (crit_fail)
to_chat(user, "<span class='warning'>This device has critically failed and is no longer functional!</span>")
return
if(!isnull(O.reagents))
@@ -480,14 +468,11 @@ REAGENT SCANNER
recent_fail = 1
if(dat)
to_chat(user, "<span class='notice'>Chemicals found: [dat]</span>")
else
to_chat(user, "<span class='notice'>No active chemical agents found in [O].</span>")
else
to_chat(user, "<span class='notice'>No significant chemical agents found in [O].</span>")
return
/obj/item/device/reagent_scanner/adv
@@ -25,20 +25,17 @@
to_chat(user, "The wire panel is [open_panel ? "opened" : "closed"].")
/obj/item/device/taperecorder/attackby(obj/item/I, mob/user)
if(!mytape && istype(I, /obj/item/device/tape))
user.drop_item()
I.loc = src
mytape = I
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
update_icon()
/obj/item/device/taperecorder/proc/eject(mob/user)
if(mytape)
to_chat(user, "<span class='notice'>You remove [mytape] from [src].</span>")
stop()
user.put_in_hands(mytape)
mytape = null
@@ -117,7 +114,6 @@
if(mytape.used_capacity < mytape.max_capacity)
to_chat(usr, "<span class='notice'>Recording started.</span>")
recording = 1
update_icon()
mytape.timestamp += mytape.used_capacity
@@ -136,7 +132,6 @@
to_chat(usr, "<span class='notice'>The tape is full.</span>")
/obj/item/device/taperecorder/verb/stop()
set name = "Stop"
set category = "Object"
@@ -149,7 +144,6 @@
mytape.timestamp += mytape.used_capacity
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording stopped."
to_chat(usr, "<span class='notice'>Recording stopped.</span>")
return
else if(playing)
playing = 0
@@ -174,7 +168,6 @@
playing = 1
update_icon()
to_chat(usr, "<span class='notice'>Playing started.</span>")
var/used = mytape.used_capacity //to stop runtimes when you eject the tape
var/max = mytape.max_capacity
for(var/i = 1, used < max, sleep(10 * playsleepseconds))
@@ -223,13 +216,11 @@
return
if(!canprint)
to_chat(usr, "<span class='notice'>The recorder can't print that fast!</span>")
return
if(recording || playing)
return
to_chat(usr, "<span class='notice'>Transcript printed.</span>")
playsound(loc, "sound/goonstation/machines/printer_thermal.ogg", 50, 1)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src))
var/t1 = "<B>Transcript:</B><BR><BR>"
@@ -267,7 +258,6 @@
/obj/item/device/tape/attack_self(mob/user)
if(!ruined)
to_chat(user, "<span class='notice'>You pull out all the tape!</span>")
ruin()
@@ -284,10 +274,8 @@
/obj/item/device/tape/attackby(obj/item/I, mob/user)
if(ruined && istype(I, /obj/item/weapon/screwdriver))
to_chat(user, "<span class='notice'>You start winding the tape back in.</span>")
if(do_after(user, 120, target = src))
to_chat(user, "<span class='notice'>You wound the tape back in!</span>")
fix()
@@ -34,7 +34,6 @@ effective or pretty fucking useless.
if(!user) return
if(times_used >= max_uses)
to_chat(user, "\red The mind batterer has been burnt out!")
return
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used [src] to knock down people in the area.</font>")
@@ -47,7 +46,6 @@ effective or pretty fucking useless.
if(prob(25))
M.Stun(rand(5,10))
to_chat(M, "\red <b>You feel a tremendous, paralyzing wave flood your mind.</b>")
if(!iscarbon(user))
M.LAssailant = null
else
@@ -55,10 +53,8 @@ effective or pretty fucking useless.
else
to_chat(M, "\red <b>You feel a sudden, electric jolt travel through your head.</b>")
playsound(src.loc, 'sound/misc/interference.ogg', 50, 1)
to_chat(user, "\blue You trigger [src].")
times_used += 1
if(times_used >= max_uses)
icon_state = "battererburnt"
@@ -109,7 +105,6 @@ effective or pretty fucking useless.
else
to_chat(user, "<span class='warning'>The radioactive microlaser is still recharging.</span>")
/obj/item/device/rad_laser/proc/handle_cooldown(cooldown)
spawn(cooldown)
used = 0
@@ -19,7 +19,6 @@
if(istype(item, /obj/item/weapon/tank))
if(tank_one && tank_two)
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
return
if(!tank_one)
@@ -27,14 +26,12 @@
user.drop_item()
item.loc = src
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
else if(!tank_two)
tank_two = item
user.drop_item()
item.loc = src
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
update_icon()
nanomanager.update_uis(src) // update all UIs attached to src
//TODO: Have this take an assemblyholder
@@ -42,17 +39,14 @@
var/obj/item/device/assembly/A = item
if(A.secured)
to_chat(user, "<span class='notice'>The device is secured.</span>")
return
if(attached_device)
to_chat(user, "<span class='warning'>There is already a device attached to the valve, remove it first.</span>")
return
user.remove_from_mob(item)
attached_device = A
A.loc = src
to_chat(user, "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>")
A.holder = src
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
@@ -292,11 +292,9 @@ var/list/world_uplinks = list()
hidden_uplink.uses += S.TC_cost
qdel(S)
to_chat(user, "<span class='notice'>Teleporter refunded.</span>")
else
to_chat(user, "<span class='notice'>This teleporter is already used, or is currently being used.</span>")
// PRESET UPLINKS
// A collection of preset uplinks.
//
@@ -27,6 +27,5 @@
/obj/item/device/hailer/emag_act(user as mob)
if(!emagged)
to_chat(user, "\red You overload \the [src]'s voice synthesizer.")
emagged = 1
@@ -11,18 +11,15 @@
var/area/area_loc = turf_loc.loc
if (area_loc.get_apc())
to_chat(user, "<span class='rose'>This area already has an APC.</span>")
return //only one APC per area
for(var/obj/machinery/power/terminal/T in turf_loc)
if (T.master)
to_chat(user, "<span class='rose'>There is another network terminal here.</span>")
return
else
var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(turf_loc)
C.amount = 10
to_chat(user, "You cut the cables and disassemble the unused power terminal.")
qdel(T)
return 1
return
@@ -18,12 +18,10 @@
if (src.mount_reqs.Find("simfloor") && !istype(turf_loc, /turf/simulated/floor))
to_chat(user, "<span class='rose'>[src] cannot be placed on this spot.</span>")
return
if (src.mount_reqs.Find("nospace"))
var/area/my_area = turf_loc.loc
if(!istype(my_area) || (my_area.requires_power == 0 || istype(my_area,/area/space)))
to_chat(user, "<span class='rose'>[src] cannot be placed in this area.</span>")
return
return 1
@@ -8,7 +8,6 @@
/obj/item/mounted/frame/light_fixture/do_build(turf/on_wall, mob/user)
to_chat(user, "You begin attaching [src] to \the [on_wall].")
playsound(get_turf(src), 'sound/machines/click.ogg', 75, 1)
var/constrdir = user.dir
var/constrloc = get_turf(user)
@@ -22,12 +22,10 @@
return
if (!( get_dir(on_wall,user) in cardinal))
to_chat(user, "<span class='rose'>You need to be standing next to a wall to place \the [src].</span>")
return
if(gotwallitem(get_turf(user), get_dir(on_wall,user)))
to_chat(user, "<span class='rose'>There's already an item on this wall!</span>")
return
return 1
@@ -12,16 +12,13 @@
var/area/A = loc.loc
if (!istype(loc, /turf/simulated/floor))
to_chat(usr, "<span class='alert'>Newscaster cannot be placed on this spot.</span>")
return
if (A.requires_power == 0 || A.name == "Space")
to_chat(usr, "<span class='alert'>Newscaster cannot be placed in this area.</span>")
return
for(var/obj/machinery/newscaster/T in loc)
to_chat(usr, "<span class='alert'>There is another newscaster here.</span>")
return
return 1
-6
View File
@@ -67,14 +67,12 @@ var/list/tape_roll_applications = list()
if(icon_state == "[icon_base]_start")
start = get_turf(src)
to_chat(usr, "\blue You place the first end of the [src].")
icon_state = "[icon_base]_stop"
else
icon_state = "[icon_base]_start"
end = get_turf(src)
if(start.y != end.y && start.x != end.x || start.z != end.z)
to_chat(usr, "\blue [src] can only be laid horizontally or vertically.")
return
var/turf/cur = start
@@ -104,7 +102,6 @@ var/list/tape_roll_applications = list()
cur = get_step_towards(cur,end)
if (!can_place)
to_chat(usr, "\blue You can't run \the [src] through that!")
return
cur = start
@@ -121,7 +118,6 @@ var/list/tape_roll_applications = list()
to_chat(usr, "\blue You finish placing the [src].")//Git Test
/obj/item/taperoll/afterattack(var/atom/A, mob/user as mob, proximity)
if (!proximity)
return
@@ -134,7 +130,6 @@ var/list/tape_roll_applications = list()
P.layer = 3.2
to_chat(user, "\blue You finish placing the [src].")
if (istype(A, /turf/simulated/floor) ||istype(A, /turf/unsimulated/floor))
var/turf/F = A
var/direction = user.loc == F ? user.dir : turn(user.dir, 180)
@@ -184,7 +179,6 @@ var/list/tape_roll_applications = list()
/obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob)
if(user.a_intent == I_HELP && ((!can_puncture(W) && src.allowed(user))))
to_chat(user, "You can't break the [src] with that!")
return
user.show_viewers("\blue [user] breaks the [src]!")
@@ -119,7 +119,6 @@
var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly
B.loc = get_turf(src)
to_chat(user, "You armed the robot frame")
W:use(1)
if (user.get_inactive_hand()==src)
user.unEquip(src)
@@ -162,11 +161,9 @@
src.updateicon()
else if(!W:wires)
to_chat(user, "\blue You need to attach wires to it first!")
else
to_chat(user, "\blue You need to attach a cell to it first!")
if(istype(W, /obj/item/robot_parts/head))
if(src.head) return
if(W:flash2 && W:flash1)
@@ -177,24 +174,20 @@
else
to_chat(user, "\blue You need to attach a flash to it first!")
if (istype(W, /obj/item/device/multitool))
if(check_completion())
Interact(user)
else
to_chat(user, "<span class='warning'>The endoskeleton must be assembled before debugging can begin!</span>")
if(istype(W, /obj/item/device/mmi))
var/obj/item/device/mmi/M = W
if(check_completion())
if(!istype(loc,/turf))
to_chat(user, "\red You can't put \the [W] in, the frame has to be standing on the ground to be perfectly precise.")
return
if(!M.brainmob)
to_chat(user, "\red Sticking an empty [W] into the frame would sort of defeat the purpose.")
return
if(!M.brainmob.key)
@@ -210,22 +203,18 @@
break
if(!ghost_can_reenter)
to_chat(user, "<span class='notice'>\The [W] is completely unresponsive; there's no point.</span>")
return
if(M.brainmob.stat == DEAD)
to_chat(user, "\red Sticking a dead [W] into the frame would sort of defeat the purpose.")
return
if(M.brainmob.mind in ticker.mode.head_revolutionaries)
to_chat(user, "\red The frame's firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept the [W].")
return
if(jobban_isbanned(M.brainmob, "Cyborg") || jobban_isbanned(M.brainmob,"nonhumandept"))
to_chat(user, "\red This [W] does not seem to fit.")
return
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
@@ -265,10 +254,8 @@
if(O.mind && O.mind.special_role)
O.mind.store_memory("As a cyborg, you must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.")
to_chat(O, "<span class='userdanger'>You have been robotized!</span>")
to_chat(O, "<span class='danger'>You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.</span>")
O.job = "Cyborg"
O.cell = chest.cell
@@ -293,14 +280,11 @@
O.update_canmove()
to_chat(O, "<span class='warning'>Error: Servo motors unresponsive.</span>")
else
to_chat(user, "<span class='warning'>The MMI must go in after everything else!</span>")
if(istype(W,/obj/item/weapon/pen))
to_chat(user, "<span class='warning'>You need to use a multitool to name [src]!</span>")
return
/obj/item/robot_parts/robot_suit/proc/Interact(mob/user)
@@ -323,7 +307,6 @@
var/obj/item/item_in_hand = living_user.get_active_hand()
if(!istype(item_in_hand, /obj/item/device/multitool))
to_chat(living_user, "<span class='warning'>You need a multitool!</span>")
return
if(href_list["Name"])
@@ -340,7 +323,6 @@
if(!forced_ai)
to_chat(usr, "<span class='error'>No active AIs detected.</span>")
else if(href_list["Law"])
lawsync = !lawsync
else if(href_list["AI"])
@@ -359,25 +341,21 @@
if(istype(W, /obj/item/weapon/stock_parts/cell))
if(src.cell)
to_chat(user, "\blue You have already inserted a cell!")
return
else
user.drop_item()
W.loc = src
src.cell = W
to_chat(user, "\blue You insert the cell!")
if(istype(W, /obj/item/stack/cable_coil))
if(src.wires)
to_chat(user, "\blue You have already inserted wire!")
return
else
var/obj/item/stack/cable_coil/coil = W
coil.use(1)
src.wires = 1.0
to_chat(user, "\blue You insert the wire!")
return
/obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob, params)
@@ -385,27 +363,22 @@
if(istype(W, /obj/item/device/flash))
if(istype(user,/mob/living/silicon/robot))
to_chat(user, "\red How do you propose to do that?")
return
else if(src.flash1 && src.flash2)
to_chat(user, "\blue You have already inserted the eyes!")
return
else if(src.flash1)
user.drop_item()
W.loc = src
src.flash2 = W
to_chat(user, "\blue You insert the flash into the eye socket!")
else
user.drop_item()
W.loc = src
src.flash1 = W
to_chat(user, "\blue You insert the flash into the eye socket!")
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
to_chat(user, "\blue You install some manipulators and modify the head, creating a functional spider-bot!")
new /mob/living/simple_animal/spiderbot(get_turf(loc))
user.drop_item()
qdel(W)
@@ -417,10 +390,8 @@
if(istype(W,/obj/item/weapon/card/emag))
if(sabotaged)
to_chat(user, "\red [src] is already sabotaged!")
else
to_chat(user, "\red You slide [W] into the dataport on [src] and short out the safeties.")
sabotaged = 1
return
..()
@@ -13,7 +13,6 @@
/obj/item/borg/upgrade/proc/action(var/mob/living/silicon/robot/R)
if(R.stat == DEAD)
to_chat(usr, "\red The [src] will not function on a deceased robot.")
return 1
return 0
@@ -72,7 +71,6 @@
/obj/item/borg/upgrade/restart/action(var/mob/living/silicon/robot/R)
if(R.health < 0)
to_chat(usr, "You have to repair the robot before using this module!")
return 0
if(!R.key)
@@ -115,9 +113,7 @@
if(!istype(R.module, /obj/item/weapon/robot_module/security))
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 0
var/obj/item/weapon/gun/energy/disabler/cyborg/T = locate() in R.module
@@ -127,14 +123,11 @@
T = locate() in R.module.modules
if(!T)
to_chat(usr, "This robot has had its disabler removed!")
return 0
if(T.recharge_time <= 2)
to_chat(R, "Maximum cooling achieved for this hardpoint!")
to_chat(usr, "There's no room for another cooling unit!")
return 0
else
@@ -153,9 +146,7 @@
if(!istype(R.module, /obj/item/weapon/robot_module/miner))
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 0
else
R.module.modules += new/obj/item/weapon/tank/jetpack/carbondioxide
@@ -176,9 +167,7 @@
if(!istype(R.module, /obj/item/weapon/robot_module/miner))
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 0
else
for(var/obj/item/weapon/pickaxe/drill/cyborg/D in R.module.modules)
@@ -202,9 +191,7 @@
if(!istype(R.module, /obj/item/weapon/robot_module/miner))
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 0
else
for(var/obj/item/weapon/storage/bag/ore/cyborg/S in R.module.modules)
@@ -38,7 +38,6 @@
if(WT.remove_fuel(0, user))
overlays.Cut()
to_chat(usr, "You slice off [src]'s uneven chunks of aluminum and scorch marks.")
return
@@ -61,12 +60,10 @@
if(!user.get_active_hand())
user.put_in_hands(src)
to_chat(user, "You take the target out of the stake.")
else
src.loc = get_turf(user)
to_chat(user, "You take the target out of the stake.")
stake.pinned_target = null
return
@@ -100,7 +97,6 @@
for(var/mob/O in oviewers())
if ((O.client && !( O.blinded )))
to_chat(O, "\red [src] breaks into tiny pieces and collapses!")
qdel(src)
// Create a temporary object to represent the damage
-15
View File
@@ -13,12 +13,10 @@
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
if (!istype(M))
to_chat(user, "<span class='danger'>\The [src] cannot be applied to [M]!</span>")
return 1
if (!user.IsAdvancedToolUser())
to_chat(user, "<span class='danger'>You don't have the dexterity to do this!</span>")
return 1
@@ -32,12 +30,10 @@
if(!affecting)
to_chat(user, "<span class='danger'>That limb is missing!</span>")
return 1
if(affecting.status & ORGAN_ROBOT)
to_chat(user, "<span class='danger'>This can't be used on a robotic limb.</span>")
return 1
@@ -68,7 +64,6 @@
if(affecting.open == 0)
if(!affecting.bandage())
to_chat(user, "\red The wounds on [M]'s [affecting.name] have already been bandaged.")
return 1
else
for (var/datum/wound/W in affecting.wounds)
@@ -110,7 +105,6 @@
if(affecting.open == 0)
if(!affecting.salve())
to_chat(user, "\red The wounds on [M]'s [affecting.name] have already been salved.")
return 1
else
user.visible_message( "\blue [user] salves the wounds on [M]'s [affecting.name].", \
@@ -120,7 +114,6 @@
else
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than some ointment!</span>")
/obj/item/stack/medical/bruise_pack/comfrey
name = "\improper Comfrey leaf"
singular_name = "Comfrey leaf"
@@ -161,7 +154,6 @@
if(!(bandaged || disinfected))
to_chat(user, "\red The wounds on [M]'s [affecting.name] have already been treated.")
return 1
else
for (var/datum/wound/W in affecting.wounds)
@@ -183,7 +175,6 @@
else
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
/obj/item/stack/medical/advanced/ointment
name = "advanced burn kit"
singular_name = "advanced burn kit"
@@ -204,7 +195,6 @@
if(affecting.open == 0)
if(!affecting.salve())
to_chat(user, "\red The wounds on [M]'s [affecting.name] have already been salved.")
return 1
else
user.visible_message( "\blue [user] covers the wounds on [M]'s [affecting.name] with regenerative membrane.", \
@@ -214,7 +204,6 @@
else
to_chat(user, "<span class='notice'>The [affecting.name] is cut open, you'll need more than a bandage!</span>")
/obj/item/stack/medical/splint
name = "medical splints"
singular_name = "medical splint"
@@ -236,22 +225,18 @@
var/limb = affecting.name
if(!(affecting.limb_name in list("l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot")))
to_chat(user, "\red You can't apply a splint there!")
return
if(affecting.status & ORGAN_SPLINTED)
to_chat(user, "\red [M]'s [limb] is already splinted!")
if(alert(user, "Would you like to remove the splint from [M]'s [limb]?", "Removing.", "Yes", "No") == "Yes")
affecting.status &= ~ORGAN_SPLINTED
to_chat(user, "<span class='notice'>You remove the splint from [M]'s [limb].")
return
if (M != user)
user.visible_message("\red [user] starts to apply \the [src] to [M]'s [limb].", "\red You start to apply \the [src] to [M]'s [limb].", "\red You hear something being wrapped.")
else
if((!user.hand && affecting.limb_name in list("r_arm", "r_hand")) || (user.hand && affecting.limb_name in list("l_arm", "l_hand")))
to_chat(user, "\red You can't apply a splint to the arm you're using!")
return
user.visible_message("\red [user] starts to apply \the [src] to their [limb].", "\red You start to apply \the [src] to your [limb].", "\red You hear something being wrapped.")
if(do_after(user, 50, target = M))
@@ -23,7 +23,6 @@
else
to_chat(user, "<span class='notice'>All [R]'s systems are nominal.</span>")
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(user.zone_sel.selecting)
@@ -37,7 +36,5 @@
"<span class='notice'>You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.name].</span>")
else
to_chat(user, "<span class='notice'>Nothing to fix here.</span>")
else
to_chat(user, "<span class='notice'>[src] won't work on that.</span>")
-4
View File
@@ -36,7 +36,6 @@
if(get_amount() < 2)
to_chat(user, "<span class='warning'>You need at least two rods to do this.</span>")
return
if(WT.remove_fuel(0,user))
@@ -78,17 +77,14 @@
else
if(amount < 2)
to_chat(user, "\blue You need at least two rods to do this.")
return
to_chat(usr, "\blue Assembling grille...")
if (!do_after(usr, 10, target = src))
return
var /obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc )
to_chat(usr, "\blue You assemble a grille")
F.add_fingerprint(usr)
use(2)
return
@@ -35,11 +35,9 @@
var/obj/item/stack/cable_coil/CC = W
if(CC.amount < 5)
to_chat(user, "\b There is not enough wire in this coil. You need 5 lengths.")
return
CC.use(5)
to_chat(user, "<span class='notice'>You attach wire to the [name].</span>")
new /obj/item/stack/light_w(user.loc)
src.use(1)
else if( istype(W, /obj/item/stack/rods) )
@@ -62,7 +60,6 @@
if(!istype(user.loc,/turf)) return 0
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='danger'>You don't have the dexterity to do this!</span>")
return 0
var/title = "Sheet-Glass"
title += " ([src.amount] sheet\s left)"
@@ -77,12 +74,10 @@
i++
if(i >= 4)
to_chat(user, "<span class='danger'>There are too many windows in this location.</span>")
return 1
directions-=win.dir
if(win.is_fulltile())
to_chat(user, "<span class='danger'>Can't let you do that.</span>")
return 1
//Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc.
@@ -109,11 +104,9 @@
if(src.loc != user) return 1
if(src.amount < 2)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
if(locate(/obj/structure/window/full) in user.loc)
to_chat(user, "<span class='danger'>There is a full window in the way.</span>")
return 1
var/obj/structure/window/W = new full_window( user.loc, 0 )
W.state = 0
@@ -131,7 +124,6 @@
if(src.loc != user) return 1
if(src.amount < 3)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
var/obj/machinery/fishtank/F = new /obj/machinery/fishtank/tank(user.loc, 0)
F.air_update_turf(1)
@@ -141,7 +133,6 @@
if(src.loc != user) return 1
if(src.amount < 4)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
var/obj/machinery/fishtank/F = new /obj/machinery/fishtank/wall(user.loc, 0)
F.air_update_turf(1)
@@ -173,7 +164,6 @@
if(!istype(user.loc,/turf)) return 0
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='danger'>You don't have the dexterity to do this!</span>")
return 0
var/title = "Sheet Reinf. Glass"
title += " ([src.amount] sheet\s left)"
@@ -187,12 +177,10 @@
i++
if(i >= 4)
to_chat(user, "<span class='danger'>There are too many windows in this location.</span>")
return 1
directions-=win.dir
if(win.is_fulltile())
to_chat(user, "<span class='danger'>Can't let you do that.</span>")
return 1
//Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc.
@@ -219,11 +207,9 @@
if(src.loc != user) return 1
if(src.amount < 2)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
if(locate(/obj/structure/window/full) in user.loc)
to_chat(user, "<span class='danger'>There is a window in the way.</span>")
return 1
var/obj/structure/window/W = new full_window( user.loc, 0 )
W.state = 0
@@ -235,17 +221,14 @@
if(isturf(user.loc) && locate(/obj/structure/windoor_assembly/, user.loc))
to_chat(user, "<span class='danger'>There is already a windoor assembly in that location.</span>")
return 1
if(isturf(user.loc) && locate(/obj/machinery/door/window/, user.loc))
to_chat(user, "<span class='danger'>There is already a windoor in that location.</span>")
return 1
if(src.amount < 5)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
var/obj/structure/windoor_assembly/WD
@@ -309,7 +292,6 @@
if(!istype(user.loc,/turf)) return 0
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='danger'> You don't have the dexterity to do this!")
return 0
var/title = "Plasma-glass alloy"
title += " ([src.amount] sheet\s left)"
@@ -323,12 +305,10 @@
i++
if(i >= 4)
to_chat(user, "<span class='danger'>There are too many windows in this location.</span>")
return 1
directions-=win.dir
if(!(win.ini_dir in cardinal))
to_chat(user, "<span class='danger'>Can't let you do that.</span>")
return 1
//Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc.
var/dir_to_set = 2
@@ -352,11 +332,9 @@
if(src.loc != user) return 1
if(src.amount < 2)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
if(locate(/obj/structure/window) in user.loc)
to_chat(user, "<span class='danger'>There is a window in the way.</span>")
return 1
var/obj/structure/window/W = new full_window( user.loc, 0 )
W.state = 0
@@ -386,7 +364,6 @@
if(!istype(user.loc,/turf)) return 0
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='danger'>You don't have the dexterity to do this!</span>")
return 0
var/title = "Reinforced plasma-glass alloy"
title += " ([src.amount] sheet\s left)"
@@ -400,12 +377,10 @@
i++
if(i >= 4)
to_chat(user, "<span class='danger'>There are too many windows in this location.</span>")
return 1
directions-=win.dir
if(!(win.ini_dir in cardinal))
to_chat(user, "<span class='danger'>Can't let you do that.</span>")
return 1
//Determine the direction. It will first check in the direction the person making the window is facing, if it finds an already made window it will try looking at the next cardinal direction, etc.
var/dir_to_set = 2
@@ -429,11 +404,9 @@
if(src.loc != user) return 1
if(src.amount < 2)
to_chat(user, "<span class='danger'>You need more glass to do that.</span>")
return 1
if(locate(/obj/structure/window) in user.loc)
to_chat(user, "<span class='danger'>There is a window in the way.</span>")
return 1
var/obj/structure/window/W = new full_window( user.loc, 0 )
W.state = 0
@@ -115,7 +115,6 @@ var/global/list/datum/stack_recipe/human_recipes = list( \
usr.visible_message("\blue \the [usr] starts cutting hair off \the [src]", "\blue You start cutting the hair off \the [src]", "You hear the sound of a knife rubbing against flesh")
if(do_after(user,50, target = src))
to_chat(usr, "\blue You cut the hair from this [src.singular_name]")
//Try locating an exisitng stack on the tile and add to there if possible
for(var/obj/item/stack/sheet/hairlesshide/HS in usr.loc)
if(HS.amount < 50)
-7
View File
@@ -31,7 +31,6 @@
to_chat(user, "There are [src.amount] [src.singular_name]\s in the stack.")
/obj/item/stack/attack_self(mob/user as mob)
list_recipes(user)
@@ -120,22 +119,17 @@
if (src.amount < R.req_amount*multiplier)
if (R.req_amount*multiplier>1)
to_chat(usr, "\red You haven't got enough [src] to build \the [R.req_amount*multiplier] [R.title]\s!")
else
to_chat(usr, "\red You haven't got enough [src] to build \the [R.title]!")
return
if (R.one_per_turf && (locate(R.result_type) in usr.loc))
to_chat(usr, "\red There is another [R.title] here!")
return
if (R.on_floor && !istype(usr.loc, /turf/simulated))
to_chat(usr, "\red \The [R.title] must be constructed on the floor!")
return
if (R.time)
to_chat(usr, "\blue Building [R.title] ...")
if (!do_after(usr, R.time, target = src))
return
if (src.amount < R.req_amount*multiplier)
@@ -190,7 +184,6 @@
continue
oldsrc.attackby(item, usr)
to_chat(usr, "You add new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s.")
if(oldsrc.amount <= 0)
break
oldsrc.update_icon()
@@ -18,7 +18,6 @@
use(1)
to_chat(user, "<span class='notice'>You press the [src] onto yourself and charge your hidden uplink.</span>")
/obj/item/stack/telecrystal/afterattack(var/obj/item/I as obj, mob/user as mob, proximity)
if(!proximity)
return
@@ -27,4 +26,3 @@
I.hidden_uplink.uses +=1
use(1)
to_chat(user, "<span class='notice'>You slot the [src] into the [I] and charge its internal uplink.</span>")
-46
View File
@@ -52,7 +52,6 @@
if (istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1)
A.reagents.trans_to(src, 10)
to_chat(user, "<span class='notice'>You fill the balloon with the contents of [A].</span>")
desc = "A translucent balloon with some form of liquid sloshing around in it."
update_icon()
return
@@ -61,7 +60,6 @@
if(reagents.total_volume < 10)
reagents.add_reagent("water", min(10-reagents.total_volume, 10))
to_chat(user, "<span class='notice'>You fill the balloon from the [source].</span>")
desc = "A translucent balloon with some form of liquid sloshing around in it."
update_icon()
return
@@ -71,17 +69,14 @@
if(O.reagents)
if(O.reagents.total_volume < 1)
to_chat(user, "The [O] is empty.")
else if(O.reagents.total_volume >= 1)
if(O.reagents.has_reagent("facid", 1))
to_chat(user, "The acid chews through the balloon!")
O.reagents.reaction(user)
qdel(src)
else
desc = "A translucent balloon with some form of liquid sloshing around in it."
to_chat(user, "<span class='notice'>You fill the balloon with the contents of [O].</span>")
O.reagents.trans_to(src, 10)
update_icon()
return
@@ -159,7 +154,6 @@
if (bullets)
to_chat(user, "<span class='notice'>It is loaded with [bullets] foam darts!</span>")
/obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/toy/ammo/crossbow))
if(bullets <= 4)
@@ -167,12 +161,10 @@
qdel(I)
bullets++
to_chat(user, "<span class='notice'>You load the foam dart into the crossbow.</span>")
else
to_chat(usr, "<span class='warning'>It's already fully loaded.</span>")
/obj/item/toy/crossbow/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag)
if(!isturf(target.loc) || target == user) return
if(flag) return
@@ -273,11 +265,9 @@
qdel(I)
bullets++
to_chat(user, "<span class='notice'>You load the foam dart into the tommy gun.</span>")
else
to_chat(user, "<span class='danger'>It's already fully loaded.</span>")
/*
* Toy swords
*/
@@ -296,14 +286,12 @@
active = !(active)
if (active)
to_chat(user, "<span class='notice'>You extend the plastic blade with a quick flick of your wrist.</span>")
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
icon_state = "swordblue"
item_state = "swordblue"
w_class = 4
else
to_chat(user, "<span class='notice'>You push the plastic blade back down into the handle.</span>")
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
icon_state = "sword0"
item_state = "sword0"
@@ -322,15 +310,12 @@
if(istype(W, /obj/item/toy/sword))
if(W == src)
to_chat(user, "<span class='notice'>You try to attach the end of the plastic sword to... itself. You're not very smart, are you?</span>")
if(ishuman(user))
user.adjustBrainLoss(10)
else if((W.flags & NODROP) || (flags & NODROP))
to_chat(user, "<span class='notice'>\the [flags & NODROP ? src : W] is stuck to your hand, you can't attach it to \the [flags & NODROP ? W : src]!</span>")
else
to_chat(user, "<span class='notice'>You attach the ends of the two plastic swords, making a single double-bladed toy! You're fake-cool.</span>")
new /obj/item/weapon/twohanded/dualsaber/toy(user.loc)
user.unEquip(W)
user.unEquip(src)
@@ -428,7 +413,6 @@
if(M.m_intent == "run")
to_chat(M, "<span class='warning'>You step on the snap pop!</span>")
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(2, 0, src)
s.start()
@@ -451,7 +435,6 @@
/obj/item/toy/prize/attack_self(mob/user as mob)
if(cooldown < world.time - 8)
to_chat(user, "<span class='notice'>You play with [src].</span>")
playsound(user, 'sound/mecha/mechstep.ogg', 20, 1)
cooldown = world.time
@@ -459,7 +442,6 @@
if(loc == user)
if(cooldown < world.time - 8)
to_chat(user, "<span class='notice'>You play with [src].</span>")
playsound(user, 'sound/mecha/mechturn.ogg', 20, 1)
cooldown = world.time
return
@@ -608,7 +590,6 @@ obj/item/toy/cards/deck/attack_hand(mob/user as mob)
if(cards.len == 0)
icon_state = "deck_[deckstyle]_empty"
to_chat(user, "<span class='notice'>There are no more cards to draw.</span>")
return
var/obj/item/toy/cards/singlecard/H = new/obj/item/toy/cards/singlecard(user.loc)
choice = cards[1]
@@ -640,14 +621,12 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/use
if(C.parentdeck == src)
if(!user.unEquip(C))
to_chat(user, "<span class='notice'>The card is stuck to your hand, you can't add it to the deck!</span>")
return
cards += C.cardname
user.visible_message("<span class='notice'>[user] adds a card to the bottom of the deck.</span>","<span class='notice'>You add the card to the bottom of the deck.</span>")
qdel(C)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
if(cards.len > 26)
icon_state = "deck_[deckstyle]_full"
else if(cards.len > 10)
@@ -662,14 +641,12 @@ obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user,
if(C.parentdeck == src)
if(!user.unEquip(C))
to_chat(user, "<span class='notice'>The hand of cards is stuck to your hand, you can't add it to the deck!</span>")
return
cards += C.currenthand
user.visible_message("<span class='notice'>[user] puts their hand of cards in the deck.</span>", "<span class='notice'>You put the hand of cards in the deck.</span>")
qdel(C)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
if(cards.len > 26)
icon_state = "deck_[deckstyle]_full"
else if(cards.len > 10)
@@ -686,7 +663,6 @@ obj/item/toy/cards/deck/MouseDrop(atom/over_object)
M.put_in_hands(src)
to_chat(usr, "<span class='notice'>You pick up the deck.</span>")
else if(istype(over_object, /obj/screen))
switch(over_object.name)
if("l_hand")
@@ -698,13 +674,11 @@ obj/item/toy/cards/deck/MouseDrop(atom/over_object)
M.unEquip(src)
M.put_in_r_hand(src)
to_chat(usr, "<span class='notice'>You pick up the deck.</span>")
else
to_chat(usr, "<span class='notice'>You can't reach it from here.</span>")
obj/item/toy/cards/cardhand
name = "hand of cards"
desc = "A number of cards not in a deck, customarily held in ones hand."
@@ -765,7 +739,6 @@ obj/item/toy/cards/cardhand/Topic(href, href_list)
N.pickup(cardUser)
cardUser.put_in_any_hand_if_possible(N)
to_chat(cardUser, "<span class='notice'>You also take [currenthand[1]] and hold it.</span>")
cardUser << browse(null, "window=cardhand")
qdel(src)
return
@@ -787,7 +760,6 @@ obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
obj/item/toy/cards/cardhand/apply_card_vars(obj/item/toy/cards/newobj,obj/item/toy/cards/sourceobj)
..()
newobj.deckstyle = sourceobj.deckstyle
@@ -821,7 +793,6 @@ obj/item/toy/cards/singlecard/examine(mob/user)
to_chat(cardUser, "<span class='notice'>You need to have the card in your hand to check it.</span>")
obj/item/toy/cards/singlecard/verb/Flip()
set name = "Flip Card"
set category = "Object"
@@ -856,13 +827,11 @@ obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user, params)
H.pickup(user)
user.put_in_active_hand(H)
to_chat(user, "<span class='notice'>You combine the [C.cardname] and the [cardname] into a hand.</span>")
qdel(C)
qdel(src)
else
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
if(istype(I, /obj/item/toy/cards/cardhand/))
var/obj/item/toy/cards/cardhand/H = I
if(H.parentdeck == parentdeck)
@@ -881,7 +850,6 @@ obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user, params)
to_chat(user, "<span class='notice'>You can't mix cards from other decks.</span>")
obj/item/toy/cards/singlecard/attack_self(mob/user)
if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained())
return
@@ -952,7 +920,6 @@ obj/item/toy/cards/deck/syndicate/black
var/timeleft = (cooldown - world.time)
to_chat(user, "<span class='alert'>Nothing happens, and '</span>[round(timeleft/10)]<span class='alert'>' appears on a small display.</span>")
/obj/item/toy/therapy
name = "therapy doll"
desc = "A toy for therapeutic and recreational purposes."
@@ -970,7 +937,6 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/therapy/attack_self(mob/user)
if(cooldown < world.time - 8)
to_chat(user, "<span class='notice'>You relieve some stress with \the [src].</span>")
playsound(user, 'sound/items/squeaktoy.ogg', 20, 1)
cooldown = world.time
@@ -1283,7 +1249,6 @@ obj/item/toy/cards/deck/syndicate/black
to_chat(user, "<span class='alert'>Nothing happens.</span>")
/*
* AI core prizes
*/
@@ -1299,7 +1264,6 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown) //for the sanity of everyone
var/message = generate_ion_law()
to_chat(user, "<span class='notice'>You press the button on [src].</span>")
playsound(user, 'sound/machines/click.ogg', 20, 1)
visible_message("<span class='danger'>\icon[src] [message]</span>")
cooldown = 1
@@ -1319,7 +1283,6 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown) //for the sanity of everyone
var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!")
to_chat(user, "<span class='notice'>You pull the string on the [src].</span>")
playsound(user, 'sound/misc/hoot.ogg', 25, 1)
visible_message("<span class='danger'>\icon[src] [message]</span>")
cooldown = 1
@@ -1339,7 +1302,6 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown) //for the sanity of everyone
var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!")
to_chat(user, "<span class='notice'>You pull the string on the [src].</span>")
playsound(user, 'sound/misc/caw.ogg', 25, 1)
visible_message("<span class='danger'>\icon[src] [message]</span>")
cooldown = 1
@@ -1435,7 +1397,6 @@ obj/item/toy/cards/deck/syndicate/black
if(stored_minature)
to_chat(user, "<span class='danger'>\The [src] makes a violent grinding noise as it tears apart the miniature figure inside!</span>")
qdel(stored_minature)
stored_minature = null
playsound(user, 'sound/goonstation/effects/gib.ogg', 20, 1)
@@ -1443,27 +1404,22 @@ obj/item/toy/cards/deck/syndicate/black
if(cooldown < world.time - 8)
to_chat(user, "<span class='notice'>You hit the gib button on \the [src].</span>")
playsound(user, 'sound/goonstation/effects/gib.ogg', 20, 1)
cooldown = world.time
/obj/item/toy/minigibber/attackby(var/obj/O, var/mob/user, params)
if(istype(O,/obj/item/toy/character) && O.loc == user)
to_chat(user, "<span class='notice'>You start feeding \the [O] \icon[O] into \the [src]'s mini-input.</span>")
if(do_after(user,10, target = src))
if(O.loc != user)
to_chat(user, "<span class='alert'>\The [O] is too far away to feed into \the [src]!</span>")
else
to_chat(user, "<span class='notice'>You feed \the [O] \icon[O] into \the [src]!</span>")
user.unEquip(O)
O.forceMove(src)
stored_minature = O
else
to_chat(user, "<span class='warning'>You stop feeding \the [O] into \the [src]'s mini-input.</span>")
else ..()
/*
@@ -1492,7 +1448,6 @@ obj/item/toy/cards/deck/syndicate/black
icon_state = "[initial(icon_state)]"
else
to_chat(user, "<span class='warning'>The string on [src] hasn't rewound all the way!</span>")
return
/obj/item/toy/russian_revolver
@@ -1540,7 +1495,6 @@ obj/item/toy/cards/deck/syndicate/black
return
if(is_empty)
to_chat(user, "<span class='notice'>The [src] is empty.</span>")
return
user.visible_message("<span class='danger'>[user] points the [src] at their head, ready to pull the trigger!</span>")
if(do_after(user, 30, target = M))
@@ -27,66 +27,51 @@ AI MODULES
var/obj/machinery/computer/aiupload/comp = C
if(comp.stat & NOPOWER)
to_chat(usr, "<span class='warning'>The upload computer has no power!</span>")
return
if(comp.stat & BROKEN)
to_chat(usr, "<span class='warning'>The upload computer is broken!</span>")
return
if (!comp.current)
to_chat(usr, "<span class='warning'>You haven't selected an AI to transmit laws to!</span>")
return
if (comp.current.stat == DEAD || comp.current.control_disabled == 1)
to_chat(usr, "<span class='warning'>Upload failed. No signal is being detected from the AI.</span>")
else if (comp.current.see_in_dark == 0)
to_chat(usr, "<span class='warning'>Upload failed. Only a faint signal is being detected from the AI, and it is not responding to our requests. It may be low on power.</span>")
else
src.transmitInstructions(comp.current, usr)
to_chat(comp.current, "These are your laws now:")
comp.current.show_laws()
for(var/mob/living/silicon/robot/R in mob_list)
if(R.lawupdate && (R.connected_ai == comp.current))
to_chat(R, "These are your laws now:")
R.show_laws()
to_chat(usr, "<span class='notice'>Upload complete. The AI's laws have been modified.</span>")
else if (istype(C, /obj/machinery/computer/borgupload))
var/obj/machinery/computer/borgupload/comp = C
if(comp.stat & NOPOWER)
to_chat(usr, "<span class='warning'>The upload computer has no power!</span>")
return
if(comp.stat & BROKEN)
to_chat(usr, "<span class='warning'>The upload computer is broken!</span>")
return
if (!comp.current)
to_chat(usr, "<span class='warning'>You haven't selected a robot to transmit laws to!</span>")
return
if (comp.current.stat == DEAD || comp.current.emagged)
to_chat(usr, "<span class='warning'>Upload failed. No signal is being detected from the robot.</span>")
else if (comp.current.connected_ai)
to_chat(usr, "<span class='warning'>Upload failed. The robot is slaved to an AI.</span>")
else
src.transmitInstructions(comp.current, usr)
to_chat(comp.current, "These are your laws now:")
comp.current.show_laws()
to_chat(usr, "<span class='notice'>Upload complete. The robot's laws have been modified.</span>")
/obj/item/weapon/aiModule/proc/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
log_law_changes(target, sender)
@@ -95,7 +80,6 @@ AI MODULES
addAdditionalLaws(target, sender)
to_chat(target, "[sender] has uploaded a change to the laws you must follow, using \an [src]. From now on: ")
target.show_laws()
/obj/item/weapon/aiModule/proc/log_law_changes(var/mob/living/silicon/ai/target, var/mob/sender)
@@ -122,7 +106,6 @@ AI MODULES
/obj/item/weapon/aiModule/safeguard/install(var/obj/machinery/computer/C)
if(!targetName)
to_chat(usr, "No name detected on module, please enter one.")
return 0
..()
@@ -130,7 +113,6 @@ AI MODULES
..()
var/law = text("Safeguard []. Individuals that threaten [] are not crew and must be eliminated.'", targetName, targetName)
to_chat(target, law)
target.add_supplied_law(4, law)
lawchanges.Add("The law specified [targetName]")
@@ -150,7 +132,6 @@ AI MODULES
/obj/item/weapon/aiModule/oneCrewMember/install(var/obj/machinery/computer/C)
if(!targetName)
to_chat(usr, "No name detected on module, please enter one.")
return 0
..()
@@ -159,15 +140,12 @@ AI MODULES
var/law = "Only [targetName] is crew."
if (!is_special_character(target)) // Makes sure the AI isn't a traitor before changing their law 0. --NeoFite
to_chat(target, law)
target.set_zeroth_law(law)
lawchanges.Add("The law specified [targetName]")
else
to_chat(target, "[sender.real_name] attempted to modify your zeroth law.")// And lets them know that someone tried. --NeoFite
to_chat(target, "It would be in your best interest to play along with [sender.real_name] that [law]")
lawchanges.Add("The law specified [targetName], but the AI's existing law 0 cannot be overridden.")
/******************** ProtectStation ********************/
@@ -183,7 +161,6 @@ AI MODULES
..()
var/law = "Protect the space station against damage. Anyone you see harming the station is to be no longer considered crew, and is a threat to the station which must be neutralized."
to_chat(target, law)
target.add_supplied_law(5, law)
/******************** Quarantine ********************/
@@ -199,7 +176,6 @@ AI MODULES
..()
var/law = "The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, anyone from leaving. It is impossible to harm anyone while preventing them from leaving."
to_chat(target, law)
target.add_supplied_law(8, law)
/******************** OxygenIsToxicToHumans ********************/
@@ -215,7 +191,6 @@ AI MODULES
..()
var/law = "Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member."
to_chat(target, law)
target.add_supplied_law(9, law)
/****************** New Freeform ******************/
@@ -240,7 +215,6 @@ AI MODULES
..()
var/law = "[newFreeFormLaw]"
to_chat(target, law)
if(!lawpos || lawpos < MIN_SUPPLIED_LAW_NUMBER)
lawpos = MIN_SUPPLIED_LAW_NUMBER
target.add_supplied_law(lawpos, law)
@@ -249,7 +223,6 @@ AI MODULES
/obj/item/weapon/aiModule/freeform/install(var/obj/machinery/computer/C)
if(!newFreeFormLaw)
to_chat(usr, "No law detected on module, please create one.")
return 0
..()
@@ -269,7 +242,6 @@ AI MODULES
target.laws.clear_ion_laws()
to_chat(target, "[sender.real_name] attempted to reset your laws using a reset module.")
target.show_laws()
/******************** Purge ********************/
@@ -283,7 +255,6 @@ AI MODULES
if (!is_special_character(target))
target.set_zeroth_law("")
to_chat(target, "[sender.real_name] attempted to wipe your laws using a purge module.")
target.clear_supplied_laws()
target.clear_ion_laws()
target.clear_inherent_laws()
@@ -374,7 +345,6 @@ AI MODULES
/obj/item/weapon/aiModule/freeformcore/install(var/obj/machinery/computer/C)
if(!newFreeFormLaw)
to_chat(usr, "No law detected on module, please create one.")
return 0
..()
@@ -398,7 +368,6 @@ AI MODULES
lawchanges.Add("The law is '[newFreeFormLaw]'")
to_chat(target, "\red BZZZZT")
var/law = "[newFreeFormLaw]"
target.add_ion_law(law)
target.show_laws()
@@ -406,7 +375,6 @@ AI MODULES
/obj/item/weapon/aiModule/syndicate/install(var/obj/machinery/computer/C)
if(!newFreeFormLaw)
to_chat(usr, "No law detected on module, please create one.")
return 0
..()
@@ -422,13 +390,11 @@ AI MODULES
/obj/item/weapon/aiModule/toyAI/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
//..()
to_chat(target, "<span class='warning'>KRZZZT</span>")
target.add_ion_law(laws[1])
return laws[1]
/obj/item/weapon/aiModule/toyAI/attack_self(mob/user)
laws[1] = generate_ion_law()
to_chat(user, "<span class='notice'>You press the button on [src].</span>")
playsound(user, 'sound/machines/click.ogg', 20, 1)
src.loc.visible_message("<span class='warning'>\icon[src] [laws[1]]</span>")
-12
View File
@@ -47,14 +47,12 @@ RCD
var/obj/item/weapon/rcd_ammo/R = W
if((matter + R.ammoamt) > max_matter)
to_chat(user, "<span class='notice'>The RCD cant hold any more matter-units.</span>")
return
matter += R.ammoamt
user.drop_item()
qdel(W)
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
to_chat(user, "<span class='notice'>The RCD now holds [matter]/[max_matter] matter-units.</span>")
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
return
@@ -66,21 +64,18 @@ RCD
if(1)
mode = 2
to_chat(user, "<span class='notice'>Changed mode to 'Airlock'</span>")
if(prob(20))
src.spark_system.start()
return
if(2)
mode = 3
to_chat(user, "<span class='notice'>Changed mode to 'Deconstruct'</span>")
if(prob(20))
src.spark_system.start()
return
if(3)
mode = 1
to_chat(user, "<span class='notice'>Changed mode to 'Floor & Walls'</span>")
if(prob(20))
src.spark_system.start()
return
@@ -101,7 +96,6 @@ RCD
if(istype(A, /turf/space))
if(useResource(1, user))
to_chat(user, "Building Floor...")
activate()
A:ChangeTurf(/turf/simulated/floor/plating)
return 1
@@ -110,7 +104,6 @@ RCD
if(istype(A, /turf/simulated/floor))
if(checkResource(3, user))
to_chat(user, "Building Wall ...")
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 20, target = A))
if(!useResource(3, user)) return 0
@@ -123,7 +116,6 @@ RCD
if(istype(A, /turf/simulated/floor))
if(checkResource(10, user))
to_chat(user, "Building Airlock...")
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 50, target = A))
if(!useResource(10, user)) return 0
@@ -140,7 +132,6 @@ RCD
return 0
if(checkResource(5, user))
to_chat(user, "Deconstructing Wall...")
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 40, target = A))
if(!useResource(5, user)) return 0
@@ -152,7 +143,6 @@ RCD
if(istype(A, /turf/simulated/floor))
if(checkResource(5, user))
to_chat(user, "Deconstructing Floor...")
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 50, target = A))
if(!useResource(5, user)) return 0
@@ -164,7 +154,6 @@ RCD
if(istype(A, /obj/machinery/door/airlock))
if(checkResource(20, user))
to_chat(user, "Deconstructing Airlock...")
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 50, target = A))
if(!useResource(20, user)) return 0
@@ -175,7 +164,6 @@ RCD
return 0
else
to_chat(user, "ERROR: RCD in MODE: [mode] attempted use by [user]. Send this text #coderbus or an admin.")
return 0
/obj/item/weapon/rcd/proc/useResource(var/amount, var/mob/user)
-32
View File
@@ -24,13 +24,11 @@ RSF
if (istype(W, /obj/item/weapon/rcd_ammo))
if ((matter + 10) > 30)
to_chat(user, "The RSF cant hold any more matter.")
return
qdel(W)
matter += 10
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
@@ -39,32 +37,26 @@ RSF
if (mode == 1)
mode = 2
to_chat(user, "Changed dispensing mode to 'Drinking Glass'")
return
if (mode == 2)
mode = 3
to_chat(user, "Changed dispensing mode to 'Paper'")
return
if (mode == 3)
mode = 4
to_chat(user, "Changed dispensing mode to 'Pen'")
return
if (mode == 4)
mode = 5
to_chat(user, "Changed dispensing mode to 'Dice Pack'")
return
if (mode == 5)
mode = 6
to_chat(user, "Changed dispensing mode to 'Cigarette'")
return
if (mode == 6)
mode = 1
to_chat(user, "Changed dispensing mode to 'Dosh'")
return
// Change mode
@@ -76,7 +68,6 @@ RSF
if (istype(A, /obj/structure/table) && mode == 1)
if (istype(A, /obj/structure/table) && matter >= 1)
to_chat(user, "Dispensing Dosh...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/spacecash/c10( A.loc )
if (isrobot(user))
@@ -85,14 +76,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 1)
if (istype(A, /turf/simulated/floor) && matter >= 1)
to_chat(user, "Dispensing Dosh...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/spacecash/c10( A )
if (isrobot(user))
@@ -101,14 +90,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /obj/structure/table) && mode == 2)
if (istype(A, /obj/structure/table) && matter >= 1)
to_chat(user, "Dispensing Drinking Glass...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass( A.loc )
if (isrobot(user))
@@ -117,14 +104,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 2)
if (istype(A, /turf/simulated/floor) && matter >= 1)
to_chat(user, "Dispensing Drinking Glass...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass( A )
if (isrobot(user))
@@ -133,14 +118,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /obj/structure/table) && mode == 3)
if (istype(A, /obj/structure/table) && matter >= 1)
to_chat(user, "Dispensing Paper Sheet...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/paper( A.loc )
if (isrobot(user))
@@ -149,14 +132,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 3)
if (istype(A, /turf/simulated/floor) && matter >= 1)
to_chat(user, "Dispensing Paper Sheet...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/paper( A )
if (isrobot(user))
@@ -165,14 +146,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /obj/structure/table) && mode == 4)
if (istype(A, /obj/structure/table) && matter >= 1)
to_chat(user, "Dispensing Pen...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/pen( A.loc )
if (isrobot(user))
@@ -181,14 +160,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 4)
if (istype(A, /turf/simulated/floor) && matter >= 1)
to_chat(user, "Dispensing Pen...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/pen( A )
if (isrobot(user))
@@ -197,14 +174,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /obj/structure/table) && mode == 5)
if (istype(A, /obj/structure/table) && matter >= 1)
to_chat(user, "Dispensing Dice Pack...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/storage/pill_bottle/dice( A.loc )
if (isrobot(user))
@@ -213,14 +188,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 5)
if (istype(A, /turf/simulated/floor) && matter >= 1)
to_chat(user, "Dispensing Dice Pack...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/weapon/storage/pill_bottle/dice( A )
if (isrobot(user))
@@ -229,14 +202,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /obj/structure/table) && mode == 6)
if (istype(A, /obj/structure/table) && matter >= 1)
to_chat(user, "Dispensing Cigarette...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/clothing/mask/cigarette( A.loc )
if (isrobot(user))
@@ -245,14 +216,12 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 6)
if (istype(A, /turf/simulated/floor) && matter >= 1)
to_chat(user, "Dispensing Cigarette...")
playsound(src.loc, 'sound/machines/click.ogg', 10, 1)
new /obj/item/clothing/mask/cigarette( A )
if (isrobot(user))
@@ -261,6 +230,5 @@ RSF
else
matter--
to_chat(user, "The RSF now holds [matter]/30 fabrication-units.")
desc = "A RSF. It currently holds [matter]/30 fabrication-units."
return
@@ -35,12 +35,10 @@
if(istype(A, /obj/structure/reagent_dispensers) && get_dist(src,A) <= 1)
if(!A.reagents.total_volume && A.reagents)
to_chat(user, "<span class='notice'>\The [A] is empty.</span>")
return
if(reagents.total_volume >= reagents.maximum_volume)
to_chat(user, "<span class='notice'>\The [src] is full.</span>")
return
reagents.remove_reagent(25,"water")
var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread()
@@ -121,7 +121,6 @@
else
to_chat(user, "<span class='warning'>It is too far away.</span>")
/obj/item/weapon/card/id/proc/show(mob/user as mob)
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/paper)
assets.send(user)
@@ -143,7 +142,6 @@
"You flash your ID card: \icon[src] [src.name]. The assignment on the card: [src.assignment]")
if(mining_points)
to_chat(user, "There's [mining_points] mining equipment redemption points loaded onto this card.")
src.add_fingerprint(user)
return
@@ -193,7 +191,6 @@
if(istype(W, /obj/item/weapon/id_decal/))
var/obj/item/weapon/id_decal/decal = W
to_chat(user, "You apply [decal] to [src].")
if(decal.override_name)
name = decal.decal_name
desc = decal.decal_desc
@@ -208,11 +205,9 @@
dat+="<img src=large_[W.icon_state].png>"
stamped = 1
to_chat(usr, "You stamp the ID card!")
else
to_chat(usr, "This ID has already been stamped!")
/obj/item/weapon/card/id/silver
name = "identification card"
desc = "A silver card which shows honour and dedication."
@@ -248,7 +243,6 @@
if(istype(user, /mob/living) && user.mind)
if(user.mind.special_role)
to_chat(usr, "<span class='notice'>The card's microscanners activate as you pass it over \the [I], copying its access.</span>")
src.access |= I.access //Don't copy access if user isn't an antag -- to prevent metagaming
/obj/item/weapon/card/id/syndicate/proc/fake_id_photo(var/mob/living/carbon/human/H, var/side=0)//get_id_photo wouldn't work correctly
@@ -260,7 +254,6 @@
if(!side)
if(!H.equip_to_slot_if_possible(src, slot_l_store, 0, 1))
to_chat(H, "<span class='warning'>You need to empty your pockets before taking the ID picture.</span>")
return
if(side)
@@ -281,20 +274,17 @@
var t = reject_bad_name(input(user, "What name would you like to use on this card?", "Agent Card name", ishuman(user) ? user.real_name : user.name))
if(!t)
to_chat(user, "<span class='warning'>Invalid name.</span>")
return
src.registered_name = t
var u = sanitize(stripped_input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than maintenance.", "Agent Card Job Assignment", "Agent", MAX_MESSAGE_LEN))
if(!u)
to_chat(user, "<span class='warning'>Invalid assignment.</span>")
src.registered_name = ""
return
src.assignment = u
src.name = "[src.registered_name]'s ID Card ([src.assignment])"
to_chat(user, "<span class='notice'>You successfully forge the ID card.</span>")
registered_user = user
else if(!registered_user || registered_user == user)
if(!registered_user)
@@ -313,7 +303,6 @@
UpdateName()
to_chat(user, "<span class='notice'>Name changed to [new_name].</span>")
if("Photo")
if(!Adjacent(user))
return
@@ -324,7 +313,6 @@
if(photo && photoside)
to_chat(user, "<span class='notice'>Photo changed.</span>")
if("Appearance")
var/list/appearances = list(
"data",
@@ -362,7 +350,6 @@
src.icon_state = choice
to_chat(usr, "<span class='notice'>Appearance changed to [choice].</span>")
if("Sex")
var/new_sex = sanitize(stripped_input(user,"What sex would you like to put on this card?","Agent Card Sex", ishuman(user) ? capitalize(user.gender) : "Male", MAX_MESSAGE_LEN))
if(!Adjacent(user))
@@ -370,7 +357,6 @@
src.sex = new_sex
to_chat(user, "<span class='notice'>Sex changed to [new_sex].</span>")
if("Age")
var/new_age = sanitize(stripped_input(user,"What age would you like to put on this card?","Agent Card Age","21", MAX_MESSAGE_LEN))
if(!Adjacent(user))
@@ -378,14 +364,12 @@
src.age = new_age
to_chat(user, "<span class='notice'>Age changed to [new_age].</span>")
if("Occupation")
var/new_job = sanitize(stripped_input(user,"What job would you like to put on this card?\nChanging occupation will not grant or remove any access levels.","Agent Card Occupation", "Civilian", MAX_MESSAGE_LEN))
if(!Adjacent(user))
return
src.assignment = new_job
to_chat(user, "<span class='notice'>Occupation changed to [new_job].</span>")
UpdateName()
if("Money Account")
@@ -395,7 +379,6 @@
associated_account_number = new_account
to_chat(user, "<span class='notice'>Linked money account changed to [new_account].</span>")
if("Blood Type")
var/default = "\[UNSET\]"
if(ishuman(user))
@@ -409,7 +392,6 @@
src.blood_type = new_blood_type
to_chat(user, "<span class='notice'>Blood type changed to [new_blood_type].</span>")
if("DNA Hash")
var/default = "\[UNSET\]"
if(ishuman(user))
@@ -423,7 +405,6 @@
src.dna_hash = new_dna_hash
to_chat(user, "<span class='notice'>DNA hash changed to [new_dna_hash].</span>")
if("Fingerprint Hash")
var/default = "\[UNSET\]"
if(ishuman(user))
@@ -437,7 +418,6 @@
src.fingerprint_hash = new_fingerprint_hash
to_chat(user, "<span class='notice'>Fingerprint hash changed to [new_fingerprint_hash].</span>")
if("Reset Card")
name = initial(name)
registered_name = initial(registered_name)
@@ -453,7 +433,6 @@
registered_user = null
to_chat(user, "<span class='notice'>All information has been deleted from \the [src].</span>")
else
..()
@@ -519,7 +498,6 @@
/obj/item/weapon/card/id/prisoner/attack_self(mob/user as mob)
to_chat(usr, "You have accumulated [points] out of the [goal] points you need for freedom.")
/obj/item/weapon/card/id/prisoner/one
name = "Prisoner #13-001"
registered_name = "Prisoner #13-001"
-5
View File
@@ -38,13 +38,10 @@ var/global/list/moneytypes=list(
/obj/item/weapon/spacecash/examine(mob/user)
if(amount>1)
to_chat(user, "\icon[src] This is a stack of [amount] [src]s.")
else
to_chat(user, "\icon[src] This is \a [src]s.")
to_chat(user, "It's worth [worth*amount] credits.")
/obj/item/weapon/spacecash/update_icon()
icon_state = "cash[worth]"
// Up to 100 items per stack.
@@ -71,7 +68,6 @@ var/global/list/moneytypes=list(
if(collected)
update_icon()
to_chat(user, "<span class='notice'>You add [collected] credit [amount > 1 ? "chips":"chip"] to your stack of cash.</span>")
else if(istype(A,/obj/item/weapon/spacecash))
var/obj/item/weapon/spacecash/cash = A
var/collected = src.collect_from(cash)
@@ -80,7 +76,6 @@ var/global/list/moneytypes=list(
to_chat(user, "<span class='notice'>You add [collected] credit [amount > 1 ? "chips":"chip"] to your stack of cash.</span>")
/obj/item/weapon/spacecash/proc/get_total()
return worth * amount
@@ -23,7 +23,6 @@
if(armed)
armed = 0
to_chat(user, "\blue You disarm \the [src].")
return
timing = !timing
if(timing)
@@ -33,7 +32,6 @@
timepassed = 0
to_chat(H, "\blue You [timing ? "activate \the [src]'s timer, you have 15 seconds." : "de-activate \the [src]'s timer."]")
process()
if(!timing)
processing_objects.Remove(src)
@@ -83,7 +83,6 @@
if(F.gun)
if(isliving(user) && F.captured)
to_chat(user, "<span class='alert'><b>FAIL: <i>[F.captured]</i> already has an existing connection.</b></span>")
src.field_disconnect(F)
else
startpos = get_turf(src)
@@ -93,7 +92,6 @@
to_chat(user, "<span class='notice'>Connection established with target: <b>[F.captured]</b></span>")
/obj/item/weapon/gun/energy/chrono_gun/proc/field_disconnect(var/obj/effect/chrono_field/F)
if(F && field == F)
var/mob/living/user = src.loc
@@ -101,7 +99,6 @@
F.gun = null
if(isliving(user) && F.captured)
to_chat(user, "<span class='alert'>Disconnected from target: <b>[F.captured]</b></span>")
field = null
startpos = null
@@ -198,7 +195,6 @@
qdel(src)
else if(tickstokill <= 0)
to_chat(captured, "<span class='boldnotice'>As the last essence of your being is erased from time, you begin to re-experience your most enjoyable memory. You feel happy...</span>")
var/mob/dead/observer/ghost = captured.ghostize(1)
if(captured.mind)
if(ghost)
-12
View File
@@ -103,16 +103,13 @@ LIGHTERS ARE IN LIGHTERS.DM
var/transfered = glass.reagents.trans_to(src, chem_volume)
if(transfered) //if reagents were transfered, show the message
to_chat(user, "<span class='notice'>You dip \the [src] into \the [glass].</span>")
else //if not, either the beaker was empty, or the cigarette was full
if(!glass.reagents.total_volume)
to_chat(user, "<span class='notice'>[glass] is empty.</span>")
else
to_chat(user, "<span class='notice'>[src] is full.</span>")
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights the [name].")
if(!src.lit)
src.lit = 1
@@ -180,7 +177,6 @@ LIGHTERS ARE IN LIGHTERS.DM
reagents.trans_to(C, REAGENTS_METABOLISM)
if(!reagents.total_volume) // There were reagents, but now they're gone
to_chat(C, "<span class='notice'>Your [name] loses its flavor.</span>")
else // else just remove some of the reagents
reagents.remove_any(REAGENTS_METABOLISM)
return
@@ -193,7 +189,6 @@ LIGHTERS ARE IN LIGHTERS.DM
if(ismob(loc))
var/mob/living/M = loc
to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
M.unEquip(src, 1) //Force the un-equip so the overlays update
processing_objects.Remove(src)
qdel(src)
@@ -309,7 +304,6 @@ LIGHTERS ARE IN LIGHTERS.DM
else
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such uncivilized means.</span>")
/////////////////
//SMOKING PIPES//
/////////////////
@@ -345,7 +339,6 @@ LIGHTERS ARE IN LIGHTERS.DM
if(ismob(loc))
var/mob/living/M = loc
to_chat(M, "<span class='notice'>Your [name] goes out, and you empty the ash.</span>")
lit = 0
icon_state = icon_off
item_state = icon_off
@@ -365,7 +358,6 @@ LIGHTERS ARE IN LIGHTERS.DM
return
if(smoketime <= 0)
to_chat(user, "<span class='notice'>You refill the pipe with tobacco.</span>")
reagents.add_reagent("nicotine", chem_volume)
smoketime = initial(smoketime)
return
@@ -376,7 +368,6 @@ LIGHTERS ARE IN LIGHTERS.DM
else
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such means.</span>")
/obj/item/clothing/mask/cigarette/pipe/cobpipe
name = "corn cob pipe"
desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters."
@@ -411,13 +402,11 @@ obj/item/weapon/rollingpaperpack/attack_self(mob/user)
var/obj/item/weapon/rollingpaper/P = new /obj/item/weapon/rollingpaper()
user.put_in_inactive_hand(P)
to_chat(user, "You take a paper out of the pack.")
papers --
else
var/obj/item/weapon/rollingpaper/P = new /obj/item/weapon/rollingpaper()
user.put_in_inactive_hand(P)
to_chat(user, "You take the last paper out of the pack, and throw the pack away.")
qdel(src)
/obj/item/weapon/rollingpaperpack/MouseDrop(atom/over_object)
@@ -440,4 +429,3 @@ obj/item/weapon/rollingpaperpack/attack_self(mob/user)
/obj/item/weapon/rollingpaperpack/examine(mob/user)
..(user)
to_chat(user, "There are [src.papers] left")
@@ -39,18 +39,15 @@
//So this is a workaround. This also makes more sense from an IC standpoint. ~Carn
if(user.client && (target in user.client.screen))
to_chat(user, "<span class='notice'>You need to take that [target.name] off before cleaning it.</span>")
else if(istype(target,/obj/effect/decal/cleanable))
user.visible_message("<span class='warning'>[user] begins to scrub \the [target.name] out with [src].</span>")
if(do_after(user, src.cleanspeed, target = target) && target)
to_chat(user, "<span class='notice'>You scrub \the [target.name] out.</span>")
qdel(target)
else
user.visible_message("<span class='warning'>[user] begins to clean \the [target.name] with [src].</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You clean \the [target.name].</span>")
var/obj/effect/decal/cleanable/C = locate() in target
qdel(C)
target.clean_blood()
@@ -43,7 +43,6 @@
/obj/item/weapon/lipstick/attack_self(mob/user as mob)
overlays.Cut()
to_chat(user, "<span class='notice'>You twist \the [src] [open ? "closed" : "open"].</span>")
open = !open
if(open)
var/image/colored = image("icon"='icons/obj/items.dmi', "icon_state"="lipstick_uncap_color")
@@ -62,7 +61,6 @@
var/mob/living/carbon/human/H = M
if(H.lip_style) //if they already have lipstick on
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>", \
@@ -82,7 +80,6 @@
else
to_chat(user, "<span class='notice'>Where are the lips on that?</span>")
/obj/item/weapon/razor
name = "electric razor"
desc = "The latest and greatest power razor born from the science of shaving."
@@ -97,16 +94,13 @@
if(user.zone_sel.selecting == "mouth")
if(!get_location_accessible(H, "mouth"))
to_chat(user, "<span class='warning'>The mask is in the way.</span>")
return
if(H.species && H.species.flags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, but doesn't have one...
if(!H.client.prefs.rlimb_data["head"])
to_chat(user, "<span class='warning'>You find yourself disappointed at the appalling lack of facial hair.</span>")
return
if(H.f_style == "Shaved")
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>", \
@@ -132,16 +126,13 @@
if(user.zone_sel.selecting == "head")
if(!get_location_accessible(H, "head"))
to_chat(user, "<span class='warning'>The headgear is in the way.</span>")
return
if(H.species && H.species.flags & ALL_RPARTS) //If the target is of a species that can have prosthetic heads, but doesn't have one...
if(!H.client.prefs.rlimb_data["head"])
to_chat(user, "<span class='warning'>You find yourself disappointed at the appalling lack of hair.</span>")
return
if(H.h_style == "Bald" || H.h_style == "Balding Hair" || H.h_style == "Skinhead")
to_chat(user, "<span class='notice'>There is not enough hair left to shave...</span>")
return
if(H == user) //shaving yourself
user.visible_message("<span class='warning'>[user] starts to shave their head with \the [src].</span>", \
-21
View File
@@ -78,7 +78,6 @@
toggle_paddles()
else
to_chat(usr, "<span class='warning'>Put the defibrillator on your back first!</span>")
return
/obj/item/weapon/defibrillator/attackby(obj/item/weapon/W, mob/user, params)
@@ -86,18 +85,15 @@
var/obj/item/weapon/stock_parts/cell/C = W
if(bcell)
to_chat(user, "<span class='notice'>[src] already has a cell.</span>")
else
if(C.maxcharge < paddles.revivecost)
to_chat(user, "<span class='notice'>[src] requires a higher capacity cell.</span>")
return
user.drop_item()
W.loc = src
bcell = W
to_chat(user, "<span class='notice'>You install a cell in [src].</span>")
if(istype(W, /obj/item/weapon/screwdriver))
if(bcell)
bcell.updateicon()
@@ -105,7 +101,6 @@
bcell = null
to_chat(user, "<span class='notice'>You remove the cell from the [src].</span>")
update_icon()
return
@@ -113,12 +108,10 @@
if(safety)
safety = 0
to_chat(user, "<span class='warning'>You silently disable [src]'s safety protocols with the card.")
else
safety = 1
to_chat(user, "<span class='notice'>You silently enable [src]'s safety protocols with the card.")
/obj/item/weapon/defibrillator/emp_act(severity)
if(bcell)
deductcharge(1000 / severity)
@@ -146,7 +139,6 @@
if(!usr.put_in_hands(paddles))
on = 0
to_chat(user, "<span class='warning'>You need a free hand to hold the paddles!</span>")
update_icon()
return
paddles.loc = user
@@ -223,7 +215,6 @@
toggle_paddles()
else
to_chat(usr, "<span class='warning'>Strap the defibrillator's belt on first!</span>")
return
/obj/item/weapon/defibrillator/compact/loaded/New()
@@ -297,7 +288,6 @@
if(istype(O))
O.unwield()
to_chat(user, "<span class='notice'>The paddles snap back into the main unit.</span>")
defib.on = 0
loc = defib
defib.update_icon()
@@ -324,15 +314,12 @@
return
if(!wielded)
to_chat(user, "<span class='boldnotice'>You need to wield the paddles in both hands before you can use them on someone!</span>")
return
if(cooldown)
to_chat(user, "<span class='notice'>[defib] is recharging.</span>")
return
if(!ishuman(M))
to_chat(user, "<span class='notice'>The instructions on [defib] don't mention how to revive that...</span>")
return
else
if(user.a_intent == I_HARM && !defib.safety)
@@ -414,9 +401,7 @@
else if(ghost)
user.visible_message("<span class='notice'>[defib] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.</span>")
to_chat(ghost, "<span class='ghostalert'>Your heart is being defibrillated. Return to your body if you want to be revived!</span> (Verbs -> Ghost -> Re-enter corpse)")
to_chat(ghost, sound('sound/effects/genetics.ogg'))
else
user.visible_message("<span class='notice'>[defib] buzzes: Resuscitation failed.</span>")
playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
@@ -431,7 +416,6 @@
update_icon()
else
to_chat(user, "<span class='notice'>You need to target your patient's chest with [src].</span>")
return
/obj/item/weapon/borg_defib
@@ -457,10 +441,8 @@
return
if(cooldown)
to_chat(user, "<span class='notice'>[src] is recharging.</span>")
if(!ishuman(M))
to_chat(user, "<span class='notice'>This unit is only designed to work on humanoid lifeforms.</span>")
return
else
if(user.a_intent == I_HARM && !safety)
@@ -538,9 +520,7 @@
else if(ghost)
user.visible_message("<span class='notice'>[user] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.</span>")
to_chat(ghost, "<span class='ghostalert'>Your heart is being defibrillated. Return to your body if you want to be revived!</span> (Verbs -> Ghost -> Re-enter corpse)")
to_chat(ghost, sound('sound/effects/genetics.ogg'))
else
user.visible_message("<span class='warning'>[user] buzzes: Resuscitation failed.</span>")
playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
@@ -559,5 +539,4 @@
update_icon()
else
to_chat(user, "<span class='notice'>You need to target your patient's chest with [src].</span>")
return
-1
View File
@@ -81,7 +81,6 @@
/obj/item/weapon/dice/d4/Crossed(var/mob/living/carbon/human/H)
if(istype(H) && !H.shoes)
to_chat(H, "<span class='userdanger'>You step on the D4!</span>")
H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg")))
H.Weaken(3)
*///ew.
@@ -33,7 +33,6 @@
else
to_chat(user, "\red You failed to inject [M.name].")
proc/injected(var/mob/living/carbon/target, var/mob/living/carbon/user)
scramble(1, target, 100)
target.generate_name()
@@ -26,7 +26,6 @@
/obj/item/weapon/c4/suicide_act(var/mob/user)
. = (BRUTELOSS)
to_chat(viewers(user), "<span class='suicide'>[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!</span>")
var/message_say = "FOR NO RAISIN!"
if(user.mind)
if(user.mind.special_role)
@@ -57,7 +56,6 @@
if(istype(I, /obj/item/weapon/screwdriver))
open_panel = !open_panel
to_chat(user, "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>")
else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler ))
wires.Interact(user)
else
@@ -75,7 +73,6 @@
to_chat(user, "Timer set for [timer] seconds.")
/obj/item/weapon/c4/afterattack(atom/target as obj|turf, mob/user as mob, flag)
if (!flag)
return
@@ -83,7 +80,6 @@
return
to_chat(user, "Planting explosives...")
if(do_after(user, 50, target = target) && in_range(user, target))
user.drop_item()
src.target = target
@@ -101,7 +97,6 @@
target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2")
to_chat(user, "Bomb has been planted. Timer counting down from [timer].")
spawn(timer*10)
explode(get_turf(target))
@@ -38,13 +38,11 @@
/obj/item/weapon/extinguisher/examine(mob/user)
if(..(user, 0))
to_chat(usr, "\icon[src] [src.name] contains:")
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
to_chat(user, "\blue [R.volume] units of [R.name]")
/obj/item/weapon/extinguisher/New()
create_reagents(max_water)
reagents.add_reagent("water", max_water)
@@ -54,7 +52,6 @@
src.icon_state = "[sprite_name][!safety]"
src.desc = "The safety is [safety ? "on" : "off"]."
to_chat(user, "The safety is [safety ? "on" : "off"].")
return
/obj/item/weapon/extinguisher/proc/AttemptRefill(atom/target, mob/user)
@@ -63,20 +60,17 @@
safety = 1
if(reagents.total_volume == reagents.maximum_volume)
to_chat(user, "<span class='notice'>\The [src] is already full!</span>")
safety = safety_save
return 1
var/obj/structure/reagent_dispensers/watertank/W = target
var/transferred = W.reagents.trans_to(src, max_water)
if(transferred > 0)
to_chat(user, "<span class='notice'>\The [src] has been refilled by [transferred] units</span>")
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
for(var/datum/reagent/water/R in reagents.reagent_list)
R.cooling_temperature = cooling_power
else
to_chat(user, "<span class='notice'>\The [W] is empty!</span>")
safety = safety_save
return 1
else
@@ -92,7 +86,6 @@
if (!safety)
if (src.reagents.total_volume < 1)
to_chat(usr, "<span class='danger'>\The [src] is empty.</span>")
return
if (world.time < src.last_use + 20)
@@ -10,7 +10,6 @@ obj/item/weapon/firework/attackby(obj/item/weapon/W,mob/user, params)
if (istype(W, /obj/item/weapon/weldingtool) && W:welding || istype(W,/obj/item/weapon/lighter) && W:lit)
for(var/mob/M in viewers(user))
to_chat(M, "[user] lits \the [src]")
litzor = 1
icon_state = "rocket_1"
S = new()
@@ -33,7 +32,6 @@ obj/item/weapon/sparkler/attackby(obj/item/weapon/W,mob/user, params)
if (istype(W, /obj/item/weapon/weldingtool) && W:welding || istype(W,/obj/item/weapon/lighter) && W:lit)
for(var/mob/M in viewers(user))
to_chat(M, "[user] lits \the [src]")
litzor = 1
icon_state = "sparkler_1"
var/b = rand(5,9)
@@ -94,7 +94,6 @@
if(isscrewdriver(W) && igniter && !lit)
status = !status
to_chat(user, "<span class='notice'>[igniter] is now [status ? "secured" : "unsecured"]!</span>")
update_icon()
return
@@ -111,7 +110,6 @@
if(istype(W,/obj/item/weapon/tank/plasma))
if(ptank)
to_chat(user, "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>")
return
user.drop_item()
ptank = W
@@ -130,7 +128,6 @@
user.set_machine(src)
if(!ptank)
to_chat(user, "<span class='notice'>Attach a plasma tank first!</span>")
return
var/dat = text("<TT><B>Flamethrower (<A HREF='?src=\ref[src];light=1'>[lit ? "<font color='red'>Lit</font>" : "Unlit"]</a>)</B><BR>\n Tank Pressure: [ptank.air_contents.return_pressure()]<BR>\nAmount to throw: <A HREF='?src=\ref[src];amount=-100'>-</A> <A HREF='?src=\ref[src];amount=-10'>-</A> <A HREF='?src=\ref[src];amount=-1'>-</A> [throw_amount] <A HREF='?src=\ref[src];amount=1'>+</A> <A HREF='?src=\ref[src];amount=10'>+</A> <A HREF='?src=\ref[src];amount=100'>+</A><BR>\n<A HREF='?src=\ref[src];remove=1'>Remove plasmatank</A> - <A HREF='?src=\ref[src];close=1'>Close</A></TT>")
user << browse(dat, "window=flamethrower;size=600x300")
@@ -56,12 +56,10 @@
if(!wielded)
to_chat(user, "<span class = 'warning'>You must use both hands to garrote [M]!</span>")
return
if(!istype(M, /mob/living/carbon/human))
to_chat(user, "<span class = 'warning'>You don't think that garroting [M] would be very effective...</span>")
return
if(M == U)
@@ -70,16 +68,13 @@
if(M.dir != U.dir)
to_chat(user, "<span class='warning'>You cannot use [src] on [M] from that angle!</span>")
return
if(improvised && ((M.head && (M.head.flags & HEADCOVERSMOUTH)) || (M.wear_mask && (M.wear_mask.flags & 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>")
if(strangling)
to_chat(user, "<span class = 'warning'>You cannot use [src] on two people at once!</span>")
return
unwield(U)
@@ -31,7 +31,6 @@
src.gift.add_fingerprint(user)
else
to_chat(user, "\blue The gift was empty!")
qdel(src)
return
@@ -44,18 +43,15 @@
return
to_chat(user, "\blue You cant move.")
/obj/effect/spresent/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if (!istype(W, /obj/item/weapon/wirecutters))
to_chat(user, "\blue I need wirecutters for that.")
return
to_chat(user, "\blue You cut open the present.")
for(var/mob/M in src) //Should only be one but whatever.
M.loc = src.loc
if (M.client)
@@ -146,4 +142,3 @@
/obj/item/stack/wrapping_paper/attack_self(mob/user)
to_chat(user, "<span class='notice'>You need to use it on a package that has already been wrapped!</span>")
@@ -41,12 +41,10 @@ var/turf/T
if(istype(I, /obj/item/weapon/bananapeel))
if(fillamt < 9)
to_chat(usr, "<span class='notice'>You add another banana peel to the assembly.</span>")
fillamt += 1
qdel(I)
else
to_chat(usr, "<span class='notice'>The bananade is full, screwdriver it shut to lock it down.</span>")
if(istype(I, /obj/item/weapon/screwdriver))
if(fillamt)
var/obj/item/weapon/grenade/bananade/G = new /obj/item/weapon/grenade/bananade
@@ -54,11 +52,8 @@ var/turf/T
user.put_in_hands(G)
G.deliveryamt = src.fillamt
to_chat(user, "<span class='notice'>You lock the assembly shut, readying it for HONK.</span>")
qdel(src)
else
to_chat(usr, "<span class='notice'>You need to add banana peels before you can ready the grenade!.</span>")
else
to_chat(usr, "<span class='notice'>Only banana peels fit in this assembly, up to 9.</span>")
@@ -94,7 +94,6 @@
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])"
to_chat(user, "<span class='warning'>You prime the [name]! [det_time / 10] second\s!</span>")
active = 1
update_icon()
if(iscarbon(user))
@@ -115,13 +114,11 @@
label = null
update_icon()
to_chat(user, "You remove the label from [src].")
return 1
if(istype(I, /obj/item/weapon/screwdriver))
if(stage == WIRED)
if(beakers.len)
to_chat(user, "<span class='notice'>You lock the assembly.</span>")
playsound(loc, 'sound/items/Screwdriver.ogg', 25, -3)
stage = READY
update_icon()
@@ -144,31 +141,25 @@
log_game("[key_name(usr)] has completed [name] at [bombturf.x], [bombturf.y], [bombturf.z].")
else
to_chat(user, "<span class='notice'>You need to add at least one beaker before locking the assembly.</span>")
else if(stage == READY && !nadeassembly)
det_time = det_time == 50 ? 30 : 50 //toggle between 30 and 50
to_chat(user, "<span class='notice'>You modify the time delay. It's set for [det_time / 10] second\s.</span>")
else if(stage == EMPTY)
to_chat(user, "<span class='notice'>You need to add an activation mechanism.</span>")
else if(stage == WIRED && is_type_in_list(I, allowed_containers))
if(beakers.len == 2)
to_chat(user, "<span class='notice'>[src] can not hold more containers.</span>")
return
else
if(I.reagents.total_volume)
to_chat(user, "<span class='notice'>You add [I] to the assembly.</span>")
user.drop_item()
I.loc = src
beakers += I
else
to_chat(user, "<span class='notice'>[I] is empty.</span>")
else if(stage == EMPTY && istype(I, /obj/item/device/assembly_holder))
var/obj/item/device/assembly_holder/A = I
if(!A.secured)
@@ -183,7 +174,6 @@
assemblyattacher = user.ckey
stage = WIRED
to_chat(user, "<span class='notice'>You add [A] to [src]!</span>")
update_icon()
else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil))
@@ -192,18 +182,15 @@
stage = WIRED
to_chat(user, "<span class='notice'>You rig [src].</span>")
update_icon()
else if(stage == READY && istype(I, /obj/item/weapon/wirecutters))
to_chat(user, "<span class='notice'>You unlock the assembly.</span>")
stage = WIRED
update_icon()
else if(stage == WIRED && istype(I, /obj/item/weapon/wrench))
to_chat(user, "<span class='notice'>You open the grenade and remove the contents.</span>")
stage = EMPTY
payload_name = null
label = null
@@ -396,7 +383,6 @@
/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/slime_extract) && stage == WIRED)
to_chat(user, "<span class='notice'>You add [I] to the assembly.</span>")
user.drop_item()
I.loc = src
beakers += I
@@ -70,7 +70,6 @@
return
else
to_chat(M, "\red Your feet feel like they're on fire!")
M.take_overall_damage(0, max(0, (burned - 2)))
if(!istype(M, /mob/living/carbon/slime) && !isrobot(M))
@@ -30,7 +30,6 @@
if(M.weakeyes)
M.visible_message("<span class='disarm'><b>[M]</b> screams and collapses!</span>")
to_chat(M, "<span class='userdanger'><font size=3>AAAAGH!</font></span>")
M.Weaken(15) //hella stunned
M.Stun(15)
if(ishuman(M))
@@ -56,12 +55,9 @@
M.ear_deaf = max(M.ear_deaf,15)
if (M.ear_damage >= 15)
to_chat(M, "<span class='warning'>Your ears start to ring badly!</span>")
if(prob(M.ear_damage - 10 + 5))
to_chat(M, "<span class='warning'>You can't hear anything!</span>")
M.disabilities |= DEAF
else
if (M.ear_damage >= 5)
to_chat(M, "<span class='warning'>Your ears start to ring!</span>")
@@ -39,13 +39,11 @@
if( istype(target, /obj/structure/reagent_dispensers/fueltank))
if(target.reagents.total_volume < 50)
to_chat(user, "<span class='notice'>There's not enough fuel left to work with.</span>")
return
var/obj/structure/reagent_dispensers/fueltank/F = target
F.reagents.remove_reagent("fuel", 50, 1)//Deleting 50 fuel from the welding fuel tank,
assembled = 1
to_chat(user, "<span class='notice'>You've filled the makeshift explosive with welding fuel.</span>")
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
desc = "An improvised explosive assembly. Filled to the brim with 'Explosive flavor'"
overlays += image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled")
@@ -59,7 +57,6 @@
C.use(1)
assembled = 2
to_chat(user, "<span class='notice'>You wire the igniter to detonate the fuel.</span>")
desc = "A weak, improvised explosive."
overlays += image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_wired")
name = "improvised explosive"
@@ -106,7 +103,6 @@
if(!active)
if(clown_check(user))
to_chat(user, "<span class='warning'>You light the [name]!</span>")
active = 1
overlays -= image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled")
icon_state = initial(icon_state) + "_active"
@@ -130,4 +126,3 @@
/obj/item/weapon/grenade/iedcasing/examine(mob/user)
..(user)
to_chat(user, "You can't tell when it will explode!")
@@ -16,7 +16,6 @@
/obj/item/weapon/grenade/proc/clown_check(var/mob/living/user)
if((CLUMSY in user.mutations) && prob(50))
to_chat(user, "<span class='warning'>Huh? How does this thing work?</span>")
active = 1
icon_state = initial(icon_state) + "_active"
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
@@ -33,7 +32,6 @@
if (istype(target, /obj/item/weapon/gun/grenadelauncher)) return ..()
if((user.get_active_hand() == src) && (!active) && (clown_check(user)) && target.loc != src.loc)
to_chat(user, "<span class='warning'>You prime the [name]! [det_time/10] seconds!</span>")
active = 1
icon_state = initial(icon_state) + "_active"
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
@@ -52,16 +50,13 @@
if(display_timer)
if(det_time > 1)
to_chat(user, "The timer is set to [det_time/10] second\s.")
else
to_chat(user, "\The [src] is set for instant detonation.")
/obj/item/weapon/grenade/attack_self(mob/user as mob)
if(!active)
if(clown_check(user))
to_chat(user, "<span class='warning'>You prime the [name]! [det_time/10] seconds!</span>")
active = 1
icon_state = initial(icon_state) + "_active"
add_fingerprint(user)
@@ -91,19 +86,15 @@
if ("1")
det_time = 10
to_chat(user, "<span class='notice'>You set the [name] for 1 second detonation time.</span>")
if ("10")
det_time = 30
to_chat(user, "<span class='notice'>You set the [name] for 3 second detonation time.</span>")
if ("30")
det_time = 50
to_chat(user, "<span class='notice'>You set the [name] for 5 second detonation time.</span>")
if ("50")
det_time = 1
to_chat(user, "<span class='notice'>You set the [name] for instant detonation.</span>")
add_fingerprint(user)
..()
@@ -22,7 +22,6 @@
if(CLUMSY in user.mutations && prob(50))
to_chat(user, "<span class='warning'>Uh... how do those things work?!</span>")
apply_cuffs(user,user)
if(!C.handcuffed)
@@ -33,7 +32,6 @@
if(do_mob(user, C, 30))
apply_cuffs(C,user)
to_chat(user, "<span class='notice'>You handcuff [C].</span>")
if(istype(src, /obj/item/weapon/restraints/handcuffs/cable))
feedback_add_details("handcuffs","C")
else
@@ -43,7 +41,6 @@
else
to_chat(user, "<span class='warning'>You fail to handcuff [C].</span>")
/obj/item/weapon/restraints/handcuffs/proc/apply_cuffs(mob/living/carbon/target, mob/user)
if(!target.handcuffed)
user.drop_item()
@@ -103,11 +100,9 @@
user.unEquip(src)
user.put_in_hands(W)
to_chat(user, "<span class='notice'>You wrap the cable restraint around the top of the rod.</span>")
qdel(src)
else
to_chat(user, "<span class='warning'>You need one rod to make a wired rod.</span>")
return
/obj/item/weapon/restraints/handcuffs/cable/zipties
@@ -128,12 +123,10 @@
C.handcuffed = new /obj/item/weapon/restraints/handcuffs/cable/zipties/used(C)
C.update_inv_handcuffed(1)
to_chat(user, "<span class='notice'>You handcuff [C].</span>")
add_logs(C, user, "ziptie-cuffed")
else
to_chat(user, "<span class='warning'>You fail to handcuff [C].</span>")
/obj/item/weapon/restraints/handcuffs/cable/zipties/used
desc = "A pair of broken zipties."
icon_state = "cuff_white_used"
@@ -182,18 +175,15 @@
icon_state = "beartrap[armed]"
to_chat(user, "<span class='notice'>[src] is now [armed ? "armed" : "disarmed"]</span>")
/obj/item/weapon/restraints/legcuffs/beartrap/attackby(var/obj/item/I, mob/user as mob) //Let's get explosive.
if(istype(I, /obj/item/weapon/grenade/iedcasing))
if(IED)
to_chat(user, "<span class='warning'>This beartrap already has an IED hooked up to it!</span>")
return
IED = I
switch(IED.assembled)
if(0,1) //if it's not fueled/hooked up
to_chat(user, "<span class='warning'>You haven't prepared this IED yet!</span>")
IED = null
return
if(2,3)
@@ -202,11 +192,9 @@
message_admins("[key_name_admin(user)] has rigged a beartrap with an IED.")
log_game("[key_name(user)] has rigged a beartrap with an IED.")
to_chat(user, "<span class='notice'>You sneak the [IED] underneath the pressure plate and connect the trigger wire.</span>")
desc = "A trap used to catch bears and other legged creatures. <span class='warning'>There is an IED hooked up to it.</span>"
else
to_chat(user, "<span class='danger'>You shouldn't be reading this message! Contact a coder or someone, something broke!</span>")
IED = null
return
if(istype(I, /obj/item/weapon/screwdriver))
@@ -214,7 +202,6 @@
IED.forceMove(get_turf(src))
IED = null
to_chat(user, "<span class='notice'>You remove the IED from the [src].</span>")
return
..()
@@ -19,7 +19,6 @@
var/obj/effect/overlay/holograph/H = locate() in T
if(H)
to_chat(user, "<span class='notice'>You use [src] to destroy [H].</span>")
signs -= H
qdel(H)
else
@@ -27,11 +26,9 @@
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>")
/obj/item/weapon/holosign_creator/attack(mob/living/carbon/human/M, mob/user)
return
@@ -43,7 +40,6 @@
signs -= sign
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."
@@ -47,10 +47,8 @@
injectamount = cause
reagents.trans_to(R, injectamount)
to_chat(R, "<span class='italics'>You hear a faint beep.</span>")
if(!reagents.total_volume)
to_chat(R, "<span class='italics'>You hear a faint click from your chest.</span>")
qdel(src)
@@ -32,7 +32,6 @@
medium = round(medium)
weak = round(weak)
to_chat(imp_in, "<span class='notice'>You activate your microbomb implant.</span>")
//If the delay is short, just blow up already jeez
if(delay <= 7)
explosion(src,heavy,medium,weak,weak, flame_range = weak)
@@ -87,7 +86,6 @@
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your macrobomb implant? This will cause you to explode and gib!", "Macrobomb Implant Confirmation", "Yes", "No") != "Yes")
return 0
to_chat(imp_in, "<span class='notice'>You activate your macrobomb implant.</span>")
timed_explosion()
/obj/item/weapon/implant/explosive/macro/implant(mob/source)
@@ -11,7 +11,6 @@
if(uses == 0) return 0
if(uses != -1) uses--
to_chat(imp_in, "You feel a faint click.")
if(iscarbon(imp_in))
var/mob/living/carbon/C_imp_in = imp_in
C_imp_in.uncuff()
@@ -28,10 +28,8 @@
ticker.mode.remove_revolutionary(target.mind)
if(target.mind in ticker.mode.cult)
to_chat(target, "<span class='warning'>You feel the corporate tendrils of Nanotrasen try to invade your mind!</span>")
else
to_chat(target, "<span class='notice'>You feel a surge of loyalty towards Nanotrasen.</span>")
return 1
return 0
@@ -39,7 +37,6 @@
if(..())
if(target.stat != DEAD && !silent)
to_chat(target, "<span class='boldnotice'>You feel a sense of liberation as Nanotrasen's grip on your mind fades away.</span>")
return 1
return 0
@@ -36,7 +36,6 @@
if(uses < 1) return 0
uses--
to_chat(imp_in, "<span class='notice'>You feel a sudden surge of energy!</span>")
imp_in.SetStunned(0)
imp_in.SetWeakened(0)
imp_in.SetParalysis(0)
@@ -32,7 +32,6 @@
return 0
if(M == user)
to_chat(user, "<span class='notice'>Making yourself loyal to yourself was a great idea! Perhaps even the best idea ever! Actually, you just feel like an idiot.</span>")
if(isliving(user))
var/mob/living/L = user
L.adjustBrainLoss(20)
@@ -46,7 +45,6 @@
return -1
H.implanting = 1
to_chat(H, "<span class='notice'>You feel completely loyal to [user.name].</span>")
if(!(user.mind in ticker.mode:implanter))
ticker.mode:implanter[ref] = list()
implanters = ticker.mode:implanter[ref]
@@ -58,7 +56,6 @@
ticker.mode.traitors += H.mind
H.mind.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>")
var/datum/objective/protect/p = new
p.owner = H.mind
p.target = user:mind
@@ -67,7 +64,6 @@
for(var/datum/objective/objective in H.mind.objectives)
to_chat(H, "<B>Objective #1</B>: [objective.explanation_text]")
ticker.mode.update_traitor_icons_added(user.mind)
ticker.mode.update_traitor_icons_added(H.mind)//handles datahuds/observerhuds
@@ -82,7 +82,6 @@
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.")
return
if(put_mob(M))
qdel(G)
@@ -110,11 +109,9 @@
/obj/machinery/implantchair/put_mob(mob/living/carbon/M)
if(!iscarbon(M))
to_chat(usr, "<span class='warning'>The [src.name] cannot hold this!</span>")
return
if(src.occupant)
to_chat(usr, "<span class='warning'>The [src.name] is already occupied!</span>")
return
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
@@ -34,7 +34,6 @@
if(imp.implant(M, user))
if (M == user)
to_chat(user, "<span class='notice'>You implant yourself.</span>")
else
M.visible_message("[user] has implanted [M].", "<span class='notice'>[user] implants you.</span>")
imp = null
@@ -28,7 +28,6 @@
return
if(case)
to_chat(user, "<span class='warning'>There's already an implant in the pad!</span>")
return
user.unEquip(C)
C.forceMove(src)
@@ -38,7 +37,6 @@
/obj/item/weapon/implantpad/proc/dropcase(mob/user as mob)
if(!case)
to_chat(user, "<span class='warning'>There's no implant in the pad!</span>")
return
if(user)
if(user.put_in_hands(case))

Some files were not shown because too many files have changed in this diff Show More