feat: author world events and social effects

This commit is contained in:
Rijad Zuzo
2026-08-12 22:10:59 +02:00
parent fa0e588d1c
commit 88e974eff0
44 changed files with 804 additions and 1 deletions
@@ -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