mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Outfit datums: unit test
This commit is contained in:
@@ -6,4 +6,5 @@
|
||||
#include "reagent_recipe_collisions.dm"
|
||||
#include "slipping.dm"
|
||||
#include "names.dm"
|
||||
#include "outfit_datums.dm"
|
||||
#endif
|
||||
|
||||
@@ -1,11 +1,41 @@
|
||||
/datum/unit_test/outfit_datums
|
||||
|
||||
// Make sure that the slots indexes used by outfit datums are indeed slot indexes.
|
||||
// Spawn a human of each race and equip items to make sure they're of the correct type.
|
||||
// Spawn a backback and put all the items to collect to make sure there's enough room.
|
||||
|
||||
/datum/unit_test/outfit_datums/start()
|
||||
for (var/type in subtypesof(/datum/outfit))
|
||||
var/datum/outfit/O = new
|
||||
for (var/L in O.items_to_spawn)
|
||||
for (var/slot in L)
|
||||
if (text2num(slot) == "")
|
||||
fail("Outfit [O.type] : list [L] doesn't have a number index at slot [slot].")
|
||||
for (var/type in subtypesof(/datum/outfit))
|
||||
var/datum/outfit/O = new type
|
||||
for (var/species in O.items_to_spawn)
|
||||
// Testing all species.
|
||||
var/list/to_recycle = list()
|
||||
var/list/L = O.items_to_spawn[species]
|
||||
var/mob/living/carbon/human/H = new(run_loc_top_right)
|
||||
sleep(1)
|
||||
if (species != "Default")
|
||||
var/datum/species/S = species
|
||||
H.set_species(initial(S.name))
|
||||
sleep(1) // set_species has spawns() in it, so we have to wait.
|
||||
for (var/slot in L)
|
||||
if (isnull(text2num(slot)))
|
||||
fail("Outfit [O.type] : list [species] doesn't have a number index at slot [slot].")
|
||||
var/obj_type = L[slot]
|
||||
if (islist(obj_type)) // Special objects for alt-titles. Equip them all, delete, then equip the first one.
|
||||
var/list/L2 = obj_type
|
||||
for (var/alt_title in L2)
|
||||
obj_type = L2[alt_title]
|
||||
var/obj/item/alt_title_item = new obj_type(get_turf(H))
|
||||
if(!H.equip_to_slot_or_del(alt_title_item, text2num(slot), TRUE))
|
||||
fail("[obj_type] not equipped on [species]; alt-title: [alt_title]")
|
||||
qdel(alt_title_item)
|
||||
obj_type = L2[L2[1]] // L2[1] = first alt-title. L2[L2[1]] = first item path.
|
||||
var/obj/item/item = new obj_type(get_turf(H))
|
||||
to_recycle += item
|
||||
if(!H.equip_to_slot_or_del(item, text2num(slot), TRUE))
|
||||
fail("[obj_type] not equipped on [species]")
|
||||
for (var/object in to_recycle)
|
||||
qdel(object)
|
||||
to_recycle -= object
|
||||
qdel(H)
|
||||
sleep(1)
|
||||
|
||||
Reference in New Issue
Block a user