The benefit of classes are inheritance, function calls, etc. And you may not know this but you're already familiar with classes if you used GDscript with nodes as they function more or less the same way
Try to avoid using classes if your intention is to store data as even though the difference is micro classes take longer to construct.
To create a class
class EnemyClass:
enum ATTACKS {atk1, atk2, atk3, atk4}
var hp = {"max":10, "amt":10}
var damage = [1,2,3,4]
# what todo on enemy created
func _init():
pass
func heal(amt):
hp.amt += amt
if hp.amt >= hp.max:
how.amt = hp.max
func receive_damage(dmg):
hp.amt -= dmg
if hp.amt <= 0:
queue_free()
To use a class by creating an object
func ready():
var enemy1 = EnemyClass.new()
#Class aren't much different from Dictionaries when manipulating values.
print(enemy1.hp.max)
enemy1.receive_damage(3)
print(enemy1.hp.amt)