mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 22:42:26 +01:00
Modular PDAs: The End of an Era (#10319)
PDAs are dead, long live PDAs. All trace of old PDAs has been scoured from the codebase, and in its place are modular computer PDAs that are feature-equivalent. Essentially every PDA function except the Syndicate detonation feature and Notepad has been ported over, and battery life for handheld computers has been boosted alongside the addition of charging cables to make things easier.
This commit is contained in:
@@ -174,6 +174,25 @@
|
||||
var/obj/effect/ebeam/B = beam
|
||||
B.color = set_color
|
||||
|
||||
/datum/beam/power
|
||||
var/obj/item/computer_hardware/tesla_link/charging_cable/owner
|
||||
|
||||
/datum/beam/power/End()
|
||||
owner.beam = null
|
||||
owner.untether(FALSE)
|
||||
return ..()
|
||||
|
||||
/datum/beam/power/get_x_translation_vector()
|
||||
return (world.icon_size * target_oldloc.x) - (world.icon_size * origin_oldloc.x)
|
||||
|
||||
/datum/beam/power/get_y_translation_vector()
|
||||
return (world.icon_size * target_oldloc.y) - (world.icon_size * origin_oldloc.y)
|
||||
|
||||
/datum/beam/power/afterDraw()
|
||||
for(var/beam in elements)
|
||||
var/obj/effect/ebeam/B = beam
|
||||
B.color = COLOR_GRAY40
|
||||
|
||||
/obj/effect/ebeam
|
||||
mouse_opacity = 0
|
||||
anchored = 1
|
||||
|
||||
+1
-6
@@ -467,13 +467,8 @@
|
||||
var/is_currently_brigged = 0
|
||||
if(A?.is_prison())
|
||||
is_currently_brigged = 1
|
||||
for(var/obj/item/card/id/card in current)
|
||||
if(current.GetIdCard())
|
||||
is_currently_brigged = 0
|
||||
break // if they still have ID they're not brigged
|
||||
for(var/obj/item/device/pda/P in current)
|
||||
if(P.id)
|
||||
is_currently_brigged = 0
|
||||
break // if they still have ID they're not brigged
|
||||
|
||||
if(!is_currently_brigged)
|
||||
brigged_since = -1
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
l_pocket = /obj/item/melee/energy/sword
|
||||
r_pocket = /obj/item/cloaking_device
|
||||
id = /obj/item/card/id/syndicate
|
||||
pda = /obj/item/device/pda/heads
|
||||
pda = /obj/item/modular_computer/handheld/pda/command
|
||||
|
||||
/datum/outfit/admin/killer/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
var/obj/item/storage/secure/briefcase/sec_briefcase = new(H)
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
l_pocket = /obj/item/reagent_containers/spray/pepper
|
||||
r_pocket = /obj/item/device/taperecorder/cciaa
|
||||
l_hand = /obj/item/storage/lockbox/cciaa
|
||||
pda = /obj/item/device/pda/central
|
||||
pda = /obj/item/modular_computer/handheld/pda/command/cciaa
|
||||
|
||||
id_access = "CCIA Agent"
|
||||
|
||||
@@ -304,7 +304,7 @@
|
||||
name = "NTCC Odin Sanitation Specialist"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/janitor
|
||||
pda = /obj/item/device/pda/janitor
|
||||
pda = /obj/item/modular_computer/handheld/pda/civilian
|
||||
shoes = /obj/item/clothing/shoes/galoshes
|
||||
l_ear = /obj/item/device/radio/headset/headset_service
|
||||
l_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
|
||||
@@ -35,6 +35,11 @@
|
||||
var/dufflebag = /obj/item/storage/backpack/duffel
|
||||
var/messengerbag = /obj/item/storage/backpack/messenger
|
||||
|
||||
var/allow_pda_choice = FALSE
|
||||
var/tab_pda = /obj/item/modular_computer/handheld/pda/civilian
|
||||
var/tablet = /obj/item/modular_computer/handheld/preset/civilian
|
||||
var/wristbound = /obj/item/modular_computer/handheld/wristbound/preset/pda/civilian
|
||||
|
||||
var/internals_slot = null //ID of slot containing a gas tank
|
||||
var/list/backpack_contents = list() //In the list(path=count,otherpath=count) format
|
||||
var/list/accessory_contents = list()
|
||||
@@ -45,7 +50,7 @@
|
||||
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
//to be overriden for customization depending on client prefs,species etc
|
||||
if(allow_backbag_choice)
|
||||
var/use_job_specific = H.backbag_style == 1
|
||||
var/use_job_specific = H.backbag_style == TRUE
|
||||
switch(H.backbag)
|
||||
if (1)
|
||||
back = null
|
||||
@@ -165,22 +170,40 @@
|
||||
if(r_hand)
|
||||
H.put_in_r_hand(new r_hand(H))
|
||||
|
||||
if(pda && !visualsOnly) //Dont equip and imprint the PDA in visuals only (preview) to avoid duplicates
|
||||
if(allow_pda_choice)
|
||||
switch(H.pda_choice)
|
||||
if (1)
|
||||
pda = null
|
||||
if (7)
|
||||
pda = tablet
|
||||
if (8)
|
||||
pda = wristbound
|
||||
else
|
||||
pda = tab_pda
|
||||
|
||||
if(pda && !visualsOnly)
|
||||
var/obj/item/I = new pda(H)
|
||||
imprint_pda(H,I)
|
||||
switch(H.pda_choice)
|
||||
if(3)
|
||||
I.icon = 'icons/obj/pda_old.dmi'
|
||||
if(4)
|
||||
I.icon = 'icons/obj/pda_rugged.dmi'
|
||||
if(5)
|
||||
I.icon = 'icons/obj/pda_slate.dmi'
|
||||
if(6)
|
||||
I.icon = 'icons/obj/pda_smart.dmi'
|
||||
I.update_icon()
|
||||
H.equip_or_collect(I, slot_wear_id)
|
||||
|
||||
if(id)
|
||||
var/obj/item/device/pda/P = H.wear_id
|
||||
var/obj/item/modular_computer/P = H.wear_id
|
||||
var/obj/item/I = new id(H)
|
||||
imprint_idcard(H,I)
|
||||
if(istype(P))
|
||||
I.forceMove(P)
|
||||
P.id = I
|
||||
if(istype(P) && P.card_slot)
|
||||
addtimer(CALLBACK(src, .proc/register_pda, P, I), 1 SECOND)
|
||||
else
|
||||
H.equip_or_collect(I, slot_wear_id)
|
||||
|
||||
|
||||
if(!visualsOnly) // Items in pockets or backpack don't show up on mob's icon.
|
||||
if(l_pocket)
|
||||
equip_item(H, l_pocket, slot_l_store)
|
||||
@@ -272,16 +295,14 @@
|
||||
if(H.mind && H.mind.initial_account)
|
||||
C.associated_account_number = H.mind.initial_account.account_number
|
||||
|
||||
/datum/outfit/proc/imprint_pda(mob/living/carbon/human/H, obj/item/device/pda/PDA)
|
||||
var/obj/item/card/id/C = PDA.id
|
||||
PDA.owner = H.real_name
|
||||
if(istype(PDA) && istype(C))
|
||||
PDA.ownjob = C.assignment
|
||||
PDA.ownrank = C.rank
|
||||
else //As a fallback if the id isnt inside of the PDA
|
||||
PDA.ownjob = get_id_assignment(H)
|
||||
PDA.ownrank = get_id_rank(H)
|
||||
PDA.name = "PDA-[H.real_name] ([PDA.ownjob])"
|
||||
/datum/outfit/proc/register_pda(obj/item/modular_computer/P, obj/item/card/id/I)
|
||||
if(!P.card_slot)
|
||||
return
|
||||
P.card_slot.insert_id(I)
|
||||
if(P.card_slot.stored_card && !P.hidden)
|
||||
P.set_autorun("ntnrc_client")
|
||||
P.enable_computer(null, TRUE) // passing null because we don't want the UI to open
|
||||
P.minimize_program()
|
||||
|
||||
/datum/outfit/proc/get_id_access(mob/living/carbon/human/H)
|
||||
return list()
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
name = "Random Visitor"
|
||||
|
||||
id = /obj/item/card/id
|
||||
pda = /obj/item/device/pda
|
||||
pda = /obj/item/modular_computer/handheld/pda/civilian
|
||||
|
||||
/datum/outfit/admin/random/visitor/get_id_assignment()
|
||||
return "Visitor"
|
||||
|
||||
@@ -151,6 +151,7 @@
|
||||
belt = /obj/item/storage/belt/military
|
||||
gloves = /obj/item/clothing/gloves/swat
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
pda = /obj/item/modular_computer/handheld/pda/syndicate
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
|
||||
@@ -32,7 +32,6 @@ They sell generic supplies and ask for generic supplies.
|
||||
/obj/item/device/assembly_holder = TRADER_BLACKLIST_ALL,
|
||||
/obj/item/device/encryptionkey = TRADER_BLACKLIST_SUB, //Why should ai want NT encryption keys?
|
||||
/obj/item/device/radio = TRADER_BLACKLIST_ALL,
|
||||
/obj/item/device/pda = TRADER_BLACKLIST_SUB,
|
||||
/obj/item/device/chameleon = TRADER_BLACKLIST, // Why should it want a chameleon projector
|
||||
/obj/item/device/dociler = TRADER_BLACKLIST, //Item unobtaineable
|
||||
/obj/item/device/flashlight/drone = TRADER_BLACKLIST, // No drone stuff
|
||||
|
||||
@@ -88,8 +88,7 @@
|
||||
/obj/item/clothing/mask/gas/sexyclown = TRADER_THIS_TYPE,
|
||||
/obj/item/clothing/shoes/clown_shoes = TRADER_THIS_TYPE,
|
||||
/obj/item/clothing/under/rank/clown = TRADER_THIS_TYPE,
|
||||
/obj/item/device/pda/clown = TRADER_THIS_TYPE,
|
||||
/obj/item/cartridge/clown = TRADER_THIS_TYPE,
|
||||
/obj/item/modular_computer/handheld/pda/civilian/clown = TRADER_THIS_TYPE,
|
||||
/obj/item/stamp/clown = TRADER_THIS_TYPE,
|
||||
/obj/item/storage/backpack/clown = TRADER_THIS_TYPE,
|
||||
/obj/item/bananapeel = TRADER_THIS_TYPE,
|
||||
|
||||
@@ -19,11 +19,6 @@
|
||||
item_cost = 2
|
||||
path = /obj/item/storage/box/syndie_kit/toxin
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/detomatix
|
||||
name = "Detomatix PDA Cartridge"
|
||||
item_cost = 4
|
||||
path = /obj/item/cartridge/syndicate
|
||||
|
||||
/datum/uplink_item/item/stealthy_weapons/pens
|
||||
name = "Pen-jector Kit"
|
||||
desc = "A kit that contains four differently coloured pens. A blue pacifying pen, a green pen containing healing chemicals, and a yellow hyperzine pen."
|
||||
|
||||
Reference in New Issue
Block a user