Fixes runtime with ridable element and adds unit test for bespoke elements (#26111)

* fixes bespoke elements with default indexes, adds unit test for detecting this

* lewc review
This commit is contained in:
chuga-git
2024-07-02 15:25:00 -05:00
committed by GitHub
parent e8eabf3014
commit e4f2f8be80
4 changed files with 7 additions and 2 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
*/
/datum/element/ridable
element_flags = ELEMENT_BESPOKE
id_arg_index = 2
/// The specific riding component subtype we're loading our instructions from, don't leave this as default please!
var/riding_component_type = /datum/component/riding
/// If we have a xenobio red potion applied to us, we get split off so we can pass our special status onto new riding components
+1 -1
View File
@@ -3,7 +3,7 @@
*/
/datum/element/shatters_when_thrown
element_flags = ELEMENT_BESPOKE
id_arg_index = 2
/// What type of item is spawned as a 'shard' once the shattering happens
var/obj/item/shard_type
/// How many shards total are made when the thing we're attached to shatters
+1
View File
@@ -11,6 +11,7 @@
#include "component_tests.dm"
#include "config_sanity.dm"
#include "crafting_lists.dm"
#include "element_tests.dm"
#include "emotes.dm"
#include "init_sanity.dm"
#include "log_format.dm"
+4
View File
@@ -0,0 +1,4 @@
/datum/unit_test/bespoke_element/Run()
for(var/datum/element/element_type as anything in subtypesof(/datum/element))
if(initial(element_type.element_flags) & ELEMENT_BESPOKE && initial(element_type.id_arg_index) == INFINITY)
Fail("Element type [element_type] has ELEMENT_BESPOKE and a default id_arg_index.")