class_name EnemySlimeSmall extends EnemyBase @export var color: Color = Color.CHARTREUSE @onready var disabled_sprite: Sprite2D = $Sprite2D @onready var base_sprite: Sprite2D = $Sprite/BaseSprite var shader = preload("res://assets/shaders/base_color_tint.gdshader") var shader_material: ShaderMaterial const NAME_PREFIXES: Array[String] = [ "Gl", "Sl", "Bl", "Pl", "Dr", "Go", "Glo", "Blo", ] const NAME_ROOTS: Array[String] = [ "op", "ub", "ooz", "ump", "ibble", "ug", "urp", "lop", ] const NAME_SUFFIXES: Array[String] = [ "y", "o", "let", "kin", "ish", "oo", ] func _ready() -> void: shader_material = ShaderMaterial.new() disabled_sprite.visible = false set_color(color) shader_material.shader = shader base_sprite.material = shader_material super._ready() func set_color(new_color: Color) -> void: shader_material.set_shader_parameter("base_color", new_color) func _gen_name() -> String: return ( "%s%s%s" % [NAME_PREFIXES.pick_random(), NAME_ROOTS.pick_random(), NAME_SUFFIXES.pick_random()] )