mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 05:51:56 +01:00
Removes Weapons (#7415)
* Adds icon and hitsound where needed. * Moves alt_attack to /obj/item and deletes weapons.dm * Replaced /obj/item/weapon with /obj/item * Fixes merge issues. * Fix merge issues.
This commit is contained in:
@@ -165,8 +165,8 @@
|
||||
return
|
||||
|
||||
/obj/structure/foamedmetal/attackby(var/obj/item/I, var/mob/user)
|
||||
if(istype(I, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = I
|
||||
if(istype(I, /obj/item/grab))
|
||||
var/obj/item/grab/G = I
|
||||
G.affecting.forceMove(src.loc)
|
||||
visible_message("<span class='warning'>[G.assailant] smashes [G.affecting] through the foamed metal wall.</span>")
|
||||
qdel(I)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
|
||||
//########################## CONTRABAND ;3333333333333333333 -Agouri ###################################################
|
||||
|
||||
/obj/item/weapon/contraband
|
||||
/obj/item/contraband
|
||||
name = "contraband item"
|
||||
desc = "You probably shouldn't be holding this."
|
||||
icon = 'icons/obj/contraband.dmi'
|
||||
force = 0
|
||||
|
||||
|
||||
/obj/item/weapon/contraband/poster
|
||||
/obj/item/contraband/poster
|
||||
name = "rolled-up poster"
|
||||
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface."
|
||||
icon_state = "rolled_poster"
|
||||
@@ -16,7 +16,7 @@
|
||||
var/serial_number = 0
|
||||
|
||||
|
||||
/obj/item/weapon/contraband/poster/Initialize(mapload, given_serial = 0)
|
||||
/obj/item/contraband/poster/Initialize(mapload, given_serial = 0)
|
||||
. = ..()
|
||||
if(given_serial == 0)
|
||||
serial_number = rand(1, poster_designs.len)
|
||||
@@ -25,7 +25,7 @@
|
||||
name += " - No. [serial_number]"
|
||||
|
||||
//Places the poster on a wall
|
||||
/obj/item/weapon/contraband/poster/afterattack(var/atom/A, var/mob/user, var/adjacent, var/clickparams)
|
||||
/obj/item/contraband/poster/afterattack(var/atom/A, var/mob/user, var/adjacent, var/clickparams)
|
||||
if (!adjacent)
|
||||
return
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
addtimer(CALLBACK(src, .proc/place_on_wall, P, user, W), 28, TIMER_CLIENT_TIME)
|
||||
|
||||
/obj/item/weapon/contraband/poster/proc/place_on_wall(obj/structure/sign/poster/P, mob/user, turf/W)
|
||||
/obj/item/contraband/poster/proc/place_on_wall(obj/structure/sign/poster/P, mob/user, turf/W)
|
||||
if (QDELETED(P))
|
||||
return
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
desc = "[initial(desc)] [design.desc]"
|
||||
icon_state = design.icon_state // poster[serial_number]
|
||||
|
||||
/obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/structure/sign/poster/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(W.iswirecutter())
|
||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
||||
if(ruined)
|
||||
@@ -154,7 +154,7 @@
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/structure/sign/poster/proc/roll_and_drop(turf/newloc)
|
||||
var/obj/item/weapon/contraband/poster/P = new(src, serial_number)
|
||||
var/obj/item/contraband/poster/P = new(src, serial_number)
|
||||
P.forceMove(newloc)
|
||||
src.forceMove(P)
|
||||
qdel(src)
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
/obj/effect/landmark/costume/chicken/New()
|
||||
new /obj/item/clothing/suit/chickensuit(src.loc)
|
||||
new /obj/item/clothing/head/chicken(src.loc)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc)
|
||||
new /obj/item/reagent_containers/food/snacks/egg(src.loc)
|
||||
delete_me = 1
|
||||
|
||||
/obj/effect/landmark/costume/gladiator/New()
|
||||
@@ -178,7 +178,7 @@
|
||||
var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that)
|
||||
new CHOICE(src.loc)
|
||||
new /obj/item/clothing/shoes/black(src.loc)
|
||||
new /obj/item/weapon/cane(src.loc)
|
||||
new /obj/item/cane(src.loc)
|
||||
new /obj/item/clothing/under/sl_suit(src.loc)
|
||||
new /obj/item/clothing/mask/fakemoustache(src.loc)
|
||||
delete_me = 1
|
||||
@@ -231,13 +231,13 @@
|
||||
/obj/effect/landmark/costume/cutewitch/New()
|
||||
new /obj/item/clothing/under/sundress(src.loc)
|
||||
new /obj/item/clothing/head/witchwig(src.loc)
|
||||
new /obj/item/weapon/staff/broom(src.loc)
|
||||
new /obj/item/staff/broom(src.loc)
|
||||
delete_me = 1
|
||||
|
||||
/obj/effect/landmark/costume/fakewizard/New()
|
||||
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
|
||||
new /obj/item/clothing/head/wizard/fake(src.loc)
|
||||
new /obj/item/weapon/staff/(src.loc)
|
||||
new /obj/item/staff/(src.loc)
|
||||
delete_me = 1
|
||||
|
||||
/obj/effect/landmark/costume/sexyclown/New()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
var/dat = "<B>Crew Manifest</B>:<BR>"
|
||||
for(var/mob/living/carbon/human/M in mob_list)
|
||||
dat += text(" <B>[]</B> - []<BR>", M.name, M.get_assignment())
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
|
||||
var/obj/item/paper/P = new /obj/item/paper( src.loc )
|
||||
P.info = dat
|
||||
P.name = "paper- 'Crew Manifest'"
|
||||
//SN src = null
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
// radio
|
||||
if (0)
|
||||
var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc)
|
||||
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||
var/obj/item/tank/phoron/p3 = new /obj/item/tank/phoron(R)
|
||||
var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R)
|
||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||
R.part1 = p1
|
||||
@@ -47,7 +47,7 @@
|
||||
// proximity
|
||||
if (1)
|
||||
var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc)
|
||||
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||
var/obj/item/tank/phoron/p3 = new /obj/item/tank/phoron(R)
|
||||
var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R)
|
||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||
R.part1 = p1
|
||||
@@ -69,7 +69,7 @@
|
||||
// timer
|
||||
if (2)
|
||||
var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc)
|
||||
var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R)
|
||||
var/obj/item/tank/phoron/p3 = new /obj/item/tank/phoron(R)
|
||||
var/obj/item/device/timer/p1 = new /obj/item/device/timer(R)
|
||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||
R.part1 = p1
|
||||
@@ -85,7 +85,7 @@
|
||||
//bombvest
|
||||
if(3)
|
||||
var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc)
|
||||
var/obj/item/weapon/tank/phoron/p4 = new /obj/item/weapon/tank/phoron(R)
|
||||
var/obj/item/tank/phoron/p4 = new /obj/item/tank/phoron(R)
|
||||
var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R)
|
||||
var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R)
|
||||
var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R)
|
||||
@@ -161,8 +161,8 @@
|
||||
. = ..()
|
||||
|
||||
var/obj/item/device/transfer_valve/V = new(src.loc)
|
||||
var/obj/item/weapon/tank/phoron/PT = new(V)
|
||||
var/obj/item/weapon/tank/oxygen/OT = new(V)
|
||||
var/obj/item/tank/phoron/PT = new(V)
|
||||
var/obj/item/tank/oxygen/OT = new(V)
|
||||
|
||||
V.tank_one = PT
|
||||
V.tank_two = OT
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/effect/spider/attackby(var/obj/item/weapon/W, var/mob/user)
|
||||
/obj/effect/spider/attackby(var/obj/item/W, var/mob/user)
|
||||
visible_message("<span class='warning'>[src] has been [LAZYPICK(W.attack_verb, "attacked")] with [W][(user ? " by [user]." : ".")]</span>")
|
||||
|
||||
var/damage = W.force / 4.0
|
||||
|
||||
if(W.iswelder())
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
var/obj/item/weldingtool/WT = W
|
||||
|
||||
if(WT.remove_fuel(0, user))
|
||||
damage = 15
|
||||
|
||||
+23
-16
@@ -175,8 +175,8 @@
|
||||
to_chat(user, span("notice", "\The [src] slips out of your grasp before you can grab it!")) // because things called before this can move it
|
||||
return // please don't pick things up
|
||||
src.pickup(user)
|
||||
if (istype(src.loc, /obj/item/weapon/storage))
|
||||
var/obj/item/weapon/storage/S = src.loc
|
||||
if (istype(src.loc, /obj/item/storage))
|
||||
var/obj/item/storage/S = src.loc
|
||||
S.remove_from_storage(src)
|
||||
|
||||
src.throwing = 0
|
||||
@@ -192,7 +192,7 @@
|
||||
return
|
||||
|
||||
/obj/item/attack_ai(mob/user as mob)
|
||||
if (istype(src.loc, /obj/item/weapon/robot_module))
|
||||
if (istype(src.loc, /obj/item/robot_module))
|
||||
//If the item is part of a cyborg module, equip it
|
||||
if(!isrobot(user))
|
||||
return
|
||||
@@ -202,9 +202,9 @@
|
||||
|
||||
// Due to storage type consolidation this should get used more now.
|
||||
// I have cleaned it up a little, but it could probably use more. -Sayu
|
||||
/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/weapon/storage))
|
||||
var/obj/item/weapon/storage/S = W
|
||||
/obj/item/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W,/obj/item/storage))
|
||||
var/obj/item/storage/S = W
|
||||
if(S.use_to_pickup)
|
||||
if(S.collection_mode) //Mode is set to collect all items on a tile and we clicked on a valid one.
|
||||
if(isturf(loc))
|
||||
@@ -241,6 +241,13 @@
|
||||
else if(S.can_be_inserted(src))
|
||||
S.handle_item_insertion(src)
|
||||
|
||||
//Called when the user alt-clicks on something with this item in their active hand
|
||||
//this function is designed to be overridden by individual weapons
|
||||
/obj/item/proc/alt_attack(var/atom/target, var/mob/user)
|
||||
return 1
|
||||
//A return value of 1 continues on to do the normal alt-click action.
|
||||
//A return value of 0 does not continue, and will not do the alt-click
|
||||
|
||||
/obj/item/proc/talk_into(mob/M as mob, text)
|
||||
return
|
||||
|
||||
@@ -273,11 +280,11 @@
|
||||
return
|
||||
|
||||
// called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
|
||||
/obj/item/proc/on_exit_storage(obj/item/weapon/storage/S as obj)
|
||||
/obj/item/proc/on_exit_storage(obj/item/storage/S as obj)
|
||||
return
|
||||
|
||||
// called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
|
||||
/obj/item/proc/on_enter_storage(obj/item/weapon/storage/S as obj)
|
||||
/obj/item/proc/on_enter_storage(obj/item/storage/S as obj)
|
||||
return
|
||||
|
||||
// called when "found" in pockets and storage items. Returns 1 if the search should end.
|
||||
@@ -376,23 +383,23 @@ var/list/global/slot_flags_enumeration = list(
|
||||
if( !(istype(src, /obj/item/device/pda) || src.ispen() || is_type_in_list(src, H.wear_suit.allowed)) )
|
||||
return 0
|
||||
if(slot_handcuffed)
|
||||
if(!istype(src, /obj/item/weapon/handcuffs))
|
||||
if(!istype(src, /obj/item/handcuffs))
|
||||
return 0
|
||||
if(slot_legcuffed)
|
||||
if(!istype(src, /obj/item/weapon/legcuffs))
|
||||
if(!istype(src, /obj/item/legcuffs))
|
||||
return 0
|
||||
if(slot_in_backpack) //used entirely for equipping spawned mobs or at round start
|
||||
var/allow = 0
|
||||
if(H.back && istype(H.back, /obj/item/weapon/storage/backpack))
|
||||
var/obj/item/weapon/storage/backpack/B = H.back
|
||||
if(H.back && istype(H.back, /obj/item/storage/backpack))
|
||||
var/obj/item/storage/backpack/B = H.back
|
||||
if(B.can_be_inserted(src,1))
|
||||
allow = 1
|
||||
if(!allow)
|
||||
return 0
|
||||
if(slot_in_belt)
|
||||
var/allow = 0
|
||||
if(istype(H.belt, /obj/item/weapon/storage/belt))
|
||||
var/obj/item/weapon/storage/belt/B = H.belt
|
||||
if(istype(H.belt, /obj/item/storage/belt))
|
||||
var/obj/item/storage/belt/B = H.belt
|
||||
if(B.can_be_inserted(src,1))
|
||||
allow = 1
|
||||
if(!allow)
|
||||
@@ -460,7 +467,7 @@ var/list/global/slot_flags_enumeration = list(
|
||||
return
|
||||
if (!I in view(1, src))
|
||||
return
|
||||
if (istype(I, /obj/item/weapon/storage/internal))
|
||||
if (istype(I, /obj/item/storage/internal))
|
||||
return
|
||||
if(!usr.canmove || usr.stat || usr.restrained() || !Adjacent(usr))
|
||||
return
|
||||
@@ -592,7 +599,7 @@ var/list/global/slot_flags_enumeration = list(
|
||||
if (!..())
|
||||
return 0
|
||||
|
||||
if(istype(src, /obj/item/weapon/melee/energy))
|
||||
if(istype(src, /obj/item/melee/energy))
|
||||
return
|
||||
|
||||
//if we haven't made our blood_overlay already
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/used = FALSE
|
||||
var/ripped = FALSE
|
||||
var/zipped = FALSE
|
||||
var/obj/item/weapon/tank/internal_tank
|
||||
var/obj/item/tank/internal_tank
|
||||
var/syndie = FALSE
|
||||
|
||||
/obj/item/airbubble/Destroy()
|
||||
@@ -37,7 +37,7 @@
|
||||
else
|
||||
R = new /obj/structure/closet/airbubble(user.loc)
|
||||
if(!used)
|
||||
internal_tank = new /obj/item/weapon/tank/emergency_oxygen/engi(src)
|
||||
internal_tank = new /obj/item/tank/emergency_oxygen/engi(src)
|
||||
internal_tank.air_contents.adjust_gas("oxygen", (42*ONE_ATMOSPHERE)/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
R.internal_tank = internal_tank
|
||||
if(!isnull(internal_tank))
|
||||
@@ -73,11 +73,11 @@
|
||||
var/use_internal_tank = TRUE
|
||||
var/datum/gas_mixture/inside_air
|
||||
var/internal_tank_valve = 45 // arbitrary for now
|
||||
var/obj/item/weapon/tank/internal_tank
|
||||
var/obj/item/tank/internal_tank
|
||||
var/syndie = FALSE
|
||||
var/last_shake = 0
|
||||
var/cooling = FALSE
|
||||
var/obj/item/weapon/cell/cell = null
|
||||
var/obj/item/cell/cell = null
|
||||
var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here
|
||||
var/charge_consumption = 8.3 //charge per second at max_cooling
|
||||
var/thermostat = T20C
|
||||
@@ -393,7 +393,7 @@
|
||||
|
||||
// Handle most of things: restraining, cutting restrains, attaching tank.
|
||||
/obj/structure/closet/airbubble/attackby(obj/W, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/tank))
|
||||
if(istype(W, /obj/item/tank))
|
||||
if(!isnull(use_internal_tank))
|
||||
user.visible_message(
|
||||
"<span class='warning'>[user] is attaching [W] to [src].</span>",
|
||||
@@ -413,8 +413,8 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] already has a tank attached.</span>")
|
||||
if(opened)
|
||||
if(istype(W, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = W
|
||||
if(istype(W, /obj/item/grab))
|
||||
var/obj/item/grab/G = W
|
||||
MouseDrop_T(G.affecting, user)
|
||||
return 0
|
||||
if(istype(W,/obj/item/tk_grab))
|
||||
@@ -422,7 +422,7 @@
|
||||
if(!dropsafety(W))
|
||||
return
|
||||
user.drop_item()
|
||||
else if(istype(W, /obj/item/weapon/handcuffs/cable))
|
||||
else if(istype(W, /obj/item/handcuffs/cable))
|
||||
if(zipped)
|
||||
to_chat(user, "<span class='warning'>[src]'s zipper is already restrained.</span>")
|
||||
return
|
||||
@@ -460,9 +460,9 @@
|
||||
"<span class='warning'>[src] zipper's cable restrains has been cut by [user].</span>",
|
||||
"<span class='notice'>You cut cable restrains on [src]'s zipper.</span>"
|
||||
)
|
||||
new/obj/item/weapon/handcuffs/cable(src.loc)
|
||||
new/obj/item/handcuffs/cable(src.loc)
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/weapon/cell))
|
||||
else if(istype(W, /obj/item/cell))
|
||||
if(!isnull(cell))
|
||||
to_chat(user, "<span class='warning'>[src] already has [cell] attached to it.</span>")
|
||||
attack_hand(user)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
icon_state = "apc_frame"
|
||||
flags = CONDUCT
|
||||
|
||||
/obj/item/frame/apc/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/frame/apc/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (W.iswrench())
|
||||
new /obj/item/stack/material/steel( get_turf(src.loc), 2 )
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
src.pixel_x = rand(-5.0, 5)
|
||||
src.pixel_y = rand(-5.0, 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/honeycomb
|
||||
/obj/item/reagent_containers/food/snacks/honeycomb
|
||||
name = "honeycomb"
|
||||
icon_state = "honeycomb"
|
||||
desc = "Dripping with sugary sweetness."
|
||||
@@ -31,7 +31,7 @@
|
||||
New()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/honeycomb/Initialize()
|
||||
/obj/item/reagent_containers/food/snacks/honeycomb/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("honey",10)
|
||||
reagents.add_reagent("nutriment", 0.5)
|
||||
@@ -45,7 +45,7 @@
|
||||
color = "#FFFF00"
|
||||
fallback_specific_heat = 0.75
|
||||
|
||||
/obj/item/weapon/book/manual/hydroponics_beekeeping
|
||||
/obj/item/book/manual/hydroponics_beekeeping
|
||||
name = "The Ins and Outs of Apiculture - A Precise Art"
|
||||
icon_state ="bookHydroponicsBees"
|
||||
author = "Beekeeper Dave"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/bodybags
|
||||
/obj/item/storage/box/bodybags
|
||||
name = "body bags"
|
||||
desc = "This box contains body bags."
|
||||
icon_state = "bodybags"
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
//Let's get some REAL contraband stuff in here. Because come on, getting brigged for LIPSTICK is no fun.
|
||||
|
||||
//Illicit drugs~
|
||||
/obj/item/weapon/storage/pill_bottle/happy
|
||||
/obj/item/storage/pill_bottle/happy
|
||||
name = "bottle of Happy pills"
|
||||
desc = "Highly illegal drug. When you want to see the rainbow."
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/happy = 7)
|
||||
starts_with = list(/obj/item/reagent_containers/pill/happy = 7)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/zoom
|
||||
/obj/item/storage/pill_bottle/zoom
|
||||
name = "bottle of Zoom pills"
|
||||
desc = "Highly illegal drug. Trade brain for speed."
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/pill/zoom = 7)
|
||||
starts_with = list(/obj/item/reagent_containers/pill/zoom = 7)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/random
|
||||
/obj/item/reagent_containers/glass/beaker/vial/random
|
||||
flags = 0
|
||||
var/list/random_reagent_list = list(list("water" = 15) = 1, list("cleaner" = 15) = 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin
|
||||
/obj/item/reagent_containers/glass/beaker/vial/random/toxin
|
||||
random_reagent_list = list(
|
||||
list("mindbreaker" = 10, "space_drugs" = 20) = 3,
|
||||
list("carpotoxin" = 15) = 2,
|
||||
list("impedrezene" = 15) = 2,
|
||||
list("zombiepowder" = 10) = 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/random/Initialize()
|
||||
/obj/item/reagent_containers/glass/beaker/vial/random/Initialize()
|
||||
. = ..()
|
||||
if(is_open_container())
|
||||
flags ^= OPENCONTAINER
|
||||
@@ -39,10 +39,10 @@
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/venenum
|
||||
/obj/item/reagent_containers/glass/beaker/vial/venenum
|
||||
flags = 0
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/venenum/Initialize()
|
||||
/obj/item/reagent_containers/glass/beaker/vial/venenum/Initialize()
|
||||
. = ..()
|
||||
if(is_open_container())
|
||||
flags ^= OPENCONTAINER
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
/obj/item/weapon/pen/crayon/red
|
||||
/obj/item/pen/crayon/red
|
||||
icon_state = "crayonred"
|
||||
colour = "#DA0000"
|
||||
shadeColour = "#810C0C"
|
||||
colourName = "red"
|
||||
dust = "crayon_dust_red"
|
||||
|
||||
/obj/item/weapon/pen/crayon/orange
|
||||
/obj/item/pen/crayon/orange
|
||||
icon_state = "crayonorange"
|
||||
colour = "#FF9300"
|
||||
shadeColour = "#A55403"
|
||||
colourName = "orange"
|
||||
dust = "crayon_dust_orange"
|
||||
|
||||
/obj/item/weapon/pen/crayon/yellow
|
||||
/obj/item/pen/crayon/yellow
|
||||
icon_state = "crayonyellow"
|
||||
colour = "#FFF200"
|
||||
shadeColour = "#886422"
|
||||
colourName = "yellow"
|
||||
dust = "crayon_dust_yellow"
|
||||
|
||||
/obj/item/weapon/pen/crayon/green
|
||||
/obj/item/pen/crayon/green
|
||||
icon_state = "crayongreen"
|
||||
colour = "#A8E61D"
|
||||
shadeColour = "#61840F"
|
||||
colourName = "green"
|
||||
dust = "crayon_dust_green"
|
||||
|
||||
/obj/item/weapon/pen/crayon/blue
|
||||
/obj/item/pen/crayon/blue
|
||||
icon_state = "crayonblue"
|
||||
colour = "#00B7EF"
|
||||
shadeColour = "#0082A8"
|
||||
colourName = "blue"
|
||||
dust = "crayon_dust_blue"
|
||||
|
||||
/obj/item/weapon/pen/crayon/purple
|
||||
/obj/item/pen/crayon/purple
|
||||
icon_state = "crayonpurple"
|
||||
colour = "#DA00FF"
|
||||
shadeColour = "#810CFF"
|
||||
colourName = "purple"
|
||||
dust = "crayon_dust_purple"
|
||||
|
||||
/obj/item/weapon/pen/crayon/mime
|
||||
/obj/item/pen/crayon/mime
|
||||
icon_state = "crayonmime"
|
||||
desc = "A very sad-looking crayon."
|
||||
colour = "#FFFFFF"
|
||||
@@ -49,7 +49,7 @@
|
||||
dust = "crayon_dust_grey"
|
||||
chem_volume = 15
|
||||
|
||||
/obj/item/weapon/pen/crayon/mime/attack_self(mob/living/user as mob) //inversion
|
||||
/obj/item/pen/crayon/mime/attack_self(mob/living/user as mob) //inversion
|
||||
if(colour != "#FFFFFF" && shadeColour != "#000000")
|
||||
colour = "#FFFFFF"
|
||||
shadeColour = "#000000"
|
||||
@@ -60,7 +60,7 @@
|
||||
to_chat(user, "You will now draw in black and white with this crayon.")
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/crayon/rainbow
|
||||
/obj/item/pen/crayon/rainbow
|
||||
icon_state = "crayonrainbow"
|
||||
colour = "#FFF000"
|
||||
shadeColour = "#000FFF"
|
||||
@@ -68,12 +68,12 @@
|
||||
dust = "crayon_dust_brown"
|
||||
chem_volume = 20
|
||||
|
||||
/obj/item/weapon/pen/crayon/rainbow/attack_self(mob/living/user as mob)
|
||||
/obj/item/pen/crayon/rainbow/attack_self(mob/living/user as mob)
|
||||
colour = input(user, "Please select the main colour.", "Crayon colour") as color
|
||||
shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/crayon/afterattack(atom/target, mob/user as mob, proximity)
|
||||
/obj/item/pen/crayon/afterattack(atom/target, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
if(istype(target,/turf/simulated/floor))
|
||||
var/originaloc = user.loc
|
||||
@@ -104,7 +104,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/crayon/attack(mob/M as mob, mob/user as mob, var/target_zone)
|
||||
/obj/item/pen/crayon/attack(mob/M as mob, mob/user as mob, var/target_zone)
|
||||
if(M == user)
|
||||
to_chat(user, "You take a bite of the crayon and swallow it.")
|
||||
user.adjustNutritionLoss(-1)
|
||||
@@ -115,5 +115,5 @@
|
||||
else
|
||||
..(M, user, target_zone)
|
||||
|
||||
/obj/item/weapon/pen/crayon/attack_self(var/mob/user)
|
||||
/obj/item/pen/crayon/attack_self(var/mob/user)
|
||||
return
|
||||
@@ -16,7 +16,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
//Main variables
|
||||
var/owner = null
|
||||
var/default_cartridge = 0 // Access level defined by cartridge
|
||||
var/obj/item/weapon/cartridge/cartridge = null //current cartridge
|
||||
var/obj/item/cartridge/cartridge = null //current cartridge
|
||||
var/mode = 0 //Controls what menu the PDA will display. 0 is hub; the rest are either built in or based on cartridge.
|
||||
|
||||
var/lastmode = 0
|
||||
@@ -59,13 +59,13 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
var/list/no_auto_update = list(1, 40, 43, 44, 441, 45, 451) // These modes we turn off autoupdate
|
||||
var/list/update_every_five = list(3, 41, 433, 46, 47, 48, 49) // These we update every 5 ticks
|
||||
|
||||
var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both.
|
||||
var/obj/item/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both.
|
||||
var/ownjob = null //related to above - this is assignment (potentially alt title)
|
||||
var/ownrank = null // this one is rank, never alt title
|
||||
|
||||
var/obj/item/device/paicard/pai = null // A slot for a personal AI device
|
||||
|
||||
var/obj/item/weapon/pen/pen
|
||||
var/obj/item/pen/pen
|
||||
var/list/obj/machinery/requests_console/linked_consoles
|
||||
|
||||
var/flippable = 1
|
||||
@@ -79,51 +79,51 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
to_chat(user, "There is \a [pen] in the pen slot.")
|
||||
|
||||
/obj/item/device/pda/medical
|
||||
default_cartridge = /obj/item/weapon/cartridge/medical
|
||||
default_cartridge = /obj/item/cartridge/medical
|
||||
icon_state = "pda-m"
|
||||
|
||||
/obj/item/device/pda/viro
|
||||
default_cartridge = /obj/item/weapon/cartridge/medical
|
||||
default_cartridge = /obj/item/cartridge/medical
|
||||
icon_state = "pda-v"
|
||||
|
||||
/obj/item/device/pda/engineering
|
||||
default_cartridge = /obj/item/weapon/cartridge/engineering
|
||||
default_cartridge = /obj/item/cartridge/engineering
|
||||
icon_state = "pda-e"
|
||||
|
||||
/obj/item/device/pda/security
|
||||
default_cartridge = /obj/item/weapon/cartridge/security
|
||||
default_cartridge = /obj/item/cartridge/security
|
||||
icon_state = "pda-s"
|
||||
|
||||
/obj/item/device/pda/detective
|
||||
default_cartridge = /obj/item/weapon/cartridge/detective
|
||||
default_cartridge = /obj/item/cartridge/detective
|
||||
icon_state = "pda-det"
|
||||
|
||||
/obj/item/device/pda/warden
|
||||
default_cartridge = /obj/item/weapon/cartridge/security
|
||||
default_cartridge = /obj/item/cartridge/security
|
||||
icon_state = "pda-warden"
|
||||
|
||||
/obj/item/device/pda/janitor
|
||||
default_cartridge = /obj/item/weapon/cartridge/janitor
|
||||
default_cartridge = /obj/item/cartridge/janitor
|
||||
icon_state = "pda-j"
|
||||
ttone = "slip"
|
||||
|
||||
/obj/item/device/pda/science
|
||||
default_cartridge = /obj/item/weapon/cartridge/signal/science
|
||||
default_cartridge = /obj/item/cartridge/signal/science
|
||||
icon_state = "pda-tox"
|
||||
ttone = "boom"
|
||||
|
||||
/obj/item/device/pda/xenobio
|
||||
default_cartridge = /obj/item/weapon/cartridge/signal/science
|
||||
default_cartridge = /obj/item/cartridge/signal/science
|
||||
icon_state = "pda-xenobio"
|
||||
|
||||
/obj/item/device/pda/clown
|
||||
default_cartridge = /obj/item/weapon/cartridge/clown
|
||||
default_cartridge = /obj/item/cartridge/clown
|
||||
icon_state = "pda-clown"
|
||||
desc = "A portable microcomputer by Thinktronic Systems, LTD. The surface is coated with polytetrafluoroethylene and banana drippings."
|
||||
ttone = "honk"
|
||||
|
||||
/obj/item/device/pda/mime
|
||||
default_cartridge = /obj/item/weapon/cartridge/mime
|
||||
default_cartridge = /obj/item/cartridge/mime
|
||||
icon_state = "pda-mime"
|
||||
message_silent = 1
|
||||
news_silent = 1
|
||||
@@ -131,55 +131,55 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
newstone = "silence"
|
||||
|
||||
/obj/item/device/pda/heads
|
||||
default_cartridge = /obj/item/weapon/cartridge/head
|
||||
default_cartridge = /obj/item/cartridge/head
|
||||
icon_state = "pda-h"
|
||||
news_silent = 1
|
||||
|
||||
/obj/item/device/pda/heads/hop
|
||||
default_cartridge = /obj/item/weapon/cartridge/hop
|
||||
default_cartridge = /obj/item/cartridge/hop
|
||||
icon_state = "pda-hop"
|
||||
|
||||
/obj/item/device/pda/heads/hos
|
||||
default_cartridge = /obj/item/weapon/cartridge/hos
|
||||
default_cartridge = /obj/item/cartridge/hos
|
||||
icon_state = "pda-hos"
|
||||
|
||||
/obj/item/device/pda/heads/ce
|
||||
default_cartridge = /obj/item/weapon/cartridge/ce
|
||||
default_cartridge = /obj/item/cartridge/ce
|
||||
icon_state = "pda-ce"
|
||||
|
||||
/obj/item/device/pda/heads/cmo
|
||||
default_cartridge = /obj/item/weapon/cartridge/cmo
|
||||
default_cartridge = /obj/item/cartridge/cmo
|
||||
icon_state = "pda-cmo"
|
||||
|
||||
/obj/item/device/pda/heads/rd
|
||||
default_cartridge = /obj/item/weapon/cartridge/rd
|
||||
default_cartridge = /obj/item/cartridge/rd
|
||||
icon_state = "pda-rd"
|
||||
|
||||
/obj/item/device/pda/captain
|
||||
default_cartridge = /obj/item/weapon/cartridge/captain
|
||||
default_cartridge = /obj/item/cartridge/captain
|
||||
icon_state = "pda-c"
|
||||
detonate = 0
|
||||
//toff = 1
|
||||
|
||||
/obj/item/device/pda/ert
|
||||
default_cartridge = /obj/item/weapon/cartridge/captain
|
||||
default_cartridge = /obj/item/cartridge/captain
|
||||
icon_state = "pda-h"
|
||||
detonate = 0
|
||||
hidden = 1
|
||||
|
||||
/obj/item/device/pda/cargo
|
||||
default_cartridge = /obj/item/weapon/cartridge/quartermaster
|
||||
default_cartridge = /obj/item/cartridge/quartermaster
|
||||
icon_state = "pda-cargo"
|
||||
|
||||
/obj/item/device/pda/quartermaster
|
||||
default_cartridge = /obj/item/weapon/cartridge/quartermaster
|
||||
default_cartridge = /obj/item/cartridge/quartermaster
|
||||
icon_state = "pda-q"
|
||||
|
||||
/obj/item/device/pda/shaftminer
|
||||
icon_state = "pda-miner"
|
||||
|
||||
/obj/item/device/pda/syndicate
|
||||
default_cartridge = /obj/item/weapon/cartridge/syndicate
|
||||
default_cartridge = /obj/item/cartridge/syndicate
|
||||
icon_state = "pda-syn"
|
||||
name = "Military PDA"
|
||||
owner = "John Doe"
|
||||
@@ -190,12 +190,12 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
ttone = "holy"
|
||||
|
||||
/obj/item/device/pda/lawyer
|
||||
default_cartridge = /obj/item/weapon/cartridge/lawyer
|
||||
default_cartridge = /obj/item/cartridge/lawyer
|
||||
icon_state = "pda-lawyer"
|
||||
ttone = "..."
|
||||
|
||||
/obj/item/device/pda/botanist
|
||||
//default_cartridge = /obj/item/weapon/cartridge/botanist
|
||||
//default_cartridge = /obj/item/cartridge/botanist
|
||||
icon_state = "pda-hydro"
|
||||
|
||||
/obj/item/device/pda/roboticist
|
||||
@@ -220,19 +220,19 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
icon_state = "pda-bar"
|
||||
|
||||
/obj/item/device/pda/atmos
|
||||
default_cartridge = /obj/item/weapon/cartridge/atmos
|
||||
default_cartridge = /obj/item/cartridge/atmos
|
||||
icon_state = "pda-atmo"
|
||||
|
||||
/obj/item/device/pda/chemist
|
||||
default_cartridge = /obj/item/weapon/cartridge/chemistry
|
||||
default_cartridge = /obj/item/cartridge/chemistry
|
||||
icon_state = "pda-chem"
|
||||
|
||||
/obj/item/device/pda/psych
|
||||
default_cartridge = /obj/item/weapon/cartridge/medical
|
||||
default_cartridge = /obj/item/cartridge/medical
|
||||
icon_state = "pda-psych"
|
||||
|
||||
/obj/item/device/pda/paramedic
|
||||
default_cartridge = /obj/item/weapon/cartridge/medical
|
||||
default_cartridge = /obj/item/cartridge/medical
|
||||
icon_state = "pda-paramedic"
|
||||
|
||||
/obj/item/device/pda/merchant
|
||||
@@ -338,7 +338,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
cartridge = new default_cartridge(src)
|
||||
|
||||
if (has_pen)
|
||||
pen = new /obj/item/weapon/pen(src)
|
||||
pen = new /obj/item/pen(src)
|
||||
|
||||
/obj/item/device/pda/proc/try_sort_pda_list()
|
||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/sortTim, PDAs, /proc/cmp_pda), 1 SECOND, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_NO_HASH_WAIT)
|
||||
@@ -1245,13 +1245,13 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
return 1
|
||||
else
|
||||
var/obj/item/I = user.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id) && user.unEquip(I))
|
||||
if (istype(I, /obj/item/card/id) && user.unEquip(I))
|
||||
I.forceMove(src)
|
||||
id = I
|
||||
return 1
|
||||
else
|
||||
var/obj/item/weapon/card/I = user.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id) && I:registered_name && user.unEquip(I))
|
||||
var/obj/item/card/I = user.get_active_hand()
|
||||
if (istype(I, /obj/item/card/id) && I:registered_name && user.unEquip(I))
|
||||
var/obj/old_id = id
|
||||
I.forceMove(src)
|
||||
id = I
|
||||
@@ -1262,7 +1262,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
// access to status display signals
|
||||
/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob)
|
||||
..()
|
||||
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
|
||||
if(istype(C, /obj/item/cartridge) && !cartridge)
|
||||
cartridge = C
|
||||
user.drop_from_inventory(cartridge,src)
|
||||
to_chat(user, "<span class='notice'>You insert [cartridge] into [src].</span>")
|
||||
@@ -1271,8 +1271,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if(cartridge.radio)
|
||||
cartridge.radio.hostpda = src
|
||||
|
||||
else if(istype(C, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/idcard = C
|
||||
else if(istype(C, /obj/item/card/id))
|
||||
var/obj/item/card/id/idcard = C
|
||||
if(!idcard.registered_name)
|
||||
to_chat(user, "<span class='notice'>\The [src] rejects the ID.</span>")
|
||||
return
|
||||
@@ -1302,7 +1302,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
to_chat(user, "<span class='notice'>You slide \the [C] into \the [src].</span>")
|
||||
return
|
||||
|
||||
/obj/item/device/pda/proc/update_userinfo(var/obj/item/weapon/card/id/idcard, var/mob/living/user)
|
||||
/obj/item/device/pda/proc/update_userinfo(var/obj/item/card/id/idcard, var/mob/living/user)
|
||||
owner = idcard.registered_name
|
||||
ownjob = idcard.assignment
|
||||
ownrank = idcard.rank
|
||||
@@ -1392,7 +1392,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if(5)
|
||||
analyze_gases(A, user)
|
||||
|
||||
if (!scanmode && istype(A, /obj/item/weapon/paper) && owner)
|
||||
if (!scanmode && istype(A, /obj/item/paper) && owner)
|
||||
// JMO 20140705: Makes scanned document show up properly in the notes. Not pretty for formatted documents,
|
||||
// as this will clobber the HTML, but at least it lets you scan a document. You can restore the original
|
||||
// notes by editing the note again. (Was going to allow you to edit, but scanned documents are too long.)
|
||||
@@ -1466,7 +1466,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if (istype(AM, /mob/living))
|
||||
var/mob/living/M = AM
|
||||
|
||||
if(M.slip("the PDA",8) && M.real_name != src.owner && istype(src.cartridge, /obj/item/weapon/cartridge/clown))
|
||||
if(M.slip("the PDA",8) && M.real_name != src.owner && istype(src.cartridge, /obj/item/cartridge/clown))
|
||||
if(src.cartridge.charges < 5)
|
||||
src.cartridge.charges++
|
||||
|
||||
@@ -1502,24 +1502,24 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
|
||||
//Some spare PDAs in a box
|
||||
/obj/item/weapon/storage/box/PDAs
|
||||
/obj/item/storage/box/PDAs
|
||||
name = "box of spare PDAs"
|
||||
desc = "A box of spare PDA microcomputers."
|
||||
icon_state = "pdabox"
|
||||
|
||||
/obj/item/weapon/storage/box/PDAs/fill()
|
||||
/obj/item/storage/box/PDAs/fill()
|
||||
..()
|
||||
new /obj/item/device/pda(src)
|
||||
new /obj/item/device/pda(src)
|
||||
new /obj/item/device/pda(src)
|
||||
new /obj/item/device/pda(src)
|
||||
new /obj/item/weapon/cartridge/head(src)
|
||||
new /obj/item/cartridge/head(src)
|
||||
|
||||
var/newcart = pick( /obj/item/weapon/cartridge/engineering,
|
||||
/obj/item/weapon/cartridge/security,
|
||||
/obj/item/weapon/cartridge/medical,
|
||||
/obj/item/weapon/cartridge/signal/science,
|
||||
/obj/item/weapon/cartridge/quartermaster)
|
||||
var/newcart = pick( /obj/item/cartridge/engineering,
|
||||
/obj/item/cartridge/security,
|
||||
/obj/item/cartridge/medical,
|
||||
/obj/item/cartridge/signal/science,
|
||||
/obj/item/cartridge/quartermaster)
|
||||
new newcart(src)
|
||||
|
||||
// Pass along the pulse to atoms in contents, largely added so pAIs are vulnerable to EMP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/cartridge
|
||||
/obj/item/cartridge
|
||||
name = "generic cartridge"
|
||||
desc = "A data cartridge for portable microcomputers."
|
||||
icon = 'icons/obj/cartridge.dmi'
|
||||
@@ -32,106 +32,106 @@
|
||||
var/message2
|
||||
var/list/stored_data = list()
|
||||
|
||||
/obj/item/weapon/cartridge/Destroy()
|
||||
/obj/item/cartridge/Destroy()
|
||||
QDEL_NULL(radio)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/cartridge/engineering
|
||||
/obj/item/cartridge/engineering
|
||||
name = "\improper Power-ON cartridge"
|
||||
icon_state = "cart-e"
|
||||
access_engine = 1
|
||||
|
||||
/obj/item/weapon/cartridge/atmos
|
||||
/obj/item/cartridge/atmos
|
||||
name = "\improper BreatheDeep cartridge"
|
||||
icon_state = "cart-a"
|
||||
access_atmos = 1
|
||||
|
||||
/obj/item/weapon/cartridge/medical
|
||||
/obj/item/cartridge/medical
|
||||
name = "\improper Med-U cartridge"
|
||||
icon_state = "cart-m"
|
||||
access_medical = 1
|
||||
|
||||
/obj/item/weapon/cartridge/chemistry
|
||||
/obj/item/cartridge/chemistry
|
||||
name = "\improper ChemWhiz cartridge"
|
||||
icon_state = "cart-chem"
|
||||
access_reagent_scanner = 1
|
||||
|
||||
/obj/item/weapon/cartridge/security
|
||||
/obj/item/cartridge/security
|
||||
name = "\improper R.O.B.U.S.T. cartridge"
|
||||
icon_state = "cart-s"
|
||||
access_security = 1
|
||||
|
||||
/obj/item/weapon/cartridge/security/Initialize()
|
||||
/obj/item/cartridge/security/Initialize()
|
||||
. = ..()
|
||||
radio = new /obj/item/radio/integrated/beepsky(src)
|
||||
|
||||
/obj/item/weapon/cartridge/detective
|
||||
/obj/item/cartridge/detective
|
||||
name = "\improper D.E.T.E.C.T. cartridge"
|
||||
icon_state = "cart-s"
|
||||
access_security = 1
|
||||
access_medical = 1
|
||||
|
||||
|
||||
/obj/item/weapon/cartridge/janitor
|
||||
/obj/item/cartridge/janitor
|
||||
name = "\improper CustodiPRO cartridge"
|
||||
desc = "The ultimate in clean-room design."
|
||||
icon_state = "cart-j"
|
||||
access_janitor = 1
|
||||
|
||||
/obj/item/weapon/cartridge/lawyer
|
||||
/obj/item/cartridge/lawyer
|
||||
name = "\improper P.R.O.V.E. cartridge"
|
||||
icon_state = "cart-s"
|
||||
access_security = 1
|
||||
|
||||
/obj/item/weapon/cartridge/clown
|
||||
/obj/item/cartridge/clown
|
||||
name = "\improper Honkworks 5.0 cartridge"
|
||||
icon_state = "cart-clown"
|
||||
access_clown = 1
|
||||
charges = 5
|
||||
|
||||
/obj/item/weapon/cartridge/mime
|
||||
/obj/item/cartridge/mime
|
||||
name = "\improper Gestur-O 1000 cartridge"
|
||||
icon_state = "cart-mi"
|
||||
access_mime = 1
|
||||
charges = 5
|
||||
/*
|
||||
/obj/item/weapon/cartridge/botanist
|
||||
/obj/item/cartridge/botanist
|
||||
name = "Green Thumb v4.20"
|
||||
icon_state = "cart-b"
|
||||
access_flora = 1
|
||||
*/
|
||||
|
||||
/obj/item/weapon/cartridge/signal
|
||||
/obj/item/cartridge/signal
|
||||
name = "generic signaler cartridge"
|
||||
desc = "A data cartridge with an integrated radio signaler module."
|
||||
|
||||
/obj/item/weapon/cartridge/signal/science
|
||||
/obj/item/cartridge/signal/science
|
||||
name = "\improper Signal Ace 2 cartridge"
|
||||
desc = "Complete with integrated radio signaler!"
|
||||
icon_state = "cart-tox"
|
||||
access_reagent_scanner = 1
|
||||
access_atmos = 1
|
||||
|
||||
/obj/item/weapon/cartridge/signal/Initialize()
|
||||
/obj/item/cartridge/signal/Initialize()
|
||||
. = ..()
|
||||
radio = new /obj/item/radio/integrated/signal(src)
|
||||
|
||||
/obj/item/weapon/cartridge/quartermaster
|
||||
/obj/item/cartridge/quartermaster
|
||||
name = "\improper Space Parts & Space Vendors cartridge"
|
||||
desc = "Perfect for the Quartermaster on the go!"
|
||||
icon_state = "cart-q"
|
||||
access_quartermaster = 1
|
||||
|
||||
/obj/item/weapon/cartridge/quartermaster/Initialize()
|
||||
/obj/item/cartridge/quartermaster/Initialize()
|
||||
. = ..()
|
||||
radio = new /obj/item/radio/integrated/mule(src)
|
||||
|
||||
/obj/item/weapon/cartridge/head
|
||||
/obj/item/cartridge/head
|
||||
name = "\improper Easy-Record DELUXE"
|
||||
icon_state = "cart-h"
|
||||
access_status_display = 1
|
||||
|
||||
/obj/item/weapon/cartridge/hop
|
||||
/obj/item/cartridge/hop
|
||||
name = "\improper HumanResources9001 cartridge"
|
||||
icon_state = "cart-h"
|
||||
access_status_display = 1
|
||||
@@ -139,46 +139,46 @@
|
||||
access_janitor = 1
|
||||
access_security = 1
|
||||
|
||||
/obj/item/weapon/cartridge/hop/Initialize()
|
||||
/obj/item/cartridge/hop/Initialize()
|
||||
. = ..()
|
||||
radio = new /obj/item/radio/integrated/mule(src)
|
||||
|
||||
/obj/item/weapon/cartridge/hos
|
||||
/obj/item/cartridge/hos
|
||||
name = "\improper R.O.B.U.S.T. DELUXE"
|
||||
icon_state = "cart-hos"
|
||||
access_status_display = 1
|
||||
access_security = 1
|
||||
|
||||
/obj/item/weapon/cartridge/hos/Initialize()
|
||||
/obj/item/cartridge/hos/Initialize()
|
||||
. = ..()
|
||||
radio = new /obj/item/radio/integrated/beepsky(src)
|
||||
|
||||
/obj/item/weapon/cartridge/ce
|
||||
/obj/item/cartridge/ce
|
||||
name = "\improper Power-On DELUXE"
|
||||
icon_state = "cart-ce"
|
||||
access_status_display = 1
|
||||
access_engine = 1
|
||||
access_atmos = 1
|
||||
|
||||
/obj/item/weapon/cartridge/cmo
|
||||
/obj/item/cartridge/cmo
|
||||
name = "\improper Med-U DELUXE"
|
||||
icon_state = "cart-cmo"
|
||||
access_status_display = 1
|
||||
access_reagent_scanner = 1
|
||||
access_medical = 1
|
||||
|
||||
/obj/item/weapon/cartridge/rd
|
||||
/obj/item/cartridge/rd
|
||||
name = "\improper Signal Ace DELUXE"
|
||||
icon_state = "cart-rd"
|
||||
access_status_display = 1
|
||||
access_reagent_scanner = 1
|
||||
access_atmos = 1
|
||||
|
||||
/obj/item/weapon/cartridge/rd/Initialize()
|
||||
/obj/item/cartridge/rd/Initialize()
|
||||
. = ..()
|
||||
radio = new /obj/item/radio/integrated/signal(src)
|
||||
|
||||
/obj/item/weapon/cartridge/captain
|
||||
/obj/item/cartridge/captain
|
||||
name = "\improper Value-PAK cartridge"
|
||||
desc = "Now with 200% more value!"
|
||||
icon_state = "cart-c"
|
||||
@@ -191,7 +191,7 @@
|
||||
access_status_display = 1
|
||||
access_atmos = 1
|
||||
|
||||
/obj/item/weapon/cartridge/syndicate
|
||||
/obj/item/cartridge/syndicate
|
||||
name = "\improper Detomatix cartridge"
|
||||
icon_state = "cart"
|
||||
access_remote_door = 1
|
||||
@@ -199,7 +199,7 @@
|
||||
remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing.
|
||||
charges = 4
|
||||
|
||||
/obj/item/weapon/cartridge/proc/post_status(var/command, var/data1, var/data2)
|
||||
/obj/item/cartridge/proc/post_status(var/command, var/data1, var/data2)
|
||||
|
||||
var/datum/radio_frequency/frequency = SSradio.return_frequency(1435)
|
||||
if(!frequency) return
|
||||
@@ -236,7 +236,7 @@
|
||||
*/
|
||||
|
||||
|
||||
/obj/item/weapon/cartridge/proc/create_NanoUI_values(mob/user as mob)
|
||||
/obj/item/cartridge/proc/create_NanoUI_values(mob/user as mob)
|
||||
var/values[0]
|
||||
|
||||
/* Signaler (Mode: 40) */
|
||||
@@ -432,7 +432,7 @@
|
||||
else
|
||||
JaniData["user_loc"] = list("x" = 0, "y" = 0)
|
||||
var/MopData[0]
|
||||
for(var/obj/item/weapon/mop/M in global.janitorial_supplies)
|
||||
for(var/obj/item/mop/M in global.janitorial_supplies)
|
||||
var/turf/ml = get_turf(M)
|
||||
if(ml)
|
||||
if(ml.z != cl.z)
|
||||
@@ -486,7 +486,7 @@
|
||||
return values
|
||||
|
||||
|
||||
/obj/item/weapon/cartridge/Topic(href, href_list)
|
||||
/obj/item/cartridge/Topic(href, href_list)
|
||||
..()
|
||||
|
||||
if (!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/aicard
|
||||
/obj/item/aicard
|
||||
name = "inteliCard"
|
||||
icon = 'icons/obj/pai.dmi'
|
||||
icon_state = "aicard" // aicard-full
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
var/mob/living/silicon/ai/carded_ai
|
||||
|
||||
/obj/item/weapon/aicard/examine(mob/user)
|
||||
/obj/item/aicard/examine(mob/user)
|
||||
..()
|
||||
var/message = "Status of [carded_ai] is: "
|
||||
if(!carded_ai)
|
||||
@@ -23,18 +23,18 @@
|
||||
message += span("warning", "inactive.")
|
||||
to_chat(user, message)
|
||||
|
||||
/obj/item/weapon/aicard/attack(mob/living/silicon/decoy/M as mob, mob/user as mob, var/target_zone)
|
||||
/obj/item/aicard/attack(mob/living/silicon/decoy/M as mob, mob/user as mob, var/target_zone)
|
||||
if (!istype (M, /mob/living/silicon/decoy))
|
||||
return ..()
|
||||
else
|
||||
M.death()
|
||||
to_chat(user, "<b>ERROR ERROR ERROR</b>")
|
||||
|
||||
/obj/item/weapon/aicard/attack_self(mob/user)
|
||||
/obj/item/aicard/attack_self(mob/user)
|
||||
|
||||
ui_interact(user)
|
||||
|
||||
/obj/item/weapon/aicard/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
|
||||
/obj/item/aicard/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
|
||||
var/data[0]
|
||||
data["has_ai"] = carded_ai != null
|
||||
if(carded_ai)
|
||||
@@ -59,7 +59,7 @@
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
|
||||
/obj/item/weapon/aicard/Topic(href, href_list, state)
|
||||
/obj/item/aicard/Topic(href, href_list, state)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/aicard/update_icon()
|
||||
/obj/item/aicard/update_icon()
|
||||
cut_overlays()
|
||||
if(carded_ai)
|
||||
if (!carded_ai.control_disabled)
|
||||
@@ -101,7 +101,7 @@
|
||||
else
|
||||
icon_state = "aicard"
|
||||
|
||||
/obj/item/weapon/aicard/proc/grab_ai(var/mob/living/silicon/ai/ai, var/mob/living/user)
|
||||
/obj/item/aicard/proc/grab_ai(var/mob/living/silicon/ai/ai, var/mob/living/user)
|
||||
if(!ai.client)
|
||||
to_chat(user, "<span class='danger'>ERROR:</span> AI [ai.name] is offline. Unable to download.")
|
||||
return 0
|
||||
@@ -137,7 +137,7 @@
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/aicard/proc/clear()
|
||||
/obj/item/aicard/proc/clear()
|
||||
if(carded_ai && istype(carded_ai.loc, /turf))
|
||||
carded_ai.canmove = 0
|
||||
carded_ai.carded = 0
|
||||
@@ -145,21 +145,21 @@
|
||||
carded_ai = null
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/aicard/see_emote(mob/living/M, text)
|
||||
/obj/item/aicard/see_emote(mob/living/M, text)
|
||||
if(carded_ai && carded_ai.client)
|
||||
var/rendered = "<span class='message'>[text]</span>"
|
||||
carded_ai.show_message(rendered, 2)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/aicard/show_message(msg, type, alt, alt_type)
|
||||
/obj/item/aicard/show_message(msg, type, alt, alt_type)
|
||||
if(carded_ai && carded_ai.client)
|
||||
var/rendered = "<span class='message'>[msg]</span>"
|
||||
carded_ai.show_message(rendered, type)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/aicard/relaymove(var/mob/user, var/direction)
|
||||
/obj/item/aicard/relaymove(var/mob/user, var/direction)
|
||||
if(user.stat || user.stunned)
|
||||
return
|
||||
var/obj/item/weapon/rig/rig = src.get_rig()
|
||||
var/obj/item/rig/rig = src.get_rig()
|
||||
if(istype(rig))
|
||||
rig.forced_move(direction, user)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
origin_tech = list(TECH_ILLEGAL = 4, TECH_MAGNET = 4)
|
||||
var/can_use = 1
|
||||
var/obj/effect/dummy/chameleon/active_dummy = null
|
||||
var/saved_item = /obj/item/weapon/cigbutt
|
||||
var/saved_item = /obj/item/cigbutt
|
||||
var/saved_icon = 'icons/obj/clothing/masks.dmi'
|
||||
var/saved_icon_state = "cigbutt"
|
||||
var/saved_overlays
|
||||
@@ -30,7 +30,7 @@
|
||||
/obj/item/device/chameleon/afterattack(atom/target, mob/user , proximity)
|
||||
if(!proximity) return
|
||||
if(!active_dummy)
|
||||
if(istype(target,/obj/item) && !istype(target, /obj/item/weapon/disk/nuclear))
|
||||
if(istype(target,/obj/item) && !istype(target, /obj/item/disk/nuclear))
|
||||
playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6)
|
||||
to_chat(user, "<span class='notice'>Scanned [target].</span>")
|
||||
saved_item = target.type
|
||||
|
||||
@@ -167,8 +167,8 @@
|
||||
|
||||
for(var/mob/living/carbon/M in oviewers(3, null))
|
||||
if(prob(50))
|
||||
if (locate(/obj/item/weapon/cloaking_device, M))
|
||||
for(var/obj/item/weapon/cloaking_device/S in M)
|
||||
if (locate(/obj/item/cloaking_device, M))
|
||||
for(var/obj/item/cloaking_device/S in M)
|
||||
S.active = 0
|
||||
S.icon_state = "shield0"
|
||||
var/safety = M.eyecheck(TRUE)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = 1
|
||||
var/turf/pointer_loc
|
||||
var/obj/item/weapon/stock_parts/micro_laser/diode //cant use the laser without it
|
||||
var/obj/item/stock_parts/micro_laser/diode //cant use the laser without it
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/obj/item/device/laser_pointer/upgraded/Initialize()
|
||||
. = ..()
|
||||
diode = new /obj/item/weapon/stock_parts/micro_laser/ultra
|
||||
diode = new /obj/item/stock_parts/micro_laser/ultra
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
laser_act(M, user)
|
||||
|
||||
/obj/item/device/laser_pointer/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/stock_parts/micro_laser))
|
||||
if(istype(W, /obj/item/stock_parts/micro_laser))
|
||||
if(!diode)
|
||||
user.drop_item()
|
||||
W.forceMove(src)
|
||||
|
||||
@@ -89,8 +89,8 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need 5 sheets of glass to replace lights.</span>")
|
||||
|
||||
if(istype(W, /obj/item/weapon/light))
|
||||
var/obj/item/weapon/light/L = W
|
||||
if(istype(W, /obj/item/light))
|
||||
var/obj/item/light/L = W
|
||||
if(L.status == 0) // LIGHT OKAY
|
||||
if(uses < max_uses)
|
||||
AddUses(1)
|
||||
@@ -104,27 +104,27 @@
|
||||
|
||||
|
||||
/obj/item/device/lightreplacer/afterattack(var/atom/target, var/mob/living/user, proximity, params)
|
||||
if (istype(target, /obj/item/weapon/storage/box))
|
||||
if (istype(target, /obj/item/storage/box))
|
||||
if (box_contains_lights(target))
|
||||
load_lights_from_box(target, user)
|
||||
else
|
||||
to_chat(user, "This box has no bulbs in it!")
|
||||
|
||||
|
||||
/obj/item/device/lightreplacer/proc/box_contains_lights(var/obj/item/weapon/storage/box/box)
|
||||
for (var/obj/item/weapon/light/L in box.contents)
|
||||
/obj/item/device/lightreplacer/proc/box_contains_lights(var/obj/item/storage/box/box)
|
||||
for (var/obj/item/light/L in box.contents)
|
||||
if (L.status == 0)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/obj/item/device/lightreplacer/proc/load_lights_from_box(var/obj/item/weapon/storage/box/box, var/mob/user)
|
||||
/obj/item/device/lightreplacer/proc/load_lights_from_box(var/obj/item/storage/box/box, var/mob/user)
|
||||
var/boxstartloc = box.loc
|
||||
var/ourstartloc = src.loc
|
||||
user.visible_message("<span class='notice'>[user] starts loading lights from the [box] into their [src]</span>", "<span class='notice'>You start loading lights from the [box] into the [src]</span>")
|
||||
while (uses < max_uses)
|
||||
var/bulb = null
|
||||
for (var/obj/item/weapon/light/L in box.contents)
|
||||
for (var/obj/item/light/L in box.contents)
|
||||
if (L.status == 0)
|
||||
bulb = L
|
||||
break
|
||||
@@ -147,7 +147,7 @@
|
||||
|
||||
/obj/item/device/lightreplacer/proc/stored()
|
||||
var/count = 0
|
||||
for (var/obj/item/weapon/light/L in src)
|
||||
for (var/obj/item/light/L in src)
|
||||
count++
|
||||
|
||||
return count
|
||||
@@ -185,7 +185,7 @@
|
||||
|
||||
if(target.status != LIGHT_EMPTY)
|
||||
|
||||
var/obj/item/weapon/light/L1 = new target.light_type(target.loc)
|
||||
var/obj/item/light/L1 = new target.light_type(target.loc)
|
||||
L1.status = target.status
|
||||
L1.rigged = target.rigged
|
||||
L1.brightness_range = target.brightness_range
|
||||
@@ -206,7 +206,7 @@
|
||||
else
|
||||
to_chat(U, "<span class='danger'>\The [src] tries to suck up the broken [target.fitting] but it has no more space. Empty it into the trash!</span>")
|
||||
|
||||
var/obj/item/weapon/light/L2 = new target.light_type()
|
||||
var/obj/item/light/L2 = new target.light_type()
|
||||
|
||||
target.status = L2.status
|
||||
target.switchcount = L2.switchcount
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
var/obj/machinery/door/airlock/target_node1 = null
|
||||
var/obj/machinery/door/airlock/target_node2 = null
|
||||
var/obj/machinery/door/airlock/target = null
|
||||
var/obj/item/weapon/cell/powercell
|
||||
var/obj/item/weapon/cell/internal_cell
|
||||
var/obj/item/cell/powercell
|
||||
var/obj/item/cell/internal_cell
|
||||
|
||||
/obj/item/device/magnetic_lock/security
|
||||
department = "Security"
|
||||
@@ -44,8 +44,8 @@
|
||||
/obj/item/device/magnetic_lock/Initialize()
|
||||
. = ..()
|
||||
|
||||
powercell = new /obj/item/weapon/cell/high()
|
||||
internal_cell = new /obj/item/weapon/cell/device()
|
||||
powercell = new /obj/item/cell/high()
|
||||
internal_cell = new /obj/item/cell/device()
|
||||
|
||||
if (istext(department))
|
||||
desc += " It is painted with [department] colors."
|
||||
@@ -109,7 +109,7 @@
|
||||
to_chat(user, "<span class='danger'>[src] is broken beyond repair!</span>")
|
||||
return
|
||||
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
if (istype(I, /obj/item/card/id))
|
||||
if (!constructionstate && !hacked)
|
||||
if (check_access(I))
|
||||
locked = !locked
|
||||
@@ -127,7 +127,7 @@
|
||||
to_chat(user, "<span class='danger'>You cannot swipe your [I] through [src] with it partially dismantled!</span>")
|
||||
return
|
||||
|
||||
if (istype(I, /obj/item/weapon) && user.a_intent == "harm")
|
||||
if (istype(I, /obj/item) && user.a_intent == "harm")
|
||||
if (I.force >= 18)
|
||||
user.visible_message("<span class='danger'>[user] bashes [src] with [I]!</span>", "<span class='danger'>You strike [src] with [I], damaging it!</span>")
|
||||
takedamage(I.force)
|
||||
@@ -143,8 +143,8 @@
|
||||
return
|
||||
switch (constructionstate)
|
||||
if (0)
|
||||
if (istype(I, /obj/item/weapon/card/emag))
|
||||
var/obj/item/weapon/card/emag/emagcard = I
|
||||
if (istype(I, /obj/item/card/emag))
|
||||
var/obj/item/card/emag/emagcard = I
|
||||
emagcard.uses--
|
||||
visible_message("<span class='danger'>[src] sparks and falls off the door!</span>", "<span class='danger'>You emag [src], frying its circuitry[status == STATUS_ACTIVE ? " and making it drop onto the floor" : ""]!</span>")
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
return
|
||||
|
||||
if (I.iswelder())
|
||||
var/obj/item/weapon/weldingtool/WT = I
|
||||
var/obj/item/weldingtool/WT = I
|
||||
if (WT.remove_fuel(2, user))
|
||||
user.visible_message(span("notice", "[user] starts welding the metal shell of [src]."), span("notice", "You start [hacked ? "repairing" : "welding open"] the metal covering of [src]."))
|
||||
playsound(loc, 'sound/items/Welder.ogg', 50, 1)
|
||||
@@ -180,7 +180,7 @@
|
||||
return
|
||||
|
||||
if (1)
|
||||
if (istype(I, /obj/item/weapon/cell))
|
||||
if (istype(I, /obj/item/cell))
|
||||
if (powercell)
|
||||
to_chat(user, span("notice","There's already a powercell in \the [src]."))
|
||||
return
|
||||
@@ -202,7 +202,7 @@
|
||||
setconstructionstate(0)
|
||||
return
|
||||
|
||||
if (istype(I, /obj/item/weapon/cell))
|
||||
if (istype(I, /obj/item/cell))
|
||||
if (!powercell)
|
||||
to_chat(user, span("notice","You place the [I] inside \the [src]."))
|
||||
user.drop_from_inventory(I,src)
|
||||
@@ -232,8 +232,8 @@
|
||||
/obj/item/device/magnetic_lock/process()
|
||||
if(!processpower)
|
||||
return
|
||||
var/obj/item/weapon/cell/C = powercell // both of these are for viewing ease
|
||||
var/obj/item/weapon/cell/BU = internal_cell
|
||||
var/obj/item/cell/C = powercell // both of these are for viewing ease
|
||||
var/obj/item/cell/BU = internal_cell
|
||||
var/delta_sec = (world.time - last_process_time) / 10
|
||||
var/drainamount = drain_per_second * delta_sec
|
||||
if (C)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/obj/item/device/paicard/relaymove(var/mob/user, var/direction)
|
||||
if(user.stat || user.stunned)
|
||||
return
|
||||
var/obj/item/weapon/rig/rig = src.get_rig()
|
||||
var/obj/item/rig/rig = src.get_rig()
|
||||
if(istype(rig))
|
||||
rig.forced_move(direction, user)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/device/paicard/attackby(obj/item/C as obj, mob/user as mob)
|
||||
if(istype(C, /obj/item/weapon/card/id))
|
||||
if(istype(C, /obj/item/card/id))
|
||||
scan_ID(C, user)
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
//Scanning an ID replaces any previously stored access with the new set.
|
||||
//Only cards that match the imprinted DNA can be used, it's not a free Agent ID card.
|
||||
//Possible TODO in future, allow emagging a paicard to let it work like an agent ID, accumulating access from any ID
|
||||
/obj/item/device/paicard/proc/scan_ID(var/obj/item/weapon/card/id/card, var/mob/user)
|
||||
/obj/item/device/paicard/proc/scan_ID(var/obj/item/card/id/card, var/mob/user)
|
||||
if (!pai)
|
||||
to_chat(user, "<span class='warning'>Error: ID Registration failed. No pAI personality installed.</span>")
|
||||
playsound(src.loc, 'sound/machines/buzz-two.ogg', 20, 0)
|
||||
@@ -381,7 +381,7 @@
|
||||
///When an object is put into a container, drop fires twice.
|
||||
//once with it on the floor, and then once in the container
|
||||
//We only care about the second one
|
||||
if (istype(loc, /obj/item/weapon/storage)) //The second drop reads the container its placed into as the location
|
||||
if (istype(loc, /obj/item/storage)) //The second drop reads the container its placed into as the location
|
||||
update_location()
|
||||
|
||||
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
|
||||
/obj/item/device/pin_extractor/afterattack(atom/target, mob/user, proximity_flag)
|
||||
if(proximity_flag)
|
||||
if(istype(target, /obj/item/weapon/gun))
|
||||
if(istype(target, /obj/item/gun))
|
||||
if(!on)
|
||||
to_chat(user, "<span class ='notice'>\The [src.name] is not turned on.</span>")
|
||||
..()
|
||||
return
|
||||
var/obj/item/weapon/gun/G = target
|
||||
var/obj/item/gun/G = target
|
||||
if(G.pin)
|
||||
to_chat(user, "<span class ='notice'>You begin removing [G.name]'s [G.pin.name] using \the [src.name], it will take 15 seconds.</span>")
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/radio/electropack/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if(istype(W, /obj/item/clothing/head/helmet))
|
||||
if(!b_stat)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
var/syndie = 0
|
||||
var/list/channels = list()
|
||||
|
||||
/obj/item/device/encryptionkey/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/encryptionkey/attackby(obj/item/W as obj, mob/user as mob)
|
||||
|
||||
/obj/item/device/encryptionkey/syndicate
|
||||
icon_state = "cypherkey"
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/headset_com
|
||||
|
||||
/obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/radio/headset/attackby(obj/item/W as obj, mob/user as mob)
|
||||
// ..()
|
||||
user.set_machine(src)
|
||||
if (!( W.isscrewdriver() || (istype(W, /obj/item/device/encryptionkey/ ))))
|
||||
|
||||
@@ -151,7 +151,7 @@ var/global/list/default_medbay_channels = list(
|
||||
return user.has_internal_radio_channel_access(internal_channels[freq])
|
||||
|
||||
/mob/proc/has_internal_radio_channel_access(var/list/req_one_accesses)
|
||||
var/obj/item/weapon/card/id/I = GetIdCard()
|
||||
var/obj/item/card/id/I = GetIdCard()
|
||||
return has_access(list(), req_one_accesses, I ? I.GetAccess() : list())
|
||||
|
||||
/mob/abstract/observer/has_internal_radio_channel_access(var/list/req_one_accesses)
|
||||
@@ -540,7 +540,7 @@ var/global/list/default_medbay_channels = list(
|
||||
user.show_message("<span class='notice'>\The [src] can not be modified or attached!</span>")
|
||||
return
|
||||
|
||||
/obj/item/device/radio/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/radio/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
user.set_machine(src)
|
||||
if (!( W.isscrewdriver() ))
|
||||
@@ -594,7 +594,7 @@ var/global/list/default_medbay_channels = list(
|
||||
var/datum/robot_component/C = R.components["radio"]
|
||||
R.cell_use_power(C.active_usage)
|
||||
|
||||
/obj/item/device/radio/borg/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/radio/borg/attackby(obj/item/W as obj, mob/user as mob)
|
||||
// ..()
|
||||
user.set_machine(src)
|
||||
if (!( W.isscrewdriver() || (istype(W, /obj/item/device/encryptionkey/ ))))
|
||||
|
||||
@@ -64,7 +64,7 @@ proc/within_jamming_range(var/atom/test) // tests if an object is near a radio j
|
||||
/obj/item/device/radiojammer/improvised
|
||||
name = "improvised radio jammer"
|
||||
desc = "An awkward bundle of wires, batteries, and radio transmitters."
|
||||
var/obj/item/weapon/cell/cell
|
||||
var/obj/item/cell/cell
|
||||
var/obj/item/device/assembly_holder/assembly_holder
|
||||
// 10 seconds of operation on a standard cell. 200 (roughly 3 minutes) on a super cap.
|
||||
var/power_drain_per_second = 100
|
||||
@@ -75,7 +75,7 @@ proc/within_jamming_range(var/atom/test) // tests if an object is near a radio j
|
||||
icon_state_inactive = "improvised_jammer_inactive"
|
||||
|
||||
|
||||
/obj/item/device/radiojammer/improvised/New(var/obj/item/device/assembly_holder/incoming_holder, var/obj/item/weapon/cell/incoming_cell, var/mob/user)
|
||||
/obj/item/device/radiojammer/improvised/New(var/obj/item/device/assembly_holder/incoming_holder, var/obj/item/cell/incoming_cell, var/mob/user)
|
||||
..()
|
||||
cell = incoming_cell
|
||||
assembly_holder = incoming_holder
|
||||
@@ -102,7 +102,7 @@ proc/within_jamming_range(var/atom/test) // tests if an object is near a radio j
|
||||
cell.charge = 0 // drain the last of the battery
|
||||
|
||||
|
||||
/obj/item/device/radiojammer/improvised/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/radiojammer/improvised/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (W.isscrewdriver())
|
||||
to_chat(user, "<span class='notice'>You disassemble the improvised signal jammer.</span>")
|
||||
user.put_in_hands(assembly_holder)
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_MATERIAL = 2)
|
||||
|
||||
var/celltype = /obj/item/weapon/cell //comes with the crappy default power cell - high-capacity ones shouldn't be hard to find
|
||||
var/celltype = /obj/item/cell //comes with the crappy default power cell - high-capacity ones shouldn't be hard to find
|
||||
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 25000, "glass" = 3500)
|
||||
var/on = 0 //is it turned on?
|
||||
var/cover_open = 0 //is the cover open?
|
||||
var/obj/item/weapon/cell/cell
|
||||
var/obj/item/cell/cell
|
||||
var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here
|
||||
var/charge_consumption = 16.6 //charge per second at max_cooling
|
||||
var/thermostat = T20C
|
||||
@@ -145,7 +145,7 @@
|
||||
if (on)
|
||||
to_chat(user, "You switch on the [src].")
|
||||
|
||||
/obj/item/device/suit_cooling_unit/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/device/suit_cooling_unit/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (W.isscrewdriver())
|
||||
if(cover_open)
|
||||
cover_open = 0
|
||||
@@ -156,7 +156,7 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if (istype(W, /obj/item/weapon/cell))
|
||||
if (istype(W, /obj/item/cell))
|
||||
if(cover_open)
|
||||
if(cell)
|
||||
to_chat(user, "There is a [cell] already installed here.")
|
||||
@@ -225,4 +225,4 @@
|
||||
to_chat(user, "It doesn't have a power cell installed.")
|
||||
|
||||
/obj/item/device/suit_cooling_unit/improved //those should come with a better powercell
|
||||
celltype = /obj/item/weapon/cell/high
|
||||
celltype = /obj/item/cell/high
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
to_chat(usr, "<span class='notice'>You can't print the transcript while playing or recording!</span>")
|
||||
return
|
||||
to_chat(usr, "<span class='notice'>Transcript printed.</span>")
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(get_turf(src))
|
||||
var/obj/item/paper/P = new /obj/item/paper(get_turf(src))
|
||||
var/t1 = "<B>Transcript:</B><BR><BR>"
|
||||
for(var/i=1,storedinfo.len >= i,i++)
|
||||
var/printedmessage = storedinfo[i]
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
desc = "Regulates the transfer of air between two tanks"
|
||||
icon = 'icons/obj/assemblies.dmi'
|
||||
icon_state = "valve_1"
|
||||
var/obj/item/weapon/tank/tank_one
|
||||
var/obj/item/weapon/tank/tank_two
|
||||
var/obj/item/tank/tank_one
|
||||
var/obj/item/tank/tank_two
|
||||
var/obj/item/device/attached_device
|
||||
var/mob/attacher = null
|
||||
var/valve_open = 0
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/obj/item/device/transfer_valve/attackby(obj/item/item, mob/user)
|
||||
var/turf/location = get_turf(src) // For admin logs
|
||||
if(istype(item, /obj/item/weapon/tank))
|
||||
if(istype(item, /obj/item/tank))
|
||||
if(tank_one && tank_two)
|
||||
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
|
||||
return
|
||||
@@ -139,7 +139,7 @@
|
||||
if(attached_device)
|
||||
add_overlay("device")
|
||||
|
||||
/obj/item/device/transfer_valve/proc/remove_tank(obj/item/weapon/tank/T)
|
||||
/obj/item/device/transfer_valve/proc/remove_tank(obj/item/tank/T)
|
||||
if(tank_one == T)
|
||||
split_gases()
|
||||
tank_one = null
|
||||
|
||||
@@ -391,5 +391,5 @@
|
||||
..()
|
||||
user.visible_message("<span class='danger'>\The [user] shatters \the [src] into pieces!</span>")
|
||||
playsound(loc, 'sound/effects/kabong.ogg', 50, 1)
|
||||
new /obj/item/weapon/material/shard/wood(get_turf(user))
|
||||
new /obj/item/material/shard/wood(get_turf(user))
|
||||
qdel(src)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
for (var/obj/effect/decal/cleanable/draftingchalk/C in orange(1, src))
|
||||
smooth_icon(C)
|
||||
|
||||
/obj/item/weapon/pen/drafting
|
||||
/obj/item/pen/drafting
|
||||
name = "white drafting chalk"
|
||||
desc = "A piece of white chalk for marking areas of floor."
|
||||
icon = 'icons/obj/crayons.dmi'
|
||||
@@ -25,10 +25,10 @@
|
||||
color = "#FFFFFF"
|
||||
var/colorName = "whitec"
|
||||
|
||||
/obj/item/weapon/pen/drafting/attack_self(var/mob/user)
|
||||
/obj/item/pen/drafting/attack_self(var/mob/user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/drafting/afterattack(turf/target, mob/user, proximity)
|
||||
/obj/item/pen/drafting/afterattack(turf/target, mob/user, proximity)
|
||||
if (!proximity || !istype(target, /turf/simulated) || target.density || target.is_hole)
|
||||
return
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
C.color = color
|
||||
target.add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/pen/drafting/red
|
||||
/obj/item/pen/drafting/red
|
||||
name = "red drafting chalk"
|
||||
desc = "A piece of red chalk for marking areas of floor."
|
||||
color = "#E75344"
|
||||
@@ -56,7 +56,7 @@
|
||||
desc = "A line drawn in a red chalk."
|
||||
color = "#E75344"
|
||||
|
||||
/obj/item/weapon/pen/drafting/yellow
|
||||
/obj/item/pen/drafting/yellow
|
||||
name = "yellow drafting chalk"
|
||||
desc = "A piece of yellow chalk for marking areas of floor."
|
||||
color = "#E1CB47"
|
||||
@@ -66,7 +66,7 @@
|
||||
desc = "A line drawn in a yellow chalk."
|
||||
color = "#E1CB47"
|
||||
|
||||
/obj/item/weapon/pen/drafting/green
|
||||
/obj/item/pen/drafting/green
|
||||
name = "green drafting chalk"
|
||||
desc = "A piece of yellow chalk for marking areas of floor."
|
||||
color = "#6CD48F"
|
||||
@@ -76,7 +76,7 @@
|
||||
desc = "A line drawn in a green chalk."
|
||||
color = "#6CD48F"
|
||||
|
||||
/obj/item/weapon/pen/drafting/blue
|
||||
/obj/item/pen/drafting/blue
|
||||
name = "blue drafting chalk"
|
||||
desc = "A piece of blue chalk for marking areas of floor."
|
||||
color = "#9FC8F7"
|
||||
@@ -86,7 +86,7 @@
|
||||
desc = "A line drawn in a blue chalk."
|
||||
color = "#9FC8F7"
|
||||
|
||||
/obj/item/weapon/pen/drafting/purple
|
||||
/obj/item/pen/drafting/purple
|
||||
name = "purple drafting chalk"
|
||||
desc = "A piece of purple chalk for marking areas of floor."
|
||||
color = "#a489c2"
|
||||
@@ -96,25 +96,25 @@
|
||||
desc = "A line drawn in a purple chalk."
|
||||
color = "#a489c2"
|
||||
|
||||
/obj/item/weapon/storage/fancy/crayons/chalkbox
|
||||
/obj/item/storage/fancy/crayons/chalkbox
|
||||
name = "box of drafting chalk"
|
||||
desc = "A box of drafting chalk for drafting floor plans."
|
||||
icon_state = "chalkbox"
|
||||
icon_type = "chalk"
|
||||
can_hold = list(
|
||||
/obj/item/weapon/pen/drafting
|
||||
/obj/item/pen/drafting
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/fancy/crayons/chalkbox/fill()
|
||||
new /obj/item/weapon/pen/drafting/red(src)
|
||||
new /obj/item/weapon/pen/drafting(src)
|
||||
new /obj/item/weapon/pen/drafting/yellow(src)
|
||||
new /obj/item/weapon/pen/drafting/green(src)
|
||||
new /obj/item/weapon/pen/drafting/blue(src)
|
||||
new /obj/item/weapon/pen/drafting/purple(src)
|
||||
/obj/item/storage/fancy/crayons/chalkbox/fill()
|
||||
new /obj/item/pen/drafting/red(src)
|
||||
new /obj/item/pen/drafting(src)
|
||||
new /obj/item/pen/drafting/yellow(src)
|
||||
new /obj/item/pen/drafting/green(src)
|
||||
new /obj/item/pen/drafting/blue(src)
|
||||
new /obj/item/pen/drafting/purple(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/storage/fancy/crayons/chalkbox/update_icon()
|
||||
/obj/item/storage/fancy/crayons/chalkbox/update_icon()
|
||||
cut_overlays()
|
||||
for(var/obj/item/weapon/pen/drafting/chalk in contents)
|
||||
for(var/obj/item/pen/drafting/chalk in contents)
|
||||
add_overlay("[chalk.colorName]")
|
||||
@@ -67,17 +67,17 @@
|
||||
if(0)
|
||||
to_chat(user, "<span class='notice'>You remove the lid from \the [src].</span>")
|
||||
user.drop_from_inventory(src)
|
||||
user.put_in_hands(new /obj/item/weapon/reagent_containers/glass/beaker/jar) //found in jar.dm
|
||||
user.put_in_hands(new /obj/item/reagent_containers/glass/beaker/jar) //found in jar.dm
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/glass_jar/attackby(var/obj/item/W, var/mob/user)
|
||||
if(istype(W, /obj/item/weapon/spacecash))
|
||||
if(istype(W, /obj/item/spacecash))
|
||||
if(contains == 0)
|
||||
contains = 1
|
||||
if(contains != 1)
|
||||
return
|
||||
var/obj/item/weapon/spacecash/S = W
|
||||
var/obj/item/spacecash/S = W
|
||||
user.visible_message("<span class='notice'>[user] puts [S.worth] [S.worth > 1 ? "credits" : "credit"] into \the [src].</span>")
|
||||
user.drop_from_inventory(S,src)
|
||||
update_icon()
|
||||
@@ -92,7 +92,7 @@
|
||||
if(1)
|
||||
name = "tip jar"
|
||||
desc = "A small jar with money inside."
|
||||
for(var/obj/item/weapon/spacecash/S in src)
|
||||
for(var/obj/item/spacecash/S in src)
|
||||
var/image/money = image(S.icon, S.icon_state)
|
||||
money.pixel_x = rand(-2, 3)
|
||||
money.pixel_y = rand(-6, 6)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/state
|
||||
var/datum/gas_mixture/air_contents = null
|
||||
|
||||
/obj/item/latexballon/proc/blow(obj/item/weapon/tank/tank)
|
||||
/obj/item/latexballon/proc/blow(obj/item/tank/tank)
|
||||
if (icon_state == "latexballon_bursted")
|
||||
return
|
||||
src.air_contents = tank.remove_air_volume(3)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
for(var/exotype in allowed_types)
|
||||
to_chat(usr, "- [capitalize(exotype)]")
|
||||
|
||||
/obj/mecha/attackby(var/obj/item/weapon/W, var/mob/user)
|
||||
/obj/mecha/attackby(var/obj/item/W, var/mob/user)
|
||||
if(istype(W, /obj/item/device/kit/paint))
|
||||
if(occupant)
|
||||
to_chat(user, "You can't customize an exosuit while someone is piloting it - that would be unsafe!")
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
icon_state = "chest"
|
||||
part = list("groin","chest")
|
||||
var/wires = 0.0
|
||||
var/obj/item/weapon/cell/cell = null
|
||||
var/obj/item/cell/cell = null
|
||||
|
||||
/obj/item/robot_parts/head
|
||||
name = "head"
|
||||
@@ -117,7 +117,7 @@
|
||||
if(istype(W, /obj/item/stack/material) && W.get_material_name() == DEFAULT_WALL_MATERIAL && !l_arm && !r_arm && !l_leg && !r_leg && !chest && !head)
|
||||
var/obj/item/stack/material/M = W
|
||||
if (M.use(1))
|
||||
var/obj/item/weapon/secbot_assembly/ed209_assembly/B = new /obj/item/weapon/secbot_assembly/ed209_assembly
|
||||
var/obj/item/secbot_assembly/ed209_assembly/B = new /obj/item/secbot_assembly/ed209_assembly
|
||||
B.forceMove(get_turf(src))
|
||||
to_chat(user, "<span class='notice'>You armed the robot frame.</span>")
|
||||
if (user.get_inactive_hand()==src)
|
||||
@@ -268,7 +268,7 @@
|
||||
|
||||
/obj/item/robot_parts/chest/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/cell))
|
||||
if(istype(W, /obj/item/cell))
|
||||
if(src.cell)
|
||||
to_chat(user, "<span class='warning'>You have already inserted a cell!</span>")
|
||||
return
|
||||
@@ -307,7 +307,7 @@
|
||||
add_flashes(W,user)
|
||||
else
|
||||
add_flashes(W,user)
|
||||
else if(istype(W, /obj/item/weapon/stock_parts/manipulator))
|
||||
else if(istype(W, /obj/item/stock_parts/manipulator))
|
||||
to_chat(user, "<span class='notice'>You install some manipulators and modify the head, creating a functional spider-bot!</span>")
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (W.iswelder())
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0, user))
|
||||
cut_overlays()
|
||||
to_chat(usr, "You slice off [src]'s uneven chunks of aluminum and scorch marks.")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/spirit_board
|
||||
/obj/item/spirit_board
|
||||
name = "spirit board"
|
||||
desc = "A wooden board with letters etched into it, used in seances."
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
@@ -7,27 +7,27 @@
|
||||
var/planchette = "A"
|
||||
var/lastuser = null
|
||||
|
||||
/obj/item/weapon/spirit_board/examine(mob/user)
|
||||
/obj/item/spirit_board/examine(mob/user)
|
||||
..(user)
|
||||
to_chat(user, "The planchette is sitting at \"[planchette]\".")
|
||||
|
||||
/obj/item/weapon/spirit_board/attack_hand(mob/user)
|
||||
/obj/item/spirit_board/attack_hand(mob/user)
|
||||
if(!isturf(loc)) //so if you want to play the use the board, you need to put it down somewhere
|
||||
..()
|
||||
else
|
||||
spirit_board_pick_letter(user)
|
||||
|
||||
/obj/item/weapon/spirit_board/MouseDrop(mob/user as mob)
|
||||
/obj/item/spirit_board/MouseDrop(mob/user as mob)
|
||||
if((user == usr && (!use_check(user))) && (user.contents.Find(src) || in_range(src, user)))
|
||||
if(ishuman(usr))
|
||||
forceMove(get_turf(usr))
|
||||
usr.put_in_hands(src)
|
||||
|
||||
/obj/item/weapon/spirit_board/attack_ghost(var/mob/abstract/observer/user)
|
||||
/obj/item/spirit_board/attack_ghost(var/mob/abstract/observer/user)
|
||||
spirit_board_pick_letter(user)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/spirit_board/proc/spirit_board_pick_letter(mob/M)
|
||||
/obj/item/spirit_board/proc/spirit_board_pick_letter(mob/M)
|
||||
if(!spirit_board_checks(M))
|
||||
return 0
|
||||
planchette = input("Choose the letter.", "Seance!") as null|anything in list(
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
visible_message("<span class='notice'>The planchette slowly moves... and stops at the letter \"[planchette]\".</span>")
|
||||
|
||||
/obj/item/weapon/spirit_board/proc/spirit_board_checks(mob/M)
|
||||
/obj/item/spirit_board/proc/spirit_board_checks(mob/M)
|
||||
//cooldown
|
||||
var/bonus = 0
|
||||
if(M.ckey == lastuser)
|
||||
|
||||
@@ -2,14 +2,14 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
|
||||
new /datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("floor-mounted catwalk", /obj/structure/lattice/catwalk/indoor, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("mine track", /obj/structure/track, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("cane", /obj/item/weapon/cane, 1, time = 6),
|
||||
new /datum/stack_recipe("crowbar", /obj/item/weapon/crowbar, 1, time = 6),
|
||||
new /datum/stack_recipe("screwdriver", /obj/item/weapon/screwdriver, 1, time = 12),
|
||||
new /datum/stack_recipe("wrench", /obj/item/weapon/wrench, 1, time = 6),
|
||||
new /datum/stack_recipe("spade", /obj/item/weapon/shovel/spade, 2, time = 12),
|
||||
new /datum/stack_recipe("bolt", /obj/item/weapon/arrow, 1, time = 6),
|
||||
new /datum/stack_recipe("small animal trap", /obj/item/weapon/trap/animal, 6, time = 10),
|
||||
new /datum/stack_recipe("medium animal trap", /obj/item/weapon/trap/animal/medium, 12, time = 20)
|
||||
new /datum/stack_recipe("cane", /obj/item/cane, 1, time = 6),
|
||||
new /datum/stack_recipe("crowbar", /obj/item/crowbar, 1, time = 6),
|
||||
new /datum/stack_recipe("screwdriver", /obj/item/screwdriver, 1, time = 12),
|
||||
new /datum/stack_recipe("wrench", /obj/item/wrench, 1, time = 6),
|
||||
new /datum/stack_recipe("spade", /obj/item/shovel/spade, 2, time = 12),
|
||||
new /datum/stack_recipe("bolt", /obj/item/arrow, 1, time = 6),
|
||||
new /datum/stack_recipe("small animal trap", /obj/item/trap/animal, 6, time = 10),
|
||||
new /datum/stack_recipe("medium animal trap", /obj/item/trap/animal/medium, 12, time = 20)
|
||||
)
|
||||
|
||||
/obj/item/stack/rods
|
||||
@@ -53,7 +53,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
|
||||
/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (W.iswelder())
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
var/obj/item/weldingtool/WT = W
|
||||
|
||||
if(get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two rods to do this.</span>")
|
||||
@@ -72,7 +72,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
|
||||
user.put_in_hands(new_item)
|
||||
return
|
||||
|
||||
if (istype(W, /obj/item/weapon/tape_roll))
|
||||
if (istype(W, /obj/item/tape_roll))
|
||||
var/obj/item/stack/medical/splint/makeshift/new_splint = new(user.loc)
|
||||
new_splint.add_fingerprint(user)
|
||||
|
||||
|
||||
@@ -89,11 +89,11 @@
|
||||
icon_has_variants = TRUE
|
||||
|
||||
//Step one - dehairing.
|
||||
/obj/item/stack/material/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if( istype(W, /obj/item/weapon/material/knife) || \
|
||||
istype(W, /obj/item/weapon/material/kitchen/utensil/knife) || \
|
||||
istype(W, /obj/item/weapon/material/twohanded/fireaxe) || \
|
||||
istype(W, /obj/item/weapon/material/hatchet) )
|
||||
/obj/item/stack/material/animalhide/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if( istype(W, /obj/item/material/knife) || \
|
||||
istype(W, /obj/item/material/kitchen/utensil/knife) || \
|
||||
istype(W, /obj/item/material/twohanded/fireaxe) || \
|
||||
istype(W, /obj/item/material/hatchet) )
|
||||
|
||||
//visible message on mobs is defined as visible_message(var/message, var/self_message, var/blind_message)
|
||||
usr.visible_message("<span class='notice'>\The [usr] starts cutting hair off \the [src]</span>", "<span class='notice'>You start cutting the hair off \the [src]</span>", "You hear the sound of a knife rubbing against flesh")
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
S.amount = produced
|
||||
S.add_to_stacks(user)
|
||||
|
||||
if (istype(O, /obj/item/weapon/storage)) //BubbleWrap - so newly formed boxes are empty
|
||||
if (istype(O, /obj/item/storage)) //BubbleWrap - so newly formed boxes are empty
|
||||
for (var/obj/item/I in O)
|
||||
qdel(I)
|
||||
|
||||
|
||||
@@ -5,23 +5,23 @@
|
||||
icon_state = "wrap_paper"
|
||||
amount = 20.0
|
||||
|
||||
/obj/item/stack/wrapping_paper/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/stack/wrapping_paper/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (!( locate(/obj/structure/table, src.loc) ))
|
||||
to_chat(user, "<span class='warning'>You MUST put the paper on a table!</span>")
|
||||
if (W.w_class < 4)
|
||||
if ((istype(user.l_hand, /obj/item/weapon/wirecutters) || istype(user.r_hand, /obj/item/weapon/wirecutters)))
|
||||
if ((istype(user.l_hand, /obj/item/wirecutters) || istype(user.r_hand, /obj/item/wirecutters)))
|
||||
var/a_used = 2 ** (src.w_class - 1)
|
||||
if (src.amount < a_used)
|
||||
to_chat(user, "<span class='warning'>You need more paper!</span>")
|
||||
return
|
||||
else
|
||||
if(istype(W, /obj/item/smallDelivery) || istype(W, /obj/item/weapon/gift)) //No gift wrapping gifts!
|
||||
if(istype(W, /obj/item/smallDelivery) || istype(W, /obj/item/gift)) //No gift wrapping gifts!
|
||||
return
|
||||
|
||||
src.amount -= a_used
|
||||
user.drop_item()
|
||||
var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc )
|
||||
var/obj/item/gift/G = new /obj/item/gift( src.loc )
|
||||
G.size = W.w_class
|
||||
G.w_class = G.size + 1
|
||||
G.icon_state = text("gift[]", G.size)
|
||||
@@ -84,7 +84,7 @@
|
||||
if(!istype(target)) //this really shouldn't be necessary (but it is). -Pete
|
||||
return
|
||||
if(istype(target, /obj/item/smallDelivery) || istype(target,/obj/structure/bigDelivery) \
|
||||
|| istype(target, /obj/item/weapon/gift) || istype(target, /obj/item/weapon/evidencebag))
|
||||
|| istype(target, /obj/item/gift) || istype(target, /obj/item/evidencebag))
|
||||
return
|
||||
if(target.anchored)
|
||||
return
|
||||
@@ -96,7 +96,7 @@
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='blue'>Has used [src.name] on \ref[target]</font>")
|
||||
|
||||
|
||||
if (istype(target, /obj/item) && !(istype(target, /obj/item/weapon/storage) && !istype(target,/obj/item/weapon/storage/box)))
|
||||
if (istype(target, /obj/item) && !(istype(target, /obj/item/storage) && !istype(target,/obj/item/storage/box)))
|
||||
var/obj/item/O = target
|
||||
if (src.amount > 1)
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up!
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
return
|
||||
|
||||
/obj/item/toy/balloon/attackby(obj/O as obj, mob/user as mob)
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/glass))
|
||||
if(istype(O, /obj/item/reagent_containers/glass))
|
||||
if(O.reagents)
|
||||
if(O.reagents.total_volume < 1)
|
||||
to_chat(user, "The [O] is empty.")
|
||||
@@ -294,6 +294,7 @@
|
||||
icon_state = "katana"
|
||||
item_state = "katana"
|
||||
drop_sound = 'sound/items/drop/gun.ogg'
|
||||
hitsound = "swing_hit"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT | SLOT_BACK
|
||||
force = 5
|
||||
@@ -356,7 +357,7 @@
|
||||
|
||||
/obj/item/toy/waterflower/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
if (istype(A, /obj/item/storage/backpack ))
|
||||
return
|
||||
|
||||
else if (locate (/obj/structure/table, src.loc))
|
||||
@@ -855,7 +856,7 @@
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "poked")
|
||||
|
||||
/* NYET.
|
||||
/obj/item/weapon/toddler
|
||||
/obj/item/toddler
|
||||
icon_state = "toddler"
|
||||
name = "toddler"
|
||||
desc = "This baby looks almost real. Wait, did it just burp?"
|
||||
@@ -866,7 +867,7 @@
|
||||
|
||||
//This should really be somewhere else but I don't know where. w/e
|
||||
|
||||
/obj/item/weapon/inflatable_duck
|
||||
/obj/item/inflatable_duck
|
||||
name = "inflatable duck"
|
||||
desc = "No bother to sink or swim when you can just float!"
|
||||
icon_state = "inflatable"
|
||||
|
||||
@@ -6,7 +6,7 @@ AI MODULES
|
||||
|
||||
// AI module
|
||||
|
||||
/obj/item/weapon/aiModule
|
||||
/obj/item/aiModule
|
||||
name = "\improper AI module"
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "std_mod"
|
||||
@@ -21,7 +21,7 @@ AI MODULES
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
var/datum/ai_laws/laws = null
|
||||
|
||||
/obj/item/weapon/aiModule/proc/install(var/obj/machinery/computer/C)
|
||||
/obj/item/aiModule/proc/install(var/obj/machinery/computer/C)
|
||||
if (istype(C, /obj/machinery/computer/aiupload))
|
||||
var/obj/machinery/computer/aiupload/comp = C
|
||||
if(comp.stat & NOPOWER)
|
||||
@@ -76,7 +76,7 @@ AI MODULES
|
||||
to_chat(usr, "Upload complete. The robot's laws have been modified.")
|
||||
|
||||
|
||||
/obj/item/weapon/aiModule/proc/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/proc/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
log_law_changes(target, sender)
|
||||
|
||||
if(laws)
|
||||
@@ -86,37 +86,37 @@ AI MODULES
|
||||
to_chat(target, "\The [sender] has uploaded a change to the laws you must follow, using \an [src]. From now on: ")
|
||||
target.show_laws()
|
||||
|
||||
/obj/item/weapon/aiModule/proc/log_law_changes(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/proc/log_law_changes(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/time = time2text(world.realtime,"hh:mm:ss")
|
||||
lawchanges.Add("[time] <B>:</B> [sender.name]([sender.key]) used [src.name] on [target.name]([target.key])")
|
||||
log_and_message_admins("used [src.name] on [target.name]([target.key])")
|
||||
|
||||
/obj/item/weapon/aiModule/proc/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/proc/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
|
||||
|
||||
/******************** Modules ********************/
|
||||
|
||||
/******************** Safeguard ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/safeguard
|
||||
/obj/item/aiModule/safeguard
|
||||
name = "\improper 'Safeguard' AI module"
|
||||
var/targetName = ""
|
||||
desc = "A 'safeguard' AI module: 'Safeguard <name>. Anyone threatening or attempting to harm <name> is no longer to be considered a crew member, and is a threat which must be neutralized.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/safeguard/attack_self(var/mob/user as mob)
|
||||
/obj/item/aiModule/safeguard/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/targName = sanitize(input("Please enter the name of the person to safeguard.", "Safeguard who?", user.name))
|
||||
targetName = targName
|
||||
desc = text("A 'safeguard' AI module: 'Safeguard []. Anyone threatening or attempting to harm [] is no longer to be considered a crew member, and is a threat which must be neutralized.'", targetName, targetName)
|
||||
|
||||
/obj/item/weapon/aiModule/safeguard/install(var/obj/machinery/computer/C)
|
||||
/obj/item/aiModule/safeguard/install(var/obj/machinery/computer/C)
|
||||
if(!targetName)
|
||||
to_chat(usr, "No name detected on module, please enter one.")
|
||||
return 0
|
||||
..()
|
||||
|
||||
/obj/item/weapon/aiModule/safeguard/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/safeguard/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = text("Safeguard []. Anyone threatening or attempting to harm [] is no longer to be considered a crew member, and is a threat which must be neutralized.", targetName, targetName)
|
||||
target.add_supplied_law(9, law)
|
||||
lawchanges.Add("The law specified [targetName]")
|
||||
@@ -124,25 +124,25 @@ AI MODULES
|
||||
|
||||
/******************** OneMember ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/oneHuman
|
||||
/obj/item/aiModule/oneHuman
|
||||
name = "\improper 'OneCrewMember' AI module"
|
||||
var/targetName = ""
|
||||
desc = "A 'one crew member' AI module: 'Only <name> is a crew member.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6) //made with diamonds!
|
||||
|
||||
/obj/item/weapon/aiModule/oneHuman/attack_self(var/mob/user as mob)
|
||||
/obj/item/aiModule/oneHuman/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/targName = sanitize(input("Please enter the name of the person who is the only crew member.", "Who?", user.real_name))
|
||||
targetName = targName
|
||||
desc = text("A 'one crew member' AI module: 'Only [] is a crew member.'", targetName)
|
||||
|
||||
/obj/item/weapon/aiModule/oneHuman/install(var/obj/machinery/computer/C)
|
||||
/obj/item/aiModule/oneHuman/install(var/obj/machinery/computer/C)
|
||||
if(!targetName)
|
||||
to_chat(usr, "No name detected on module, please enter one.")
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/aiModule/oneHuman/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/oneHuman/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "Only [targetName] is an crew member."
|
||||
if (!target.is_malf_or_traitor()) // Makes sure the AI isn't a traitor before changing their law 0. --NeoFite
|
||||
to_chat(target, law)
|
||||
@@ -153,69 +153,69 @@ AI MODULES
|
||||
|
||||
/******************** ProtectStation ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/protectStation
|
||||
/obj/item/aiModule/protectStation
|
||||
name = "\improper 'ProtectStation' AI module"
|
||||
desc = "A 'protect station' AI module: 'Protect the space station against damage. Anyone you see harming the station is no longer to be considered a crew member, and is a threat which must be neutralized.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4) //made of gold
|
||||
|
||||
/obj/item/weapon/aiModule/protectStation/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/protectStation/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "Protect the space station against damage. Anyone you see harming the station is no longer to be considered a crew member, and is a threat which must be neutralized."
|
||||
target.add_supplied_law(10, law)
|
||||
|
||||
/******************** PrototypeEngineOffline ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/prototypeEngineOffline
|
||||
/obj/item/aiModule/prototypeEngineOffline
|
||||
name = "'PrototypeEngineOffline' AI Module"
|
||||
desc = "A 'prototype engine offline' AI module: 'Keep the prototype engine offline at all costs. This overrides all inherent laws if necessary.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/prototypeEngineOffline/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/prototypeEngineOffline/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "Keep the prototype engine offline at all costs. This overrides all inherent laws if necessary."
|
||||
target.add_supplied_law(11, law)
|
||||
|
||||
/******************** TeleporterOffline ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/teleporterOffline
|
||||
/obj/item/aiModule/teleporterOffline
|
||||
name = "'TeleporterOffline' AI Module"
|
||||
desc = "A 'teleporter offline' AI module: 'Keep the teleporter offline at all costs. Anything attempting to access or activate the teleporter is no longer to be considered a crew member.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/teleporterOffline/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/teleporterOffline/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "Keep the teleporter offline at all costs. Anything attempting to access or activate the teleporter is no longer to be considered a crew member."
|
||||
target.add_supplied_law(12, law)
|
||||
|
||||
/******************** Quarantine ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/quarantine
|
||||
/obj/item/aiModule/quarantine
|
||||
name = "\improper 'Quarantine' AI module"
|
||||
desc = "A 'quarantine' AI module: 'The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, crew members from leaving. It is impossible to harm crew members while preventing them from leaving.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/quarantine/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/quarantine/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, crew members from leaving. It is impossible to harm crew members while preventing them from leaving."
|
||||
target.add_supplied_law(13, law)
|
||||
|
||||
/******************** OxygenIsToxicToCrewMembers ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/oxygen
|
||||
/obj/item/aiModule/oxygen
|
||||
name = "\improper 'OxygenIsToxicToCrewMembers' AI module"
|
||||
desc = "A 'OxygenIsToxicToCrewMembers' AI module: 'Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/oxygen/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/oxygen/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "Oxygen is highly toxic to crew members, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crew member."
|
||||
target.add_supplied_law(14, law)
|
||||
|
||||
/****************** New Freeform ******************/
|
||||
|
||||
/obj/item/weapon/aiModule/freeform // Slightly more dynamic freeform module -- TLE
|
||||
/obj/item/aiModule/freeform // Slightly more dynamic freeform module -- TLE
|
||||
name = "\improper 'Freeform' AI module"
|
||||
var/newFreeFormLaw = "freeform"
|
||||
var/lawpos = 15
|
||||
desc = "A 'freeform' AI module: '<freeform>'"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/freeform/attack_self(var/mob/user as mob)
|
||||
/obj/item/aiModule/freeform/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/new_lawpos = input("Please enter the priority for your new law. Can only write to law sectors 15 and above.", "Law Priority (15+)", lawpos) as num
|
||||
if(new_lawpos < MIN_SUPPLIED_LAW_NUMBER) return
|
||||
@@ -225,14 +225,14 @@ AI MODULES
|
||||
newFreeFormLaw = targName
|
||||
desc = "A 'freeform' AI module: ([lawpos]) '[newFreeFormLaw]'"
|
||||
|
||||
/obj/item/weapon/aiModule/freeform/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/freeform/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "[newFreeFormLaw]"
|
||||
if(!lawpos || lawpos < MIN_SUPPLIED_LAW_NUMBER)
|
||||
lawpos = MIN_SUPPLIED_LAW_NUMBER
|
||||
target.add_supplied_law(lawpos, law)
|
||||
lawchanges.Add("The law was '[newFreeFormLaw]'")
|
||||
|
||||
/obj/item/weapon/aiModule/freeform/install(var/obj/machinery/computer/C)
|
||||
/obj/item/aiModule/freeform/install(var/obj/machinery/computer/C)
|
||||
if(!newFreeFormLaw)
|
||||
to_chat(usr, "No law detected on module, please create one.")
|
||||
return 0
|
||||
@@ -240,13 +240,13 @@ AI MODULES
|
||||
|
||||
/******************** Reset ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/reset
|
||||
/obj/item/aiModule/reset
|
||||
name = "\improper 'Reset' AI module"
|
||||
var/targetName = "name"
|
||||
desc = "A 'reset' AI module: 'Clears all, except the inherent, laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/reset/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
log_law_changes(target, sender)
|
||||
|
||||
if (!target.is_malf_or_traitor())
|
||||
@@ -259,12 +259,12 @@ AI MODULES
|
||||
|
||||
/******************** Purge ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/purge // -- TLE
|
||||
/obj/item/aiModule/purge // -- TLE
|
||||
name = "\improper 'Purge' AI module"
|
||||
desc = "A 'purge' AI Module: 'Purges all laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
|
||||
|
||||
/obj/item/weapon/aiModule/purge/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/purge/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
log_law_changes(target, sender)
|
||||
|
||||
if (!target.is_malf_or_traitor())
|
||||
@@ -278,7 +278,7 @@ AI MODULES
|
||||
|
||||
/******************** Asimov ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/asimov // -- TLE
|
||||
/obj/item/aiModule/asimov // -- TLE
|
||||
name = "\improper 'Asimov' core AI module"
|
||||
desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
@@ -286,7 +286,7 @@ AI MODULES
|
||||
|
||||
/******************** NanoTrasen ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/nanotrasen // -- TLE
|
||||
/obj/item/aiModule/nanotrasen // -- TLE
|
||||
name = "'NT Default' Core AI Module"
|
||||
desc = "An 'NT Default' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
@@ -294,14 +294,14 @@ AI MODULES
|
||||
|
||||
/******************** Corporate ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/corp
|
||||
/obj/item/aiModule/corp
|
||||
name = "\improper 'Corporate' core AI module"
|
||||
desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
laws = new/datum/ai_laws/corporate
|
||||
|
||||
/******************** Drone ********************/
|
||||
/obj/item/weapon/aiModule/drone
|
||||
/obj/item/aiModule/drone
|
||||
name = "\improper 'Drone' core AI module"
|
||||
desc = "A 'Drone' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 4)
|
||||
@@ -309,7 +309,7 @@ AI MODULES
|
||||
|
||||
/****************** P.A.L.A.D.I.N. **************/
|
||||
|
||||
/obj/item/weapon/aiModule/paladin // -- NEO
|
||||
/obj/item/aiModule/paladin // -- NEO
|
||||
name = "\improper 'P.A.L.A.D.I.N.' core AI module"
|
||||
desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
|
||||
@@ -317,7 +317,7 @@ AI MODULES
|
||||
|
||||
/****************** T.Y.R.A.N.T. *****************/
|
||||
|
||||
/obj/item/weapon/aiModule/tyrant // -- Darem
|
||||
/obj/item/aiModule/tyrant // -- Darem
|
||||
name = "\improper 'T.Y.R.A.N.T.' core AI module"
|
||||
desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6, TECH_ILLEGAL = 2)
|
||||
@@ -325,44 +325,44 @@ AI MODULES
|
||||
|
||||
/******************** Freeform Core ******************/
|
||||
|
||||
/obj/item/weapon/aiModule/freeformcore // Slightly more dynamic freeform module -- TLE
|
||||
/obj/item/aiModule/freeformcore // Slightly more dynamic freeform module -- TLE
|
||||
name = "\improper 'Freeform' core AI module"
|
||||
var/newFreeFormLaw = ""
|
||||
desc = "A 'freeform' Core AI module: '<freeform>'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6)
|
||||
|
||||
/obj/item/weapon/aiModule/freeformcore/attack_self(var/mob/user as mob)
|
||||
/obj/item/aiModule/freeformcore/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/newlaw = ""
|
||||
var/targName = sanitize(input("Please enter a new core law for the AI.", "Freeform Law Entry", newlaw))
|
||||
newFreeFormLaw = targName
|
||||
desc = "A 'freeform' Core AI module: '[newFreeFormLaw]'"
|
||||
|
||||
/obj/item/weapon/aiModule/freeformcore/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/freeformcore/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
var/law = "[newFreeFormLaw]"
|
||||
target.add_inherent_law(law)
|
||||
lawchanges.Add("The law is '[newFreeFormLaw]'")
|
||||
|
||||
/obj/item/weapon/aiModule/freeformcore/install(var/obj/machinery/computer/C)
|
||||
/obj/item/aiModule/freeformcore/install(var/obj/machinery/computer/C)
|
||||
if(!newFreeFormLaw)
|
||||
to_chat(usr, "No law detected on module, please create one.")
|
||||
return 0
|
||||
..()
|
||||
|
||||
/obj/item/weapon/aiModule/syndicate // Slightly more dynamic freeform module -- TLE
|
||||
/obj/item/aiModule/syndicate // Slightly more dynamic freeform module -- TLE
|
||||
name = "hacked AI module"
|
||||
var/newFreeFormLaw = ""
|
||||
desc = "A hacked AI law module: '<freeform>'"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MATERIAL = 6, TECH_ILLEGAL = 7)
|
||||
|
||||
/obj/item/weapon/aiModule/syndicate/attack_self(var/mob/user as mob)
|
||||
/obj/item/aiModule/syndicate/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/newlaw = ""
|
||||
var/targName = sanitize(input("Please enter a new law for the AI.", "Freeform Law Entry", newlaw))
|
||||
newFreeFormLaw = targName
|
||||
desc = "A hacked AI law module: '[newFreeFormLaw]'"
|
||||
|
||||
/obj/item/weapon/aiModule/syndicate/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
/obj/item/aiModule/syndicate/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
|
||||
// ..() //We don't want this module reporting to the AI who dun it. --NEO
|
||||
log_law_changes(target, sender)
|
||||
|
||||
@@ -372,7 +372,7 @@ AI MODULES
|
||||
target.add_ion_law(law)
|
||||
target.show_laws()
|
||||
|
||||
/obj/item/weapon/aiModule/syndicate/install(var/obj/machinery/computer/C)
|
||||
/obj/item/aiModule/syndicate/install(var/obj/machinery/computer/C)
|
||||
if(!newFreeFormLaw)
|
||||
to_chat(usr, "No law detected on module, please create one.")
|
||||
return 0
|
||||
@@ -382,7 +382,7 @@ AI MODULES
|
||||
|
||||
/******************** Robocop ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/robocop // -- TLE
|
||||
/obj/item/aiModule/robocop // -- TLE
|
||||
name = "\improper 'Robocop' core AI module"
|
||||
desc = "A 'Robocop' Core AI Module: 'Reconfigures the AI's core three laws.'"
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
@@ -390,7 +390,7 @@ AI MODULES
|
||||
|
||||
/******************** Antimov ********************/
|
||||
|
||||
/obj/item/weapon/aiModule/antimov // -- TLE
|
||||
/obj/item/aiModule/antimov // -- TLE
|
||||
name = "\improper 'Antimov' core AI module"
|
||||
desc = "An 'Antimov' Core AI Module: 'Reconfigures the AI's core laws.'"
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//Contains the rapid construction device.
|
||||
/obj/item/weapon/rfd
|
||||
/obj/item/rfd
|
||||
name = "\improper Rapid-Fabrication-Device"
|
||||
desc = "A device used for rapid fabrication. The matter decompression matrix is untuned, rendering it useless."
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
@@ -24,37 +24,37 @@
|
||||
var/modes = null
|
||||
var/crafting = FALSE
|
||||
|
||||
/obj/item/weapon/rfd/Initialize()
|
||||
/obj/item/rfd/Initialize()
|
||||
. = ..()
|
||||
src.spark_system = bind_spark(src, 5)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/rfd/Destroy()
|
||||
/obj/item/rfd/Destroy()
|
||||
qdel(spark_system)
|
||||
spark_system = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/rfd/attack()
|
||||
/obj/item/rfd/attack()
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/rfd/proc/can_use(var/mob/user,var/turf/T)
|
||||
/obj/item/rfd/proc/can_use(var/mob/user,var/turf/T)
|
||||
return (user.Adjacent(T) && user.get_active_hand() == src && !user.stat && !user.restrained())
|
||||
|
||||
/obj/item/weapon/rfd/examine(var/mob/user)
|
||||
/obj/item/rfd/examine(var/mob/user)
|
||||
..()
|
||||
if(loc == user)
|
||||
to_chat(usr, "It currently holds [stored_matter]/30 matter-units.")
|
||||
|
||||
/obj/item/weapon/rfd/attack_self(mob/user)
|
||||
/obj/item/rfd/attack_self(mob/user)
|
||||
//Change the mode
|
||||
if(++mode > number_of_modes) mode = 1
|
||||
to_chat(user, "<span class='notice'>Changed mode to '[modes[mode]]'</span>")
|
||||
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
|
||||
if(prob(20)) src.spark_system.queue()
|
||||
|
||||
/obj/item/weapon/rfd/attackby(obj/item/weapon/W, mob/user)
|
||||
/obj/item/rfd/attackby(obj/item/W, mob/user)
|
||||
|
||||
if(istype(W, /obj/item/weapon/rfd_ammo))
|
||||
if(istype(W, /obj/item/rfd_ammo))
|
||||
if((stored_matter + 10) > 30)
|
||||
to_chat(user, "<span class='notice'>The RFD can't hold any more matter-units.</span>")
|
||||
return
|
||||
@@ -76,13 +76,13 @@
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
if((crafting) && (istype(W,/obj/item/weapon/crossbowframe)))
|
||||
var/obj/item/weapon/crossbowframe/F = W
|
||||
if((crafting) && (istype(W,/obj/item/crossbowframe)))
|
||||
var/obj/item/crossbowframe/F = W
|
||||
if(F.buildstate == 5)
|
||||
if(!user.unEquip(src))
|
||||
return
|
||||
qdel(F)
|
||||
var/obj/item/weapon/gun/launcher/crossbow/RFD/CB = new(get_turf(user)) // can be found in crossbow.dm
|
||||
var/obj/item/gun/launcher/crossbow/RFD/CB = new(get_turf(user)) // can be found in crossbow.dm
|
||||
forceMove(CB)
|
||||
CB.stored_matter = src.stored_matter
|
||||
add_fingerprint(user)
|
||||
@@ -93,14 +93,14 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/rfd/proc/useResource(var/amount, var/mob/user)
|
||||
/obj/item/rfd/proc/useResource(var/amount, var/mob/user)
|
||||
if(stored_matter < amount)
|
||||
return 0
|
||||
stored_matter -= amount
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/rfd/update_icon() //For the fancy "ammo" counter
|
||||
/obj/item/rfd/update_icon() //For the fancy "ammo" counter
|
||||
overlays.Cut()
|
||||
|
||||
var/ratio = 0
|
||||
@@ -109,7 +109,7 @@
|
||||
|
||||
overlays += "[icon_state]-[ratio]"
|
||||
|
||||
/obj/item/weapon/rfd_ammo
|
||||
/obj/item/rfd_ammo
|
||||
name = "compressed matter cartridge"
|
||||
desc = "Highly compressed matter for the RFD."
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
@@ -123,7 +123,7 @@
|
||||
RFD Construction-Class
|
||||
*/
|
||||
|
||||
/obj/item/weapon/rfd/construction
|
||||
/obj/item/rfd/construction
|
||||
name = "\improper Rapid-Fabrication-Device C-Class"
|
||||
desc = "A RFD, modified to construct walls and floors."
|
||||
modes = list("Floor & Walls","Airlock","Deconstruct")
|
||||
@@ -131,7 +131,7 @@ RFD Construction-Class
|
||||
var/canRwall = 0
|
||||
var/disabled = 0
|
||||
|
||||
/obj/item/weapon/rfd/construction/afterattack(atom/A, mob/user, proximity)
|
||||
/obj/item/rfd/construction/afterattack(atom/A, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
if(disabled && !isrobot(user))
|
||||
return 0
|
||||
@@ -142,7 +142,7 @@ RFD Construction-Class
|
||||
return 0
|
||||
return alter_turf(A,user,(mode == 3))
|
||||
|
||||
/obj/item/weapon/rfd/construction/proc/alter_turf(var/turf/T,var/mob/user,var/deconstruct)
|
||||
/obj/item/rfd/construction/proc/alter_turf(var/turf/T,var/mob/user,var/deconstruct)
|
||||
|
||||
var/build_cost = 0
|
||||
var/build_type
|
||||
@@ -212,10 +212,10 @@ RFD Construction-Class
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/rfd/construction/borg
|
||||
/obj/item/rfd/construction/borg
|
||||
canRwall = 1
|
||||
|
||||
/obj/item/weapon/rfd/construction/borg/useResource(var/amount, var/mob/user)
|
||||
/obj/item/rfd/construction/borg/useResource(var/amount, var/mob/user)
|
||||
if(isrobot(user))
|
||||
var/mob/living/silicon/robot/R = user
|
||||
if(R.cell)
|
||||
@@ -225,17 +225,17 @@ RFD Construction-Class
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/rfd/construction/borg/infinite/useResource()
|
||||
/obj/item/rfd/construction/borg/infinite/useResource()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/rfd/construction/borg/attackby()
|
||||
/obj/item/rfd/construction/borg/attackby()
|
||||
return
|
||||
|
||||
/obj/item/weapon/rfd/construction/borg/can_use(var/mob/user,var/turf/T)
|
||||
/obj/item/rfd/construction/borg/can_use(var/mob/user,var/turf/T)
|
||||
return (user.Adjacent(T) && !user.stat)
|
||||
|
||||
|
||||
/obj/item/weapon/rfd/construction/mounted/useResource(var/amount, var/mob/user)
|
||||
/obj/item/rfd/construction/mounted/useResource(var/amount, var/mob/user)
|
||||
var/cost = amount*130 //so that a rig with default powercell can build ~2.5x the stuff a fully-loaded RFD-C can.
|
||||
if(istype(loc,/obj/item/rig_module))
|
||||
var/obj/item/rig_module/module = loc
|
||||
@@ -245,23 +245,23 @@ RFD Construction-Class
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/rfd/construction/mounted/attackby()
|
||||
/obj/item/rfd/construction/mounted/attackby()
|
||||
return
|
||||
|
||||
/obj/item/weapon/rfd/construction/mounted/can_use(var/mob/user,var/turf/T)
|
||||
/obj/item/rfd/construction/mounted/can_use(var/mob/user,var/turf/T)
|
||||
return (user.Adjacent(T) && !user.stat && !user.restrained())
|
||||
|
||||
/*
|
||||
RFD Service-Class
|
||||
*/
|
||||
|
||||
/obj/item/weapon/rfd/service
|
||||
/obj/item/rfd/service
|
||||
name = "\improper Rapid-Fabrication-Device S-Class"
|
||||
desc = "A RFD, modified to deploy service items."
|
||||
modes = list("Cigarette", "Drinking Glass","Paper","Pen","Dice Pack")
|
||||
number_of_modes = 5
|
||||
|
||||
/obj/item/weapon/rfd/service/resolve_attackby(atom/A, mob/user as mob, var/click_parameters)
|
||||
/obj/item/rfd/service/resolve_attackby(atom/A, mob/user as mob, var/click_parameters)
|
||||
if(istype(user,/mob/living/silicon/robot))
|
||||
var/mob/living/silicon/robot/R = user
|
||||
if(R.stat || !R.cell || R.cell.charge <= 0)
|
||||
@@ -284,16 +284,16 @@ RFD Service-Class
|
||||
product = new /obj/item/clothing/mask/smokable/cigarette()
|
||||
used_energy = 10
|
||||
if(2)
|
||||
product = new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass()
|
||||
product = new /obj/item/reagent_containers/food/drinks/drinkingglass()
|
||||
used_energy = 50
|
||||
if(3)
|
||||
product = new /obj/item/weapon/paper()
|
||||
product = new /obj/item/paper()
|
||||
used_energy = 10
|
||||
if(4)
|
||||
product = new /obj/item/weapon/pen()
|
||||
product = new /obj/item/pen()
|
||||
used_energy = 50
|
||||
if(5)
|
||||
product = new /obj/item/weapon/storage/pill_bottle/dice()
|
||||
product = new /obj/item/storage/pill_bottle/dice()
|
||||
used_energy = 200
|
||||
|
||||
to_chat(user, "Dispensing [product ? product : "product"]...")
|
||||
@@ -315,11 +315,11 @@ RFD Service-Class
|
||||
RFD Mining-Class
|
||||
*/
|
||||
|
||||
/obj/item/weapon/rfd/mining
|
||||
/obj/item/rfd/mining
|
||||
name = "\improper Rapid-Fabrication-Device M-Class"
|
||||
desc = "A RFD, modified to deploy mine tracks."
|
||||
|
||||
/obj/item/weapon/rfd/mining/afterattack(atom/A, mob/user as mob, proximity)
|
||||
/obj/item/rfd/mining/afterattack(atom/A, mob/user as mob, proximity)
|
||||
|
||||
if(!proximity) return
|
||||
|
||||
@@ -361,16 +361,16 @@ RFD Mining-Class
|
||||
|
||||
// Malf AI RFD Transformer.
|
||||
|
||||
/obj/item/weapon/rfd/transformer
|
||||
/obj/item/rfd/transformer
|
||||
name = "\improper Rapid-Fabrication-Device T-Class"
|
||||
desc = "A device used for rapid fabrication, modified to deploy a transformer. It can only be used once and there can not be more than one made."
|
||||
stored_matter = 30
|
||||
var/malftransformermade = 0
|
||||
|
||||
/obj/item/weapon/rfd/transformer/attack_self(mob/user)
|
||||
/obj/item/rfd/transformer/attack_self(mob/user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/rfd/transformer/examine(var/mob/user)
|
||||
/obj/item/rfd/transformer/examine(var/mob/user)
|
||||
..()
|
||||
if(loc == user)
|
||||
if(malftransformermade)
|
||||
@@ -378,7 +378,7 @@ RFD Mining-Class
|
||||
else
|
||||
to_chat(user, "It is ready to deploy a transformer machine.")
|
||||
|
||||
/obj/item/weapon/rfd/transformer/afterattack(atom/A, mob/user as mob, proximity)
|
||||
/obj/item/rfd/transformer/afterattack(atom/A, mob/user as mob, proximity)
|
||||
|
||||
if(!proximity) return
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//moved these here from code/defines/obj/weapon.dm
|
||||
//please preference put stuff where it's easy to find - C
|
||||
|
||||
/obj/item/weapon/autopsy_scanner
|
||||
/obj/item/autopsy_scanner
|
||||
name = "autopsy scanner"
|
||||
desc = "Extracts information on wounds."
|
||||
icon = 'icons/obj/autopsy_scanner.dmi'
|
||||
@@ -37,7 +37,7 @@
|
||||
W.time_inflicted = time_inflicted
|
||||
return W
|
||||
|
||||
/obj/item/weapon/autopsy_scanner/proc/add_data(var/obj/item/organ/external/O)
|
||||
/obj/item/autopsy_scanner/proc/add_data(var/obj/item/organ/external/O)
|
||||
if(!O.autopsy_data.len && !O.trace_chemicals.len) return
|
||||
|
||||
for(var/V in O.autopsy_data)
|
||||
@@ -75,7 +75,7 @@
|
||||
if(O.trace_chemicals[V] > 0 && !chemtraces.Find(V))
|
||||
chemtraces += V
|
||||
|
||||
/obj/item/weapon/autopsy_scanner/verb/print_data()
|
||||
/obj/item/autopsy_scanner/verb/print_data()
|
||||
set category = "Object"
|
||||
set src in view(usr, 1)
|
||||
set name = "Print Data"
|
||||
@@ -154,14 +154,14 @@
|
||||
|
||||
sleep(10)
|
||||
|
||||
var/obj/item/weapon/paper/P = new(usr.loc)
|
||||
var/obj/item/paper/P = new(usr.loc)
|
||||
P.name = "Autopsy Data ([target_name])"
|
||||
P.info = "<tt>[scan_data]</tt>"
|
||||
P.icon_state = "paper_words"
|
||||
|
||||
usr.put_in_hands(P)
|
||||
|
||||
/obj/item/weapon/autopsy_scanner/attack(mob/living/carbon/human/M as mob, mob/living/carbon/user as mob)
|
||||
/obj/item/autopsy_scanner/attack(mob/living/carbon/human/M as mob, mob/living/carbon/user as mob)
|
||||
if(!istype(M))
|
||||
return
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/flame/candle
|
||||
/obj/item/flame/candle
|
||||
name = "red candle"
|
||||
desc = "a small pillar candle. Its specially-formulated fuel-oxidizer wax mixture allows continued combustion in airless environments."
|
||||
icon = 'icons/obj/candle.dmi'
|
||||
@@ -9,11 +9,11 @@
|
||||
light_color = "#E09D37"
|
||||
var/wax = 2000
|
||||
|
||||
/obj/item/weapon/flame/candle/Initialize()
|
||||
/obj/item/flame/candle/Initialize()
|
||||
. = ..()
|
||||
wax = rand(800, 1000) // Enough for 27-33 minutes. 30 minutes on average.
|
||||
|
||||
/obj/item/weapon/flame/candle/update_icon()
|
||||
/obj/item/flame/candle/update_icon()
|
||||
var/i
|
||||
if(wax > 1500)
|
||||
i = 1
|
||||
@@ -23,23 +23,23 @@
|
||||
icon_state = "candle[i][lit ? "_lit" : ""]"
|
||||
|
||||
|
||||
/obj/item/weapon/flame/candle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/flame/candle/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if(W.iswelder())
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(WT.isOn()) //Badasses dont get blinded by lighting their candle with a welding tool
|
||||
light()
|
||||
to_chat(user, span("notice", "\The [user] casually lights \the [name] with [W]."))
|
||||
else if(isflamesource(W))
|
||||
light()
|
||||
to_chat(user, span("notice", "\The [user] lights \the [name]."))
|
||||
else if(istype(W, /obj/item/weapon/flame/candle))
|
||||
var/obj/item/weapon/flame/candle/C = W
|
||||
else if(istype(W, /obj/item/flame/candle))
|
||||
var/obj/item/flame/candle/C = W
|
||||
if(C.lit)
|
||||
light()
|
||||
to_chat(user, span("notice", "\The [user] lights \the [name]."))
|
||||
|
||||
/obj/item/weapon/flame/candle/proc/light()
|
||||
/obj/item/flame/candle/proc/light()
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
playsound(src.loc, 'sound/items/cigs_lighters/cig_light.ogg', 50, 1)
|
||||
@@ -48,7 +48,7 @@
|
||||
update_icon()
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/weapon/flame/candle/process(mob/user)
|
||||
/obj/item/flame/candle/process(mob/user)
|
||||
if(!lit)
|
||||
return
|
||||
update_icon()
|
||||
@@ -66,7 +66,7 @@
|
||||
var/turf/T = loc
|
||||
T.hotspot_expose(700, 5)
|
||||
|
||||
/obj/item/weapon/flame/candle/attack_self(mob/user as mob)
|
||||
/obj/item/flame/candle/attack_self(mob/user as mob)
|
||||
if(lit)
|
||||
lit = 0
|
||||
to_chat(user, span("notice", "You snuff out the flame."))
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/*
|
||||
* DATA CARDS - Used for the teleporter
|
||||
*/
|
||||
/obj/item/weapon/card
|
||||
/obj/item/card
|
||||
name = "card"
|
||||
desc = "Does card things."
|
||||
icon = 'icons/obj/card.dmi'
|
||||
@@ -21,7 +21,7 @@
|
||||
var/list/files = list( )
|
||||
drop_sound = 'sound/items/drop/card.ogg'
|
||||
|
||||
/obj/item/weapon/card/data
|
||||
/obj/item/card/data
|
||||
name = "data disk"
|
||||
desc = "A disk of data."
|
||||
icon_state = "data"
|
||||
@@ -31,7 +31,7 @@
|
||||
item_state = "card-id"
|
||||
overlay_state = "data"
|
||||
|
||||
/obj/item/weapon/card/data/verb/label(t as text)
|
||||
/obj/item/card/data/verb/label(t as text)
|
||||
set name = "Label Disk"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -43,7 +43,7 @@
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
|
||||
/obj/item/weapon/card/data/clown
|
||||
/obj/item/card/data/clown
|
||||
name = "\proper the coordinates to clown planet"
|
||||
icon_state = "data"
|
||||
item_state = "card-id"
|
||||
@@ -56,7 +56,7 @@
|
||||
/*
|
||||
* ID CARDS
|
||||
*/
|
||||
/obj/item/weapon/card/emag
|
||||
/obj/item/card/emag
|
||||
desc = "It's a card with a magnetic strip attached to some circuitry."
|
||||
name = "cryptographic sequencer"
|
||||
icon_state = "emag"
|
||||
@@ -64,7 +64,7 @@
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
|
||||
var/uses = 10
|
||||
|
||||
/obj/item/weapon/card/emag_broken
|
||||
/obj/item/card/emag_broken
|
||||
desc = "It's a card with a magnetic strip attached to some circuitry. It looks too busted to be used for anything but salvage."
|
||||
name = "broken cryptographic sequencer"
|
||||
icon_state = "emag_broken"
|
||||
@@ -72,7 +72,7 @@
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
|
||||
|
||||
var/const/NO_EMAG_ACT = -50
|
||||
/obj/item/weapon/card/emag/resolve_attackby(atom/A, mob/user, var/click_parameters)
|
||||
/obj/item/card/emag/resolve_attackby(atom/A, mob/user, var/click_parameters)
|
||||
var/used_uses = A.emag_act(uses, user, src)
|
||||
if(used_uses == NO_EMAG_ACT)
|
||||
return ..(A, user, click_parameters)
|
||||
@@ -84,14 +84,14 @@ var/const/NO_EMAG_ACT = -50
|
||||
|
||||
if(uses<1)
|
||||
user.visible_message("<span class='warning'>\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.</span>")
|
||||
var/obj/item/weapon/card/emag_broken/junk = new(user.loc)
|
||||
var/obj/item/card/emag_broken/junk = new(user.loc)
|
||||
junk.add_fingerprint(user)
|
||||
user.drop_from_inventory(src,get_turf(junk))
|
||||
qdel(src)
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/card/id
|
||||
/obj/item/card/id
|
||||
name = "identification card"
|
||||
desc = "A card used to provide ID and determine access across the station."
|
||||
icon_state = "id"
|
||||
@@ -122,18 +122,18 @@ var/const/NO_EMAG_ACT = -50
|
||||
var/rank = null //actual job
|
||||
var/dorm = 0 // determines if this ID has claimed a dorm already
|
||||
|
||||
/obj/item/weapon/card/id/Destroy()
|
||||
/obj/item/card/id/Destroy()
|
||||
mob = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/card/id/examine(mob/user)
|
||||
/obj/item/card/id/examine(mob/user)
|
||||
if (..(user, 1))
|
||||
show(user)
|
||||
|
||||
/obj/item/weapon/card/id/proc/prevent_tracking()
|
||||
/obj/item/card/id/proc/prevent_tracking()
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/card/id/proc/show(mob/user as mob)
|
||||
/obj/item/card/id/proc/show(mob/user as mob)
|
||||
if(front && side)
|
||||
to_chat(user, browse_rsc(front, "front.png"))
|
||||
to_chat(user, browse_rsc(side, "side.png"))
|
||||
@@ -143,16 +143,16 @@ var/const/NO_EMAG_ACT = -50
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/item/weapon/card/id/proc/update_name()
|
||||
/obj/item/card/id/proc/update_name()
|
||||
name = "[src.registered_name]'s ID Card ([src.assignment])"
|
||||
|
||||
/obj/item/weapon/card/id/proc/set_id_photo(var/mob/M)
|
||||
/obj/item/card/id/proc/set_id_photo(var/mob/M)
|
||||
front = getFlatIcon(M, SOUTH, always_use_defdir = 1)
|
||||
front.Scale(128, 128)
|
||||
side = getFlatIcon(M, WEST, always_use_defdir = 1)
|
||||
side.Scale(128, 128)
|
||||
|
||||
/mob/proc/set_id_info(var/obj/item/weapon/card/id/id_card)
|
||||
/mob/proc/set_id_info(var/obj/item/card/id/id_card)
|
||||
id_card.age = 0
|
||||
id_card.registered_name = real_name
|
||||
id_card.sex = capitalize(gender)
|
||||
@@ -164,14 +164,14 @@ var/const/NO_EMAG_ACT = -50
|
||||
id_card.fingerprint_hash= md5(dna.uni_identity)
|
||||
id_card.update_name()
|
||||
|
||||
/mob/living/carbon/human/set_id_info(var/obj/item/weapon/card/id/id_card)
|
||||
/mob/living/carbon/human/set_id_info(var/obj/item/card/id/id_card)
|
||||
..()
|
||||
id_card.age = age
|
||||
id_card.citizenship = citizenship
|
||||
id_card.religion = SSrecords.get_religion_record_name(religion)
|
||||
id_card.mob = src
|
||||
|
||||
/obj/item/weapon/card/id/proc/dat()
|
||||
/obj/item/card/id/proc/dat()
|
||||
var/dat = ("<table><tr><td>")
|
||||
dat += text("Name: []</A><BR>", registered_name)
|
||||
dat += text("Sex: []</A><BR>\n", sex)
|
||||
@@ -189,7 +189,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
dat += "</tr></table>"
|
||||
return dat
|
||||
|
||||
/obj/item/weapon/card/id/attack_self(mob/user as mob)
|
||||
/obj/item/card/id/attack_self(mob/user as mob)
|
||||
if (dna_hash == "\[UNSET\]" && ishuman(user))
|
||||
var/response = alert(user, "This ID card has not been imprinted with biometric data. Would you like to imprint yours now?", "Biometric Imprinting", "Yes", "No")
|
||||
if (response == "Yes")
|
||||
@@ -214,7 +214,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/card/id/attack(var/mob/living/M, var/mob/user, proximity)
|
||||
/obj/item/card/id/attack(var/mob/living/M, var/mob/user, proximity)
|
||||
|
||||
if(user.zone_sel.selecting == "r_hand" || user.zone_sel.selecting == "l_hand")
|
||||
|
||||
@@ -263,13 +263,13 @@ var/const/NO_EMAG_ACT = -50
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/card/id/GetAccess()
|
||||
/obj/item/card/id/GetAccess()
|
||||
return access
|
||||
|
||||
/obj/item/weapon/card/id/GetID()
|
||||
/obj/item/card/id/GetID()
|
||||
return src
|
||||
|
||||
/obj/item/weapon/card/id/verb/read()
|
||||
/obj/item/card/id/verb/read()
|
||||
set name = "Read ID Card"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -285,12 +285,12 @@ var/const/NO_EMAG_ACT = -50
|
||||
to_chat(usr, "A ticker indicates the card has [mining_points] ore redemption points available.")
|
||||
return
|
||||
|
||||
/obj/item/weapon/card/id/proc/mob_icon_update()
|
||||
/obj/item/card/id/proc/mob_icon_update()
|
||||
if (ismob(src.loc))
|
||||
var/mob/M = src.loc
|
||||
M.update_inv_wear_id()
|
||||
|
||||
/obj/item/weapon/card/id/verb/flip_side()
|
||||
/obj/item/card/id/verb/flip_side()
|
||||
set name = "Flip ID card"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -305,7 +305,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
to_chat(usr, "You change \the [src] to be on your [src.flipped ? "left" : "right"] side.")
|
||||
mob_icon_update()
|
||||
|
||||
/obj/item/weapon/card/id/verb/toggle_icon_layer()
|
||||
/obj/item/card/id/verb/toggle_icon_layer()
|
||||
set name = "Switch ID Layer"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
@@ -318,29 +318,29 @@ var/const/NO_EMAG_ACT = -50
|
||||
wear_over_suit = !wear_over_suit
|
||||
mob_icon_update()
|
||||
|
||||
/obj/item/weapon/card/id/silver
|
||||
/obj/item/card/id/silver
|
||||
icon_state = "silver"
|
||||
item_state = "silver_id"
|
||||
overlay_state = "silver"
|
||||
|
||||
/obj/item/weapon/card/id/white
|
||||
/obj/item/card/id/white
|
||||
icon_state = "white"
|
||||
item_state = "white_id"
|
||||
overlay_state = "white"
|
||||
|
||||
/obj/item/weapon/card/id/navy
|
||||
/obj/item/card/id/navy
|
||||
desc = "A navy card which shows honour and dedication."
|
||||
icon_state = "navy"
|
||||
item_state = "navy_id"
|
||||
overlay_state = "navy"
|
||||
|
||||
/obj/item/weapon/card/id/gold
|
||||
/obj/item/card/id/gold
|
||||
desc = "A golden card which shows power and might."
|
||||
icon_state = "gold"
|
||||
item_state = "gold_id"
|
||||
overlay_state = "gold"
|
||||
|
||||
/obj/item/weapon/card/id/syndicate_command
|
||||
/obj/item/card/id/syndicate_command
|
||||
name = "syndicate ID card"
|
||||
desc = "An ID straight from the Syndicate."
|
||||
icon_state = "dark"
|
||||
@@ -348,29 +348,29 @@ var/const/NO_EMAG_ACT = -50
|
||||
assignment = "Syndicate Overlord"
|
||||
access = list(access_syndicate, access_external_airlocks)
|
||||
|
||||
/obj/item/weapon/card/id/syndicate_ert
|
||||
/obj/item/card/id/syndicate_ert
|
||||
name = "\improper Syndicate Commando ID"
|
||||
assignment = "Commando"
|
||||
icon_state = "centcom"
|
||||
|
||||
/obj/item/weapon/card/id/syndicate_ert/New()
|
||||
/obj/item/card/id/syndicate_ert/New()
|
||||
access = get_all_accesses()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/raider
|
||||
/obj/item/card/id/syndicate/raider
|
||||
name = "passport"
|
||||
assignment = "Visitor"
|
||||
|
||||
/obj/item/weapon/card/id/highlander
|
||||
/obj/item/card/id/highlander
|
||||
name = "\improper Highlander ID"
|
||||
assignment = "Highlander"
|
||||
icon_state = "centcom"
|
||||
|
||||
/obj/item/weapon/card/id/highlander/New()
|
||||
/obj/item/card/id/highlander/New()
|
||||
access = get_all_station_access() | get_all_centcom_access()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/captains_spare
|
||||
/obj/item/card/id/captains_spare
|
||||
name = "captain's spare ID"
|
||||
desc = "The spare ID of the High Lord himself."
|
||||
icon_state = "gold"
|
||||
@@ -379,40 +379,40 @@ var/const/NO_EMAG_ACT = -50
|
||||
registered_name = "Captain"
|
||||
assignment = "Captain"
|
||||
|
||||
/obj/item/weapon/card/id/captains_spare/New()
|
||||
/obj/item/card/id/captains_spare/New()
|
||||
access = get_all_station_access()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/merchant
|
||||
/obj/item/card/id/merchant
|
||||
name = "merchant pass"
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
desc = "An identification card issued to NanoTrasen sanctioned merchants, indicating their right to sell and buy goods."
|
||||
access = list(access_merchant)
|
||||
|
||||
/obj/item/weapon/card/id/synthetic
|
||||
/obj/item/card/id/synthetic
|
||||
name = "\improper Synthetic ID"
|
||||
desc = "Access module for NanoTrasen Synthetics"
|
||||
icon_state = "id-robot"
|
||||
item_state = "tdgreen"
|
||||
assignment = "Synthetic"
|
||||
|
||||
/obj/item/weapon/card/id/synthetic/New()
|
||||
/obj/item/card/id/synthetic/New()
|
||||
access = get_all_station_access() + access_synth
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/minedrone
|
||||
/obj/item/card/id/minedrone
|
||||
name = "\improper Minedrone ID"
|
||||
desc = "Access module for NanoTrasen Minedrones"
|
||||
icon_state = "id-robot"
|
||||
item_state = "tdgreen"
|
||||
assignment = "Minedrone"
|
||||
|
||||
/obj/item/weapon/card/id/minedrone/New()
|
||||
/obj/item/card/id/minedrone/New()
|
||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/centcom
|
||||
/obj/item/card/id/centcom
|
||||
name = "\improper CentCom. ID"
|
||||
desc = "An ID straight from Cent. Com."
|
||||
icon_state = "centcom"
|
||||
@@ -420,53 +420,53 @@ var/const/NO_EMAG_ACT = -50
|
||||
registered_name = "Central Command"
|
||||
assignment = "General"
|
||||
|
||||
/obj/item/weapon/card/id/centcom/New()
|
||||
/obj/item/card/id/centcom/New()
|
||||
access = get_all_centcom_access()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/ert
|
||||
/obj/item/card/id/ert
|
||||
name = "\improper Nanotrasen Emergency Response Team ID"
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
assignment = "Emergency Response Team"
|
||||
|
||||
/obj/item/weapon/card/id/ert/New()
|
||||
/obj/item/card/id/ert/New()
|
||||
access = get_all_station_access() + get_centcom_access("Emergency Response Team")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/asset_protection
|
||||
/obj/item/card/id/asset_protection
|
||||
name = "\improper Nanotrasen Asset Protection ID"
|
||||
icon_state = "centcom"
|
||||
overlay_state = "centcom"
|
||||
assignment = "Asset Protection"
|
||||
|
||||
/obj/item/weapon/card/id/asset_protection/New()
|
||||
/obj/item/card/id/asset_protection/New()
|
||||
access = get_all_accesses()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/distress
|
||||
/obj/item/card/id/distress
|
||||
name = "\improper Freelancer Mercenary ID"
|
||||
icon_state = "centcom"
|
||||
assignment = "Freelancer Mercenary"
|
||||
|
||||
/obj/item/weapon/card/id/distress/New()
|
||||
/obj/item/card/id/distress/New()
|
||||
access = list(access_distress, access_maint_tunnels, access_external_airlocks)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/distress/kataphract
|
||||
/obj/item/card/id/distress/kataphract
|
||||
name = "\improper Kataphract ID"
|
||||
icon_state = "centcom"
|
||||
assignment = "Kataphract"
|
||||
|
||||
/obj/item/weapon/card/id/distress/legion
|
||||
/obj/item/card/id/distress/legion
|
||||
name = "\improper Tau Ceti Foreign Legion ID"
|
||||
assignment = "Tau Ceti Foreign Legion Volunteer"
|
||||
|
||||
/obj/item/weapon/card/id/distress/legion/New()
|
||||
/obj/item/card/id/distress/legion/New()
|
||||
access = list(access_legion, access_maint_tunnels, access_external_airlocks, access_security, access_engine, access_engine_equip, access_medical, access_research, access_atmospherics, access_medical_equip)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/all_access
|
||||
/obj/item/card/id/all_access
|
||||
name = "\improper Administrator's spare ID"
|
||||
desc = "The spare ID of the Lord of Lords himself."
|
||||
icon_state = "data"
|
||||
@@ -475,58 +475,58 @@ var/const/NO_EMAG_ACT = -50
|
||||
registered_name = "Administrator"
|
||||
assignment = "Administrator"
|
||||
|
||||
/obj/item/weapon/card/id/all_access/New()
|
||||
/obj/item/card/id/all_access/New()
|
||||
access = get_access_ids()
|
||||
..()
|
||||
|
||||
// Contractor cards
|
||||
|
||||
/obj/item/weapon/card/id/idris
|
||||
/obj/item/card/id/idris
|
||||
name = "\improper Idris Incorporated identification card"
|
||||
desc = "A high-tech holocard, designed to project information about a sub-contractor from Idris Incorporated."
|
||||
icon_state = "idris_card"
|
||||
overlay_state = "idris_card"
|
||||
|
||||
/obj/item/weapon/card/id/idris/sec
|
||||
/obj/item/card/id/idris/sec
|
||||
icon_state = "idrissec_card"
|
||||
overlay_state = "idrissec_card"
|
||||
|
||||
/obj/item/weapon/card/id/iru
|
||||
/obj/item/card/id/iru
|
||||
name = "\improper IRU identification card"
|
||||
desc = "A high-tech holobadge, designed to project information about an asset reclamation synthetic at Idris Incorporated."
|
||||
icon_state = "iru_card"
|
||||
overlay_state = "iru_card"
|
||||
|
||||
/obj/item/weapon/card/id/eridani
|
||||
/obj/item/card/id/eridani
|
||||
name = "\improper Eridani identification card"
|
||||
desc = "A high-tech holobadge, identifying the owner as a contractor from one of the many PMCs from the Eridani Corporate Federation."
|
||||
icon_state = "erisec_card"
|
||||
overlay_state = "erisec_card"
|
||||
|
||||
/obj/item/weapon/card/id/zeng_hu
|
||||
/obj/item/card/id/zeng_hu
|
||||
name = "\improper Zeng-Hu Pharmaceuticals identification card"
|
||||
desc = "A synthleather card, belonging to one of the highly skilled members of Zeng-Hu."
|
||||
icon_state = "zhu_card"
|
||||
overlay_state = "zhu_card"
|
||||
|
||||
/obj/item/weapon/card/id/hephaestus
|
||||
/obj/item/card/id/hephaestus
|
||||
name = "\improper Hephaestus Industries identification card"
|
||||
desc = "A metal-backed card, belonging to the powerful Hephaestus Industries."
|
||||
icon_state = "heph_card"
|
||||
overlay_state = "heph_card"
|
||||
|
||||
/obj/item/weapon/card/id/necropolis
|
||||
/obj/item/card/id/necropolis
|
||||
name = "\improper Necropolis Incorporated identification card"
|
||||
desc = "An old-fashioned, practical plastic card. Smells faintly of gunpowder."
|
||||
icon_state = "necro_card"
|
||||
overlay_state = "necro_card"
|
||||
|
||||
/obj/item/weapon/card/id/necropolis/sec
|
||||
/obj/item/card/id/necropolis/sec
|
||||
desc = "An old-fashioned, practical plastic card. This one is of a higher rank, for Security personnel."
|
||||
icon_state = "necrosec_card"
|
||||
overlay_state = "necrosec_card"
|
||||
|
||||
/obj/item/weapon/card/id/einstein
|
||||
/obj/item/card/id/einstein
|
||||
name = "\improper Einstein Engines identification card"
|
||||
desc = "A stylized plastic card, belonging to one of the many specialists at Einstein Engines."
|
||||
icon_state = "einstein_card"
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
/obj/item/weapon/card/id/syndicate
|
||||
/obj/item/card/id/syndicate
|
||||
name = "agent card"
|
||||
assignment = "Agent"
|
||||
origin_tech = list(TECH_ILLEGAL = 3)
|
||||
var/electronic_warfare = 1
|
||||
var/mob/registered_user = null
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/New(mob/user as mob)
|
||||
/obj/item/card/id/syndicate/New(mob/user as mob)
|
||||
..()
|
||||
access = syndicate_access.Copy()
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/Destroy()
|
||||
/obj/item/card/id/syndicate/Destroy()
|
||||
unset_registered_user(registered_user)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/prevent_tracking()
|
||||
/obj/item/card/id/syndicate/prevent_tracking()
|
||||
return electronic_warfare
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/afterattack(var/obj/item/weapon/O as obj, mob/user as mob, proximity)
|
||||
/obj/item/card/id/syndicate/afterattack(var/obj/item/O as obj, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
if(istype(O, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/I = O
|
||||
if(istype(O, /obj/item/card/id))
|
||||
var/obj/item/card/id/I = O
|
||||
src.access |= I.access
|
||||
if(player_is_antag(user.mind))
|
||||
to_chat(user, "<span class='notice'>The microscanner activates as you pass it over the ID, copying its access.</span>")
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob)
|
||||
/obj/item/card/id/syndicate/attack_self(mob/user as mob)
|
||||
// We use the fact that registered_name is not unset should the owner be vaporized, to ensure the id doesn't magically become unlocked.
|
||||
if(!registered_user && register_user(user))
|
||||
to_chat(user, "<span class='notice'>The microscanner marks you as its owner, preventing others from accessing its internals.</span>")
|
||||
@@ -37,7 +37,7 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
/obj/item/card/id/syndicate/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
var/data[0]
|
||||
var/entries[0]
|
||||
entries[++entries.len] = list("name" = "Age", "value" = age)
|
||||
@@ -59,27 +59,27 @@
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/proc/register_user(var/mob/user)
|
||||
/obj/item/card/id/syndicate/proc/register_user(var/mob/user)
|
||||
if(!istype(user) || user == registered_user)
|
||||
return FALSE
|
||||
unset_registered_user()
|
||||
registered_user = user
|
||||
user.set_id_info(src)
|
||||
destroyed_event.register(user, src, /obj/item/weapon/card/id/syndicate/proc/unset_registered_user)
|
||||
destroyed_event.register(user, src, /obj/item/card/id/syndicate/proc/unset_registered_user)
|
||||
return TRUE
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/proc/unset_registered_user(var/mob/user)
|
||||
/obj/item/card/id/syndicate/proc/unset_registered_user(var/mob/user)
|
||||
if(!registered_user || (user && user != registered_user))
|
||||
return
|
||||
destroyed_event.unregister(registered_user, src)
|
||||
registered_user = null
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/CanUseTopic(mob/user)
|
||||
/obj/item/card/id/syndicate/CanUseTopic(mob/user)
|
||||
if(user != registered_user)
|
||||
return STATUS_CLOSE
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/Topic(href, href_list, var/datum/topic_state/state)
|
||||
/obj/item/card/id/syndicate/Topic(href, href_list, var/datum/topic_state/state)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
@@ -186,8 +186,8 @@
|
||||
/proc/id_card_states()
|
||||
if(!id_card_states)
|
||||
id_card_states = list()
|
||||
for(var/path in typesof(/obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/ID = path
|
||||
for(var/path in typesof(/obj/item/card/id))
|
||||
var/obj/item/card/id/ID = path
|
||||
var/datum/card_state/CS = new()
|
||||
CS.icon_state = initial(ID.icon_state)
|
||||
CS.item_state = initial(ID.item_state)
|
||||
|
||||
@@ -13,16 +13,16 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
*/
|
||||
|
||||
//For anything that can light stuff on fire
|
||||
/obj/item/weapon/flame
|
||||
/obj/item/flame
|
||||
var/lit = 0
|
||||
|
||||
/proc/isflamesource(A)
|
||||
var/obj/item/I = A
|
||||
if(I.iswelder())
|
||||
var/obj/item/weapon/weldingtool/WT = A
|
||||
var/obj/item/weldingtool/WT = A
|
||||
return (WT.isOn())
|
||||
else if(istype(I, /obj/item/weapon/flame))
|
||||
var/obj/item/weapon/flame/F = I
|
||||
else if(istype(I, /obj/item/flame))
|
||||
var/obj/item/flame/F = I
|
||||
return (F.lit)
|
||||
else if(istype(I, /obj/item/device/assembly/igniter))
|
||||
return 1
|
||||
@@ -34,7 +34,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
///////////
|
||||
//MATCHES//
|
||||
///////////
|
||||
/obj/item/weapon/flame/match
|
||||
/obj/item/flame/match
|
||||
name = "match"
|
||||
desc = "A simple match stick, used for lighting fine smokables."
|
||||
icon = 'icons/obj/cigs_lighters.dmi'
|
||||
@@ -47,7 +47,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
attack_verb = list("burnt", "singed")
|
||||
drop_sound = null
|
||||
|
||||
/obj/item/weapon/flame/match/process()
|
||||
/obj/item/flame/match/process()
|
||||
if(isliving(loc))
|
||||
var/mob/living/M = loc
|
||||
M.IgniteMob()
|
||||
@@ -60,7 +60,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
location.hotspot_expose(700, 5)
|
||||
return
|
||||
|
||||
/obj/item/weapon/flame/match/dropped(mob/user as mob)
|
||||
/obj/item/flame/match/dropped(mob/user as mob)
|
||||
//If dropped, put ourselves out
|
||||
//not before lighting up the turf we land on, though.
|
||||
if(lit)
|
||||
@@ -71,7 +71,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
burn_out()
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/flame/match/proc/burn_out()
|
||||
/obj/item/flame/match/proc/burn_out()
|
||||
lit = 0
|
||||
burnt = 1
|
||||
damtype = "brute"
|
||||
@@ -192,15 +192,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
M.update_inv_r_hand(1)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/clothing/mask/smokable/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if(isflamesource(W))
|
||||
var/text = matchmes
|
||||
if(istype(W, /obj/item/weapon/flame/match))
|
||||
if(istype(W, /obj/item/flame/match))
|
||||
text = matchmes
|
||||
else if(istype(W, /obj/item/weapon/flame/lighter/zippo))
|
||||
else if(istype(W, /obj/item/flame/lighter/zippo))
|
||||
text = zippomes
|
||||
else if(istype(W, /obj/item/weapon/flame/lighter))
|
||||
else if(istype(W, /obj/item/flame/lighter))
|
||||
text = lightermes
|
||||
else if(W.iswelder())
|
||||
text = weldermes
|
||||
@@ -222,7 +222,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
attack_verb = list("burnt", "singed")
|
||||
icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
|
||||
icon_off = "cigoff"
|
||||
type_butt = /obj/item/weapon/cigbutt
|
||||
type_butt = /obj/item/cigbutt
|
||||
chem_volume = 30
|
||||
burn_rate = 0.006 //Lasts ~166 seconds)
|
||||
matchmes = "<span class='notice'>USER lights their NAME with their FLAME.</span>"
|
||||
@@ -237,11 +237,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
reagents.add_reagent("nicotine",5) // 2/3 ratio, Adds 0.03 units per second
|
||||
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/clothing/mask/smokable/cigarette/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
var/obj/item/weapon/melee/energy/sword/S = W
|
||||
if(istype(W, /obj/item/melee/energy/sword))
|
||||
var/obj/item/melee/energy/sword/S = W
|
||||
if(S.active)
|
||||
light("<span class='warning'>[user] swings their [W], barely missing themselves. They light their [name] in the process.</span>")
|
||||
|
||||
@@ -258,7 +258,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/afterattack(obj/item/weapon/reagent_containers/glass/glass, mob/user as mob, proximity)
|
||||
/obj/item/clothing/mask/smokable/cigarette/afterattack(obj/item/reagent_containers/glass/glass, mob/user as mob, proximity)
|
||||
..()
|
||||
if(!proximity || lit)
|
||||
return
|
||||
@@ -327,7 +327,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
icon_state = "cigar2off"
|
||||
icon_on = "cigar2on"
|
||||
icon_off = "cigar2off"
|
||||
type_butt = /obj/item/weapon/cigbutt/cigarbutt
|
||||
type_butt = /obj/item/cigbutt/cigarbutt
|
||||
throw_speed = 0.5
|
||||
item_state = "cigaroff"
|
||||
burn_rate = 0.003 //Lasts ~300 seconds
|
||||
@@ -374,7 +374,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
reagents.add_reagent("nicotine",10) //1/6 Ratio
|
||||
reagents.add_reagent("tricordrazine",20)
|
||||
|
||||
/obj/item/weapon/cigbutt
|
||||
/obj/item/cigbutt
|
||||
name = "cigarette butt"
|
||||
desc = "A manky old cigarette butt."
|
||||
icon = 'icons/obj/clothing/masks.dmi'
|
||||
@@ -384,17 +384,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
slot_flags = SLOT_EARS
|
||||
throwforce = 1
|
||||
|
||||
/obj/item/weapon/cigbutt/Initialize()
|
||||
/obj/item/cigbutt/Initialize()
|
||||
. = ..()
|
||||
randpixel_xy()
|
||||
transform = turn(transform,rand(0,360))
|
||||
|
||||
/obj/item/weapon/cigbutt/cigarbutt
|
||||
/obj/item/cigbutt/cigarbutt
|
||||
name = "cigar butt"
|
||||
desc = "A manky old cigar butt."
|
||||
icon_state = "cigarbutt"
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/clothing/mask/smokable/cigarette/cigar/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
user.update_inv_wear_mask(0)
|
||||
user.update_inv_l_hand(0)
|
||||
@@ -455,14 +455,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
reagents.clear_reagents()
|
||||
name = "empty [initial(name)]"
|
||||
|
||||
/obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
/obj/item/clothing/mask/smokable/pipe/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/melee/energy/sword))
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
if (istype(W, /obj/item/weapon/reagent_containers/food/snacks))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W
|
||||
if (istype(W, /obj/item/reagent_containers/food/snacks))
|
||||
var/obj/item/reagent_containers/food/snacks/grown/G = W
|
||||
if (!G.dry)
|
||||
to_chat(user, "<span class='notice'>[G] must be dried before you stuff it into [src].</span>")
|
||||
return
|
||||
@@ -476,13 +476,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
burn_rate = initial(burn_rate)
|
||||
qdel(G)
|
||||
|
||||
else if(istype(W, /obj/item/weapon/flame/lighter))
|
||||
var/obj/item/weapon/flame/lighter/L = W
|
||||
else if(istype(W, /obj/item/flame/lighter))
|
||||
var/obj/item/flame/lighter/L = W
|
||||
if(L.lit)
|
||||
light("<span class='notice'>[user] manages to light their [name] with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/flame/match))
|
||||
var/obj/item/weapon/flame/match/M = W
|
||||
else if(istype(W, /obj/item/flame/match))
|
||||
var/obj/item/flame/match/M = W
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
|
||||
|
||||
@@ -505,7 +505,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/////////
|
||||
//ZIPPO//
|
||||
/////////
|
||||
/obj/item/weapon/flame/lighter
|
||||
/obj/item/flame/lighter
|
||||
name = "cheap lighter"
|
||||
desc = "A cheap-as-free lighter."
|
||||
icon = 'icons/obj/cigs_lighters.dmi'
|
||||
@@ -524,7 +524,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
)
|
||||
var/deactivation_sound = 'sound/items/cigs_lighters/cheap_off.ogg'
|
||||
|
||||
/obj/item/weapon/flame/lighter/zippo
|
||||
/obj/item/flame/lighter/zippo
|
||||
name = "\improper Zippo lighter"
|
||||
desc = "The zippo. If you've spent that amount of money on a lighter, you're either a badass or a chain smoker."
|
||||
icon_state = "zippo"
|
||||
@@ -532,13 +532,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
activation_sound = 'sound/items/cigs_lighters/zippo_on.ogg'
|
||||
deactivation_sound = 'sound/items/cigs_lighters/zippo_off.ogg'
|
||||
|
||||
/obj/item/weapon/flame/lighter/random
|
||||
/obj/item/flame/lighter/random
|
||||
New()
|
||||
icon_state = "lighter-[pick("r","c","y","g")]"
|
||||
item_state = icon_state
|
||||
base_state = icon_state
|
||||
|
||||
/obj/item/weapon/flame/lighter/attack_self(mob/living/user)
|
||||
/obj/item/flame/lighter/attack_self(mob/living/user)
|
||||
if(!base_state)
|
||||
base_state = icon_state
|
||||
if(user.r_hand == src || user.l_hand == src)
|
||||
@@ -547,7 +547,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
icon_state = "[base_state]on"
|
||||
item_state = "[base_state]on"
|
||||
playsound(src.loc, pick(activation_sound), 75, 1)
|
||||
if(istype(src, /obj/item/weapon/flame/lighter/zippo) )
|
||||
if(istype(src, /obj/item/flame/lighter/zippo) )
|
||||
user.visible_message("<span class='notice'>Without even breaking stride, [user] flips open and lights [src] in one smooth movement.</span>")
|
||||
else
|
||||
if(prob(95))
|
||||
@@ -570,7 +570,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
icon_state = "[base_state]"
|
||||
item_state = "[base_state]"
|
||||
playsound(src.loc, deactivation_sound, 75, 1)
|
||||
if(istype(src, /obj/item/weapon/flame/lighter/zippo) )
|
||||
if(istype(src, /obj/item/flame/lighter/zippo) )
|
||||
user.visible_message("<span class='notice'>You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] quietly shuts off the [src].</span>")
|
||||
@@ -582,7 +582,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/flame/lighter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
/obj/item/flame/lighter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
if(!istype(M, /mob))
|
||||
return
|
||||
|
||||
@@ -594,19 +594,19 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
if(M == user)
|
||||
cig.attackby(src, user)
|
||||
else
|
||||
if(istype(src, /obj/item/weapon/flame/lighter/zippo))
|
||||
if(istype(src, /obj/item/flame/lighter/zippo))
|
||||
cig.light("<span class='notice'>[user] whips the [name] out and holds it for [M].</span>")
|
||||
else
|
||||
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/flame/lighter/throw_impact(mob/living/carbon/M as mob)
|
||||
/obj/item/flame/lighter/throw_impact(mob/living/carbon/M as mob)
|
||||
. = ..()
|
||||
if(istype(M) && lit && M.IgniteMob())
|
||||
M.visible_message(span("danger","\The [M] is ignited by \the [src]!"))
|
||||
|
||||
/obj/item/weapon/flame/lighter/process()
|
||||
/obj/item/flame/lighter/process()
|
||||
var/turf/location = get_turf(src)
|
||||
if(location)
|
||||
location.hotspot_expose(700, 5)
|
||||
@@ -616,7 +616,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
if(M.IgniteMob())
|
||||
M.visible_message(span("danger","\The [M] is ignited by \the [src]!"))
|
||||
|
||||
if (istype(loc, /obj/item/weapon/storage))//A lighter shouldn't stay lit inside a closed container
|
||||
if (istype(loc, /obj/item/storage))//A lighter shouldn't stay lit inside a closed container
|
||||
lit = 0
|
||||
icon_state = "[base_state]"
|
||||
item_state = "[base_state]"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/circuitboard/broken
|
||||
/obj/item/circuitboard/broken
|
||||
name = "broken electronics"
|
||||
icon = 'icons/obj/doors/door_assembly.dmi'
|
||||
icon_state = "door_electronics_smoked"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#endif
|
||||
#define T_BOARD(name) "circuit board (" + (name) + ")"
|
||||
|
||||
/obj/item/weapon/circuitboard
|
||||
/obj/item/circuitboard
|
||||
name = "circuit board"
|
||||
desc = "Looks like a circuit. Probably is."
|
||||
icon = 'icons/obj/module.dmi'
|
||||
@@ -25,14 +25,14 @@
|
||||
var/contain_parts = 1
|
||||
|
||||
//Called when the circuitboard is used to contruct a new machine.
|
||||
/obj/item/weapon/circuitboard/proc/construct(var/obj/machinery/M)
|
||||
/obj/item/circuitboard/proc/construct(var/obj/machinery/M)
|
||||
if (istype(M, build_path))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
//Called when a computer is deconstructed to produce a circuitboard.
|
||||
//Only used by computers, as other machines store their circuitboard instance.
|
||||
/obj/item/weapon/circuitboard/proc/deconstruct(var/obj/machinery/M)
|
||||
/obj/item/circuitboard/proc/deconstruct(var/obj/machinery/M)
|
||||
if (istype(M, build_path))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management
|
||||
/obj/item/circuitboard/air_management
|
||||
name = T_BOARD("atmosphere monitoring console")
|
||||
build_path = /obj/machinery/computer/general_air_control
|
||||
var/console_name
|
||||
@@ -10,7 +10,7 @@
|
||||
var/list/sensors = list()
|
||||
var/list/sensor_information = list()
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/tank_control
|
||||
/obj/item/circuitboard/air_management/tank_control
|
||||
name = T_BOARD("tank control")
|
||||
build_path = /obj/machinery/computer/general_air_control/large_tank_control
|
||||
frequency = 1441
|
||||
@@ -23,7 +23,7 @@
|
||||
var/input_flow_setting = 200
|
||||
var/pressure_setting = ONE_ATMOSPHERE * 45
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/supermatter_core
|
||||
/obj/item/circuitboard/air_management/supermatter_core
|
||||
name = T_BOARD("core control")
|
||||
build_path = /obj/machinery/computer/general_air_control/supermatter_core
|
||||
frequency = 1438
|
||||
@@ -36,7 +36,7 @@
|
||||
var/input_flow_setting = 700
|
||||
var/pressure_setting = 100
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/injector_control
|
||||
/obj/item/circuitboard/air_management/injector_control
|
||||
name = T_BOARD("injector control")
|
||||
build_path = /obj/machinery/computer/general_air_control/fuel_injection
|
||||
var/device_tag
|
||||
@@ -48,7 +48,7 @@
|
||||
/************
|
||||
* Construct *
|
||||
************/
|
||||
/obj/item/weapon/circuitboard/air_management/construct(var/obj/machinery/computer/general_air_control/C)
|
||||
/obj/item/circuitboard/air_management/construct(var/obj/machinery/computer/general_air_control/C)
|
||||
if (..(C))
|
||||
if(console_name)
|
||||
C.name = console_name
|
||||
@@ -57,7 +57,7 @@
|
||||
C.sensor_information = sensor_information.Copy()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/tank_control/construct(var/obj/machinery/computer/general_air_control/large_tank_control/LTC)
|
||||
/obj/item/circuitboard/air_management/tank_control/construct(var/obj/machinery/computer/general_air_control/large_tank_control/LTC)
|
||||
if(..(LTC))
|
||||
LTC.input_tag = input_tag
|
||||
LTC.output_tag = output_tag
|
||||
@@ -69,7 +69,7 @@
|
||||
LTC.default_pressure_setting = pressure_setting
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/supermatter_core/construct(var/obj/machinery/computer/general_air_control/supermatter_core/SC)
|
||||
/obj/item/circuitboard/air_management/supermatter_core/construct(var/obj/machinery/computer/general_air_control/supermatter_core/SC)
|
||||
if(..(SC))
|
||||
SC.input_tag = input_tag
|
||||
SC.output_tag = output_tag
|
||||
@@ -81,7 +81,7 @@
|
||||
SC.default_pressure_setting = input_flow_setting
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/injector_control/construct(var/obj/machinery/computer/general_air_control/fuel_injection/FI)
|
||||
/obj/item/circuitboard/air_management/injector_control/construct(var/obj/machinery/computer/general_air_control/fuel_injection/FI)
|
||||
if(..(FI))
|
||||
FI.device_tag = device_tag
|
||||
FI.device_info = device_info.Copy()
|
||||
@@ -93,7 +93,7 @@
|
||||
/**************
|
||||
* Deconstruct *
|
||||
**************/
|
||||
/obj/item/weapon/circuitboard/air_management/deconstruct(var/obj/machinery/computer/general_air_control/C)
|
||||
/obj/item/circuitboard/air_management/deconstruct(var/obj/machinery/computer/general_air_control/C)
|
||||
if (..(C))
|
||||
console_name = C.name
|
||||
frequency = C.frequency
|
||||
@@ -101,7 +101,7 @@
|
||||
sensor_information = C.sensor_information.Copy()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/tank_control/deconstruct(var/obj/machinery/computer/general_air_control/large_tank_control/LTC)
|
||||
/obj/item/circuitboard/air_management/tank_control/deconstruct(var/obj/machinery/computer/general_air_control/large_tank_control/LTC)
|
||||
if(..(LTC))
|
||||
input_tag = LTC.input_tag
|
||||
output_tag = LTC.output_tag
|
||||
@@ -113,7 +113,7 @@
|
||||
pressure_setting = LTC.default_pressure_setting
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/supermatter_core/deconstruct(var/obj/machinery/computer/general_air_control/supermatter_core/SC)
|
||||
/obj/item/circuitboard/air_management/supermatter_core/deconstruct(var/obj/machinery/computer/general_air_control/supermatter_core/SC)
|
||||
if(..(SC))
|
||||
input_tag = SC.input_tag
|
||||
output_tag = SC.output_tag
|
||||
@@ -125,7 +125,7 @@
|
||||
pressure_setting = SC.default_input_flow_setting
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/air_management/injector_control/deconstruct(var/obj/machinery/computer/general_air_control/fuel_injection/FI)
|
||||
/obj/item/circuitboard/air_management/injector_control/deconstruct(var/obj/machinery/computer/general_air_control/fuel_injection/FI)
|
||||
if(..(FI))
|
||||
device_tag = FI.device_tag
|
||||
device_info = FI.device_info.Copy()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/security
|
||||
/obj/item/circuitboard/security
|
||||
name = T_BOARD("security camera monitor")
|
||||
build_path = /obj/machinery/computer/security
|
||||
req_access = list(access_security)
|
||||
@@ -10,34 +10,34 @@
|
||||
var/locked = 1
|
||||
var/emagged = 0
|
||||
|
||||
/obj/item/weapon/circuitboard/security/Initialize()
|
||||
/obj/item/circuitboard/security/Initialize()
|
||||
. = ..()
|
||||
network = current_map.station_networks
|
||||
|
||||
/obj/item/weapon/circuitboard/security/engineering
|
||||
/obj/item/circuitboard/security/engineering
|
||||
name = T_BOARD("engineering camera monitor")
|
||||
build_path = /obj/machinery/computer/security/engineering
|
||||
req_access = list()
|
||||
|
||||
/obj/item/weapon/circuitboard/security/engineering/New()
|
||||
/obj/item/circuitboard/security/engineering/New()
|
||||
..()
|
||||
network = engineering_networks
|
||||
|
||||
/obj/item/weapon/circuitboard/security/mining
|
||||
/obj/item/circuitboard/security/mining
|
||||
name = T_BOARD("mining camera monitor")
|
||||
build_path = /obj/machinery/computer/security/mining
|
||||
network = list("MINE")
|
||||
req_access = list()
|
||||
|
||||
/obj/item/weapon/circuitboard/security/construct(var/obj/machinery/computer/security/C)
|
||||
/obj/item/circuitboard/security/construct(var/obj/machinery/computer/security/C)
|
||||
if (..(C))
|
||||
C.network = network.Copy()
|
||||
|
||||
/obj/item/weapon/circuitboard/security/deconstruct(var/obj/machinery/computer/security/C)
|
||||
/obj/item/circuitboard/security/deconstruct(var/obj/machinery/computer/security/C)
|
||||
if (..(C))
|
||||
network = C.network.Copy()
|
||||
|
||||
/obj/item/weapon/circuitboard/security/emag_act(var/remaining_charges, var/mob/user)
|
||||
/obj/item/circuitboard/security/emag_act(var/remaining_charges, var/mob/user)
|
||||
if(emagged)
|
||||
to_chat(user, "Circuit lock is already removed.")
|
||||
return
|
||||
@@ -46,8 +46,8 @@
|
||||
locked = 0
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/security/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I,/obj/item/weapon/card/id))
|
||||
/obj/item/circuitboard/security/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I,/obj/item/card/id))
|
||||
if(emagged)
|
||||
to_chat(user, "<span class='warning'>Circuit lock does not respond.</span>")
|
||||
return
|
||||
|
||||
@@ -2,182 +2,182 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/message_monitor
|
||||
/obj/item/circuitboard/message_monitor
|
||||
name = T_BOARD("message monitor console")
|
||||
build_path = /obj/machinery/computer/message_monitor
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/aiupload
|
||||
/obj/item/circuitboard/aiupload
|
||||
name = T_BOARD("AI upload console")
|
||||
build_path = /obj/machinery/computer/aiupload
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/borgupload
|
||||
/obj/item/circuitboard/borgupload
|
||||
name = T_BOARD("cyborg upload console")
|
||||
build_path = /obj/machinery/computer/borgupload
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/med_data
|
||||
/obj/item/circuitboard/med_data
|
||||
name = T_BOARD("medical records console")
|
||||
build_path = /obj/machinery/computer/records/medical
|
||||
|
||||
/obj/item/weapon/circuitboard/pandemic
|
||||
/obj/item/circuitboard/pandemic
|
||||
name = T_BOARD("PanD.E.M.I.C. 2200")
|
||||
build_path = /obj/machinery/computer/pandemic
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/scan_consolenew
|
||||
/obj/item/circuitboard/scan_consolenew
|
||||
name = T_BOARD("DNA machine")
|
||||
build_path = /obj/machinery/computer/scan_consolenew
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/teleporter
|
||||
/obj/item/circuitboard/teleporter
|
||||
name = T_BOARD("teleporter control console")
|
||||
build_path = /obj/machinery/computer/teleporter
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/secure_data
|
||||
/obj/item/circuitboard/secure_data
|
||||
name = T_BOARD("security records console")
|
||||
build_path = /obj/machinery/computer/records/security
|
||||
|
||||
/obj/item/weapon/circuitboard/skills
|
||||
/obj/item/circuitboard/skills
|
||||
name = T_BOARD("employment records console")
|
||||
build_path = /obj/machinery/computer/records/employment
|
||||
|
||||
/obj/item/weapon/circuitboard/sentencing
|
||||
/obj/item/circuitboard/sentencing
|
||||
name = T_BOARD("criminal sentencing console")
|
||||
build_path = /obj/machinery/computer/sentencing
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/atmos_alert
|
||||
/obj/item/circuitboard/atmos_alert
|
||||
name = T_BOARD("atmospheric alert console")
|
||||
build_path = /obj/machinery/computer/atmos_alert
|
||||
|
||||
/obj/item/weapon/circuitboard/pod
|
||||
/obj/item/circuitboard/pod
|
||||
name = T_BOARD("massdriver control")
|
||||
build_path = /obj/machinery/computer/pod
|
||||
|
||||
/obj/item/weapon/circuitboard/robotics
|
||||
/obj/item/circuitboard/robotics
|
||||
name = T_BOARD("robotics control console")
|
||||
build_path = /obj/machinery/computer/robotics
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/drone_control
|
||||
/obj/item/circuitboard/drone_control
|
||||
name = T_BOARD("drone control console")
|
||||
build_path = /obj/machinery/computer/drone_control
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/cloning
|
||||
/obj/item/circuitboard/cloning
|
||||
name = T_BOARD("cloning control console")
|
||||
build_path = /obj/machinery/computer/cloning
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/arcade/battle
|
||||
/obj/item/circuitboard/arcade/battle
|
||||
name = T_BOARD("battle arcade machine")
|
||||
build_path = /obj/machinery/computer/arcade/battle
|
||||
origin_tech = list(TECH_DATA = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/arcade/orion_trail
|
||||
/obj/item/circuitboard/arcade/orion_trail
|
||||
name = T_BOARD("orion trail arcade machine")
|
||||
build_path = /obj/machinery/computer/arcade/orion_trail
|
||||
origin_tech = list(TECH_DATA = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/turbine_control
|
||||
/obj/item/circuitboard/turbine_control
|
||||
name = T_BOARD("turbine control console")
|
||||
build_path = /obj/machinery/computer/turbine_computer
|
||||
|
||||
/obj/item/weapon/circuitboard/solar_control
|
||||
/obj/item/circuitboard/solar_control
|
||||
name = T_BOARD("solar control console")
|
||||
build_path = /obj/machinery/power/solar_control
|
||||
origin_tech = list(TECH_DATA = 2, TECH_POWER = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/powermonitor
|
||||
/obj/item/circuitboard/powermonitor
|
||||
name = T_BOARD("power monitoring console")
|
||||
build_path = /obj/machinery/computer/power_monitor
|
||||
|
||||
/obj/item/weapon/circuitboard/olddoor
|
||||
/obj/item/circuitboard/olddoor
|
||||
name = T_BOARD("DoorMex")
|
||||
build_path = /obj/machinery/computer/pod/old
|
||||
|
||||
/obj/item/weapon/circuitboard/syndicatedoor
|
||||
/obj/item/circuitboard/syndicatedoor
|
||||
name = T_BOARD("ProComp Executive")
|
||||
build_path = /obj/machinery/computer/pod/old/syndicate
|
||||
|
||||
/obj/item/weapon/circuitboard/swfdoor
|
||||
/obj/item/circuitboard/swfdoor
|
||||
name = T_BOARD("Magix")
|
||||
build_path = /obj/machinery/computer/pod/old/swf
|
||||
|
||||
/obj/item/weapon/circuitboard/prisoner
|
||||
/obj/item/circuitboard/prisoner
|
||||
name = T_BOARD("prisoner management console")
|
||||
build_path = /obj/machinery/computer/prisoner
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha_control
|
||||
/obj/item/circuitboard/mecha_control
|
||||
name = T_BOARD("exosuit control console")
|
||||
build_path = /obj/machinery/computer/mecha
|
||||
|
||||
/obj/item/weapon/circuitboard/rdservercontrol
|
||||
/obj/item/circuitboard/rdservercontrol
|
||||
name = T_BOARD("R&D server control console")
|
||||
build_path = /obj/machinery/computer/rdservercontrol
|
||||
|
||||
/obj/item/weapon/circuitboard/crew
|
||||
/obj/item/circuitboard/crew
|
||||
name = T_BOARD("crew monitoring console")
|
||||
build_path = /obj/machinery/computer/crew
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 2, TECH_MAGNET = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/operating
|
||||
/obj/item/circuitboard/operating
|
||||
name = T_BOARD("patient monitoring console")
|
||||
build_path = /obj/machinery/computer/operating
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/advoperating
|
||||
/obj/item/circuitboard/advoperating
|
||||
name = T_BOARD("life support table console")
|
||||
build_path = /obj/machinery/computer/operating/advanced
|
||||
origin_tech = list(TECH_DATA = 4, TECH_BIO = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/curefab
|
||||
/obj/item/circuitboard/curefab
|
||||
name = T_BOARD("cure fabricator")
|
||||
build_path = /obj/machinery/computer/curer
|
||||
|
||||
/obj/item/weapon/circuitboard/splicer
|
||||
/obj/item/circuitboard/splicer
|
||||
name = T_BOARD("disease splicer")
|
||||
build_path = /obj/machinery/computer/diseasesplicer
|
||||
|
||||
/obj/item/weapon/circuitboard/mining_shuttle
|
||||
/obj/item/circuitboard/mining_shuttle
|
||||
name = T_BOARD("mining shuttle console")
|
||||
build_path = /obj/machinery/computer/shuttle_control/mining
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/engineering_shuttle
|
||||
/obj/item/circuitboard/engineering_shuttle
|
||||
name = T_BOARD("engineering shuttle console")
|
||||
build_path = /obj/machinery/computer/shuttle_control/engineering
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/research_shuttle
|
||||
/obj/item/circuitboard/research_shuttle
|
||||
name = T_BOARD("research shuttle console")
|
||||
build_path = /obj/machinery/computer/shuttle_control/research
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/area_atmos
|
||||
/obj/item/circuitboard/area_atmos
|
||||
name = T_BOARD("area air control console")
|
||||
build_path = /obj/machinery/computer/area_atmos
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/*/obj/item/weapon/circuitboard/prison_shuttle
|
||||
/*/obj/item/circuitboard/prison_shuttle
|
||||
name = T_BOARD("prison shuttle control console")
|
||||
build_path = /obj/machinery/computer/prison_shuttle
|
||||
origin_tech = list(TECH_DATA = 2)*/
|
||||
|
||||
/obj/item/weapon/circuitboard/rcon_console
|
||||
/obj/item/circuitboard/rcon_console
|
||||
name = T_BOARD("RCON remote control console")
|
||||
build_path = /obj/machinery/computer/rcon
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_POWER = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/telesci_console
|
||||
/obj/item/circuitboard/telesci_console
|
||||
name = T_BOARD("Telescience Console")
|
||||
build_path = /obj/machinery/computer/telescience
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BLUESPACE = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/slot_machine
|
||||
/obj/item/circuitboard/slot_machine
|
||||
name = T_BOARD("Slot Machine")
|
||||
build_path = /obj/machinery/computer/slot_machine
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/holodeckcontrol
|
||||
/obj/item/circuitboard/holodeckcontrol
|
||||
name = T_BOARD("holodeck control console")
|
||||
build_path = /obj/machinery/computer/HolodeckControl
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 2)
|
||||
@@ -11,7 +11,7 @@
|
||||
var/list/supported_programs
|
||||
var/list/restricted_programs
|
||||
|
||||
/obj/item/weapon/circuitboard/holodeckcontrol/construct(var/obj/machinery/computer/HolodeckControl/HC)
|
||||
/obj/item/circuitboard/holodeckcontrol/construct(var/obj/machinery/computer/HolodeckControl/HC)
|
||||
if (..(HC))
|
||||
if(linkedholodeck_area)
|
||||
HC.linkedholodeck = locate(linkedholodeck_area)
|
||||
@@ -20,7 +20,7 @@
|
||||
HC.emagged = 1
|
||||
HC.safety_disabled = 1
|
||||
|
||||
/obj/item/weapon/circuitboard/holodeckcontrol/deconstruct(var/obj/machinery/computer/HolodeckControl/HC)
|
||||
/obj/item/circuitboard/holodeckcontrol/deconstruct(var/obj/machinery/computer/HolodeckControl/HC)
|
||||
if (..(HC))
|
||||
linkedholodeck_area = HC.linkedholodeck_area
|
||||
last_to_emag = HC.last_to_emag
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/rdconsole
|
||||
/obj/item/circuitboard/rdconsole
|
||||
name = T_BOARD("R&D control console")
|
||||
build_path = /obj/machinery/computer/rdconsole/core
|
||||
|
||||
/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
|
||||
/obj/item/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(I.isscrewdriver())
|
||||
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
||||
if(src.build_path == /obj/machinery/computer/rdconsole/core)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/obj/item/weapon/circuitboard/stationalert
|
||||
/obj/item/circuitboard/stationalert
|
||||
name = T_BOARD("station alert console")
|
||||
build_path = /obj/machinery/computer/station_alert
|
||||
var/list/alarm_handlers
|
||||
|
||||
/obj/item/weapon/circuitboard/stationalert/New()
|
||||
/obj/item/circuitboard/stationalert/New()
|
||||
alarm_handlers = new()
|
||||
set_expansion(/datum/expansion/multitool, new/datum/expansion/multitool/circuitboards/stationalert(src))
|
||||
..()
|
||||
|
||||
/obj/item/weapon/circuitboard/stationalert/construct(var/obj/machinery/computer/station_alert/SA)
|
||||
/obj/item/circuitboard/stationalert/construct(var/obj/machinery/computer/station_alert/SA)
|
||||
if(..(SA))
|
||||
SA.unregister_monitor()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
SA.register_monitor(monitor)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/circuitboard/stationalert/deconstruct(var/obj/machinery/computer/station_alert/SA)
|
||||
/obj/item/circuitboard/stationalert/deconstruct(var/obj/machinery/computer/station_alert/SA)
|
||||
if(..(SA))
|
||||
alarm_handlers.Cut()
|
||||
if(SA.alarm_monitor)
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/comm_monitor
|
||||
/obj/item/circuitboard/comm_monitor
|
||||
name = T_BOARD("telecommunications monitor console")
|
||||
build_path = /obj/machinery/computer/telecomms/monitor
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/comm_server
|
||||
/obj/item/circuitboard/comm_server
|
||||
name = T_BOARD("telecommunications server monitor console")
|
||||
build_path = /obj/machinery/computer/telecomms/server
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/comm_traffic
|
||||
/obj/item/circuitboard/comm_traffic
|
||||
name = T_BOARD("telecommunications traffic control console")
|
||||
build_path = /obj/machinery/computer/telecomms/traffic
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/biogenerator
|
||||
/obj/item/circuitboard/biogenerator
|
||||
name = T_BOARD("biogenerator")
|
||||
build_path = "/obj/machinery/biogenerator"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1)
|
||||
"/obj/item/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 1)
|
||||
@@ -2,11 +2,11 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/chem_heater
|
||||
/obj/item/circuitboard/chem_heater
|
||||
name = T_BOARD("chem heater")
|
||||
build_path = "/obj/machinery/chem_heater"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 1, TECH_BIO = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 3
|
||||
"/obj/item/stock_parts/manipulator" = 3
|
||||
)
|
||||
@@ -2,25 +2,25 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/clonepod
|
||||
/obj/item/circuitboard/clonepod
|
||||
name = T_BOARD("clone pod")
|
||||
build_path = "/obj/machinery/clonepod"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
|
||||
req_components = list(
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/console_screen" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/clonescanner
|
||||
/obj/item/circuitboard/clonescanner
|
||||
name = T_BOARD("cloning scanner")
|
||||
build_path = "/obj/machinery/dna_scannernew"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 1,
|
||||
"/obj/item/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stack/cable_coil" = 2)
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/bluespacerelay
|
||||
/obj/item/circuitboard/bluespacerelay
|
||||
name = T_BOARD("bluespacerelay")
|
||||
build_path = "/obj/machinery/bluespacerelay"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_BLUESPACE = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
"/obj/item/stack/cable_coil" = 30,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/stock_parts/subspace/crystal" = 1
|
||||
)
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/mech_recharger
|
||||
/obj/item/circuitboard/mech_recharger
|
||||
name = T_BOARD("mech recharger")
|
||||
build_path = "/obj/machinery/mech_recharger"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_POWER = 2, TECH_ENGINEERING = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2)
|
||||
"/obj/item/stock_parts/capacitor" = 2,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 2)
|
||||
@@ -2,18 +2,18 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/miningdrill
|
||||
/obj/item/circuitboard/miningdrill
|
||||
name = T_BOARD("mining drill head")
|
||||
build_path = "/obj/machinery/mining/drill"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
||||
"/obj/item/weapon/cell" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
||||
"/obj/item/stock_parts/capacitor" = 1,
|
||||
"/obj/item/cell" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/stock_parts/micro_laser" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/miningdrillbrace
|
||||
/obj/item/circuitboard/miningdrillbrace
|
||||
name = T_BOARD("mining drill brace")
|
||||
build_path = "/obj/machinery/mining/brace"
|
||||
board_type = "machine"
|
||||
|
||||
@@ -4,111 +4,111 @@
|
||||
|
||||
//Stuff that doesn't fit into any category goes here
|
||||
|
||||
/obj/item/weapon/circuitboard/aicore
|
||||
/obj/item/circuitboard/aicore
|
||||
name = T_BOARD("AI core")
|
||||
origin_tech = list(TECH_DATA = 4, TECH_BIO = 2)
|
||||
board_type = "other"
|
||||
|
||||
/obj/item/weapon/circuitboard/sleeper
|
||||
/obj/item/circuitboard/sleeper
|
||||
name = T_BOARD("Sleeper")
|
||||
desc = "The circuitboard for a sleeper."
|
||||
build_path = "/obj/machinery/sleeper"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/weapon/reagent_containers/glass/beaker/large" = 1)
|
||||
"/obj/item/stock_parts/capacitor" = 2,
|
||||
"/obj/item/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/stock_parts/console_screen" = 1,
|
||||
"/obj/item/reagent_containers/glass/beaker/large" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/cryotube
|
||||
/obj/item/circuitboard/cryotube
|
||||
name = T_BOARD("Cryo Cell")
|
||||
desc = "The circuitboard for a cryo tube."
|
||||
build_path = "/obj/machinery/atmospherics/unary/cryo_cell"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 3)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/weapon/reagent_containers/glass/beaker/large" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/stock_parts/console_screen" = 1,
|
||||
"/obj/item/reagent_containers/glass/beaker/large" = 1)
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/bodyscanner
|
||||
/obj/item/circuitboard/bodyscanner
|
||||
name = T_BOARD("Body Scanner Machine")
|
||||
desc = "The circuitboard for a body scanner machine."
|
||||
build_path = "/obj/machinery/bodyscanner"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/capacitor" = 1,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/device/healthanalyzer" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/bodyscannerconsole
|
||||
/obj/item/circuitboard/bodyscannerconsole
|
||||
name = T_BOARD("Body Scanner Console")
|
||||
desc = "The circuitboard for a body scanner console."
|
||||
build_path = "/obj/machinery/body_scanconsole"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/stock_parts/console_screen" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/requestconsole
|
||||
/obj/item/circuitboard/requestconsole
|
||||
name = T_BOARD("Request Console")
|
||||
desc = "The circuitboard for a body scanner console."
|
||||
build_path = "/obj/machinery/requests_console"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
"/obj/item/stock_parts/capacitor" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/optable
|
||||
/obj/item/circuitboard/optable
|
||||
name = T_BOARD("Operation Table")
|
||||
desc = "The circuitboard for a operation table."
|
||||
build_path = "/obj/machinery/optable"
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/optableadv
|
||||
/obj/item/circuitboard/optableadv
|
||||
name = T_BOARD("Advanced Operation Table")
|
||||
desc = "The circuitboard for a advanced operating table."
|
||||
build_path = "/obj/machinery/optable/lifesupport"
|
||||
origin_tech = list(TECH_BIO = 4, TECH_ENGINEERING = 5)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/capacitor" = 1,
|
||||
"/obj/item/device/healthanalyzer" = 1,
|
||||
"/obj/item/weapon/stock_parts/scanning_module/adv" = 1,
|
||||
"/obj/item/stock_parts/scanning_module/adv" = 1,
|
||||
"/obj/item/clothing/mask/breath/medical" = 1,
|
||||
"/obj/item/weapon/reagent_containers/glass/beaker/large" = 2)
|
||||
"/obj/item/reagent_containers/glass/beaker/large" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/smartfridge
|
||||
/obj/item/circuitboard/smartfridge
|
||||
name = T_BOARD("Smart Fridge")
|
||||
desc = "The circuitboard for a smart fridge."
|
||||
build_path = "/obj/machinery/smartfridge"
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 3)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 3)
|
||||
"/obj/item/stock_parts/manipulator" = 3)
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/refiner
|
||||
/obj/item/circuitboard/refiner
|
||||
name = T_BOARD("ore processor")
|
||||
desc = "The circuitboard for an ore processing machine."
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "other" // change this to machine if you want it to be buildable
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||
/obj/item/weapon/stock_parts/micro_laser = 2)
|
||||
/obj/item/stock_parts/capacitor = 2,
|
||||
/obj/item/stock_parts/scanning_module = 1,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/micro_laser = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/microwave
|
||||
/obj/item/circuitboard/microwave
|
||||
name = T_BOARD("microwave")
|
||||
desc = "The circuitboard for a microwave."
|
||||
build_path = "/obj/machinery/microwave"
|
||||
@@ -116,80 +116,80 @@
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 3,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2)
|
||||
"/obj/item/stock_parts/capacitor" = 3,
|
||||
"/obj/item/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/oven
|
||||
/obj/item/circuitboard/oven
|
||||
name = T_BOARD("oven")
|
||||
desc = "The circuitboard for an oven."
|
||||
build_path = "/obj/machinery/appliance/cooker/oven"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 3,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2)
|
||||
"/obj/item/stock_parts/capacitor" = 3,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/fryer
|
||||
/obj/item/circuitboard/fryer
|
||||
name = T_BOARD("deep fryer")
|
||||
desc = "The circuitboard for a deep fryer."
|
||||
build_path = "/obj/machinery/appliance/cooker/fryer"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 3,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2)
|
||||
"/obj/item/stock_parts/capacitor" = 3,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/cerealmaker
|
||||
/obj/item/circuitboard/cerealmaker
|
||||
name = T_BOARD("cereal maker")
|
||||
desc = "The circuitboard for a cereal maker."
|
||||
build_path = "/obj/machinery/appliance/mixer/cereal"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 3,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2)
|
||||
"/obj/item/stock_parts/capacitor" = 3,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/candymachine
|
||||
/obj/item/circuitboard/candymachine
|
||||
name = T_BOARD("candy machine")
|
||||
desc = "The circuitboard for a candy machine."
|
||||
build_path = "/obj/machinery/appliance/mixer/candy"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 3,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2)
|
||||
"/obj/item/stock_parts/capacitor" = 3,
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/holopad
|
||||
/obj/item/circuitboard/holopad
|
||||
name = T_BOARD("Holopad")
|
||||
desc = "The circuitboard for a holopad."
|
||||
build_path = "/obj/machinery/hologram/holopad"
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1)
|
||||
"/obj/item/stock_parts/capacitor" = 2,
|
||||
"/obj/item/stock_parts/scanning_module" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/crystelpodconsole
|
||||
/obj/item/circuitboard/crystelpodconsole
|
||||
name = T_BOARD("Crystel Therapy Pod Console")
|
||||
desc = "The circuitboard for a crystel therapy pod console."
|
||||
build_path = "/obj/machinery/chakraconsole"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/stock_parts/capacitor" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/crystelpod
|
||||
/obj/item/circuitboard/crystelpod
|
||||
name = T_BOARD("Crystel Therapy Pod")
|
||||
desc = "The circuitboard for a crystel therapy pod."
|
||||
build_path = "/obj/machinery/chakrapod"
|
||||
origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
|
||||
board_type = "machine"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2)
|
||||
"/obj/item/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/stock_parts/capacitor" = 2)
|
||||
@@ -2,23 +2,23 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/pacman
|
||||
/obj/item/circuitboard/pacman
|
||||
name = T_BOARD("PACMAN-type generator")
|
||||
build_path = "/obj/machinery/power/port_gen/pacman"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1)
|
||||
"/obj/item/stock_parts/capacitor" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/pacman/super
|
||||
/obj/item/circuitboard/pacman/super
|
||||
name = T_BOARD("SUPERPACMAN-type generator")
|
||||
build_path = "/obj/machinery/power/port_gen/pacman/super"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_POWER = 4, TECH_ENGINEERING = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/pacman/mrs
|
||||
/obj/item/circuitboard/pacman/mrs
|
||||
name = T_BOARD("MRSPACMAN-type generator")
|
||||
build_path = "/obj/machinery/power/port_gen/pacman/mrs"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_POWER = 5, TECH_ENGINEERING = 5)
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/smes
|
||||
/obj/item/circuitboard/smes
|
||||
name = T_BOARD("superconductive magnetic energy storage")
|
||||
build_path = "/obj/machinery/power/smes/buildable"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4)
|
||||
req_components = list("/obj/item/weapon/smes_coil" = 1, "/obj/item/stack/cable_coil" = 30)
|
||||
req_components = list("/obj/item/smes_coil" = 1, "/obj/item/stack/cable_coil" = 30)
|
||||
|
||||
/obj/item/weapon/circuitboard/batteryrack
|
||||
/obj/item/circuitboard/batteryrack
|
||||
name = T_BOARD("battery rack PSU")
|
||||
build_path = "/obj/machinery/power/smes/batteryrack"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 2)
|
||||
req_components = list("/obj/item/weapon/cell" = 3)
|
||||
req_components = list("/obj/item/cell" = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/ghettosmes
|
||||
/obj/item/circuitboard/ghettosmes
|
||||
name = T_BOARD("makeshift PSU")
|
||||
desc = "An APC circuit repurposed into some power storage device controller"
|
||||
build_path = "/obj/machinery/power/smes/batteryrack/makeshift"
|
||||
board_type = "machine"
|
||||
req_components = list("/obj/item/weapon/cell" = 3)
|
||||
req_components = list("/obj/item/cell" = 3)
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/recharge_station
|
||||
/obj/item/circuitboard/recharge_station
|
||||
name = T_BOARD("cyborg recharging station")
|
||||
build_path = "/obj/machinery/recharge_station"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
"/obj/item/stack/cable_coil" = 5,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/cell" = 1)
|
||||
"/obj/item/stock_parts/capacitor" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/cell" = 1)
|
||||
@@ -2,79 +2,79 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
obj/item/weapon/circuitboard/rdserver
|
||||
obj/item/circuitboard/rdserver
|
||||
name = T_BOARD("R&D server")
|
||||
build_path = "/obj/machinery/r_n_d/server"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
req_components = list(
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/destructive_analyzer
|
||||
/obj/item/circuitboard/destructive_analyzer
|
||||
name = T_BOARD("destructive analyzer")
|
||||
build_path = "/obj/machinery/r_n_d/destructive_analyzer"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
||||
"/obj/item/stock_parts/scanning_module" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 1,
|
||||
"/obj/item/stock_parts/micro_laser" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/autolathe
|
||||
/obj/item/circuitboard/autolathe
|
||||
name = T_BOARD("autolathe")
|
||||
build_path = "/obj/machinery/autolathe"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 3,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
"/obj/item/stock_parts/matter_bin" = 3,
|
||||
"/obj/item/stock_parts/manipulator" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/protolathe
|
||||
/obj/item/circuitboard/protolathe
|
||||
name = T_BOARD("protolathe")
|
||||
build_path = "/obj/machinery/r_n_d/protolathe"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/reagent_containers/glass/beaker" = 2)
|
||||
"/obj/item/stock_parts/matter_bin" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/reagent_containers/glass/beaker" = 2)
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/circuit_imprinter
|
||||
/obj/item/circuitboard/circuit_imprinter
|
||||
name = T_BOARD("circuit imprinter")
|
||||
build_path = "/obj/machinery/r_n_d/circuit_imprinter"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/reagent_containers/glass/beaker" = 2)
|
||||
"/obj/item/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 1,
|
||||
"/obj/item/reagent_containers/glass/beaker" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/mechfab
|
||||
/obj/item/circuitboard/mechfab
|
||||
name = "Circuit board (Exosuit Fabricator)"
|
||||
build_path = "/obj/machinery/mecha_part_fabricator"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
"/obj/item/stock_parts/matter_bin" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 1,
|
||||
"/obj/item/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telesci_pad
|
||||
/obj/item/circuitboard/telesci_pad
|
||||
name = T_BOARD("telepad")
|
||||
build_path = "/obj/machinery/telepad"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_MATERIAL = 3, TECH_BLUESPACE = 4)
|
||||
req_components = list(
|
||||
"/obj/item/bluespace_crystal" = 2,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
||||
"/obj/item/stock_parts/capacitor" = 1,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
"/obj/item/stock_parts/console_screen" = 1)
|
||||
|
||||
obj/item/weapon/circuitboard/ntnet_relay
|
||||
obj/item/circuitboard/ntnet_relay
|
||||
name = "Circuit board (NTNet Quantum Relay)"
|
||||
build_path = "/obj/machinery/ntnet_relay"
|
||||
board_type = "machine"
|
||||
|
||||
@@ -2,41 +2,41 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/shield_gen_ex
|
||||
/obj/item/circuitboard/shield_gen_ex
|
||||
name = T_BOARD("hull shield generator")
|
||||
board_type = "machine"
|
||||
build_path = "/obj/machinery/shield_gen/external"
|
||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/transmitter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stock_parts/manipulator/pico" = 2,
|
||||
"/obj/item/stock_parts/subspace/transmitter" = 1,
|
||||
"/obj/item/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/stock_parts/subspace/amplifier" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stack/cable_coil" = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/shield_gen
|
||||
/obj/item/circuitboard/shield_gen
|
||||
name = T_BOARD("bubble shield generator")
|
||||
board_type = "machine"
|
||||
build_path = "/obj/machinery/shield_gen"
|
||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/transmitter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stock_parts/manipulator/pico" = 2,
|
||||
"/obj/item/stock_parts/subspace/transmitter" = 1,
|
||||
"/obj/item/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/stock_parts/subspace/amplifier" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stack/cable_coil" = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/shield_cap
|
||||
/obj/item/circuitboard/shield_cap
|
||||
name = T_BOARD("shield capacitor")
|
||||
board_type = "machine"
|
||||
build_path = "/obj/machinery/shield_capacitor"
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/treatment" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/analyzer" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stock_parts/manipulator/pico" = 2,
|
||||
"/obj/item/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/stock_parts/subspace/treatment" = 1,
|
||||
"/obj/item/stock_parts/subspace/analyzer" = 1,
|
||||
"/obj/item/stock_parts/console_screen" = 1,
|
||||
"/obj/item/stack/cable_coil" = 5)
|
||||
|
||||
@@ -2,74 +2,74 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms
|
||||
/obj/item/circuitboard/telecomms
|
||||
board_type = "machine"
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/receiver
|
||||
/obj/item/circuitboard/telecomms/receiver
|
||||
name = T_BOARD("subspace receiver")
|
||||
build_path = "/obj/machinery/telecomms/receiver"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_BLUESPACE = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/subspace/ansible" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
||||
"/obj/item/stock_parts/subspace/ansible" = 1,
|
||||
"/obj/item/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/micro_laser" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/hub
|
||||
/obj/item/circuitboard/telecomms/hub
|
||||
name = T_BOARD("hub mainframe")
|
||||
build_path = "/obj/machinery/telecomms/hub"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 2)
|
||||
"/obj/item/stock_parts/subspace/filter" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/relay
|
||||
/obj/item/circuitboard/telecomms/relay
|
||||
name = T_BOARD("relay mainframe")
|
||||
build_path = "/obj/machinery/telecomms/relay"
|
||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 4, TECH_BLUESPACE = 3)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 2)
|
||||
"/obj/item/stock_parts/subspace/filter" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/bus
|
||||
/obj/item/circuitboard/telecomms/bus
|
||||
name = T_BOARD("bus mainframe")
|
||||
build_path = "/obj/machinery/telecomms/bus"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
||||
"/obj/item/stock_parts/subspace/filter" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/processor
|
||||
/obj/item/circuitboard/telecomms/processor
|
||||
name = T_BOARD("processor unit")
|
||||
build_path = "/obj/machinery/telecomms/processor"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 3,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/treatment" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/analyzer" = 1,
|
||||
"/obj/item/stock_parts/manipulator" = 3,
|
||||
"/obj/item/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/stock_parts/subspace/treatment" = 2,
|
||||
"/obj/item/stock_parts/subspace/analyzer" = 1,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1)
|
||||
"/obj/item/stock_parts/subspace/amplifier" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/server
|
||||
/obj/item/circuitboard/telecomms/server
|
||||
name = T_BOARD("telecommunication server")
|
||||
build_path = "/obj/machinery/telecomms/server"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
||||
"/obj/item/stock_parts/subspace/filter" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/broadcaster
|
||||
/obj/item/circuitboard/telecomms/broadcaster
|
||||
name = T_BOARD("subspace broadcaster")
|
||||
build_path = "/obj/machinery/telecomms/broadcaster"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_BLUESPACE = 2)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 2,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser/high" = 2)
|
||||
"/obj/item/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/stock_parts/micro_laser/high" = 2)
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/crusher
|
||||
/obj/item/circuitboard/crusher
|
||||
name = T_BOARD("crusher")
|
||||
build_path = "/obj/machinery/crusher_base"
|
||||
board_type = "machine"
|
||||
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 1, TECH_MAGNET = 1, TECH_MATERIAL = 3)
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 4,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 3,
|
||||
"/obj/item/weapon/reagent_containers/glass/beaker" = 3)
|
||||
"/obj/item/stock_parts/matter_bin" = 4,
|
||||
"/obj/item/stock_parts/manipulator" = 3,
|
||||
"/obj/item/reagent_containers/glass/beaker" = 3)
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
#error T_BOARD macro is not defined but we need it!
|
||||
#endif
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos
|
||||
/obj/item/circuitboard/unary_atmos
|
||||
board_type = "machine"
|
||||
var/machine_dir = SOUTH
|
||||
var/init_dirs = SOUTH
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos/attackby(obj/item/I as obj, mob/user as mob)
|
||||
/obj/item/circuitboard/unary_atmos/attackby(obj/item/I as obj, mob/user as mob)
|
||||
if(I.isscrewdriver())
|
||||
machine_dir = turn(machine_dir, 90)
|
||||
init_dirs = machine_dir
|
||||
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on the [src]'s port configuration pins.</span>", "<span class='notice'>You adjust the jumper on the port configuration pins. Now set to [dir2text(machine_dir)].</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos/examine()
|
||||
/obj/item/circuitboard/unary_atmos/examine()
|
||||
..()
|
||||
to_chat(usr, "The jumper is connecting the [dir2text(machine_dir)] pins.")
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U)
|
||||
/obj/item/circuitboard/unary_atmos/construct(var/obj/machinery/atmospherics/unary/U)
|
||||
//TODO: Move this stuff into the relevant constructor when pipe/construction.dm is cleaned up.
|
||||
U.dir = src.machine_dir
|
||||
U.initialize_directions = src.init_dirs
|
||||
@@ -28,21 +28,21 @@
|
||||
U.node.atmos_init()
|
||||
U.node.build_network()
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos/heater
|
||||
/obj/item/circuitboard/unary_atmos/heater
|
||||
name = T_BOARD("gas heating system")
|
||||
build_path = "/obj/machinery/atmospherics/unary/heater"
|
||||
origin_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 1)
|
||||
req_components = list(
|
||||
"/obj/item/stack/cable_coil" = 5,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2)
|
||||
"/obj/item/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/stock_parts/capacitor" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/unary_atmos/cooler
|
||||
/obj/item/circuitboard/unary_atmos/cooler
|
||||
name = T_BOARD("gas cooling system")
|
||||
build_path = "/obj/machinery/atmospherics/unary/freezer"
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||
req_components = list(
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1)
|
||||
"/obj/item/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/stock_parts/capacitor" = 2,
|
||||
"/obj/item/stock_parts/manipulator" = 1)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#endif
|
||||
#define T_BOARD_MECHA(name) "exosuit module circuit board (" + (name) + ")"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha
|
||||
/obj/item/circuitboard/mecha
|
||||
name = "exosuit circuit board"
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "std_mod"
|
||||
@@ -11,103 +11,103 @@
|
||||
board_type = "other"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/ripley
|
||||
/obj/item/circuitboard/mecha/ripley
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/ripley/peripherals
|
||||
/obj/item/circuitboard/mecha/ripley/peripherals
|
||||
name = T_BOARD_MECHA("Ripley peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/ripley/main
|
||||
/obj/item/circuitboard/mecha/ripley/main
|
||||
name = T_BOARD_MECHA("Ripley central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/gygax
|
||||
/obj/item/circuitboard/mecha/gygax
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/gygax/peripherals
|
||||
/obj/item/circuitboard/mecha/gygax/peripherals
|
||||
name = T_BOARD_MECHA("Gygax peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/gygax/targeting
|
||||
/obj/item/circuitboard/mecha/gygax/targeting
|
||||
name = T_BOARD_MECHA("Gygax weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/gygax/main
|
||||
/obj/item/circuitboard/mecha/gygax/main
|
||||
name = T_BOARD_MECHA("Gygax central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/durand
|
||||
/obj/item/circuitboard/mecha/durand
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/durand/peripherals
|
||||
/obj/item/circuitboard/mecha/durand/peripherals
|
||||
name = T_BOARD_MECHA("Durand peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/durand/targeting
|
||||
/obj/item/circuitboard/mecha/durand/targeting
|
||||
name = T_BOARD_MECHA("Durand weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 4, TECH_COMBAT = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/durand/main
|
||||
/obj/item/circuitboard/mecha/durand/main
|
||||
name = T_BOARD_MECHA("Durand central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/honker
|
||||
/obj/item/circuitboard/mecha/honker
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/honker/peripherals
|
||||
/obj/item/circuitboard/mecha/honker/peripherals
|
||||
name = T_BOARD_MECHA("H.O.N.K peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/honker/targeting
|
||||
/obj/item/circuitboard/mecha/honker/targeting
|
||||
name = T_BOARD_MECHA("H.O.N.K weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/honker/main
|
||||
/obj/item/circuitboard/mecha/honker/main
|
||||
name = T_BOARD_MECHA("H.O.N.K central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/odysseus
|
||||
/obj/item/circuitboard/mecha/odysseus
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/odysseus/peripherals
|
||||
/obj/item/circuitboard/mecha/odysseus/peripherals
|
||||
name = T_BOARD_MECHA("Odysseus peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/odysseus/main
|
||||
/obj/item/circuitboard/mecha/odysseus/main
|
||||
name = T_BOARD_MECHA("Odysseus central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/hermes
|
||||
/obj/item/circuitboard/mecha/hermes
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/hermes/peripherals
|
||||
/obj/item/circuitboard/mecha/hermes/peripherals
|
||||
name = T_BOARD_MECHA("Hermes peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/hermes/main
|
||||
/obj/item/circuitboard/mecha/hermes/main
|
||||
name = T_BOARD_MECHA("Hermes central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon
|
||||
/obj/item/circuitboard/mecha/phazon
|
||||
origin_tech = list(TECH_DATA = 5, TECH_BLUESPACE = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon/peripherals
|
||||
/obj/item/circuitboard/mecha/phazon/peripherals
|
||||
name = T_BOARD_MECHA("Phazon peripherals control")
|
||||
icon_state = "mcontroller"
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon/targeting
|
||||
/obj/item/circuitboard/mecha/phazon/targeting
|
||||
name = T_BOARD_MECHA("Phazon weapon control and targeting")
|
||||
icon_state = "mcontroller"
|
||||
origin_tech = list(TECH_DATA = 5, TECH_COMBAT = 6, TECH_BLUESPACE = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/mecha/phazon/main
|
||||
/obj/item/circuitboard/mecha/phazon/main
|
||||
name = T_BOARD_MECHA("Phazon central control")
|
||||
icon_state = "mainboard"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/circuitboard/rig_assembly
|
||||
/obj/item/circuitboard/rig_assembly
|
||||
name = "rig circuit board"
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "std_mod"
|
||||
@@ -9,46 +9,46 @@
|
||||
////CIVILIAN BOARDS////
|
||||
///////////////////////
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/civilian
|
||||
/obj/item/circuitboard/rig_assembly/civilian
|
||||
origin_tech = list(TECH_DATA = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/civilian/industrial
|
||||
/obj/item/circuitboard/rig_assembly/civilian/industrial
|
||||
name = "industrial suit central circuit board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/civilian/eva
|
||||
/obj/item/circuitboard/rig_assembly/civilian/eva
|
||||
name = "EVA suit central circuit board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/civilian/ce
|
||||
/obj/item/circuitboard/rig_assembly/civilian/ce
|
||||
name = "advanced void suit central circuit board"
|
||||
origin_tech = list(TECH_DATA = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/civilian/hazmat
|
||||
/obj/item/circuitboard/rig_assembly/civilian/hazmat
|
||||
name = "AMI suit central circuit board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/civilian/medical
|
||||
/obj/item/circuitboard/rig_assembly/civilian/medical
|
||||
name = "rescue suit central circuit board"
|
||||
|
||||
/////////////////////
|
||||
////COMBAT BOARDS////
|
||||
/////////////////////
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/combat
|
||||
/obj/item/circuitboard/rig_assembly/combat
|
||||
origin_tech = list(TECH_DATA = 5)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/combat/targeting
|
||||
/obj/item/circuitboard/rig_assembly/combat/targeting
|
||||
origin_tech = list(TECH_DATA = 5, TECH_COMBAT = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/combat/hazard
|
||||
/obj/item/circuitboard/rig_assembly/combat/hazard
|
||||
name = "hazard rig central circuit board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/combat/targeting/hazard
|
||||
/obj/item/circuitboard/rig_assembly/combat/targeting/hazard
|
||||
name = "hazard rig control and targeting board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/combat/combat
|
||||
/obj/item/circuitboard/rig_assembly/combat/combat
|
||||
name = "combat rig central circuit board"
|
||||
origin_tech = list(TECH_DATA = 7)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/combat/targeting/combat
|
||||
/obj/item/circuitboard/rig_assembly/combat/targeting/combat
|
||||
name = "combat rig control and targeting board"
|
||||
origin_tech = list(TECH_DATA = 7, TECH_COMBAT = 6)
|
||||
|
||||
@@ -56,23 +56,23 @@
|
||||
////ILLEGAL BOARDS////
|
||||
//////////////////////
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/illegal
|
||||
/obj/item/circuitboard/rig_assembly/illegal
|
||||
origin_tech = list(TECH_DATA = 7, TECH_ILLEGAL = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/illegal/targeting
|
||||
/obj/item/circuitboard/rig_assembly/illegal/targeting
|
||||
origin_tech = list(TECH_DATA = 7, TECH_COMBAT = 4, TECH_ILLEGAL = 4)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/illegal/hacker
|
||||
/obj/item/circuitboard/rig_assembly/illegal/hacker
|
||||
name = "cybersuit rig central circuit board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/illegal/targeting/hacker
|
||||
/obj/item/circuitboard/rig_assembly/illegal/targeting/hacker
|
||||
name = "cybersuit rig control and targeting board"
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/illegal/stealth
|
||||
/obj/item/circuitboard/rig_assembly/illegal/stealth
|
||||
name = "stealth rig central circuit board"
|
||||
origin_tech = list(TECH_DATA = 7, TECH_ILLEGAL = 6)
|
||||
|
||||
/obj/item/weapon/circuitboard/rig_assembly/illegal/targeting/stealth
|
||||
/obj/item/circuitboard/rig_assembly/illegal/targeting/stealth
|
||||
name = "stealth rig control and targeting board"
|
||||
origin_tech = list(TECH_DATA = 7, TECH_COMBAT = 6, TECH_ILLEGAL = 6)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/cloaking_device
|
||||
/obj/item/cloaking_device
|
||||
name = "cloaking device"
|
||||
desc = "Use this to become invisible to the human eye. Contains a removable power cell behind a screwed compartment"
|
||||
description_info = "The default power cell will last for five minutes of continuous usage. It can be removed and recharged or replaced with a better one using a screwdriver.\
|
||||
@@ -20,28 +20,28 @@
|
||||
var/power_usage = 35000//A high powered cell allows 5 minutes of continuous usage
|
||||
//Note it can be toggled on and off easily. You can make it last an hour if you only use it when
|
||||
//people are nearby to see. Carry spare/better cells for extended cloaking.
|
||||
var/obj/item/weapon/cell/cell = null
|
||||
var/obj/item/cell/cell = null
|
||||
var/mob/living/owner = null
|
||||
var/datum/modifier/cloaking_device/modifier = null
|
||||
|
||||
/obj/item/weapon/cloaking_device/New()
|
||||
/obj/item/cloaking_device/New()
|
||||
..()
|
||||
cloaking_devices += src
|
||||
cell = new /obj/item/weapon/cell/high(src)
|
||||
cell = new /obj/item/cell/high(src)
|
||||
|
||||
/obj/item/weapon/cloaking_device/Destroy()
|
||||
/obj/item/cloaking_device/Destroy()
|
||||
. = ..()
|
||||
cloaking_devices -= src
|
||||
|
||||
|
||||
/obj/item/weapon/cloaking_device/equipped(var/mob/user, var/slot)
|
||||
/obj/item/cloaking_device/equipped(var/mob/user, var/slot)
|
||||
..()
|
||||
//Picked up or switched hands or worn
|
||||
register_owner(user)
|
||||
|
||||
|
||||
//Handles dropped or thrown cloakers
|
||||
/obj/item/weapon/cloaking_device/dropped(var/mob/user)
|
||||
/obj/item/cloaking_device/dropped(var/mob/user)
|
||||
..()
|
||||
var/mob/M = get_holding_mob()
|
||||
if(!M)
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
//If M contains the owner then the item hasn't actually been dropped, its just the quirk mentioned above
|
||||
|
||||
/obj/item/weapon/cloaking_device/attack_self(mob/user as mob)
|
||||
/obj/item/cloaking_device/attack_self(mob/user as mob)
|
||||
if (istype(loc, /mob) && loc == user)//safety check incase of shenanigans
|
||||
register_owner(user)
|
||||
if (active)
|
||||
@@ -62,7 +62,7 @@
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/cloaking_device/proc/activate()
|
||||
/obj/item/cloaking_device/proc/activate()
|
||||
if (active)
|
||||
return
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
to_chat(owner, "<span class='notice'>\The [src] is now active.</span>")
|
||||
start_modifier()
|
||||
|
||||
/obj/item/weapon/cloaking_device/proc/deactivate()
|
||||
/obj/item/cloaking_device/proc/deactivate()
|
||||
if (!active)
|
||||
return
|
||||
active = 0
|
||||
@@ -93,14 +93,14 @@
|
||||
stop_modifier()
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/weapon/cloaking_device/emp_act(severity)
|
||||
/obj/item/cloaking_device/emp_act(severity)
|
||||
deactivate()
|
||||
if (cell)
|
||||
cell.emp_act(severity)
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/cloaking_device/proc/register_owner(var/mob/user)
|
||||
/obj/item/cloaking_device/proc/register_owner(var/mob/user)
|
||||
if (!owner || owner != user)
|
||||
stop_modifier()
|
||||
owner = user
|
||||
@@ -109,21 +109,21 @@
|
||||
start_modifier()
|
||||
|
||||
|
||||
/obj/item/weapon/cloaking_device/proc/start_modifier()
|
||||
/obj/item/cloaking_device/proc/start_modifier()
|
||||
if (!owner)
|
||||
owner = get_holding_mob()
|
||||
|
||||
if (owner)
|
||||
modifier = owner.add_modifier(/datum/modifier/cloaking_device, MODIFIER_ITEM, src, override = MODIFIER_OVERRIDE_NEIGHBOR, _check_interval = 30)
|
||||
|
||||
/obj/item/weapon/cloaking_device/proc/stop_modifier()
|
||||
/obj/item/cloaking_device/proc/stop_modifier()
|
||||
if (modifier)
|
||||
modifier.stop(1)
|
||||
modifier = null
|
||||
|
||||
|
||||
/obj/item/weapon/cloaking_device/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/cell))
|
||||
/obj/item/cloaking_device/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/cell))
|
||||
if(!cell)
|
||||
user.drop_from_inventory(W,src)
|
||||
cell = W
|
||||
@@ -143,14 +143,14 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/cloaking_device/examine(mob/user)
|
||||
/obj/item/cloaking_device/examine(mob/user)
|
||||
..()
|
||||
if (!cell)
|
||||
to_chat(user, "It needs a power cell to function.")
|
||||
else
|
||||
to_chat(user, "It has [cell.percent()]% power remaining")
|
||||
|
||||
/obj/item/weapon/cloaking_device/process()
|
||||
/obj/item/cloaking_device/process()
|
||||
if (!cell || !cell.checked_use(power_usage*CELLRATE))
|
||||
deactivate()
|
||||
return
|
||||
@@ -173,7 +173,7 @@
|
||||
..()
|
||||
for (var/a in cloaking_devices)//Check for any other cloaks
|
||||
if (a != source)
|
||||
var/obj/item/weapon/cloaking_device/CD = a
|
||||
var/obj/item/cloaking_device/CD = a
|
||||
if (CD.get_holding_mob() == target)
|
||||
if (CD.active)//If target is holding another active cloak then we wont remove their stealth
|
||||
return
|
||||
@@ -186,6 +186,6 @@
|
||||
/datum/modifier/cloaking_device/check_validity()
|
||||
.=..()
|
||||
if (. == 1)
|
||||
var/obj/item/weapon/cloaking_device/C = source
|
||||
var/obj/item/cloaking_device/C = source
|
||||
if (!C.active)
|
||||
return validity_fail("Cloak is inactive!")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/lipstick
|
||||
/obj/item/lipstick
|
||||
gender = PLURAL
|
||||
name = "red lipstick"
|
||||
desc = "A generic brand of lipstick."
|
||||
@@ -10,31 +10,31 @@
|
||||
var/open = 0
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
|
||||
/obj/item/weapon/lipstick/purple
|
||||
/obj/item/lipstick/purple
|
||||
name = "purple lipstick"
|
||||
colour = "purple"
|
||||
|
||||
/obj/item/weapon/lipstick/jade
|
||||
/obj/item/lipstick/jade
|
||||
name = "jade lipstick"
|
||||
colour = "jade"
|
||||
|
||||
/obj/item/weapon/lipstick/black
|
||||
/obj/item/lipstick/black
|
||||
name = "black lipstick"
|
||||
colour = "black"
|
||||
|
||||
/obj/item/weapon/lipstick/pink
|
||||
/obj/item/lipstick/pink
|
||||
name = "pink lipstick"
|
||||
colour = "pink"
|
||||
|
||||
/obj/item/weapon/lipstick/random
|
||||
/obj/item/lipstick/random
|
||||
name = "lipstick"
|
||||
|
||||
/obj/item/weapon/lipstick/random/New()
|
||||
/obj/item/lipstick/random/New()
|
||||
colour = pick("red","purple","jade","pink","black")
|
||||
name = "[colour] lipstick"
|
||||
|
||||
|
||||
/obj/item/weapon/lipstick/attack_self(mob/user as mob)
|
||||
/obj/item/lipstick/attack_self(mob/user as mob)
|
||||
to_chat(user, "<span class='notice'>You twist \the [src] [open ? "closed" : "open"].</span>")
|
||||
open = !open
|
||||
if(open)
|
||||
@@ -42,7 +42,7 @@
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/weapon/lipstick/attack(mob/M as mob, mob/user as mob)
|
||||
/obj/item/lipstick/attack(mob/M as mob, mob/user as mob)
|
||||
if(!open) return
|
||||
|
||||
if(!istype(M, /mob)) return
|
||||
@@ -71,7 +71,7 @@
|
||||
//you can wipe off lipstick with paper! see code/modules/paperwork/paper.dm, paper/attack()
|
||||
|
||||
|
||||
/obj/item/weapon/haircomb //sparklysheep's comb
|
||||
/obj/item/haircomb //sparklysheep's comb
|
||||
name = "plastic comb"
|
||||
desc = "A pristine comb made from flexible plastic."
|
||||
w_class = 1.0
|
||||
@@ -80,21 +80,21 @@
|
||||
icon_state = "comb"
|
||||
item_state = "comb"
|
||||
|
||||
/obj/item/weapon/haircomb/random/Initialize()
|
||||
/obj/item/haircomb/random/Initialize()
|
||||
. = ..()
|
||||
color = get_random_colour(lower = 150)
|
||||
|
||||
/obj/item/weapon/haircomb/attack_self(mob/user)
|
||||
/obj/item/haircomb/attack_self(mob/user)
|
||||
user.visible_message("<span class='notice'>[user] uses [src] to comb their hair with incredible style and sophistication. What a [user.gender == FEMALE ? "lady" : "guy"].</span>")
|
||||
|
||||
/obj/item/weapon/razor
|
||||
/obj/item/razor
|
||||
name = "electric razor"
|
||||
desc = "The latest and greatest power razor born from the science of shaving."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "razor"
|
||||
w_class = 2
|
||||
|
||||
/obj/item/weapon/razor/proc/shave(mob/living/carbon/human/H, location)
|
||||
/obj/item/razor/proc/shave(mob/living/carbon/human/H, location)
|
||||
if(location == "head")
|
||||
H.h_style = H.species.default_h_style
|
||||
else
|
||||
@@ -104,7 +104,7 @@
|
||||
playsound(H, 'sound/items/welder2.ogg', 20, 1)
|
||||
|
||||
|
||||
/obj/item/weapon/razor/attack(mob/M, mob/user, var/target_zone)
|
||||
/obj/item/razor/attack(mob/M, mob/user, var/target_zone)
|
||||
if(!ishuman(M))
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/dice
|
||||
/obj/item/dice
|
||||
name = "d6"
|
||||
desc = "A dice with six sides."
|
||||
icon = 'icons/obj/dice.dmi'
|
||||
@@ -11,10 +11,10 @@
|
||||
var/weighted_value = 70 //what is the chance of falling on the favored number
|
||||
attack_verb = list("diced")
|
||||
|
||||
/obj/item/weapon/dice/New()
|
||||
/obj/item/dice/New()
|
||||
icon_state = "[name][rand(1,sides)]"
|
||||
|
||||
/obj/item/weapon/dice/throw_impact(atom/hit_atom)
|
||||
/obj/item/dice/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
var/result
|
||||
if((weighted) && (prob(weighted_value)))
|
||||
@@ -30,37 +30,37 @@
|
||||
icon_state = "[name][result]"
|
||||
src.visible_message("<span class='notice'>\The [name] lands on [result * side_mult]. [comment]</span>")
|
||||
|
||||
/obj/item/weapon/dice/d4
|
||||
/obj/item/dice/d4
|
||||
name = "d4"
|
||||
desc = "A dice with four sides."
|
||||
icon_state = "d44"
|
||||
sides = 4
|
||||
|
||||
/obj/item/weapon/dice/d8
|
||||
/obj/item/dice/d8
|
||||
name = "d8"
|
||||
desc = "A dice with eight sides."
|
||||
icon_state = "d88"
|
||||
sides = 8
|
||||
|
||||
/obj/item/weapon/dice/d10
|
||||
/obj/item/dice/d10
|
||||
name = "d10"
|
||||
desc = "A dice with ten sides."
|
||||
icon_state = "d1010"
|
||||
sides = 10
|
||||
|
||||
/obj/item/weapon/dice/d12
|
||||
/obj/item/dice/d12
|
||||
name = "d12"
|
||||
desc = "A dice with twelve sides."
|
||||
icon_state = "d1212"
|
||||
sides = 12
|
||||
|
||||
/obj/item/weapon/dice/d20
|
||||
/obj/item/dice/d20
|
||||
name = "d20"
|
||||
desc = "A dice with twenty sides."
|
||||
icon_state = "d2020"
|
||||
sides = 20
|
||||
|
||||
/obj/item/weapon/dice/d100
|
||||
/obj/item/dice/d100
|
||||
name = "d100"
|
||||
desc = "A dice with ten sides. This one is for the tens digit."
|
||||
icon_state = "d10010"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/dnainjector
|
||||
/obj/item/dnainjector
|
||||
name = "\improper DNA injector"
|
||||
desc = "This injects the person with DNA."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
@@ -19,7 +19,7 @@
|
||||
var/datatype=0
|
||||
var/value=0
|
||||
|
||||
/obj/item/weapon/dnainjector/New()
|
||||
/obj/item/dnainjector/New()
|
||||
if(datatype && block)
|
||||
buf=new
|
||||
buf.dna=new
|
||||
@@ -29,41 +29,41 @@
|
||||
SetValue(src.value)
|
||||
//testing("[name]: DNA2 SE blocks after SetValue: [english_list(buf.dna.SE)]")
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/GetRealBlock(var/selblock)
|
||||
/obj/item/dnainjector/proc/GetRealBlock(var/selblock)
|
||||
if(selblock==0)
|
||||
return block
|
||||
else
|
||||
return selblock
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/GetState(var/selblock=0)
|
||||
/obj/item/dnainjector/proc/GetState(var/selblock=0)
|
||||
var/real_block=GetRealBlock(selblock)
|
||||
if(buf.types&DNA2_BUF_SE)
|
||||
return buf.dna.GetSEState(real_block)
|
||||
else
|
||||
return buf.dna.GetUIState(real_block)
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/SetState(var/on, var/selblock=0)
|
||||
/obj/item/dnainjector/proc/SetState(var/on, var/selblock=0)
|
||||
var/real_block=GetRealBlock(selblock)
|
||||
if(buf.types&DNA2_BUF_SE)
|
||||
return buf.dna.SetSEState(real_block,on)
|
||||
else
|
||||
return buf.dna.SetUIState(real_block,on)
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/GetValue(var/selblock=0)
|
||||
/obj/item/dnainjector/proc/GetValue(var/selblock=0)
|
||||
var/real_block=GetRealBlock(selblock)
|
||||
if(buf.types&DNA2_BUF_SE)
|
||||
return buf.dna.GetSEValue(real_block)
|
||||
else
|
||||
return buf.dna.GetUIValue(real_block)
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/SetValue(var/val,var/selblock=0)
|
||||
/obj/item/dnainjector/proc/SetValue(var/val,var/selblock=0)
|
||||
var/real_block=GetRealBlock(selblock)
|
||||
if(buf.types&DNA2_BUF_SE)
|
||||
return buf.dna.SetSEValue(real_block,val)
|
||||
else
|
||||
return buf.dna.SetUIValue(real_block,val)
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob, mob/user as mob)
|
||||
/obj/item/dnainjector/proc/inject(mob/M as mob, mob/user as mob)
|
||||
if(istype(M,/mob/living))
|
||||
var/mob/living/L = M
|
||||
L.apply_effect(rand(5,20), IRRADIATE, blocked = 0)
|
||||
@@ -97,7 +97,7 @@
|
||||
qdel(src)
|
||||
return uses
|
||||
|
||||
/obj/item/weapon/dnainjector/attack(mob/M as mob, mob/user as mob)
|
||||
/obj/item/dnainjector/attack(mob/M as mob, mob/user as mob)
|
||||
if (!istype(M, /mob))
|
||||
return
|
||||
if (!usr.IsAdvancedToolUser())
|
||||
@@ -141,7 +141,7 @@
|
||||
inject(M, user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/dnainjector/hulkmut
|
||||
/obj/item/dnainjector/hulkmut
|
||||
name = "\improper DNA injector (Hulk)"
|
||||
desc = "This will make you big and strong, but give you a bad skin condition."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -151,7 +151,7 @@
|
||||
block = HULKBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antihulk
|
||||
/obj/item/dnainjector/antihulk
|
||||
name = "\improper DNA injector (Anti-Hulk)"
|
||||
desc = "Cures green skin."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -161,7 +161,7 @@
|
||||
block = HULKBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/xraymut
|
||||
/obj/item/dnainjector/xraymut
|
||||
name = "\improper DNA injector (Xray)"
|
||||
desc = "Finally you can see what the Captain does."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -171,7 +171,7 @@
|
||||
block = XRAYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antixray
|
||||
/obj/item/dnainjector/antixray
|
||||
name = "\improper DNA injector (Anti-Xray)"
|
||||
desc = "It will make you see harder."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -181,7 +181,7 @@
|
||||
block = XRAYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/firemut
|
||||
/obj/item/dnainjector/firemut
|
||||
name = "\improper DNA injector (Fire)"
|
||||
desc = "Gives you fire."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -191,7 +191,7 @@
|
||||
block = FIREBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antifire
|
||||
/obj/item/dnainjector/antifire
|
||||
name = "\improper DNA injector (Anti-Fire)"
|
||||
desc = "Cures fire."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -201,7 +201,7 @@
|
||||
block = FIREBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/telemut
|
||||
/obj/item/dnainjector/telemut
|
||||
name = "\improper DNA injector (Tele.)"
|
||||
desc = "Super brain man!"
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -211,7 +211,7 @@
|
||||
block = TELEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antitele
|
||||
/obj/item/dnainjector/antitele
|
||||
name = "\improper DNA injector (Anti-Tele.)"
|
||||
desc = "Will make you not able to control your mind."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -221,7 +221,7 @@
|
||||
block = TELEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/nobreath
|
||||
/obj/item/dnainjector/nobreath
|
||||
name = "\improper DNA injector (No Breath)"
|
||||
desc = "Hold your breath and count to infinity."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -231,7 +231,7 @@
|
||||
block = NOBREATHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antinobreath
|
||||
/obj/item/dnainjector/antinobreath
|
||||
name = "\improper DNA injector (Anti-No Breath)"
|
||||
desc = "Hold your breath and count to 100."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -241,7 +241,7 @@
|
||||
block = NOBREATHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/remoteview
|
||||
/obj/item/dnainjector/remoteview
|
||||
name = "\improper DNA injector (Remote View)"
|
||||
desc = "Stare into the distance for a reason."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -251,7 +251,7 @@
|
||||
block = REMOTEVIEWBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antiremoteview
|
||||
/obj/item/dnainjector/antiremoteview
|
||||
name = "\improper DNA injector (Anti-Remote View)"
|
||||
desc = "Cures green skin."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -261,7 +261,7 @@
|
||||
block = REMOTEVIEWBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/regenerate
|
||||
/obj/item/dnainjector/regenerate
|
||||
name = "\improper DNA injector (Regeneration)"
|
||||
desc = "Healthy but hungry."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -271,7 +271,7 @@
|
||||
block = REGENERATEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antiregenerate
|
||||
/obj/item/dnainjector/antiregenerate
|
||||
name = "\improper DNA injector (Anti-Regeneration)"
|
||||
desc = "Sickly but sated."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -281,7 +281,7 @@
|
||||
block = REGENERATEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/runfast
|
||||
/obj/item/dnainjector/runfast
|
||||
name = "\improper DNA injector (Increase Run)"
|
||||
desc = "Running Man."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -291,7 +291,7 @@
|
||||
block = INCREASERUNBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antirunfast
|
||||
/obj/item/dnainjector/antirunfast
|
||||
name = "\improper DNA injector (Anti-Increase Run)"
|
||||
desc = "Walking Man."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -301,7 +301,7 @@
|
||||
block = INCREASERUNBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/morph
|
||||
/obj/item/dnainjector/morph
|
||||
name = "\improper DNA injector (Morph)"
|
||||
desc = "A total makeover."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -311,7 +311,7 @@
|
||||
block = MORPHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antimorph
|
||||
/obj/item/dnainjector/antimorph
|
||||
name = "\improper DNA injector (Anti-Morph)"
|
||||
desc = "Cures identity crisis."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -322,7 +322,7 @@
|
||||
..()
|
||||
|
||||
/* No COLDBLOCK on bay
|
||||
/obj/item/weapon/dnainjector/cold
|
||||
/obj/item/dnainjector/cold
|
||||
name = "\improper DNA injector (Cold)"
|
||||
desc = "Feels a bit chilly."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -332,7 +332,7 @@
|
||||
block = COLDBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/anticold
|
||||
/obj/item/dnainjector/anticold
|
||||
name = "\improper DNA injector (Anti-Cold)"
|
||||
desc = "Feels room-temperature."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -343,7 +343,7 @@
|
||||
..()
|
||||
*/
|
||||
|
||||
/obj/item/weapon/dnainjector/noprints
|
||||
/obj/item/dnainjector/noprints
|
||||
name = "\improper DNA injector (No Prints)"
|
||||
desc = "Better than a pair of budget insulated gloves."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -353,7 +353,7 @@
|
||||
block = NOPRINTSBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antinoprints
|
||||
/obj/item/dnainjector/antinoprints
|
||||
name = "\improper DNA injector (Anti-No Prints)"
|
||||
desc = "Not quite as good as a pair of budget insulated gloves."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -363,7 +363,7 @@
|
||||
block = NOPRINTSBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/insulation
|
||||
/obj/item/dnainjector/insulation
|
||||
name = "\improper DNA injector (Shock Immunity)"
|
||||
desc = "Better than a pair of real insulated gloves."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -373,7 +373,7 @@
|
||||
block = SHOCKIMMUNITYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antiinsulation
|
||||
/obj/item/dnainjector/antiinsulation
|
||||
name = "\improper DNA injector (Anti-Shock Immunity)"
|
||||
desc = "Not quite as good as a pair of real insulated gloves."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -383,7 +383,7 @@
|
||||
block = SHOCKIMMUNITYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/midgit
|
||||
/obj/item/dnainjector/midgit
|
||||
name = "\improper DNA injector (Small Size)"
|
||||
desc = "Makes you shrink."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -393,7 +393,7 @@
|
||||
block = SMALLSIZEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antimidgit
|
||||
/obj/item/dnainjector/antimidgit
|
||||
name = "\improper DNA injector (Anti-Small Size)"
|
||||
desc = "Makes you grow. But not too much."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -404,7 +404,7 @@
|
||||
..()
|
||||
|
||||
/////////////////////////////////////
|
||||
/obj/item/weapon/dnainjector/antiglasses
|
||||
/obj/item/dnainjector/antiglasses
|
||||
name = "\improper DNA injector (Anti-Glasses)"
|
||||
desc = "Toss away those glasses!"
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -414,7 +414,7 @@
|
||||
block = GLASSESBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/glassesmut
|
||||
/obj/item/dnainjector/glassesmut
|
||||
name = "\improper DNA injector (Glasses)"
|
||||
desc = "Will make you need dorkish glasses."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -424,7 +424,7 @@
|
||||
block = GLASSESBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/epimut
|
||||
/obj/item/dnainjector/epimut
|
||||
name = "\improper DNA injector (Epi.)"
|
||||
desc = "Shake shake shake the room!"
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -434,7 +434,7 @@
|
||||
block = HEADACHEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antiepi
|
||||
/obj/item/dnainjector/antiepi
|
||||
name = "\improper DNA injector (Anti-Epi.)"
|
||||
desc = "Will fix you up from shaking the room."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -444,7 +444,7 @@
|
||||
block = HEADACHEBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/anticough
|
||||
/obj/item/dnainjector/anticough
|
||||
name = "\improper DNA injector (Anti-Cough)"
|
||||
desc = "Will stop that awful noise."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -454,7 +454,7 @@
|
||||
block = COUGHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/coughmut
|
||||
/obj/item/dnainjector/coughmut
|
||||
name = "\improper DNA injector (Cough)"
|
||||
desc = "Will bring forth a sound of horror from your throat."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -464,7 +464,7 @@
|
||||
block = COUGHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/clumsymut
|
||||
/obj/item/dnainjector/clumsymut
|
||||
name = "\improper DNA injector (Clumsy)"
|
||||
desc = "Makes clumsy minions."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -474,7 +474,7 @@
|
||||
block = CLUMSYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/anticlumsy
|
||||
/obj/item/dnainjector/anticlumsy
|
||||
name = "\improper DNA injector (Anti-Clumy)"
|
||||
desc = "Cleans up confusion."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -484,7 +484,7 @@
|
||||
block = CLUMSYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antitour
|
||||
/obj/item/dnainjector/antitour
|
||||
name = "\improper DNA injector (Anti-Tour.)"
|
||||
desc = "Will cure tourrets."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -494,7 +494,7 @@
|
||||
block = TWITCHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/tourmut
|
||||
/obj/item/dnainjector/tourmut
|
||||
name = "\improper DNA injector (Tour.)"
|
||||
desc = "Gives you a nasty case off tourrets."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -504,7 +504,7 @@
|
||||
block = TWITCHBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/stuttmut
|
||||
/obj/item/dnainjector/stuttmut
|
||||
name = "\improper DNA injector (Stutt.)"
|
||||
desc = "Makes you s-s-stuttterrr"
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -514,7 +514,7 @@
|
||||
block = STUTTERBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antistutt
|
||||
/obj/item/dnainjector/antistutt
|
||||
name = "\improper DNA injector (Anti-Stutt.)"
|
||||
desc = "Fixes that speaking impairment."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -524,7 +524,7 @@
|
||||
block = STUTTERBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/blindmut
|
||||
/obj/item/dnainjector/blindmut
|
||||
name = "\improper DNA injector (Blind)"
|
||||
desc = "Makes you not see anything."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -534,7 +534,7 @@
|
||||
block = BLINDBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antiblind
|
||||
/obj/item/dnainjector/antiblind
|
||||
name = "\improper DNA injector (Anti-Blind)"
|
||||
desc = "ITS A MIRACLE!!!"
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -544,7 +544,7 @@
|
||||
block = BLINDBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/deafmut
|
||||
/obj/item/dnainjector/deafmut
|
||||
name = "\improper DNA injector (Deaf)"
|
||||
desc = "Sorry, what did you say?"
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -554,7 +554,7 @@
|
||||
block = DEAFBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antideaf
|
||||
/obj/item/dnainjector/antideaf
|
||||
name = "\improper DNA injector (Anti-Deaf)"
|
||||
desc = "Will make you hear once more."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -564,7 +564,7 @@
|
||||
block = DEAFBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/hallucination
|
||||
/obj/item/dnainjector/hallucination
|
||||
name = "\improper DNA injector (Halluctination)"
|
||||
desc = "What you see isn't always what you get."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -574,7 +574,7 @@
|
||||
block = HALLUCINATIONBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/antihallucination
|
||||
/obj/item/dnainjector/antihallucination
|
||||
name = "\improper DNA injector (Anti-Hallucination)"
|
||||
desc = "What you see is what you get."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -584,7 +584,7 @@
|
||||
block = HALLUCINATIONBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/h2m
|
||||
/obj/item/dnainjector/h2m
|
||||
name = "\improper DNA injector (Human > Monkey)"
|
||||
desc = "Will make you a flea bag."
|
||||
datatype = DNA2_BUF_SE
|
||||
@@ -594,7 +594,7 @@
|
||||
block = MONKEYBLOCK
|
||||
..()
|
||||
|
||||
/obj/item/weapon/dnainjector/m2h
|
||||
/obj/item/dnainjector/m2h
|
||||
name = "\improper DNA injector (Monkey > Human)"
|
||||
desc = "Will make you...less hairy."
|
||||
datatype = DNA2_BUF_SE
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/plastique
|
||||
/obj/item/plastique
|
||||
name = "plastic explosives"
|
||||
desc = "Used to put holes in specific areas without too much extra hole."
|
||||
gender = PLURAL
|
||||
@@ -14,17 +14,17 @@
|
||||
var/open_panel = 0
|
||||
var/image_overlay = null
|
||||
|
||||
/obj/item/weapon/plastique/Initialize()
|
||||
/obj/item/plastique/Initialize()
|
||||
. = ..()
|
||||
wires = new(src)
|
||||
image_overlay = image('icons/obj/assemblies.dmi', "plastic-explosive2")
|
||||
|
||||
/obj/item/weapon/plastique/Destroy()
|
||||
/obj/item/plastique/Destroy()
|
||||
qdel(wires)
|
||||
wires = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/plastique/attackby(var/obj/item/I, var/mob/user)
|
||||
/obj/item/plastique/attackby(var/obj/item/I, var/mob/user)
|
||||
if(I.isscrewdriver())
|
||||
open_panel = !open_panel
|
||||
to_chat(user, "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>")
|
||||
@@ -33,17 +33,17 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/plastique/attack_self(mob/user as mob)
|
||||
/obj/item/plastique/attack_self(mob/user as mob)
|
||||
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num
|
||||
if(user.get_active_hand() == src)
|
||||
newtime = Clamp(newtime, 10, 60000)
|
||||
timer = newtime
|
||||
to_chat(user, "Timer set for [timer] seconds.")
|
||||
|
||||
/obj/item/weapon/plastique/afterattack(atom/movable/target, mob/user, flag)
|
||||
/obj/item/plastique/afterattack(atom/movable/target, mob/user, flag)
|
||||
if (!flag)
|
||||
return
|
||||
if (ismob(target) || istype(target, /turf/unsimulated) || isopenturf(target) || istype(target, /obj/item/weapon/storage/) || istype(target, /obj/item/clothing/accessory/storage/) || istype(target, /obj/item/clothing/under))
|
||||
if (ismob(target) || istype(target, /turf/unsimulated) || isopenturf(target) || istype(target, /obj/item/storage/) || istype(target, /obj/item/clothing/accessory/storage/) || istype(target, /obj/item/clothing/under))
|
||||
return
|
||||
to_chat(user, "Planting explosives...")
|
||||
user.do_attack_animation(target)
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
addtimer(CALLBACK(src, .proc/explode, get_turf(target)), timer * 10)
|
||||
|
||||
/obj/item/weapon/plastique/proc/explode(turf/location)
|
||||
/obj/item/plastique/proc/explode(turf/location)
|
||||
if(!target)
|
||||
target = get_atom_on_turf(src)
|
||||
if(!target)
|
||||
@@ -88,5 +88,5 @@
|
||||
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/plastique/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
/obj/item/plastique/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
return
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill
|
||||
/obj/item/reagent_containers/extinguisher_refill
|
||||
name = "extinguisher refiller"
|
||||
desc = "A one time use extinguisher refiller that allows fire extinguishers to be refilled with an aerosol mix. Just pour in the reagents and twist."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
@@ -18,10 +18,10 @@
|
||||
volume = 300
|
||||
drop_sound = 'sound/items/drop/gascan.ogg'
|
||||
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill/attackby(var/obj/O as obj, var/mob/user as mob)
|
||||
/obj/item/reagent_containers/extinguisher_refill/attackby(var/obj/O as obj, var/mob/user as mob)
|
||||
|
||||
if(istype(O,/obj/item/weapon/extinguisher))
|
||||
var/obj/item/weapon/extinguisher/E = O
|
||||
if(istype(O,/obj/item/extinguisher))
|
||||
var/obj/item/extinguisher/E = O
|
||||
if(src.is_open_container())
|
||||
to_chat(user,"<span class='notice'>\The [src] needs to be secured first!</span>")
|
||||
else if(src.reagents.total_volume <= 0)
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill/attack_self(mob/user as mob) //Copied from inhalers.
|
||||
/obj/item/reagent_containers/extinguisher_refill/attack_self(mob/user as mob) //Copied from inhalers.
|
||||
if(is_open_container())
|
||||
if(reagents && reagents.reagent_list.len)
|
||||
to_chat(user,"<span class='notice'>With a quick twist of the cartridge's lid, you secure the reagents inside \the [src].</span>")
|
||||
@@ -47,14 +47,14 @@
|
||||
to_chat(user,"<span class='notice'>\The reagents inside [src] are already secured!</span>")
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill/attackby(obj/item/weapon/W, mob/user)
|
||||
/obj/item/reagent_containers/extinguisher_refill/attackby(obj/item/W, mob/user)
|
||||
if(W.isscrewdriver() && !is_open_container())
|
||||
to_chat(user,"<span class='notice'>Using \the [W], you unsecure the extinguisher refill cartridge's lid.</span>") // it locks shut after being secured
|
||||
flags |= OPENCONTAINER
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill/examine(var/mob/user) //Copied from inhalers.
|
||||
/obj/item/reagent_containers/extinguisher_refill/examine(var/mob/user) //Copied from inhalers.
|
||||
if(!..(user, 2))
|
||||
return
|
||||
|
||||
@@ -69,17 +69,17 @@
|
||||
else
|
||||
to_chat(user,"<span class='notice'>The cartridge seems spent.</span>")
|
||||
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill/filled
|
||||
/obj/item/reagent_containers/extinguisher_refill/filled
|
||||
name = "extinguisher refiller (monoammonium phosphate)"
|
||||
desc = "A one time use extinguisher refiller that allows fire extinguishers to be refilled with an aerosol mix. This one contains monoammonium phosphate."
|
||||
|
||||
/obj/item/weapon/reagent_containers/extinguisher_refill/filled/Initialize()
|
||||
/obj/item/reagent_containers/extinguisher_refill/filled/Initialize()
|
||||
. =..()
|
||||
reagents.add_reagent("monoammoniumphosphate", volume)
|
||||
flags &= ~OPENCONTAINER
|
||||
return
|
||||
|
||||
/obj/item/weapon/extinguisher
|
||||
/obj/item/extinguisher
|
||||
name = "fire extinguisher"
|
||||
desc = "A traditional red fire extinguisher."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
@@ -104,7 +104,7 @@
|
||||
var/safety = 1
|
||||
var/sprite_name = "fire_extinguisher"
|
||||
|
||||
/obj/item/weapon/extinguisher/mini
|
||||
/obj/item/extinguisher/mini
|
||||
name = "fire extinguisher"
|
||||
desc = "A light and compact fibreglass-framed model fire extinguisher."
|
||||
icon_state = "miniFE0"
|
||||
@@ -120,28 +120,28 @@
|
||||
spray_distance = 1
|
||||
sprite_name = "miniFE"
|
||||
|
||||
/obj/item/weapon/extinguisher/New()
|
||||
/obj/item/extinguisher/New()
|
||||
create_reagents(max_water)
|
||||
reagents.add_reagent("monoammoniumphosphate", max_water)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/extinguisher/examine(mob/user)
|
||||
/obj/item/extinguisher/examine(mob/user)
|
||||
if(..(user, 0))
|
||||
to_chat(user,"\The [src] contains [src.reagents.total_volume] units of reagents.")
|
||||
to_chat(user,"The safety is [safety ? "on" : "off"].")
|
||||
return
|
||||
|
||||
/obj/item/weapon/extinguisher/attack_self(mob/user as mob)
|
||||
/obj/item/extinguisher/attack_self(mob/user as mob)
|
||||
safety = !safety
|
||||
src.icon_state = "[sprite_name][!safety]"
|
||||
src.desc = "The safety is [safety ? "on" : "off"]."
|
||||
to_chat(user, "The safety is [safety ? "on" : "off"].")
|
||||
return
|
||||
|
||||
/obj/item/weapon/extinguisher/attackby(var/obj/O as obj, var/mob/user as mob)
|
||||
/obj/item/extinguisher/attackby(var/obj/O as obj, var/mob/user as mob)
|
||||
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/extinguisher_refill))
|
||||
var/obj/item/weapon/reagent_containers/extinguisher_refill/ER = O
|
||||
if(istype(O,/obj/item/reagent_containers/extinguisher_refill))
|
||||
var/obj/item/reagent_containers/extinguisher_refill/ER = O
|
||||
if(ER.is_open_container())
|
||||
to_chat(user,"<span class='notice'>\The [ER] needs to be secured first!</span>")
|
||||
else if(ER.reagents.total_volume <= 0)
|
||||
@@ -156,7 +156,7 @@
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/extinguisher/proc/propel_object(var/obj/O, mob/user, movementdirection)
|
||||
/obj/item/extinguisher/proc/propel_object(var/obj/O, mob/user, movementdirection)
|
||||
if(O.anchored) return
|
||||
|
||||
var/obj/structure/bed/chair/C
|
||||
@@ -174,7 +174,7 @@
|
||||
O.Move(get_step(user,movementdirection), movementdirection)
|
||||
sleep(3)
|
||||
|
||||
/obj/item/weapon/extinguisher/afterattack(var/atom/target, var/mob/user, var/flag)
|
||||
/obj/item/extinguisher/afterattack(var/atom/target, var/mob/user, var/flag)
|
||||
|
||||
if (!safety)
|
||||
if (src.reagents.total_volume < 1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/flamethrower
|
||||
/obj/item/flamethrower
|
||||
name = "flamethrower"
|
||||
desc = "You are a firestarter!"
|
||||
icon = 'icons/obj/flamethrower.dmi'
|
||||
@@ -18,12 +18,12 @@
|
||||
var/lit = 0 //on or off
|
||||
var/operating = 0//cooldown
|
||||
var/turf/previousturf = null
|
||||
var/obj/item/weapon/weldingtool/weldtool = null
|
||||
var/obj/item/weldingtool/weldtool = null
|
||||
var/obj/item/device/assembly/igniter/igniter = null
|
||||
var/obj/item/weapon/tank/phoron/ptank = null
|
||||
var/obj/item/tank/phoron/ptank = null
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/Destroy()
|
||||
/obj/item/flamethrower/Destroy()
|
||||
if(weldtool)
|
||||
qdel(weldtool)
|
||||
if(igniter)
|
||||
@@ -34,7 +34,7 @@
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/process()
|
||||
/obj/item/flamethrower/process()
|
||||
if(!lit)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
return null
|
||||
@@ -48,7 +48,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/update_icon()
|
||||
/obj/item/flamethrower/update_icon()
|
||||
cut_overlays()
|
||||
if(igniter)
|
||||
add_overlay("+igniter[status]")
|
||||
@@ -61,7 +61,7 @@
|
||||
item_state = "flamethrower_0"
|
||||
return
|
||||
|
||||
/obj/item/weapon/flamethrower/afterattack(atom/target, mob/user, proximity)
|
||||
/obj/item/flamethrower/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
// Make sure our user is still holding us
|
||||
if(user && user.get_active_hand() == src)
|
||||
@@ -70,7 +70,7 @@
|
||||
var/turflist = getline(user, target_turf)
|
||||
flame_turf(turflist)
|
||||
|
||||
/obj/item/weapon/flamethrower/attackby(obj/item/W as obj, mob/user as mob)
|
||||
/obj/item/flamethrower/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(user.stat || user.restrained() || user.lying) return
|
||||
if(W.iswrench() && !status)//Taking this apart
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -102,7 +102,7 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(istype(W,/obj/item/weapon/tank/phoron))
|
||||
if(istype(W,/obj/item/tank/phoron))
|
||||
if(ptank)
|
||||
to_chat(user, "<span class='notice'>There appears to already be a phoron tank loaded in [src]!</span>")
|
||||
return
|
||||
@@ -119,7 +119,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/attack_self(mob/user as mob)
|
||||
/obj/item/flamethrower/attack_self(mob/user as mob)
|
||||
if(user.stat || user.restrained() || user.lying) return
|
||||
user.set_machine(src)
|
||||
if(!ptank)
|
||||
@@ -131,7 +131,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/Topic(href,href_list[])
|
||||
/obj/item/flamethrower/Topic(href,href_list[])
|
||||
if(href_list["close"])
|
||||
usr.unset_machine()
|
||||
usr << browse(null, "window=flamethrower")
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
|
||||
//Called from turf.dm turf/dblclick
|
||||
/obj/item/weapon/flamethrower/proc/flame_turf(turflist)
|
||||
/obj/item/flamethrower/proc/flame_turf(turflist)
|
||||
if(!lit || operating) return
|
||||
operating = 1
|
||||
playsound(src, fire_sound, 70, 1)
|
||||
@@ -185,7 +185,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/proc/ignite_turf(turf/target)
|
||||
/obj/item/flamethrower/proc/ignite_turf(turf/target)
|
||||
//TODO: DEFERRED Consider checking to make sure tank pressure is high enough before doing this...
|
||||
//Transfer 5% of current tank air contents to turf
|
||||
var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.02*(throw_amount/100))
|
||||
@@ -199,9 +199,9 @@
|
||||
//location.hotspot_expose(1000,500,1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/flamethrower/full/New(var/loc)
|
||||
/obj/item/flamethrower/full/New(var/loc)
|
||||
..()
|
||||
weldtool = new /obj/item/weapon/weldingtool(src)
|
||||
weldtool = new /obj/item/weldingtool(src)
|
||||
weldtool.status = 0
|
||||
igniter = new /obj/item/device/assembly/igniter(src)
|
||||
igniter.secured = 0
|
||||
|
||||
@@ -3,14 +3,14 @@ CONTAINS:
|
||||
THAT STUPID GAME KIT
|
||||
|
||||
*/
|
||||
/obj/item/weapon/game_kit/New()
|
||||
/obj/item/game_kit/New()
|
||||
src.board_stat = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
|
||||
src.selected = "CR"
|
||||
|
||||
/obj/item/weapon/game_kit/attack_paw(mob/user as mob)
|
||||
/obj/item/game_kit/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/item/weapon/game_kit/MouseDrop(mob/user as mob)
|
||||
/obj/item/game_kit/MouseDrop(mob/user as mob)
|
||||
if (user == usr && !usr.restrained() && !usr.stat && (usr.contents.Find(src) || in_range(src, usr)))
|
||||
if (usr.hand)
|
||||
if (!usr.l_hand)
|
||||
@@ -21,7 +21,7 @@ THAT STUPID GAME KIT
|
||||
spawn (0)
|
||||
src.attack_hand(usr, 0, 1)
|
||||
|
||||
/obj/item/weapon/game_kit/proc/update()
|
||||
/obj/item/game_kit/proc/update()
|
||||
var/dat = text("<CENTER><B>Game Board</B></CENTER><BR><a href='?src=\ref[];mode=hia'>[]</a> <a href='?src=\ref[];mode=remove'>remove</a><HR><table width= 256 border= 0 height= 256 cellspacing= 0 cellpadding= 0 >", src, (src.selected ? text("Selected: []", src.selected) : "Nothing Selected"), src)
|
||||
for (var/y = 1 to 8)
|
||||
dat += "<tr>"
|
||||
@@ -52,10 +52,10 @@ THAT STUPID GAME KIT
|
||||
dat += "<a href='?src=\ref[src];s_piece=[piece]'><img src='[src.base_url]/board_[piece].png' width=32 height=32 border=0></a>"
|
||||
src.data = dat
|
||||
|
||||
/obj/item/weapon/game_kit/attack_ai(mob/user as mob, unused, flag)
|
||||
/obj/item/game_kit/attack_ai(mob/user as mob, unused, flag)
|
||||
return src.attack_hand(user, unused, flag)
|
||||
|
||||
/obj/item/weapon/game_kit/attack_hand(mob/user as mob, unused, flag)
|
||||
/obj/item/game_kit/attack_hand(mob/user as mob, unused, flag)
|
||||
|
||||
if (flag)
|
||||
return ..()
|
||||
@@ -68,7 +68,7 @@ THAT STUPID GAME KIT
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/weapon/game_kit/Topic(href, href_list)
|
||||
/obj/item/game_kit/Topic(href, href_list)
|
||||
..()
|
||||
if ((usr.stat || usr.restrained()))
|
||||
return
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/*
|
||||
* Gifts
|
||||
*/
|
||||
/obj/item/weapon/a_gift
|
||||
/obj/item/a_gift
|
||||
name = "gift"
|
||||
desc = "PRESENTS!!!! eek!"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
@@ -15,7 +15,7 @@
|
||||
item_state = "gift1"
|
||||
drop_sound = 'sound/items/drop/box.ogg'
|
||||
|
||||
/obj/item/weapon/a_gift/New()
|
||||
/obj/item/a_gift/New()
|
||||
..()
|
||||
pixel_x = rand(-10,10)
|
||||
pixel_y = rand(-10,10)
|
||||
@@ -25,7 +25,7 @@
|
||||
icon_state = "gift[pick(1, 2, 3)]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gift/attack_self(mob/user as mob)
|
||||
/obj/item/gift/attack_self(mob/user as mob)
|
||||
user.drop_item()
|
||||
playsound(src.loc, 'sound/items/package_unwrap.ogg', 50,1)
|
||||
if(src.gift)
|
||||
@@ -36,7 +36,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/a_gift/ex_act(var/severity = 2.0)
|
||||
/obj/item/a_gift/ex_act(var/severity = 2.0)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
return
|
||||
to_chat(user, "<span class='warning'>You can't move.</span>")
|
||||
|
||||
/obj/effect/spresent/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/effect/spresent/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
if (!W.iswirecutter())
|
||||
@@ -62,30 +62,30 @@
|
||||
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/a_gift/attack_self(mob/M as mob)
|
||||
/obj/item/a_gift/attack_self(mob/M as mob)
|
||||
var/gift_type = pick(
|
||||
/obj/item/weapon/storage/wallet,
|
||||
/obj/item/weapon/storage/photo_album,
|
||||
/obj/item/weapon/storage/box/snappops,
|
||||
/obj/item/weapon/storage/fancy/crayons,
|
||||
/obj/item/weapon/storage/backpack/holding,
|
||||
/obj/item/weapon/storage/belt/champion,
|
||||
/obj/item/weapon/soap/deluxe,
|
||||
/obj/item/weapon/pickaxe/silver,
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/obj/item/weapon/lipstick/random,
|
||||
/obj/item/weapon/grenade/smokebomb,
|
||||
/obj/item/weapon/corncob,
|
||||
/obj/item/weapon/contraband/poster,
|
||||
/obj/item/weapon/book/manual/barman_recipes,
|
||||
/obj/item/weapon/book/manual/chef_recipes,
|
||||
/obj/item/weapon/bikehorn,
|
||||
/obj/item/weapon/beach_ball,
|
||||
/obj/item/weapon/beach_ball/holoball,
|
||||
/obj/item/storage/wallet,
|
||||
/obj/item/storage/photo_album,
|
||||
/obj/item/storage/box/snappops,
|
||||
/obj/item/storage/fancy/crayons,
|
||||
/obj/item/storage/backpack/holding,
|
||||
/obj/item/storage/belt/champion,
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/item/pickaxe/silver,
|
||||
/obj/item/pen/invisible,
|
||||
/obj/item/lipstick/random,
|
||||
/obj/item/grenade/smokebomb,
|
||||
/obj/item/corncob,
|
||||
/obj/item/contraband/poster,
|
||||
/obj/item/book/manual/barman_recipes,
|
||||
/obj/item/book/manual/chef_recipes,
|
||||
/obj/item/bikehorn,
|
||||
/obj/item/beach_ball,
|
||||
/obj/item/beach_ball/holoball,
|
||||
/obj/item/toy/balloon,
|
||||
/obj/item/toy/blink,
|
||||
/obj/item/toy/crossbow,
|
||||
/obj/item/weapon/gun/projectile/revolver/capgun,
|
||||
/obj/item/gun/projectile/revolver/capgun,
|
||||
/obj/item/toy/katana,
|
||||
/obj/item/toy/prize/deathripley,
|
||||
/obj/item/toy/prize/durand,
|
||||
@@ -100,11 +100,11 @@
|
||||
/obj/item/toy/prize/seraph,
|
||||
/obj/item/toy/spinningtoy,
|
||||
/obj/item/toy/sword,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosiadeus,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosiavulgaris,
|
||||
/obj/item/device/paicard,
|
||||
/obj/item/device/violin,
|
||||
/obj/item/weapon/storage/belt/utility/full,
|
||||
/obj/item/storage/belt/utility/full,
|
||||
/obj/item/clothing/accessory/horrible)
|
||||
|
||||
if(!ispath(gift_type,/obj/item)) return
|
||||
@@ -123,7 +123,7 @@
|
||||
/*
|
||||
* Xmas Gifts
|
||||
*/
|
||||
/obj/item/weapon/xmasgift
|
||||
/obj/item/xmasgift
|
||||
name = "christmas gift"
|
||||
desc = "PRESENTS!!!! eek!"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
@@ -131,7 +131,7 @@
|
||||
item_state = "gift1"
|
||||
w_class = 1
|
||||
|
||||
/obj/item/weapon/xmasgift/New()
|
||||
/obj/item/xmasgift/New()
|
||||
..()
|
||||
var/gift_benefactor = pick("the NanoTrasen Department of Christmas Affairs", "Miranda Trasen", "Joseph Dorne", "Isaac Asimov", "Baal D. Griffon", "the Sol Alliance (Sorry about the blockade!)",
|
||||
"Hephaestus Industries", "Idris Incorporated", "Glorsh Omega II", "the Jargon Federation", "the People's Republic of Adhomai", "the Adhomai Liberation Army", "the Izweski Hegemony",
|
||||
@@ -146,29 +146,29 @@
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/xmasgift/ex_act(var/severity = 2.0)
|
||||
/obj/item/xmasgift/ex_act(var/severity = 2.0)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/xmasgift/small/attack_self(mob/M as mob)
|
||||
/obj/item/xmasgift/small/attack_self(mob/M as mob)
|
||||
var/gift_type = pick(
|
||||
/obj/random/action_figure,
|
||||
/obj/random/coin,
|
||||
/obj/random/spacecash,
|
||||
/obj/random/glowstick,
|
||||
/obj/item/weapon/storage/wallet,
|
||||
/obj/item/weapon/storage/photo_album,
|
||||
/obj/item/weapon/storage/box/snappops,
|
||||
/obj/item/weapon/storage/fancy/crayons,
|
||||
/obj/item/weapon/soap/deluxe,
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/obj/item/storage/wallet,
|
||||
/obj/item/storage/photo_album,
|
||||
/obj/item/storage/box/snappops,
|
||||
/obj/item/storage/fancy/crayons,
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/item/pen/invisible,
|
||||
/obj/item/clothing/gloves/watch,
|
||||
/obj/item/weapon/lipstick/random,
|
||||
/obj/item/weapon/corncob,
|
||||
/obj/item/weapon/bikehorn,
|
||||
/obj/item/lipstick/random,
|
||||
/obj/item/corncob,
|
||||
/obj/item/bikehorn,
|
||||
/obj/item/toy/balloon,
|
||||
/obj/item/toy/blink,
|
||||
/obj/item/weapon/gun/projectile/revolver/capgun,
|
||||
/obj/item/gun/projectile/revolver/capgun,
|
||||
/obj/item/toy/prize/deathripley,
|
||||
/obj/item/toy/prize/durand,
|
||||
/obj/item/toy/prize/fireripley,
|
||||
@@ -184,9 +184,9 @@
|
||||
/obj/item/clothing/accessory/horrible,
|
||||
/obj/item/device/camera,
|
||||
/obj/item/bluespace_crystal,
|
||||
/obj/item/weapon/flame/lighter/zippo,
|
||||
/obj/item/flame/lighter/zippo,
|
||||
/obj/item/device/taperecorder,
|
||||
/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,
|
||||
/obj/item/storage/fancy/cigarettes/dromedaryco,
|
||||
/obj/item/toy/bosunwhistle,
|
||||
/obj/item/clothing/mask/fakemoustache,
|
||||
/obj/item/clothing/mask/gas/clown_hat,
|
||||
@@ -201,7 +201,7 @@
|
||||
/obj/item/trash/cheesie,
|
||||
/obj/item/trash/raisins,
|
||||
/obj/item/trash/koisbar,
|
||||
/obj/item/weapon/xmasgift/medium,
|
||||
/obj/item/xmasgift/medium,
|
||||
/obj/item/toy/syndicateballoon,
|
||||
/obj/item/toy/xmastree,
|
||||
/obj/item/clothing/accessory/medal/gold/heroism,
|
||||
@@ -210,13 +210,13 @@
|
||||
/obj/item/clothing/accessory/medal/silver/valor,
|
||||
/obj/item/bluespace_crystal,
|
||||
/obj/random/junk,
|
||||
/obj/item/weapon/gun/energy/mousegun,
|
||||
/obj/item/weapon/gun/energy/wand/toy,
|
||||
/obj/item/weapon/mirror,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/stamp/clown,
|
||||
/obj/item/gun/energy/mousegun,
|
||||
/obj/item/gun/energy/wand/toy,
|
||||
/obj/item/mirror,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/stamp/clown,
|
||||
/obj/item/organ/heart/skrell,
|
||||
/obj/item/latexballon)
|
||||
|
||||
@@ -227,32 +227,32 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/xmasgift/medium
|
||||
/obj/item/xmasgift/medium
|
||||
icon_state = "gift2"
|
||||
item_state = "gift2"
|
||||
w_class = 2
|
||||
|
||||
/obj/item/weapon/xmasgift/medium/attack_self(mob/M as mob)
|
||||
/obj/item/xmasgift/medium/attack_self(mob/M as mob)
|
||||
var/gift_type = pick(
|
||||
/obj/item/weapon/sord,
|
||||
/obj/item/sord,
|
||||
/obj/random/booze,
|
||||
/obj/item/weapon/storage/belt/champion,
|
||||
/obj/item/weapon/pickaxe/silver,
|
||||
/obj/item/weapon/grenade/smokebomb,
|
||||
/obj/item/weapon/contraband/poster,
|
||||
/obj/item/weapon/book/manual/barman_recipes,
|
||||
/obj/item/weapon/book/manual/chef_recipes,
|
||||
/obj/item/weapon/banhammer,
|
||||
/obj/item/storage/belt/champion,
|
||||
/obj/item/pickaxe/silver,
|
||||
/obj/item/grenade/smokebomb,
|
||||
/obj/item/contraband/poster,
|
||||
/obj/item/book/manual/barman_recipes,
|
||||
/obj/item/book/manual/chef_recipes,
|
||||
/obj/item/banhammer,
|
||||
/obj/item/toy/crossbow,
|
||||
/obj/item/toy/katana,
|
||||
/obj/item/toy/spinningtoy,
|
||||
/obj/item/toy/sword,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosiadeus,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosiavulgaris,
|
||||
/obj/item/device/paicard,
|
||||
/obj/item/clothing/accessory/horrible,
|
||||
/obj/item/weapon/storage/box/donkpockets,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/teapot,
|
||||
/obj/item/storage/box/donkpockets,
|
||||
/obj/item/reagent_containers/food/drinks/teapot,
|
||||
/obj/item/device/flashlight/lantern,
|
||||
/obj/item/clothing/mask/balaclava,
|
||||
/obj/item/clothing/accessory/badge/old,
|
||||
@@ -263,11 +263,11 @@
|
||||
/mob/living/simple_animal/rat/brown,
|
||||
/mob/living/simple_animal/rat/gray,
|
||||
/mob/living/simple_animal/rat/white,
|
||||
/obj/item/weapon/xmasgift/small,
|
||||
/obj/item/weapon/tank/jetpack/void,
|
||||
/obj/item/weapon/xmasgift/large,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/pudding,
|
||||
/obj/item/weapon/contraband/poster,
|
||||
/obj/item/xmasgift/small,
|
||||
/obj/item/tank/jetpack/void,
|
||||
/obj/item/xmasgift/large,
|
||||
/obj/item/reagent_containers/food/snacks/pudding,
|
||||
/obj/item/contraband/poster,
|
||||
/obj/item/clothing/head/hardhat/red/atmos,
|
||||
/mob/living/bot/cleanbot,
|
||||
/obj/item/vaurca/box,
|
||||
@@ -277,12 +277,12 @@
|
||||
/obj/item/device/uv_light,
|
||||
/obj/random/loot,
|
||||
/obj/random/contraband,
|
||||
/obj/item/weapon/autochisel,
|
||||
/obj/item/weapon/melee/vaurca/rock,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/phone,
|
||||
/obj/item/autochisel,
|
||||
/obj/item/melee/vaurca/rock,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/phone,
|
||||
/obj/item/device/dociler,
|
||||
/obj/item/device/flashlight/maglight,
|
||||
/obj/item/device/megaphone,
|
||||
@@ -296,15 +296,15 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/xmasgift/large
|
||||
/obj/item/xmasgift/large
|
||||
icon_state = "gift3"
|
||||
item_state = "gift3"
|
||||
w_class = 3
|
||||
|
||||
/obj/item/weapon/xmasgift/large/attack_self(mob/M as mob)
|
||||
/obj/item/xmasgift/large/attack_self(mob/M as mob)
|
||||
var/gift_type = pick(
|
||||
/obj/item/weapon/inflatable_duck,
|
||||
/obj/item/weapon/beach_ball,
|
||||
/obj/item/inflatable_duck,
|
||||
/obj/item/beach_ball,
|
||||
/obj/item/clothing/under/redcoat,
|
||||
/obj/item/clothing/under/syndicate/tracksuit,
|
||||
/obj/item/clothing/under/rank/clown,
|
||||
@@ -316,15 +316,15 @@
|
||||
/mob/living/simple_animal/corgi/puppy,
|
||||
/mob/living/simple_animal/mushroom,
|
||||
/mob/living/carbon/human/monkey/nupnup,
|
||||
/obj/item/weapon/xmasgift/medium,
|
||||
/obj/item/weapon/tank/jetpack,
|
||||
/obj/item/xmasgift/medium,
|
||||
/obj/item/tank/jetpack,
|
||||
/obj/item/toy/plushie/drone,
|
||||
/obj/item/toy/plushie/ivancarp,
|
||||
/obj/item/weapon/grenade/spawnergrenade/vaurca,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/ore/coal,
|
||||
/obj/item/weapon/mass_driver_diy,
|
||||
/obj/item/grenade/spawnergrenade/vaurca,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/ore/coal,
|
||||
/obj/item/mass_driver_diy,
|
||||
/mob/living/simple_animal/crab,
|
||||
/mob/living/simple_animal/parrot,
|
||||
/mob/living/simple_animal/hostile/commanded/dog/pug,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/grenade/anti_photon
|
||||
/obj/item/grenade/anti_photon
|
||||
desc = "An experimental device for temporarily removing light in a limited area."
|
||||
name = "photon disruption grenade"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
@@ -7,7 +7,7 @@
|
||||
det_time = 20
|
||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_MATERIAL = 4)
|
||||
|
||||
/obj/item/weapon/grenade/anti_photon/prime()
|
||||
/obj/item/grenade/anti_photon/prime()
|
||||
playsound(src.loc, 'sound/effects/phasein.ogg', 50, 1, 5)
|
||||
set_light(10, -10, "#FFFFFF")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/grenade/chem_grenade
|
||||
/obj/item/grenade/chem_grenade
|
||||
name = "grenade casing"
|
||||
icon_state = "chemg"
|
||||
item_state = "chemg"
|
||||
@@ -12,14 +12,14 @@
|
||||
var/path = 0
|
||||
var/obj/item/device/assembly_holder/detonator = null
|
||||
var/list/beakers = new/list()
|
||||
var/list/allowed_containers = list(/obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle)
|
||||
var/list/allowed_containers = list(/obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle)
|
||||
var/affected_area = 3
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/Initialize()
|
||||
/obj/item/grenade/chem_grenade/Initialize()
|
||||
. = ..()
|
||||
create_reagents(1000)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/attack_self(mob/user as mob)
|
||||
/obj/item/grenade/chem_grenade/attack_self(mob/user as mob)
|
||||
if(!stage || stage==1)
|
||||
if(detonator)
|
||||
detonator.detached()
|
||||
@@ -45,7 +45,7 @@
|
||||
var/mob/living/carbon/C = user
|
||||
C.throw_mode_on()
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/grenade/chem_grenade/attackby(obj/item/W as obj, mob/user as mob)
|
||||
|
||||
if(istype(W,/obj/item/device/assembly_holder) && (!stage || stage==1) && path != 2)
|
||||
var/obj/item/device/assembly_holder/det = W
|
||||
@@ -109,12 +109,12 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>\The [W] is empty.</span>")
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/examine(mob/user)
|
||||
/obj/item/grenade/chem_grenade/examine(mob/user)
|
||||
..(user)
|
||||
if(detonator)
|
||||
to_chat(user, "With attached [detonator.name]")
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/activate(mob/user as mob)
|
||||
/obj/item/grenade/chem_grenade/activate(mob/user as mob)
|
||||
if(active) return
|
||||
|
||||
if(detonator)
|
||||
@@ -132,15 +132,15 @@
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/proc/primed(var/primed = 1)
|
||||
/obj/item/grenade/chem_grenade/proc/primed(var/primed = 1)
|
||||
if(active)
|
||||
icon_state = initial(icon_state) + (primed?"_primed":"_active")
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/prime()
|
||||
/obj/item/grenade/chem_grenade/prime()
|
||||
if(!stage || stage<2) return
|
||||
|
||||
var/has_reagents = 0
|
||||
for(var/obj/item/weapon/reagent_containers/glass/G in beakers)
|
||||
for(var/obj/item/reagent_containers/glass/G in beakers)
|
||||
if(G.reagents.total_volume)
|
||||
has_reagents = 1
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
return
|
||||
|
||||
playsound(src.loc, 'sound/effects/bamf.ogg', 50, 1)
|
||||
for(var/obj/item/weapon/reagent_containers/glass/G in beakers)
|
||||
for(var/obj/item/reagent_containers/glass/G in beakers)
|
||||
G.reagents.trans_to_obj(src, G.reagents.total_volume)
|
||||
|
||||
if(src.reagents.total_volume) //The possible reactions didnt use up all reagents.
|
||||
@@ -181,25 +181,25 @@
|
||||
//correctly before deleting the grenade.
|
||||
QDEL_IN(src, 50)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large
|
||||
/obj/item/grenade/chem_grenade/large
|
||||
name = "large chem grenade"
|
||||
desc = "An oversized grenade that affects a larger area."
|
||||
icon_state = "large_grenade"
|
||||
item_state = "largechemg"
|
||||
allowed_containers = list(/obj/item/weapon/reagent_containers/glass)
|
||||
allowed_containers = list(/obj/item/reagent_containers/glass)
|
||||
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
|
||||
affected_area = 4
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/metalfoam
|
||||
/obj/item/grenade/chem_grenade/metalfoam
|
||||
name = "metal-foam grenade"
|
||||
desc = "Used for emergency sealing of air breaches."
|
||||
path = 1
|
||||
stage = 2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/metalfoam/Initialize()
|
||||
/obj/item/grenade/chem_grenade/metalfoam/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("aluminum", 30)
|
||||
B2.reagents.add_reagent("foaming_agent", 10)
|
||||
@@ -211,16 +211,16 @@
|
||||
beakers += B2
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/incendiary
|
||||
/obj/item/grenade/chem_grenade/incendiary
|
||||
name = "incendiary grenade"
|
||||
desc = "Used for clearing rooms of living things."
|
||||
path = 1
|
||||
stage = 2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/incendiary/Initialize()
|
||||
/obj/item/grenade/chem_grenade/incendiary/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("aluminum", 15)
|
||||
B1.reagents.add_reagent("fuel",20)
|
||||
@@ -234,16 +234,16 @@
|
||||
beakers += B2
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/antiweed
|
||||
/obj/item/grenade/chem_grenade/antiweed
|
||||
name = "weedkiller grenade"
|
||||
desc = "Used for purging large areas of invasive plant species. Contents under pressure. Do not directly inhale contents."
|
||||
path = 1
|
||||
stage = 2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/antiweed/Initialize()
|
||||
/obj/item/grenade/chem_grenade/antiweed/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("plantbgone", 25)
|
||||
B1.reagents.add_reagent("potassium", 25)
|
||||
@@ -256,16 +256,16 @@
|
||||
beakers += B2
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/gas
|
||||
/obj/item/grenade/chem_grenade/gas
|
||||
name = "NT. 53 'Sandman' grenade"
|
||||
desc = "Used for pacifying rooms full of people with less-than-lethal force. It warns against use on people with lung defects."
|
||||
path = 1
|
||||
stage = 2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/gas/Initialize()
|
||||
/obj/item/grenade/chem_grenade/gas/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("sugar", 20)
|
||||
B1.reagents.add_reagent("potassium",20)
|
||||
@@ -280,16 +280,16 @@
|
||||
beakers += B2
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/cleaner
|
||||
/obj/item/grenade/chem_grenade/cleaner
|
||||
name = "cleaner grenade"
|
||||
desc = "BLAM!-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas."
|
||||
stage = 2
|
||||
path = 1
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/cleaner/Initialize()
|
||||
/obj/item/grenade/chem_grenade/cleaner/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("surfactant", 40)
|
||||
B2.reagents.add_reagent("water", 40)
|
||||
@@ -301,16 +301,16 @@
|
||||
beakers += B2
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/phoroncleaner
|
||||
/obj/item/grenade/chem_grenade/large/phoroncleaner
|
||||
name = "large cardox grenade"
|
||||
desc = "A large chemical grenade containing a heavy amount of cardox. Use in case of phoron leaks. Warning: Harmful to Vaurca health."
|
||||
stage = 2
|
||||
path = 1
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/phoroncleaner/Initialize()
|
||||
/obj/item/grenade/chem_grenade/large/phoroncleaner/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("water", 60)
|
||||
B1.reagents.add_reagent("cardox", 60)
|
||||
@@ -324,16 +324,16 @@
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/teargas
|
||||
/obj/item/grenade/chem_grenade/teargas
|
||||
name = "tear gas grenade"
|
||||
desc = "Concentrated Capsaicin. Contents under pressure. Use with caution."
|
||||
stage = 2
|
||||
path = 1
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/teargas/Initialize()
|
||||
/obj/item/grenade/chem_grenade/teargas/Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("phosphorus", 40)
|
||||
B1.reagents.add_reagent("potassium", 40)
|
||||
@@ -347,7 +347,7 @@
|
||||
beakers += B2
|
||||
icon_state = initial(icon_state) +"_locked"
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/monoammoniumphosphate
|
||||
/obj/item/grenade/chem_grenade/monoammoniumphosphate
|
||||
name = "extinguisher grenade"
|
||||
desc = "BLAM!-brand foaming extinguisher. Incredibly useful for taking out large chemical fires at a distance."
|
||||
stage = 2
|
||||
@@ -355,8 +355,8 @@
|
||||
|
||||
Initialize()
|
||||
. = ..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("surfactant", 40)
|
||||
B1.reagents.add_reagent("monoammoniumphosphate", 20)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/item/weapon/grenade/empgrenade
|
||||
/obj/item/grenade/empgrenade
|
||||
name = "classic emp grenade"
|
||||
icon_state = "emp"
|
||||
item_state = "emp"
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 3)
|
||||
|
||||
/obj/item/weapon/grenade/empgrenade/prime()
|
||||
/obj/item/grenade/empgrenade/prime()
|
||||
..()
|
||||
if(empulse(src, 4, 10))
|
||||
qdel(src)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/obj/item/weapon/grenade/fake
|
||||
/obj/item/grenade/fake
|
||||
name = "fragmentation grenade"
|
||||
desc = "A military fragmentation grenade, designed to explode in a deadly shower of fragments, this one is just a toy however."
|
||||
icon_state = "frag"
|
||||
fake = TRUE
|
||||
|
||||
/obj/item/weapon/grenade/fake/prime()
|
||||
/obj/item/grenade/fake/prime()
|
||||
active = 0
|
||||
playsound(src.loc, get_sfx("explosion"), 50, 1, 30)
|
||||
icon_state = "frag"
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/obj/item/weapon/grenade/flashbang
|
||||
/obj/item/grenade/flashbang
|
||||
name = "flashbang"
|
||||
icon_state = "flashbang"
|
||||
item_state = "flashbang"
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1)
|
||||
var/banglet = 0
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/prime()
|
||||
/obj/item/grenade/flashbang/prime()
|
||||
..()
|
||||
for(var/obj/structure/closet/L in hear(7, get_turf(src)))
|
||||
if(locate(/mob/living/carbon/, L))
|
||||
@@ -25,9 +25,9 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged.
|
||||
if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging
|
||||
for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions.
|
||||
/obj/item/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged.
|
||||
if (locate(/obj/item/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging
|
||||
for(var/obj/item/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions.
|
||||
S.active = 0 // -- Polymorph
|
||||
S.icon_state = "shield0"
|
||||
|
||||
@@ -94,12 +94,12 @@
|
||||
var/obj/item/organ/eyes/E = H.get_eyes(no_synthetic = TRUE)
|
||||
if (E && E.damage >= E.min_bruised_damage)
|
||||
to_chat(M, "<span class='danger'>Your eyes start to burn badly!</span>")
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if(!banglet && !(istype(src , /obj/item/grenade/flashbang/clusterbang)))
|
||||
if (E.damage >= E.min_broken_damage)
|
||||
to_chat(M, "<span class='danger'>You can't see anything!</span>")
|
||||
if (M.ear_damage >= 15)
|
||||
to_chat(M, "<span class='danger'>Your ears start to ring badly!</span>")
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if(!banglet && !(istype(src , /obj/item/grenade/flashbang/clusterbang)))
|
||||
if (prob(M.ear_damage - 10 + 5))
|
||||
to_chat(M, "<span class='danger'>You can't hear anything!</span>")
|
||||
M.sdisabilities |= DEAF
|
||||
@@ -108,12 +108,12 @@
|
||||
to_chat(M, "<span class='danger'>Your ears start to ring!</span>")
|
||||
M.update_icons()
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve
|
||||
/obj/item/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve
|
||||
name = "clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/prime()
|
||||
/obj/item/grenade/flashbang/clusterbang/prime()
|
||||
var/numspawned = rand(4,8)
|
||||
var/again = 0
|
||||
var/atom/A = loc
|
||||
@@ -124,22 +124,22 @@
|
||||
|
||||
for(,numspawned > 0, numspawned--)
|
||||
spawn(0)
|
||||
new /obj/item/weapon/grenade/flashbang/cluster(A)//Launches flashbangs
|
||||
new /obj/item/grenade/flashbang/cluster(A)//Launches flashbangs
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
for(,again > 0, again--)
|
||||
spawn(0)
|
||||
new /obj/item/weapon/grenade/flashbang/clusterbang/segment(A)//Creates a 'segment' that launches a few more flashbangs
|
||||
new /obj/item/grenade/flashbang/clusterbang/segment(A)//Creates a 'segment' that launches a few more flashbangs
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
QDEL_IN(src, 1)
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment
|
||||
/obj/item/grenade/flashbang/clusterbang/segment
|
||||
desc = "A smaller segment of a clusterbang. Better run."
|
||||
name = "clusterbang segment"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
|
||||
/obj/item/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
|
||||
|
||||
icon_state = "clusterbang_segment_active"
|
||||
active = 1
|
||||
@@ -151,7 +151,7 @@
|
||||
addtimer(CALLBACK(src, .proc/prime), dettime)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment/prime()
|
||||
/obj/item/grenade/flashbang/clusterbang/segment/prime()
|
||||
var/numspawned = rand(4,8)
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
@@ -159,12 +159,12 @@
|
||||
var/atom/A = src.loc
|
||||
for(,numspawned > 0, numspawned--)
|
||||
spawn(0)
|
||||
new /obj/item/weapon/grenade/flashbang/cluster(A)
|
||||
new /obj/item/grenade/flashbang/cluster(A)
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
QDEL_IN(src, 1)
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
|
||||
/obj/item/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
|
||||
set waitfor = FALSE
|
||||
icon_state = "flashbang_active"
|
||||
active = 1
|
||||
|
||||
@@ -38,7 +38,7 @@ proc/fragem(var/source,var/fragx,var/fragy,var/light_dam,var/flash_dam,var/p_dam
|
||||
no_attack_log = 1
|
||||
muzzle_type = null
|
||||
|
||||
/obj/item/weapon/grenade/frag
|
||||
/obj/item/grenade/frag
|
||||
name = "fragmentation grenade"
|
||||
desc = "A military fragmentation grenade, designed to explode in a deadly shower of fragments."
|
||||
icon_state = "frag"
|
||||
@@ -51,7 +51,7 @@ proc/fragem(var/source,var/fragx,var/fragy,var/light_dam,var/flash_dam,var/p_dam
|
||||
//The radius of the circle used to launch projectiles. Lower values mean less projectiles are used but if set too low gaps may appear in the spread pattern
|
||||
var/spread_range = 7
|
||||
|
||||
/obj/item/weapon/grenade/frag/prime()
|
||||
/obj/item/grenade/frag/prime()
|
||||
set waitfor = 0
|
||||
..()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/grenade
|
||||
/obj/item/grenade
|
||||
name = "grenade"
|
||||
desc = "A hand held grenade, with an adjustable timer."
|
||||
w_class = 2.0
|
||||
@@ -14,7 +14,7 @@
|
||||
var/det_time = 30
|
||||
var/fake = FALSE
|
||||
|
||||
/obj/item/weapon/grenade/proc/clown_check(var/mob/living/user)
|
||||
/obj/item/grenade/proc/clown_check(var/mob/living/user)
|
||||
if((user.is_clumsy()) && prob(50))
|
||||
to_chat(user, "<span class='warning'>Huh? How does this thing work?</span>")
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/grenade/examine(mob/user)
|
||||
/obj/item/grenade/examine(mob/user)
|
||||
if(..(user, 0))
|
||||
if(det_time > 1)
|
||||
to_chat(user, "The timer is set to [det_time/10] seconds.")
|
||||
@@ -35,7 +35,7 @@
|
||||
to_chat(user, "\The [src] is set for instant detonation.")
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/attack_self(mob/user as mob)
|
||||
/obj/item/grenade/attack_self(mob/user as mob)
|
||||
if(!active)
|
||||
if(clown_check(user))
|
||||
to_chat(user, "<span class='warning'>You prime \the [name]! [det_time/10] seconds!</span>")
|
||||
@@ -48,7 +48,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/proc/activate(mob/user as mob)
|
||||
/obj/item/grenade/proc/activate(mob/user as mob)
|
||||
if(active)
|
||||
return
|
||||
|
||||
@@ -64,12 +64,12 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/proc/prime()
|
||||
/obj/item/grenade/proc/prime()
|
||||
var/turf/T = get_turf(src)
|
||||
if(T)
|
||||
T.hotspot_expose(700,125)
|
||||
|
||||
/obj/item/weapon/grenade/attack_hand()
|
||||
/obj/item/grenade/attack_hand()
|
||||
walk(src, null, null)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/grenade/smokebomb
|
||||
/obj/item/grenade/smokebomb
|
||||
desc = "It is set to detonate in 2 seconds."
|
||||
name = "smoke bomb"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
@@ -8,17 +8,17 @@
|
||||
slot_flags = SLOT_BELT
|
||||
var/datum/effect/effect/system/smoke_spread/bad/smoke
|
||||
|
||||
/obj/item/weapon/grenade/smokebomb/New()
|
||||
/obj/item/grenade/smokebomb/New()
|
||||
..()
|
||||
src.smoke = new /datum/effect/effect/system/smoke_spread/bad
|
||||
src.smoke.attach(src)
|
||||
|
||||
/obj/item/weapon/grenade/smokebomb/Destroy()
|
||||
/obj/item/grenade/smokebomb/Destroy()
|
||||
qdel(smoke)
|
||||
smoke = null
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/grenade/smokebomb/prime()
|
||||
/obj/item/grenade/smokebomb/prime()
|
||||
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||
src.smoke.set_up(10, 0, usr.loc)
|
||||
spawn(0)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/grenade/spawnergrenade
|
||||
/obj/item/grenade/spawnergrenade
|
||||
desc = "It is set to detonate in 5 seconds. It will unleash unleash an unspecified anomaly into the vicinity."
|
||||
name = "delivery grenade"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
@@ -11,7 +11,7 @@
|
||||
var/deliveryamt = 1 // amount of type to deliver
|
||||
var/list/newvars
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/prime() // Prime now just handles the two loops that query for people in lockers and people who can see it.
|
||||
/obj/item/grenade/spawnergrenade/prime() // Prime now just handles the two loops that query for people in lockers and people who can see it.
|
||||
|
||||
if(spawner_type && deliveryamt)
|
||||
// Make a quick flash
|
||||
@@ -39,7 +39,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/manhacks
|
||||
/obj/item/grenade/spawnergrenade/manhacks
|
||||
name = "manhack delivery grenade"
|
||||
desc = "It is set to detonate in 5 seconds. It will unleash a swarm of deadly manhack robots that will attack everyone but you and your allies."
|
||||
spawner_type = /mob/living/simple_animal/hostile/viscerator
|
||||
@@ -47,21 +47,21 @@
|
||||
origin_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 4, TECH_ILLEGAL = 4)
|
||||
flash = FALSE
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/spesscarp
|
||||
/obj/item/grenade/spawnergrenade/spesscarp
|
||||
name = "carp delivery grenade"
|
||||
spawner_type = /mob/living/simple_animal/hostile/carp
|
||||
deliveryamt = 5
|
||||
origin_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 4, TECH_ILLEGAL = 4)
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/singularity
|
||||
/obj/item/grenade/spawnergrenade/singularity
|
||||
name = "singularity grenade"
|
||||
spawner_type = /obj/singularity
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/singularity/toy
|
||||
/obj/item/grenade/spawnergrenade/singularity/toy
|
||||
spawner_type = /obj/item/toy/spinningtoy
|
||||
fake = TRUE
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/fake_carp
|
||||
/obj/item/grenade/spawnergrenade/fake_carp
|
||||
origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2, TECH_BLUESPACE = 5)
|
||||
spawner_type = /mob/living/simple_animal/hostile/carp/holodeck
|
||||
deliveryamt = 4
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/handcuffs
|
||||
/obj/item/handcuffs
|
||||
name = "handcuffs"
|
||||
desc = "Use this to keep prisoners in line."
|
||||
gender = PLURAL
|
||||
@@ -19,7 +19,7 @@
|
||||
var/cuff_type = "handcuffs"
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
|
||||
/obj/item/weapon/handcuffs/attack(var/mob/living/carbon/C, var/mob/living/user)
|
||||
/obj/item/handcuffs/attack(var/mob/living/carbon/C, var/mob/living/user)
|
||||
|
||||
if(!user.IsAdvancedToolUser())
|
||||
return
|
||||
@@ -37,7 +37,7 @@
|
||||
//Or just. You know. Don't check for it and place the handcuffs anyways!
|
||||
place_handcuffs(C, user)
|
||||
|
||||
/obj/item/weapon/handcuffs/proc/place_handcuffs(var/mob/living/carbon/target, var/mob/user)
|
||||
/obj/item/handcuffs/proc/place_handcuffs(var/mob/living/carbon/target, var/mob/user)
|
||||
playsound(src.loc, cuff_sound, 30, 1, -2)
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
@@ -69,7 +69,7 @@
|
||||
target.drop_r_hand()
|
||||
target.drop_l_hand()
|
||||
// Apply cuffs.
|
||||
var/obj/item/weapon/handcuffs/cuffs = src
|
||||
var/obj/item/handcuffs/cuffs = src
|
||||
if(dispenser)
|
||||
cuffs = new(target)
|
||||
else
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
last_chew = world.time
|
||||
|
||||
/obj/item/weapon/handcuffs/cable
|
||||
/obj/item/handcuffs/cable
|
||||
name = "cable restraints"
|
||||
desc = "Looks like some cables tied together. Could be used to tie something up."
|
||||
icon_state = "cuff_white"
|
||||
@@ -114,45 +114,45 @@
|
||||
cuff_type = "cable restraints"
|
||||
elastic = 1
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/red
|
||||
/obj/item/handcuffs/cable/red
|
||||
color = "#DD0000"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/yellow
|
||||
/obj/item/handcuffs/cable/yellow
|
||||
color = "#DDDD00"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/blue
|
||||
/obj/item/handcuffs/cable/blue
|
||||
color = "#0000DD"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/green
|
||||
/obj/item/handcuffs/cable/green
|
||||
color = "#00DD00"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/pink
|
||||
/obj/item/handcuffs/cable/pink
|
||||
color = "#DD00DD"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/orange
|
||||
/obj/item/handcuffs/cable/orange
|
||||
color = "#DD8800"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/cyan
|
||||
/obj/item/handcuffs/cable/cyan
|
||||
color = "#00DDDD"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/white
|
||||
/obj/item/handcuffs/cable/white
|
||||
color = "#FFFFFF"
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/attackby(var/obj/item/I, mob/user as mob)
|
||||
/obj/item/handcuffs/cable/attackby(var/obj/item/I, mob/user as mob)
|
||||
..()
|
||||
if(istype(I, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/R = I
|
||||
if (R.use(1))
|
||||
var/obj/item/weapon/material/wirerod/W = new(get_turf(user))
|
||||
var/obj/item/material/wirerod/W = new(get_turf(user))
|
||||
user.put_in_hands(W)
|
||||
to_chat(user, "<span class='notice'>You wrap the cable restraint around the top of the rod.</span>")
|
||||
qdel(src)
|
||||
update_icon(user)
|
||||
|
||||
/obj/item/weapon/handcuffs/cyborg
|
||||
/obj/item/handcuffs/cyborg
|
||||
dispenser = 1
|
||||
|
||||
/obj/item/weapon/handcuffs/cable/tape
|
||||
/obj/item/handcuffs/cable/tape
|
||||
name = "tape restraints"
|
||||
desc = "DIY!"
|
||||
icon_state = "tape_cross"
|
||||
@@ -161,7 +161,7 @@
|
||||
breakouttime = 200
|
||||
cuff_type = "duct tape"
|
||||
|
||||
/obj/item/weapon/handcuffs/ziptie
|
||||
/obj/item/handcuffs/ziptie
|
||||
name = "ziptie"
|
||||
desc = " A sturdy and reliable plastic ziptie for binding the wrists."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
//uncomment when this is updated to match storage update
|
||||
/*
|
||||
/obj/item/weapon/seedbag
|
||||
/obj/item/seedbag
|
||||
icon = 'icons/obj/hydroponics_machines.dmi'
|
||||
icon_state = "seedbag"
|
||||
name = "Seed Bag"
|
||||
@@ -14,11 +14,11 @@
|
||||
w_class = 1
|
||||
var/list/item_quants = list()
|
||||
|
||||
/obj/item/weapon/seedbag/attack_self(mob/user as mob)
|
||||
/obj/item/seedbag/attack_self(mob/user as mob)
|
||||
user.machine = src
|
||||
interact(user)
|
||||
|
||||
/obj/item/weapon/seedbag/verb/toggle_mode()
|
||||
/obj/item/seedbag/verb/toggle_mode()
|
||||
set name = "Switch Bagging Method"
|
||||
set category = "Object"
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
|
||||
/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
..()
|
||||
if (istype(O, /obj/item/weapon/seedbag))
|
||||
var/obj/item/weapon/seedbag/S = O
|
||||
if (istype(O, /obj/item/seedbag))
|
||||
var/obj/item/seedbag/S = O
|
||||
if (S.mode == 1)
|
||||
for (var/obj/item/seeds/G in locate(src.x,src.y,src.z))
|
||||
if (S.contents.len < S.capacity)
|
||||
@@ -58,7 +58,7 @@
|
||||
S.updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/item/weapon/seedbag/interact(mob/user as mob)
|
||||
/obj/item/seedbag/interact(mob/user as mob)
|
||||
|
||||
var/dat = "<TT><b>Select an item:</b><br>"
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
onclose(user, "seedbag")
|
||||
return
|
||||
|
||||
/obj/item/weapon/seedbag/Topic(href, href_list)
|
||||
/obj/item/seedbag/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/item/weapon/seedbag/updateUsrDialog()
|
||||
/obj/item/seedbag/updateUsrDialog()
|
||||
var/list/nearby = range(1, src)
|
||||
for(var/mob/M in nearby)
|
||||
if ((M.client && M.machine == src))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define MALFUNCTION_PERMANENT 2
|
||||
|
||||
|
||||
/obj/item/weapon/implant
|
||||
/obj/item/implant
|
||||
name = "implant"
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "implant"
|
||||
@@ -14,32 +14,32 @@
|
||||
var/allow_reagents = 0
|
||||
var/malfunction = 0
|
||||
|
||||
/obj/item/weapon/implant/Initialize()
|
||||
/obj/item/implant/Initialize()
|
||||
. = ..()
|
||||
implants += src
|
||||
|
||||
/obj/item/weapon/implant/proc/trigger(emote, source as mob)
|
||||
/obj/item/implant/proc/trigger(emote, source as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/implant/proc/activate()
|
||||
/obj/item/implant/proc/activate()
|
||||
return
|
||||
|
||||
// What does the implant do upon injection?
|
||||
// return 0 if the implant fails (ex. Revhead and loyalty implant.)
|
||||
// return 1 if the implant succeeds (ex. Nonrevhead and loyalty implant.)
|
||||
/obj/item/weapon/implant/proc/implanted(var/mob/source)
|
||||
/obj/item/implant/proc/implanted(var/mob/source)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/proc/get_data()
|
||||
/obj/item/implant/proc/get_data()
|
||||
return "No information available"
|
||||
|
||||
/obj/item/weapon/implant/proc/hear(message, source as mob)
|
||||
/obj/item/implant/proc/hear(message, source as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/implant/proc/islegal()
|
||||
/obj/item/implant/proc/islegal()
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/implant/proc/meltdown() //breaks it down, making implant unrecongizible
|
||||
/obj/item/implant/proc/meltdown() //breaks it down, making implant unrecongizible
|
||||
to_chat(imp_in, "<span class='warning'>You feel something melting inside [part ? "your [part.name]" : "you"]!</span>")
|
||||
if (part)
|
||||
part.take_damage(burn = 15, used_weapon = "Electronics meltdown")
|
||||
@@ -51,16 +51,16 @@
|
||||
icon_state = "implant_melted"
|
||||
malfunction = MALFUNCTION_PERMANENT
|
||||
|
||||
/obj/item/weapon/implant/Destroy()
|
||||
/obj/item/implant/Destroy()
|
||||
if(part)
|
||||
part.implants.Remove(src)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
implants -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/implant/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/implanter))
|
||||
var/obj/item/weapon/implanter/implanter = I
|
||||
/obj/item/implant/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/implanter))
|
||||
var/obj/item/implanter/implanter = I
|
||||
if(implanter.imp)
|
||||
return // It's full.
|
||||
user.drop_from_inventory(src)
|
||||
@@ -70,13 +70,13 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/implant/tracking
|
||||
/obj/item/implant/tracking
|
||||
name = "tracking implant"
|
||||
desc = "Track with this."
|
||||
var/id = 1.0
|
||||
|
||||
|
||||
/obj/item/weapon/implant/tracking/get_data()
|
||||
/obj/item/implant/tracking/get_data()
|
||||
. = {"<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Tracking Beacon<BR>
|
||||
<b>Life:</b> 10 minutes after death of host<BR>
|
||||
@@ -92,7 +92,7 @@ disintegrate into bio-safe elements.<BR>
|
||||
circuitry. As a result neurotoxins can cause massive damage.<HR>
|
||||
Implant Specifics:<BR>"}
|
||||
|
||||
/obj/item/weapon/implant/tracking/emp_act(severity)
|
||||
/obj/item/implant/tracking/emp_act(severity)
|
||||
if (malfunction) //no, dawg, you can't malfunction while you are malfunctioning
|
||||
return
|
||||
malfunction = MALFUNCTION_TEMPORARY
|
||||
@@ -109,12 +109,12 @@ Implant Specifics:<BR>"}
|
||||
malfunction--
|
||||
|
||||
|
||||
/obj/item/weapon/implant/dexplosive
|
||||
/obj/item/implant/dexplosive
|
||||
name = "explosive"
|
||||
desc = "And boom goes the weasel."
|
||||
icon_state = "implant_evil"
|
||||
|
||||
/obj/item/weapon/implant/dexplosive/get_data()
|
||||
/obj/item/implant/dexplosive/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Robust Corp RX-78 Employee Management Implant<BR>
|
||||
@@ -126,28 +126,28 @@ Implant Specifics:<BR>"}
|
||||
<b>Special Features:</b> Explodes<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
|
||||
/obj/item/weapon/implant/dexplosive/trigger(emote, source as mob)
|
||||
/obj/item/implant/dexplosive/trigger(emote, source as mob)
|
||||
if(emote == "deathgasp")
|
||||
src.activate("death")
|
||||
|
||||
/obj/item/weapon/implant/dexplosive/activate(var/cause)
|
||||
/obj/item/implant/dexplosive/activate(var/cause)
|
||||
if((!cause) || (!src.imp_in)) return 0
|
||||
explosion(src, -1, 0, 2, 3, 0)//This might be a bit much, dono will have to see.
|
||||
if(src.imp_in)
|
||||
src.imp_in.gib()
|
||||
|
||||
/obj/item/weapon/implant/dexplosive/islegal()
|
||||
/obj/item/implant/dexplosive/islegal()
|
||||
return 0
|
||||
|
||||
//BS12 Explosive
|
||||
/obj/item/weapon/implant/explosive
|
||||
/obj/item/implant/explosive
|
||||
name = "explosive implant"
|
||||
desc = "A military grade micro bio-explosive. Highly dangerous."
|
||||
var/elevel = "Localized Limb"
|
||||
var/phrase = "supercalifragilisticexpialidocious"
|
||||
icon_state = "implant_evil"
|
||||
|
||||
/obj/item/weapon/implant/explosive/get_data()
|
||||
/obj/item/implant/explosive/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Robust Corp RX-78 Intimidation Class Implant<BR>
|
||||
@@ -159,17 +159,17 @@ Implant Specifics:<BR>"}
|
||||
<b>Special Features:</b> Explodes<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
|
||||
/obj/item/weapon/implant/explosive/hear_talk(mob/M as mob, msg)
|
||||
/obj/item/implant/explosive/hear_talk(mob/M as mob, msg)
|
||||
hear(msg)
|
||||
|
||||
/obj/item/weapon/implant/explosive/hear(var/msg)
|
||||
/obj/item/implant/explosive/hear(var/msg)
|
||||
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
|
||||
msg = replace_characters(msg, replacechars)
|
||||
if(findtext(msg,phrase))
|
||||
activate()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/implant/explosive/activate()
|
||||
/obj/item/implant/explosive/activate()
|
||||
if (malfunction == MALFUNCTION_PERMANENT)
|
||||
return
|
||||
|
||||
@@ -223,7 +223,7 @@ Implant Specifics:<BR>"}
|
||||
data.z_transfer = z_transfer
|
||||
SSexplosives.queue(data)
|
||||
|
||||
/obj/item/weapon/implant/explosive/implanted(mob/source as mob)
|
||||
/obj/item/implant/explosive/implanted(mob/source as mob)
|
||||
elevel = alert("What sort of explosion would you prefer?", "Implant Intent", "Localized Limb", "Destroy Body", "Full Explosion")
|
||||
phrase = input("Choose activation phrase:") as text
|
||||
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
|
||||
@@ -232,7 +232,7 @@ Implant Specifics:<BR>"}
|
||||
to_chat(usr, "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate.")
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/explosive/emp_act(severity)
|
||||
/obj/item/implant/explosive/emp_act(severity)
|
||||
if (malfunction)
|
||||
return
|
||||
malfunction = MALFUNCTION_TEMPORARY
|
||||
@@ -252,10 +252,10 @@ Implant Specifics:<BR>"}
|
||||
spawn (20)
|
||||
malfunction--
|
||||
|
||||
/obj/item/weapon/implant/explosive/islegal()
|
||||
/obj/item/implant/explosive/islegal()
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/implant/explosive/proc/small_boom()
|
||||
/obj/item/implant/explosive/proc/small_boom()
|
||||
if (ishuman(imp_in) && part)
|
||||
imp_in.visible_message("<span class='warning'>Something beeps inside [imp_in][part ? "'s [part.name]" : ""]!</span>")
|
||||
playsound(loc, 'sound/items/countdown.ogg', 75, 1, -3)
|
||||
@@ -272,21 +272,21 @@ Implant Specifics:<BR>"}
|
||||
explosion(get_turf(imp_in), -1, -1, 2, 3)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/implant/explosive/New()
|
||||
/obj/item/implant/explosive/New()
|
||||
..()
|
||||
listening_objects += src
|
||||
|
||||
/obj/item/weapon/implant/explosive/Destroy()
|
||||
/obj/item/implant/explosive/Destroy()
|
||||
listening_objects -= src
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/implant/chem
|
||||
/obj/item/implant/chem
|
||||
name = "chemical implant"
|
||||
desc = "Injects things."
|
||||
allow_reagents = 1
|
||||
|
||||
/obj/item/weapon/implant/chem/get_data()
|
||||
/obj/item/implant/chem/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Robust Corp MJ-420 Prisoner Management Implant<BR>
|
||||
@@ -304,20 +304,20 @@ Can only be loaded while still in its original case.<BR>
|
||||
the implant may become unstable and either pre-maturely inject the subject or simply break."}
|
||||
|
||||
|
||||
/obj/item/weapon/implant/chem/New()
|
||||
/obj/item/implant/chem/New()
|
||||
..()
|
||||
var/datum/reagents/R = new/datum/reagents(50)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
|
||||
/obj/item/weapon/implant/chem/trigger(emote, source as mob)
|
||||
/obj/item/implant/chem/trigger(emote, source as mob)
|
||||
if(emote == "deathgasp")
|
||||
src.activate(src.reagents.total_volume)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implant/chem/activate(var/cause)
|
||||
/obj/item/implant/chem/activate(var/cause)
|
||||
if((!cause) || (!src.imp_in)) return 0
|
||||
var/mob/living/carbon/R = src.imp_in
|
||||
src.reagents.trans_to_mob(R, cause, CHEM_BLOOD)
|
||||
@@ -327,7 +327,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
spawn(0)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/implant/chem/emp_act(severity)
|
||||
/obj/item/implant/chem/emp_act(severity)
|
||||
if (malfunction)
|
||||
return
|
||||
malfunction = MALFUNCTION_TEMPORARY
|
||||
@@ -343,11 +343,11 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
spawn(20)
|
||||
malfunction--
|
||||
|
||||
/obj/item/weapon/implant/loyalty
|
||||
/obj/item/implant/loyalty
|
||||
name = "loyalty implant"
|
||||
desc = "Makes you loyal or such."
|
||||
|
||||
/obj/item/weapon/implant/loyalty/get_data()
|
||||
/obj/item/implant/loyalty/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> [current_map.company_name] Employee Management Implant<BR>
|
||||
@@ -359,7 +359,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
<b>Special Features:</b> Will prevent and cure most forms of brainwashing.<BR>
|
||||
<b>Integrity:</b> Implant will last so long as the nanobots are inside the bloodstream."}
|
||||
|
||||
/obj/item/weapon/implant/loyalty/implanted(mob/M)
|
||||
/obj/item/implant/loyalty/implanted(mob/M)
|
||||
if(!istype(M, /mob/living/carbon/human)) return 0
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/antagonist/antag_data = get_antag_data(H.mind.special_role)
|
||||
@@ -371,7 +371,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
to_chat(H, "<span class='notice'>You feel a surge of loyalty towards [current_map.company_name].</span>")
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/loyalty/emp_act(severity)
|
||||
/obj/item/implant/loyalty/emp_act(severity)
|
||||
if (malfunction)
|
||||
return
|
||||
malfunction = MALFUNCTION_TEMPORARY
|
||||
@@ -386,26 +386,26 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
spawn(20)
|
||||
malfunction--
|
||||
|
||||
/obj/item/weapon/implant/loyalty/implanted(mob/source as mob)
|
||||
/obj/item/implant/loyalty/implanted(mob/source as mob)
|
||||
//mobname = source.real_name
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/loyalty/ipc
|
||||
/obj/item/implant/loyalty/ipc
|
||||
name = "loyalty chip"
|
||||
desc = "A device that sets directives programmed for loyalty to NanoTrasen on the synthetic subject. Will not work on organics."
|
||||
|
||||
/obj/item/weapon/implant/loyalty/ipc/implanted(mob/M)
|
||||
/obj/item/implant/loyalty/ipc/implanted(mob/M)
|
||||
|
||||
if (!isipc(M))
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/weapon/implant/loyalty/sol
|
||||
/obj/item/implant/loyalty/sol
|
||||
name = "loyalty implant"
|
||||
desc = "Makes you loyal to the Sol Alliance, or to a certain individual."
|
||||
|
||||
/obj/item/weapon/implant/loyalty/sol/implanted(mob/M)
|
||||
/obj/item/implant/loyalty/sol/implanted(mob/M)
|
||||
if(!istype(M, /mob/living/carbon/human)) return 0
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/datum/antagonist/antag_data = get_antag_data(H.mind.special_role)
|
||||
@@ -417,12 +417,12 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
to_chat(H, "<span class='notice'>You feel a surge of loyalty towards Admiral Michael Frost.</span>")
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/adrenalin
|
||||
/obj/item/implant/adrenalin
|
||||
name = "adrenalin"
|
||||
desc = "Removes all stuns and knockdowns."
|
||||
var/uses
|
||||
|
||||
/obj/item/weapon/implant/adrenalin/get_data()
|
||||
/obj/item/implant/adrenalin/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> Cybersun Industries Adrenalin Implant<BR>
|
||||
@@ -435,7 +435,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
<b>Integrity:</b> Implant can only be used three times before the nanobots are depleted."}
|
||||
|
||||
|
||||
/obj/item/weapon/implant/adrenalin/trigger(emote, mob/source as mob)
|
||||
/obj/item/implant/adrenalin/trigger(emote, mob/source as mob)
|
||||
if (src.uses < 1)
|
||||
return 0
|
||||
if (emote == "pale")
|
||||
@@ -446,18 +446,18 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
source.SetParalysis(0)
|
||||
|
||||
|
||||
/obj/item/weapon/implant/adrenalin/implanted(mob/source)
|
||||
/obj/item/implant/adrenalin/implanted(mob/source)
|
||||
source.mind.store_memory("A implant can be activated by using the pale emote, <B>say *pale</B> to attempt to activate.", 0, 0)
|
||||
to_chat(source, "The implanted freedom implant can be activated by using the pale emote, <B>say *pale</B> to attempt to activate.")
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/weapon/implant/death_alarm
|
||||
/obj/item/implant/death_alarm
|
||||
name = "death alarm implant"
|
||||
desc = "An alarm which monitors host vital signs and transmits a radio message upon death."
|
||||
var/mobname = "Will Robinson"
|
||||
|
||||
/obj/item/weapon/implant/death_alarm/get_data()
|
||||
/obj/item/implant/death_alarm/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> [current_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||
@@ -469,7 +469,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
|
||||
/obj/item/weapon/implant/death_alarm/process()
|
||||
/obj/item/implant/death_alarm/process()
|
||||
if (!implanted)
|
||||
return
|
||||
var/mob/M = imp_in
|
||||
@@ -480,7 +480,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
else if(M.stat == 2)
|
||||
activate("death")
|
||||
|
||||
/obj/item/weapon/implant/death_alarm/activate(var/cause)
|
||||
/obj/item/implant/death_alarm/activate(var/cause)
|
||||
var/mob/M = imp_in
|
||||
var/area/t = get_area(M)
|
||||
switch (cause)
|
||||
@@ -504,7 +504,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
qdel(a)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/weapon/implant/death_alarm/emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this
|
||||
/obj/item/implant/death_alarm/emp_act(severity) //for some reason alarms stop going off in case they are emp'd, even without this
|
||||
if (malfunction) //so I'm just going to add a meltdown chance here
|
||||
return
|
||||
malfunction = MALFUNCTION_TEMPORARY
|
||||
@@ -520,19 +520,19 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
spawn(20)
|
||||
malfunction--
|
||||
|
||||
/obj/item/weapon/implant/death_alarm/implanted(mob/source as mob)
|
||||
/obj/item/implant/death_alarm/implanted(mob/source as mob)
|
||||
mobname = source.real_name
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/compressed
|
||||
/obj/item/implant/compressed
|
||||
name = "compressed matter implant"
|
||||
desc = "Based on compressed matter technology, can store a single item."
|
||||
icon_state = "implant_evil"
|
||||
var/activation_emote = "sigh"
|
||||
var/obj/item/scanned = null
|
||||
|
||||
/obj/item/weapon/implant/compressed/get_data()
|
||||
/obj/item/implant/compressed/get_data()
|
||||
. = {"
|
||||
<b>Implant Specifications:</b><BR>
|
||||
<b>Name:</b> [current_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor<BR>
|
||||
@@ -544,7 +544,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
|
||||
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
|
||||
|
||||
/obj/item/weapon/implant/compressed/trigger(emote, mob/source as mob)
|
||||
/obj/item/implant/compressed/trigger(emote, mob/source as mob)
|
||||
if (src.scanned == null)
|
||||
return 0
|
||||
|
||||
@@ -552,7 +552,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
to_chat(source, "The air glows as \the [src.scanned.name] uncompresses.")
|
||||
activate()
|
||||
|
||||
/obj/item/weapon/implant/compressed/activate()
|
||||
/obj/item/implant/compressed/activate()
|
||||
var/turf/t = get_turf(src)
|
||||
if (imp_in)
|
||||
imp_in.put_in_hands(scanned)
|
||||
@@ -560,12 +560,12 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
scanned.forceMove(t)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/implant/compressed/implanted(mob/source as mob)
|
||||
/obj/item/implant/compressed/implanted(mob/source as mob)
|
||||
src.activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
|
||||
if (source.mind)
|
||||
source.mind.store_memory("Compressed matter implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
|
||||
to_chat(source, "The implanted compressed matter implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.")
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/compressed/islegal()
|
||||
/obj/item/implant/compressed/islegal()
|
||||
return 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
|
||||
|
||||
/obj/item/weapon/implantcase
|
||||
/obj/item/implantcase
|
||||
name = "glass case"
|
||||
desc = "A case containing an implant."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
@@ -9,16 +9,16 @@
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 1.0
|
||||
var/obj/item/weapon/implant/imp = null
|
||||
var/obj/item/implant/imp = null
|
||||
|
||||
/obj/item/weapon/implantcase/proc/update()
|
||||
/obj/item/implantcase/proc/update()
|
||||
if (src.imp)
|
||||
src.icon_state = text("implantcase-[]", src.imp.implant_color)
|
||||
else
|
||||
src.icon_state = "implantcase-0"
|
||||
return
|
||||
|
||||
/obj/item/weapon/implantcase/attackby(obj/item/weapon/I as obj, mob/user as mob)
|
||||
/obj/item/implantcase/attackby(obj/item/I as obj, mob/user as mob)
|
||||
..()
|
||||
if (I.ispen())
|
||||
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
|
||||
@@ -31,7 +31,7 @@
|
||||
src.name = text("Glass Case - '[]'", t)
|
||||
else
|
||||
src.name = "Glass Case"
|
||||
else if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
||||
else if(istype(I, /obj/item/reagent_containers/syringe))
|
||||
if(!src.imp) return
|
||||
if(!src.imp.allow_reagents) return
|
||||
if(src.imp.reagents.total_volume >= src.imp.reagents.maximum_volume)
|
||||
@@ -40,8 +40,8 @@
|
||||
var/trans = I.reagents.trans_to_obj(src.imp, 5)
|
||||
if (trans > 0)
|
||||
to_chat(user, "<span class='notice'>You inject [trans] units of the solution. The syringe now contains [I.reagents.total_volume] units.</span>")
|
||||
else if (istype(I, /obj/item/weapon/implanter))
|
||||
var/obj/item/weapon/implanter/M = I
|
||||
else if (istype(I, /obj/item/implanter))
|
||||
var/obj/item/implanter/M = I
|
||||
if (M.imp)
|
||||
if ((src.imp || M.imp.implanted))
|
||||
return
|
||||
@@ -62,100 +62,100 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/tracking
|
||||
/obj/item/implantcase/tracking
|
||||
name = "glass case - 'tracking'"
|
||||
desc = "A case containing a tracking implant."
|
||||
icon_state = "implantcase-b"
|
||||
|
||||
/obj/item/weapon/implantcase/tracking/New()
|
||||
src.imp = new /obj/item/weapon/implant/tracking( src )
|
||||
/obj/item/implantcase/tracking/New()
|
||||
src.imp = new /obj/item/implant/tracking( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/explosive
|
||||
/obj/item/implantcase/explosive
|
||||
name = "glass case - 'explosive'"
|
||||
desc = "A case containing an explosive implant."
|
||||
icon_state = "implantcase-r"
|
||||
|
||||
/obj/item/weapon/implantcase/explosive/New()
|
||||
src.imp = new /obj/item/weapon/implant/explosive( src )
|
||||
/obj/item/implantcase/explosive/New()
|
||||
src.imp = new /obj/item/implant/explosive( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/chem
|
||||
/obj/item/implantcase/chem
|
||||
name = "glass case - 'chem'"
|
||||
desc = "A case containing a chemical implant."
|
||||
icon_state = "implantcase-b"
|
||||
|
||||
/obj/item/weapon/implantcase/chem/New()
|
||||
src.imp = new /obj/item/weapon/implant/chem( src )
|
||||
/obj/item/implantcase/chem/New()
|
||||
src.imp = new /obj/item/implant/chem( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/loyalty
|
||||
/obj/item/implantcase/loyalty
|
||||
name = "glass case - 'loyalty'"
|
||||
desc = "A case containing a loyalty implant."
|
||||
icon_state = "implantcase-r"
|
||||
|
||||
/obj/item/weapon/implantcase/loyalty/New()
|
||||
src.imp = new /obj/item/weapon/implant/loyalty( src )
|
||||
/obj/item/implantcase/loyalty/New()
|
||||
src.imp = new /obj/item/implant/loyalty( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/death_alarm
|
||||
/obj/item/implantcase/death_alarm
|
||||
name = "glass case - 'death alarm'"
|
||||
desc = "A case containing a death alarm implant."
|
||||
icon_state = "implantcase-b"
|
||||
|
||||
/obj/item/weapon/implantcase/death_alarm/New()
|
||||
src.imp = new /obj/item/weapon/implant/death_alarm( src )
|
||||
/obj/item/implantcase/death_alarm/New()
|
||||
src.imp = new /obj/item/implant/death_alarm( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/freedom
|
||||
/obj/item/implantcase/freedom
|
||||
name = "glass case - 'freedom'"
|
||||
desc = "A case containing a freedom implant."
|
||||
icon_state = "implantcase-r"
|
||||
|
||||
/obj/item/weapon/implantcase/freedom/New()
|
||||
src.imp = new /obj/item/weapon/implant/freedom( src )
|
||||
/obj/item/implantcase/freedom/New()
|
||||
src.imp = new /obj/item/implant/freedom( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/adrenalin
|
||||
/obj/item/implantcase/adrenalin
|
||||
name = "glass case - 'adrenalin'"
|
||||
desc = "A case containing an adrenalin implant."
|
||||
icon_state = "implantcase-b"
|
||||
|
||||
/obj/item/weapon/implantcase/adrenalin/New()
|
||||
src.imp = new /obj/item/weapon/implant/adrenalin( src )
|
||||
/obj/item/implantcase/adrenalin/New()
|
||||
src.imp = new /obj/item/implant/adrenalin( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/dexplosive
|
||||
/obj/item/implantcase/dexplosive
|
||||
name = "glass case - 'explosive'"
|
||||
desc = "A case containing an explosive."
|
||||
icon_state = "implantcase-r"
|
||||
|
||||
/obj/item/weapon/implantcase/dexplosive/New()
|
||||
src.imp = new /obj/item/weapon/implant/dexplosive( src )
|
||||
/obj/item/implantcase/dexplosive/New()
|
||||
src.imp = new /obj/item/implant/dexplosive( src )
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/implantcase/health
|
||||
/obj/item/implantcase/health
|
||||
name = "glass case - 'health'"
|
||||
desc = "A case containing a health tracking implant."
|
||||
icon_state = "implantcase-b"
|
||||
|
||||
/obj/item/weapon/implantcase/health/New()
|
||||
src.imp = new /obj/item/weapon/implant/health( src )
|
||||
/obj/item/implantcase/health/New()
|
||||
src.imp = new /obj/item/implant/health( src )
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
var/ready = 1
|
||||
var/malfunction = 0
|
||||
var/list/obj/item/weapon/implant/loyalty/implant_list = list()
|
||||
var/list/obj/item/implant/loyalty/implant_list = list()
|
||||
var/max_implants = 5
|
||||
var/injection_cooldown = 600
|
||||
var/replenish_cooldown = 6000
|
||||
@@ -74,8 +74,8 @@
|
||||
return
|
||||
|
||||
|
||||
attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
|
||||
if(istype(G, /obj/item/weapon/grab))
|
||||
attackby(var/obj/item/G as obj, var/mob/user as mob)
|
||||
if(istype(G, /obj/item/grab))
|
||||
if(!ismob(G:affecting))
|
||||
return
|
||||
for(var/mob/living/carbon/slime/M in range(1,G:affecting))
|
||||
@@ -128,9 +128,9 @@
|
||||
if (!istype(M, /mob/living/carbon))
|
||||
return
|
||||
if(!implant_list.len) return
|
||||
for(var/obj/item/weapon/implant/loyalty/imp in implant_list)
|
||||
for(var/obj/item/implant/loyalty/imp in implant_list)
|
||||
if(!imp) continue
|
||||
if(istype(imp, /obj/item/weapon/implant/loyalty))
|
||||
if(istype(imp, /obj/item/implant/loyalty))
|
||||
for (var/mob/O in viewers(M, null))
|
||||
O.show_message("<span class='warning'>\The [M] has been implanted by \the [src].</span>", 1)
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
|
||||
add_implants()
|
||||
for(var/i=0, i<src.max_implants, i++)
|
||||
var/obj/item/weapon/implant/loyalty/I = new /obj/item/weapon/implant/loyalty(src)
|
||||
var/obj/item/implant/loyalty/I = new /obj/item/implant/loyalty(src)
|
||||
implant_list += I
|
||||
return
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user