diff --git a/code/controllers/subsystems/economy.dm b/code/controllers/subsystems/economy.dm index 757cf76cf5e..6c5501806bf 100644 --- a/code/controllers/subsystems/economy.dm +++ b/code/controllers/subsystems/economy.dm @@ -148,6 +148,25 @@ SUBSYSTEM_DEF(economy) return M +/// Create and assign account for any arbitrary mob, returns the created account (/datum/money_account) +/datum/controller/subsystem/economy/proc/create_and_assign_account(var/mob/mob, var/override_name, var/funds, var/is_public) + var/datum/money_account/money_account = SSeconomy.create_account(override_name || mob.real_name, funds, null, is_public) + + if(mob.mind) + var/remembered_info = "" + remembered_info += "Your account number is: #[money_account.account_number]
" + remembered_info += "Your account pin is: [money_account.remote_access_pin]
" + remembered_info += "Your account funds are: [money_account.money]电
" + + if(money_account.transactions.len) + var/datum/transaction/transaction = money_account.transactions[1] + remembered_info += "Your account was created: [transaction.time], [transaction.date] at [transaction.source_terminal]
" + + mob.mind.store_memory(remembered_info) + mob.mind.initial_account = money_account + + return money_account + /datum/controller/subsystem/economy/proc/get_public_accounts() var/list/public_accounts = list() for(var/account in all_money_accounts) diff --git a/code/game/antagonist/antagonist_equip.dm b/code/game/antagonist/antagonist_equip.dm index 43fe12b482f..4a909e4514b 100644 --- a/code/game/antagonist/antagonist_equip.dm +++ b/code/game/antagonist/antagonist_equip.dm @@ -14,18 +14,7 @@ player.species.before_equip(player) if((flags & ANTAG_CLEAR_EQUIPMENT) && has_idris_account) - var/datum/money_account/money_account = SSeconomy.create_account("John Doe", rand(idris_account_min, idris_account_max), null, FALSE) - if(player.mind) - var/remembered_info = "" - remembered_info += "Your account number is: #[money_account.account_number]
" - remembered_info += "Your account pin is: [money_account.remote_access_pin]
" - remembered_info += "Your account funds are: [money_account.money]电
" - - if(money_account.transactions.len) - var/datum/transaction/transaction = money_account.transactions[1] - remembered_info += "Your account was created: [transaction.time], [transaction.date] at [transaction.source_terminal]
" - player.mind.store_memory(remembered_info) - player.mind.initial_account = money_account + SSeconomy.create_and_assign_account(player, "John Doe", rand(idris_account_min, idris_account_max), FALSE) return TRUE diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 2bcf854c635..6b083b409f4 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -107,21 +107,8 @@ species_modifier = human_species.economic_modifier var/money_amount = initial_funds_override ? initial_funds_override : (rand(5,50) + rand(5, 50)) * econ_status * economic_modifier * species_modifier - var/datum/money_account/M = SSeconomy.create_account(H.real_name, money_amount, null, public_account) - if(H.mind) - var/remembered_info = "" - remembered_info += "Your account number is: #[M.account_number]
" - remembered_info += "Your account pin is: [M.remote_access_pin]
" - remembered_info += "Your account funds are: [M.money]电
" - - if(M.transactions.len) - var/datum/transaction/T = M.transactions[1] - remembered_info += "Your account was created: [T.time], [T.date] at [T.source_terminal]
" - H.mind.store_memory(remembered_info) - - H.mind.initial_account = M - - to_chat(H, "Your account number is: [M.account_number], your account pin is: [M.remote_access_pin]") + var/datum/money_account/account = SSeconomy.create_and_assign_account(H, null, money_amount, public_account) + to_chat(H, SPAN_BOLD(SPAN_NOTICE("Your account number is: [account.account_number], your account pin is: [account.remote_access_pin]"))) // overrideable separately so AIs/borgs can have cardborg hats without unneccessary new()/del() /datum/job/proc/equip_preview(mob/living/carbon/human/H, var/alt_title, var/faction_override) diff --git a/code/modules/ghostroles/spawner/human/human.dm b/code/modules/ghostroles/spawner/human/human.dm index c9d97a3be5d..48247ec2246 100644 --- a/code/modules/ghostroles/spawner/human/human.dm +++ b/code/modules/ghostroles/spawner/human/human.dm @@ -35,6 +35,18 @@ mob_name = null + /// Determines whether the mob will have an Idris banking account when they spawn in + var/has_idris_account = TRUE + + /// Determines whether the Idris banking account will be visible on the station's account terminal + var/is_idris_account_public = FALSE + + /// The minimum amount of money the account can spawn with + var/idris_account_min = 100 + + /// The maximum amount of money the account can spawn with + var/idris_account_max = 500 + //Return a error message if the user CANT spawn. Otherwise FALSE /datum/ghostspawner/human/cant_spawn(mob/user) //If whitelist is required, check if user can spawn in ANY of the possible species @@ -144,6 +156,9 @@ age = rand(35, 50) M.age = Clamp(age, 21, 65) + if(has_idris_account) + SSeconomy.create_and_assign_account(M, null, rand(idris_account_min, idris_account_max), is_idris_account_public) + //Setup the Outfit if(picked_species in species_outfits) var/obj/outfit/species_outfit = species_outfits[picked_species] diff --git a/html/changelogs/geeves-human_mob_accounts.yml b/html/changelogs/geeves-human_mob_accounts.yml new file mode 100644 index 00000000000..eb61e286bb1 --- /dev/null +++ b/html/changelogs/geeves-human_mob_accounts.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "The majority of ghost roles now spawn with an Idris account and some funds." \ No newline at end of file diff --git a/maps/away/ships/golden_deep/golden_deep_ghostroles.dm b/maps/away/ships/golden_deep/golden_deep_ghostroles.dm index 8c0f92accad..e8fb3ac4a76 100644 --- a/maps/away/ships/golden_deep/golden_deep_ghostroles.dm +++ b/maps/away/ships/golden_deep/golden_deep_ghostroles.dm @@ -17,6 +17,9 @@ extra_languages = list(LANGUAGE_EAL) away_site = TRUE + idris_account_min = 12 + idris_account_max = 30 + /datum/ghostspawner/human/golden_deep/boss short_name = "golden_deep_boss" name = "Golden Deep Vessel Owner" @@ -29,6 +32,9 @@ assigned_role = "Golden Deep Merchant" special_role = "Golden Deep Merchant" + idris_account_min = 12000 + idris_account_max = 30000 + /obj/outfit/admin/golden_deep name = "Golden Deep Owned Synthetic" id = /obj/item/card/id diff --git a/maps/away/ships/orion/orion_express_ship_ghostroles.dm b/maps/away/ships/orion/orion_express_ship_ghostroles.dm index 5f89d124087..2a8d5c1f79f 100644 --- a/maps/away/ships/orion/orion_express_ship_ghostroles.dm +++ b/maps/away/ships/orion/orion_express_ship_ghostroles.dm @@ -72,6 +72,8 @@ assigned_role = "Orion Express Captain" special_role = "Orion Express Captain" + idris_account_min = 1200 + idris_account_max = 2500 /obj/outfit/admin/orion_express_courier/captain name = "Orion Express Captain" diff --git a/maps/away/ships/scc/scc_scout_ship_ghostroles.dm b/maps/away/ships/scc/scc_scout_ship_ghostroles.dm index 54f03f6acfe..a77259b2b4b 100644 --- a/maps/away/ships/scc/scc_scout_ship_ghostroles.dm +++ b/maps/away/ships/scc/scc_scout_ship_ghostroles.dm @@ -30,6 +30,9 @@ special_role = "SCC Scout Ship Captain" respawn_flag = null + idris_account_min = 1200 + idris_account_max = 2500 + /datum/ghostspawner/human/scc_scout_ship_crew_orion short_name = "scc_scout_ship_orion" name = "SCC Scout Ship Orion Express Crew" diff --git a/maps/away/ships/unathi_pirate/izharshan/unathi_pirate_izharshan_ghostroles.dm b/maps/away/ships/unathi_pirate/izharshan/unathi_pirate_izharshan_ghostroles.dm index 0796890337c..77cc7daa343 100644 --- a/maps/away/ships/unathi_pirate/izharshan/unathi_pirate_izharshan_ghostroles.dm +++ b/maps/away/ships/unathi_pirate/izharshan/unathi_pirate_izharshan_ghostroles.dm @@ -18,6 +18,8 @@ uses_species_whitelist = FALSE + has_idris_account = FALSE + /datum/ghostspawner/human/izharshan/captain short_name = "izharshan_captain" name = "Izharshan Captain" diff --git a/maps/away/ships/unathi_pirate/tarwa/unathi_pirate_tarwa_ghostroles.dm b/maps/away/ships/unathi_pirate/tarwa/unathi_pirate_tarwa_ghostroles.dm index a58adb68426..adcc14cc0d3 100644 --- a/maps/away/ships/unathi_pirate/tarwa/unathi_pirate_tarwa_ghostroles.dm +++ b/maps/away/ships/unathi_pirate/tarwa/unathi_pirate_tarwa_ghostroles.dm @@ -19,6 +19,8 @@ away_site = TRUE welcome_message = "The Tarwa Conglomerate is a pirate group, largely operating towards the southeastern edge of the Spur. Little is known of them to others, and your ship likely thrives on this mystique. The wiki page for Unathi Piracy contains more information on this group, and how they operate." + has_idris_account = FALSE + /datum/ghostspawner/human/tarwa/diona short_name = "tarwa_diona" name = "Tarwa Conglomerate Diona Crewman"