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)
|
||||
if(istype(W, /obj/item/pipe)) //lets you autodrop
|
||||
var/obj/item/pipe/pipe = W
|
||||
user.drop_item(pipe)
|
||||
pipe.setPipingLayer(src.piping_layer) //align it with us
|
||||
return 1
|
||||
if(user.drop_item(pipe))
|
||||
pipe.setPipingLayer(src.piping_layer) //align it with us
|
||||
return 1
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
if(src.machine_flags & WRENCHMOVE)
|
||||
|
||||
@@ -83,11 +83,11 @@
|
||||
if(panel_open && !cell)
|
||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||
if(istype(C))
|
||||
usr.drop_item(C, src)
|
||||
cell = C
|
||||
C.add_fingerprint(usr)
|
||||
if(usr.drop_item(C, src))
|
||||
cell = C
|
||||
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()
|
||||
return
|
||||
|
||||
@@ -114,10 +114,10 @@
|
||||
// insert cell
|
||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||
if(istype(C))
|
||||
user.drop_item(C, src)
|
||||
cell = C
|
||||
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>")
|
||||
if(user.drop_item(C, src))
|
||||
cell = C
|
||||
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>")
|
||||
else
|
||||
to_chat(user, "The hatch must be open to insert a power cell.")
|
||||
return
|
||||
@@ -253,11 +253,11 @@
|
||||
if(panel_open && !cell)
|
||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||
if(istype(C))
|
||||
usr.drop_item(C, src)
|
||||
cell = C
|
||||
C.add_fingerprint(usr)
|
||||
if(usr.drop_item(C, src))
|
||||
cell = C
|
||||
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()
|
||||
else
|
||||
|
||||
@@ -140,13 +140,13 @@
|
||||
/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
||||
src.add_fingerprint(usr)
|
||||
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>")
|
||||
user.drop_item(W, src)
|
||||
if(istype(W, /obj/item/pipe))
|
||||
returnToPool(W)
|
||||
else
|
||||
qdel(W)
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(usr, "<span class='notice'>You put [W] back to [src].</span>")
|
||||
if(istype(W, /obj/item/pipe))
|
||||
returnToPool(W)
|
||||
else
|
||||
qdel(W)
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -46,8 +46,8 @@
|
||||
/datum/context_click/pipe_planner/action(obj/item/used_item, mob/user, params)
|
||||
if(istype(used_item, /obj/item/pipe))
|
||||
var/obj/item/pipe/pipe = used_item
|
||||
user.drop_item(pipe, get_turf(holder))
|
||||
var/dis = PIPING_LAYER_DEFAULT + (PIPING_LAYER_INCREMENT * return_clicked_id_by_params(params))
|
||||
pipe.setPipingLayer(dis)
|
||||
return 1
|
||||
if(user.drop_item(pipe, get_turf(holder)))
|
||||
var/dis = PIPING_LAYER_DEFAULT + (PIPING_LAYER_INCREMENT * return_clicked_id_by_params(params))
|
||||
pipe.setPipingLayer(dis)
|
||||
return 1
|
||||
return 0
|
||||
@@ -894,8 +894,8 @@
|
||||
|
||||
if(istype(W, /obj/item/pipe_meter))
|
||||
var/obj/item/pipe_meter/meter = W
|
||||
user.drop_item(meter, src.loc)
|
||||
meter.setAttachLayer(src.piping_layer)
|
||||
if(user.drop_item(meter, src.loc))
|
||||
meter.setAttachLayer(src.piping_layer)
|
||||
|
||||
if(istype(W,/obj/item/device/analyzer))
|
||||
var/obj/item/device/analyzer/A = W
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
if(cur_assembly)
|
||||
to_chat(user, "<span class='warning'>There is already a fuel rod assembly in there!</span>")
|
||||
else
|
||||
cur_assembly = I
|
||||
user.drop_item(I, src)
|
||||
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>")
|
||||
if(user.drop_item(I, src))
|
||||
cur_assembly = I
|
||||
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>")
|
||||
|
||||
/obj/machinery/rust_fuel_assembly_port/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -73,10 +73,10 @@
|
||||
|
||||
if(istype(W, /obj/item/weapon/fuel_assembly) && !cur_assembly)
|
||||
if(emergency_insert_ready)
|
||||
cur_assembly = W
|
||||
user.drop_item(W, src)
|
||||
emergency_insert_ready = 0
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
cur_assembly = W
|
||||
emergency_insert_ready = 0
|
||||
return
|
||||
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
if (contents.len >= max_butts)
|
||||
to_chat(user, "This ashtray is full.")
|
||||
return
|
||||
user.drop_item(W, src)
|
||||
user.drop_item(W, src, force_drop = 1)
|
||||
var/obj/item/clothing/mask/cigarette/cig = W
|
||||
if(istype(cig, /obj/item/weapon/cigbutt))
|
||||
to_chat(user, "You drop the [cig] into [src].")
|
||||
|
||||
@@ -89,11 +89,11 @@ log transactions
|
||||
if(istype(I, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/idcard = I
|
||||
if(!held_card)
|
||||
usr.drop_item(idcard, src)
|
||||
held_card = idcard
|
||||
if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number)
|
||||
authenticated_account = null
|
||||
src.attack_hand(user)
|
||||
if(usr.drop_item(idcard, src))
|
||||
held_card = idcard
|
||||
if(authenticated_account && held_card.associated_account_number != authenticated_account.account_number)
|
||||
authenticated_account = null
|
||||
src.attack_hand(user)
|
||||
else if(authenticated_account)
|
||||
if(istype(I,/obj/item/weapon/spacecash))
|
||||
var/obj/item/weapon/spacecash/dosh = I
|
||||
@@ -456,8 +456,8 @@ log transactions
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item(I, src)
|
||||
held_card = I
|
||||
if(usr.drop_item(I, src))
|
||||
held_card = I
|
||||
if("logout")
|
||||
authenticated_account = null
|
||||
failsafe = 1
|
||||
|
||||
@@ -155,8 +155,8 @@ var/list/alldepartments = list("Central Command")
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item(I, src)
|
||||
scan = I
|
||||
if(usr.drop_item(I, src))
|
||||
scan = I
|
||||
authenticated = 0
|
||||
|
||||
if(href_list["dept"])
|
||||
@@ -180,11 +180,11 @@ var/list/alldepartments = list("Central Command")
|
||||
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
if(!tofax)
|
||||
user.drop_item(O, src)
|
||||
tofax = O
|
||||
to_chat(user, "<span class='notice'>You insert the paper into \the [src].</span>")
|
||||
flick("faxsend", src)
|
||||
updateUsrDialog()
|
||||
if(user.drop_item(O, src))
|
||||
tofax = O
|
||||
to_chat(user, "<span class='notice'>You insert the paper into \the [src].</span>")
|
||||
flick("faxsend", src)
|
||||
updateUsrDialog()
|
||||
else
|
||||
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
|
||||
if(!scan)
|
||||
usr.drop_item(idcard, src)
|
||||
scan = idcard
|
||||
if(usr.drop_item(idcard, src))
|
||||
scan = idcard
|
||||
|
||||
else if(istype(O, /obj/item/weapon/wrench))
|
||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
|
||||
@@ -122,9 +122,9 @@
|
||||
if(battery)
|
||||
to_chat(user, "<span class='notice'>The pod already has a battery.</span>")
|
||||
return
|
||||
user.drop_item(W, src)
|
||||
battery = W
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
battery = W
|
||||
return
|
||||
if(istype(W, /obj/item/device/spacepod_equipment))
|
||||
if(!hatch_open)
|
||||
return ..()
|
||||
@@ -136,13 +136,12 @@
|
||||
to_chat(user, "<span class='notice'>The pod already has a weapon system, remove it first.</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You insert \the [W] into the equipment system.</span>")
|
||||
user.drop_item(W, equipment_system)
|
||||
equipment_system.weapon_system = W
|
||||
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.
|
||||
return
|
||||
|
||||
if(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.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.
|
||||
return
|
||||
|
||||
/obj/spacepod/attack_hand(mob/user as mob)
|
||||
if(!hatch_open)
|
||||
|
||||
@@ -82,9 +82,8 @@ STI KALY - blind
|
||||
var/mob/living/carbon/H = affected_mob
|
||||
if(prob(chance))
|
||||
if(!istype(H.r_hand, /obj/item/weapon/staff))
|
||||
if(H.r_hand) //no need to drop if we aren't holding anything
|
||||
H.drop_item(H.r_hand)
|
||||
H.put_in_r_hand( new /obj/item/weapon/staff(H) )
|
||||
if(H.r_hand || H.drop_item(H.r_hand))
|
||||
H.put_in_r_hand( new /obj/item/weapon/staff(H) )
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
@@ -180,8 +180,8 @@
|
||||
else
|
||||
var/atom_name = used_atom.name
|
||||
if(permanence || (Co_KEEP in given_step))
|
||||
user.drop_item(used_atom, holder)
|
||||
used_atoms.Add(list("[steps.Find(given_step)]" = used_atom))
|
||||
if(user.drop_item(used_atom, holder))
|
||||
used_atoms.Add(list("[steps.Find(given_step)]" = used_atom))
|
||||
else
|
||||
qdel(used_atom)
|
||||
given_step[Co_AMOUNT]--
|
||||
@@ -352,10 +352,10 @@
|
||||
else
|
||||
var/atom_name = used_atom.name
|
||||
if(permanence || (Co_KEEP in given_step))
|
||||
user.drop_item(used_atom, holder)
|
||||
if(!("[index][diff == FORWARD ? "+" : "-"]" in used_atoms))
|
||||
used_atoms.Add(list("[index][diff == FORWARD ? "+" : "-"]" = list()))
|
||||
used_atoms["[index][diff == FORWARD ? "+" : "-"]"] += used_atom
|
||||
if(user.drop_item(used_atom, holder))
|
||||
if(!("[index][diff == FORWARD ? "+" : "-"]" in used_atoms))
|
||||
used_atoms.Add(list("[index][diff == FORWARD ? "+" : "-"]" = list()))
|
||||
used_atoms["[index][diff == FORWARD ? "+" : "-"]"] += used_atom
|
||||
else
|
||||
qdel(used_atom)
|
||||
given_step[Co_AMOUNT]--
|
||||
|
||||
@@ -141,8 +141,8 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
|
||||
// Attach
|
||||
else
|
||||
if(istype(I, /obj/item/device/assembly/signaler))
|
||||
L.drop_item(I)
|
||||
Attach(colour, I)
|
||||
if(L.drop_item(I))
|
||||
Attach(colour, I)
|
||||
else
|
||||
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
|
||||
|
||||
/obj/item/weapon/beach_ball/afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||
user.drop_item(src)
|
||||
src.throw_at(target, throw_range, throw_speed)
|
||||
if(user.drop_item(src))
|
||||
src.throw_at(target, throw_range, throw_speed)
|
||||
|
||||
/obj/effect/stop
|
||||
var/victim = null
|
||||
|
||||
@@ -358,19 +358,19 @@
|
||||
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(!weight1)
|
||||
user.drop_item(I, src)
|
||||
weight1 = I
|
||||
user.show_message("<span class='notice'>You tie [weight1] to the [src].</span>")
|
||||
update_icon()
|
||||
//del(I)
|
||||
return
|
||||
if(user.drop_item(I, src))
|
||||
weight1 = I
|
||||
user.show_message("<span class='notice'>You tie [weight1] to the [src].</span>")
|
||||
update_icon()
|
||||
//del(I)
|
||||
return
|
||||
if(!weight2) //just in case
|
||||
user.drop_item(I, src)
|
||||
weight2 = I
|
||||
user.show_message("<span class='notice'>You tie [weight2] to the [src].</span>")
|
||||
update_icon()
|
||||
//del(I)
|
||||
return
|
||||
if(user.drop_item(I, src))
|
||||
weight2 = I
|
||||
user.show_message("<span class='notice'>You tie [weight2] to the [src].</span>")
|
||||
update_icon()
|
||||
//del(I)
|
||||
return
|
||||
else
|
||||
user.show_message("<span class='rose'>There are already two weights on this [src]!</span>")
|
||||
return
|
||||
@@ -423,14 +423,14 @@
|
||||
IED = null
|
||||
return
|
||||
if(2,3)
|
||||
user.drop_item(I, src)
|
||||
var/turf/bombturf = get_turf(src)
|
||||
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>."
|
||||
message_admins(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>")
|
||||
desc = "A trap used to catch bears and other legged creatures. <span class='warning'>There is an IED hooked up to it.</span>"
|
||||
if(user.drop_item(I, src))
|
||||
var/turf/bombturf = get_turf(src)
|
||||
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>."
|
||||
message_admins(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>")
|
||||
desc = "A trap used to catch bears and other legged creatures. <span class='warning'>There is an IED hooked up to it.</span>"
|
||||
else
|
||||
to_chat(user, "<span class='danger'>You shouldn't be reading this message! Contact a coder or someone, something broke!</span>")
|
||||
IED = null
|
||||
|
||||
@@ -224,11 +224,10 @@
|
||||
if(beaker)
|
||||
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
|
||||
return
|
||||
|
||||
beaker = item
|
||||
user.drop_item(beaker, src)
|
||||
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
|
||||
return
|
||||
if(user.drop_item(beaker, src))
|
||||
beaker = item
|
||||
user.visible_message("[user] adds \a [item] to \the [src]!", "You add \a [item] to \the [src]!")
|
||||
return
|
||||
else if(istype(item, /obj/item/weapon/grab)) //sanity checks, you chucklefucks
|
||||
var/obj/item/weapon/grab/G = item
|
||||
if (!ismob(G.affecting))
|
||||
|
||||
@@ -75,15 +75,14 @@
|
||||
|
||||
/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))
|
||||
visible_message("<span class='notice'>[user] puts \a [W] on \the [src]'s nose.</span>")
|
||||
user.drop_item(W, src)
|
||||
carrot = W
|
||||
overlays += "snowman_carrot"
|
||||
speak -= "Would you happen to have a carrot for my nose?"
|
||||
src.say("Ah, most excellent!")
|
||||
if(prob(30))
|
||||
call(/obj/item/weapon/winter_gift/proc/pick_a_gift)(src.loc)
|
||||
|
||||
if(user.drop_item(W, src))
|
||||
visible_message("<span class='notice'>[user] puts \a [W] on \the [src]'s nose.</span>")
|
||||
carrot = W
|
||||
overlays += "snowman_carrot"
|
||||
speak -= "Would you happen to have a carrot for my nose?"
|
||||
src.say("Ah, most excellent!")
|
||||
if(prob(30))
|
||||
call(/obj/item/weapon/winter_gift/proc/pick_a_gift)(src.loc)
|
||||
|
||||
else if(istype(W,/obj/item/clothing/head/))
|
||||
if(hat)
|
||||
@@ -92,10 +91,10 @@
|
||||
hat = null
|
||||
else
|
||||
speak += "I feel so dandy!"
|
||||
user.drop_item(W, src)
|
||||
hat = W
|
||||
if(user.drop_item(W, src))
|
||||
hat = W
|
||||
|
||||
overlays += image('icons/mob/head.dmi', hat.icon_state)
|
||||
overlays += image('icons/mob/head.dmi', hat.icon_state)
|
||||
|
||||
else ..()
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ var/bomb_set
|
||||
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
|
||||
if (src.extended)
|
||||
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.add_fingerprint(user)
|
||||
return
|
||||
@@ -188,7 +188,7 @@ var/bomb_set
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
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
|
||||
if (src.auth)
|
||||
if (href_list["type"])
|
||||
|
||||
@@ -81,9 +81,9 @@
|
||||
|
||||
if ((( istype(O, /obj/item/weapon) ) || user.get_active_hand() == O))
|
||||
|
||||
user.drop_item(O)
|
||||
if (O.loc != src.loc)
|
||||
step(O, get_dir(O, src))
|
||||
if(user.drop_item(O))
|
||||
if (O.loc != src.loc)
|
||||
step(O, get_dir(O, src))
|
||||
return
|
||||
else
|
||||
if(!ismob(O)) //humans only
|
||||
|
||||
@@ -86,10 +86,10 @@
|
||||
if (src.holding)
|
||||
return 0
|
||||
var/obj/item/weapon/tank/T = W
|
||||
user.drop_item(T, src)
|
||||
src.holding = T
|
||||
update_icon()
|
||||
return 1
|
||||
if(user.drop_item(T, src))
|
||||
src.holding = T
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
else if (istype(W, /obj/item/weapon/wrench))
|
||||
if(connected_port)
|
||||
|
||||
@@ -177,9 +177,10 @@
|
||||
else
|
||||
to_chat(user, "You cannot recycle your built in tools.")
|
||||
return 1
|
||||
user.drop_item(I, src)
|
||||
materials.removeFrom(I.materials)
|
||||
user.visible_message("[user] puts \the [I] into \the [src]'s recycling unit.",
|
||||
"You put \the [I] in \the [src]'s reycling unit.")
|
||||
qdel(I)
|
||||
|
||||
if(user.drop_item(I, src))
|
||||
materials.removeFrom(I.materials)
|
||||
user.visible_message("[user] puts \the [I] into \the [src]'s recycling unit.",
|
||||
"You put \the [I] in \the [src]'s reycling unit.")
|
||||
qdel(I)
|
||||
return 1
|
||||
|
||||
@@ -71,12 +71,12 @@
|
||||
if(health > 0)
|
||||
to_chat(user, "<span class='warning'>There is already a queen in there.</span>")
|
||||
else
|
||||
health = 10
|
||||
nutrilevel = min(10,nutrilevel+10)
|
||||
user.drop_item(O)
|
||||
qdel(O)
|
||||
to_chat(user, "<span class='notice'>You carefully insert the queen into [src], she gets busy making a hive.</span>")
|
||||
bees_in_hive = 0
|
||||
if(user.drop_item(O))
|
||||
health = 10
|
||||
nutrilevel = min(10,nutrilevel+10)
|
||||
qdel(O)
|
||||
to_chat(user, "<span class='notice'>You carefully insert the queen into [src], she gets busy making a hive.</span>")
|
||||
bees_in_hive = 0
|
||||
else if(istype(O, /obj/item/beezeez))
|
||||
beezeez += 100
|
||||
nutrilevel += 10
|
||||
|
||||
@@ -86,19 +86,19 @@
|
||||
return
|
||||
// Meat for biomass.
|
||||
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>")
|
||||
stored_matter += 50
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
return
|
||||
if(user.drop_item(W))
|
||||
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
||||
stored_matter += 50
|
||||
qdel(W)
|
||||
return
|
||||
// Steel for matter.
|
||||
else if(prints_prosthetics && istype(W, /obj/item/stack/sheet/metal))
|
||||
var/obj/item/stack/sheet/metal/M = W
|
||||
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
||||
stored_matter += M.amount * 10
|
||||
user.drop_item(M)
|
||||
returnToPool(M)
|
||||
return
|
||||
if(user.drop_item(M))
|
||||
visible_message("<span class='notice'>\The [src] processes \the [W].</span>")
|
||||
stored_matter += M.amount * 10
|
||||
returnToPool(M)
|
||||
return
|
||||
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>")
|
||||
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)
|
||||
..()
|
||||
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
var/turf/T = get_turf(src.loc)
|
||||
var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T)
|
||||
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>")
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
if(user.drop_item(W))
|
||||
qdel(W)
|
||||
var/turf/T = get_turf(src.loc)
|
||||
var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T)
|
||||
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>")
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
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)
|
||||
|
||||
@@ -948,17 +948,17 @@ Auto Patrol: []"},
|
||||
switch(build_step)
|
||||
if(0,1)
|
||||
if( istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) )
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the robot leg to [src].</span>")
|
||||
name = "legs/frame assembly"
|
||||
if(build_step == 1)
|
||||
item_state = "ed209_leg"
|
||||
icon_state = "ed209_leg"
|
||||
else
|
||||
item_state = "ed209_legs"
|
||||
icon_state = "ed209_legs"
|
||||
if(user.drop_item(W))
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the robot leg to [src].</span>")
|
||||
name = "legs/frame assembly"
|
||||
if(build_step == 1)
|
||||
item_state = "ed209_leg"
|
||||
icon_state = "ed209_leg"
|
||||
else
|
||||
item_state = "ed209_legs"
|
||||
icon_state = "ed209_legs"
|
||||
|
||||
if(2)
|
||||
if( istype(W, /obj/item/clothing/suit/redtag) )
|
||||
@@ -966,13 +966,13 @@ Auto Patrol: []"},
|
||||
else if( istype(W, /obj/item/clothing/suit/bluetag) )
|
||||
lasercolor = "b"
|
||||
if( lasercolor || istype(W, /obj/item/clothing/suit/armor/vest) )
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the armor to [src].</span>")
|
||||
name = "vest/legs/frame assembly"
|
||||
item_state = "[lasercolor]ed209_shell"
|
||||
icon_state = "[lasercolor]ed209_shell"
|
||||
if(user.drop_item(W))
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the armor to [src].</span>")
|
||||
name = "vest/legs/frame assembly"
|
||||
item_state = "[lasercolor]ed209_shell"
|
||||
icon_state = "[lasercolor]ed209_shell"
|
||||
|
||||
if(3)
|
||||
if( istype(W, /obj/item/weapon/weldingtool) )
|
||||
@@ -983,23 +983,23 @@ Auto Patrol: []"},
|
||||
to_chat(user, "<span class='notice'>You welded the vest to [src].</span>")
|
||||
if(4)
|
||||
if( istype(W, /obj/item/clothing/head/helmet) )
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the helmet to [src].</span>")
|
||||
name = "covered and shielded frame assembly"
|
||||
item_state = "[lasercolor]ed209_hat"
|
||||
icon_state = "[lasercolor]ed209_hat"
|
||||
if(user.drop_item(W))
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the helmet to [src].</span>")
|
||||
name = "covered and shielded frame assembly"
|
||||
item_state = "[lasercolor]ed209_hat"
|
||||
icon_state = "[lasercolor]ed209_hat"
|
||||
|
||||
if(5)
|
||||
if( isprox(W) )
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the prox sensor to [src].</span>")
|
||||
name = "covered, shielded and sensored frame assembly"
|
||||
item_state = "[lasercolor]ed209_prox"
|
||||
icon_state = "[lasercolor]ed209_prox"
|
||||
if(user.drop_item(W))
|
||||
qdel(W)
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the prox sensor to [src].</span>")
|
||||
name = "covered, shielded and sensored frame assembly"
|
||||
item_state = "[lasercolor]ed209_prox"
|
||||
icon_state = "[lasercolor]ed209_prox"
|
||||
|
||||
if(6)
|
||||
if( istype(W, /obj/item/stack/cable_coil) )
|
||||
@@ -1014,6 +1014,9 @@ Auto Patrol: []"},
|
||||
name = "wired ED-209 assembly"
|
||||
|
||||
if(7)
|
||||
if(!user.drop_item(W))
|
||||
return
|
||||
|
||||
switch(lasercolor)
|
||||
if("b")
|
||||
if( !istype(W, /obj/item/weapon/gun/energy/laser/bluetag) )
|
||||
@@ -1033,7 +1036,6 @@ Auto Patrol: []"},
|
||||
to_chat(user, "<span class='notice'>You add [W] to [src].</span>")
|
||||
src.item_state = "[lasercolor]ed209_taser"
|
||||
src.icon_state = "[lasercolor]ed209_taser"
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
|
||||
if(8)
|
||||
@@ -1049,11 +1051,13 @@ Auto Patrol: []"},
|
||||
|
||||
if(9)
|
||||
if( istype(W, /obj/item/weapon/cell) )
|
||||
if(!user.drop_item(W))
|
||||
return
|
||||
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You complete the ED-209.</span>")
|
||||
var/turf/T = get_turf(src)
|
||||
new /obj/machinery/bot/ed209(T,created_name,lasercolor)
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -178,11 +178,11 @@
|
||||
if ( get_total_ferts() >= Max_Fertilizers )
|
||||
to_chat(user, "The fertilizer storage is full!")
|
||||
return
|
||||
user.drop_item(W, src)
|
||||
to_chat(user, "You insert [W].")
|
||||
flick("farmbot_hatch",src)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(user, "You insert [W].")
|
||||
flick("farmbot_hatch",src)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -214,11 +214,11 @@
|
||||
to_chat(user, "<span class='notice'>There is already a beaker loaded.</span>")
|
||||
return
|
||||
|
||||
user.drop_item(W, src)
|
||||
src.reagent_glass = W
|
||||
to_chat(user, "<span class='notice'>You insert [W].</span>")
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
src.reagent_glass = W
|
||||
to_chat(user, "<span class='notice'>You insert [W].</span>")
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
else
|
||||
..()
|
||||
@@ -591,6 +591,7 @@
|
||||
switch(build_step)
|
||||
if(0)
|
||||
if(istype(W, /obj/item/device/healthanalyzer))
|
||||
<<<<<<< 636687c2a83b23b7efc3a052c68c16a6ced66ca8
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
src.build_step++
|
||||
@@ -610,6 +611,27 @@
|
||||
S.name = src.created_name
|
||||
user.drop_from_inventory(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()
|
||||
|
||||
@@ -122,9 +122,9 @@ var/global/mulebot_count = 0
|
||||
|
||||
else if(istype(I,/obj/item/weapon/cell) && open && !cell)
|
||||
var/obj/item/weapon/cell/C = I
|
||||
user.drop_item(C, src)
|
||||
cell = C
|
||||
updateDialog()
|
||||
if(user.drop_item(C, src))
|
||||
cell = C
|
||||
updateDialog()
|
||||
else if(istype(I,/obj/item/weapon/wirecutters)||istype(I,/obj/item/device/multitool))
|
||||
attack_hand(user)
|
||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||
@@ -304,12 +304,12 @@ var/global/mulebot_count = 0
|
||||
if(open && !cell)
|
||||
var/obj/item/weapon/cell/C = usr.get_active_hand()
|
||||
if(istype(C))
|
||||
usr.drop_item(C, src)
|
||||
cell = C
|
||||
C.add_fingerprint(usr)
|
||||
if(usr.drop_item(C, src))
|
||||
cell = C
|
||||
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>")
|
||||
updateDialog()
|
||||
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()
|
||||
|
||||
|
||||
if("stop")
|
||||
|
||||
@@ -823,30 +823,30 @@ Auto Patrol: []"},
|
||||
to_chat(user, "You weld a hole in [src]!")
|
||||
|
||||
else if(isprox(W) && (src.build_step == 1))
|
||||
user.drop_item(W)
|
||||
src.build_step++
|
||||
to_chat(user, "You add the prox sensor to [src]!")
|
||||
src.overlays += image('icons/obj/aibots.dmi', "hs_eye")
|
||||
src.name = "helmet/signaler/prox sensor assembly"
|
||||
qdel(W)
|
||||
if(user.drop_item(W))
|
||||
src.build_step++
|
||||
to_chat(user, "You add the prox sensor to [src]!")
|
||||
src.overlays += image('icons/obj/aibots.dmi', "hs_eye")
|
||||
src.name = "helmet/signaler/prox sensor assembly"
|
||||
qdel(W)
|
||||
|
||||
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)
|
||||
src.build_step++
|
||||
to_chat(user, "You add the robot arm to [src]!")
|
||||
src.name = "helmet/signaler/prox sensor/robot arm assembly"
|
||||
src.overlays += image('icons/obj/aibots.dmi', "hs_arm")
|
||||
qdel(W)
|
||||
if(user.drop_item(W))
|
||||
src.build_step++
|
||||
to_chat(user, "You add the robot arm to [src]!")
|
||||
src.name = "helmet/signaler/prox sensor/robot arm assembly"
|
||||
src.overlays += image('icons/obj/aibots.dmi', "hs_arm")
|
||||
qdel(W)
|
||||
|
||||
else if((istype(W, /obj/item/weapon/melee/baton)) && (src.build_step >= 3))
|
||||
user.drop_item(W)
|
||||
src.build_step++
|
||||
to_chat(user, "You complete the Securitron! Beep boop.")
|
||||
var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot
|
||||
S.loc = get_turf(src)
|
||||
S.name = src.created_name
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
if(user.drop_item(W))
|
||||
src.build_step++
|
||||
to_chat(user, "You complete the Securitron! Beep boop.")
|
||||
var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot
|
||||
S.loc = get_turf(src)
|
||||
S.name = src.created_name
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
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)
|
||||
|
||||
@@ -17,21 +17,21 @@
|
||||
return ..()
|
||||
if (is_type_in_list(O, list(/obj/item/weapon/coin/, /obj/item/weapon/reagent_containers/food/snacks/chococoin)))
|
||||
if(emagged == 1)
|
||||
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>")
|
||||
src.visible_message("<span class='notice'>[src] rattles ominously!</span>")
|
||||
sleep(rand(10,15))
|
||||
src.visible_message("<span class='notice'>[src] dispenses a strange sweet!</span>")
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sweet/strange(src.loc)
|
||||
qdel(O)
|
||||
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>")
|
||||
src.visible_message("<span class='notice'>[src] rattles ominously!</span>")
|
||||
sleep(rand(10,15))
|
||||
src.visible_message("<span class='notice'>[src] dispenses a strange sweet!</span>")
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sweet/strange(src.loc)
|
||||
qdel(O)
|
||||
else
|
||||
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>")
|
||||
src.visible_message("<span class='notice'>[src] clicks softly.</span>")
|
||||
sleep(rand(10,15))
|
||||
src.visible_message("<span class='notice'>[src] dispenses a sweet!</span>")
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sweet(src.loc)
|
||||
qdel(O)
|
||||
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>")
|
||||
src.visible_message("<span class='notice'>[src] clicks softly.</span>")
|
||||
sleep(rand(10,15))
|
||||
src.visible_message("<span class='notice'>[src] dispenses a sweet!</span>")
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/sweet(src.loc)
|
||||
qdel(O)
|
||||
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>")
|
||||
return
|
||||
|
||||
@@ -79,10 +79,10 @@
|
||||
to_chat(user, "<span class='warning'>[src] blinks red as you try to insert the cell!</span>")
|
||||
return
|
||||
|
||||
user.drop_item(W, src)
|
||||
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>")
|
||||
chargelevel = -1
|
||||
if(user.drop_item(W, src))
|
||||
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>")
|
||||
chargelevel = -1
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/cell_charger/emag(mob/user)
|
||||
|
||||
@@ -516,9 +516,9 @@
|
||||
qdel(W)
|
||||
return
|
||||
else if (istype(W, /obj/item) && get_dist(src,user)<2)
|
||||
user.drop_item(W, src.loc)
|
||||
visible_message("<span class='notice'>[user] dunks [W] into the [src]!</span>", 3)
|
||||
return
|
||||
if(user.drop_item(W, src.loc))
|
||||
visible_message("<span class='notice'>[user] dunks [W] into the [src]!</span>", 3)
|
||||
return
|
||||
|
||||
/obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0)
|
||||
if(istype(mover,/obj/item) && mover.throwing)
|
||||
|
||||
@@ -41,11 +41,11 @@
|
||||
anchored = 0
|
||||
state = 0
|
||||
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
|
||||
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||
icon_state = "1"
|
||||
circuit = P
|
||||
user.drop_item(P, src)
|
||||
if(user.drop_item(P, src))
|
||||
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||
icon_state = "1"
|
||||
circuit = P
|
||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
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>")
|
||||
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)
|
||||
ticker.mode.remove_cultist(P:brainmob.mind, 1)
|
||||
ticker.mode.remove_revolutionary(P:brainmob.mind, 1)
|
||||
|
||||
@@ -341,11 +341,12 @@
|
||||
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
if(B.board_type == "computer")
|
||||
if(!user.drop_item(B, src)) return
|
||||
|
||||
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>")
|
||||
src.icon_state = "1"
|
||||
src.circuit = P
|
||||
user.drop_item(B, src)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>This frame does not accept circuit boards of this type!</span>")
|
||||
return 1
|
||||
|
||||
@@ -105,14 +105,14 @@
|
||||
return ..()
|
||||
|
||||
if(!is_centcom() && !scan && (access_change_ids in id_card.access))
|
||||
user.drop_item(id_card, src)
|
||||
scan = id_card
|
||||
if(user.drop_item(id_card, src))
|
||||
scan = id_card
|
||||
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)
|
||||
scan = id_card
|
||||
if(user.drop_item(id_card, src))
|
||||
scan = id_card
|
||||
else if(!modify)
|
||||
user.drop_item(id_card, src)
|
||||
modify = id_card
|
||||
if(user.drop_item(id_card, src))
|
||||
modify = id_card
|
||||
|
||||
nanomanager.update_uis(src)
|
||||
attack_hand(user)
|
||||
@@ -215,8 +215,8 @@
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item(I, src)
|
||||
modify = I
|
||||
if(usr.drop_item(I, src))
|
||||
modify = I
|
||||
|
||||
if ("scan")
|
||||
if (scan)
|
||||
@@ -231,8 +231,8 @@
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item(I, src)
|
||||
scan = I
|
||||
if(usr.drop_item(I, src))
|
||||
scan = I
|
||||
|
||||
if("access")
|
||||
if(href_list["allowed"])
|
||||
|
||||
@@ -160,8 +160,8 @@
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item(I, src)
|
||||
src.scan = I
|
||||
if(usr.drop_item(I, src))
|
||||
src.scan = I
|
||||
else if (href_list["logout"])
|
||||
src.authenticated = null
|
||||
src.screen = null
|
||||
|
||||
@@ -54,9 +54,9 @@
|
||||
return ..()
|
||||
|
||||
if(!pda_device)
|
||||
user.drop_item(user_pda, src)
|
||||
pda_device = user_pda
|
||||
update_icon()
|
||||
if(user.drop_item(user_pda, src))
|
||||
pda_device = user_pda
|
||||
update_icon()
|
||||
|
||||
nanomanager.update_uis(src)
|
||||
attack_hand(user)
|
||||
@@ -119,8 +119,8 @@
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/device/pda))
|
||||
usr.drop_item(I, src)
|
||||
pda_device = I
|
||||
if(usr.drop_item(I, src))
|
||||
pda_device = I
|
||||
update_icon()
|
||||
|
||||
if ("purchase")
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob)
|
||||
if(istype(O, /obj/item/weapon/card/id) && !scan)
|
||||
usr.drop_item(O, src)
|
||||
scan = O
|
||||
to_chat(user, "You insert [O].")
|
||||
if(usr.drop_item(O, src))
|
||||
scan = O
|
||||
to_chat(user, "You insert \the [O].")
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/secure_data/attack_ai(mob/user as mob)
|
||||
@@ -239,8 +239,8 @@ What a mess.*/
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item(I, src)
|
||||
scan = I
|
||||
if(usr.drop_item(I, src))
|
||||
scan = I
|
||||
|
||||
if("Log Out")
|
||||
authenticated = null
|
||||
|
||||
@@ -314,11 +314,11 @@
|
||||
var/obj/item/weapon/spacecash/S = I
|
||||
var/money_add = S.amount * S.worth
|
||||
|
||||
user.drop_item(I)
|
||||
qdel(I)
|
||||
if(user.drop_item(I))
|
||||
qdel(I)
|
||||
|
||||
src.stored_money += money_add
|
||||
src.updateUsrDialog()
|
||||
src.stored_money += money_add
|
||||
src.updateUsrDialog()
|
||||
|
||||
/obj/machinery/computer/slot_machine/proc/can_play() //If no money in OUR account, return 0
|
||||
if(!our_money_account)
|
||||
|
||||
@@ -79,10 +79,13 @@
|
||||
if(istype(P, /obj/item/weapon/circuitboard))
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
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)
|
||||
to_chat(user, "<span class='notice'>You add the circuit board to the frame.</span>")
|
||||
circuit = P
|
||||
user.drop_item(B, src)
|
||||
set_build_state(3)
|
||||
components = list()
|
||||
req_components = circuit.req_components.Copy()
|
||||
@@ -200,11 +203,11 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You do not have enough [P]!</span>")
|
||||
|
||||
user.drop_item(P, src)
|
||||
components += P
|
||||
req_components[I]--
|
||||
update_desc()
|
||||
break
|
||||
if(user.drop_item(P, src))
|
||||
components += P
|
||||
req_components[I]--
|
||||
update_desc()
|
||||
break
|
||||
to_chat(user, desc)
|
||||
|
||||
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)
|
||||
to_chat(user, "<span class='warning'>A beaker is already loaded into the machine.</span>")
|
||||
return
|
||||
beaker = G
|
||||
user.drop_item(G, src)
|
||||
user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!")
|
||||
if(user.drop_item(G, src))
|
||||
beaker = G
|
||||
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
|
||||
return
|
||||
if(..())
|
||||
|
||||
@@ -107,7 +107,9 @@ obj/machinery/recharger/defibcharger/wallcharger/attackby(obj/item/weapon/G as o
|
||||
if(a.power_equip == 0)
|
||||
to_chat(user, "<span class='warning'>[src] blinks red as you try to insert [D]!</span>")
|
||||
return
|
||||
user.drop_item(G, src)
|
||||
charging = G
|
||||
use_power = 2
|
||||
update_icon()
|
||||
if(user.drop_item(G, src))
|
||||
charging = G
|
||||
use_power = 2
|
||||
update_icon()
|
||||
else
|
||||
user << "<span class='warning'>You can't let go of \the [G]!</span>"
|
||||
|
||||
@@ -52,12 +52,12 @@
|
||||
return
|
||||
to_chat(usr, "You begin to insert \the [C] into \the [src].")
|
||||
if(do_after(user, src, 10))
|
||||
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
||||
user.drop_item(C, src)
|
||||
_circuitboard=C
|
||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||
build++
|
||||
update_icon()
|
||||
if(user.drop_item(C, src))
|
||||
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
||||
_circuitboard=C
|
||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||
build++
|
||||
update_icon()
|
||||
return 1
|
||||
if(1) // Circuitboard installed
|
||||
if(istype(W, /obj/item/weapon/crowbar))
|
||||
|
||||
@@ -77,8 +77,8 @@
|
||||
to_chat(user, "<span class='warning'>There already is a power cell already installed.</span>")
|
||||
return
|
||||
else
|
||||
user.drop_item(W, src)
|
||||
cell = W
|
||||
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>")
|
||||
update_icon()
|
||||
if(user.drop_item(W, src))
|
||||
cell = W
|
||||
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>")
|
||||
update_icon()
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
machine_flags = WRENCHMOVE | FIXED2WORK
|
||||
|
||||
/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)))
|
||||
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>")
|
||||
@@ -24,6 +25,17 @@
|
||||
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>")
|
||||
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
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -75,11 +75,11 @@
|
||||
to_chat(user, "There is already a reagent container loaded!")
|
||||
return
|
||||
|
||||
user.drop_item(W, src)
|
||||
src.beaker = W
|
||||
to_chat(user, "You attach \the [W] to \the [src].")
|
||||
src.update_icon()
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
src.beaker = W
|
||||
to_chat(user, "You attach \the [W] to \the [src].")
|
||||
src.update_icon()
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -171,10 +171,10 @@
|
||||
"<span class='notice'>You add one of [O] to \the [src].</span>")
|
||||
else
|
||||
// user.before_take_item(O) //This just causes problems so far as I can tell. -Pete
|
||||
user.drop_item(O, src)
|
||||
user.visible_message( \
|
||||
"<span class='notice'>[user] has added \the [O] to \the [src].</span>", \
|
||||
"<span class='notice'>You add \the [O] to \the [src].</span>")
|
||||
if(user.drop_item(O, src))
|
||||
user.visible_message( \
|
||||
"<span class='notice'>[user] has added \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))
|
||||
if (!O.reagents)
|
||||
return 1
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
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>")
|
||||
else
|
||||
user.drop_item(G)
|
||||
user.drop_item(G, force_drop = 1)
|
||||
qdel(target)
|
||||
target = null
|
||||
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>")
|
||||
return TRUE
|
||||
|
||||
building=1
|
||||
update_icon()
|
||||
user.drop_item(O, src)
|
||||
mmi.icon = null
|
||||
mmi.invisibility = 101
|
||||
spawn(50)
|
||||
makeMoMMI(mmi.brainmob)
|
||||
return TRUE
|
||||
if(user.drop_item(O, src))
|
||||
building=1
|
||||
update_icon()
|
||||
mmi.icon = null
|
||||
mmi.invisibility = 101
|
||||
spawn(50)
|
||||
makeMoMMI(mmi.brainmob)
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/mommi_spawner/proc/makeMoMMI(var/mob/user)
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
@@ -1048,8 +1048,8 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
|
||||
if(photo)
|
||||
return EjectPhoto(user)
|
||||
if(istype(user.get_active_hand(), /obj/item/weapon/photo))
|
||||
photo = user.get_active_hand()
|
||||
user.drop_item(photo, src)
|
||||
if(user.drop_item(photo, src))
|
||||
photo = user.get_active_hand()
|
||||
|
||||
/obj/machinery/newscaster/proc/EjectPhoto(mob/user as mob)
|
||||
if(!photo) return
|
||||
|
||||
@@ -91,10 +91,10 @@ Feel free to do whatever with this if you think it lacks.
|
||||
else
|
||||
var/obj/item/device/pda/P = O
|
||||
if(istype(P))
|
||||
user.drop_item(P, src)
|
||||
storedpda = P
|
||||
//P.add_fingerprint(usr)
|
||||
update_icon()
|
||||
if(user.drop_item(P, src))
|
||||
storedpda = P
|
||||
//P.add_fingerprint(usr)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/pdapainter/attack_hand(mob/user as mob)
|
||||
..()
|
||||
|
||||
@@ -56,12 +56,15 @@
|
||||
if (istype(G, /obj/item/weapon/gun/energy/staff))
|
||||
to_chat(user, "<span class='notice'>The recharger rejects the magical apparatus.</span>")
|
||||
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
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(0.625)
|
||||
M.Translate(0,6)
|
||||
G.transform = M
|
||||
user.drop_item(G, src)
|
||||
charging = G
|
||||
if(!self_powered)
|
||||
use_power = 2
|
||||
|
||||
@@ -105,10 +105,10 @@
|
||||
/obj/machinery/recharge_station/attackby(var/obj/item/W, var/mob/living/user)
|
||||
if(is_type_in_list(W, acceptable_upgradeables))
|
||||
if(!(locate(W.type) in upgrade_holder))
|
||||
user.drop_item(W, src)
|
||||
upgrade_holder.Add(W)
|
||||
to_chat(user, "<span class='notice'>You add \the [W] to \the [src].</span>")
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
upgrade_holder.Add(W)
|
||||
to_chat(user, "<span class='notice'>You add \the [W] to \the [src].</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] already contains something resembling a [W.name].</span>")
|
||||
return
|
||||
|
||||
@@ -594,11 +594,11 @@
|
||||
if(src.SUIT)
|
||||
to_chat(user, "<font color='blue'>The unit already contains a suit.</font>")
|
||||
return
|
||||
to_chat(user, "You load the [S.name] into the storage compartment.")
|
||||
user.drop_item(S, src)
|
||||
src.SUIT = S
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
if(user.drop_item(S, src))
|
||||
to_chat(user, "You load the [S.name] into the storage compartment.")
|
||||
src.SUIT = S
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if( istype(I,/obj/item/clothing/head/helmet) )
|
||||
if(!src.isopen)
|
||||
@@ -607,12 +607,12 @@
|
||||
if(src.HELMET)
|
||||
to_chat(user, "<font color='blue'>The unit already contains a helmet.</font>")
|
||||
return
|
||||
to_chat(user, "You load the [H.name] into the storage compartment.")
|
||||
user.drop_item(H, src)
|
||||
src.HELMET = H
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if(user.drop_item(H, src))
|
||||
to_chat(user, "You load the [H.name] into the storage compartment.")
|
||||
src.HELMET = H
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if( istype(I,/obj/item/clothing/mask) )
|
||||
if(!src.isopen)
|
||||
return
|
||||
@@ -620,11 +620,11 @@
|
||||
if(src.MASK)
|
||||
to_chat(user, "<font color='blue'>The unit already contains a mask.</font>")
|
||||
return
|
||||
to_chat(user, "You load the [M.name] into the storage compartment.")
|
||||
user.drop_item(M, src)
|
||||
src.MASK = M
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
if(user.drop_item(M, src))
|
||||
to_chat(user, "You load the [M.name] into the storage compartment.")
|
||||
src.MASK = M
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if( istype(I,/obj/item/clothing/shoes) )
|
||||
if(!src.isopen)
|
||||
@@ -633,11 +633,11 @@
|
||||
if(src.BOOTS)
|
||||
to_chat(user, "<font color='blue'>The unit already contains shoes.</font>")
|
||||
return
|
||||
to_chat(user, "You load \the [M.name] into the storage compartment.")
|
||||
user.drop_item(M, src)
|
||||
src.BOOTS = M
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
if(user.drop_item(M, src))
|
||||
to_chat(user, "You load \the [M.name] into the storage compartment.")
|
||||
src.BOOTS = M
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
src.update_icon()
|
||||
src.updateUsrDialog()
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
to_chat(user, "You insert the cables.")
|
||||
A.amount -= 5
|
||||
if(A.amount <= 0)
|
||||
user.drop_item(A)
|
||||
user.drop_item(A, force_drop = 1)
|
||||
returnToPool(A)
|
||||
construct_op --
|
||||
stat &= ~BROKEN // the machine's not borked anymore!
|
||||
|
||||
@@ -185,9 +185,9 @@
|
||||
var/obj/item/weapon/card/id/I = C.get_active_hand()
|
||||
if(istype(I))
|
||||
if(check_access(I))
|
||||
C.drop_item(I, src)
|
||||
auth = I
|
||||
create_log("has logged in.", usr)
|
||||
if(C.drop_item(I, src))
|
||||
auth = I
|
||||
create_log("has logged in.", usr)
|
||||
else
|
||||
create_log("has logged out.", usr)
|
||||
auth.loc = src.loc
|
||||
|
||||
@@ -36,9 +36,12 @@
|
||||
|
||||
|
||||
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, "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)
|
||||
|
||||
/* FUCK YOU
|
||||
|
||||
@@ -364,10 +364,10 @@ var/global/num_vending_terminals = 1
|
||||
return
|
||||
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))
|
||||
user.drop_item(W, src)
|
||||
coin = W
|
||||
to_chat(user, "<span class='notice'>You insert a coin into [src].</span>")
|
||||
src.updateUsrDialog()
|
||||
if(user.drop_item(W, src))
|
||||
coin = W
|
||||
to_chat(user, "<span class='notice'>You insert a coin into [src].</span>")
|
||||
src.updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<SPAN CLASS='notice'>There's already a coin in [src].</SPAN>")
|
||||
return
|
||||
@@ -376,10 +376,10 @@ var/global/num_vending_terminals = 1
|
||||
return
|
||||
else if(istype(W, /obj/item/voucher))
|
||||
if(can_accept_voucher(W, user))
|
||||
user.drop_item(W, src)
|
||||
to_chat(user, "<span class='notice'>You insert [W] into [src].</span>")
|
||||
return voucher_act(W, user)
|
||||
src.updateUsrDialog()
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(user, "<span class='notice'>You insert [W] into [src].</span>")
|
||||
return voucher_act(W, user)
|
||||
src.updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] refuses to take [W].</span>")
|
||||
return 1
|
||||
@@ -399,9 +399,9 @@ var/global/num_vending_terminals = 1
|
||||
src.updateUsrDialog()
|
||||
else
|
||||
if(is_type_in_list(W, allowed_inputs))
|
||||
user.drop_item(W, src)
|
||||
add_item(W)
|
||||
src.updateUsrDialog()
|
||||
if(user.drop_item(W, src))
|
||||
add_item(W)
|
||||
src.updateUsrDialog()
|
||||
/*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
|
||||
if(!linked_db)
|
||||
@@ -1346,12 +1346,12 @@ var/global/num_vending_terminals = 1
|
||||
return
|
||||
to_chat(usr, "You begin to insert \the [C] into \the [src].")
|
||||
if(do_after(user, src, 10))
|
||||
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
||||
user.drop_item(C, src)
|
||||
_circuitboard=C
|
||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||
build++
|
||||
update_icon()
|
||||
if(user.drop_item(C, src))
|
||||
to_chat(usr, "<span class='notice'>You secure \the [C]!</span>")
|
||||
_circuitboard=C
|
||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 50, 0)
|
||||
build++
|
||||
update_icon()
|
||||
return 1
|
||||
if(1) // Circuitboard installed
|
||||
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))
|
||||
if( wash_state in list( 1, 3, 6 ) )
|
||||
if(!crayon)
|
||||
user.drop_item(W, src)
|
||||
crayon = W
|
||||
if(user.drop_item(W, src))
|
||||
crayon = W
|
||||
else if(istype(W,/obj/item/weapon/grab))
|
||||
if( (wash_state == 1) && hacked)
|
||||
var/obj/item/weapon/grab/G = W
|
||||
@@ -305,8 +305,8 @@
|
||||
|
||||
if(contents.len < 5)
|
||||
if ( wash_state in list(1, 3) )
|
||||
user.drop_item(W, src)
|
||||
wash_state = 3
|
||||
if(user.drop_item(W, src))
|
||||
wash_state = 3
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You can't put the item in right now.</span>")
|
||||
else
|
||||
|
||||
@@ -726,10 +726,10 @@
|
||||
var/obj/item/mecha_parts/mecha_equipment/E = W
|
||||
spawn()
|
||||
if(E.can_attach(src))
|
||||
user.drop_item(W)
|
||||
E.attach(src)
|
||||
user.visible_message("[user] attaches [W] to [src]", "You attach [W] to [src]")
|
||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(user.drop_item(W))
|
||||
E.attach(src)
|
||||
user.visible_message("[user] attaches [W] to [src]", "You attach [W] to [src]")
|
||||
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
else
|
||||
to_chat(user, "You were unable to attach [W] to [src]")
|
||||
return
|
||||
@@ -799,30 +799,30 @@
|
||||
else if(istype(W, /obj/item/weapon/cell))
|
||||
if(state==STATE_BOLTSOPENED)
|
||||
if(!src.cell)
|
||||
to_chat(user, "You install the powercell.")
|
||||
user.drop_item(W, src)
|
||||
src.cell = W
|
||||
src.log_message("Powercell installed.")
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(user, "You install the powercell.")
|
||||
src.cell = W
|
||||
src.log_message("Powercell installed.")
|
||||
else
|
||||
to_chat(user, "There's already a powercell installed.")
|
||||
return
|
||||
else if(istype(W, /obj/item/mecha_parts/mecha_tracking))
|
||||
if(state==STATE_BOLTSOPENED)
|
||||
if(!src.tracking)
|
||||
to_chat(user, "You install the tracking beacon and safeties.")
|
||||
user.drop_item(W, src)
|
||||
src.tracking = W
|
||||
src.log_message("Exosuit tracking beacon installed.")
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(user, "You install the tracking beacon and safeties.")
|
||||
src.tracking = W
|
||||
src.log_message("Exosuit tracking beacon installed.")
|
||||
else
|
||||
to_chat(user, "There's already a tracking beacon installed.")
|
||||
return
|
||||
else if(istype(W, /obj/item/device/radio/electropack))
|
||||
if(state==STATE_BOLTSOPENED)
|
||||
if(!src.electropack)
|
||||
to_chat(user, "You rig the electropack to the cockpit.")
|
||||
user.drop_item(W, src)
|
||||
src.electropack = W
|
||||
src.log_message("Emergency ejection routines installed.") //not exactly a legitimate upgrade!
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(user, "You rig the electropack to the cockpit.")
|
||||
src.electropack = W
|
||||
src.log_message("Emergency ejection routines installed.") //not exactly a legitimate upgrade!
|
||||
else
|
||||
to_chat(user, "There's already an electropack installed.")
|
||||
return
|
||||
|
||||
@@ -92,11 +92,11 @@
|
||||
to_chat(usr, "<spawn class='notice'>The locker is full.")
|
||||
return
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>You put \the [G] in \the [src].</span>")
|
||||
defib = G
|
||||
update_icon()
|
||||
user.drop_item(G, src)
|
||||
return
|
||||
if(user.drop_item(G, src))
|
||||
to_chat(usr, "<span class='notice'>You put \the [G] in \the [src].</span>")
|
||||
defib = G
|
||||
update_icon()
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,10 @@
|
||||
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
|
||||
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/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/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.
|
||||
|
||||
@@ -2143,15 +2143,15 @@ obj/item/device/pda/AltClick()
|
||||
else
|
||||
var/obj/item/I = user.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
user.drop_item(I, src)
|
||||
id = I
|
||||
if(user.drop_item(I, src))
|
||||
id = I
|
||||
else
|
||||
var/obj/item/weapon/card/I = user.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id) && I:registered_name)
|
||||
var/obj/old_id = id
|
||||
user.drop_item(I, src)
|
||||
id = I
|
||||
user.put_in_hands(old_id)
|
||||
if(user.drop_item(I, src))
|
||||
id = I
|
||||
user.put_in_hands(old_id)
|
||||
if(id && incoming_transactions.len)
|
||||
receive_incoming_transactions(id)
|
||||
return
|
||||
@@ -2160,11 +2160,11 @@ obj/item/device/pda/AltClick()
|
||||
/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob)
|
||||
..()
|
||||
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
|
||||
cartridge = C
|
||||
user.drop_item(C, src)
|
||||
to_chat(user, "<span class='notice'>You insert [cartridge] into [src].</span>")
|
||||
if(cartridge.radio)
|
||||
cartridge.radio.hostpda = src
|
||||
if(user.drop_item(C, src))
|
||||
cartridge = C
|
||||
to_chat(user, "<span class='notice'>You insert [cartridge] into [src].</span>")
|
||||
if(cartridge.radio)
|
||||
cartridge.radio.hostpda = src
|
||||
|
||||
else if(istype(C, /obj/item/weapon/card/id))
|
||||
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.
|
||||
updateSelfDialog()//For the non-input related code.
|
||||
else if(istype(C, /obj/item/device/paicard) && !src.pai)
|
||||
user.drop_item(C, src)
|
||||
pai = C
|
||||
to_chat(user, "<span class='notice'>You slot \the [C] into [src].</span>")
|
||||
updateUsrDialog()
|
||||
if(user.drop_item(C, src))
|
||||
pai = C
|
||||
to_chat(user, "<span class='notice'>You slot \the [C] into [src].</span>")
|
||||
updateUsrDialog()
|
||||
else if(istype(C, /obj/item/weapon/pen))
|
||||
var/obj/item/weapon/pen/O = locate() in src
|
||||
if(O)
|
||||
to_chat(user, "<span class='notice'>There is already a pen in \the [src].</span>")
|
||||
else
|
||||
user.drop_item(C, src)
|
||||
to_chat(user, "<span class='notice'>You slide \the [C] into \the [src].</span>")
|
||||
if(user.drop_item(C, src))
|
||||
to_chat(user, "<span class='notice'>You slide \the [C] into \the [src].</span>")
|
||||
else if(istype(C,/obj/item/weapon/spacecash))
|
||||
if(!id)
|
||||
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)
|
||||
to_chat(user, "<span class='warning'>\The [I] is too small for \the [src]</span>")
|
||||
return 0
|
||||
to_chat(user, "<span class='notice'>You stealthily place \the [src] onto \the [A]</span>")
|
||||
user.drop_item(src, A)
|
||||
active = 1
|
||||
camera_bugs += src
|
||||
return 1
|
||||
if(user.drop_item(src, A))
|
||||
to_chat(user, "<span class='notice'>You stealthily place \the [src] onto \the [A]</span>")
|
||||
active = 1
|
||||
camera_bugs += src
|
||||
return 1
|
||||
|
||||
/obj/item/device/camera_bug/emp_act(severity)
|
||||
switch(severity)
|
||||
|
||||
@@ -322,18 +322,21 @@
|
||||
qdel(src)
|
||||
return
|
||||
if(istype(W,/obj/item/device/assembly/signaler) && !has_signaler)
|
||||
var/obj/item/device/assembly/signaler/S = W
|
||||
frequency = S.frequency
|
||||
if(S.code == NOSIGNAL_CODE) //setting a code of "30" guarantees that you'll never be triggering any remote signaling devices.
|
||||
code = 0
|
||||
else
|
||||
code = S.code
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
W = null
|
||||
has_signaler = 1
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(user.drop_item(W))
|
||||
|
||||
var/obj/item/device/assembly/signaler/S = W
|
||||
frequency = S.frequency
|
||||
if(S.code == NOSIGNAL_CODE) //setting a code of "30" guarantees that you'll never be triggering any remote signaling devices.
|
||||
code = 0
|
||||
else
|
||||
code = S.code
|
||||
|
||||
qdel(W)
|
||||
W = null
|
||||
has_signaler = 1
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/device/deskbell_assembly/attack_self(mob/living/carbon/user)
|
||||
if(has_signaler)
|
||||
|
||||
@@ -144,15 +144,15 @@
|
||||
|
||||
if(istype(W, /obj/item/weapon/storage/box/lights))
|
||||
if(!supply)
|
||||
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.")
|
||||
supply = W
|
||||
return
|
||||
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.")
|
||||
supply = W
|
||||
return
|
||||
else if(!waste)
|
||||
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.")
|
||||
waste = W
|
||||
return
|
||||
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.")
|
||||
waste = W
|
||||
return
|
||||
else
|
||||
var/obj/item/weapon/storage/box/lights/lsource = W
|
||||
if(!lsource.contents.len)
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
if (!isnull(keyslot))
|
||||
to_chat(user, "<SPAN CLASS='notice'>The radio can't hold another key!</SPAN>")
|
||||
else
|
||||
user.drop_item(W, src)
|
||||
insert_key(W)
|
||||
if(user.drop_item(W, src))
|
||||
insert_key(W)
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -299,12 +299,12 @@
|
||||
return
|
||||
|
||||
if(!keyslot1)
|
||||
user.drop_item(W, src)
|
||||
keyslot1 = W
|
||||
if(user.drop_item(W, src))
|
||||
keyslot1 = W
|
||||
|
||||
else
|
||||
user.drop_item(W, src)
|
||||
keyslot2 = W
|
||||
if(user.drop_item(W, src))
|
||||
keyslot2 = W
|
||||
|
||||
|
||||
recalculateChannels()
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
return
|
||||
|
||||
if(!tank_one)
|
||||
tank_one = item
|
||||
user.drop_item(item, src)
|
||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||
if(user.drop_item(item, src))
|
||||
tank_one = item
|
||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||
else if(!tank_two)
|
||||
tank_two = item
|
||||
user.drop_item(item, src)
|
||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||
if(user.drop_item(item, src))
|
||||
tank_two = item
|
||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||
|
||||
update_icon()
|
||||
//TODO: Have this take an assemblyholder
|
||||
|
||||
@@ -136,6 +136,10 @@ var/global/list/available_paintings = list(
|
||||
desc = "a blank painting."
|
||||
|
||||
/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>")
|
||||
|
||||
add_fingerprint(user)
|
||||
@@ -159,7 +163,6 @@ var/global/list/available_paintings = list(
|
||||
|
||||
playsound(on_wall, 'sound/items/Deconstruct.ogg', 25, 1)
|
||||
|
||||
user.drop_item(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/mounted/frame/painting/blank
|
||||
|
||||
@@ -129,34 +129,34 @@
|
||||
qdel(src)
|
||||
if(istype(W, /obj/item/robot_parts/l_leg))
|
||||
if(src.l_leg) return
|
||||
user.drop_item(W, src)
|
||||
src.l_leg = W
|
||||
src.updateicon()
|
||||
if(user.drop_item(W, src))
|
||||
src.l_leg = W
|
||||
src.updateicon()
|
||||
|
||||
if(istype(W, /obj/item/robot_parts/r_leg))
|
||||
if(src.r_leg) return
|
||||
user.drop_item(W, src)
|
||||
src.r_leg = W
|
||||
src.updateicon()
|
||||
if(user.drop_item(W, src))
|
||||
src.r_leg = W
|
||||
src.updateicon()
|
||||
|
||||
if(istype(W, /obj/item/robot_parts/l_arm))
|
||||
if(src.l_arm) return
|
||||
user.drop_item(W, src)
|
||||
src.l_arm = W
|
||||
src.updateicon()
|
||||
if(user.drop_item(W, src))
|
||||
src.l_arm = W
|
||||
src.updateicon()
|
||||
|
||||
if(istype(W, /obj/item/robot_parts/r_arm))
|
||||
if(src.r_arm) return
|
||||
user.drop_item(W, src)
|
||||
src.r_arm = W
|
||||
src.updateicon()
|
||||
if(user.drop_item(W, src))
|
||||
src.r_arm = W
|
||||
src.updateicon()
|
||||
|
||||
if(istype(W, /obj/item/robot_parts/chest))
|
||||
if(src.chest) return
|
||||
if(W:wires && W:cell)
|
||||
user.drop_item(W, src)
|
||||
src.chest = W
|
||||
src.updateicon()
|
||||
if(user.drop_item(W, src))
|
||||
src.chest = W
|
||||
src.updateicon()
|
||||
else if(!W:wires)
|
||||
to_chat(user, "<span class='notice'>You need to attach wires to it first!</span>")
|
||||
else
|
||||
@@ -165,9 +165,9 @@
|
||||
if(istype(W, /obj/item/robot_parts/head))
|
||||
if(src.head) return
|
||||
if(W:flash2 && W:flash1)
|
||||
user.drop_item(W, src)
|
||||
src.head = W
|
||||
src.updateicon()
|
||||
if(user.drop_item(W, src))
|
||||
src.head = W
|
||||
src.updateicon()
|
||||
else
|
||||
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>")
|
||||
return
|
||||
|
||||
if(!user.drop_item(W))
|
||||
return
|
||||
|
||||
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
|
||||
@@ -208,8 +211,6 @@
|
||||
|
||||
if(!O) return
|
||||
|
||||
user.drop_item(W)
|
||||
|
||||
O.mmi = W
|
||||
O.invisibility = 0
|
||||
O.custom_name = created_name
|
||||
@@ -257,9 +258,9 @@
|
||||
to_chat(user, "<span class='notice'>You have already inserted a cell!</span>")
|
||||
return
|
||||
else
|
||||
user.drop_item(W, src)
|
||||
src.cell = W
|
||||
to_chat(user, "<span class='notice'>You insert the cell!</span>")
|
||||
if(user.drop_item(W, src))
|
||||
src.cell = W
|
||||
to_chat(user, "<span class='notice'>You insert the cell!</span>")
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
if(src.wires)
|
||||
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>")
|
||||
return
|
||||
else if(src.flash1)
|
||||
user.drop_item(W, src)
|
||||
src.flash2 = W
|
||||
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
||||
if(user.drop_item(W, src))
|
||||
src.flash2 = W
|
||||
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
||||
else
|
||||
user.drop_item(W, src)
|
||||
src.flash1 = W
|
||||
to_chat(user, "<span class='notice'>You insert the flash into the eye socket!</span>")
|
||||
if(user.drop_item(W, src))
|
||||
src.flash1 = W
|
||||
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))
|
||||
to_chat(user, "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>")
|
||||
new /mob/living/simple_animal/spiderbot(get_turf(loc))
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
W = null
|
||||
qdel(src)
|
||||
return
|
||||
if(user.drop_item(W))
|
||||
to_chat(user, "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>")
|
||||
new /mob/living/simple_animal/spiderbot(get_turf(loc))
|
||||
qdel(W)
|
||||
W = null
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/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
|
||||
|
||||
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))
|
||||
user.put_in_active_hand(X)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
return
|
||||
|
||||
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))
|
||||
|
||||
|
||||
@@ -225,11 +225,11 @@
|
||||
/obj/item/toy/crossbow/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I, /obj/item/toy/ammo/crossbow))
|
||||
if(bullets <= 4)
|
||||
user.drop_item()
|
||||
qdel(I)
|
||||
I = null
|
||||
bullets++
|
||||
to_chat(user, "<span class = 'info'>You load the foam dart into the crossbow.</span>")
|
||||
if(user.drop_item(I))
|
||||
qdel(I)
|
||||
I = null
|
||||
bullets++
|
||||
to_chat(user, "<span class = 'info'>You load the foam dart into the crossbow.</span>")
|
||||
else
|
||||
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)
|
||||
if(istype(W,/obj/item/stack/cable_coil))
|
||||
if(!loaded)
|
||||
loaded = W
|
||||
loaded.max_amount = max_amount //We store a lot.
|
||||
user.drop_item(W,src)
|
||||
if(user.drop_item(W,src))
|
||||
loaded = W
|
||||
loaded.max_amount = max_amount //We store a lot.
|
||||
else
|
||||
loaded.preattack(W,user,1)
|
||||
update_icon()
|
||||
|
||||
@@ -60,11 +60,10 @@
|
||||
if(ink)
|
||||
to_chat(user, "<span class='notice'>\the [name] already contains \a [ink].</span>")
|
||||
return
|
||||
user.drop_item(W, src)
|
||||
to_chat(user, "<span class='notice'>You install \the [W] into \the [name].</span>")
|
||||
ink = W
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
|
||||
if(user.drop_item(W, src))
|
||||
to_chat(user, "<span class='notice'>You install \the [W] into \the [name].</span>")
|
||||
ink = W
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
|
||||
/obj/item/weapon/airlock_painter/attack_self(mob/user)
|
||||
if(ink)
|
||||
|
||||
@@ -253,14 +253,14 @@ MATCHBOXES ARE ALSO IN FANCY.DM
|
||||
new type_butt(get_turf(glass))
|
||||
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>")
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
qdel(src)
|
||||
return
|
||||
if(glass.reagents.has_reagent("water") && lit) //Dumping a lit cigarette into water, the result is obvious
|
||||
new type_butt(get_turf(glass))
|
||||
processing_objects.Remove(src)
|
||||
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)
|
||||
return
|
||||
var/transfered = glass.reagents.trans_to(src, chem_volume)
|
||||
|
||||
@@ -127,3 +127,38 @@
|
||||
attack_verb = list("quacked")
|
||||
hitsound = 'sound/items/quack.ogg'
|
||||
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)
|
||||
to_chat(user, "<span class='danger'>Rocks fall, you die.</span>")
|
||||
user.gib()
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
else
|
||||
triggered = 1
|
||||
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>")
|
||||
|
||||
if(do_after(user, target, 50) && user.Adjacent(target))
|
||||
user.drop_item(src)
|
||||
src.target = target
|
||||
var/glue_act = 0 //If 1, the C4 is superglued to the guy's hands - produce a funny message
|
||||
|
||||
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
|
||||
|
||||
if (ismob(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>"
|
||||
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)
|
||||
if(!iscarbon(user))
|
||||
M.LAssailant = null
|
||||
|
||||
@@ -109,9 +109,9 @@
|
||||
if(isrobot(user) && !isMoMMI(user)) // MoMMI's can but borgs can't
|
||||
to_chat(user, "You're a robot. No.")
|
||||
return
|
||||
user.drop_item(W, 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].")
|
||||
if(user.drop_item(W, 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].")
|
||||
|
||||
/obj/item/weapon/extinguisher/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
if(proximity_flag)
|
||||
|
||||
@@ -102,19 +102,19 @@
|
||||
var/obj/item/device/assembly/igniter/I = W
|
||||
if(I.secured) return
|
||||
if(igniter) return
|
||||
user.drop_item(I, src)
|
||||
igniter = I
|
||||
update_icon()
|
||||
return
|
||||
if(user.drop_item(I, src))
|
||||
igniter = I
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(istype(W,/obj/item/weapon/tank/plasma))
|
||||
if(ptank)
|
||||
to_chat(user, "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>")
|
||||
return
|
||||
user.drop_item(W, src)
|
||||
ptank = W
|
||||
update_icon()
|
||||
return
|
||||
if(user.drop_item(W, src))
|
||||
ptank = W
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/device/analyzer) && ptank)
|
||||
var/obj/item/device/analyzer/analyzer = W
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
item_state = "gift-large"
|
||||
|
||||
/obj/item/weapon/gift/attack_self(mob/user as mob)
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
if(gift)
|
||||
user.put_in_active_hand(gift)
|
||||
gift.add_fingerprint(user)
|
||||
|
||||
@@ -110,19 +110,17 @@
|
||||
if (inserted_cores > 0)
|
||||
to_chat(user, "<span class='warning'> This type of grenade cannot hold more than one slime core.</span>")
|
||||
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>")
|
||||
user.drop_item(W, src)
|
||||
beakers += W
|
||||
E = W
|
||||
inserted_cores++
|
||||
stage = 1
|
||||
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
|
||||
to_chat(user, "<span class='warning'> \the [W] is empty.</span>")
|
||||
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)
|
||||
to_chat(user, "<span class='warning'> You cannot fit more than two slime cores in this grenade.</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'> You add \the [W] to the assembly.</span>")
|
||||
user.drop_item(W, src)
|
||||
beakers += W
|
||||
if (E == null)//E = first slime extract, C = second slime extract
|
||||
E = W
|
||||
else
|
||||
C = W
|
||||
inserted_cores++
|
||||
stage = 1
|
||||
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||
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)
|
||||
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 EX grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||
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 EX grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||
else
|
||||
to_chat(user, "<span class='warning'> \the [W] is empty.</span>")
|
||||
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
..()
|
||||
if(istype(C, /obj/item/weapon/implantcase))
|
||||
if(!( src.case ))
|
||||
user.drop_item(C, src)
|
||||
src.case = C
|
||||
if(user.drop_item(C, src))
|
||||
src.case = C
|
||||
else
|
||||
return
|
||||
src.update()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
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.")
|
||||
if(user && user.get_active_hand() == src)
|
||||
user.drop_item(src, M)
|
||||
user.drop_item(src, M, force_drop = 1)
|
||||
src.machine = M
|
||||
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].")
|
||||
|
||||
@@ -115,8 +115,11 @@
|
||||
if(item.w_class > 3.0)
|
||||
to_chat(user, "<span class='warning'>\The [item] is too big to fit in the false bottom!</span>")
|
||||
return
|
||||
if(!user.drop_item(item))
|
||||
user << "<span class='warning'>\The [item] is stuck to your hands!</span>"
|
||||
return
|
||||
|
||||
stored_item = item
|
||||
user.drop_item(item)
|
||||
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
|
||||
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)
|
||||
if(istype(W, /obj/item/weapon/cell))
|
||||
if(!bcell)
|
||||
user.drop_item(W, src)
|
||||
bcell = W
|
||||
to_chat(user, "<span class='notice'>You install a cell in [src].</span>")
|
||||
update_icon()
|
||||
if(user.drop_item(W, src))
|
||||
bcell = W
|
||||
to_chat(user, "<span class='notice'>You install a cell in [src].</span>")
|
||||
update_icon()
|
||||
else
|
||||
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)].")
|
||||
return
|
||||
else
|
||||
stored_modules[module] = used_item
|
||||
user.drop_item(used_item, src)
|
||||
to_chat(user, "You successfully load \the [used_item] into \the [src]'s [get_module_name(module)] slot.")
|
||||
return 1
|
||||
if(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.")
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/switchtool/proc/remove_module(mob/user)
|
||||
deployed.loc = get_turf(user)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
/obj/item/weapon/table_parts/attack_self(mob/user as mob)
|
||||
new /obj/structure/table( user.loc )
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/obj/item/weapon/table_parts/reinforced/attack_self(mob/user as mob)
|
||||
new /obj/structure/table/reinforced( user.loc )
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
|
||||
new /obj/structure/table/woodentable( user.loc )
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
/obj/item/weapon/table_parts/wood/poker/attack_self(mob/user as mob)
|
||||
new /obj/structure/table/woodentable/poker( user.loc )
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -108,6 +108,6 @@
|
||||
/obj/item/weapon/rack_parts/attack_self(mob/user as mob)
|
||||
var/obj/structure/rack/R = new /obj/structure/rack( user.loc )
|
||||
R.add_fingerprint(user)
|
||||
user.drop_item(src)
|
||||
user.drop_item(src, force_drop = 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -47,7 +47,7 @@ LINEN BINS
|
||||
//todo: sharp thing code/game/objects/objs.dm
|
||||
|
||||
/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))
|
||||
layer = 5
|
||||
else
|
||||
@@ -157,15 +157,14 @@ LINEN BINS
|
||||
|
||||
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/bedsheet))
|
||||
user.drop_item(I, src)
|
||||
sheets.Add(I)
|
||||
amount++
|
||||
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
|
||||
if(user.drop_item(I, src))
|
||||
sheets.Add(I)
|
||||
amount++
|
||||
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.
|
||||
user.drop_item(I, src)
|
||||
hidden = I
|
||||
to_chat(user, "<span class='notice'>You hide [I] among the sheets.</span>")
|
||||
|
||||
if(user.drop_item(I, src))
|
||||
hidden = I
|
||||
to_chat(user, "<span class='notice'>You hide [I] among the sheets.</span>")
|
||||
|
||||
|
||||
/obj/structure/bedsheetbin/attack_paw(mob/user as mob)
|
||||
|
||||
@@ -35,18 +35,17 @@
|
||||
|
||||
/obj/structure/coatrack/attackby(obj/item/clothing/C, mob/user)
|
||||
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>")
|
||||
playsound(get_turf(src), "rustle", 50, 1, -5)
|
||||
user.drop_item(C, src)
|
||||
suit = C
|
||||
update_icon()
|
||||
|
||||
if(user.drop_item(C, src))
|
||||
to_chat(user, "<span class='notice'>You place your [C] on the [src]</span>")
|
||||
playsound(get_turf(src), "rustle", 50, 1, -5)
|
||||
suit = C
|
||||
update_icon()
|
||||
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>")
|
||||
playsound(get_turf(src), "rustle", 50, 1, -5)
|
||||
user.drop_item(C, src)
|
||||
hat = C
|
||||
update_icon()
|
||||
if(user.drop_item(C, src))
|
||||
to_chat(user, "<span class='notice'>You place your [C] on the [src]</span>")
|
||||
playsound(get_turf(src), "rustle", 50, 1, -5)
|
||||
hat = C
|
||||
update_icon()
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -93,8 +93,8 @@
|
||||
if(F.wielded)
|
||||
to_chat(user, "<span class='warning'>Unwield [F] first!</span>")
|
||||
return
|
||||
user.drop_item(F, src, force_drop = 1)
|
||||
fireaxe = O
|
||||
user.drop_item(F, src)
|
||||
visible_message("<span class='notice'>[user] places [F] back into [src].</span>", \
|
||||
"<span class='notice'>You place [F] back into [src].</span>")
|
||||
update_icon()
|
||||
|
||||
@@ -474,16 +474,17 @@
|
||||
if(rigged)
|
||||
to_chat(user, "<span class='notice'>[src] is already rigged!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You rig [src].</span>")
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
W = null
|
||||
rigged = 1
|
||||
|
||||
if(user.drop_item(W))
|
||||
to_chat(user, "<span class='notice'>You rig [src].</span>")
|
||||
qdel(W)
|
||||
W = null
|
||||
rigged = 1
|
||||
return
|
||||
else if(istype(W, /obj/item/device/radio/electropack))
|
||||
if(rigged)
|
||||
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
||||
user.drop_item(W, src.loc)
|
||||
if(user.drop_item(W, src.loc))
|
||||
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||
if(rigged)
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
switch(state)
|
||||
if(0)
|
||||
if(istype(W, /obj/item/weapon/circuitboard/airlock) && W:icon_state != "door_electronics_smoked")
|
||||
user.drop_item(W, src)
|
||||
circuit=W
|
||||
state++
|
||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(user.drop_item(W, src))
|
||||
circuit=W
|
||||
state++
|
||||
playsound(get_turf(src), 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(istype(W, /obj/item/weapon/crowbar))
|
||||
var/obj/machinery/constructable_frame/machine_frame/MF = new /obj/machinery/constructable_frame/machine_frame(T)
|
||||
MF.state = 1
|
||||
@@ -226,10 +226,10 @@
|
||||
if(locked)
|
||||
to_chat(user, "<span class='rose'>It's locked, you can't put anything into it.</span>")
|
||||
else if(!occupant)
|
||||
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src], and it floats as the hoverfield activates.</span>")
|
||||
user.drop_item(W, src)
|
||||
occupant=W
|
||||
update_icon()
|
||||
if(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
|
||||
update_icon()
|
||||
|
||||
/obj/structure/displaycase/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
busy = 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.drop_item(W, src)
|
||||
user.drop_item(W, src, force_drop = 1)
|
||||
|
||||
if(do_after(user, src, 40))
|
||||
if(!src) return
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
return
|
||||
if(istype(O, /obj/item/weapon/extinguisher))
|
||||
if(!has_extinguisher && opened)
|
||||
user.drop_item(O, src)
|
||||
has_extinguisher = O
|
||||
to_chat(user, "<span class='notice'>You place [O] in [src].</span>")
|
||||
if(user.drop_item(O, src))
|
||||
has_extinguisher = O
|
||||
to_chat(user, "<span class='notice'>You place [O] in [src].</span>")
|
||||
else
|
||||
opened = !opened
|
||||
else
|
||||
|
||||
@@ -275,9 +275,9 @@
|
||||
else if(istype(W, /obj/item/pipe))
|
||||
var/obj/item/pipe/P = W
|
||||
if(P.pipe_type in list(0, 1, 5)) //Simple pipes, simple bends, and simple manifolds.
|
||||
user.drop_item(P, src.loc)
|
||||
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>")
|
||||
if(user.drop_item(P, src.loc))
|
||||
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>")
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user