and also mob_data

master
Sascha 2025-01-05 11:42:00 +07:00
parent 1035fa0207
commit 1d0bbd8c93
4 changed files with 35 additions and 22 deletions

@ -5,6 +5,12 @@ list=Array[Dictionary]([{
"language": &"GDScript",
"path": "res://scripts/game_data.gd"
}, {
"base": &"Resource",
"class": &"MobData",
"icon": "",
"language": &"GDScript",
"path": "res://scripts/mob_data.gd"
}, {
"base": &"RefCounted",
"class": &"UIData",
"icon": "",

@ -19,4 +19,5 @@ func shoot() -> void:
func _on_player_level_up(level: int) -> void:
timer.wait_time = 0.5 - (level * 0.1)
pass
# timer.wait_time = 0.5 - (level * 0.1)

@ -9,11 +9,11 @@ const SMOKE_EXPLOSION = preload("res://smoke_explosion/smoke_explosion.tscn")
@onready var player: Node2D = get_node("/root/Game/Player")
@export var mob_data := {
"health": 2,
"speed": 100,
"xp": 1
}
# Import the MobData class
const MobData = preload("res://scripts/mob_data.gd")
# Create an instance of MobData
@export var mob_data: MobData = MobData.new(2, 100, 1)
func _ready() -> void:
animation_player.play("walk")
@ -27,20 +27,14 @@ func _physics_process(_delta: float) -> void:
func take_damage() -> void:
mob_data.health -= 1
if mob_data.health <= 0:
die()
var smoke = SMOKE_EXPLOSION.instantiate()
get_parent().add_child(smoke)
smoke.global_position = global_position
explosion_sound.play()
await explosion_sound.finished
mob_died.emit(mob_data.xp)
queue_free()
else:
hurt()
func die() -> void:
var smoke = SMOKE_EXPLOSION.instantiate()
get_parent().add_child(smoke)
smoke.global_position = global_position
explosion_sound.play()
await explosion_sound.finished
mob_died.emit(mob_data.xp)
queue_free()
func hurt() -> void:
take_damage_sound.play()
animation_player.play("hurt")
animation_player.queue("walk")
take_damage_sound.play()
animation_player.play("hurt")
animation_player.queue("walk")

@ -0,0 +1,12 @@
extends Resource
class_name MobData
@export var health: int
@export var speed: float
@export var xp: int
func _init(init_health: int = 2, init_speed: float = 100.0, init_xp: int = 1) -> void:
self.health = init_health
self.speed = init_speed
self.xp = init_xp