32 lines
1.0 KiB
GDScript
32 lines
1.0 KiB
GDScript
class_name SocialConsequenceDefinition
|
|
extends Resource
|
|
|
|
@export var consequence_id: StringName
|
|
@export var display_name: String
|
|
@export_multiline var description: String
|
|
@export var event_type_id: StringName
|
|
@export var relationship_dimension_id: StringName
|
|
@export var parameters: Dictionary = {}
|
|
|
|
|
|
func validate() -> Array[String]:
|
|
var errors: Array[String] = []
|
|
if consequence_id.is_empty():
|
|
errors.append("consequence_id is empty")
|
|
if display_name.is_empty():
|
|
errors.append("display_name is empty for social consequence '%s'" % consequence_id)
|
|
if event_type_id.is_empty():
|
|
errors.append("event_type_id is empty for social consequence '%s'" % consequence_id)
|
|
if relationship_dimension_id not in RelationshipStateRecord.DIMENSIONS:
|
|
errors.append(
|
|
(
|
|
"social consequence '%s' references unknown relationship dimension '%s'"
|
|
% [consequence_id, relationship_dimension_id]
|
|
)
|
|
)
|
|
for error in DefinitionParameterValidator.validate(
|
|
parameters, "Social consequence '%s'" % consequence_id
|
|
):
|
|
errors.append(error)
|
|
return errors
|