55 lines
1019 B
GDScript
55 lines
1019 B
GDScript
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
|
|
|
|
|
|
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()]
|