45 lines
952 B
GDScript
45 lines
952 B
GDScript
class_name Entity extends Node3D
|
|
|
|
|
|
var stats: EntityStats
|
|
var equipments: Array[Equipment]
|
|
|
|
func init_entity(stats: EntityStats):
|
|
self.stats = stats;
|
|
|
|
func equip(newEquipment: Equipment)-> void:
|
|
equipments.append(newEquipment)
|
|
|
|
func unequip(equipmentToRemove: Equipment)-> void:
|
|
equipments.erase(equipmentToRemove)
|
|
|
|
func get_max_health()->int:
|
|
var max_health = stats.max_health
|
|
for equipment in equipments:
|
|
max_health += equipment
|
|
|
|
return max_health
|
|
|
|
func get_health()->int:
|
|
return stats.health.value
|
|
|
|
func get_armor()->int:
|
|
var armor = stats.armor
|
|
for equipment in equipments:
|
|
armor += equipment.stats.armor
|
|
return armor
|
|
|
|
func get_Shield()->int:
|
|
var shield = stats.shield
|
|
for equipment in equipments:
|
|
shield += equipment.stats.shield
|
|
return shield
|
|
|
|
|
|
func get_movement_speed()->int:
|
|
var movement_speed = stats.movement_speed
|
|
for equipment in equipments:
|
|
movement_speed += equipment.stats.movement_speed
|
|
return movement_speed
|
|
|