mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 12:08:55 +01:00
conflicts + undo loc changes
attackself/dragging the board now deletes it and spawns a new board of the proper type again instead of setting locs
This commit is contained in:
@@ -18,13 +18,13 @@
|
||||
/obj/item/organ/body_egg/Insert(var/mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
owner.status_flags |= XENO_HOST
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
owner.med_hud_set_status()
|
||||
spawn(0)
|
||||
AddInfectionImages(owner)
|
||||
|
||||
/obj/item/organ/body_egg/Remove(var/mob/living/carbon/M, special = 0)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
if(owner)
|
||||
owner.status_flags &= ~(XENO_HOST)
|
||||
owner.med_hud_set_status()
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
/obj/structure/closet/body_bag/update_icon()
|
||||
..()
|
||||
if (tagged)
|
||||
overlays += "bodybag_label"
|
||||
add_overlay("bodybag_label")
|
||||
|
||||
/obj/structure/closet/body_bag/close()
|
||||
if(..())
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
usr.visible_message(
|
||||
"<span class='danger'>[usr] lights the [name].</span>")
|
||||
SetLuminosity(CANDLE_LUMINOSITY)
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
user << "The crew has already settled into the shift. It probably wouldn't be good to rename the station right now."
|
||||
return
|
||||
|
||||
var/new_name = input(user, "What do you want to name [station_name()]? Keep in mind particularly terrible names may attract the attention of your employers.") as text|null
|
||||
var/new_name = stripped_input(user, message="What do you want to name [station_name()]? Keep in mind particularly terrible names may attract the attention of your employers.", max_length=MAX_CHARTER_LEN)
|
||||
if(new_name)
|
||||
world.name = new_name
|
||||
station_name = new_name
|
||||
|
||||
@@ -501,9 +501,9 @@
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/storage/crayons/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
for(var/obj/item/toy/crayon/crayon in contents)
|
||||
overlays += image('icons/obj/crayons.dmi',crayon.item_color)
|
||||
add_overlay(image('icons/obj/crayons.dmi',crayon.item_color))
|
||||
|
||||
/obj/item/weapon/storage/crayons/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/toy/crayon))
|
||||
@@ -653,11 +653,11 @@
|
||||
/obj/item/toy/crayon/spraycan/update_icon()
|
||||
icon_state = is_capped ? icon_capped : icon_uncapped
|
||||
if(use_overlays)
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
var/image/I = image('icons/obj/crayons.dmi',
|
||||
icon_state = "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]")
|
||||
I.color = paint_color
|
||||
overlays += I
|
||||
add_overlay(I)
|
||||
|
||||
/obj/item/toy/crayon/spraycan/gang
|
||||
//desc = "A modified container containing suspicious paint."
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
var/mob/living/M = new mobtype(get_turf(src))
|
||||
//Make carp non-hostile to user, and their allies
|
||||
if(owner)
|
||||
var/list/factions = owner.faction
|
||||
var/list/factions = owner.faction.Copy()
|
||||
for(var/F in factions)
|
||||
if(F == "neutral")
|
||||
factions -= F
|
||||
|
||||
@@ -520,7 +520,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
//EXTRA FUNCTIONS===================================
|
||||
|
||||
if (mode == 2||mode == 21)//To clear message overlays.
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
|
||||
if ((honkamt > 0) && (prob(60)))//For clown virus.
|
||||
honkamt--
|
||||
@@ -613,8 +613,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if(L && L.stat != UNCONSCIOUS)
|
||||
L << "\icon[src] <b>Message from [source.owner] ([source.ownjob]), </b>\"[msg.message]\"[msg.get_photo_ref()] (<a href='byond://?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[source]'>Reply</a>)"
|
||||
|
||||
overlays.Cut()
|
||||
overlays += image(icon, icon_alert)
|
||||
cut_overlays()
|
||||
add_overlay(image(icon, icon_alert))
|
||||
|
||||
/obj/item/device/pda/proc/show_to_ghosts(mob/living/user, datum/data_pda_msg/msg,multiple = 0)
|
||||
for(var/mob/M in player_list)
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
if (istype(loc.loc, /obj/item/device/pda))
|
||||
hostpda = loc.loc
|
||||
|
||||
/obj/item/radio/integrated/Destroy()
|
||||
hostpda = null
|
||||
return ..()
|
||||
|
||||
/*
|
||||
* Radio Cartridge, essentially a signaler.
|
||||
*/
|
||||
@@ -32,6 +36,7 @@
|
||||
/obj/item/radio/integrated/signal/Destroy()
|
||||
if(SSradio)
|
||||
SSradio.remove_object(src, frequency)
|
||||
radio_connection = null
|
||||
return ..()
|
||||
|
||||
/obj/item/radio/integrated/signal/initialize()
|
||||
|
||||
@@ -30,12 +30,12 @@
|
||||
else
|
||||
icon_state = "aicard-full"
|
||||
if(!AI.control_disabled)
|
||||
overlays += image('icons/obj/aicards.dmi', "aicard-on")
|
||||
add_overlay(image('icons/obj/aicards.dmi', "aicard-on"))
|
||||
AI.cancel_camera()
|
||||
else
|
||||
name = initial(name)
|
||||
icon_state = initial(icon_state)
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
|
||||
/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = hands_state)
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/obj/item/device/camera_bug/New()
|
||||
..()
|
||||
SSobj.processing += src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/camera_bug/Destroy()
|
||||
get_cameras()
|
||||
|
||||
@@ -207,7 +207,7 @@ obj/item/device/flashlight/lamp/bananalamp
|
||||
turn_off()
|
||||
if(!fuel)
|
||||
icon_state = "[initial(icon_state)]-empty"
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/flashlight/flare/proc/turn_off()
|
||||
on = 0
|
||||
@@ -241,7 +241,7 @@ obj/item/device/flashlight/lamp/bananalamp
|
||||
user.visible_message("<span class='notice'>[user] lights \the [src].</span>", "<span class='notice'>You light \the [src]!</span>")
|
||||
force = on_damage
|
||||
damtype = "fire"
|
||||
SSobj.processing += src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/flashlight/flare/is_hot()
|
||||
return on * heat
|
||||
@@ -285,10 +285,10 @@ obj/item/device/flashlight/lamp/bananalamp
|
||||
|
||||
/obj/item/device/flashlight/emp/New()
|
||||
..()
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/flashlight/emp/Destroy()
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/device/flashlight/emp/process()
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
|
||||
/obj/item/device/geiger_counter/New()
|
||||
..()
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/geiger_counter/Destroy()
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
..()
|
||||
|
||||
/obj/item/device/geiger_counter/process()
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
if(energy <= max_energy)
|
||||
if(!recharging)
|
||||
recharging = 1
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(energy <= 0)
|
||||
user << "<span class='warning'>[src]'s battery is overused, it needs time to recharge!</span>"
|
||||
recharge_locked = 1
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
|
||||
/obj/item/device/multitool/ai_detect/New()
|
||||
..()
|
||||
SSobj.processing += src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/multitool/ai_detect/Destroy()
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/device/multitool/ai_detect/process()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/item/device/paicard/New()
|
||||
..()
|
||||
overlays += "pai-off"
|
||||
add_overlay("pai-off")
|
||||
|
||||
/obj/item/device/paicard/Destroy()
|
||||
//Will stop people throwing friend pAIs into the singularity so they can respawn
|
||||
@@ -105,30 +105,30 @@
|
||||
|
||||
/obj/item/device/paicard/proc/setPersonality(mob/living/silicon/pai/personality)
|
||||
src.pai = personality
|
||||
src.overlays += "pai-null"
|
||||
src.add_overlay("pai-null")
|
||||
|
||||
playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1)
|
||||
audible_message("\The [src] plays a cheerful startup noise!")
|
||||
|
||||
/obj/item/device/paicard/proc/removePersonality()
|
||||
src.pai = null
|
||||
src.overlays.Cut()
|
||||
src.overlays += "pai-off"
|
||||
src.cut_overlays()
|
||||
src.add_overlay("pai-off")
|
||||
|
||||
/obj/item/device/paicard/proc/setEmotion(emotion)
|
||||
if(pai)
|
||||
src.overlays.Cut()
|
||||
src.cut_overlays()
|
||||
switch(emotion)
|
||||
if(1) src.overlays += "pai-happy"
|
||||
if(2) src.overlays += "pai-cat"
|
||||
if(3) src.overlays += "pai-extremely-happy"
|
||||
if(4) src.overlays += "pai-face"
|
||||
if(5) src.overlays += "pai-laugh"
|
||||
if(6) src.overlays += "pai-off"
|
||||
if(7) src.overlays += "pai-sad"
|
||||
if(8) src.overlays += "pai-angry"
|
||||
if(9) src.overlays += "pai-what"
|
||||
if(10) src.overlays += "pai-null"
|
||||
if(1) src.add_overlay("pai-happy")
|
||||
if(2) src.add_overlay("pai-cat")
|
||||
if(3) src.add_overlay("pai-extremely-happy")
|
||||
if(4) src.add_overlay("pai-face")
|
||||
if(5) src.add_overlay("pai-laugh")
|
||||
if(6) src.add_overlay("pai-off")
|
||||
if(7) src.add_overlay("pai-sad")
|
||||
if(8) src.add_overlay("pai-angry")
|
||||
if(9) src.add_overlay("pai-what")
|
||||
if(10) src.add_overlay("pai-null")
|
||||
|
||||
/obj/item/device/paicard/proc/alertUpdate()
|
||||
visible_message("<span class ='info'>[src] flashes a message across its screen, \"Additional personalities available for download.\"", "<span class='notice'>[src] bleeps electronically.</span>")
|
||||
|
||||
@@ -34,20 +34,20 @@
|
||||
if(DISCONNECTED)
|
||||
attached = null
|
||||
if(mode == OPERATING)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
anchored = 0
|
||||
|
||||
if(CLAMPED_OFF)
|
||||
if(!attached)
|
||||
return
|
||||
if(mode == OPERATING)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
anchored = 1
|
||||
|
||||
if(OPERATING)
|
||||
if(!attached)
|
||||
return
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
anchored = 1
|
||||
|
||||
mode = value
|
||||
@@ -140,6 +140,6 @@
|
||||
playsound(src, 'sound/effects/screech.ogg', 100, 1, 1)
|
||||
|
||||
if(power_drained >= max_power)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
explosion(src.loc, 4,8,16,32)
|
||||
qdel(src)
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
|
||||
/obj/item/device/radio/intercom/New()
|
||||
..()
|
||||
SSobj.processing += src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/radio/intercom/Destroy()
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/device/radio/intercom/attack_ai(mob/user)
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
// "Example" = FREQ_LISTENING|FREQ_BROADCASTING
|
||||
flags = CONDUCT | HEAR
|
||||
slot_flags = SLOT_BELT
|
||||
languages = HUMAN | ROBOT
|
||||
languages_spoken = HUMAN | ROBOT
|
||||
languages_understood = HUMAN | ROBOT
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
w_class = 2
|
||||
@@ -315,7 +316,7 @@
|
||||
"server" = null,
|
||||
"reject" = 0,
|
||||
"level" = 0,
|
||||
"languages" = languages,
|
||||
"languages" = languages_spoken,
|
||||
"spans" = spans,
|
||||
"verb_say" = M.verb_say,
|
||||
"verb_ask" = M.verb_ask,
|
||||
@@ -360,7 +361,7 @@
|
||||
"server" = null, // the last server to log this signal
|
||||
"reject" = 0, // if nonzero, the signal will not be accepted by any broadcasting machinery
|
||||
"level" = position.z, // The source's z level
|
||||
"languages" = M.languages, //The languages M is talking in.
|
||||
"languages" = M.languages_spoken, //The languages M is talking in.
|
||||
"spans" = spans, //the span classes of this message.
|
||||
"verb_say" = M.verb_say, //the verb used when talking normally
|
||||
"verb_ask" = M.verb_ask, //the verb used when asking
|
||||
@@ -410,7 +411,7 @@
|
||||
"server" = null,
|
||||
"reject" = 0,
|
||||
"level" = position.z,
|
||||
"languages" = languages,
|
||||
"languages" = languages_spoken,
|
||||
"spans" = spans,
|
||||
"verb_say" = M.verb_say,
|
||||
"verb_ask" = M.verb_ask,
|
||||
|
||||
@@ -25,7 +25,7 @@ MASS SPECTROMETER
|
||||
icon_state = copytext(icon_state, 1, length(icon_state))+"[on]"
|
||||
|
||||
if(on)
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/t_scanner/proc/flick_sonar(obj/pipe)
|
||||
var/image/I = image('icons/effects/effects.dmi', pipe, "blip", pipe.layer+1)
|
||||
@@ -38,7 +38,7 @@ MASS SPECTROMETER
|
||||
|
||||
/obj/item/device/t_scanner/process()
|
||||
if(!on)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return null
|
||||
scan()
|
||||
|
||||
@@ -80,15 +80,15 @@ MASS SPECTROMETER
|
||||
materials = list(MAT_METAL=200)
|
||||
origin_tech = "magnets=1;biotech=1"
|
||||
var/mode = 1
|
||||
var/scanchems = 0
|
||||
var/scanmode = 0
|
||||
|
||||
/obj/item/device/healthanalyzer/attack_self(mob/user)
|
||||
if(!scanchems)
|
||||
if(!scanmode)
|
||||
user << "<span class='notice'>You switch the health analyzer to scan chemical contents.</span>"
|
||||
scanchems = 1
|
||||
scanmode = 1
|
||||
else
|
||||
user << "<span class='notice'>You switch the health analyzer to check physical health.</span>"
|
||||
scanchems = 0
|
||||
scanmode = 0
|
||||
|
||||
/obj/item/device/healthanalyzer/attack(mob/living/M, mob/living/carbon/human/user)
|
||||
|
||||
@@ -104,9 +104,9 @@ MASS SPECTROMETER
|
||||
|
||||
user.visible_message("<span class='notice'>[user] has analyzed [M]'s vitals.</span>")
|
||||
|
||||
if(!scanchems)
|
||||
if(scanmode == 0)
|
||||
healthscan(user, M, mode)
|
||||
else
|
||||
else if(scanmode == 1)
|
||||
chemscan(user, M)
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
w_class = 2
|
||||
flags = HEAR
|
||||
slot_flags = SLOT_BELT
|
||||
languages = ALL //this is a translator, after all.
|
||||
languages_spoken = ALL //this is a translator, after all.
|
||||
languages_understood = ALL //this is a translator, after all.
|
||||
materials = list(MAT_METAL=60, MAT_GLASS=30)
|
||||
force = 2
|
||||
throwforce = 0
|
||||
@@ -257,7 +258,7 @@
|
||||
|
||||
|
||||
/obj/item/device/tape/proc/ruin()
|
||||
overlays += "ribbonoverlay"
|
||||
add_overlay("ribbonoverlay")
|
||||
ruined = 1
|
||||
|
||||
|
||||
|
||||
@@ -68,32 +68,26 @@ effective or pretty fucking useless.
|
||||
Wavelength is also slightly increased by the intensity as well.
|
||||
*/
|
||||
|
||||
/obj/item/device/rad_laser
|
||||
name = "health analyzer"
|
||||
icon_state = "health"
|
||||
item_state = "analyzer"
|
||||
desc = "A hand-held body scanner able to distinguish vital signs of the subject."
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
w_class = 1
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
/obj/item/device/healthanalyzer/rad_laser
|
||||
materials = list(MAT_METAL=400)
|
||||
origin_tech = "magnets=3;biotech=5;syndicate=3"
|
||||
var/intensity = 5 // how much damage the radiation does
|
||||
var/irradiate = 1
|
||||
var/intensity = 10 // how much damage the radiation does
|
||||
var/wavelength = 10 // time it takes for the radiation to kick in, in seconds
|
||||
var/used = 0 // is it cooling down?
|
||||
|
||||
/obj/item/device/rad_laser/attack(mob/living/M, mob/living/user)
|
||||
/obj/item/device/healthanalyzer/rad_laser/attack(mob/living/M, mob/living/user)
|
||||
..()
|
||||
if(!irradiate)
|
||||
return
|
||||
if(!used)
|
||||
add_logs(user, M, "irradiated", src)
|
||||
user.visible_message("<span class='notice'>[user] has analyzed [M]'s vitals.</span>")
|
||||
var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10))
|
||||
var/cooldown = round(max(10, (intensity*5 - wavelength/4))) * 10
|
||||
used = 1
|
||||
icon_state = "health1"
|
||||
handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength
|
||||
spawn((wavelength+(intensity*4))*10)
|
||||
user << "<span class='warning'>Successfully irradiated [M].</span>"
|
||||
spawn((wavelength+(intensity*4))*5)
|
||||
if(M)
|
||||
if(intensity >= 5)
|
||||
M.apply_effect(round(intensity/1.5), PARALYZE)
|
||||
@@ -101,22 +95,38 @@ effective or pretty fucking useless.
|
||||
else
|
||||
user << "<span class='warning'>The radioactive microlaser is still recharging.</span>"
|
||||
|
||||
/obj/item/device/rad_laser/proc/handle_cooldown(cooldown)
|
||||
/obj/item/device/healthanalyzer/rad_laser/proc/handle_cooldown(cooldown)
|
||||
spawn(cooldown)
|
||||
used = 0
|
||||
icon_state = "health"
|
||||
|
||||
/obj/item/device/rad_laser/attack_self(mob/user)
|
||||
..()
|
||||
/obj/item/device/healthanalyzer/rad_laser/attack_self(mob/user)
|
||||
interact(user)
|
||||
|
||||
/obj/item/device/rad_laser/interact(mob/user)
|
||||
/obj/item/device/healthanalyzer/rad_laser/interact(mob/user)
|
||||
user.set_machine(src)
|
||||
|
||||
var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2)))
|
||||
var/dat = {"
|
||||
Radiation Intensity: <A href='?src=\ref[src];radint=-5'>-</A><A href='?src=\ref[src];radint=-1'>-</A> [intensity] <A href='?src=\ref[src];radint=1'>+</A><A href='?src=\ref[src];radint=5'>+</A><BR>
|
||||
Radiation Wavelength: <A href='?src=\ref[src];radwav=-5'>-</A><A href='?src=\ref[src];radwav=-1'>-</A> [(wavelength+(intensity*4))] <A href='?src=\ref[src];radwav=1'>+</A><A href='?src=\ref[src];radwav=5'>+</A><BR>
|
||||
var/cooldown = round(max(10, (intensity*5 - wavelength/4)))
|
||||
var/dat = "Irradiation: <A href='?src=\ref[src];rad=1'>[irradiate ? "On" : "Off"]</A><br>"
|
||||
dat += "Scan Mode: <a href='?src=\ref[src];mode=1'>"
|
||||
if(!scanmode)
|
||||
dat += "Scan Health"
|
||||
else if(scanmode == 1)
|
||||
dat += "Scan Reagents"
|
||||
else
|
||||
dat += "Disabled"
|
||||
dat += "</a><br><br>"
|
||||
|
||||
dat += {"
|
||||
Radiation Intensity:
|
||||
<A href='?src=\ref[src];radint=-5'>-</A><A href='?src=\ref[src];radint=-1'>-</A>
|
||||
[intensity]
|
||||
<A href='?src=\ref[src];radint=1'>+</A><A href='?src=\ref[src];radint=5'>+</A><BR>
|
||||
|
||||
Radiation Wavelength:
|
||||
<A href='?src=\ref[src];radwav=-5'>-</A><A href='?src=\ref[src];radwav=-1'>-</A>
|
||||
[(wavelength+(intensity*4))]
|
||||
<A href='?src=\ref[src];radwav=1'>+</A><A href='?src=\ref[src];radwav=5'>+</A><BR>
|
||||
Laser Cooldown: [cooldown] Seconds<BR>
|
||||
"}
|
||||
|
||||
@@ -124,21 +134,28 @@ effective or pretty fucking useless.
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
/obj/item/device/rad_laser/Topic(href, href_list)
|
||||
/obj/item/device/healthanalyzer/rad_laser/Topic(href, href_list)
|
||||
if(!usr.canUseTopic(src))
|
||||
return 1
|
||||
|
||||
usr.set_machine(src)
|
||||
if(href_list["rad"])
|
||||
irradiate = !irradiate
|
||||
|
||||
if(href_list["radint"])
|
||||
else if(href_list["mode"])
|
||||
scanmode += 1
|
||||
if(scanmode > 2)
|
||||
scanmode = 0
|
||||
|
||||
else if(href_list["radint"])
|
||||
var/amount = text2num(href_list["radint"])
|
||||
amount += intensity
|
||||
intensity = max(1,(min(10,amount)))
|
||||
intensity = max(1,(min(20,amount)))
|
||||
|
||||
else if(href_list["radwav"])
|
||||
var/amount = text2num(href_list["radwav"])
|
||||
amount += wavelength
|
||||
wavelength = max(1,(min(120,amount)))
|
||||
wavelength = max(0,(min(120,amount)))
|
||||
|
||||
attack_self(usr)
|
||||
add_fingerprint(usr)
|
||||
@@ -177,13 +194,13 @@ effective or pretty fucking useless.
|
||||
return
|
||||
user << "<span class='notice'>You activate [src].</span>"
|
||||
src.user = user
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
old_alpha = user.alpha
|
||||
on = 1
|
||||
|
||||
/obj/item/device/shadowcloak/proc/Deactivate()
|
||||
user << "<span class='notice'>You deactivate [src].</span>"
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
if(user)
|
||||
user.alpha = old_alpha
|
||||
on = 0
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
toggle = 1
|
||||
|
||||
/obj/item/device/transfer_valve/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
underlays = null
|
||||
|
||||
if(!tank_one && !tank_two && !attached_device)
|
||||
@@ -128,13 +128,13 @@
|
||||
icon_state = "valve"
|
||||
|
||||
if(tank_one)
|
||||
overlays += "[tank_one.icon_state]"
|
||||
add_overlay("[tank_one.icon_state]")
|
||||
if(tank_two)
|
||||
var/icon/J = new(icon, icon_state = "[tank_two.icon_state]")
|
||||
J.Shift(WEST, 13)
|
||||
underlays += J
|
||||
if(attached_device)
|
||||
overlays += "device"
|
||||
add_overlay("device")
|
||||
|
||||
/obj/item/device/transfer_valve/proc/merge_gases()
|
||||
tank_two.air_contents.volume += tank_one.air_contents.volume
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/item/nuke_core/New()
|
||||
..()
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/nuke_core/attackby(obj/item/nuke_core_container/container, mob/user)
|
||||
if(istype(container))
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/obj/item/nuke_core_container/proc/seal()
|
||||
if(istype(core))
|
||||
SSobj.processing -= core
|
||||
STOP_PROCESSING(SSobj, core)
|
||||
icon_state = "core_container_sealed"
|
||||
playsound(loc, 'sound/items/Deconstruct.ogg', 60, 1)
|
||||
if(ismob(loc))
|
||||
|
||||
@@ -76,19 +76,19 @@
|
||||
src.updateicon()
|
||||
|
||||
/obj/item/robot_parts/robot_suit/proc/updateicon()
|
||||
src.overlays.Cut()
|
||||
src.cut_overlays()
|
||||
if(src.l_arm)
|
||||
src.overlays += "l_arm+o"
|
||||
src.add_overlay("l_arm+o")
|
||||
if(src.r_arm)
|
||||
src.overlays += "r_arm+o"
|
||||
src.add_overlay("r_arm+o")
|
||||
if(src.chest)
|
||||
src.overlays += "chest+o"
|
||||
src.add_overlay("chest+o")
|
||||
if(src.l_leg)
|
||||
src.overlays += "l_leg+o"
|
||||
src.add_overlay("l_leg+o")
|
||||
if(src.r_leg)
|
||||
src.overlays += "r_leg+o"
|
||||
src.add_overlay("r_leg+o")
|
||||
if(src.head)
|
||||
src.overlays += "head+o"
|
||||
src.add_overlay("head+o")
|
||||
|
||||
/obj/item/robot_parts/robot_suit/proc/check_completion()
|
||||
if(src.l_arm && src.r_arm)
|
||||
|
||||
@@ -247,6 +247,8 @@
|
||||
R.weather_immunities += "ash"
|
||||
R.icon_state = "ashborg"
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/borg/upgrade/selfrepair
|
||||
name = "self-repair module"
|
||||
desc = "This module will repair the cyborg over time."
|
||||
@@ -278,10 +280,10 @@
|
||||
on = !on
|
||||
if(on)
|
||||
cyborg << "<span class='notice'>You activate the self-repair module.</span>"
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
cyborg << "<span class='notice'>You deactivate the self-repair module.</span>"
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/borg/upgrade/selfrepair/update_icon()
|
||||
@@ -294,7 +296,7 @@
|
||||
icon_state = "cyborg_upgrade5"
|
||||
|
||||
/obj/item/borg/upgrade/selfrepair/proc/deactivate()
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
on = FALSE
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
density = 0
|
||||
|
||||
/obj/item/target/proc/removeOverlays()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
|
||||
/obj/item/target/Move()
|
||||
..()
|
||||
@@ -84,7 +84,7 @@
|
||||
I.icon_state = "light_scorch"
|
||||
else
|
||||
I.icon_state = "dent"
|
||||
overlays += I
|
||||
add_overlay(I)
|
||||
return
|
||||
return -1
|
||||
|
||||
|
||||
@@ -68,6 +68,9 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
|
||||
/obj/item/stack/sheet/metal/fifty
|
||||
amount = 50
|
||||
|
||||
/obj/item/stack/sheet/metal/five
|
||||
amount = 5
|
||||
|
||||
/obj/item/stack/sheet/metal/cyborg
|
||||
materials = list()
|
||||
is_cyborg = 1
|
||||
|
||||
@@ -760,8 +760,8 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/toy/cards/deck/MouseDrop(atom/over_object)
|
||||
var/mob/M = usr
|
||||
if(!ishuman(usr) || usr.incapacitated() || usr.lying)
|
||||
var/mob/living/M = usr
|
||||
if(!istype(M) || usr.incapacitated() || usr.lying)
|
||||
return
|
||||
if(Adjacent(usr))
|
||||
if(over_object == M && loc != M)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
icon_state = "chronogun"
|
||||
item_state = "chronogun"
|
||||
w_class = 3
|
||||
flags = NODROP
|
||||
flags = NODROP | DROPDEL
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/chrono_beam)
|
||||
can_charge = 0
|
||||
fire_delay = 50
|
||||
@@ -62,10 +62,6 @@
|
||||
TED = new(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/gun/energy/chrono_gun/dropped()
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/gun/energy/chrono_gun/update_icon()
|
||||
return
|
||||
|
||||
@@ -182,7 +178,7 @@
|
||||
update_icon()
|
||||
|
||||
desc = initial(desc) + "<br><span class='info'>It appears to contain [target.name].</span>"
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/effect/chrono_field/Destroy()
|
||||
if(gun && gun.field_check(src))
|
||||
@@ -264,4 +260,4 @@
|
||||
|
||||
|
||||
#undef CHRONO_BEAM_RANGE
|
||||
#undef CHRONO_FRAME_COUNT
|
||||
#undef CHRONO_FRAME_COUNT
|
||||
|
||||
@@ -50,7 +50,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
name = "lit match"
|
||||
desc = "A match. This one is lit."
|
||||
attack_verb = list("burnt","singed")
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
@@ -64,7 +64,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
name = "burnt match"
|
||||
desc = "A match. This one has seen better days."
|
||||
attack_verb = null
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/weapon/match/dropped(mob/user)
|
||||
matchburnout()
|
||||
@@ -130,7 +130,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/clothing/mask/cigarette/Destroy()
|
||||
if(reagents)
|
||||
qdel(reagents)
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W, mob/user, params)
|
||||
@@ -214,7 +214,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
if(flavor_text)
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
//can't think of any other way to update the overlays :<
|
||||
if(ismob(loc))
|
||||
@@ -385,7 +385,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/clothing/mask/cigarette/pipe/Destroy()
|
||||
if(reagents)
|
||||
qdel(reagents)
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
. = ..()
|
||||
|
||||
/obj/item/clothing/mask/cigarette/pipe/process()
|
||||
@@ -402,7 +402,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
M.update_inv_wear_mask()
|
||||
packeditem = 0
|
||||
name = "empty [initial(name)]"
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return
|
||||
open_flame()
|
||||
if(reagents && reagents.total_volume) // check if it has any reagents at all
|
||||
@@ -443,7 +443,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
lit = 0
|
||||
icon_state = icon_off
|
||||
item_state = icon_off
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return
|
||||
if(!lit && smoketime > 0)
|
||||
user << "<span class='notice'>You empty [src] onto [location].</span>"
|
||||
@@ -487,7 +487,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/weapon/lighter/greyscale/New()
|
||||
var/image/I = image(icon,"lighter-overlay")
|
||||
I.color = color2hex(randomColor(1))
|
||||
overlays += I
|
||||
add_overlay(I)
|
||||
|
||||
/obj/item/weapon/lighter/update_icon()
|
||||
icon_state = lit ? "[icon_state]_on" : "[initial(icon_state)]"
|
||||
@@ -512,7 +512,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
user.visible_message("<span class='warning'>After a few attempts, [user] manages to light [src] - they however burn their finger in the process.</span>", "<span class='warning'>You burn yourself while lighting the lighter!</span>")
|
||||
|
||||
user.AddLuminosity(1)
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
lit = 0
|
||||
update_icon()
|
||||
@@ -524,7 +524,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
else
|
||||
user.visible_message("[user] quietly shuts off [src].", "<span class='notice'>You quietly shut off [src].")
|
||||
user.AddLuminosity(-1)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
else
|
||||
return ..()
|
||||
return
|
||||
|
||||
@@ -32,14 +32,14 @@
|
||||
|
||||
|
||||
/obj/item/weapon/lipstick/attack_self(mob/user)
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
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")
|
||||
colored.color = colour
|
||||
icon_state = "lipstick_uncap"
|
||||
overlays += colored
|
||||
add_overlay(colored)
|
||||
else
|
||||
icon_state = "lipstick"
|
||||
|
||||
|
||||
@@ -48,22 +48,22 @@
|
||||
powered = 0
|
||||
|
||||
/obj/item/weapon/defibrillator/proc/update_overlays()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
if(!on)
|
||||
overlays += "[initial(icon_state)]-paddles"
|
||||
add_overlay("[initial(icon_state)]-paddles")
|
||||
if(powered)
|
||||
overlays += "[initial(icon_state)]-powered"
|
||||
add_overlay("[initial(icon_state)]-powered")
|
||||
if(!bcell)
|
||||
overlays += "[initial(icon_state)]-nocell"
|
||||
add_overlay("[initial(icon_state)]-nocell")
|
||||
if(!safety)
|
||||
overlays += "[initial(icon_state)]-emagged"
|
||||
add_overlay("[initial(icon_state)]-emagged")
|
||||
|
||||
/obj/item/weapon/defibrillator/proc/update_charge()
|
||||
if(powered) //so it doesn't show charge if it's unpowered
|
||||
if(bcell)
|
||||
var/ratio = bcell.charge / bcell.maxcharge
|
||||
ratio = Ceiling(ratio*4) * 25
|
||||
overlays += "[initial(icon_state)]-charge[ratio]"
|
||||
add_overlay("[initial(icon_state)]-charge[ratio]")
|
||||
|
||||
/obj/item/weapon/defibrillator/CheckParts(list/parts_list)
|
||||
..()
|
||||
|
||||
@@ -141,5 +141,5 @@
|
||||
H.Weaken(3)
|
||||
|
||||
/obj/item/weapon/dice/update_icon()
|
||||
overlays.Cut()
|
||||
overlays += "[src.icon_state][src.result]"
|
||||
cut_overlays()
|
||||
add_overlay("[src.icon_state][src.result]")
|
||||
@@ -90,7 +90,7 @@
|
||||
message_admins("[key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) planted [src.name] on [target.name] at ([target.x],[target.y],[target.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[target.x];Y=[target.y];Z=[target.z]'>JMP</a>) with [timer] second fuse",0,1)
|
||||
log_game("[key_name(user)] planted [src.name] on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse")
|
||||
|
||||
target.overlays += image_overlay
|
||||
target.add_overlay(image_overlay, 1)
|
||||
user << "<span class='notice'>You plant the bomb. Timer counting down from [timer].</span>"
|
||||
spawn(timer*10)
|
||||
explode()
|
||||
@@ -103,6 +103,7 @@
|
||||
if(!qdeleted(target))
|
||||
location = get_turf(target)
|
||||
target.overlays -= image_overlay
|
||||
target.priority_overlays -= image_overlay
|
||||
else
|
||||
location = get_turf(src)
|
||||
if(location)
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/obj/item/weapon/flamethrower/process()
|
||||
if(!lit)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return null
|
||||
var/turf/location = loc
|
||||
if(istype(location, /mob/))
|
||||
@@ -47,13 +47,13 @@
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
if(igniter)
|
||||
overlays += "+igniter[status]"
|
||||
add_overlay("+igniter[status]")
|
||||
if(ptank)
|
||||
overlays += "+ptank"
|
||||
add_overlay("+ptank")
|
||||
if(lit)
|
||||
overlays += "+lit"
|
||||
add_overlay("+lit")
|
||||
item_state = "flamethrower_1"
|
||||
else
|
||||
item_state = "flamethrower_0"
|
||||
@@ -149,7 +149,7 @@
|
||||
return
|
||||
lit = !lit
|
||||
if(lit)
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(!warned_admins)
|
||||
message_admins("[key_name_admin(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A> (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[usr]'>FLW</A>) has lit a flamethrower.")
|
||||
warned_admins = 1
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
/obj/item/weapon/grenade/iedcasing/New(loc)
|
||||
..()
|
||||
overlays += image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled")
|
||||
overlays += image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_wired")
|
||||
add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled"))
|
||||
add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_wired"))
|
||||
times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value]
|
||||
det_time = text2num(pickweight(times))
|
||||
if(det_time < 0) //checking for 'duds'
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
message_admins("[key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) planted [src.name] on [target.name] at ([target.x],[target.y],[target.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[target.x];Y=[target.y];Z=[target.z]'>JMP</a>) with [det_time] second fuse",0,1)
|
||||
log_game("[key_name(user)] planted [src.name] on [target.name] at ([target.x],[target.y],[target.z]) with [det_time] second fuse")
|
||||
|
||||
target.overlays += image_overlay
|
||||
target.add_overlay(image_overlay, 1)
|
||||
if(!nadeassembly)
|
||||
user << "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>"
|
||||
addtimer(src, "prime", det_time*10)
|
||||
@@ -130,6 +130,7 @@
|
||||
if(!qdeleted(target))
|
||||
location = get_turf(target)
|
||||
target.overlays -= image_overlay
|
||||
target.priority_overlays -= image_overlay
|
||||
else
|
||||
location = get_turf(src)
|
||||
if(location)
|
||||
@@ -157,6 +158,7 @@
|
||||
if(!qdeleted(target))
|
||||
location = get_turf(target)
|
||||
target.overlays -= image_overlay
|
||||
target.priority_overlays -= image_overlay
|
||||
else
|
||||
location = get_turf(src)
|
||||
if(location)
|
||||
|
||||
@@ -290,19 +290,18 @@
|
||||
armed = 1
|
||||
icon_state = "e_snare"
|
||||
trap_damage = 0
|
||||
flags = DROPDEL
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/New()
|
||||
..()
|
||||
spawn(100)
|
||||
if(!istype(loc, /mob))
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
qdel(src)
|
||||
addtimer(src, "dissipate", 100)
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/dropped()
|
||||
..()
|
||||
qdel(src)
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/proc/dissipate()
|
||||
if(!istype(loc, /mob))
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/energy/attack_hand(mob/user)
|
||||
Crossed(user) //honk
|
||||
|
||||
@@ -49,15 +49,12 @@
|
||||
item_state = "disintegrate"
|
||||
name = "god hand"
|
||||
desc = "This hand of yours glows with an awesome power!"
|
||||
flags = ABSTRACT | NODROP
|
||||
flags = ABSTRACT | NODROP | DROPDEL
|
||||
w_class = 5
|
||||
hitsound = 'sound/weapons/sear.ogg'
|
||||
damtype = BURN
|
||||
attack_verb = list("punched", "cross countered", "pummeled")
|
||||
|
||||
/obj/item/weapon/nullrod/godhand/dropped(mob/user)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/nullrod/staff
|
||||
icon_state = "godstaff-red"
|
||||
item_state = "godstaff-red"
|
||||
@@ -277,7 +274,7 @@
|
||||
H.adjustBruteLoss(8) //Bonus damage
|
||||
|
||||
/obj/item/weapon/nullrod/fedora
|
||||
name = "athiest's fedora"
|
||||
name = "atheist's fedora"
|
||||
desc = "The brim of the hat is as sharp as your wit. Throwing it at someone would hurt almost as much as disproving the existence of God."
|
||||
icon_state = "fedora"
|
||||
item_state = "fedora"
|
||||
@@ -354,10 +351,10 @@
|
||||
|
||||
/obj/item/weapon/nullrod/tribal_knife/New()
|
||||
..()
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/weapon/nullrod/tribal_knife/Destroy()
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/nullrod/tribal_knife/process()
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
item_color = "b"
|
||||
var/allow_multiple = 0
|
||||
var/uses = -1
|
||||
flags = DROPDEL
|
||||
|
||||
|
||||
/obj/item/weapon/implant/proc/trigger(emote, mob/source)
|
||||
@@ -73,12 +74,9 @@
|
||||
removed(imp_in)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/implant/proc/get_data()
|
||||
return "No information available"
|
||||
|
||||
/obj/item/weapon/implant/dropped(mob/user)
|
||||
..()
|
||||
. = 1
|
||||
qdel(src)
|
||||
|
||||
..()
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
/obj/item/weapon/melee/supermatter_sword/New()
|
||||
..()
|
||||
shard = new /obj/machinery/power/supermatter_shard(src)
|
||||
SSobj.processing += src
|
||||
START_PROCESSING(SSobj, src)
|
||||
visible_message("<span class='warning'>\The [src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.</span>")
|
||||
|
||||
/obj/item/weapon/melee/supermatter_sword/process()
|
||||
|
||||
@@ -154,8 +154,8 @@
|
||||
src.update_icons()
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/proc/update_icons()
|
||||
src.overlays.Cut()
|
||||
src.cut_overlays()
|
||||
if(!tank)
|
||||
return
|
||||
src.overlays += image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]")
|
||||
src.add_overlay(image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]"))
|
||||
src.update_icon()
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/New()
|
||||
..()
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/Destroy()
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/process()
|
||||
|
||||
@@ -337,16 +337,16 @@
|
||||
M.Weaken(2)
|
||||
|
||||
/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
for(var/obj/item/I in contents)
|
||||
overlays += image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1)
|
||||
add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1))
|
||||
|
||||
/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
..()
|
||||
rebuild_overlays()
|
||||
|
||||
/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0)
|
||||
overlays += image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1)
|
||||
add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1))
|
||||
. = ..()
|
||||
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
attack_verb = list("whipped", "lashed", "disciplined")
|
||||
|
||||
/obj/item/weapon/storage/belt/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
for(var/obj/item/I in contents)
|
||||
overlays += "[I.name]"
|
||||
add_overlay("[I.name]")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/belt/utility
|
||||
@@ -78,7 +78,6 @@
|
||||
/obj/item/device/flashlight/pen,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/reagent_containers/hypospray,
|
||||
/obj/item/device/rad_laser,
|
||||
/obj/item/device/sensor_device,
|
||||
/obj/item/device/radio,
|
||||
/obj/item/clothing/gloves/,
|
||||
|
||||
@@ -88,7 +88,7 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", "
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.setDir(8)
|
||||
if("athiest")
|
||||
if("atheist")
|
||||
for(var/area/chapel/main/A in world)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
|
||||
@@ -829,3 +829,36 @@
|
||||
new /obj/item/weapon/circuitboard/machine/destructive_analyzer(src)
|
||||
new /obj/item/weapon/circuitboard/machine/circuit_imprinter(src)
|
||||
new /obj/item/weapon/circuitboard/computer/rdconsole(src)
|
||||
|
||||
/obj/item/weapon/storage/box/brass
|
||||
name = "brass box"
|
||||
desc = "A huge brass box with several indentations in its surface."
|
||||
icon_state = "brassbox"
|
||||
w_class = 5
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 28
|
||||
storage_slots = 28
|
||||
slowdown = 1
|
||||
flags = HANDSLOW
|
||||
var/proselytizer_type = /obj/item/clockwork/clockwork_proselytizer/scarab
|
||||
|
||||
/obj/item/weapon/storage/box/brass/prefilled/New()
|
||||
..()
|
||||
new proselytizer_type(src)
|
||||
new /obj/item/weapon/screwdriver/brass(src)
|
||||
new /obj/item/weapon/wirecutters/brass(src)
|
||||
new /obj/item/weapon/wrench/brass(src)
|
||||
new /obj/item/weapon/crowbar/brass(src)
|
||||
new /obj/item/weapon/weldingtool/experimental/brass(src)
|
||||
|
||||
/obj/item/weapon/storage/box/brass/prefilled/ratvar
|
||||
var/slab_type = /obj/item/clockwork/slab/scarab
|
||||
|
||||
/obj/item/weapon/storage/box/brass/prefilled/ratvar/New()
|
||||
..()
|
||||
new slab_type(src)
|
||||
|
||||
/obj/item/weapon/storage/box/brass/prefilled/ratvar/admin
|
||||
slab_type = /obj/item/clockwork/slab/debug
|
||||
proselytizer_type = /obj/item/clockwork/clockwork_proselytizer/scarab/debug
|
||||
|
||||
|
||||
@@ -106,14 +106,14 @@
|
||||
name = "\improper [name] packet"
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
icon_state = initial(icon_state)
|
||||
if(!contents.len)
|
||||
icon_state += "_empty"
|
||||
else
|
||||
overlays += "[icon_state]_open"
|
||||
add_overlay("[icon_state]_open")
|
||||
for(var/c = contents.len, c >= 1, c--)
|
||||
overlays += image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (c -1))
|
||||
add_overlay(image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (c -1)))
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W, atom/new_location)
|
||||
@@ -211,9 +211,9 @@
|
||||
spawn_type = /obj/item/weapon/rollingpaper
|
||||
|
||||
/obj/item/weapon/storage/fancy/rollingpapers/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
if(!contents.len)
|
||||
overlays += "[icon_state]_empty"
|
||||
add_overlay("[icon_state]_empty")
|
||||
return
|
||||
|
||||
/////////////
|
||||
@@ -232,10 +232,10 @@
|
||||
spawn_type = /obj/item/clothing/mask/cigarette/cigar
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon()
|
||||
overlays.Cut()
|
||||
overlays += "[icon_state]_open"
|
||||
cut_overlays()
|
||||
add_overlay("[icon_state]_open")
|
||||
for(var/c = contents.len, c >= 1, c--)
|
||||
overlays += image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1))
|
||||
add_overlay(image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1)))
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba
|
||||
|
||||
@@ -66,10 +66,10 @@
|
||||
if(locked)
|
||||
if(!emagged)
|
||||
emagged = 1
|
||||
src.overlays += image('icons/obj/storage.dmi', icon_sparking)
|
||||
src.add_overlay(image('icons/obj/storage.dmi', icon_sparking))
|
||||
sleep(6)
|
||||
src.overlays = null
|
||||
overlays += image('icons/obj/storage.dmi', icon_locking)
|
||||
add_overlay(image('icons/obj/storage.dmi', icon_locking))
|
||||
locked = 0
|
||||
user << "<span class='notice'>You short out the lock on [src].</span>"
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
else if ((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1))
|
||||
src.locked = 0
|
||||
src.overlays = null
|
||||
overlays += image('icons/obj/storage.dmi', icon_opened)
|
||||
add_overlay(image('icons/obj/storage.dmi', icon_opened))
|
||||
src.code = null
|
||||
else
|
||||
src.code = "ERROR"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if("stealth")
|
||||
new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src)
|
||||
new /obj/item/weapon/pen/sleepy(src)
|
||||
new /obj/item/device/rad_laser(src)
|
||||
new /obj/item/device/healthanalyzer/rad_laser(src)
|
||||
new /obj/item/device/chameleon(src)
|
||||
new /obj/item/weapon/soap/syndie(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
|
||||
/obj/item/weapon/tank/jetpack/suit/New()
|
||||
..()
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
air_contents = null
|
||||
|
||||
/obj/item/weapon/tank/jetpack/suit/cycle(mob/user)
|
||||
@@ -136,13 +136,13 @@
|
||||
var/mob/living/carbon/human/H = loc.loc
|
||||
tank = H.s_store
|
||||
air_contents = tank.air_contents
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/tank/jetpack/suit/turn_off()
|
||||
tank = null
|
||||
air_contents = null
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/tank/jetpack/suit/process()
|
||||
@@ -173,4 +173,4 @@
|
||||
if(!istype(J) && istype(wear_suit, /obj/item/clothing/suit/space/hardsuit))
|
||||
var/obj/item/clothing/suit/space/hardsuit/C = wear_suit
|
||||
J = C.jetpack
|
||||
return J
|
||||
return J
|
||||
|
||||
@@ -53,13 +53,13 @@
|
||||
air_contents = new(volume) //liters
|
||||
air_contents.temperature = T20C
|
||||
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/weapon/tank/Destroy()
|
||||
if(air_contents)
|
||||
qdel(air_contents)
|
||||
|
||||
SSobj.processing -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/tank/examine(mob/user)
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
|
||||
//Todo : cache these.
|
||||
/obj/item/weapon/reagent_containers/chemtank/proc/update_filling()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpack-10")
|
||||
@@ -391,7 +391,7 @@
|
||||
filling.icon_state = "backpack100"
|
||||
|
||||
filling.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
overlays += filling
|
||||
add_overlay(filling)
|
||||
|
||||
/obj/item/weapon/reagent_containers/chemtank/worn_overlays(var/isinhands = FALSE) //apply chemcolor and level
|
||||
. = list()
|
||||
@@ -413,13 +413,13 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/chemtank/proc/turn_on()
|
||||
on = 1
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(ismob(loc))
|
||||
loc << "<span class='notice'>[src] turns on.</span>"
|
||||
|
||||
/obj/item/weapon/reagent_containers/chemtank/proc/turn_off()
|
||||
on = 0
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
if(ismob(loc))
|
||||
loc << "<span class='notice'>[src] turns off.</span>"
|
||||
|
||||
|
||||
@@ -40,6 +40,12 @@
|
||||
icon = 'icons/obj/items_cyborg.dmi'
|
||||
toolspeed = 2
|
||||
|
||||
/obj/item/weapon/wrench/brass
|
||||
name = "brass wrench"
|
||||
desc = "A brass wrench. It's faintly warm to the touch."
|
||||
icon_state = "wrench_brass"
|
||||
toolspeed = 2
|
||||
|
||||
/obj/item/weapon/wrench/medical
|
||||
name = "medical wrench"
|
||||
desc = "A medical wrench with common(medical?) uses. Can be found in your hand."
|
||||
@@ -123,6 +129,12 @@
|
||||
M = user
|
||||
return eyestab(M,user)
|
||||
|
||||
/obj/item/weapon/screwdriver/brass
|
||||
name = "brass screwdriver"
|
||||
desc = "A screwdriver made of brass. The handle feels freezing cold."
|
||||
icon_state = "screwdriver_brass"
|
||||
toolspeed = 2
|
||||
|
||||
/obj/item/weapon/screwdriver/cyborg
|
||||
name = "powered screwdriver"
|
||||
desc = "An electrical screwdriver, designed to be both precise and quick."
|
||||
@@ -174,6 +186,11 @@
|
||||
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/wirecutters/brass
|
||||
name = "brass wirecutters"
|
||||
desc = "A pair of wirecutters made of brass. The handle feels freezing cold to the touch."
|
||||
icon_state = "cutters_brass"
|
||||
toolspeed = 2
|
||||
|
||||
/obj/item/weapon/wirecutters/cyborg
|
||||
name = "wirecutters"
|
||||
@@ -219,9 +236,9 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/weldingtool/proc/update_torch()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
if(welding)
|
||||
overlays += "[initial(icon_state)]-on"
|
||||
add_overlay("[initial(icon_state)]-on")
|
||||
item_state = "[initial(item_state)]1"
|
||||
else
|
||||
item_state = "[initial(item_state)]"
|
||||
@@ -268,9 +285,6 @@
|
||||
if(!do_mob(user, H, 50))
|
||||
return
|
||||
item_heal_robotic(H, user, 5, 0)
|
||||
return
|
||||
else
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -281,7 +295,7 @@
|
||||
damtype = "brute"
|
||||
update_icon()
|
||||
if(!can_off_process)
|
||||
SSobj.processing.Remove(src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return
|
||||
//Welders left on now use up fuel, but lets not have them run out quite that fast
|
||||
if(1)
|
||||
@@ -298,19 +312,6 @@
|
||||
|
||||
/obj/item/weapon/weldingtool/afterattack(atom/O, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
if(istype(O, /obj/structure/reagent_dispensers/fueltank) && in_range(src, O))
|
||||
if(!welding)
|
||||
O.reagents.trans_to(src, max_fuel)
|
||||
user << "<span class='notice'>[src] refueled.</span>"
|
||||
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
|
||||
log_game("[key_name(user)] triggered a fueltank explosion.")
|
||||
user << "<span class='warning'>That was stupid of you.</span>"
|
||||
O.ex_act()
|
||||
return
|
||||
|
||||
if(welding)
|
||||
remove_fuel(1)
|
||||
@@ -381,7 +382,7 @@
|
||||
damtype = "fire"
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
update_icon()
|
||||
SSobj.processing |= src
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
user << "<span class='warning'>You need more fuel!</span>"
|
||||
welding = 0
|
||||
@@ -480,6 +481,12 @@
|
||||
light_intensity = 1
|
||||
toolspeed = 2
|
||||
|
||||
/obj/item/weapon/weldingtool/experimental/brass
|
||||
name = "brass welding tool"
|
||||
desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch."
|
||||
icon_state = "brasswelder"
|
||||
item_state = "brasswelder"
|
||||
|
||||
|
||||
//Proc to make the experimental welder generate fuel, optimized as fuck -Sieve
|
||||
//i don't think this is actually used, yaaaaay -Pete
|
||||
@@ -525,6 +532,12 @@
|
||||
icon_state = "crowbar_red"
|
||||
force = 8
|
||||
|
||||
/obj/item/weapon/crowbar/brass
|
||||
name = "brass crowbar"
|
||||
desc = "A brass crowbar. It feels faintly warm to the touch."
|
||||
icon_state = "crowbar_brass"
|
||||
toolspeed = 2
|
||||
|
||||
/obj/item/weapon/crowbar/large
|
||||
name = "crowbar"
|
||||
desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big."
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
/obj/item/weapon/vending_refill/boozeomat
|
||||
machine_name = "Booze-O-Mat"
|
||||
icon_state = "refill_booze"
|
||||
charges = list(53, 4, 0)//of 159 standard, 12 contraband
|
||||
init_charges = list(53, 4, 0)
|
||||
charges = list(54, 4, 0)//of 159 standard, 12 contraband
|
||||
init_charges = list(54, 4, 0)
|
||||
|
||||
/obj/item/weapon/vending_refill/coffee
|
||||
machine_name = "Solar's Best Hot Drinks"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
/obj/item/weapon/banhammer
|
||||
desc = "A banhammer"
|
||||
name = "banhammer"
|
||||
@@ -296,18 +294,7 @@
|
||||
throwforce = 4
|
||||
w_class = 5.0
|
||||
attack_verb = list("smacked", "whacked", "slammed", "smashed")
|
||||
var/obj/vehicle/scooter/skateboard/linked_board
|
||||
|
||||
/obj/item/weapon/melee/skateboard/attack_self(mob/user)
|
||||
if(!linked_board)
|
||||
linked_board = new /obj/vehicle/scooter/skateboard(src)
|
||||
linked_board.linked_board = src
|
||||
if(!user.drop_item())
|
||||
return
|
||||
linked_board.forceMove(get_turf(user))
|
||||
forceMove(linked_board)
|
||||
|
||||
/obj/item/weapon/melee/skateboard/Destroy()
|
||||
if(linked_board)
|
||||
qdel(linked_board)
|
||||
..()
|
||||
new /obj/vehicle/scooter/skateboard(get_turf(user))
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user