diff --git a/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm b/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm index 5d0159b394..671cb9d45c 100644 --- a/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm +++ b/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm @@ -2,6 +2,7 @@ var/global/current_date_string var/global/num_financial_terminals = 1 var/global/datum/money_account/station_account var/global/next_account_number = 0 +var/global/obj/machinery/account_database/centcomm_account_db /proc/create_station_account() if(!station_account) @@ -266,11 +267,12 @@ var/global/next_account_number = 0 R.overlays += stampoverlay R.stamps += "
This paper has been stamped by the Accounts Database." - //add the account M.transaction_log.Add(T) accounts.Add(M) + return M + /obj/machinery/account_database/proc/charge_to_account(var/attempt_account_number, var/source_name, var/purpose, var/terminal_id, var/amount) for(var/datum/money_account/D in accounts) if(D.account_number == attempt_account_number) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 82f2e0ffad..c472c22b58 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -61,6 +61,8 @@ datum/mind New(var/key) src.key = key + //put this here for easier tracking ingame + var/datum/money_account/initial_account proc/transfer_to(mob/living/new_character) if(!istype(new_character)) diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 8b05340904..825d374e42 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -112,6 +112,13 @@ var/global/datum/controller/gameticker/ticker else src.mode.announce() + //setup the money accounts + if(!centcomm_account_db) + for(var/obj/machinery/account_database/check_db in world) + if(check_db.z == 2) + centcomm_account_db = check_db + break + create_characters() //Create player characters and transfer them collect_minds() equip_characters() diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 03f577659a..d09d7ceb4b 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -385,13 +385,20 @@ var/global/datum/controller/occupations/job_master C.rank = rank C.assignment = title ? title : rank C.name = "[C.registered_name]'s ID Card ([C.assignment])" + + //put the player's account number onto the ID + if(H.mind && H.mind.initial_account) + C.associated_account_number = H.mind.initial_account.account_number + H.equip_to_slot_or_del(C, slot_wear_id) + H.equip_to_slot_or_del(new /obj/item/device/pda(H), slot_belt) if(locate(/obj/item/device/pda,H)) var/obj/item/device/pda/pda = locate(/obj/item/device/pda,H) pda.owner = H.real_name pda.ownjob = C.assignment pda.name = "PDA-[H.real_name] ([pda.ownjob])" + return 1 diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 5e9b8256e5..8cee9f811c 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -124,6 +124,14 @@ var nameField = document.getElementById('namefield'); nameField.style.backgroundColor = "#DDFFDD"; } + function markAccountGreen(){ + var nameField = document.getElementById('accountfield'); + nameField.style.backgroundColor = "#DDFFDD"; + } + function markAccountRed(){ + var nameField = document.getElementById('accountfield'); + nameField.style.backgroundColor = "#FFDDDD"; + } function showAll(){ var allJobsSlot = document.getElementById('alljobsslot'); allJobsSlot.innerHTML = "hide
"+ "[jobs_all]"; @@ -139,10 +147,16 @@ carddesc += "registered_name: " carddesc += "" carddesc += "" + + carddesc += "
" + carddesc += "" + carddesc += "" + carddesc += "Stored account number: " + carddesc += "" + carddesc += "
" + carddesc += "Assignment: " - var/jobs = "[target_rank]" //CHECK THIS - var/accesses = "" if(istype(src,/obj/machinery/computer/card/centcom)) accesses += "
Central Command:
" @@ -270,6 +284,13 @@ modify.registered_name = temp_name else src.visible_message("[src] buzzes rudely.") + if ("account") + if (authenticated) + var/t2 = modify + //var/t1 = input(usr, "What name?", "ID computer", null) as text + if ((authenticated && modify == t2 && (in_range(src, usr) || (istype(usr, /mob/living/silicon))) && istype(loc, /turf))) + var/account_num = text2num(href_list["account"]) + modify.associated_account_number = account_num if ("mode") mode = text2num(href_list["mode_target"]) if ("print") diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 4597b038e8..35f3b1ad32 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -370,6 +370,21 @@ new_character.key = key //Manually transfer the key to log them in + //give them an account in the station database + if(centcomm_account_db) + var/datum/money_account/M = centcomm_account_db.add_account(new_character.name, pre_existing = 1) + if(mind) + var/remembered_info = "Your account pin is: [M.remote_access_pin]
" + remembered_info += "Your account number is: [M.account_number]
" + remembered_info += "Your account funds are: [M.money]
" + + if(M.transaction_log.len) + var/datum/transaction/T = M.transaction_log[1] + remembered_info += "Your account was created on: [T.time], [T.date] at [T.source_terminal]
" + mind.store_memory(remembered_info) + + mind.initial_account = M + return new_character proc/ViewManifest()