/tg/ Station 13 - Modules - Types

code/modules/unit_tests/~nova/body_marking_colors.dm

/datum/body_marking_test_lockLocks a marking while the unit test that allocates this lives, and gives it its own colour mode back when the test ends. No marking ships locked: the mode stays for content that wants it, and its tests lock a tattoo, which has a colour of its own.
/datum/unit_test/body_marking_colorsShared setup for the body marking colour mode tests. Abstract, so the runner never runs it on its own.
/datum/unit_test/body_marking_colors/seed_modesA marking's colour mode decides where a newly worn one takes its colour from: one of the mutant colours, or its own.
/datum/unit_test/body_marking_colors/lockedA locked marking keeps its colour: its entry refuses a recolour, and neither character setup's colour action, a rename in setup nor the fur dyer can give it another. A colour a save already holds is kept. Character setup is told which rows are locked, and its colour action takes only a "#rrggbb" its picker sent.
/datum/unit_test/body_marking_colors/reseedReseeding gives an entry the colour its marking starts with again, and a whole-body colour reset (the slime's) reseeds every marking but the locked ones, whose colour, a saved custom one included, stays.
/datum/unit_test/body_marking_colors/setup_resetCharacter setup's colour reset gives one row the colour its marking starts in, by its colour mode: the preview body's mutant colour it follows, or its own. A locked row gets its own colour back too, which no recolour could give it. Glow stays.
/datum/unit_test/body_marking_colors/setup_seedsCharacter setup seeds a new marking's colour from the preview body's mutant colours by the marking's mode, when it is added and when a preset brings it.
/proc/body_marking_colors_scanned_setThe marking set factory as it was before it read each marking's affected_bodyparts: every member against every zone's marking list, in GLOB.body_markings_per_limb order. Colours come from seed_color(), the only colour source there is now, so comparing the two compares which entries land on which zones, in what order.
/datum/unit_test/body_marking_colors/set_factoryEvery marking set builds exactly the collection the per-limb scan built: the same entries on the same zones, in the same order.
/proc/body_marking_colors_old_set_namesWhat each of the seven species that had a randomiser of its own could pick, as those get_random_body_markings() overrides were written before get_random_marking_sets() replaced them: a forced set, a fixed list to pick from, or the sets meant for any species or for this one. Kept here, and nowhere in the game, as the reference.
/datum/unit_test/body_marking_colors/species_random_setsEach species' random markings come from the sets its own randomiser picked from, and a species without one gets none.