Polaris sync

This commit is contained in:
killer653
2017-10-27 15:30:24 -04:00
226 changed files with 3156 additions and 1491 deletions
+135
View File
@@ -0,0 +1,135 @@
/obj/item/weapon/antag_spawner
w_class = ITEMSIZE_TINY
var/used = 0
var/ghost_query_type = null
var/searching = FALSE
var/datum/effect/effect/system/spark_spread/sparks
/obj/item/weapon/antag_spawner/New()
..()
sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(5, 0, src)
sparks.attach(loc)
/obj/item/weapon/antag_spawner/Destroy()
qdel(sparks)
return ..()
/obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T)
return
/obj/item/weapon/antag_spawner/proc/equip_antag(mob/target)
return
/obj/item/weapon/antag_spawner/proc/request_player()
if(!ghost_query_type)
return
if(searching)
return // Already searching.
searching = TRUE
var/datum/ghost_query/Q = new ghost_query_type()
var/list/winner = Q.query()
if(winner.len)
var/mob/observer/dead/D = winner[1]
spawn_antag(D.client, get_turf(src))
else
reset_search()
return
/obj/item/weapon/antag_spawner/proc/reset_search()
searching = FALSE
return
/obj/item/weapon/antag_spawner/technomancer_apprentice
name = "apprentice teleporter"
desc = "A teleportation device, which will bring a less potent manipulator of space to you."
icon = 'icons/obj/objects.dmi'
icon_state = "oldshieldoff"
ghost_query_type = /datum/ghost_query/apprentice
/obj/item/weapon/antag_spawner/technomancer_apprentice/attack_self(mob/user)
user << "<span class='notice'>Teleporter attempting to lock on to your apprentice.</span>"
request_player()
/obj/item/weapon/antag_spawner/technomancer_apprentice/request_player()
icon_state = "oldshieldon"
..()
/obj/item/weapon/antag_spawner/technomancer_apprentice/reset_search()
..()
if(!used)
icon_state = "oldshieldoff"
visible_message("<span class='warning'>The teleporter failed to find the apprentice. Perhaps another attempt could be made later?</span>")
/obj/item/weapon/antag_spawner/technomancer_apprentice/spawn_antag(client/C, turf/T)
sparks.start()
var/mob/living/carbon/human/H = new/mob/living/carbon/human(T)
C.prefs.copy_to(H)
H.key = C.key
H << "<b>You are the Technomancer's apprentice! Your goal is to assist them in their mission at the [station_name()].</b>"
H << "<b>Your service has not gone unrewarded, however. Studying under them, you have learned how to use a Manipulation Core \
of your own. You also have a catalog, to purchase your own functions and equipment as you see fit.</b>"
H << "<b>It would be wise to speak to your master, and learn what their plans are for today.</b>"
spawn(1)
technomancers.add_antagonist(H.mind, 0, 1, 0, 0, 0)
equip_antag(H)
used = 1
qdel(src)
/obj/item/weapon/antag_spawner/technomancer_apprentice/equip_antag(mob/technomancer_mob)
var/datum/antagonist/technomancer/antag_datum = all_antag_types[MODE_TECHNOMANCER]
antag_datum.equip_apprentice(technomancer_mob)
/obj/item/weapon/antag_spawner/syndicate_drone
name = "drone teleporter"
desc = "A teleportation device, which will bring a powerful and loyal drone to you."
icon = 'icons/obj/objects.dmi'
icon_state = "oldshieldoff"
ghost_query_type = /datum/ghost_query/syndicate_drone
var/drone_type = null
/obj/item/weapon/antag_spawner/syndicate_drone/attack_self(mob/user)
to_chat(user, "<span class='notice'>Teleporter attempting to lock on to an available unit.</span>")
request_player()
/obj/item/weapon/antag_spawner/syndicate_drone/request_player()
icon_state = "oldshieldon"
..()
/obj/item/weapon/antag_spawner/syndicate_drone/reset_search()
..()
if(!used)
icon_state = "oldshieldoff"
visible_message("<span class='warning'>The teleporter failed to find any available. Perhaps another attempt could be made later?</span>")
/obj/item/weapon/antag_spawner/syndicate_drone/spawn_antag(client/C, turf/T)
sparks.start()
var/mob/living/silicon/robot/R = new drone_type(T)
// Put this text here before ckey change so that their laws are shown below it, since borg login() shows it.
to_chat(C, "<span class='notice'>You are a <b>Mercenary Drone</b>, activated to serve your team.</span>")
to_chat(C, "<span class='notice'><b>Be sure to examine your currently loaded lawset closely.</b> It would be wise \
to speak with your team, and learn what their plan is for today.</span>")
R.key = C.key
// R.Namepick() // Apparnetly making someone a merc lets them pick a name, so this isn't needed.
spawn(1)
mercs.add_antagonist(R.mind, FALSE, TRUE, FALSE, FALSE, FALSE)
//add_antagonist(var/datum/mind/player, var/ignore_role, var/do_not_equip, var/move_to_spawn, var/do_not_announce, var/preserve_appearance)
qdel(src)
/obj/item/weapon/antag_spawner/syndicate_drone/protector
drone_type = /mob/living/silicon/robot/syndicate/protector
/obj/item/weapon/antag_spawner/syndicate_drone/combat_medic
drone_type = /mob/living/silicon/robot/syndicate/combat_medic
/obj/item/weapon/antag_spawner/syndicate_drone/mechanist
drone_type = /mob/living/silicon/robot/syndicate/mechanist
@@ -7,6 +7,7 @@
w_class = ITEMSIZE_NORMAL
slot_flags = SLOT_BELT
show_messages = 0
preserve_item = 1
var/flush = null
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
@@ -985,7 +985,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
if(text_message && O.exonet)
O.exonet.send_message(chosen_communicator.exonet.address, "text", text_message)
src << "<span class='notice'>You have sent '[text_message]' to [chosen_communicator].</span>."
src << "<span class='notice'>You have sent '[text_message]' to [chosen_communicator].</span>"
exonet_messages.Add("<b>To [chosen_communicator]:</b><br>[text_message]")
log_pda("[usr] (COMM: [src]) sent \"[text_message]\" to [chosen_communicator]")
@@ -1132,4 +1132,4 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
/obj/machinery/camera/communicator/New()
..()
client_huds |= global_hud.whitense
client_huds |= global_hud.darkMask
client_huds |= global_hud.darkMask
+8
View File
@@ -11,6 +11,7 @@
slot_flags = SLOT_BACK
force = 5
throwforce = 6
preserve_item = 1
w_class = ITEMSIZE_LARGE
origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
action_button_name = "Remove/Replace Paddles"
@@ -542,6 +543,13 @@
var/mob/living/silicon/robot/R = src.loc
return (R.cell && R.cell.checked_use(charge_amt))
/obj/item/weapon/shockpaddles/robot/combat
name = "combat defibrillator paddles"
desc = "A pair of advanced shockpaddles powered by a robot's internal power cell, able to penetrate thick clothing. This version \
appears to be optimized for combat situations, foregoing the safety inhabitors in favor of a faster charging time."
safety = 0
chargetime = (1 SECONDS)
/*
Shockpaddles that are linked to a base unit
*/
@@ -7,6 +7,7 @@
slot_flags = SLOT_BELT
origin_tech = list(TECH_DATA = 2)
show_messages = 0
preserve_item = 1
var/obj/item/device/radio/radio
var/looking_for_personality = 0
+3 -2
View File
@@ -177,8 +177,9 @@
if(M.brainmob.mind)
for(var/mob/observer/dead/G in player_list)
if(G.can_reenter_corpse && G.mind == M.brainmob.mind)
ghost_can_reenter = 1
break
ghost_can_reenter = 1 //May come in use again at another point.
to_chat(user, "<span class='notice'>\The [W] is completely unresponsive; though it may be able to auto-resuscitate.</span>") //Jamming a ghosted brain into a borg is likely detrimental, and may result in some problems.
return
if(!ghost_can_reenter)
user << "<span class='notice'>\The [W] is completely unresponsive; there's no point.</span>"
return
@@ -175,3 +175,23 @@
R.emag_items = 1
return 1
/obj/item/borg/upgrade/language
name = "language module"
desc = "Used to let cyborgs other than clerical or service speak a variety of languages."
icon_state = "cyborg_upgrade3"
item_state = "cyborg_upgrade"
/obj/item/borg/upgrade/language/action(var/mob/living/silicon/robot/R)
if(..()) return 0
R.add_language(LANGUAGE_SOL_COMMON, 1)
R.add_language(LANGUAGE_TRADEBAND, 1)
R.add_language(LANGUAGE_UNATHI, 1)
R.add_language(LANGUAGE_SIIK, 1)
R.add_language(LANGUAGE_SKRELLIAN, 1)
R.add_language(LANGUAGE_GUTTER, 1)
R.add_language(LANGUAGE_SCHECHI, 1)
R.add_language(LANGUAGE_ROOTLOCAL, 1)
return 1
@@ -123,7 +123,6 @@
icon_state = "tile_white"
no_variants = FALSE
// VOREStation Edit
/obj/item/stack/tile/floor/techgrey
name = "grey techfloor tile"
singular_name = "grey techfloor tile"
@@ -142,7 +141,6 @@
icon_state = "tile_steel"
matter = list("plasteel" = SHEET_MATERIAL_AMOUNT / 4)
no_variants = FALSE
// VOREStation Edit End
/obj/item/stack/tile/floor/steel
name = "steel floor tile"
@@ -18,6 +18,7 @@ AI MODULES
throw_speed = 3
throw_range = 15
origin_tech = list(TECH_DATA = 3)
preserve_item = 1
var/datum/ai_laws/laws = null
/obj/item/weapon/aiModule/proc/install(var/atom/movable/AM, var/mob/living/user)
+4
View File
@@ -15,6 +15,7 @@
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 2)
matter = list(DEFAULT_WALL_MATERIAL = 50000)
preserve_item = 1
var/datum/effect/effect/system/spark_spread/spark_system
var/stored_matter = 0
var/max_stored_matter = 30
@@ -178,6 +179,9 @@
/obj/item/weapon/rcd/borg
canRwall = 1
/obj/item/weapon/rcd/borg/lesser
canRwall = FALSE
/obj/item/weapon/rcd/borg/useResource(var/amount, var/mob/user)
if(isrobot(user))
var/mob/living/silicon/robot/R = user
@@ -103,7 +103,7 @@
/obj/item/device/paicard,
/obj/item/device/violin,
/obj/item/weapon/storage/belt/utility/full,
/obj/item/clothing/accessory/horrible)
/obj/item/clothing/accessory/tie/horrible)
if(!ispath(gift_type,/obj/item)) return
@@ -23,6 +23,8 @@
var/primary_color = rgb(0,0,0) // Obtained by eyedroppering the stripe in the middle of the card
var/secondary_color = rgb(0,0,0) // Likewise for the oval in the top-left corner
var/datum/job/job_access_type = /datum/job/assistant // Job type to acquire access rights from, if any
//alt titles are handled a bit weirdly in order to unobtrusively integrate into existing ID system
var/assignment = null //can be alt title or the actual job
var/rank = null //actual job
@@ -110,52 +112,49 @@
usr << "The fingerprint hash on the card is [fingerprint_hash]."
return
/obj/item/weapon/card/id/New()
..()
var/datum/job/jobdatum
for(var/jobtype in typesof(/datum/job))
var/datum/job/J = new jobtype
if(J.title == rank)
jobdatum = J
access = jobdatum.get_access()
return
/obj/item/weapon/card/id/silver
name = "identification card"
desc = "A silver card which shows honour and dedication."
icon_state = "silver"
item_state = "silver_id"
/obj/item/weapon/card/id/silver/secretary/New()
..()
/obj/item/weapon/card/id/silver/secretary
assignment = "Command Secretary"
rank = "Command Secretary"
access |= list(access_heads)
job_access_type = /datum/job/secretary
/obj/item/weapon/card/id/silver/hop/New()
..()
/obj/item/weapon/card/id/silver/hop
assignment = "Head of Personnel"
rank = "Head of Personnel"
access |= list(access_security, access_sec_doors, access_brig, access_forensics_lockers,
access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue,
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_hop, access_RC_announce, access_keycard_auth, access_gateway)
job_access_type = /datum/job/hop
/obj/item/weapon/card/id/gold
name = "identification card"
desc = "A golden card which shows power and might."
icon_state = "gold"
item_state = "gold_id"
preserve_item = 1
/obj/item/weapon/card/id/gold/captain/New()
/obj/item/weapon/card/id/gold/captain
assignment = "Colony Director"
rank = "Colony Director"
access = get_all_station_access()
..()
job_access_type = /datum/job/captain
/obj/item/weapon/card/id/captains_spare
/obj/item/weapon/card/id/gold/captain/spare
name = "colony director's spare ID"
desc = "The spare ID of the High Lord himself."
icon_state = "gold"
item_state = "gold_id"
registered_name = "Colony Director"
assignment = "Colony Director"
/obj/item/weapon/card/id/captains_spare/New()
access = get_all_station_access()
..()
job_access_type = /datum/job/captain
/obj/item/weapon/card/id/synthetic
name = "\improper Synthetic ID"
@@ -165,13 +164,13 @@
assignment = "Synthetic"
/obj/item/weapon/card/id/synthetic/New()
access = get_all_station_access() + access_synth
..()
access = get_all_station_access() + access_synth
/obj/item/weapon/card/id/centcom
name = "\improper CentCom. ID"
desc = "An ID straight from Central Command."
icon_state = "centcom"
icon_state = "nanotrasen"
registered_name = "Central Command"
assignment = "General"
@@ -186,6 +185,7 @@
/obj/item/weapon/card/id/centcom/ERT
name = "\improper Emergency Response Team ID"
assignment = "Emergency Response Team"
icon_state = "centcom"
/obj/item/weapon/card/id/centcom/ERT/New()
..()
@@ -198,50 +198,41 @@
icon_state = "med"
primary_color = rgb(189,237,237)
secondary_color = rgb(223,255,255)
access = list(access_medical, access_medical_equip)
/obj/item/weapon/card/id/medical/doctor/New()
..()
/obj/item/weapon/card/id/medical/doctor
assignment = "Medical Doctor"
rank = "Medical Doctor"
access |= list(access_morgue, access_surgery, access_virology, access_eva)
job_access_type = /datum/job/doctor
/obj/item/weapon/card/id/medical/chemist/New()
..()
/obj/item/weapon/card/id/medical/chemist
assignment = "Chemist"
rank = "Chemist"
access |= list(access_chemistry)
job_access_type = /datum/job/chemist
/obj/item/weapon/card/id/medical/geneticist/New()
..()
/obj/item/weapon/card/id/medical/geneticist
assignment = "Geneticist"
rank = "Geneticist"
access |= list(access_morgue, access_genetics)
job_access_type = /datum/job/doctor //geneticist
/obj/item/weapon/card/id/medical/psychiatrist/New()
..()
/obj/item/weapon/card/id/medical/psychiatrist
assignment = "Psychiatrist"
rank = "Psychiatrist"
access |= list(access_psychiatrist)
job_access_type = /datum/job/psychiatrist
/obj/item/weapon/card/id/medical/paramedic/New()
..()
/obj/item/weapon/card/id/medical/paramedic
assignment = "Paramedic"
rank = "Paramedic"
access |= list(access_morgue, access_eva, access_maint_tunnels, access_external_airlocks)
job_access_type = /datum/job/paramedic
/obj/item/weapon/card/id/medical/head
name = "identification card"
desc = "A card which represents care and compassion."
assignment = "Chief Medical Officer"
rank = "Chief Medical Officer"
icon_state = "medGold"
primary_color = rgb(189,237,237)
secondary_color = rgb(255,223,127)
/obj/item/weapon/card/id/medical/head/New()
access |= list(access_morgue, access_genetics, access_heads, access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
access_keycard_auth, access_sec_doors, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels)
assignment = "Chief Medical Officer"
rank = "Chief Medical Officer"
job_access_type = /datum/job/cmo
/obj/item/weapon/card/id/security
name = "identification card"
@@ -249,40 +240,31 @@
icon_state = "sec"
primary_color = rgb(189,47,0)
secondary_color = rgb(223,127,95)
access = list(access_security, access_sec_doors, access_maint_tunnels, access_external_airlocks, access_eva)
/obj/item/weapon/card/id/security/officer/New()
..()
assignment = "Assignment"
/obj/item/weapon/card/id/security/officer
assignment = "Security Officer"
rank = "Security Officer"
access |= list(access_brig)
job_access_type = /datum/job/officer
/obj/item/weapon/card/id/security/detective/New()
..()
/obj/item/weapon/card/id/security/detective
assignment = "Detective"
rank = "Detective"
access |= list(access_forensics_lockers, access_morgue)
job_access_type = /datum/job/detective
/obj/item/weapon/card/id/security/warden/New()
..()
/obj/item/weapon/card/id/security/warden
assignment = "Warden"
rank = "Warden"
access |= list(access_brig, access_armory)
job_access_type = /datum/job/warden
/obj/item/weapon/card/id/security/head
name = "identification card"
desc = "A card which represents honor and protection."
icon_state = "secGold"
assignment = "Head of Security"
rank = "Head of Security"
primary_color = rgb(189,47,0)
secondary_color = rgb(255,223,127)
/obj/item/weapon/card/id/security/head/New()
..()
access |= list(access_brig, access_armory, access_forensics_lockers, access_morgue, access_all_personal_lockers,
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway)
assignment = "Head of Security"
rank = "Head of Security"
job_access_type = /datum/job/hos
/obj/item/weapon/card/id/engineering
name = "identification card"
@@ -290,33 +272,26 @@
icon_state = "eng"
primary_color = rgb(189,94,0)
secondary_color = rgb(223,159,95)
access = list(access_eva, access_engine, access_maint_tunnels, access_construction, access_external_airlocks)
/obj/item/weapon/card/id/engineering/engineer/New()
..()
/obj/item/weapon/card/id/engineering/engineer
assignment = "Station Engineer"
rank = "Station Engineer"
access |= list(access_engine_equip, access_tech_storage)
job_access_type = /datum/job/engineer
/obj/item/weapon/card/id/engineering/atmos/New()
..()
/obj/item/weapon/card/id/engineering/atmos
assignment = "Atmospheric Technician"
rank = "Atmospheric Technician"
access |= list(access_atmospherics, access_emergency_storage)
job_access_type = /datum/job/atmos
/obj/item/weapon/card/id/engineering/head
name = "identification card"
desc = "A card which represents creativity and ingenuity."
icon_state = "engGold"
assignment = "Chief Engineer"
rank = "Chief Engineer"
primary_color = rgb(189,94,0)
secondary_color = rgb(255,223,127)
/obj/item/weapon/card/id/engineering/head/New()
..()
access |= list(access_engine_equip, access_tech_storage, access_teleporter, access_atmospherics, access_emergency_storage,
access_heads, access_sec_doors, access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload)
assignment = "Chief Engineer"
rank = "Chief Engineer"
job_access_type = /datum/job/chief_engineer
/obj/item/weapon/card/id/science
name = "identification card"
@@ -324,40 +299,31 @@
icon_state = "sci"
primary_color = rgb(142,47,142)
secondary_color = rgb(191,127,191)
access = list(access_research)
/obj/item/weapon/card/id/science/scientist/New()
..()
/obj/item/weapon/card/id/science/scientist
assignment = "Scientist"
rank = "Scientist"
access |= list(access_tox, access_tox_storage, access_xenoarch)
job_access_type = /datum/job/scientist
/obj/item/weapon/card/id/science/xenobiologist/New()
..()
/obj/item/weapon/card/id/science/xenobiologist
assignment = "Xenobiologist"
rank = "Xenobiologist"
access |= list(access_xenobiology, access_hydroponics, access_tox_storage)
job_access_type = /datum/job/xenobiologist
/obj/item/weapon/card/id/science/roboticist/New()
..()
/obj/item/weapon/card/id/science/roboticist
assignment = "Roboticist"
rank = "Roboticist"
access |= list(access_robotics, access_tech_storage, access_morgue)
job_access_type = /datum/job/roboticist
/obj/item/weapon/card/id/science/head
name = "identification card"
desc = "A card which represents knowledge and reasoning."
icon_state = "sciGold"
assignment = "Research Director"
rank = "Research Director"
primary_color = rgb(142,47,142)
secondary_color = rgb(255,223,127)
/obj/item/weapon/card/id/science/head/New()
..()
access |= list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors,
access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, access_RC_announce, access_keycard_auth,
access_tcomsat, access_gateway, access_xenoarch)
assignment = "Research Director"
rank = "Research Director"
job_access_type = /datum/job/rd
/obj/item/weapon/card/id/cargo
name = "identification card"
@@ -365,90 +331,76 @@
icon_state = "cargo"
primary_color = rgb(142,94,0)
secondary_color = rgb(191,159,95)
access = list(access_mailsorting)
/obj/item/weapon/card/id/cargo/cargo_tech/New()
..()
/obj/item/weapon/card/id/cargo/cargo_tech
assignment = "Cargo Technician"
rank = "Cargo Technician"
access |= list(access_maint_tunnels, access_cargo, access_cargo_bot)
job_access_type = /datum/job/cargo_tech
/obj/item/weapon/card/id/cargo/mining/New()
..()
/obj/item/weapon/card/id/cargo/mining
assignment = "Shaft Miner"
rank = "Shaft Miner"
access |= list(access_mining, access_mining_station)
job_access_type = /datum/job/mining
/obj/item/weapon/card/id/cargo/head
name = "identification card"
desc = "A card which represents service and planning."
icon_state = "cargoGold"
assignment = "Quartermaster"
rank = "Quartermaster"
primary_color = rgb(142,94,0)
secondary_color = rgb(255,223,127)
/obj/item/weapon/card/id/cargo/head/New()
..()
access |= list(access_maint_tunnels, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
assignment = "Quartermaster"
rank = "Quartermaster"
job_access_type = /datum/job/qm
/obj/item/weapon/card/id/assistant
name = "identification card"
// assignment = "Assistant"
// rank = "Assistant"
access = list()
assignment = "Assistant"
rank = "Assistant"
job_access_type = /datum/job/assistant
/obj/item/weapon/card/id/civilian
name = "identification card"
desc = "A card issued to station civilian staff."
icon_state = "civ"
assignment = "Civilian"
rank = "Assistant"
primary_color = rgb(0,94,142)
secondary_color = rgb(95,159,191)
access = list()
assignment = "Civilian"
rank = "Assistant"
job_access_type = /datum/job/assistant
/obj/item/weapon/card/id/civilian/bartender/New()
..()
/obj/item/weapon/card/id/civilian/bartender
assignment = "Bartender"
rank = "Bartender"
access |= list(access_bar)
job_access_type = /datum/job/bartender
/obj/item/weapon/card/id/civilian/botanist/New()
..()
/obj/item/weapon/card/id/civilian/botanist
assignment = "Gardener"
rank = "Gardener"
access |= list(access_hydroponics)
job_access_type = /datum/job/hydro
/obj/item/weapon/card/id/civilian/chaplain/New()
..()
/obj/item/weapon/card/id/civilian/chaplain
assignment = "Chaplain"
rank = "Chaplain"
access |= list(access_chapel_office, access_crematorium)
job_access_type = /datum/job/chaplain
/obj/item/weapon/card/id/civilian/chef/New()
..()
/obj/item/weapon/card/id/civilian/chef
assignment = "Chef"
rank = "Chef"
access |= list(access_kitchen)
job_access_type = /datum/job/chef
/obj/item/weapon/card/id/civilian/internal_affairs_agent/New()
..()
/obj/item/weapon/card/id/civilian/internal_affairs_agent
assignment = "Internal Affairs Agent"
rank = "Internal Affairs Agent"
access |= list(access_lawyer, access_sec_doors, access_heads)
job_access_type = /datum/job/lawyer
/obj/item/weapon/card/id/civilian/janitor/New()
..()
/obj/item/weapon/card/id/civilian/janitor
assignment = "Janitor"
rank = "Janitor"
access |= list(access_janitor, access_maint_tunnels)
job_access_type = /datum/job/janitor
/obj/item/weapon/card/id/civilian/librarian/New()
..()
/obj/item/weapon/card/id/civilian/librarian
assignment = "Librarian"
rank = "Librarian"
access |= list(access_library)
job_access_type = /datum/job/librarian
/obj/item/weapon/card/id/civilian/head //This is not the HoP. There's no position that uses this right now.
name = "identification card"
@@ -34,6 +34,7 @@
throw_range = 7
maxcharge = 480
matter = list("metal" = 350, "glass" = 50)
preserve_item = 1
/obj/item/weapon/cell/device/weapon
name = "weapon power cell"
@@ -32,6 +32,7 @@
/obj/item/weapon/shield
name = "shield"
var/base_block_chance = 50
preserve_item = 1
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi',
@@ -1,6 +1,7 @@
//A storage item intended to be used by other items to provide storage functionality.
//Types that use this should consider overriding emp_act() and hear_talk(), unless they shield their contents somehow.
/obj/item/weapon/storage/internal
preserve_item = 1
var/obj/item/master_item
/obj/item/weapon/storage/internal/New(obj/item/MI)
@@ -9,6 +9,7 @@
max_w_class = ITEMSIZE_NORMAL
max_storage_space = ITEMSIZE_COST_NORMAL * 4 //The sum of the w_classes of all the items in this storage item.
req_access = list(access_armory)
preserve_item = 1
var/locked = 1
var/broken = 0
var/icon_locked = "lockbox+l"
@@ -295,3 +295,22 @@
for(var/i = 1 to 4)
new /obj/item/ammo_casing/a145(src)
/obj/item/weapon/storage/secure/briefcase/fuelrod
name = "heavy briefcase"
desc = "A heavy, locked briefcase."
description_fluff = "The container, upon opening, looks to have a few oddly shaped indentations in its packing."
description_antag = "This case will likely contain a charged fuel rod gun, and a few fuel rods to go with it. It can only hold the fuel rod gun, fuel rods, batteries, a screwdriver, and stock machine parts."
force = 12 //Anti-rad lined i.e. Lead, probably gonna hurt a bit if you get bashed with it.
can_hold = list(/obj/item/weapon/gun/magnetic/fuelrod, /obj/item/weapon/fuel_assembly, /obj/item/weapon/cell, /obj/item/weapon/stock_parts, /obj/item/weapon/screwdriver)
/obj/item/weapon/storage/secure/briefcase/fuelrod/New()
..()
new /obj/item/weapon/gun/magnetic/fuelrod(src)
new /obj/item/weapon/fuel_assembly/deuterium(src)
new /obj/item/weapon/fuel_assembly/deuterium(src)
new /obj/item/weapon/fuel_assembly/tritium(src)
new /obj/item/weapon/fuel_assembly/tritium(src)
new /obj/item/weapon/fuel_assembly/phoron(src)
new /obj/item/weapon/screwdriver(src)
@@ -129,6 +129,7 @@ Frequency:
throw_range = 5
origin_tech = list(TECH_MAGNET = 1, TECH_BLUESPACE = 3)
matter = list(DEFAULT_WALL_MATERIAL = 10000)
preserve_item = 1
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
var/turf/current_location = get_turf(user)//What turf is the user on?