mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 16:38:22 +01:00
Mining Points Carryover (#22941)
* Mining points now carry over between rounds for each character. * Mining point carryover is capped at 15,000 points and expires after one week of inactivity. AI usage disclosure: The code for this was created in-part using GPT 5.6 Sol.
This commit is contained in:
@@ -244,6 +244,36 @@
|
||||
id_card.citizenship = SSrecords.get_citizenship_record_name(citizenship)
|
||||
id_card.mob_id = WEAKREF(src)
|
||||
id_card.employer_faction = employer_faction
|
||||
INVOKE_ASYNC(id_card, TYPE_PROC_REF(/obj/item/card/id, load_mining_points))
|
||||
|
||||
/obj/item/card/id/proc/load_mining_points()
|
||||
var/mob/living/carbon/human/card_owner = mob_id?.resolve()
|
||||
if(!card_owner?.character_id)
|
||||
return
|
||||
|
||||
var/datum/persistent_record/saved_balance = SSpersistence.historyGetLastRecord(
|
||||
/singleton/persistent_type/history/character/mining_point_balance,
|
||||
card_owner.character_id
|
||||
)
|
||||
if(!saved_balance)
|
||||
return
|
||||
|
||||
mining_points = clamp(text2num(saved_balance.value), 0, MINING_POINTS_CARRYOVER_MAX)
|
||||
|
||||
/obj/item/card/id/proc/save_mining_points()
|
||||
var/mob/living/carbon/human/card_owner = mob_id?.resolve()
|
||||
if(!card_owner?.character_id)
|
||||
return
|
||||
|
||||
SSpersistence.historyAddCharacterRecord(
|
||||
/singleton/persistent_type/history/character/mining_point_balance,
|
||||
card_owner.character_id,
|
||||
"[clamp(mining_points, 0, MINING_POINTS_CARRYOVER_MAX)]"
|
||||
)
|
||||
|
||||
/obj/item/card/id/proc/adjust_mining_points(amount)
|
||||
mining_points = max(0, mining_points + amount)
|
||||
save_mining_points()
|
||||
|
||||
/obj/item/card/id/proc/dat()
|
||||
var/dat = ("<table><tr><td>")
|
||||
|
||||
Reference in New Issue
Block a user