feat: shared creature root, enemy definitions, defend duty, and player downing
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
class_name EnemyDefinition
|
||||
extends Resource
|
||||
|
||||
@export var enemy_id: StringName
|
||||
@export var display_name: String
|
||||
@export var kind: StringName = SimulationIds.COMBATANT_KIND_RAIDER
|
||||
@export var weapon_id: StringName = SimulationIds.ITEM_SWORD
|
||||
@export var health := 60.0
|
||||
@export var move_speed := 3.5
|
||||
@export var body_color := Color(0.4, 0.13, 0.1, 1.0)
|
||||
@export var accent_color := Color(0.55, 0.55, 0.58, 1.0)
|
||||
@export var visual_scale := Vector3.ONE
|
||||
|
||||
|
||||
func validate() -> Array[String]:
|
||||
var errors: Array[String] = []
|
||||
if enemy_id.is_empty():
|
||||
errors.append("enemy_id is empty")
|
||||
if display_name.is_empty():
|
||||
errors.append("display_name is empty for '%s'" % enemy_id)
|
||||
if (
|
||||
kind
|
||||
not in [
|
||||
SimulationIds.COMBATANT_KIND_RAIDER,
|
||||
SimulationIds.COMBATANT_KIND_WOLF,
|
||||
]
|
||||
):
|
||||
errors.append("kind '%s' is invalid for '%s'" % [kind, enemy_id])
|
||||
if health <= 0.0:
|
||||
errors.append("health must be positive for '%s'" % enemy_id)
|
||||
return errors
|
||||
Reference in New Issue
Block a user