Merge pull request #8708 from Rykka-Stormheart/shep-dev-persistence-megapatch

Persistence Patch
This commit is contained in:
Novacat
2020-08-21 01:14:04 -04:00
committed by GitHub
13 changed files with 62 additions and 22 deletions

View File

@@ -1,7 +1,7 @@
/datum/persistent/filth
name = "filth"
tokens_per_line = 5
entries_expire_at = 5
entries_expire_at = 4 // 4 rounds, 24 hours.
/datum/persistent/filth/LabelTokens(var/list/tokens)
var/list/labelled_tokens = ..()

View File

@@ -1,7 +1,7 @@
/datum/persistent/graffiti
name = "graffiti"
tokens_per_line = 6
entries_expire_at = 50
entries_expire_at = 4 // This previously was at 50 rounds??? Over 10 days.
has_admin_data = TRUE
/datum/persistent/graffiti/LabelTokens(var/list/tokens)

View File

@@ -24,11 +24,13 @@
if(requires_noticeboard && LAZYLEN(board.notices) >= board.max_notices)
return
var/obj/item/weapon/paper/paper = new paper_type(creating)
paper.set_content(tokens["message"], tokens["title"])
paper.info = tokens["message"]
paper.name = tokens["title"]
paper.last_modified_ckey = tokens["author"]
if(requires_noticeboard)
board.add_paper(paper)
SSpersistence.track_value(paper, type)
if(!paper.was_maploaded) // If we were created/loaded when the map was made, skip us!
SSpersistence.track_value(paper, type)
return paper
/datum/persistent/paper/GetEntryAge(var/atom/entry)

View File

@@ -6,8 +6,8 @@
var/name
var/filename
var/tokens_per_line
var/entries_expire_at
var/entries_decay_at
var/entries_expire_at // Set in rounds, this controls when the item is finally removed permanently regardless if cleaned or not.
var/entries_decay_at // Set in rounds. This controls when item messages start getting scrambled.
var/entry_decay_weight = 0.5
var/file_entry_split_character = "\t"
var/file_entry_substitute_character = " "

View File

@@ -21,13 +21,14 @@
if(!isnull(author))
author = _author
/obj/effect/decal/writing/Initialize()
/obj/effect/decal/writing/Initialize(mapload)
var/list/random_icon_states = icon_states(icon)
for(var/obj/effect/decal/writing/W in loc)
random_icon_states.Remove(W.icon_state)
if(random_icon_states.len)
icon_state = pick(random_icon_states)
SSpersistence.track_value(src, /datum/persistent/graffiti)
if(!mapload || !config.persistence_ignore_mapload)
SSpersistence.track_value(src, /datum/persistent/graffiti)
. = ..()
/obj/effect/decal/writing/Destroy()