Files
slopvivors/scenes/enemies/enemy_slime_small.gd

61 lines
1.0 KiB
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
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()]
)