feat: author world events and social effects
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
class_name EventTypeDefinition
|
||||
extends Resource
|
||||
|
||||
const CATEGORY_ECONOMY := &"economy"
|
||||
const CATEGORY_ACTIVITY := &"activity"
|
||||
const CATEGORY_WELFARE := &"welfare"
|
||||
const CATEGORY_ANIMAL := &"animal"
|
||||
const CATEGORY_SOCIAL := &"social"
|
||||
const CATEGORY_CONFLICT := &"conflict"
|
||||
const CATEGORIES: Array[StringName] = [
|
||||
CATEGORY_ECONOMY,
|
||||
CATEGORY_ACTIVITY,
|
||||
CATEGORY_WELFARE,
|
||||
CATEGORY_ANIMAL,
|
||||
CATEGORY_SOCIAL,
|
||||
CATEGORY_CONFLICT,
|
||||
]
|
||||
|
||||
@export var event_type_id: StringName
|
||||
@export var display_name: String
|
||||
@export_multiline var description: String
|
||||
@export_enum("economy", "activity", "welfare", "animal", "social", "conflict")
|
||||
var category: String = String(CATEGORY_ECONOMY)
|
||||
@export var parameters: Dictionary = {}
|
||||
|
||||
|
||||
func validate() -> Array[String]:
|
||||
var errors: Array[String] = []
|
||||
if event_type_id.is_empty():
|
||||
errors.append("event_type_id is empty")
|
||||
if display_name.is_empty():
|
||||
errors.append("display_name is empty for event type '%s'" % event_type_id)
|
||||
if StringName(category) not in CATEGORIES:
|
||||
errors.append("event type '%s' has unknown category '%s'" % [event_type_id, category])
|
||||
for error in DefinitionParameterValidator.validate(
|
||||
parameters, "Event type '%s'" % event_type_id
|
||||
):
|
||||
errors.append(error)
|
||||
return errors
|
||||
Reference in New Issue
Block a user