mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
adds clown glue
This commit is contained in:
@@ -221,9 +221,9 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
/obj/machinery/atmospherics/attackby(var/obj/item/W, mob/user)
|
/obj/machinery/atmospherics/attackby(var/obj/item/W, mob/user)
|
||||||
if(istype(W, /obj/item/pipe)) //lets you autodrop
|
if(istype(W, /obj/item/pipe)) //lets you autodrop
|
||||||
var/obj/item/pipe/pipe = W
|
var/obj/item/pipe/pipe = W
|
||||||
user.drop_item(pipe)
|
if(user.drop_item(pipe))
|
||||||
pipe.setPipingLayer(src.piping_layer) //align it with us
|
pipe.setPipingLayer(src.piping_layer) //align it with us
|
||||||
return 1
|
return 1
|
||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
if(src.machine_flags & WRENCHMOVE)
|
if(src.machine_flags & WRENCHMOVE)
|
||||||
|
|||||||
@@ -83,11 +83,11 @@
|
|||||||
if(panel_open && !cell)
|
if(panel_open && !cell)
|
||||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||||
if(istype(C))
|
if(istype(C))
|
||||||
usr.drop_item(C, src)
|
if(usr.drop_item(C, src))
|
||||||
cell = C
|
cell = C
|
||||||
C.add_fingerprint(usr)
|
C.add_fingerprint(usr)
|
||||||
|
|
||||||
usr.visible_message("<span class='notice'>[usr] inserts a power cell into \the [src].</span>", "<span class='notice'>You insert the power cell into \the [src].</span>")
|
usr.visible_message("<span class='notice'>[usr] inserts a power cell into \the [src].</span>", "<span class='notice'>You insert the power cell into \the [src].</span>")
|
||||||
|
|
||||||
src.updateDialog()
|
src.updateDialog()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -114,10 +114,10 @@
|
|||||||
// insert cell
|
// insert cell
|
||||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||||
if(istype(C))
|
if(istype(C))
|
||||||
user.drop_item(C, src)
|
if(user.drop_item(C, src))
|
||||||
cell = C
|
cell = C
|
||||||
C.add_fingerprint(usr)
|
C.add_fingerprint(usr)
|
||||||
user.visible_message("<span class='notice'>[user] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
|
user.visible_message("<span class='notice'>[user] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "The hatch must be open to insert a power cell.")
|
to_chat(user, "The hatch must be open to insert a power cell.")
|
||||||
return
|
return
|
||||||
@@ -253,11 +253,11 @@
|
|||||||
if(panel_open && !cell)
|
if(panel_open && !cell)
|
||||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||||
if(istype(C))
|
if(istype(C))
|
||||||
usr.drop_item(C, src)
|
if(usr.drop_item(C, src))
|
||||||
cell = C
|
cell = C
|
||||||
C.add_fingerprint(usr)
|
C.add_fingerprint(usr)
|
||||||
|
|
||||||
usr.visible_message("<span class='notice'>[usr] inserts a power cell into \the [src].</span>", "<span class='notice'>You insert the power cell into \the [src].</span>")
|
usr.visible_message("<span class='notice'>[usr] inserts a power cell into \the [src].</span>", "<span class='notice'>You insert the power cell into \the [src].</span>")
|
||||||
|
|
||||||
updateDialog()
|
updateDialog()
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -140,13 +140,13 @@
|
|||||||
/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor))
|
if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor))
|
||||||
to_chat(usr, "<span class='notice'>You put [W] back to [src].</span>")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(usr, "<span class='notice'>You put [W] back to [src].</span>")
|
||||||
if(istype(W, /obj/item/pipe))
|
if(istype(W, /obj/item/pipe))
|
||||||
returnToPool(W)
|
returnToPool(W)
|
||||||
else
|
else
|
||||||
qdel(W)
|
qdel(W)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,8 @@
|
|||||||
/datum/context_click/pipe_planner/action(obj/item/used_item, mob/user, params)
|
/datum/context_click/pipe_planner/action(obj/item/used_item, mob/user, params)
|
||||||
if(istype(used_item, /obj/item/pipe))
|
if(istype(used_item, /obj/item/pipe))
|
||||||
var/obj/item/pipe/pipe = used_item
|
var/obj/item/pipe/pipe = used_item
|
||||||
user.drop_item(pipe, get_turf(holder))
|
if(user.drop_item(pipe, get_turf(holder)))
|
||||||
var/dis = PIPING_LAYER_DEFAULT + (PIPING_LAYER_INCREMENT * return_clicked_id_by_params(params))
|
var/dis = PIPING_LAYER_DEFAULT + (PIPING_LAYER_INCREMENT * return_clicked_id_by_params(params))
|
||||||
pipe.setPipingLayer(dis)
|
pipe.setPipingLayer(dis)
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
@@ -894,8 +894,8 @@
|
|||||||
|
|
||||||
if(istype(W, /obj/item/pipe_meter))
|
if(istype(W, /obj/item/pipe_meter))
|
||||||
var/obj/item/pipe_meter/meter = W
|
var/obj/item/pipe_meter/meter = W
|
||||||
user.drop_item(meter, src.loc)
|
if(user.drop_item(meter, src.loc))
|
||||||
meter.setAttachLayer(src.piping_layer)
|
meter.setAttachLayer(src.piping_layer)
|
||||||
|
|
||||||
if(istype(W,/obj/item/device/analyzer))
|
if(istype(W,/obj/item/device/analyzer))
|
||||||
var/obj/item/device/analyzer/A = W
|
var/obj/item/device/analyzer/A = W
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
if(cur_assembly)
|
if(cur_assembly)
|
||||||
to_chat(user, "<span class='warning'>There is already a fuel rod assembly in there!</span>")
|
to_chat(user, "<span class='warning'>There is already a fuel rod assembly in there!</span>")
|
||||||
else
|
else
|
||||||
cur_assembly = I
|
if(user.drop_item(I, src))
|
||||||
user.drop_item(I, src)
|
cur_assembly = I
|
||||||
icon_state = "port1"
|
icon_state = "port1"
|
||||||
to_chat(user, "<span class='notice'>You insert [I] into [src]. Touch the panel again to insert [I] into the injector.</span>")
|
to_chat(user, "<span class='notice'>You insert [I] into [src]. Touch the panel again to insert [I] into the injector.</span>")
|
||||||
|
|
||||||
/obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user)
|
/obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
|
|||||||
@@ -73,10 +73,10 @@
|
|||||||
|
|
||||||
if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly)
|
if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly)
|
||||||
if(emergency_insert_ready)
|
if(emergency_insert_ready)
|
||||||
cur_assembly = W
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
cur_assembly = W
|
||||||
emergency_insert_ready = 0
|
emergency_insert_ready = 0
|
||||||
return
|
return
|
||||||
|
|
||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
if (contents.len >= max_butts)
|
if (contents.len >= max_butts)
|
||||||
to_chat(user, "This ashtray is full.")
|
to_chat(user, "This ashtray is full.")
|
||||||
return
|
return
|
||||||
user.drop_item(W, src)
|
user.drop_item(W, src, force_drop = 1)
|
||||||
var/obj/item/clothing/mask/cigarette/cig = W
|
var/obj/item/clothing/mask/cigarette/cig = W
|
||||||
if(istype(cig, /obj/item/weapon/cigbutt))
|
if(istype(cig, /obj/item/weapon/cigbutt))
|
||||||
to_chat(user, "You drop the [cig] into [src].")
|
to_chat(user, "You drop the [cig] into [src].")
|
||||||
|
|||||||
@@ -89,11 +89,11 @@ log transactions
|
|||||||
if(istype(I, /obj/item/weapon/card/id))
|
if(istype(I, /obj/item/weapon/card/id))
|
||||||
var/obj/item/weapon/card/id/idcard = I
|
var/obj/item/weapon/card/id/idcard = I
|
||||||
if(!held_card)
|
if(!held_card)
|
||||||
usr.drop_item(idcard, src)
|
if(usr.drop_item(idcard, src))
|
||||||
held_card = idcard
|
held_card = idcard
|
||||||
if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number)
|
if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number)
|
||||||
authenticated_account = null
|
authenticated_account = null
|
||||||
src.attack_hand(user)
|
src.attack_hand(user)
|
||||||
else if(authenticated_account)
|
else if(authenticated_account)
|
||||||
if(istype(I,/obj/item/weapon/spacecash))
|
if(istype(I,/obj/item/weapon/spacecash))
|
||||||
var/obj/item/weapon/spacecash/dosh = I
|
var/obj/item/weapon/spacecash/dosh = I
|
||||||
@@ -456,8 +456,8 @@ log transactions
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
held_card = I
|
held_card = I
|
||||||
if("logout")
|
if("logout")
|
||||||
authenticated_account = null
|
authenticated_account = null
|
||||||
failsafe = 1
|
failsafe = 1
|
||||||
|
|||||||
@@ -155,8 +155,8 @@ var/list/alldepartments = list("Central Command")
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
scan = I
|
scan = I
|
||||||
authenticated = 0
|
authenticated = 0
|
||||||
|
|
||||||
if(href_list["dept"])
|
if(href_list["dept"])
|
||||||
@@ -180,11 +180,11 @@ var/list/alldepartments = list("Central Command")
|
|||||||
|
|
||||||
if(istype(O, /obj/item/weapon/paper))
|
if(istype(O, /obj/item/weapon/paper))
|
||||||
if(!tofax)
|
if(!tofax)
|
||||||
user.drop_item(O, src)
|
if(user.drop_item(O, src))
|
||||||
tofax = O
|
tofax = O
|
||||||
to_chat(user, "<span class='notice'>You insert the paper into \the [src].</span>")
|
to_chat(user, "<span class='notice'>You insert the paper into \the [src].</span>")
|
||||||
flick("faxsend", src)
|
flick("faxsend", src)
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>There is already something in \the [src].</span>")
|
to_chat(user, "<span class='notice'>There is already something in \the [src].</span>")
|
||||||
|
|
||||||
@@ -192,8 +192,8 @@ var/list/alldepartments = list("Central Command")
|
|||||||
|
|
||||||
var/obj/item/weapon/card/id/idcard = O
|
var/obj/item/weapon/card/id/idcard = O
|
||||||
if(!scan)
|
if(!scan)
|
||||||
usr.drop_item(idcard, src)
|
if(usr.drop_item(idcard, src))
|
||||||
scan = idcard
|
scan = idcard
|
||||||
|
|
||||||
else if(istype(O, /obj/item/weapon/wrench))
|
else if(istype(O, /obj/item/weapon/wrench))
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
|
|||||||
@@ -122,9 +122,9 @@
|
|||||||
if(battery)
|
if(battery)
|
||||||
to_chat(user, "<span class='notice'>The pod already has a battery.</span>")
|
to_chat(user, "<span class='notice'>The pod already has a battery.</span>")
|
||||||
return
|
return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
battery = W
|
battery = W
|
||||||
return
|
return
|
||||||
if(istype(W, /obj/item/device/spacepod_equipment))
|
if(istype(W, /obj/item/device/spacepod_equipment))
|
||||||
if(!hatch_open)
|
if(!hatch_open)
|
||||||
return ..()
|
return ..()
|
||||||
@@ -136,13 +136,12 @@
|
|||||||
to_chat(user, "<span class='notice'>The pod already has a weapon system, remove it first.</span>")
|
to_chat(user, "<span class='notice'>The pod already has a weapon system, remove it first.</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>You insert \the [W] into the equipment system.</span>")
|
if(user.drop_item(W, equipment_system))
|
||||||
user.drop_item(W, equipment_system)
|
to_chat(user, "<span class='notice'>You insert \the [W] into the equipment system.</span>")
|
||||||
equipment_system.weapon_system = W
|
equipment_system.weapon_system = W
|
||||||
equipment_system.weapon_system.my_atom = src
|
equipment_system.weapon_system.my_atom = src
|
||||||
new/obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system(src, equipment_system.weapon_system.verb_name, equipment_system.weapon_system.verb_desc) //Yes, it has to be referenced like that. W.verb_name/desc doesn't compile.
|
new/obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system(src, equipment_system.weapon_system.verb_name, equipment_system.weapon_system.verb_desc) //Yes, it has to be referenced like that. W.verb_name/desc doesn't compile.
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/spacepod/attack_hand(mob/user as mob)
|
/obj/spacepod/attack_hand(mob/user as mob)
|
||||||
if(!hatch_open)
|
if(!hatch_open)
|
||||||
|
|||||||
@@ -82,9 +82,8 @@ STI KALY - blind
|
|||||||
var/mob/living/carbon/H = affected_mob
|
var/mob/living/carbon/H = affected_mob
|
||||||
if(prob(chance))
|
if(prob(chance))
|
||||||
if(!istype(H.r_hand, /obj/item/weapon/staff))
|
if(!istype(H.r_hand, /obj/item/weapon/staff))
|
||||||
if(H.r_hand) //no need to drop if we aren't holding anything
|
if(H.r_hand || H.drop_item(H.r_hand))
|
||||||
H.drop_item(H.r_hand)
|
H.put_in_r_hand( new /obj/item/weapon/staff(H) )
|
||||||
H.put_in_r_hand( new /obj/item/weapon/staff(H) )
|
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -180,8 +180,8 @@
|
|||||||
else
|
else
|
||||||
var/atom_name = used_atom.name
|
var/atom_name = used_atom.name
|
||||||
if(permanence || (Co_KEEP in given_step))
|
if(permanence || (Co_KEEP in given_step))
|
||||||
user.drop_item(used_atom, holder)
|
if(user.drop_item(used_atom, holder))
|
||||||
used_atoms.Add(list("[steps.Find(given_step)]" = used_atom))
|
used_atoms.Add(list("[steps.Find(given_step)]" = used_atom))
|
||||||
else
|
else
|
||||||
qdel(used_atom)
|
qdel(used_atom)
|
||||||
given_step[Co_AMOUNT]--
|
given_step[Co_AMOUNT]--
|
||||||
@@ -352,10 +352,10 @@
|
|||||||
else
|
else
|
||||||
var/atom_name = used_atom.name
|
var/atom_name = used_atom.name
|
||||||
if(permanence || (Co_KEEP in given_step))
|
if(permanence || (Co_KEEP in given_step))
|
||||||
user.drop_item(used_atom, holder)
|
if(user.drop_item(used_atom, holder))
|
||||||
if(!("[index][diff == FORWARD ? "+" : "-"]" in used_atoms))
|
if(!("[index][diff == FORWARD ? "+" : "-"]" in used_atoms))
|
||||||
used_atoms.Add(list("[index][diff == FORWARD ? "+" : "-"]" = list()))
|
used_atoms.Add(list("[index][diff == FORWARD ? "+" : "-"]" = list()))
|
||||||
used_atoms["[index][diff == FORWARD ? "+" : "-"]"] += used_atom
|
used_atoms["[index][diff == FORWARD ? "+" : "-"]"] += used_atom
|
||||||
else
|
else
|
||||||
qdel(used_atom)
|
qdel(used_atom)
|
||||||
given_step[Co_AMOUNT]--
|
given_step[Co_AMOUNT]--
|
||||||
|
|||||||
@@ -141,8 +141,8 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
|
|||||||
// Attach
|
// Attach
|
||||||
else
|
else
|
||||||
if(istype(I, /obj/item/device/assembly/signaler))
|
if(istype(I, /obj/item/device/assembly/signaler))
|
||||||
L.drop_item(I)
|
if(L.drop_item(I))
|
||||||
Attach(colour, I)
|
Attach(colour, I)
|
||||||
else
|
else
|
||||||
to_chat(L, "<span class='error'>You need a remote signaller!</span>")
|
to_chat(L, "<span class='error'>You need a remote signaller!</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -306,8 +306,8 @@ var/global/list/PDA_Manifest = list()
|
|||||||
siemens_coefficient = 1
|
siemens_coefficient = 1
|
||||||
|
|
||||||
/obj/item/weapon/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
/obj/item/weapon/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||||
user.drop_item(src)
|
if(user.drop_item(src))
|
||||||
src.throw_at(target, throw_range, throw_speed)
|
src.throw_at(target, throw_range, throw_speed)
|
||||||
|
|
||||||
/obj/effect/stop
|
/obj/effect/stop
|
||||||
var/victim = null
|
var/victim = null
|
||||||
|
|||||||
@@ -358,19 +358,19 @@
|
|||||||
if(I.w_class) //if it has a defined weight
|
if(I.w_class) //if it has a defined weight
|
||||||
if(I.w_class == 2.0 || I.w_class == 3.0) //just one is too specific, so don't change this
|
if(I.w_class == 2.0 || I.w_class == 3.0) //just one is too specific, so don't change this
|
||||||
if(!weight1)
|
if(!weight1)
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
weight1 = I
|
weight1 = I
|
||||||
user.show_message("<span class='notice'>You tie [weight1] to the [src].</span>")
|
user.show_message("<span class='notice'>You tie [weight1] to the [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
//del(I)
|
//del(I)
|
||||||
return
|
return
|
||||||
if(!weight2) //just in case
|
if(!weight2) //just in case
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
weight2 = I
|
weight2 = I
|
||||||
user.show_message("<span class='notice'>You tie [weight2] to the [src].</span>")
|
user.show_message("<span class='notice'>You tie [weight2] to the [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
//del(I)
|
//del(I)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user.show_message("<span class='rose'>There are already two weights on this [src]!</span>")
|
user.show_message("<span class='rose'>There are already two weights on this [src]!</span>")
|
||||||
return
|
return
|
||||||
@@ -423,14 +423,14 @@
|
|||||||
IED = null
|
IED = null
|
||||||
return
|
return
|
||||||
if(2,3)
|
if(2,3)
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
var/turf/bombturf = get_turf(src)
|
var/turf/bombturf = get_turf(src)
|
||||||
var/area/A = get_area(bombturf)
|
var/area/A = get_area(bombturf)
|
||||||
var/log_str = "[key_name(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> has rigged a beartrap with an IED at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>."
|
var/log_str = "[key_name(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> has rigged a beartrap with an IED at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>."
|
||||||
message_admins(log_str)
|
message_admins(log_str)
|
||||||
log_game(log_str)
|
log_game(log_str)
|
||||||
to_chat(user, "<span class='notice'>You sneak the [IED] underneath the pressure plate and connect the trigger wire.</span>")
|
to_chat(user, "<span class='notice'>You sneak the [IED] underneath the pressure plate and connect the trigger wire.</span>")
|
||||||
desc = "A trap used to catch bears and other legged creatures. <span class='warning'>There is an IED hooked up to it.</span>"
|
desc = "A trap used to catch bears and other legged creatures. <span class='warning'>There is an IED hooked up to it.</span>"
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='danger'>You shouldn't be reading this message! Contact a coder or someone, something broke!</span>")
|
to_chat(user, "<span class='danger'>You shouldn't be reading this message! Contact a coder or someone, something broke!</span>")
|
||||||
IED = null
|
IED = null
|
||||||
|
|||||||
@@ -224,11 +224,10 @@
|
|||||||
if(beaker)
|
if(beaker)
|
||||||
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
|
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
|
||||||
return
|
return
|
||||||
|
if(user.drop_item(beaker, src))
|
||||||
beaker = item
|
beaker = item
|
||||||
user.drop_item(beaker, src)
|
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
|
||||||
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
|
return
|
||||||
return
|
|
||||||
else if(istype(item, /obj/item/weapon/grab)) //sanity checks, you chucklefucks
|
else if(istype(item, /obj/item/weapon/grab)) //sanity checks, you chucklefucks
|
||||||
var/obj/item/weapon/grab/G = item
|
var/obj/item/weapon/grab/G = item
|
||||||
if (!ismob(G.affecting))
|
if (!ismob(G.affecting))
|
||||||
|
|||||||
@@ -75,15 +75,14 @@
|
|||||||
|
|
||||||
/mob/living/simple_animal/hostile/retaliate/snowman/attackby(var/obj/item/W, var/mob/user)
|
/mob/living/simple_animal/hostile/retaliate/snowman/attackby(var/obj/item/W, var/mob/user)
|
||||||
if(!carrot && istype(W, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot))
|
if(!carrot && istype(W, /obj/item/weapon/reagent_containers/food/snacks/grown/carrot))
|
||||||
visible_message("<span class='notice'>[user] puts \a [W] on \the [src]'s nose.</span>")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
visible_message("<span class='notice'>[user] puts \a [W] on \the [src]'s nose.</span>")
|
||||||
carrot = W
|
carrot = W
|
||||||
overlays += "snowman_carrot"
|
overlays += "snowman_carrot"
|
||||||
speak -= "Would you happen to have a carrot for my nose?"
|
speak -= "Would you happen to have a carrot for my nose?"
|
||||||
src.say("Ah, most excellent!")
|
src.say("Ah, most excellent!")
|
||||||
if(prob(30))
|
if(prob(30))
|
||||||
call(/obj/item/weapon/winter_gift/proc/pick_a_gift)(src.loc)
|
call(/obj/item/weapon/winter_gift/proc/pick_a_gift)(src.loc)
|
||||||
|
|
||||||
|
|
||||||
else if(istype(W,/obj/item/clothing/head/))
|
else if(istype(W,/obj/item/clothing/head/))
|
||||||
if(hat)
|
if(hat)
|
||||||
@@ -92,10 +91,10 @@
|
|||||||
hat = null
|
hat = null
|
||||||
else
|
else
|
||||||
speak += "I feel so dandy!"
|
speak += "I feel so dandy!"
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
hat = W
|
hat = W
|
||||||
|
|
||||||
overlays += image('icons/mob/head.dmi', hat.icon_state)
|
overlays += image('icons/mob/head.dmi', hat.icon_state)
|
||||||
|
|
||||||
else ..()
|
else ..()
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ var/bomb_set
|
|||||||
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
|
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
|
||||||
if (src.extended)
|
if (src.extended)
|
||||||
if (istype(O, /obj/item/weapon/disk/nuclear))
|
if (istype(O, /obj/item/weapon/disk/nuclear))
|
||||||
usr.drop_item(O, src)
|
usr.drop_item(O, src, force_drop = 1)
|
||||||
src.auth = O
|
src.auth = O
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
return
|
return
|
||||||
@@ -188,7 +188,7 @@ var/bomb_set
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/disk/nuclear))
|
if (istype(I, /obj/item/weapon/disk/nuclear))
|
||||||
usr.drop_item(I, src)
|
usr.drop_item(I, src, force_drop = 1) //FORCE DROP for balance reasons
|
||||||
src.auth = I
|
src.auth = I
|
||||||
if (src.auth)
|
if (src.auth)
|
||||||
if (href_list["type"])
|
if (href_list["type"])
|
||||||
|
|||||||
@@ -81,9 +81,9 @@
|
|||||||
|
|
||||||
if ((( istype(O, /obj/item/weapon) ) || user.get_active_hand() == O))
|
if ((( istype(O, /obj/item/weapon) ) || user.get_active_hand() == O))
|
||||||
|
|
||||||
user.drop_item(O)
|
if(user.drop_item(O))
|
||||||
if (O.loc != src.loc)
|
if (O.loc != src.loc)
|
||||||
step(O, get_dir(O, src))
|
step(O, get_dir(O, src))
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
if(!ismob(O)) //humans only
|
if(!ismob(O)) //humans only
|
||||||
|
|||||||
@@ -86,10 +86,10 @@
|
|||||||
if (src.holding)
|
if (src.holding)
|
||||||
return 0
|
return 0
|
||||||
var/obj/item/weapon/tank/T = W
|
var/obj/item/weapon/tank/T = W
|
||||||
user.drop_item(T, src)
|
if(user.drop_item(T, src))
|
||||||
src.holding = T
|
src.holding = T
|
||||||
update_icon()
|
update_icon()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
else if (istype(W, /obj/item/weapon/wrench))
|
else if (istype(W, /obj/item/weapon/wrench))
|
||||||
if(connected_port)
|
if(connected_port)
|
||||||
|
|||||||
@@ -177,9 +177,10 @@
|
|||||||
else
|
else
|
||||||
to_chat(user, "You cannot recycle your built in tools.")
|
to_chat(user, "You cannot recycle your built in tools.")
|
||||||
return 1
|
return 1
|
||||||
user.drop_item(I, src)
|
|
||||||
materials.removeFrom(I.materials)
|
if(user.drop_item(I, src))
|
||||||
user.visible_message("[user] puts \the [I] into \the [src]'s recycling unit.",
|
materials.removeFrom(I.materials)
|
||||||
"You put \the [I] in \the [src]'s reycling unit.")
|
user.visible_message("[user] puts \the [I] into \the [src]'s recycling unit.",
|
||||||
qdel(I)
|
"You put \the [I] in \the [src]'s reycling unit.")
|
||||||
|
qdel(I)
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -71,12 +71,12 @@
|
|||||||
if(health > 0)
|
if(health > 0)
|
||||||
to_chat(user, "<span class='warning'>There is already a queen in there.</span>")
|
to_chat(user, "<span class='warning'>There is already a queen in there.</span>")
|
||||||
else
|
else
|
||||||
health = 10
|
if(user.drop_item(O))
|
||||||
nutrilevel = min(10,nutrilevel+10)
|
health = 10
|
||||||
user.drop_item(O)
|
nutrilevel = min(10,nutrilevel+10)
|
||||||
qdel(O)
|
qdel(O)
|
||||||
to_chat(user, "<span class='notice'>You carefully insert the queen into [src], she gets busy making a hive.</span>")
|
to_chat(user, "<span class='notice'>You carefully insert the queen into [src], she gets busy making a hive.</span>")
|
||||||
bees_in_hive = 0
|
bees_in_hive = 0
|
||||||
else if(istype(O, /obj/item/beezeez))
|
else if(istype(O, /obj/item/beezeez))
|
||||||
beezeez += 100
|
beezeez += 100
|
||||||
nutrilevel += 10
|
nutrilevel += 10
|
||||||
|
|||||||
@@ -86,19 +86,19 @@
|
|||||||
return
|
return
|
||||||
// Meat for biomass.
|
// Meat for biomass.
|
||||||
else if(!prints_prosthetics && istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat))
|
else if(!prints_prosthetics && istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat))
|
||||||
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
if(user.drop_item(W))
|
||||||
stored_matter += 50
|
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
||||||
user.drop_item(W)
|
stored_matter += 50
|
||||||
qdel(W)
|
qdel(W)
|
||||||
return
|
return
|
||||||
// Steel for matter.
|
// Steel for matter.
|
||||||
else if(prints_prosthetics && istype(W, /obj/item/stack/sheet/metal))
|
else if(prints_prosthetics && istype(W, /obj/item/stack/sheet/metal))
|
||||||
var/obj/item/stack/sheet/metal/M = W
|
var/obj/item/stack/sheet/metal/M = W
|
||||||
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
if(user.drop_item(M))
|
||||||
stored_matter += M.amount * 10
|
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
||||||
user.drop_item(M)
|
stored_matter += M.amount * 10
|
||||||
returnToPool(M)
|
returnToPool(M)
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/weapon/wrench))
|
else if(istype(W, /obj/item/weapon/wrench))
|
||||||
user.visible_message("<span class='notice'>[user] begins to [anchored? "unfasten" : "fasten"] \the [src].</span>", "<span class='notice'>You begin to [anchored? "unfasten" : "fasten"] \the [src].</span>", "<span class='notice'>You hear a ratchet.</span>")
|
user.visible_message("<span class='notice'>[user] begins to [anchored? "unfasten" : "fasten"] \the [src].</span>", "<span class='notice'>You begin to [anchored? "unfasten" : "fasten"] \the [src].</span>", "<span class='notice'>You hear a ratchet.</span>")
|
||||||
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
|
||||||
|
|||||||
@@ -339,14 +339,14 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
|
|||||||
/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob)
|
/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob)
|
||||||
..()
|
..()
|
||||||
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
|
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
qdel(W)
|
qdel(W)
|
||||||
var/turf/T = get_turf(src.loc)
|
var/turf/T = get_turf(src.loc)
|
||||||
var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T)
|
var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T)
|
||||||
A.name = src.created_name
|
A.name = src.created_name
|
||||||
to_chat(user, "<span class='notice'>You add the robot arm to the bucket and sensor assembly. Beep boop!</span>")
|
to_chat(user, "<span class='notice'>You add the robot arm to the bucket and sensor assembly. Beep boop!</span>")
|
||||||
user.drop_from_inventory(src)
|
user.drop_from_inventory(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
else if (istype(W, /obj/item/weapon/pen))
|
else if (istype(W, /obj/item/weapon/pen))
|
||||||
var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN)
|
var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN)
|
||||||
|
|||||||
@@ -213,14 +213,14 @@ Auto Patrol: []"},
|
|||||||
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
||||||
if (src.allowed(user) && !open && !emagged)
|
if (src.allowed(user) && !open && !emagged)
|
||||||
src.locked = !src.locked
|
src.locked = !src.locked
|
||||||
to_chat(user, "<span class='notice'>Controls are now [src.locked ? "locked" : "unlocked"].</span>")
|
to_chat(user, "<span class='notice'>Controls are now [src.locked ? "locked" : "unlocked"].</span>")
|
||||||
else
|
else
|
||||||
if(emagged)
|
if(emagged)
|
||||||
to_chat(user, "<span class='warning'>ERROR</span>")
|
to_chat(user, "<span class='warning'>ERROR</span>")
|
||||||
if(open)
|
if(open)
|
||||||
to_chat(user, "<span class='warning'>Please close the access panel before locking it.</span>")
|
to_chat(user, "<span class='warning'>Please close the access panel before locking it.</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>Access denied.</span>")
|
to_chat(user, "<span class='notice'>Access denied.</span>")
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
if (!istype(W, /obj/item/weapon/screwdriver) && (!src.target))
|
if (!istype(W, /obj/item/weapon/screwdriver) && (!src.target))
|
||||||
@@ -236,7 +236,7 @@ Auto Patrol: []"},
|
|||||||
/obj/machinery/bot/ed209/Emag(mob/user as mob)
|
/obj/machinery/bot/ed209/Emag(mob/user as mob)
|
||||||
..()
|
..()
|
||||||
if(open && !locked)
|
if(open && !locked)
|
||||||
if(user) to_chat(user, "<span class='warning'>You short out [src]'s target assessment circuits.</span>")
|
if(user) to_chat(user, "<span class='warning'>You short out [src]'s target assessment circuits.</span>")
|
||||||
spawn(0)
|
spawn(0)
|
||||||
for(var/mob/O in hearers(src, null))
|
for(var/mob/O in hearers(src, null))
|
||||||
O.show_message("<span class='danger'>[src] buzzes oddly!</span>", 1)
|
O.show_message("<span class='danger'>[src] buzzes oddly!</span>", 1)
|
||||||
@@ -295,7 +295,7 @@ Auto Patrol: []"},
|
|||||||
// if can't reach perp for long enough, go idle
|
// if can't reach perp for long enough, go idle
|
||||||
if (src.frustration >= 8)
|
if (src.frustration >= 8)
|
||||||
// for(var/mob/O in hearers(src, null))
|
// for(var/mob/O in hearers(src, null))
|
||||||
// to_chat(O, "<span class='game say'><span class='name'>[src]</span> beeps, \"Backup requested! Suspect has evaded arrest.\"")
|
// to_chat(O, "<span class='game say'><span class='name'>[src]</span> beeps, \"Backup requested! Suspect has evaded arrest.\"")
|
||||||
src.target = null
|
src.target = null
|
||||||
src.last_found = world.time
|
src.last_found = world.time
|
||||||
src.frustration = 0
|
src.frustration = 0
|
||||||
@@ -546,9 +546,9 @@ Auto Patrol: []"},
|
|||||||
return
|
return
|
||||||
|
|
||||||
/*
|
/*
|
||||||
to_chat(world, "rec signal: [signal.source]")
|
to_chat(world, "rec signal: [signal.source]")
|
||||||
for(var/x in signal.data)
|
for(var/x in signal.data)
|
||||||
to_chat(world, "* [x] = [signal.data[x]]")
|
to_chat(world, "* [x] = [signal.data[x]]")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var/recv = signal.data["command"]
|
var/recv = signal.data["command"]
|
||||||
@@ -631,7 +631,7 @@ Auto Patrol: []"},
|
|||||||
signal.transmission_method = 1
|
signal.transmission_method = 1
|
||||||
//for(var/key in keyval)
|
//for(var/key in keyval)
|
||||||
// signal.data[key] = keyval[key]
|
// signal.data[key] = keyval[key]
|
||||||
// to_chat(world, "sent [key],[keyval[key]] on [freq]")
|
// to_chat(world, "sent [key],[keyval[key]] on [freq]")
|
||||||
signal.data = keyval
|
signal.data = keyval
|
||||||
if (signal.data["findbeacon"])
|
if (signal.data["findbeacon"])
|
||||||
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
||||||
@@ -948,17 +948,17 @@ Auto Patrol: []"},
|
|||||||
switch(build_step)
|
switch(build_step)
|
||||||
if(0,1)
|
if(0,1)
|
||||||
if( istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) )
|
if( istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) )
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
qdel(W)
|
qdel(W)
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You add the robot leg to [src].</span>")
|
to_chat(user, "<span class='notice'>You add the robot leg to [src].</span>")
|
||||||
name = "legs/frame assembly"
|
name = "legs/frame assembly"
|
||||||
if(build_step == 1)
|
if(build_step == 1)
|
||||||
item_state = "ed209_leg"
|
item_state = "ed209_leg"
|
||||||
icon_state = "ed209_leg"
|
icon_state = "ed209_leg"
|
||||||
else
|
else
|
||||||
item_state = "ed209_legs"
|
item_state = "ed209_legs"
|
||||||
icon_state = "ed209_legs"
|
icon_state = "ed209_legs"
|
||||||
|
|
||||||
if(2)
|
if(2)
|
||||||
if( istype(W, /obj/item/clothing/suit/redtag) )
|
if( istype(W, /obj/item/clothing/suit/redtag) )
|
||||||
@@ -966,13 +966,13 @@ Auto Patrol: []"},
|
|||||||
else if( istype(W, /obj/item/clothing/suit/bluetag) )
|
else if( istype(W, /obj/item/clothing/suit/bluetag) )
|
||||||
lasercolor = "b"
|
lasercolor = "b"
|
||||||
if( lasercolor || istype(W, /obj/item/clothing/suit/armor/vest) )
|
if( lasercolor || istype(W, /obj/item/clothing/suit/armor/vest) )
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
qdel(W)
|
qdel(W)
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You add the armor to [src].</span>")
|
to_chat(user, "<span class='notice'>You add the armor to [src].</span>")
|
||||||
name = "vest/legs/frame assembly"
|
name = "vest/legs/frame assembly"
|
||||||
item_state = "[lasercolor]ed209_shell"
|
item_state = "[lasercolor]ed209_shell"
|
||||||
icon_state = "[lasercolor]ed209_shell"
|
icon_state = "[lasercolor]ed209_shell"
|
||||||
|
|
||||||
if(3)
|
if(3)
|
||||||
if( istype(W, /obj/item/weapon/weldingtool) )
|
if( istype(W, /obj/item/weapon/weldingtool) )
|
||||||
@@ -980,40 +980,43 @@ Auto Patrol: []"},
|
|||||||
if(WT.remove_fuel(0,user))
|
if(WT.remove_fuel(0,user))
|
||||||
build_step++
|
build_step++
|
||||||
name = "shielded frame assembly"
|
name = "shielded frame assembly"
|
||||||
to_chat(user, "<span class='notice'>You welded the vest to [src].</span>")
|
to_chat(user, "<span class='notice'>You welded the vest to [src].</span>")
|
||||||
if(4)
|
if(4)
|
||||||
if( istype(W, /obj/item/clothing/head/helmet) )
|
if( istype(W, /obj/item/clothing/head/helmet) )
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
qdel(W)
|
qdel(W)
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You add the helmet to [src].</span>")
|
to_chat(user, "<span class='notice'>You add the helmet to [src].</span>")
|
||||||
name = "covered and shielded frame assembly"
|
name = "covered and shielded frame assembly"
|
||||||
item_state = "[lasercolor]ed209_hat"
|
item_state = "[lasercolor]ed209_hat"
|
||||||
icon_state = "[lasercolor]ed209_hat"
|
icon_state = "[lasercolor]ed209_hat"
|
||||||
|
|
||||||
if(5)
|
if(5)
|
||||||
if( isprox(W) )
|
if( isprox(W) )
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
qdel(W)
|
qdel(W)
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You add the prox sensor to [src].</span>")
|
to_chat(user, "<span class='notice'>You add the prox sensor to [src].</span>")
|
||||||
name = "covered, shielded and sensored frame assembly"
|
name = "covered, shielded and sensored frame assembly"
|
||||||
item_state = "[lasercolor]ed209_prox"
|
item_state = "[lasercolor]ed209_prox"
|
||||||
icon_state = "[lasercolor]ed209_prox"
|
icon_state = "[lasercolor]ed209_prox"
|
||||||
|
|
||||||
if(6)
|
if(6)
|
||||||
if( istype(W, /obj/item/stack/cable_coil) )
|
if( istype(W, /obj/item/stack/cable_coil) )
|
||||||
var/obj/item/stack/cable_coil/coil = W
|
var/obj/item/stack/cable_coil/coil = W
|
||||||
var/turf/T = get_turf(user)
|
var/turf/T = get_turf(user)
|
||||||
to_chat(user, "<span class='notice'>You start to wire [src]...</span>")
|
to_chat(user, "<span class='notice'>You start to wire [src]...</span>")
|
||||||
sleep(40)
|
sleep(40)
|
||||||
if(get_turf(user) == T)
|
if(get_turf(user) == T)
|
||||||
coil.use(1)
|
coil.use(1)
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You wire the ED-209 assembly.</span>")
|
to_chat(user, "<span class='notice'>You wire the ED-209 assembly.</span>")
|
||||||
name = "wired ED-209 assembly"
|
name = "wired ED-209 assembly"
|
||||||
|
|
||||||
if(7)
|
if(7)
|
||||||
|
if(!user.drop_item(W))
|
||||||
|
return
|
||||||
|
|
||||||
switch(lasercolor)
|
switch(lasercolor)
|
||||||
if("b")
|
if("b")
|
||||||
if( !istype(W, /obj/item/weapon/gun/energy/laser/bluetag) )
|
if( !istype(W, /obj/item/weapon/gun/energy/laser/bluetag) )
|
||||||
@@ -1030,30 +1033,31 @@ Auto Patrol: []"},
|
|||||||
else
|
else
|
||||||
return
|
return
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You add [W] to [src].</span>")
|
to_chat(user, "<span class='notice'>You add [W] to [src].</span>")
|
||||||
src.item_state = "[lasercolor]ed209_taser"
|
src.item_state = "[lasercolor]ed209_taser"
|
||||||
src.icon_state = "[lasercolor]ed209_taser"
|
src.icon_state = "[lasercolor]ed209_taser"
|
||||||
user.drop_item(W)
|
|
||||||
qdel(W)
|
qdel(W)
|
||||||
|
|
||||||
if(8)
|
if(8)
|
||||||
if( istype(W, /obj/item/weapon/screwdriver) )
|
if( istype(W, /obj/item/weapon/screwdriver) )
|
||||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
|
||||||
var/turf/T = get_turf(user)
|
var/turf/T = get_turf(user)
|
||||||
to_chat(user, "<span class='notice'>Now attaching the gun to the frame...</span>")
|
to_chat(user, "<span class='notice'>Now attaching the gun to the frame...</span>")
|
||||||
sleep(40)
|
sleep(40)
|
||||||
if(get_turf(user) == T)
|
if(get_turf(user) == T)
|
||||||
build_step++
|
build_step++
|
||||||
name = "armed [name]"
|
name = "armed [name]"
|
||||||
to_chat(user, "<span class='notice'>Taser gun attached.</span>")
|
to_chat(user, "<span class='notice'>Taser gun attached.</span>")
|
||||||
|
|
||||||
if(9)
|
if(9)
|
||||||
if( istype(W, /obj/item/weapon/cell) )
|
if( istype(W, /obj/item/weapon/cell) )
|
||||||
|
if(!user.drop_item(W))
|
||||||
|
return
|
||||||
|
|
||||||
build_step++
|
build_step++
|
||||||
to_chat(user, "<span class='notice'>You complete the ED-209.</span>")
|
to_chat(user, "<span class='notice'>You complete the ED-209.</span>")
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
new /obj/machinery/bot/ed209(T,created_name,lasercolor)
|
new /obj/machinery/bot/ed209(T,created_name,lasercolor)
|
||||||
user.drop_item(W)
|
|
||||||
qdel(W)
|
qdel(W)
|
||||||
user.drop_from_inventory(src)
|
user.drop_from_inventory(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -178,11 +178,11 @@
|
|||||||
if ( get_total_ferts() >= Max_Fertilizers )
|
if ( get_total_ferts() >= Max_Fertilizers )
|
||||||
to_chat(user, "The fertilizer storage is full!")
|
to_chat(user, "The fertilizer storage is full!")
|
||||||
return
|
return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
to_chat(user, "You insert [W].")
|
to_chat(user, "You insert [W].")
|
||||||
flick("farmbot_hatch",src)
|
flick("farmbot_hatch",src)
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -178,7 +178,7 @@
|
|||||||
src.reagent_glass.loc = get_turf(src)
|
src.reagent_glass.loc = get_turf(src)
|
||||||
src.reagent_glass = null
|
src.reagent_glass = null
|
||||||
else
|
else
|
||||||
to_chat(usr, "<span class='notice'>You cannot eject the beaker because the panel is locked.</span>")
|
to_chat(usr, "<span class='notice'>You cannot eject the beaker because the panel is locked.</span>")
|
||||||
|
|
||||||
else if ((href_list["togglevoice"]) && (!src.locked || issilicon(usr)))
|
else if ((href_list["togglevoice"]) && (!src.locked || issilicon(usr)))
|
||||||
src.shut_up = !src.shut_up
|
src.shut_up = !src.shut_up
|
||||||
@@ -196,29 +196,29 @@
|
|||||||
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
||||||
if (src.allowed(user) && !open && !emagged)
|
if (src.allowed(user) && !open && !emagged)
|
||||||
src.locked = !src.locked
|
src.locked = !src.locked
|
||||||
to_chat(user, "<span class='notice'>Controls are now [src.locked ? "locked." : "unlocked."]</span>")
|
to_chat(user, "<span class='notice'>Controls are now [src.locked ? "locked." : "unlocked."]</span>")
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
else
|
else
|
||||||
if(emagged)
|
if(emagged)
|
||||||
to_chat(user, "<span class='warning'>ERROR</span>")
|
to_chat(user, "<span class='warning'>ERROR</span>")
|
||||||
if(open)
|
if(open)
|
||||||
to_chat(user, "<span class='warning'>Please close the access panel before locking it.</span>")
|
to_chat(user, "<span class='warning'>Please close the access panel before locking it.</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||||
|
|
||||||
else if (istype(W, /obj/item/weapon/reagent_containers/glass))
|
else if (istype(W, /obj/item/weapon/reagent_containers/glass))
|
||||||
if(src.locked)
|
if(src.locked)
|
||||||
to_chat(user, "<span class='notice'>You cannot insert a beaker because the panel is locked.</span>")
|
to_chat(user, "<span class='notice'>You cannot insert a beaker because the panel is locked.</span>")
|
||||||
return
|
return
|
||||||
if(!isnull(src.reagent_glass))
|
if(!isnull(src.reagent_glass))
|
||||||
to_chat(user, "<span class='notice'>There is already a beaker loaded.</span>")
|
to_chat(user, "<span class='notice'>There is already a beaker loaded.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.reagent_glass = W
|
src.reagent_glass = W
|
||||||
to_chat(user, "<span class='notice'>You insert [W].</span>")
|
to_chat(user, "<span class='notice'>You insert [W].</span>")
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
..()
|
..()
|
||||||
if(open && !locked)
|
if(open && !locked)
|
||||||
declare_crit = 0
|
declare_crit = 0
|
||||||
if(user) to_chat(user, "<span class='warning'>You short out [src]'s reagent synthesis circuits.</span>")
|
if(user) to_chat(user, "<span class='warning'>You short out [src]'s reagent synthesis circuits.</span>")
|
||||||
spawn(0)
|
spawn(0)
|
||||||
for(var/mob/O in hearers(src, null))
|
for(var/mob/O in hearers(src, null))
|
||||||
O.show_message("<span class='danger'>[src] buzzes oddly!</span>", 1)
|
O.show_message("<span class='danger'>[src] buzzes oddly!</span>", 1)
|
||||||
@@ -559,7 +559,7 @@
|
|||||||
|
|
||||||
//Making a medibot!
|
//Making a medibot!
|
||||||
if(src.contents.len >= 1)
|
if(src.contents.len >= 1)
|
||||||
to_chat(user, "<span class='notice'>You need to empty [src] out first.</span>")
|
to_chat(user, "<span class='notice'>You need to empty [src] out first.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
var/obj/item/weapon/firstaid_arm_assembly/A = new /obj/item/weapon/firstaid_arm_assembly
|
var/obj/item/weapon/firstaid_arm_assembly/A = new /obj/item/weapon/firstaid_arm_assembly
|
||||||
@@ -573,7 +573,7 @@
|
|||||||
qdel(S)
|
qdel(S)
|
||||||
S = null
|
S = null
|
||||||
user.put_in_hands(A)
|
user.put_in_hands(A)
|
||||||
to_chat(user, "<span class='notice'>You add the robot arm to the first aid kit.</span>")
|
to_chat(user, "<span class='notice'>You add the robot arm to the first aid kit.</span>")
|
||||||
user.drop_from_inventory(src)
|
user.drop_from_inventory(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
@@ -591,10 +591,11 @@
|
|||||||
switch(build_step)
|
switch(build_step)
|
||||||
if(0)
|
if(0)
|
||||||
if(istype(W, /obj/item/device/healthanalyzer))
|
if(istype(W, /obj/item/device/healthanalyzer))
|
||||||
|
<<<<<<< 636687c2a83b23b7efc3a052c68c16a6ced66ca8
|
||||||
user.drop_item(W)
|
user.drop_item(W)
|
||||||
qdel(W)
|
qdel(W)
|
||||||
src.build_step++
|
src.build_step++
|
||||||
to_chat(user, "<span class='notice'>You add the health sensor to [src].</span>")
|
to_chat(user, "<span class='notice'>You add the health sensor to [src].</span>")
|
||||||
src.name = "First aid/robot arm/health analyzer assembly"
|
src.name = "First aid/robot arm/health analyzer assembly"
|
||||||
src.overlays += image('icons/obj/aibots.dmi', "na_scanner")
|
src.overlays += image('icons/obj/aibots.dmi', "na_scanner")
|
||||||
|
|
||||||
@@ -603,13 +604,34 @@
|
|||||||
user.drop_item(W)
|
user.drop_item(W)
|
||||||
qdel(W)
|
qdel(W)
|
||||||
src.build_step++
|
src.build_step++
|
||||||
to_chat(user, "<span class='notice'>You complete the Medibot! Beep boop.</span>")
|
to_chat(user, "<span class='notice'>You complete the Medibot! Beep boop.</span>")
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
var/obj/machinery/bot/medbot/S = new /obj/machinery/bot/medbot(T)
|
var/obj/machinery/bot/medbot/S = new /obj/machinery/bot/medbot(T)
|
||||||
S.skin = src.skin
|
S.skin = src.skin
|
||||||
S.name = src.created_name
|
S.name = src.created_name
|
||||||
user.drop_from_inventory(src)
|
user.drop_from_inventory(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
=======
|
||||||
|
if(user.drop_item(W))
|
||||||
|
qdel(W)
|
||||||
|
src.build_step++
|
||||||
|
user << "<span class='notice'>You add the health sensor to [src].</span>"
|
||||||
|
src.name = "First aid/robot arm/health analyzer assembly"
|
||||||
|
src.overlays += image('icons/obj/aibots.dmi', "na_scanner")
|
||||||
|
|
||||||
|
if(1)
|
||||||
|
if(isprox(W))
|
||||||
|
if(user.drop_item(W))
|
||||||
|
qdel(W)
|
||||||
|
src.build_step++
|
||||||
|
user << "<span class='notice'>You complete the Medibot! Beep boop.</span>"
|
||||||
|
var/turf/T = get_turf(src)
|
||||||
|
var/obj/machinery/bot/medbot/S = new /obj/machinery/bot/medbot(T)
|
||||||
|
S.skin = src.skin
|
||||||
|
S.name = src.created_name
|
||||||
|
user.drop_from_inventory(src)
|
||||||
|
del(src)
|
||||||
|
>>>>>>> adds clown glue
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/bot/medbot/declare()
|
/obj/machinery/bot/medbot/declare()
|
||||||
|
|||||||
@@ -122,9 +122,9 @@ var/global/mulebot_count = 0
|
|||||||
|
|
||||||
else if(istype(I,/obj/item/weapon/cell) && open && !cell)
|
else if(istype(I,/obj/item/weapon/cell) && open && !cell)
|
||||||
var/obj/item/weapon/cell/C = I
|
var/obj/item/weapon/cell/C = I
|
||||||
user.drop_item(C, src)
|
if(user.drop_item(C, src))
|
||||||
cell = C
|
cell = C
|
||||||
updateDialog()
|
updateDialog()
|
||||||
else if(istype(I,/obj/item/weapon/wirecutters)||istype(I,/obj/item/device/multitool))
|
else if(istype(I,/obj/item/weapon/wirecutters)||istype(I,/obj/item/device/multitool))
|
||||||
attack_hand(user)
|
attack_hand(user)
|
||||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
@@ -304,12 +304,12 @@ var/global/mulebot_count = 0
|
|||||||
if(open && !cell)
|
if(open && !cell)
|
||||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||||
if(istype(C))
|
if(istype(C))
|
||||||
usr.drop_item(C, src)
|
if(usr.drop_item(C, src))
|
||||||
cell = C
|
cell = C
|
||||||
C.add_fingerprint(usr)
|
C.add_fingerprint(usr)
|
||||||
|
|
||||||
usr.visible_message("<span class='notice'>[usr] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
|
usr.visible_message("<span class='notice'>[usr] inserts a power cell into [src].</span>", "<span class='notice'>You insert the power cell into [src].</span>")
|
||||||
updateDialog()
|
updateDialog()
|
||||||
|
|
||||||
|
|
||||||
if("stop")
|
if("stop")
|
||||||
|
|||||||
@@ -189,14 +189,14 @@ Auto Patrol: []"},
|
|||||||
if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
||||||
if(src.allowed(user) && !open && !emagged)
|
if(src.allowed(user) && !open && !emagged)
|
||||||
src.locked = !src.locked
|
src.locked = !src.locked
|
||||||
to_chat(user, "Controls are now [src.locked ? "locked." : "unlocked."]")
|
to_chat(user, "Controls are now [src.locked ? "locked." : "unlocked."]")
|
||||||
else
|
else
|
||||||
if(emagged)
|
if(emagged)
|
||||||
to_chat(user, "<span class='warning'>ERROR</span>")
|
to_chat(user, "<span class='warning'>ERROR</span>")
|
||||||
if(open)
|
if(open)
|
||||||
to_chat(user, "<span class='warning'>Please close the access panel before locking it.</span>")
|
to_chat(user, "<span class='warning'>Please close the access panel before locking it.</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") // Any intent but harm will heal, so we shouldn't get angry.
|
if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent != "harm") // Any intent but harm will heal, so we shouldn't get angry.
|
||||||
@@ -211,7 +211,7 @@ Auto Patrol: []"},
|
|||||||
/obj/machinery/bot/secbot/Emag(mob/user as mob)
|
/obj/machinery/bot/secbot/Emag(mob/user as mob)
|
||||||
..()
|
..()
|
||||||
if(open && !locked)
|
if(open && !locked)
|
||||||
if(user) to_chat(user, "<span class='warning'>You short out [src]'s target assessment circuits.</span>")
|
if(user) to_chat(user, "<span class='warning'>You short out [src]'s target assessment circuits.</span>")
|
||||||
spawn(0)
|
spawn(0)
|
||||||
for(var/mob/O in hearers(src, null))
|
for(var/mob/O in hearers(src, null))
|
||||||
O.show_message("<span class='danger'>[src] buzzes oddly!</span>", 1)
|
O.show_message("<span class='danger'>[src] buzzes oddly!</span>", 1)
|
||||||
@@ -244,7 +244,7 @@ Auto Patrol: []"},
|
|||||||
// if can't reach perp for long enough, go idle
|
// if can't reach perp for long enough, go idle
|
||||||
if(src.frustration >= 8)
|
if(src.frustration >= 8)
|
||||||
// for(var/mob/O in hearers(src, null))
|
// for(var/mob/O in hearers(src, null))
|
||||||
// to_chat(O, "<span class='game say'><span class='name'>[src]</span> beeps, \"Backup requested! Suspect has evaded arrest.\"")
|
// to_chat(O, "<span class='game say'><span class='name'>[src]</span> beeps, \"Backup requested! Suspect has evaded arrest.\"")
|
||||||
src.target = null
|
src.target = null
|
||||||
src.last_found = world.time
|
src.last_found = world.time
|
||||||
src.frustration = 0
|
src.frustration = 0
|
||||||
@@ -519,9 +519,9 @@ Auto Patrol: []"},
|
|||||||
return
|
return
|
||||||
|
|
||||||
/*
|
/*
|
||||||
to_chat(world, "rec signal: [signal.source]")
|
to_chat(world, "rec signal: [signal.source]")
|
||||||
for(var/x in signal.data)
|
for(var/x in signal.data)
|
||||||
to_chat(world, "* [x] = [signal.data[x]]")
|
to_chat(world, "* [x] = [signal.data[x]]")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var/recv = signal.data["command"]
|
var/recv = signal.data["command"]
|
||||||
@@ -605,7 +605,7 @@ Auto Patrol: []"},
|
|||||||
//for(var/key in keyval)
|
//for(var/key in keyval)
|
||||||
// signal.data[key] = keyval[key]
|
// signal.data[key] = keyval[key]
|
||||||
signal.data = keyval
|
signal.data = keyval
|
||||||
// to_chat(world, "sent [key],[keyval[key]] on [freq]")
|
// to_chat(world, "sent [key],[keyval[key]] on [freq]")
|
||||||
if(signal.data["findbeacon"])
|
if(signal.data["findbeacon"])
|
||||||
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
|
||||||
else if(signal.data["type"] == "secbot")
|
else if(signal.data["type"] == "secbot")
|
||||||
@@ -807,7 +807,7 @@ Auto Patrol: []"},
|
|||||||
qdel(S)
|
qdel(S)
|
||||||
var/obj/item/weapon/secbot_assembly/A = new /obj/item/weapon/secbot_assembly
|
var/obj/item/weapon/secbot_assembly/A = new /obj/item/weapon/secbot_assembly
|
||||||
user.put_in_hands(A)
|
user.put_in_hands(A)
|
||||||
to_chat(user, "You add the signaler to the helmet.")
|
to_chat(user, "You add the signaler to the helmet.")
|
||||||
user.drop_from_inventory(src)
|
user.drop_from_inventory(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
@@ -820,33 +820,33 @@ Auto Patrol: []"},
|
|||||||
if(WT.remove_fuel(0,user))
|
if(WT.remove_fuel(0,user))
|
||||||
src.build_step++
|
src.build_step++
|
||||||
src.overlays += image('icons/obj/aibots.dmi', "hs_hole")
|
src.overlays += image('icons/obj/aibots.dmi', "hs_hole")
|
||||||
to_chat(user, "You weld a hole in [src]!")
|
to_chat(user, "You weld a hole in [src]!")
|
||||||
|
|
||||||
else if(isprox(W) && (src.build_step == 1))
|
else if(isprox(W) && (src.build_step == 1))
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
src.build_step++
|
src.build_step++
|
||||||
to_chat(user, "You add the prox sensor to [src]!")
|
to_chat(user, "You add the prox sensor to [src]!")
|
||||||
src.overlays += image('icons/obj/aibots.dmi', "hs_eye")
|
src.overlays += image('icons/obj/aibots.dmi', "hs_eye")
|
||||||
src.name = "helmet/signaler/prox sensor assembly"
|
src.name = "helmet/signaler/prox sensor assembly"
|
||||||
qdel(W)
|
qdel(W)
|
||||||
|
|
||||||
else if(((istype(W, /obj/item/robot_parts/l_arm)) || (istype(W, /obj/item/robot_parts/r_arm))) && (src.build_step == 2))
|
else if(((istype(W, /obj/item/robot_parts/l_arm)) || (istype(W, /obj/item/robot_parts/r_arm))) && (src.build_step == 2))
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
src.build_step++
|
src.build_step++
|
||||||
to_chat(user, "You add the robot arm to [src]!")
|
to_chat(user, "You add the robot arm to [src]!")
|
||||||
src.name = "helmet/signaler/prox sensor/robot arm assembly"
|
src.name = "helmet/signaler/prox sensor/robot arm assembly"
|
||||||
src.overlays += image('icons/obj/aibots.dmi', "hs_arm")
|
src.overlays += image('icons/obj/aibots.dmi', "hs_arm")
|
||||||
qdel(W)
|
qdel(W)
|
||||||
|
|
||||||
else if((istype(W, /obj/item/weapon/melee/baton)) && (src.build_step >= 3))
|
else if((istype(W, /obj/item/weapon/melee/baton)) && (src.build_step >= 3))
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
src.build_step++
|
src.build_step++
|
||||||
to_chat(user, "You complete the Securitron! Beep boop.")
|
to_chat(user, "You complete the Securitron! Beep boop.")
|
||||||
var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot
|
var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot
|
||||||
S.loc = get_turf(src)
|
S.loc = get_turf(src)
|
||||||
S.name = src.created_name
|
S.name = src.created_name
|
||||||
qdel(W)
|
qdel(W)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/pen))
|
else if(istype(W, /obj/item/weapon/pen))
|
||||||
var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN)
|
var/t = copytext(stripped_input(user, "Enter new robot name", src.name, src.created_name),1,MAX_NAME_LEN)
|
||||||
|
|||||||
@@ -17,21 +17,21 @@
|
|||||||
return ..()
|
return ..()
|
||||||
if (is_type_in_list(O, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
if (is_type_in_list(O, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
||||||
if(emagged == 1)
|
if(emagged == 1)
|
||||||
user.drop_item(O, src)
|
if(user.drop_item(O, src))
|
||||||
user.visible_message("<span class='notice'>[user] puts a coin into [src] and turns the knob.", "You put a coin into [src] and turn the knob.</span>")
|
user.visible_message("<span class='notice'>[user] puts a coin into [src] and turns the knob.", "You put a coin into [src] and turn the knob.</span>")
|
||||||
src.visible_message("<span class='notice'>[src] rattles ominously!</span>")
|
src.visible_message("<span class='notice'>[src] rattles ominously!</span>")
|
||||||
sleep(rand(10,15))
|
sleep(rand(10,15))
|
||||||
src.visible_message("<span class='notice'>[src] dispenses a strange sweet!</span>")
|
src.visible_message("<span class='notice'>[src] dispenses a strange sweet!</span>")
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/sweet/strange(src.loc)
|
new /obj/item/weapon/reagent_containers/food/snacks/sweet/strange(src.loc)
|
||||||
qdel(O)
|
qdel(O)
|
||||||
else
|
else
|
||||||
user.drop_item(O, src)
|
if(user.drop_item(O, src))
|
||||||
user.visible_message("<span class='notice'>[user] puts a coin into [src] and turns the knob.", "<span class='notice'>You put a coin into [src] and turn the knob.</span>")
|
user.visible_message("<span class='notice'>[user] puts a coin into [src] and turns the knob.", "<span class='notice'>You put a coin into [src] and turn the knob.</span>")
|
||||||
src.visible_message("<span class='notice'>[src] clicks softly.</span>")
|
src.visible_message("<span class='notice'>[src] clicks softly.</span>")
|
||||||
sleep(rand(10,15))
|
sleep(rand(10,15))
|
||||||
src.visible_message("<span class='notice'>[src] dispenses a sweet!</span>")
|
src.visible_message("<span class='notice'>[src] dispenses a sweet!</span>")
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/sweet(src.loc)
|
new /obj/item/weapon/reagent_containers/food/snacks/sweet(src.loc)
|
||||||
qdel(O)
|
qdel(O)
|
||||||
else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/customizable/candy/coin))
|
else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/customizable/candy/coin))
|
||||||
to_chat(user, "<span class='rose'>That coin is smudgy and oddly soft, you don't think that would work.</span>")
|
to_chat(user, "<span class='rose'>That coin is smudgy and oddly soft, you don't think that would work.</span>")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -79,10 +79,10 @@
|
|||||||
to_chat(user, "<span class='warning'>[src] blinks red as you try to insert the cell!</span>")
|
to_chat(user, "<span class='warning'>[src] blinks red as you try to insert the cell!</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
charging = W
|
charging = W
|
||||||
user.visible_message("<span class='notice'>[user] inserts a cell into [src].</span>", "<span class='notice'>You insert a cell into [src].</span>")
|
user.visible_message("<span class='notice'>[user] inserts a cell into [src].</span>", "<span class='notice'>You insert a cell into [src].</span>")
|
||||||
chargelevel = -1
|
chargelevel = -1
|
||||||
updateicon()
|
updateicon()
|
||||||
|
|
||||||
/obj/machinery/cell_charger/emag(mob/user)
|
/obj/machinery/cell_charger/emag(mob/user)
|
||||||
|
|||||||
@@ -516,9 +516,9 @@
|
|||||||
qdel(W)
|
qdel(W)
|
||||||
return
|
return
|
||||||
else if (istype(W, /obj/item) && get_dist(src,user)<2)
|
else if (istype(W, /obj/item) && get_dist(src,user)<2)
|
||||||
user.drop_item(W, src.loc)
|
if(user.drop_item(W, src.loc))
|
||||||
visible_message("<span class='notice'>[user] dunks [W] into the [src]!</span>", 3)
|
visible_message("<span class='notice'>[user] dunks [W] into the [src]!</span>", 3)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0)
|
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0)
|
||||||
if(istype(mover,/obj/item) && mover.throwing)
|
if(istype(mover,/obj/item) && mover.throwing)
|
||||||
|
|||||||
@@ -41,11 +41,11 @@
|
|||||||
anchored = 0
|
anchored = 0
|
||||||
state = 0
|
state = 0
|
||||||
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
|
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
|
||||||
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
if(user.drop_item(P, src))
|
||||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
icon_state = "1"
|
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||||
circuit = P
|
icon_state = "1"
|
||||||
user.drop_item(P, src)
|
circuit = P
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
|
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
|
||||||
@@ -135,6 +135,10 @@
|
|||||||
to_chat(user, "<span class='warning'>This [P] does not seem to fit.</span>")
|
to_chat(user, "<span class='warning'>This [P] does not seem to fit.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(!user.drop_item(P, src))
|
||||||
|
user << "<span class='warning'>You can't let go of \the [P]!</span>"
|
||||||
|
return
|
||||||
|
|
||||||
if(P:brainmob.mind)
|
if(P:brainmob.mind)
|
||||||
ticker.mode.remove_cultist(P:brainmob.mind, 1)
|
ticker.mode.remove_cultist(P:brainmob.mind, 1)
|
||||||
ticker.mode.remove_revolutionary(P:brainmob.mind, 1)
|
ticker.mode.remove_revolutionary(P:brainmob.mind, 1)
|
||||||
|
|||||||
@@ -341,11 +341,12 @@
|
|||||||
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
||||||
var/obj/item/weapon/circuitboard/B = P
|
var/obj/item/weapon/circuitboard/B = P
|
||||||
if(B.board_type == "computer")
|
if(B.board_type == "computer")
|
||||||
|
if(!user.drop_item(B, src)) return
|
||||||
|
|
||||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||||
src.icon_state = "1"
|
src.icon_state = "1"
|
||||||
src.circuit = P
|
src.circuit = P
|
||||||
user.drop_item(B, src)
|
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>This frame does not accept circuit boards of this type!</span>")
|
to_chat(user, "<span class='warning'>This frame does not accept circuit boards of this type!</span>")
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -105,14 +105,14 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
if(!is_centcom() && !scan && (access_change_ids in id_card.access))
|
if(!is_centcom() && !scan && (access_change_ids in id_card.access))
|
||||||
user.drop_item(id_card, src)
|
if(user.drop_item(id_card, src))
|
||||||
scan = id_card
|
scan = id_card
|
||||||
else if(is_centcom() && !scan && ((access_cent_creed in id_card.access) || (access_cent_captain in id_card.access)))
|
else if(is_centcom() && !scan && ((access_cent_creed in id_card.access) || (access_cent_captain in id_card.access)))
|
||||||
user.drop_item(id_card, src)
|
if(user.drop_item(id_card, src))
|
||||||
scan = id_card
|
scan = id_card
|
||||||
else if(!modify)
|
else if(!modify)
|
||||||
user.drop_item(id_card, src)
|
if(user.drop_item(id_card, src))
|
||||||
modify = id_card
|
modify = id_card
|
||||||
|
|
||||||
nanomanager.update_uis(src)
|
nanomanager.update_uis(src)
|
||||||
attack_hand(user)
|
attack_hand(user)
|
||||||
@@ -215,8 +215,8 @@
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
modify = I
|
modify = I
|
||||||
|
|
||||||
if ("scan")
|
if ("scan")
|
||||||
if (scan)
|
if (scan)
|
||||||
@@ -231,8 +231,8 @@
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
scan = I
|
scan = I
|
||||||
|
|
||||||
if("access")
|
if("access")
|
||||||
if(href_list["allowed"])
|
if(href_list["allowed"])
|
||||||
|
|||||||
@@ -160,8 +160,8 @@
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
src.scan = I
|
src.scan = I
|
||||||
else if (href_list["logout"])
|
else if (href_list["logout"])
|
||||||
src.authenticated = null
|
src.authenticated = null
|
||||||
src.screen = null
|
src.screen = null
|
||||||
|
|||||||
@@ -54,9 +54,9 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
if(!pda_device)
|
if(!pda_device)
|
||||||
user.drop_item(user_pda, src)
|
if(user.drop_item(user_pda, src))
|
||||||
pda_device = user_pda
|
pda_device = user_pda
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
nanomanager.update_uis(src)
|
nanomanager.update_uis(src)
|
||||||
attack_hand(user)
|
attack_hand(user)
|
||||||
@@ -119,8 +119,8 @@
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/device/pda))
|
if (istype(I, /obj/item/device/pda))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
pda_device = I
|
pda_device = I
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
if ("purchase")
|
if ("purchase")
|
||||||
|
|||||||
@@ -26,9 +26,9 @@
|
|||||||
|
|
||||||
/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob)
|
/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob)
|
||||||
if(istype(O, /obj/item/weapon/card/id) && !scan)
|
if(istype(O, /obj/item/weapon/card/id) && !scan)
|
||||||
usr.drop_item(O, src)
|
if(usr.drop_item(O, src))
|
||||||
scan = O
|
scan = O
|
||||||
to_chat(user, "You insert [O].")
|
to_chat(user, "You insert \the [O].")
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/machinery/computer/secure_data/attack_ai(mob/user as mob)
|
/obj/machinery/computer/secure_data/attack_ai(mob/user as mob)
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
if (src.z > 6)
|
if (src.z > 6)
|
||||||
to_chat(user, "<span class='danger'>Unable to establish a connection: </span>You're too far away from the station!")
|
to_chat(user, "<span class='danger'>Unable to establish a connection: </span>You're too far away from the station!")
|
||||||
return
|
return
|
||||||
var/dat
|
var/dat
|
||||||
|
|
||||||
@@ -239,8 +239,8 @@ What a mess.*/
|
|||||||
else
|
else
|
||||||
var/obj/item/I = usr.get_active_hand()
|
var/obj/item/I = usr.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
usr.drop_item(I, src)
|
if(usr.drop_item(I, src))
|
||||||
scan = I
|
scan = I
|
||||||
|
|
||||||
if("Log Out")
|
if("Log Out")
|
||||||
authenticated = null
|
authenticated = null
|
||||||
|
|||||||
@@ -314,11 +314,11 @@
|
|||||||
var/obj/item/weapon/spacecash/S = I
|
var/obj/item/weapon/spacecash/S = I
|
||||||
var/money_add = S.amount * S.worth
|
var/money_add = S.amount * S.worth
|
||||||
|
|
||||||
user.drop_item(I)
|
if(user.drop_item(I))
|
||||||
qdel(I)
|
qdel(I)
|
||||||
|
|
||||||
src.stored_money += money_add
|
src.stored_money += money_add
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
|
|
||||||
/obj/machinery/computer/slot_machine/proc/can_play() //If no money in OUR account, return 0
|
/obj/machinery/computer/slot_machine/proc/can_play() //If no money in OUR account, return 0
|
||||||
if(!our_money_account)
|
if(!our_money_account)
|
||||||
|
|||||||
@@ -79,10 +79,13 @@
|
|||||||
if(istype(P, /obj/item/weapon/circuitboard))
|
if(istype(P, /obj/item/weapon/circuitboard))
|
||||||
var/obj/item/weapon/circuitboard/B = P
|
var/obj/item/weapon/circuitboard/B = P
|
||||||
if(B.board_type == "machine")
|
if(B.board_type == "machine")
|
||||||
|
if(!user.drop_item(B, src))
|
||||||
|
user << "<span class='warning'>You can't let go of \the [B]!</span>"
|
||||||
|
return
|
||||||
|
|
||||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
to_chat(user, "<span class='notice'>You add the circuit board to the frame.</span>")
|
to_chat(user, "<span class='notice'>You add the circuit board to the frame.</span>")
|
||||||
circuit = P
|
circuit = P
|
||||||
user.drop_item(B, src)
|
|
||||||
set_build_state(3)
|
set_build_state(3)
|
||||||
components = list()
|
components = list()
|
||||||
req_components = circuit.req_components.Copy()
|
req_components = circuit.req_components.Copy()
|
||||||
@@ -200,11 +203,11 @@
|
|||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>You do not have enough [P]!</span>")
|
to_chat(user, "<span class='warning'>You do not have enough [P]!</span>")
|
||||||
|
|
||||||
user.drop_item(P, src)
|
if(user.drop_item(P, src))
|
||||||
components += P
|
components += P
|
||||||
req_components[I]--
|
req_components[I]--
|
||||||
update_desc()
|
update_desc()
|
||||||
break
|
break
|
||||||
to_chat(user, desc)
|
to_chat(user, desc)
|
||||||
|
|
||||||
if(P && P.loc != src && !istype(P, /obj/item/stack/cable_coil))
|
if(P && P.loc != src && !istype(P, /obj/item/stack/cable_coil))
|
||||||
|
|||||||
@@ -312,9 +312,9 @@ var/global/list/cryo_health_indicator = list( "full" = image("icon" = 'icons/obj
|
|||||||
if(beaker)
|
if(beaker)
|
||||||
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
|
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
|
||||||
return
|
return
|
||||||
beaker = G
|
if(user.drop_item(G, src))
|
||||||
user.drop_item(G, src)
|
beaker = G
|
||||||
user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!")
|
user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!")
|
||||||
if(istype(G, /obj/item/weapon/wrench))//FUCK YOU PARENT, YOU AREN'T MY REAL DAD
|
if(istype(G, /obj/item/weapon/wrench))//FUCK YOU PARENT, YOU AREN'T MY REAL DAD
|
||||||
return
|
return
|
||||||
if(..())
|
if(..())
|
||||||
|
|||||||
@@ -107,7 +107,9 @@ obj/machinery/recharger/defibcharger/wallcharger/attackby(obj/item/weapon/G as o
|
|||||||
if(a.power_equip == 0)
|
if(a.power_equip == 0)
|
||||||
to_chat(user, "<span class='warning'>[src] blinks red as you try to insert [D]!</span>")
|
to_chat(user, "<span class='warning'>[src] blinks red as you try to insert [D]!</span>")
|
||||||
return
|
return
|
||||||
user.drop_item(G, src)
|
if(user.drop_item(G, src))
|
||||||
charging = G
|
charging = G
|
||||||
use_power = 2
|
use_power = 2
|
||||||
update_icon()
|
update_icon()
|
||||||
|
else
|
||||||
|
user << "<span class='warning'>You can't let go of \the [G]!</span>"
|
||||||
|
|||||||
@@ -38,9 +38,9 @@
|
|||||||
switch(build)
|
switch(build)
|
||||||
if(0) // Empty hull
|
if(0) // Empty hull
|
||||||
if(istype(W, /obj/item/weapon/screwdriver))
|
if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
to_chat(usr, "You begin removing screws from \the [src] backplate...")
|
to_chat(usr, "You begin removing screws from \the [src] backplate...")
|
||||||
if(do_after(user, src, 50))
|
if(do_after(user, src, 50))
|
||||||
to_chat(usr, "<span class='notice'>You unscrew \the [src] from the wall.</span>")
|
to_chat(usr, "<span class='notice'>You unscrew \the [src] from the wall.</span>")
|
||||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
new /obj/item/mounted/frame/airlock_controller(get_turf(src))
|
new /obj/item/mounted/frame/airlock_controller(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -48,20 +48,20 @@
|
|||||||
if(istype(W, /obj/item/weapon/circuitboard))
|
if(istype(W, /obj/item/weapon/circuitboard))
|
||||||
var/obj/item/weapon/circuitboard/C=W
|
var/obj/item/weapon/circuitboard/C=W
|
||||||
if(C.board_type!="embedded controller")
|
if(C.board_type!="embedded controller")
|
||||||
to_chat(user, "<span class='warning'>You cannot install this type of board into an embedded controller.</span>")
|
to_chat(user, "<span class='warning'>You cannot install this type of board into an embedded controller.</span>")
|
||||||
return
|
return
|
||||||
to_chat(usr, "You begin to insert \the [C] into \the [src].")
|
to_chat(usr, "You begin to insert \the [C] into \the [src].")
|
||||||
if(do_after(user, src, 10))
|
if(do_after(user, src, 10))
|
||||||
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
if(user.drop_item(C, src))
|
||||||
user.drop_item(C, src)
|
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
||||||
_circuitboard=C
|
_circuitboard=C
|
||||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||||
build++
|
build++
|
||||||
update_icon()
|
update_icon()
|
||||||
return 1
|
return 1
|
||||||
if(1) // Circuitboard installed
|
if(1) // Circuitboard installed
|
||||||
if(istype(W, /obj/item/weapon/crowbar))
|
if(istype(W, /obj/item/weapon/crowbar))
|
||||||
to_chat(usr, "You begin to pry out \the [W] into \the [src].")
|
to_chat(usr, "You begin to pry out \the [W] into \the [src].")
|
||||||
if(do_after(user, src, 10))
|
if(do_after(user, src, 10))
|
||||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||||
build--
|
build--
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
return 1
|
return 1
|
||||||
if(istype(W, /obj/item/stack/cable_coil))
|
if(istype(W, /obj/item/stack/cable_coil))
|
||||||
var/obj/item/stack/cable_coil/C=W
|
var/obj/item/stack/cable_coil/C=W
|
||||||
to_chat(user, "You start adding cables to \the [src]...")
|
to_chat(user, "You start adding cables to \the [src]...")
|
||||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
if(do_after(user, src, 20) && C.amount >= 10)
|
if(do_after(user, src, 20) && C.amount >= 10)
|
||||||
C.use(5)
|
C.use(5)
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
"You add cables to \the [src].")
|
"You add cables to \the [src].")
|
||||||
if(2) // Circuitboard installed, wired.
|
if(2) // Circuitboard installed, wired.
|
||||||
if(istype(W, /obj/item/weapon/wirecutters))
|
if(istype(W, /obj/item/weapon/wirecutters))
|
||||||
to_chat(usr, "You begin to remove the wiring from \the [src].")
|
to_chat(usr, "You begin to remove the wiring from \the [src].")
|
||||||
if(do_after(user, src, 50))
|
if(do_after(user, src, 50))
|
||||||
new /obj/item/stack/cable_coil(loc,5)
|
new /obj/item/stack/cable_coil(loc,5)
|
||||||
user.visible_message(\
|
user.visible_message(\
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
return 1
|
return 1
|
||||||
if(istype(W, /obj/item/weapon/screwdriver))
|
if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
to_chat(user, "You begin to complete \the [src]...")
|
to_chat(user, "You begin to complete \the [src]...")
|
||||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
if(do_after(user, src, 20))
|
if(do_after(user, src, 20))
|
||||||
if(!_circuitboard)
|
if(!_circuitboard)
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
|
|
||||||
/obj/machinery/embedded_controller/attack_hand(mob/user as mob)
|
/obj/machinery/embedded_controller/attack_hand(mob/user as mob)
|
||||||
if(!user.dexterity_check())
|
if(!user.dexterity_check())
|
||||||
to_chat(user, "You do not have the dexterity to use this.")
|
to_chat(user, "You do not have the dexterity to use this.")
|
||||||
return
|
return
|
||||||
if(build<2) return 1
|
if(build<2) return 1
|
||||||
src.ui_interact(user)
|
src.ui_interact(user)
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
var/re_init=0
|
var/re_init=0
|
||||||
if("set_tag" in href_list)
|
if("set_tag" in href_list)
|
||||||
if(!(href_list["set_tag"] in vars))
|
if(!(href_list["set_tag"] in vars))
|
||||||
to_chat(usr, "<span class='warning'>Something went wrong: Unable to find [href_list["set_tag"]] in vars!</span>")
|
to_chat(usr, "<span class='warning'>Something went wrong: Unable to find [href_list["set_tag"]] in vars!</span>")
|
||||||
return 1
|
return 1
|
||||||
var/current_tag = src.vars[href_list["set_tag"]]
|
var/current_tag = src.vars[href_list["set_tag"]]
|
||||||
var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID tag", src, current_tag) as null|text),1,MAX_MESSAGE_LEN)
|
var/newid = copytext(reject_bad_text(input(usr, "Specify the new ID tag", src, current_tag) as null|text),1,MAX_MESSAGE_LEN)
|
||||||
@@ -239,13 +239,13 @@
|
|||||||
if(!O)
|
if(!O)
|
||||||
return 1
|
return 1
|
||||||
if(!canLink(O))
|
if(!canLink(O))
|
||||||
to_chat(usr, "<span class='warning'>You can't link with that device.</span>")
|
to_chat(usr, "<span class='warning'>You can't link with that device.</span>")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if(unlinkFrom(usr, O))
|
if(unlinkFrom(usr, O))
|
||||||
to_chat(usr, "<span class='confirm'>A green light flashes on \the [P], confirming the link was removed.</span>")
|
to_chat(usr, "<span class='confirm'>A green light flashes on \the [P], confirming the link was removed.</span>")
|
||||||
else
|
else
|
||||||
to_chat(usr, "<span class='attack'>A red light flashes on \the [P]. It appears something went wrong when unlinking the two devices.</span>")
|
to_chat(usr, "<span class='attack'>A red light flashes on \the [P]. It appears something went wrong when unlinking the two devices.</span>")
|
||||||
update_mt_menu=1
|
update_mt_menu=1
|
||||||
|
|
||||||
if("link" in href_list)
|
if("link" in href_list)
|
||||||
@@ -253,33 +253,33 @@
|
|||||||
if(!O)
|
if(!O)
|
||||||
return 1
|
return 1
|
||||||
if(!canLink(O,href_list))
|
if(!canLink(O,href_list))
|
||||||
to_chat(usr, "<span class='warning'>You can't link with that device.</span>")
|
to_chat(usr, "<span class='warning'>You can't link with that device.</span>")
|
||||||
return 1
|
return 1
|
||||||
if (isLinkedWith(O))
|
if (isLinkedWith(O))
|
||||||
to_chat(usr, "<span class='attack'>A red light flashes on \the [P]. The two devices are already linked.</span>")
|
to_chat(usr, "<span class='attack'>A red light flashes on \the [P]. The two devices are already linked.</span>")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if(linkWith(usr, O, href_list))
|
if(linkWith(usr, O, href_list))
|
||||||
to_chat(usr, "<span class='confirm'>A green light flashes on \the [P], confirming the link has been created.</span>")
|
to_chat(usr, "<span class='confirm'>A green light flashes on \the [P], confirming the link has been created.</span>")
|
||||||
re_init = 1//this is the only thing different, crappy, I know
|
re_init = 1//this is the only thing different, crappy, I know
|
||||||
else
|
else
|
||||||
to_chat(usr, "<span class='attack'>A red light flashes on \the [P]. It appears something went wrong when linking the two devices.</span>")
|
to_chat(usr, "<span class='attack'>A red light flashes on \the [P]. It appears something went wrong when linking the two devices.</span>")
|
||||||
update_mt_menu=1
|
update_mt_menu=1
|
||||||
|
|
||||||
if("buffer" in href_list)
|
if("buffer" in href_list)
|
||||||
if(istype(src, /obj/machinery/telecomms))
|
if(istype(src, /obj/machinery/telecomms))
|
||||||
if(!hasvar(src, "id"))
|
if(!hasvar(src, "id"))
|
||||||
to_chat(usr, "<span class='danger'>A red light flashes and nothing changes.</span>")
|
to_chat(usr, "<span class='danger'>A red light flashes and nothing changes.</span>")
|
||||||
return
|
return
|
||||||
else if(!hasvar(src, "id_tag"))
|
else if(!hasvar(src, "id_tag"))
|
||||||
to_chat(usr, "<span class='danger'>A red light flashes and nothing changes.</span>")
|
to_chat(usr, "<span class='danger'>A red light flashes and nothing changes.</span>")
|
||||||
return
|
return
|
||||||
P.buffer = src
|
P.buffer = src
|
||||||
to_chat(usr, "<span class='confirm'>A green light flashes, and the device appears in the multitool buffer.</span>")
|
to_chat(usr, "<span class='confirm'>A green light flashes, and the device appears in the multitool buffer.</span>")
|
||||||
update_mt_menu=1
|
update_mt_menu=1
|
||||||
|
|
||||||
if("flush" in href_list)
|
if("flush" in href_list)
|
||||||
to_chat(usr, "<span class='confirm'>A green light flashes, and the device disappears from the multitool buffer.</span>")
|
to_chat(usr, "<span class='confirm'>A green light flashes, and the device disappears from the multitool buffer.</span>")
|
||||||
P.buffer = null
|
P.buffer = null
|
||||||
update_mt_menu=1
|
update_mt_menu=1
|
||||||
|
|
||||||
|
|||||||
@@ -77,8 +77,8 @@
|
|||||||
to_chat(user, "<span class='warning'>There already is a power cell already installed.</span>")
|
to_chat(user, "<span class='warning'>There already is a power cell already installed.</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
cell = W
|
cell = W
|
||||||
user.visible_message("<span class='notice'>[user] inserts \the [src] into \the [src].</span>", \
|
user.visible_message("<span class='notice'>[user] inserts \the [src] into \the [src].</span>", \
|
||||||
"<span class='notice'>You insert \the [src] into \the [src].</span>")
|
"<span class='notice'>You insert \the [src] into \the [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
machine_flags = WRENCHMOVE | FIXED2WORK
|
machine_flags = WRENCHMOVE | FIXED2WORK
|
||||||
|
|
||||||
/obj/machinery/gashapon/attackby(var/obj/O as obj, var/mob/user as mob)
|
/obj/machinery/gashapon/attackby(var/obj/O as obj, var/mob/user as mob)
|
||||||
|
<<<<<<< 636687c2a83b23b7efc3a052c68c16a6ced66ca8
|
||||||
if (is_type_in_list(O, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
if (is_type_in_list(O, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
||||||
user.drop_item(O, src)
|
user.drop_item(O, src)
|
||||||
user.visible_message("<span class='notice'>[user] puts a coin into [src] and turns the knob.</span>", "<span class='notice'>You put a coin into [src] and turn the knob.</span>")
|
user.visible_message("<span class='notice'>[user] puts a coin into [src] and turns the knob.</span>", "<span class='notice'>You put a coin into [src] and turn the knob.</span>")
|
||||||
@@ -24,6 +25,17 @@
|
|||||||
else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/customizable/candy/coin))
|
else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/customizable/candy/coin))
|
||||||
to_chat(user, "<span class='rose'>That coin is smudgy and oddly soft, you don't think that would work.</span>")
|
to_chat(user, "<span class='rose'>That coin is smudgy and oddly soft, you don't think that would work.</span>")
|
||||||
return
|
return
|
||||||
|
=======
|
||||||
|
if (istype(O, /obj/item/weapon/coin/))
|
||||||
|
if(user.drop_item(O, src))
|
||||||
|
user.visible_message("[user] puts a coin into [src] and turns the knob.", "You put a coin into [src] and turn the knob.")
|
||||||
|
src.visible_message("[src] clicks softly.")
|
||||||
|
sleep(rand(10,15))
|
||||||
|
src.visible_message("[src] dispenses a capsule!")
|
||||||
|
var/obj/item/weapon/capsule/b = new(src.loc)
|
||||||
|
b.icon_state = "capsule[rand(1,12)]"
|
||||||
|
qdel(O)
|
||||||
|
>>>>>>> adds clown glue
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|||||||
@@ -75,11 +75,11 @@
|
|||||||
to_chat(user, "There is already a reagent container loaded!")
|
to_chat(user, "There is already a reagent container loaded!")
|
||||||
return
|
return
|
||||||
|
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.beaker = W
|
src.beaker = W
|
||||||
to_chat(user, "You attach \the [W] to \the [src].")
|
to_chat(user, "You attach \the [W] to \the [src].")
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@
|
|||||||
src.dirty = 0 // just to be sure
|
src.dirty = 0 // just to be sure
|
||||||
src.flags = OPENCONTAINER
|
src.flags = OPENCONTAINER
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>It's broken!</span>")
|
to_chat(user, "<span class='warning'>It's broken!</span>")
|
||||||
return 1
|
return 1
|
||||||
else if(src.dirty==100) // The microwave is all dirty so can't be used!
|
else if(src.dirty==100) // The microwave is all dirty so can't be used!
|
||||||
var/obj/item/weapon/reagent_containers/R = O
|
var/obj/item/weapon/reagent_containers/R = O
|
||||||
@@ -132,29 +132,29 @@
|
|||||||
src.flags = OPENCONTAINER
|
src.flags = OPENCONTAINER
|
||||||
return 1
|
return 1
|
||||||
else //Otherwise bad luck!!
|
else //Otherwise bad luck!!
|
||||||
to_chat(user, "<span class='warning'>It's too dirty!</span>")
|
to_chat(user, "<span class='warning'>It's too dirty!</span>")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if(..())
|
if(..())
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
if(holdingitems && holdingitems.len >= limit)
|
if(holdingitems && holdingitems.len >= limit)
|
||||||
to_chat(usr, "The machine cannot hold anymore items.")
|
to_chat(usr, "The machine cannot hold anymore items.")
|
||||||
return 1
|
return 1
|
||||||
else if(istype(O, /obj/item/weapon/storage/bag/plants) || istype(O, /obj/item/weapon/storage/bag/food/borg))
|
else if(istype(O, /obj/item/weapon/storage/bag/plants) || istype(O, /obj/item/weapon/storage/bag/food/borg))
|
||||||
var/obj/item/weapon/storage/bag/B = O
|
var/obj/item/weapon/storage/bag/B = O
|
||||||
for (var/obj/item/weapon/reagent_containers/food/snacks/G in O.contents)
|
for (var/obj/item/weapon/reagent_containers/food/snacks/G in O.contents)
|
||||||
B.remove_from_storage(G,src)
|
B.remove_from_storage(G,src)
|
||||||
if(contents && contents.len >= limit) //Sanity checking so the microwave doesn't overfill
|
if(contents && contents.len >= limit) //Sanity checking so the microwave doesn't overfill
|
||||||
to_chat(user, "You fill the Microwave to the brim.")
|
to_chat(user, "You fill the Microwave to the brim.")
|
||||||
break
|
break
|
||||||
|
|
||||||
if(!O.contents.len)
|
if(!O.contents.len)
|
||||||
to_chat(user, "You empty \the [O] into the Microwave.")
|
to_chat(user, "You empty \the [O] into the Microwave.")
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return 0
|
return 0
|
||||||
if (!is_type_in_list(O.contents))
|
if (!is_type_in_list(O.contents))
|
||||||
to_chat(user, "<span class='warning'>Your [O] contains components unsuitable for cookery.</span>")
|
to_chat(user, "<span class='warning'>Your [O] contains components unsuitable for cookery.</span>")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
user.before_take_item(O)
|
user.before_take_item(O)
|
||||||
@@ -171,24 +171,24 @@
|
|||||||
"<span class='notice'>You add one of [O] to \the [src].</span>")
|
"<span class='notice'>You add one of [O] to \the [src].</span>")
|
||||||
else
|
else
|
||||||
// user.before_take_item(O) //This just causes problems so far as I can tell. -Pete
|
// user.before_take_item(O) //This just causes problems so far as I can tell. -Pete
|
||||||
user.drop_item(O, src)
|
if(user.drop_item(O, src))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>[user] has added \the [O] to \the [src].</span>", \
|
"<span class='notice'>[user] has added \the [O] to \the [src].</span>", \
|
||||||
"<span class='notice'>You add \the [O] to \the [src].</span>")
|
"<span class='notice'>You add \the [O] to \the [src].</span>")
|
||||||
else if(is_type_in_list(O,accepts_reagents_from))
|
else if(is_type_in_list(O,accepts_reagents_from))
|
||||||
if (!O.reagents)
|
if (!O.reagents)
|
||||||
return 1
|
return 1
|
||||||
for (var/datum/reagent/R in O.reagents.reagent_list)
|
for (var/datum/reagent/R in O.reagents.reagent_list)
|
||||||
if (!(R.id in acceptable_reagents))
|
if (!(R.id in acceptable_reagents))
|
||||||
to_chat(user, "<span class='warning'>Your [O] contains components unsuitable for cookery.</span>")
|
to_chat(user, "<span class='warning'>Your [O] contains components unsuitable for cookery.</span>")
|
||||||
return 1
|
return 1
|
||||||
//G.reagents.trans_to(src,G.amount_per_transfer_from_this)
|
//G.reagents.trans_to(src,G.amount_per_transfer_from_this)
|
||||||
else if(istype(O,/obj/item/weapon/grab))
|
else if(istype(O,/obj/item/weapon/grab))
|
||||||
var/obj/item/weapon/grab/G = O
|
var/obj/item/weapon/grab/G = O
|
||||||
to_chat(user, "<span class='warning'>This is ridiculous. You can not fit \the [G.affecting] in this [src].</span>")
|
to_chat(user, "<span class='warning'>This is ridiculous. You can not fit \the [G.affecting] in this [src].</span>")
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>You have no idea what you can cook with this [O].</span>")
|
to_chat(user, "<span class='warning'>You have no idea what you can cook with this [O].</span>")
|
||||||
return 1
|
return 1
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@
|
|||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
interact(user)
|
interact(user)
|
||||||
return 1
|
return 1
|
||||||
to_chat(user, "<span class='warning'>You aren't equipped to interface with technology this old!</span>")
|
to_chat(user, "<span class='warning'>You aren't equipped to interface with technology this old!</span>")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/machinery/microwave/attack_hand(mob/user as mob)
|
/obj/machinery/microwave/attack_hand(mob/user as mob)
|
||||||
@@ -386,7 +386,7 @@
|
|||||||
if (src.reagents.total_volume)
|
if (src.reagents.total_volume)
|
||||||
src.dirty++
|
src.dirty++
|
||||||
src.reagents.clear_reagents()
|
src.reagents.clear_reagents()
|
||||||
to_chat(usr, "<span class='notice'>You dispose of the microwave contents.</span>")
|
to_chat(usr, "<span class='notice'>You dispose of the microwave contents.</span>")
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/muck_start()
|
/obj/machinery/microwave/proc/muck_start()
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
if(target.wear_mask || target.l_hand || target.r_hand || target.back || target.uniform || target.hat)
|
if(target.wear_mask || target.l_hand || target.r_hand || target.back || target.uniform || target.hat)
|
||||||
to_chat(user, "<span class='warning'>The monkey may not have abiotic items on.</span>")
|
to_chat(user, "<span class='warning'>The monkey may not have abiotic items on.</span>")
|
||||||
else
|
else
|
||||||
user.drop_item(G)
|
user.drop_item(G, force_drop = 1)
|
||||||
qdel(target)
|
qdel(target)
|
||||||
target = null
|
target = null
|
||||||
to_chat(user, "<span class='notice'>You stuff the monkey in the machine.")
|
to_chat(user, "<span class='notice'>You stuff the monkey in the machine.")
|
||||||
|
|||||||
@@ -127,14 +127,14 @@
|
|||||||
to_chat(user, "<span class='warning'>\The [src] doesn't have enough metal to complete this task.</span>")
|
to_chat(user, "<span class='warning'>\The [src] doesn't have enough metal to complete this task.</span>")
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
building=1
|
if(user.drop_item(O, src))
|
||||||
update_icon()
|
building=1
|
||||||
user.drop_item(O, src)
|
update_icon()
|
||||||
mmi.icon = null
|
mmi.icon = null
|
||||||
mmi.invisibility = 101
|
mmi.invisibility = 101
|
||||||
spawn(50)
|
spawn(50)
|
||||||
makeMoMMI(mmi.brainmob)
|
makeMoMMI(mmi.brainmob)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
/obj/machinery/mommi_spawner/proc/makeMoMMI(var/mob/user)
|
/obj/machinery/mommi_spawner/proc/makeMoMMI(var/mob/user)
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
|
|||||||
@@ -1048,8 +1048,8 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
|||||||
if(photo)
|
if(photo)
|
||||||
return EjectPhoto(user)
|
return EjectPhoto(user)
|
||||||
if(istype(user.get_active_hand(), /obj/item/weapon/photo))
|
if(istype(user.get_active_hand(), /obj/item/weapon/photo))
|
||||||
photo = user.get_active_hand()
|
if(user.drop_item(photo, src))
|
||||||
user.drop_item(photo, src)
|
photo = user.get_active_hand()
|
||||||
|
|
||||||
/obj/machinery/newscaster/proc/EjectPhoto(mob/user as mob)
|
/obj/machinery/newscaster/proc/EjectPhoto(mob/user as mob)
|
||||||
if(!photo) return
|
if(!photo) return
|
||||||
|
|||||||
@@ -91,10 +91,10 @@ Feel free to do whatever with this if you think it lacks.
|
|||||||
else
|
else
|
||||||
var/obj/item/device/pda/P = O
|
var/obj/item/device/pda/P = O
|
||||||
if(istype(P))
|
if(istype(P))
|
||||||
user.drop_item(P, src)
|
if(user.drop_item(P, src))
|
||||||
storedpda = P
|
storedpda = P
|
||||||
//P.add_fingerprint(usr)
|
//P.add_fingerprint(usr)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/machinery/pdapainter/attack_hand(mob/user as mob)
|
/obj/machinery/pdapainter/attack_hand(mob/user as mob)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -56,12 +56,15 @@
|
|||||||
if (istype(G, /obj/item/weapon/gun/energy/staff))
|
if (istype(G, /obj/item/weapon/gun/energy/staff))
|
||||||
to_chat(user, "<span class='notice'>The recharger rejects the magical apparatus.</span>")
|
to_chat(user, "<span class='notice'>The recharger rejects the magical apparatus.</span>")
|
||||||
return
|
return
|
||||||
|
if(!user.drop_item(G, src))
|
||||||
|
user << "<span class='warning'>You can't let go of \the [G]!</span>"
|
||||||
|
return
|
||||||
|
|
||||||
appearance_backup = G.appearance
|
appearance_backup = G.appearance
|
||||||
var/matrix/M = matrix()
|
var/matrix/M = matrix()
|
||||||
M.Scale(0.625)
|
M.Scale(0.625)
|
||||||
M.Translate(0,6)
|
M.Translate(0,6)
|
||||||
G.transform = M
|
G.transform = M
|
||||||
user.drop_item(G, src)
|
|
||||||
charging = G
|
charging = G
|
||||||
if(!self_powered)
|
if(!self_powered)
|
||||||
use_power = 2
|
use_power = 2
|
||||||
|
|||||||
@@ -105,10 +105,10 @@
|
|||||||
/obj/machinery/recharge_station/attackby(var/obj/item/W, var/mob/living/user)
|
/obj/machinery/recharge_station/attackby(var/obj/item/W, var/mob/living/user)
|
||||||
if(is_type_in_list(W, acceptable_upgradeables))
|
if(is_type_in_list(W, acceptable_upgradeables))
|
||||||
if(!(locate(W.type) in upgrade_holder))
|
if(!(locate(W.type) in upgrade_holder))
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
upgrade_holder.Add(W)
|
upgrade_holder.Add(W)
|
||||||
to_chat(user, "<span class='notice'>You add \the [W] to \the [src].</span>")
|
to_chat(user, "<span class='notice'>You add \the [W] to \the [src].</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>\The [src] already contains something resembling a [W.name].</span>")
|
to_chat(user, "<span class='notice'>\The [src] already contains something resembling a [W.name].</span>")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -594,11 +594,11 @@
|
|||||||
if(src.SUIT)
|
if(src.SUIT)
|
||||||
to_chat(user, "<font color='blue'>The unit already contains a suit.</font>")
|
to_chat(user, "<font color='blue'>The unit already contains a suit.</font>")
|
||||||
return
|
return
|
||||||
to_chat(user, "You load the [S.name] into the storage compartment.")
|
if(user.drop_item(S, src))
|
||||||
user.drop_item(S, src)
|
to_chat(user, "You load the [S.name] into the storage compartment.")
|
||||||
src.SUIT = S
|
src.SUIT = S
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
if( istype(I,/obj/item/clothing/head/helmet) )
|
if( istype(I,/obj/item/clothing/head/helmet) )
|
||||||
if(!src.isopen)
|
if(!src.isopen)
|
||||||
@@ -607,12 +607,12 @@
|
|||||||
if(src.HELMET)
|
if(src.HELMET)
|
||||||
to_chat(user, "<font color='blue'>The unit already contains a helmet.</font>")
|
to_chat(user, "<font color='blue'>The unit already contains a helmet.</font>")
|
||||||
return
|
return
|
||||||
to_chat(user, "You load the [H.name] into the storage compartment.")
|
if(user.drop_item(H, src))
|
||||||
user.drop_item(H, src)
|
to_chat(user, "You load the [H.name] into the storage compartment.")
|
||||||
src.HELMET = H
|
src.HELMET = H
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
if( istype(I,/obj/item/clothing/mask) )
|
if( istype(I,/obj/item/clothing/mask) )
|
||||||
if(!src.isopen)
|
if(!src.isopen)
|
||||||
return
|
return
|
||||||
@@ -620,11 +620,11 @@
|
|||||||
if(src.MASK)
|
if(src.MASK)
|
||||||
to_chat(user, "<font color='blue'>The unit already contains a mask.</font>")
|
to_chat(user, "<font color='blue'>The unit already contains a mask.</font>")
|
||||||
return
|
return
|
||||||
to_chat(user, "You load the [M.name] into the storage compartment.")
|
if(user.drop_item(M, src))
|
||||||
user.drop_item(M, src)
|
to_chat(user, "You load the [M.name] into the storage compartment.")
|
||||||
src.MASK = M
|
src.MASK = M
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
if( istype(I,/obj/item/clothing/shoes) )
|
if( istype(I,/obj/item/clothing/shoes) )
|
||||||
if(!src.isopen)
|
if(!src.isopen)
|
||||||
@@ -633,11 +633,11 @@
|
|||||||
if(src.BOOTS)
|
if(src.BOOTS)
|
||||||
to_chat(user, "<font color='blue'>The unit already contains shoes.</font>")
|
to_chat(user, "<font color='blue'>The unit already contains shoes.</font>")
|
||||||
return
|
return
|
||||||
to_chat(user, "You load \the [M.name] into the storage compartment.")
|
if(user.drop_item(M, src))
|
||||||
user.drop_item(M, src)
|
to_chat(user, "You load \the [M.name] into the storage compartment.")
|
||||||
src.BOOTS = M
|
src.BOOTS = M
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
return
|
return
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
to_chat(user, "You insert the cables.")
|
to_chat(user, "You insert the cables.")
|
||||||
A.amount -= 5
|
A.amount -= 5
|
||||||
if(A.amount <= 0)
|
if(A.amount <= 0)
|
||||||
user.drop_item(A)
|
user.drop_item(A, force_drop = 1)
|
||||||
returnToPool(A)
|
returnToPool(A)
|
||||||
construct_op --
|
construct_op --
|
||||||
stat &= ~BROKEN // the machine's not borked anymore!
|
stat &= ~BROKEN // the machine's not borked anymore!
|
||||||
|
|||||||
@@ -185,9 +185,9 @@
|
|||||||
var/obj/item/weapon/card/id/I = C.get_active_hand()
|
var/obj/item/weapon/card/id/I = C.get_active_hand()
|
||||||
if(istype(I))
|
if(istype(I))
|
||||||
if(check_access(I))
|
if(check_access(I))
|
||||||
C.drop_item(I, src)
|
if(C.drop_item(I, src))
|
||||||
auth = I
|
auth = I
|
||||||
create_log("has logged in.", usr)
|
create_log("has logged in.", usr)
|
||||||
else
|
else
|
||||||
create_log("has logged out.", usr)
|
create_log("has logged out.", usr)
|
||||||
auth.loc = src.loc
|
auth.loc = src.loc
|
||||||
|
|||||||
@@ -36,9 +36,12 @@
|
|||||||
|
|
||||||
|
|
||||||
if(istype(L, /obj/effect/landmark/) && istype(L.loc, /turf))
|
if(istype(L, /obj/effect/landmark/) && istype(L.loc, /turf))
|
||||||
|
if(!user.drop_item(I))
|
||||||
|
user << "<span class='warning'>You can't let go of \the [I]!</span>"
|
||||||
|
return
|
||||||
|
|
||||||
to_chat(usr, "You insert the coordinates into the machine.")
|
to_chat(usr, "You insert the coordinates into the machine.")
|
||||||
to_chat(usr, "A message flashes across the screen reminding the traveller that the nuclear authentication disk is to remain on the station at all times.")
|
to_chat(usr, "A message flashes across the screen reminding the traveller that the nuclear authentication disk is to remain on the station at all times.")
|
||||||
user.drop_item(I)
|
|
||||||
qdel(I)
|
qdel(I)
|
||||||
|
|
||||||
/* FUCK YOU
|
/* FUCK YOU
|
||||||
|
|||||||
@@ -364,10 +364,10 @@ var/global/num_vending_terminals = 1
|
|||||||
return
|
return
|
||||||
else if(premium.len > 0 && is_type_in_list(W, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
else if(premium.len > 0 && is_type_in_list(W, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
||||||
if (isnull(coin))
|
if (isnull(coin))
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
coin = W
|
coin = W
|
||||||
to_chat(user, "<span class='notice'>You insert a coin into [src].</span>")
|
to_chat(user, "<span class='notice'>You insert a coin into [src].</span>")
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
else
|
else
|
||||||
to_chat(user, "<SPAN CLASS='notice'>There's already a coin in [src].</SPAN>")
|
to_chat(user, "<SPAN CLASS='notice'>There's already a coin in [src].</SPAN>")
|
||||||
return
|
return
|
||||||
@@ -376,10 +376,10 @@ var/global/num_vending_terminals = 1
|
|||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/voucher))
|
else if(istype(W, /obj/item/voucher))
|
||||||
if(can_accept_voucher(W, user))
|
if(can_accept_voucher(W, user))
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
to_chat(user, "<span class='notice'>You insert [W] into [src].</span>")
|
to_chat(user, "<span class='notice'>You insert [W] into [src].</span>")
|
||||||
return voucher_act(W, user)
|
return voucher_act(W, user)
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>\The [src] refuses to take [W].</span>")
|
to_chat(user, "<span class='notice'>\The [src] refuses to take [W].</span>")
|
||||||
return 1
|
return 1
|
||||||
@@ -399,9 +399,9 @@ var/global/num_vending_terminals = 1
|
|||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
else
|
else
|
||||||
if(is_type_in_list(W, allowed_inputs))
|
if(is_type_in_list(W, allowed_inputs))
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
add_item(W)
|
add_item(W)
|
||||||
src.updateUsrDialog()
|
src.updateUsrDialog()
|
||||||
/*else if(istype(W, /obj/item/weapon/card) && currently_vending)
|
/*else if(istype(W, /obj/item/weapon/card) && currently_vending)
|
||||||
//attempt to connect to a new db, and if that doesn't work then fail
|
//attempt to connect to a new db, and if that doesn't work then fail
|
||||||
if(!linked_db)
|
if(!linked_db)
|
||||||
@@ -1346,12 +1346,12 @@ var/global/num_vending_terminals = 1
|
|||||||
return
|
return
|
||||||
to_chat(usr, "You begin to insert \the [C] into \the [src].")
|
to_chat(usr, "You begin to insert \the [C] into \the [src].")
|
||||||
if(do_after(user, src, 10))
|
if(do_after(user, src, 10))
|
||||||
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
if(user.drop_item(C, src))
|
||||||
user.drop_item(C, src)
|
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
||||||
_circuitboard=C
|
_circuitboard=C
|
||||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||||
build++
|
build++
|
||||||
update_icon()
|
update_icon()
|
||||||
return 1
|
return 1
|
||||||
if(1) // Circuitboard installed
|
if(1) // Circuitboard installed
|
||||||
if(istype(W, /obj/item/weapon/crowbar))
|
if(istype(W, /obj/item/weapon/crowbar))
|
||||||
|
|||||||
@@ -245,8 +245,8 @@
|
|||||||
else if(istype(W,/obj/item/toy/crayon) ||istype(W,/obj/item/weapon/stamp))
|
else if(istype(W,/obj/item/toy/crayon) ||istype(W,/obj/item/weapon/stamp))
|
||||||
if( wash_state in list( 1, 3, 6 ) )
|
if( wash_state in list( 1, 3, 6 ) )
|
||||||
if(!crayon)
|
if(!crayon)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
crayon = W
|
crayon = W
|
||||||
else if(istype(W,/obj/item/weapon/grab))
|
else if(istype(W,/obj/item/weapon/grab))
|
||||||
if( (wash_state == 1) && hacked)
|
if( (wash_state == 1) && hacked)
|
||||||
var/obj/item/weapon/grab/G = W
|
var/obj/item/weapon/grab/G = W
|
||||||
@@ -305,8 +305,8 @@
|
|||||||
|
|
||||||
if(contents.len < 5)
|
if(contents.len < 5)
|
||||||
if ( wash_state in list(1, 3) )
|
if ( wash_state in list(1, 3) )
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
wash_state = 3
|
wash_state = 3
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>You can't put the item in right now.</span>")
|
to_chat(user, "<span class='notice'>You can't put the item in right now.</span>")
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -726,10 +726,10 @@
|
|||||||
var/obj/item/mecha_parts/mecha_equipment/E = W
|
var/obj/item/mecha_parts/mecha_equipment/E = W
|
||||||
spawn()
|
spawn()
|
||||||
if(E.can_attach(src))
|
if(E.can_attach(src))
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
E.attach(src)
|
E.attach(src)
|
||||||
user.visible_message("[user] attaches [W] to [src]", "You attach [W] to [src]")
|
user.visible_message("[user] attaches [W] to [src]", "You attach [W] to [src]")
|
||||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
else
|
else
|
||||||
to_chat(user, "You were unable to attach [W] to [src]")
|
to_chat(user, "You were unable to attach [W] to [src]")
|
||||||
return
|
return
|
||||||
@@ -799,30 +799,30 @@
|
|||||||
else if(istype(W, /obj/item/weapon/cell))
|
else if(istype(W, /obj/item/weapon/cell))
|
||||||
if(state==STATE_BOLTSOPENED)
|
if(state==STATE_BOLTSOPENED)
|
||||||
if(!src.cell)
|
if(!src.cell)
|
||||||
to_chat(user, "You install the powercell.")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(user, "You install the powercell.")
|
||||||
src.cell = W
|
src.cell = W
|
||||||
src.log_message("Powercell installed.")
|
src.log_message("Powercell installed.")
|
||||||
else
|
else
|
||||||
to_chat(user, "There's already a powercell installed.")
|
to_chat(user, "There's already a powercell installed.")
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/mecha_parts/mecha_tracking))
|
else if(istype(W, /obj/item/mecha_parts/mecha_tracking))
|
||||||
if(state==STATE_BOLTSOPENED)
|
if(state==STATE_BOLTSOPENED)
|
||||||
if(!src.tracking)
|
if(!src.tracking)
|
||||||
to_chat(user, "You install the tracking beacon and safeties.")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(user, "You install the tracking beacon and safeties.")
|
||||||
src.tracking = W
|
src.tracking = W
|
||||||
src.log_message("Exosuit tracking beacon installed.")
|
src.log_message("Exosuit tracking beacon installed.")
|
||||||
else
|
else
|
||||||
to_chat(user, "There's already a tracking beacon installed.")
|
to_chat(user, "There's already a tracking beacon installed.")
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/device/radio/electropack))
|
else if(istype(W, /obj/item/device/radio/electropack))
|
||||||
if(state==STATE_BOLTSOPENED)
|
if(state==STATE_BOLTSOPENED)
|
||||||
if(!src.electropack)
|
if(!src.electropack)
|
||||||
to_chat(user, "You rig the electropack to the cockpit.")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(user, "You rig the electropack to the cockpit.")
|
||||||
src.electropack = W
|
src.electropack = W
|
||||||
src.log_message("Emergency ejection routines installed.") //not exactly a legitimate upgrade!
|
src.log_message("Emergency ejection routines installed.") //not exactly a legitimate upgrade!
|
||||||
else
|
else
|
||||||
to_chat(user, "There's already an electropack installed.")
|
to_chat(user, "There's already an electropack installed.")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -92,11 +92,11 @@
|
|||||||
to_chat(usr, "<spawn class='notice'>The locker is full.")
|
to_chat(usr, "<spawn class='notice'>The locker is full.")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
to_chat(usr, "<span class='notice'>You put \the [G] in \the [src].</span>")
|
if(user.drop_item(G, src))
|
||||||
defib = G
|
to_chat(usr, "<span class='notice'>You put \the [G] in \the [src].</span>")
|
||||||
update_icon()
|
defib = G
|
||||||
user.drop_item(G, src)
|
update_icon()
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,10 @@
|
|||||||
var/permeability_coefficient = 1 // for chemicals/diseases
|
var/permeability_coefficient = 1 // for chemicals/diseases
|
||||||
siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) - 0 is not conductive, 1 is conductive - this is a range, not binary
|
siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) - 0 is not conductive, 1 is conductive - this is a range, not binary
|
||||||
var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
|
var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
|
||||||
|
|
||||||
var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N
|
var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N
|
||||||
|
var/glued = 0 //If 1, can't drop it from hands!
|
||||||
|
|
||||||
var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||||
var/list/allowed = null //suit storage stuff.
|
var/list/allowed = null //suit storage stuff.
|
||||||
var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers.
|
var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers.
|
||||||
|
|||||||
@@ -2143,15 +2143,15 @@ obj/item/device/pda/AltClick()
|
|||||||
else
|
else
|
||||||
var/obj/item/I = user.get_active_hand()
|
var/obj/item/I = user.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id))
|
if (istype(I, /obj/item/weapon/card/id))
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
id = I
|
id = I
|
||||||
else
|
else
|
||||||
var/obj/item/weapon/card/I = user.get_active_hand()
|
var/obj/item/weapon/card/I = user.get_active_hand()
|
||||||
if (istype(I, /obj/item/weapon/card/id) && I:registered_name)
|
if (istype(I, /obj/item/weapon/card/id) && I:registered_name)
|
||||||
var/obj/old_id = id
|
var/obj/old_id = id
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
id = I
|
id = I
|
||||||
user.put_in_hands(old_id)
|
user.put_in_hands(old_id)
|
||||||
if(id && incoming_transactions.len)
|
if(id && incoming_transactions.len)
|
||||||
receive_incoming_transactions(id)
|
receive_incoming_transactions(id)
|
||||||
return
|
return
|
||||||
@@ -2160,11 +2160,11 @@ obj/item/device/pda/AltClick()
|
|||||||
/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob)
|
/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob)
|
||||||
..()
|
..()
|
||||||
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
|
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
|
||||||
cartridge = C
|
if(user.drop_item(C, src))
|
||||||
user.drop_item(C, src)
|
cartridge = C
|
||||||
to_chat(user, "<span class='notice'>You insert [cartridge] into [src].</span>")
|
to_chat(user, "<span class='notice'>You insert [cartridge] into [src].</span>")
|
||||||
if(cartridge.radio)
|
if(cartridge.radio)
|
||||||
cartridge.radio.hostpda = src
|
cartridge.radio.hostpda = src
|
||||||
|
|
||||||
else if(istype(C, /obj/item/weapon/card/id))
|
else if(istype(C, /obj/item/weapon/card/id))
|
||||||
var/obj/item/weapon/card/id/idcard = C
|
var/obj/item/weapon/card/id/idcard = C
|
||||||
@@ -2188,17 +2188,17 @@ obj/item/device/pda/AltClick()
|
|||||||
return //Return in case of failed check or when successful.
|
return //Return in case of failed check or when successful.
|
||||||
updateSelfDialog()//For the non-input related code.
|
updateSelfDialog()//For the non-input related code.
|
||||||
else if(istype(C, /obj/item/device/paicard) && !src.pai)
|
else if(istype(C, /obj/item/device/paicard) && !src.pai)
|
||||||
user.drop_item(C, src)
|
if(user.drop_item(C, src))
|
||||||
pai = C
|
pai = C
|
||||||
to_chat(user, "<span class='notice'>You slot \the [C] into [src].</span>")
|
to_chat(user, "<span class='notice'>You slot \the [C] into [src].</span>")
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
else if(istype(C, /obj/item/weapon/pen))
|
else if(istype(C, /obj/item/weapon/pen))
|
||||||
var/obj/item/weapon/pen/O = locate() in src
|
var/obj/item/weapon/pen/O = locate() in src
|
||||||
if(O)
|
if(O)
|
||||||
to_chat(user, "<span class='notice'>There is already a pen in \the [src].</span>")
|
to_chat(user, "<span class='notice'>There is already a pen in \the [src].</span>")
|
||||||
else
|
else
|
||||||
user.drop_item(C, src)
|
if(user.drop_item(C, src))
|
||||||
to_chat(user, "<span class='notice'>You slide \the [C] into \the [src].</span>")
|
to_chat(user, "<span class='notice'>You slide \the [C] into \the [src].</span>")
|
||||||
else if(istype(C,/obj/item/weapon/spacecash))
|
else if(istype(C,/obj/item/weapon/spacecash))
|
||||||
if(!id)
|
if(!id)
|
||||||
to_chat(user, "\icon[src]<span class='warning'>There is no ID in the PDA!</span>")
|
to_chat(user, "\icon[src]<span class='warning'>There is no ID in the PDA!</span>")
|
||||||
|
|||||||
@@ -30,11 +30,11 @@
|
|||||||
if(I.w_class < 3)
|
if(I.w_class < 3)
|
||||||
to_chat(user, "<span class='warning'>\The [I] is too small for \the [src]</span>")
|
to_chat(user, "<span class='warning'>\The [I] is too small for \the [src]</span>")
|
||||||
return 0
|
return 0
|
||||||
to_chat(user, "<span class='notice'>You stealthily place \the [src] onto \the [A]</span>")
|
if(user.drop_item(src, A))
|
||||||
user.drop_item(src, A)
|
to_chat(user, "<span class='notice'>You stealthily place \the [src] onto \the [A]</span>")
|
||||||
active = 1
|
active = 1
|
||||||
camera_bugs += src
|
camera_bugs += src
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/item/device/camera_bug/emp_act(severity)
|
/obj/item/device/camera_bug/emp_act(severity)
|
||||||
switch(severity)
|
switch(severity)
|
||||||
|
|||||||
@@ -322,18 +322,21 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
if(istype(W,/obj/item/device/assembly/signaler) && !has_signaler)
|
if(istype(W,/obj/item/device/assembly/signaler) && !has_signaler)
|
||||||
var/obj/item/device/assembly/signaler/S = W
|
|
||||||
frequency = S.frequency
|
if(user.drop_item(W))
|
||||||
if(S.code == NOSIGNAL_CODE) //setting a code of "30" guarantees that you'll never be triggering any remote signaling devices.
|
|
||||||
code = 0
|
var/obj/item/device/assembly/signaler/S = W
|
||||||
else
|
frequency = S.frequency
|
||||||
code = S.code
|
if(S.code == NOSIGNAL_CODE) //setting a code of "30" guarantees that you'll never be triggering any remote signaling devices.
|
||||||
user.drop_item(W)
|
code = 0
|
||||||
qdel(W)
|
else
|
||||||
W = null
|
code = S.code
|
||||||
has_signaler = 1
|
|
||||||
update_icon()
|
qdel(W)
|
||||||
return
|
W = null
|
||||||
|
has_signaler = 1
|
||||||
|
update_icon()
|
||||||
|
return
|
||||||
|
|
||||||
/obj/item/device/deskbell_assembly/attack_self(mob/living/carbon/user)
|
/obj/item/device/deskbell_assembly/attack_self(mob/living/carbon/user)
|
||||||
if(has_signaler)
|
if(has_signaler)
|
||||||
|
|||||||
@@ -144,15 +144,15 @@
|
|||||||
|
|
||||||
if(istype(W, /obj/item/weapon/storage/box/lights))
|
if(istype(W, /obj/item/weapon/storage/box/lights))
|
||||||
if(!supply)
|
if(!supply)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
user.visible_message("[user] inserts \a [W] into \the [src]", "You insert \the [W] into \the [src] to be used as the supply container.")
|
user.visible_message("[user] inserts \a [W] into \the [src]", "You insert \the [W] into \the [src] to be used as the supply container.")
|
||||||
supply = W
|
supply = W
|
||||||
return
|
return
|
||||||
else if(!waste)
|
else if(!waste)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
user.visible_message("[user] inserts \a [W] into \the [src]", "You insert \the [W] into \the [src] to be used as the waste container.")
|
user.visible_message("[user] inserts \a [W] into \the [src]", "You insert \the [W] into \the [src] to be used as the waste container.")
|
||||||
waste = W
|
waste = W
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/obj/item/weapon/storage/box/lights/lsource = W
|
var/obj/item/weapon/storage/box/lights/lsource = W
|
||||||
if(!lsource.contents.len)
|
if(!lsource.contents.len)
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
var/list/light_type_cur
|
var/list/light_type_cur
|
||||||
var/list/to_dump_5 //I guess I could do this without this variable, but it would involve more string concatenation, and nobody wants that.
|
var/list/to_dump_5 //I guess I could do this without this variable, but it would involve more string concatenation, and nobody wants that.
|
||||||
var/list/to_dump_all//This too
|
var/list/to_dump_all//This too
|
||||||
|
|
||||||
for(var/T in light_types)
|
for(var/T in light_types)
|
||||||
light_type_cur = light_types[T] //The way you'd expect to be the good way to do this doesn't work. This is dumb, but necessary.
|
light_type_cur = light_types[T] //The way you'd expect to be the good way to do this doesn't work. This is dumb, but necessary.
|
||||||
to_dump_5 = list()
|
to_dump_5 = list()
|
||||||
@@ -226,7 +226,7 @@
|
|||||||
|
|
||||||
if(waste)
|
if(waste)
|
||||||
dat += {"<br><br><br><h3>Waste Container:</h3>
|
dat += {"<br><br><br><h3>Waste Container:</h3>
|
||||||
|
|
||||||
<b>Filled: </b>[waste.contents.len]/[waste.storage_slots]<br>
|
<b>Filled: </b>[waste.contents.len]/[waste.storage_slots]<br>
|
||||||
<b><a href='?src=\ref[src];eject=waste'>Eject Waste Container</a></b>
|
<b><a href='?src=\ref[src];eject=waste'>Eject Waste Container</a></b>
|
||||||
"}
|
"}
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
var/list/light_type_cur
|
var/list/light_type_cur
|
||||||
var/list/to_dump_5//I guess I could do this without this variable, but it would include more string concatenation, and nobody wants that.
|
var/list/to_dump_5//I guess I could do this without this variable, but it would include more string concatenation, and nobody wants that.
|
||||||
var/list/to_dump_all //This too
|
var/list/to_dump_all //This too
|
||||||
|
|
||||||
for(var/T in light_types)
|
for(var/T in light_types)
|
||||||
to_dump_5 = list()
|
to_dump_5 = list()
|
||||||
to_dump_all = list()
|
to_dump_all = list()
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
|
|
||||||
if(waste)
|
if(waste)
|
||||||
dat += {"<br><br><br><h3>Waste Container:</h3>
|
dat += {"<br><br><br><h3>Waste Container:</h3>
|
||||||
|
|
||||||
<b>Filled: </b>[waste.contents.len]/[waste.storage_slots]<br>
|
<b>Filled: </b>[waste.contents.len]/[waste.storage_slots]<br>
|
||||||
<b><a href='?src=\ref[src];recycle=1'>Recycle Contents</a></b>
|
<b><a href='?src=\ref[src];recycle=1'>Recycle Contents</a></b>
|
||||||
"}
|
"}
|
||||||
@@ -378,7 +378,7 @@
|
|||||||
//If the light works, attempts to place it in the supply box. Otherwise, attempts to place it in the waste box.
|
//If the light works, attempts to place it in the supply box. Otherwise, attempts to place it in the waste box.
|
||||||
//Fails if the light cannot be placed into the correct box for any reason.
|
//Fails if the light cannot be placed into the correct box for any reason.
|
||||||
//Returns 1 if the light is successfully inserted into the correct box, 0 if the insertion fails, and null if the item to be inserted is not a light or something very strange happens.
|
//Returns 1 if the light is successfully inserted into the correct box, 0 if the insertion fails, and null if the item to be inserted is not a light or something very strange happens.
|
||||||
/obj/item/device/lightreplacer/proc/insert_if_possible(var/obj/item/weapon/light/L)
|
/obj/item/device/lightreplacer/proc/insert_if_possible(var/obj/item/weapon/light/L)
|
||||||
if(!istype(L))
|
if(!istype(L))
|
||||||
return
|
return
|
||||||
if(L.status == LIGHT_OK)
|
if(L.status == LIGHT_OK)
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
if (!isnull(keyslot))
|
if (!isnull(keyslot))
|
||||||
to_chat(user, "<SPAN CLASS='notice'>The radio can't hold another key!</SPAN>")
|
to_chat(user, "<SPAN CLASS='notice'>The radio can't hold another key!</SPAN>")
|
||||||
else
|
else
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
insert_key(W)
|
insert_key(W)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -299,12 +299,12 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(!keyslot1)
|
if(!keyslot1)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
keyslot1 = W
|
keyslot1 = W
|
||||||
|
|
||||||
else
|
else
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
keyslot2 = W
|
keyslot2 = W
|
||||||
|
|
||||||
|
|
||||||
recalculateChannels()
|
recalculateChannels()
|
||||||
|
|||||||
@@ -30,32 +30,32 @@
|
|||||||
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
|
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
|
||||||
if(istype(item, /obj/item/weapon/tank))
|
if(istype(item, /obj/item/weapon/tank))
|
||||||
if(tank_one && tank_two)
|
if(tank_one && tank_two)
|
||||||
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
|
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!tank_one)
|
if(!tank_one)
|
||||||
tank_one = item
|
if(user.drop_item(item, src))
|
||||||
user.drop_item(item, src)
|
tank_one = item
|
||||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||||
else if(!tank_two)
|
else if(!tank_two)
|
||||||
tank_two = item
|
if(user.drop_item(item, src))
|
||||||
user.drop_item(item, src)
|
tank_two = item
|
||||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
//TODO: Have this take an assemblyholder
|
//TODO: Have this take an assemblyholder
|
||||||
else if(isassembly(item))
|
else if(isassembly(item))
|
||||||
var/obj/item/device/assembly/A = item
|
var/obj/item/device/assembly/A = item
|
||||||
if(A.secured)
|
if(A.secured)
|
||||||
to_chat(user, "<span class='notice'>The device is secured.</span>")
|
to_chat(user, "<span class='notice'>The device is secured.</span>")
|
||||||
return
|
return
|
||||||
if(attached_device)
|
if(attached_device)
|
||||||
to_chat(user, "<span class='warning'>There is already a device attached to the valve, remove it first.</span>")
|
to_chat(user, "<span class='warning'>There is already a device attached to the valve, remove it first.</span>")
|
||||||
return
|
return
|
||||||
user.remove_from_mob(item)
|
user.remove_from_mob(item)
|
||||||
attached_device = A
|
attached_device = A
|
||||||
A.loc = src
|
A.loc = src
|
||||||
to_chat(user, "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>")
|
to_chat(user, "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>")
|
||||||
A.holder = src
|
A.holder = src
|
||||||
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
|
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
|
||||||
|
|
||||||
|
|||||||
@@ -136,6 +136,10 @@ var/global/list/available_paintings = list(
|
|||||||
desc = "a blank painting."
|
desc = "a blank painting."
|
||||||
|
|
||||||
/obj/item/mounted/frame/painting/do_build(turf/on_wall, mob/user)
|
/obj/item/mounted/frame/painting/do_build(turf/on_wall, mob/user)
|
||||||
|
if(!user.drop_item(src))
|
||||||
|
to_chat(user, "<span class='warning'>You can't let go of \the [src]!</span>")
|
||||||
|
return
|
||||||
|
|
||||||
to_chat(user, "<span class='notice'>You hang the [src] on \the [on_wall]...</span>")
|
to_chat(user, "<span class='notice'>You hang the [src] on \the [on_wall]...</span>")
|
||||||
|
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
@@ -159,7 +163,6 @@ var/global/list/available_paintings = list(
|
|||||||
|
|
||||||
playsound(on_wall, 'sound/items/Deconstruct.ogg', 25, 1)
|
playsound(on_wall, 'sound/items/Deconstruct.ogg', 25, 1)
|
||||||
|
|
||||||
user.drop_item(src)
|
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/item/mounted/frame/painting/blank
|
/obj/item/mounted/frame/painting/blank
|
||||||
|
|||||||
@@ -129,34 +129,34 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
if(istype(W, /obj/item/robot_parts/l_leg))
|
if(istype(W, /obj/item/robot_parts/l_leg))
|
||||||
if(src.l_leg) return
|
if(src.l_leg) return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.l_leg = W
|
src.l_leg = W
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
|
|
||||||
if(istype(W, /obj/item/robot_parts/r_leg))
|
if(istype(W, /obj/item/robot_parts/r_leg))
|
||||||
if(src.r_leg) return
|
if(src.r_leg) return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.r_leg = W
|
src.r_leg = W
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
|
|
||||||
if(istype(W, /obj/item/robot_parts/l_arm))
|
if(istype(W, /obj/item/robot_parts/l_arm))
|
||||||
if(src.l_arm) return
|
if(src.l_arm) return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.l_arm = W
|
src.l_arm = W
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
|
|
||||||
if(istype(W, /obj/item/robot_parts/r_arm))
|
if(istype(W, /obj/item/robot_parts/r_arm))
|
||||||
if(src.r_arm) return
|
if(src.r_arm) return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.r_arm = W
|
src.r_arm = W
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
|
|
||||||
if(istype(W, /obj/item/robot_parts/chest))
|
if(istype(W, /obj/item/robot_parts/chest))
|
||||||
if(src.chest) return
|
if(src.chest) return
|
||||||
if(W:wires && W:cell)
|
if(W:wires && W:cell)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.chest = W
|
src.chest = W
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
else if(!W:wires)
|
else if(!W:wires)
|
||||||
to_chat(user, "<span class='notice'>You need to attach wires to it first!</span>")
|
to_chat(user, "<span class='notice'>You need to attach wires to it first!</span>")
|
||||||
else
|
else
|
||||||
@@ -165,9 +165,9 @@
|
|||||||
if(istype(W, /obj/item/robot_parts/head))
|
if(istype(W, /obj/item/robot_parts/head))
|
||||||
if(src.head) return
|
if(src.head) return
|
||||||
if(W:flash2 && W:flash1)
|
if(W:flash2 && W:flash1)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.head = W
|
src.head = W
|
||||||
src.updateicon()
|
src.updateicon()
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>You need to attach a flash to it first!</span>")
|
to_chat(user, "<span class='notice'>You need to attach a flash to it first!</span>")
|
||||||
|
|
||||||
@@ -198,6 +198,9 @@
|
|||||||
to_chat(user, "<span class='warning'>This [W] does not seem to fit.</span>")
|
to_chat(user, "<span class='warning'>This [W] does not seem to fit.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(!user.drop_item(W))
|
||||||
|
return
|
||||||
|
|
||||||
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
|
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
|
||||||
|
|
||||||
for(var/P in M.mommi_assembly_parts) //Let's give back all those mommi creation components
|
for(var/P in M.mommi_assembly_parts) //Let's give back all those mommi creation components
|
||||||
@@ -208,8 +211,6 @@
|
|||||||
|
|
||||||
if(!O) return
|
if(!O) return
|
||||||
|
|
||||||
user.drop_item(W)
|
|
||||||
|
|
||||||
O.mmi = W
|
O.mmi = W
|
||||||
O.invisibility = 0
|
O.invisibility = 0
|
||||||
O.custom_name = created_name
|
O.custom_name = created_name
|
||||||
@@ -257,9 +258,9 @@
|
|||||||
to_chat(user, "<span class='notice'>You have already inserted a cell!</span>")
|
to_chat(user, "<span class='notice'>You have already inserted a cell!</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.cell = W
|
src.cell = W
|
||||||
to_chat(user, "<span class='notice'>You insert the cell!</span>")
|
to_chat(user, "<span class='notice'>You insert the cell!</span>")
|
||||||
if(istype(W, /obj/item/stack/cable_coil))
|
if(istype(W, /obj/item/stack/cable_coil))
|
||||||
if(src.wires)
|
if(src.wires)
|
||||||
to_chat(user, "<span class='notice'>You have already inserted wire!</span>")
|
to_chat(user, "<span class='notice'>You have already inserted wire!</span>")
|
||||||
@@ -278,21 +279,21 @@
|
|||||||
to_chat(user, "<span class='notice'>You have already inserted the eyes!</span>")
|
to_chat(user, "<span class='notice'>You have already inserted the eyes!</span>")
|
||||||
return
|
return
|
||||||
else if(src.flash1)
|
else if(src.flash1)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.flash2 = W
|
src.flash2 = W
|
||||||
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
||||||
else
|
else
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
src.flash1 = W
|
src.flash1 = W
|
||||||
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
||||||
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
|
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
|
||||||
to_chat(user, "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>")
|
if(user.drop_item(W))
|
||||||
new /mob/living/simple_animal/spiderbot(get_turf(loc))
|
to_chat(user, "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>")
|
||||||
user.drop_item(W)
|
new /mob/living/simple_animal/spiderbot(get_turf(loc))
|
||||||
qdel(W)
|
qdel(W)
|
||||||
W = null
|
W = null
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/robot_parts/attackby(obj/item/W as obj, mob/user as mob)
|
/obj/item/robot_parts/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
var/obj/item/stack/cable_coil/C = W
|
var/obj/item/stack/cable_coil/C = W
|
||||||
|
|
||||||
if(C.use(5))
|
if(C.use(5))
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
|
|
||||||
var/obj/item/clothing/mask/necklace/xeno_claw/X = new(get_turf(src))
|
var/obj/item/clothing/mask/necklace/xeno_claw/X = new(get_turf(src))
|
||||||
user.put_in_active_hand(X)
|
user.put_in_active_hand(X)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(C.use(5))
|
if(C.use(5))
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
|
|
||||||
var/obj/item/clothing/mask/necklace/teeth/X = new(get_turf(src))
|
var/obj/item/clothing/mask/necklace/teeth/X = new(get_turf(src))
|
||||||
|
|
||||||
|
|||||||
@@ -225,11 +225,11 @@
|
|||||||
/obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob)
|
/obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(istype(I, /obj/item/toy/ammo/crossbow))
|
if(istype(I, /obj/item/toy/ammo/crossbow))
|
||||||
if(bullets <= 4)
|
if(bullets <= 4)
|
||||||
user.drop_item()
|
if(user.drop_item(I))
|
||||||
qdel(I)
|
qdel(I)
|
||||||
I = null
|
I = null
|
||||||
bullets++
|
bullets++
|
||||||
to_chat(user, "<span class = 'info'>You load the foam dart into the crossbow.</span>")
|
to_chat(user, "<span class = 'info'>You load the foam dart into the crossbow.</span>")
|
||||||
else
|
else
|
||||||
to_chat(usr, "<span class = 'warning'>It's already fully loaded.</span>")
|
to_chat(usr, "<span class = 'warning'>It's already fully loaded.</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@
|
|||||||
/obj/item/weapon/rcl/attackby(obj/item/weapon/W, mob/user)
|
/obj/item/weapon/rcl/attackby(obj/item/weapon/W, mob/user)
|
||||||
if(istype(W,/obj/item/stack/cable_coil))
|
if(istype(W,/obj/item/stack/cable_coil))
|
||||||
if(!loaded)
|
if(!loaded)
|
||||||
loaded = W
|
if(user.drop_item(W,src))
|
||||||
loaded.max_amount = max_amount //We store a lot.
|
loaded = W
|
||||||
user.drop_item(W,src)
|
loaded.max_amount = max_amount //We store a lot.
|
||||||
else
|
else
|
||||||
loaded.preattack(W,user,1)
|
loaded.preattack(W,user,1)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -60,11 +60,10 @@
|
|||||||
if(ink)
|
if(ink)
|
||||||
to_chat(user, "<span class='notice'>\the [name] already contains \a [ink].</span>")
|
to_chat(user, "<span class='notice'>\the [name] already contains \a [ink].</span>")
|
||||||
return
|
return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
to_chat(user, "<span class='notice'>You install \the [W] into \the [name].</span>")
|
to_chat(user, "<span class='notice'>You install \the [W] into \the [name].</span>")
|
||||||
ink = W
|
ink = W
|
||||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/airlock_painter/attack_self(mob/user)
|
/obj/item/weapon/airlock_painter/attack_self(mob/user)
|
||||||
if(ink)
|
if(ink)
|
||||||
|
|||||||
@@ -42,11 +42,11 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
..()
|
..()
|
||||||
switch(lit)
|
switch(lit)
|
||||||
if(1)
|
if(1)
|
||||||
to_chat(user, "The match is lit.")
|
to_chat(user, "The match is lit.")
|
||||||
if(0)
|
if(0)
|
||||||
to_chat(user, "The match is unlit and ready to be used.")
|
to_chat(user, "The match is unlit and ready to be used.")
|
||||||
if(-1)
|
if(-1)
|
||||||
to_chat(user, "The match is burnt.")
|
to_chat(user, "The match is burnt.")
|
||||||
|
|
||||||
//Also updates the name, the damage and item_state for good measure
|
//Also updates the name, the damage and item_state for good measure
|
||||||
/obj/item/weapon/match/update_icon()
|
/obj/item/weapon/match/update_icon()
|
||||||
@@ -169,7 +169,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
|
|
||||||
..()
|
..()
|
||||||
to_chat(user, "\The [src] is [lit ? "":"un"]lit.")//Shared with all cigarette sub-types
|
to_chat(user, "\The [src] is [lit ? "":"un"]lit.")//Shared with all cigarette sub-types
|
||||||
|
|
||||||
|
|
||||||
//Also updates the name, the damage and item_state for good measure
|
//Also updates the name, the damage and item_state for good measure
|
||||||
/obj/item/clothing/mask/cigarette/update_icon()
|
/obj/item/clothing/mask/cigarette/update_icon()
|
||||||
@@ -211,7 +211,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
if(lit) //The cigarette is already lit
|
if(lit) //The cigarette is already lit
|
||||||
to_chat(user, "<span class='warning'>\The [src] is already lit.</span>")
|
to_chat(user, "<span class='warning'>\The [src] is already lit.</span>")
|
||||||
return //Don't bother
|
return //Don't bother
|
||||||
|
|
||||||
//Items with special messages go first
|
//Items with special messages go first
|
||||||
@@ -252,23 +252,23 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
if(glass.reagents.has_reagent("sacid") || glass.reagents.has_reagent("pacid")) //Dumping into acid, a dumb idea
|
if(glass.reagents.has_reagent("sacid") || glass.reagents.has_reagent("pacid")) //Dumping into acid, a dumb idea
|
||||||
new type_butt(get_turf(glass))
|
new type_butt(get_turf(glass))
|
||||||
processing_objects.Remove(src)
|
processing_objects.Remove(src)
|
||||||
to_chat(user, "<span class='warning'>Half of \the [src] dissolves with a nasty fizzle as you dip it into \the [glass].</span>")
|
to_chat(user, "<span class='warning'>Half of \the [src] dissolves with a nasty fizzle as you dip it into \the [glass].</span>")
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
if(glass.reagents.has_reagent("water") && lit) //Dumping a lit cigarette into water, the result is obvious
|
if(glass.reagents.has_reagent("water") && lit) //Dumping a lit cigarette into water, the result is obvious
|
||||||
new type_butt(get_turf(glass))
|
new type_butt(get_turf(glass))
|
||||||
processing_objects.Remove(src)
|
processing_objects.Remove(src)
|
||||||
to_chat(user, "<span class='warning'>\The [src] fizzles as you dip it into \the [glass].</span>")
|
to_chat(user, "<span class='warning'>\The [src] fizzles as you dip it into \the [glass].</span>")
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
var/transfered = glass.reagents.trans_to(src, chem_volume)
|
var/transfered = glass.reagents.trans_to(src, chem_volume)
|
||||||
if(transfered) //If reagents were transfered, show the message
|
if(transfered) //If reagents were transfered, show the message
|
||||||
to_chat(user, "<span class='notice'>You dip \the [src] into \the [glass].</span>")
|
to_chat(user, "<span class='notice'>You dip \the [src] into \the [glass].</span>")
|
||||||
else //If not, either the beaker was empty, or the cigarette was full
|
else //If not, either the beaker was empty, or the cigarette was full
|
||||||
if(!glass.reagents.total_volume) //Only show an explicit message if the beaker was empty, you can't tell a cigarette is "full"
|
if(!glass.reagents.total_volume) //Only show an explicit message if the beaker was empty, you can't tell a cigarette is "full"
|
||||||
to_chat(user, "<span class='warning'>\The [glass] is empty.</span>")
|
to_chat(user, "<span class='warning'>\The [glass] is empty.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights \the [src].")
|
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights \the [src].")
|
||||||
@@ -276,7 +276,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
return //"Normal" situations were already handled in attackby, don't show a message
|
return //"Normal" situations were already handled in attackby, don't show a message
|
||||||
|
|
||||||
if(reagents.get_reagent_amount("water")) //The cigarette was dipped into water, it's useless now
|
if(reagents.get_reagent_amount("water")) //The cigarette was dipped into water, it's useless now
|
||||||
to_chat(usr, "<span class='warning'>You fail to light \the [src]. It appears to be wet.</span>")
|
to_chat(usr, "<span class='warning'>You fail to light \the [src]. It appears to be wet.</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if(reagents.get_reagent_amount("plasma")) //Plasma explodes when exposed to fire
|
if(reagents.get_reagent_amount("plasma")) //Plasma explodes when exposed to fire
|
||||||
@@ -331,7 +331,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
lit = 0 //Actually unlight the cigarette so that the lighting can update correctly
|
lit = 0 //Actually unlight the cigarette so that the lighting can update correctly
|
||||||
update_brightness()
|
update_brightness()
|
||||||
if(ismob(loc))
|
if(ismob(loc))
|
||||||
to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
|
to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
|
||||||
M.u_equip(src, 0) //Un-equip it so the overlays can update
|
M.u_equip(src, 0) //Un-equip it so the overlays can update
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
@@ -431,7 +431,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
if(istype(W, /obj/item/weapon/match))
|
if(istype(W, /obj/item/weapon/match))
|
||||||
..()
|
..()
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such uncivilized means.</span>")
|
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such uncivilized means.</span>")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
///////////////////
|
///////////////////
|
||||||
@@ -554,7 +554,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
if(istype(W, /obj/item/weapon/match))
|
if(istype(W, /obj/item/weapon/match))
|
||||||
..()
|
..()
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such means.</span>")
|
to_chat(user, "<span class='notice'>\The [src] straight out REFUSES to be lit by such means.</span>")
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/obj/item/clothing/mask/cigarette/pipe/cobpipe
|
/obj/item/clothing/mask/cigarette/pipe/cobpipe
|
||||||
@@ -606,7 +606,7 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
|||||||
/obj/item/weapon/lighter/examine(mob/user)
|
/obj/item/weapon/lighter/examine(mob/user)
|
||||||
|
|
||||||
..()
|
..()
|
||||||
to_chat(user, "The lighter is [lit ? "":"un"]lit")
|
to_chat(user, "The lighter is [lit ? "":"un"]lit")
|
||||||
|
|
||||||
//Also updates the name, the damage and item_state for good measure
|
//Also updates the name, the damage and item_state for good measure
|
||||||
/obj/item/weapon/lighter/update_icon()
|
/obj/item/weapon/lighter/update_icon()
|
||||||
|
|||||||
@@ -127,3 +127,38 @@
|
|||||||
attack_verb = list("quacked")
|
attack_verb = list("quacked")
|
||||||
hitsound = 'sound/items/quack.ogg'
|
hitsound = 'sound/items/quack.ogg'
|
||||||
honk_delay = 10
|
honk_delay = 10
|
||||||
|
|
||||||
|
/obj/item/weapon/glue
|
||||||
|
name = "superglue"
|
||||||
|
desc = "A small plastic bottle full of high quality superglue."
|
||||||
|
|
||||||
|
icon = 'icons/obj/items.dmi'
|
||||||
|
icon_state = "glue0"
|
||||||
|
|
||||||
|
var/spent = 0
|
||||||
|
|
||||||
|
/obj/item/weapon/glue/examine(mob/user)
|
||||||
|
..()
|
||||||
|
if(Adjacent(user))
|
||||||
|
user.show_message("<span class='info'>The label reads: </span><span class='notice'>Instructions: 1) Gently apply glue to an object 2) Apply object to human flesh.</span>", MESSAGE_SEE)
|
||||||
|
|
||||||
|
/obj/item/weapon/glue/update_icon()
|
||||||
|
..()
|
||||||
|
icon_state = "glue[spent]"
|
||||||
|
|
||||||
|
/obj/item/weapon/glue/afterattack(obj/item/target, mob/user, flag)
|
||||||
|
if(!flag)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(spent)
|
||||||
|
user << "<span class='warning'>There's no glue left in the bottle.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!istype(target)) //Can only apply to items!
|
||||||
|
user << "<span class='warning'>That would be a waste of glue.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
user << "<span class='info'>You gently apply the whole bottle of [src] to \the [target].</span>"
|
||||||
|
update_icon()
|
||||||
|
spent = 1
|
||||||
|
target.glued = 1
|
||||||
|
|||||||
@@ -101,7 +101,7 @@
|
|||||||
if(result == 1)
|
if(result == 1)
|
||||||
to_chat(user, "<span class='danger'>Rocks fall, you die.</span>")
|
to_chat(user, "<span class='danger'>Rocks fall, you die.</span>")
|
||||||
user.gib()
|
user.gib()
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
else
|
else
|
||||||
triggered = 1
|
triggered = 1
|
||||||
visible_message("<span class='notice'>You hear a quiet click.</span>")
|
visible_message("<span class='notice'>You hear a quiet click.</span>")
|
||||||
|
|||||||
@@ -74,13 +74,27 @@
|
|||||||
user.visible_message("<span class='warning'>[user.name] is trying to plant some kind of explosive on [target.name]!</span>")
|
user.visible_message("<span class='warning'>[user.name] is trying to plant some kind of explosive on [target.name]!</span>")
|
||||||
|
|
||||||
if(do_after(user, target, 50) && user.Adjacent(target))
|
if(do_after(user, target, 50) && user.Adjacent(target))
|
||||||
user.drop_item(src)
|
var/glue_act = 0 //If 1, the C4 is superglued to the guy's hands - produce a funny message
|
||||||
src.target = target
|
|
||||||
|
if(user.drop_item(src)) //User can't drop this normally -> stick it to him (but drop it anyways, to prevent unintended features)
|
||||||
|
src.target = target
|
||||||
|
user.drop_item(src, force_drop = 1)
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='danger'><h1>\The [src] is glued to your hands!</h1></span>") //Honk
|
||||||
|
src.target = user
|
||||||
|
glue_act = 1
|
||||||
|
|
||||||
loc = null
|
loc = null
|
||||||
|
|
||||||
if (ismob(target))
|
if (ismob(target))
|
||||||
var/mob/M=target
|
var/mob/M=target
|
||||||
target:attack_log += "\[[time_stamp()]\]<font color='orange'> Had the [name] planted on them by [user.real_name] ([user.ckey])</font>"
|
target:attack_log += "\[[time_stamp()]\]<font color='orange'> Had the [name] planted on them by [user.real_name] ([user.ckey])</font>"
|
||||||
user.visible_message("<span class='warning'>[user.name] finished planting an explosive on [target.name]!</span>")
|
|
||||||
|
if(!glue_act)
|
||||||
|
user.visible_message("<span class='warning'>[user.name] finished planting an explosive on [target.name]!</span>")
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='warning'>[user] found \himself unable to drop \the [src] after setting the timer on it!</span>")
|
||||||
|
|
||||||
playsound(get_turf(src), 'sound/weapons/c4armed.ogg', 60, 1)
|
playsound(get_turf(src), 'sound/weapons/c4armed.ogg', 60, 1)
|
||||||
if(!iscarbon(user))
|
if(!iscarbon(user))
|
||||||
M.LAssailant = null
|
M.LAssailant = null
|
||||||
|
|||||||
@@ -109,9 +109,9 @@
|
|||||||
if(isrobot(user) && !isMoMMI(user)) // MoMMI's can but borgs can't
|
if(isrobot(user) && !isMoMMI(user)) // MoMMI's can but borgs can't
|
||||||
to_chat(user, "You're a robot. No.")
|
to_chat(user, "You're a robot. No.")
|
||||||
return
|
return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
to_chat(user, "You cram \the [W] into the nozzle of \the [src].")
|
to_chat(user, "You cram \the [W] into the nozzle of \the [src].")
|
||||||
message_admins("[user]/[user.ckey] has crammed \a [W] into a [src].")
|
message_admins("[user]/[user.ckey] has crammed \a [W] into a [src].")
|
||||||
|
|
||||||
/obj/item/weapon/extinguisher/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
/obj/item/weapon/extinguisher/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||||
if(proximity_flag)
|
if(proximity_flag)
|
||||||
|
|||||||
@@ -102,19 +102,19 @@
|
|||||||
var/obj/item/device/assembly/igniter/I = W
|
var/obj/item/device/assembly/igniter/I = W
|
||||||
if(I.secured) return
|
if(I.secured) return
|
||||||
if(igniter) return
|
if(igniter) return
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
igniter = I
|
igniter = I
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
if(istype(W,/obj/item/weapon/tank/plasma))
|
if(istype(W,/obj/item/weapon/tank/plasma))
|
||||||
if(ptank)
|
if(ptank)
|
||||||
to_chat(user, "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>")
|
to_chat(user, "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>")
|
||||||
return
|
return
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
ptank = W
|
ptank = W
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
if(istype(W, /obj/item/device/analyzer) && ptank)
|
if(istype(W, /obj/item/device/analyzer) && ptank)
|
||||||
var/obj/item/device/analyzer/analyzer = W
|
var/obj/item/device/analyzer/analyzer = W
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
item_state = "gift-large"
|
item_state = "gift-large"
|
||||||
|
|
||||||
/obj/item/weapon/gift/attack_self(mob/user as mob)
|
/obj/item/weapon/gift/attack_self(mob/user as mob)
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
if(gift)
|
if(gift)
|
||||||
user.put_in_active_hand(gift)
|
user.put_in_active_hand(gift)
|
||||||
gift.add_fingerprint(user)
|
gift.add_fingerprint(user)
|
||||||
|
|||||||
@@ -110,19 +110,17 @@
|
|||||||
if (inserted_cores > 0)
|
if (inserted_cores > 0)
|
||||||
to_chat(user, "<span class='warning'> This type of grenade cannot hold more than one slime core.</span>")
|
to_chat(user, "<span class='warning'> This type of grenade cannot hold more than one slime core.</span>")
|
||||||
else
|
else
|
||||||
|
if(user.drop_item(W, src))
|
||||||
|
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
||||||
|
beakers += W
|
||||||
|
stage = 1
|
||||||
|
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||||
|
else if(W.reagents.total_volume)
|
||||||
|
if(user.drop_item(W, src))
|
||||||
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
||||||
user.drop_item(W, src)
|
|
||||||
beakers += W
|
beakers += W
|
||||||
E = W
|
|
||||||
inserted_cores++
|
|
||||||
stage = 1
|
stage = 1
|
||||||
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||||
else if(W.reagents.total_volume)
|
|
||||||
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
|
||||||
user.drop_item(W, src)
|
|
||||||
beakers += W
|
|
||||||
stage = 1
|
|
||||||
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'> \the [W] is empty.</span>")
|
to_chat(user, "<span class='warning'> \the [W] is empty.</span>")
|
||||||
else if (istype(W,/obj/item/slime_extract))
|
else if (istype(W,/obj/item/slime_extract))
|
||||||
@@ -313,22 +311,17 @@ obj/item/weapon/grenade/chem_grenade/exgrenade/attackby(obj/item/weapon/W as obj
|
|||||||
if (inserted_cores > 1)
|
if (inserted_cores > 1)
|
||||||
to_chat(user, "<span class='warning'> You cannot fit more than two slime cores in this grenade.</span>")
|
to_chat(user, "<span class='warning'> You cannot fit more than two slime cores in this grenade.</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
||||||
beakers += W
|
beakers += W
|
||||||
if (E == null)//E = first slime extract, C = second slime extract
|
stage = 1
|
||||||
E = W
|
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||||
else
|
|
||||||
C = W
|
|
||||||
inserted_cores++
|
|
||||||
stage = 1
|
|
||||||
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
|
||||||
else if(W.reagents.total_volume)
|
else if(W.reagents.total_volume)
|
||||||
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
||||||
beakers += W
|
beakers += W
|
||||||
stage = 1
|
stage = 1
|
||||||
name = "unsecured EX grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
name = "unsecured EX grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'> \the [W] is empty.</span>")
|
to_chat(user, "<span class='warning'> \the [W] is empty.</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
..()
|
..()
|
||||||
if(istype(C, /obj/item/weapon/implantcase))
|
if(istype(C, /obj/item/weapon/implantcase))
|
||||||
if(!( src.case ))
|
if(!( src.case ))
|
||||||
user.drop_item(C, src)
|
if(user.drop_item(C, src))
|
||||||
src.case = C
|
src.case = C
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
src.update()
|
src.update()
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera))
|
if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera))
|
||||||
user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.")
|
user.visible_message("[user] inserts [src] into a data port on [M].", "You insert [src] into a data port on [M].", "You hear the satisfying click of a wire jack fastening into place.")
|
||||||
if(user && user.get_active_hand() == src)
|
if(user && user.get_active_hand() == src)
|
||||||
user.drop_item(src, M)
|
user.drop_item(src, M, force_drop = 1)
|
||||||
src.machine = M
|
src.machine = M
|
||||||
else
|
else
|
||||||
user.visible_message("[user] dumbly fumbles to find a place on [M] to plug in [src].", "There aren't any ports on [M] that match the jack belonging to [src].")
|
user.visible_message("[user] dumbly fumbles to find a place on [M] to plug in [src].", "There aren't any ports on [M] that match the jack belonging to [src].")
|
||||||
|
|||||||
@@ -115,8 +115,11 @@
|
|||||||
if(item.w_class > 3.0)
|
if(item.w_class > 3.0)
|
||||||
to_chat(user, "<span class='warning'>\The [item] is too big to fit in the false bottom!</span>")
|
to_chat(user, "<span class='warning'>\The [item] is too big to fit in the false bottom!</span>")
|
||||||
return
|
return
|
||||||
|
if(!user.drop_item(item))
|
||||||
|
user << "<span class='warning'>\The [item] is stuck to your hands!</span>"
|
||||||
|
return
|
||||||
|
|
||||||
stored_item = item
|
stored_item = item
|
||||||
user.drop_item(item)
|
|
||||||
max_w_class = 3.0 - stored_item.w_class
|
max_w_class = 3.0 - stored_item.w_class
|
||||||
item.loc = null //null space here we go - to stop it showing up in the briefcase
|
item.loc = null //null space here we go - to stop it showing up in the briefcase
|
||||||
to_chat(user, "You place \the [item] into the false bottom of the briefcase.")
|
to_chat(user, "You place \the [item] into the false bottom of the briefcase.")
|
||||||
|
|||||||
@@ -62,10 +62,10 @@
|
|||||||
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
|
/obj/item/weapon/melee/baton/attackby(obj/item/weapon/W, mob/user)
|
||||||
if(istype(W, /obj/item/weapon/cell))
|
if(istype(W, /obj/item/weapon/cell))
|
||||||
if(!bcell)
|
if(!bcell)
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
bcell = W
|
bcell = W
|
||||||
to_chat(user, "<span class='notice'>You install a cell in [src].</span>")
|
to_chat(user, "<span class='notice'>You install a cell in [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>[src] already has a cell.</span>")
|
to_chat(user, "<span class='notice'>[src] already has a cell.</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -96,10 +96,10 @@
|
|||||||
to_chat(user, "\The [src] already has a [get_module_name(module)].")
|
to_chat(user, "\The [src] already has a [get_module_name(module)].")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
stored_modules[module] = used_item
|
if(user.drop_item(used_item, src))
|
||||||
user.drop_item(used_item, src)
|
stored_modules[module] = used_item
|
||||||
to_chat(user, "You successfully load \the [used_item] into \the [src]'s [get_module_name(module)] slot.")
|
to_chat(user, "You successfully load \the [used_item] into \the [src]'s [get_module_name(module)] slot.")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/item/weapon/switchtool/proc/remove_module(mob/user)
|
/obj/item/weapon/switchtool/proc/remove_module(mob/user)
|
||||||
deployed.loc = get_turf(user)
|
deployed.loc = get_turf(user)
|
||||||
|
|||||||
@@ -22,15 +22,15 @@
|
|||||||
var/obj/item/stack/rods/rods = W
|
var/obj/item/stack/rods/rods = W
|
||||||
if (rods.amount >= 4)
|
if (rods.amount >= 4)
|
||||||
new /obj/item/weapon/table_parts/reinforced( user.loc )
|
new /obj/item/weapon/table_parts/reinforced( user.loc )
|
||||||
to_chat(user, "<span class='notice'>You reinforce the [name].</span>")
|
to_chat(user, "<span class='notice'>You reinforce the [name].</span>")
|
||||||
rods.use(4)
|
rods.use(4)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else if (rods.amount < 4)
|
else if (rods.amount < 4)
|
||||||
to_chat(user, "<span class='warning'>You need at least four rods to do this.</span>")
|
to_chat(user, "<span class='warning'>You need at least four rods to do this.</span>")
|
||||||
|
|
||||||
/obj/item/weapon/table_parts/attack_self(mob/user as mob)
|
/obj/item/weapon/table_parts/attack_self(mob/user as mob)
|
||||||
new /obj/structure/table( user.loc )
|
new /obj/structure/table( user.loc )
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob)
|
/obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob)
|
||||||
new /obj/structure/table/reinforced( user.loc )
|
new /obj/structure/table/reinforced( user.loc )
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
|
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
|
||||||
new /obj/structure/table/woodentable( user.loc )
|
new /obj/structure/table/woodentable( user.loc )
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/table_parts/wood/poker/attack_self(mob/user as mob)
|
/obj/item/weapon/table_parts/wood/poker/attack_self(mob/user as mob)
|
||||||
new /obj/structure/table/woodentable/poker( user.loc )
|
new /obj/structure/table/woodentable/poker( user.loc )
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -108,6 +108,6 @@
|
|||||||
/obj/item/weapon/rack_parts/attack_self(mob/user as mob)
|
/obj/item/weapon/rack_parts/attack_self(mob/user as mob)
|
||||||
var/obj/structure/rack/R = new /obj/structure/rack( user.loc )
|
var/obj/structure/rack/R = new /obj/structure/rack( user.loc )
|
||||||
R.add_fingerprint(user)
|
R.add_fingerprint(user)
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ LINEN BINS
|
|||||||
else if(istype(I, /obj/item/weapon/kitchen/utensil/knife/plastic))
|
else if(istype(I, /obj/item/weapon/kitchen/utensil/knife/plastic))
|
||||||
cut_time=160
|
cut_time=160
|
||||||
if(cut_time)
|
if(cut_time)
|
||||||
to_chat(user, "<span class='notice'>You begin cutting the [src].</span>")
|
to_chat(user, "<span class='notice'>You begin cutting the [src].</span>")
|
||||||
if(do_after(user, src, cut_time))
|
if(do_after(user, src, cut_time))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user, "<span class='notice'>You have cut the [src] into rags.</span>")
|
to_chat(user, "<span class='notice'>You have cut the [src] into rags.</span>")
|
||||||
var/turf/location = get_turf(src)
|
var/turf/location = get_turf(src)
|
||||||
for(var/x=0; x<=8; x++)
|
for(var/x=0; x<=8; x++)
|
||||||
var/obj/item/weapon/reagent_containers/glass/rag/S = new/obj/item/weapon/reagent_containers/glass/rag/(location)
|
var/obj/item/weapon/reagent_containers/glass/rag/S = new/obj/item/weapon/reagent_containers/glass/rag/(location)
|
||||||
@@ -47,7 +47,7 @@ LINEN BINS
|
|||||||
//todo: sharp thing code/game/objects/objs.dm
|
//todo: sharp thing code/game/objects/objs.dm
|
||||||
|
|
||||||
/obj/item/weapon/bedsheet/attack_self(mob/user as mob)
|
/obj/item/weapon/bedsheet/attack_self(mob/user as mob)
|
||||||
user.drop_item(src)
|
user.drop_item(src, force_drop = 1)
|
||||||
if(layer == initial(layer))
|
if(layer == initial(layer))
|
||||||
layer = 5
|
layer = 5
|
||||||
else
|
else
|
||||||
@@ -141,11 +141,11 @@ LINEN BINS
|
|||||||
/obj/structure/bedsheetbin/examine(mob/user)
|
/obj/structure/bedsheetbin/examine(mob/user)
|
||||||
..()
|
..()
|
||||||
if(amount == 0)
|
if(amount == 0)
|
||||||
to_chat(user, "<span class='info'>There are no bed sheets in the bin.</span>")
|
to_chat(user, "<span class='info'>There are no bed sheets in the bin.</span>")
|
||||||
else if(amount == 1)
|
else if(amount == 1)
|
||||||
to_chat(user, "<span class='info'>There is one bed sheet in the bin.</span>")
|
to_chat(user, "<span class='info'>There is one bed sheet in the bin.</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='info'>There are [amount] bed sheets in the bin.</span>")
|
to_chat(user, "<span class='info'>There are [amount] bed sheets in the bin.</span>")
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/bedsheetbin/update_icon()
|
/obj/structure/bedsheetbin/update_icon()
|
||||||
@@ -157,15 +157,14 @@ LINEN BINS
|
|||||||
|
|
||||||
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob)
|
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(istype(I, /obj/item/weapon/bedsheet))
|
if(istype(I, /obj/item/weapon/bedsheet))
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
sheets.Add(I)
|
sheets.Add(I)
|
||||||
amount++
|
amount++
|
||||||
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
|
to_chat(user, "<span class='notice'>You put \the [I] in \the [src].</span>")
|
||||||
else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
|
else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
|
||||||
user.drop_item(I, src)
|
if(user.drop_item(I, src))
|
||||||
hidden = I
|
hidden = I
|
||||||
to_chat(user, "<span class='notice'>You hide [I] among the sheets.</span>")
|
to_chat(user, "<span class='notice'>You hide [I] among the sheets.</span>")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/bedsheetbin/attack_paw(mob/user as mob)
|
/obj/structure/bedsheetbin/attack_paw(mob/user as mob)
|
||||||
@@ -186,11 +185,11 @@ LINEN BINS
|
|||||||
|
|
||||||
B.loc = user.loc
|
B.loc = user.loc
|
||||||
user.put_in_hands(B)
|
user.put_in_hands(B)
|
||||||
to_chat(user, "<span class='notice'>You take [B] out of [src].</span>")
|
to_chat(user, "<span class='notice'>You take [B] out of [src].</span>")
|
||||||
|
|
||||||
if(hidden)
|
if(hidden)
|
||||||
hidden.loc = user.loc
|
hidden.loc = user.loc
|
||||||
to_chat(user, "<span class='notice'>[hidden] falls out of [B]!</span>")
|
to_chat(user, "<span class='notice'>[hidden] falls out of [B]!</span>")
|
||||||
hidden = null
|
hidden = null
|
||||||
|
|
||||||
|
|
||||||
@@ -209,7 +208,7 @@ LINEN BINS
|
|||||||
B = new /obj/item/weapon/bedsheet(loc)
|
B = new /obj/item/weapon/bedsheet(loc)
|
||||||
|
|
||||||
B.loc = loc
|
B.loc = loc
|
||||||
to_chat(user, "<span class='notice'>You telekinetically remove [B] from [src].</span>")
|
to_chat(user, "<span class='notice'>You telekinetically remove [B] from [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
if(hidden)
|
if(hidden)
|
||||||
|
|||||||
@@ -35,18 +35,17 @@
|
|||||||
|
|
||||||
/obj/structure/coatrack/attackby(obj/item/clothing/C, mob/user)
|
/obj/structure/coatrack/attackby(obj/item/clothing/C, mob/user)
|
||||||
if (istype(C, /obj/item/clothing/suit/storage/det_suit) && !suit)
|
if (istype(C, /obj/item/clothing/suit/storage/det_suit) && !suit)
|
||||||
to_chat(user, "<span class='notice'>You place your [C] on the [src]</span>")
|
if(user.drop_item(C, src))
|
||||||
playsound(get_turf(src), "rustle", 50, 1, -5)
|
to_chat(user, "<span class='notice'>You place your [C] on the [src]</span>")
|
||||||
user.drop_item(C, src)
|
playsound(get_turf(src), "rustle", 50, 1, -5)
|
||||||
suit = C
|
suit = C
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
else if (istype(C, /obj/item/clothing/head/det_hat) && !hat)
|
else if (istype(C, /obj/item/clothing/head/det_hat) && !hat)
|
||||||
to_chat(user, "<span class='notice'>You place your [C] on the [src]</span>")
|
if(user.drop_item(C, src))
|
||||||
playsound(get_turf(src), "rustle", 50, 1, -5)
|
to_chat(user, "<span class='notice'>You place your [C] on the [src]</span>")
|
||||||
user.drop_item(C, src)
|
playsound(get_turf(src), "rustle", 50, 1, -5)
|
||||||
hat = C
|
hat = C
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|||||||
@@ -93,8 +93,8 @@
|
|||||||
if(F.wielded)
|
if(F.wielded)
|
||||||
to_chat(user, "<span class='warning'>Unwield [F] first!</span>")
|
to_chat(user, "<span class='warning'>Unwield [F] first!</span>")
|
||||||
return
|
return
|
||||||
|
user.drop_item(F, src, force_drop = 1)
|
||||||
fireaxe = O
|
fireaxe = O
|
||||||
user.drop_item(F, src)
|
|
||||||
visible_message("<span class='notice'>[user] places [F] back into [src].</span>", \
|
visible_message("<span class='notice'>[user] places [F] back into [src].</span>", \
|
||||||
"<span class='notice'>You place [F] back into [src].</span>")
|
"<span class='notice'>You place [F] back into [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -432,20 +432,20 @@
|
|||||||
return
|
return
|
||||||
if(locked && !broken)
|
if(locked && !broken)
|
||||||
if (allowed(user))
|
if (allowed(user))
|
||||||
to_chat(user, "<span class='notice'>You unlock [src].</span>")
|
to_chat(user, "<span class='notice'>You unlock [src].</span>")
|
||||||
src.locked = 0
|
src.locked = 0
|
||||||
overlays.len = 0
|
overlays.len = 0
|
||||||
overlays += greenlight
|
overlays += greenlight
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>[src] is locked.</span>")
|
to_chat(user, "<span class='notice'>[src] is locked.</span>")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/structure/closet/crate/secure/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/card) && src.allowed(user) && !locked && !opened && !broken)
|
if(istype(W, /obj/item/weapon/card) && src.allowed(user) && !locked && !opened && !broken)
|
||||||
to_chat(user, "<span class='notice'>You lock \the [src].</span>")
|
to_chat(user, "<span class='notice'>You lock \the [src].</span>")
|
||||||
src.locked = 1
|
src.locked = 1
|
||||||
overlays.len = 0
|
overlays.len = 0
|
||||||
overlays += redlight
|
overlays += redlight
|
||||||
@@ -458,7 +458,7 @@
|
|||||||
playsound(get_turf(src), "sparks", 60, 1)
|
playsound(get_turf(src), "sparks", 60, 1)
|
||||||
src.locked = 0
|
src.locked = 0
|
||||||
src.broken = 1
|
src.broken = 1
|
||||||
to_chat(user, "<span class='notice'>You unlock \the [src].</span>")
|
to_chat(user, "<span class='notice'>You unlock \the [src].</span>")
|
||||||
return
|
return
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -472,22 +472,23 @@
|
|||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/stack/cable_coil))
|
else if(istype(W, /obj/item/stack/cable_coil))
|
||||||
if(rigged)
|
if(rigged)
|
||||||
to_chat(user, "<span class='notice'>[src] is already rigged!</span>")
|
to_chat(user, "<span class='notice'>[src] is already rigged!</span>")
|
||||||
return
|
return
|
||||||
to_chat(user, "<span class='notice'>You rig [src].</span>")
|
|
||||||
user.drop_item(W)
|
if(user.drop_item(W))
|
||||||
qdel(W)
|
to_chat(user, "<span class='notice'>You rig [src].</span>")
|
||||||
W = null
|
qdel(W)
|
||||||
rigged = 1
|
W = null
|
||||||
|
rigged = 1
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/device/radio/electropack))
|
else if(istype(W, /obj/item/device/radio/electropack))
|
||||||
if(rigged)
|
if(rigged)
|
||||||
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
if(user.drop_item(W, src.loc))
|
||||||
user.drop_item(W, src.loc)
|
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||||
if(rigged)
|
if(rigged)
|
||||||
to_chat(user, "<span class='notice'>You cut away the wiring.</span>")
|
to_chat(user, "<span class='notice'>You cut away the wiring.</span>")
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
||||||
rigged = 0
|
rigged = 0
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
switch(state)
|
switch(state)
|
||||||
if(0)
|
if(0)
|
||||||
if(istype(W, /obj/item/weapon/circuitboard/airlock) && W:icon_state != "door_electronics_smoked")
|
if(istype(W, /obj/item/weapon/circuitboard/airlock) && W:icon_state != "door_electronics_smoked")
|
||||||
user.drop_item(W, src)
|
if(user.drop_item(W, src))
|
||||||
circuit=W
|
circuit=W
|
||||||
state++
|
state++
|
||||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
if(istype(W, /obj/item/weapon/crowbar))
|
if(istype(W, /obj/item/weapon/crowbar))
|
||||||
var/obj/machinery/constructable_frame/machine_frame/MF = new /obj/machinery/constructable_frame/machine_frame(T)
|
var/obj/machinery/constructable_frame/machine_frame/MF = new /obj/machinery/constructable_frame/machine_frame(T)
|
||||||
MF.state = 1
|
MF.state = 1
|
||||||
@@ -226,10 +226,10 @@
|
|||||||
if(locked)
|
if(locked)
|
||||||
to_chat(user, "<span class='rose'>It's locked, you can't put anything into it.</span>")
|
to_chat(user, "<span class='rose'>It's locked, you can't put anything into it.</span>")
|
||||||
else if(!occupant)
|
else if(!occupant)
|
||||||
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src], and it floats as the hoverfield activates.</span>")
|
if(user.drop_item(W, src))
|
||||||
user.drop_item(W, src)
|
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src], and it floats as the hoverfield activates.</span>")
|
||||||
occupant=W
|
occupant=W
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/structure/displaycase/attack_paw(mob/user as mob)
|
/obj/structure/displaycase/attack_paw(mob/user as mob)
|
||||||
return src.attack_hand(user)
|
return src.attack_hand(user)
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
busy = 1
|
busy = 1
|
||||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 100, 1)
|
||||||
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
|
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
|
||||||
user.drop_item(W, src)
|
user.drop_item(W, src, force_drop = 1)
|
||||||
|
|
||||||
if(do_after(user, src, 40))
|
if(do_after(user, src, 40))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
|
|||||||
@@ -14,9 +14,9 @@
|
|||||||
return
|
return
|
||||||
if(istype(O, /obj/item/weapon/extinguisher))
|
if(istype(O, /obj/item/weapon/extinguisher))
|
||||||
if(!has_extinguisher && opened)
|
if(!has_extinguisher && opened)
|
||||||
user.drop_item(O, src)
|
if(user.drop_item(O, src))
|
||||||
has_extinguisher = O
|
has_extinguisher = O
|
||||||
to_chat(user, "<span class='notice'>You place [O] in [src].</span>")
|
to_chat(user, "<span class='notice'>You place [O] in [src].</span>")
|
||||||
else
|
else
|
||||||
opened = !opened
|
opened = !opened
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -275,9 +275,9 @@
|
|||||||
else if(istype(W, /obj/item/pipe))
|
else if(istype(W, /obj/item/pipe))
|
||||||
var/obj/item/pipe/P = W
|
var/obj/item/pipe/P = W
|
||||||
if(P.pipe_type in list(0, 1, 5)) //Simple pipes, simple bends, and simple manifolds.
|
if(P.pipe_type in list(0, 1, 5)) //Simple pipes, simple bends, and simple manifolds.
|
||||||
user.drop_item(P, src.loc)
|
if(user.drop_item(P, src.loc))
|
||||||
user.visible_message("<span class='warning'>[user] fits \the [P] into \the [src]</span>", \
|
user.visible_message("<span class='warning'>[user] fits \the [P] into \the [src]</span>", \
|
||||||
"<span class='notice'>You fit \the [P] into \the [src]</span>")
|
"<span class='notice'>You fit \the [P] into \the [src]</span>")
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user