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:
PKPenguin321
2016-06-20 22:22:50 -07:00
530 changed files with 9533 additions and 197239 deletions
+2 -2
View File
@@ -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()
+1 -1
View File
@@ -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(..())
+1 -1
View File
@@ -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()
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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."
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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()
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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()
+15 -15
View File
@@ -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>")
+4 -4
View File
@@ -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,
+8 -8
View File
@@ -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
+2 -2
View File
@@ -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))
+7 -7
View File
@@ -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()
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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"
+6 -6
View File
@@ -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)
..()
+2 -2
View File
@@ -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)
+8 -9
View File
@@ -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>"
+33 -20
View File
@@ -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"
+2 -15
View File
@@ -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)