Files
2026-video-game-project/Entities/Player/autoload/player_manager.gd

103 lines
2.8 KiB
GDScript

extends Node
func _ready() -> void:
#Health ready
#on ready it sets the current health to the max health
currenthealth = maxHealth
#================================================COIN===============================================
#the coin amount the player has
static var totalCoinAmount: int
#signal for the UI
signal on_coin_amount_recevied
func give_pickup_award(coinAmount: int) -> void:
#add the award amount to the total amount
totalCoinAmount += coinAmount
#emist the siganl so the UI updates
on_coin_amount_recevied.emit(totalCoinAmount)
#================================================AMMO===============================================
static var ammo: int = 30
signal on_ammo_update
func decrease_ammo(ammoAmount: int) -> void:
ammo -= ammoAmount
on_ammo_update.emit(ammo)
func add_ammo(ammoAmount: int) -> void:
ammo += ammoAmount
on_ammo_update.emit(ammo)
#===============================================HEALTH==============================================
var maxHealth: int = 100
var currenthealth: int
#signal
signal on_health_changed(newHealth)
signal on_max_health_changed(newMaxHealth)
func decress_health(healthAmount: int) -> void:
#decreases the current health y the health amount
currenthealth -= healthAmount
#clamps the current health so it dosen't go under 0s
currenthealth = clampi(currenthealth, 0, maxHealth)
#emmits the health change signal
on_health_changed.emit(currenthealth)
func increase_health(healthAmount: int) -> void:
#add the amount of health to the current healt
currenthealth += healthAmount
#clamps the current health so it doesn't go over max health
currenthealth = clampi(currenthealth, 0, maxHealth)
#emits the health change signal
on_health_changed.emit(currenthealth)
func increase_max_health(healthAmount: int) -> void:
maxHealth += healthAmount
on_max_health_changed.emit(maxHealth)
func decress_max_health(healthAmount: int) -> void:
maxHealth -= healthAmount
on_max_health_changed.emit(maxHealth)
#=============================================INVENTORY=============================================
var invetory: Dictionary
func add_to_inventory(type: String, value: String) -> void:
invetory[type] = value
func has_inventory_item(value: String) -> bool:
if value == null:
return false
var item = invetory.find_key(value)
if item:
return true
return false
#==============================================WEAPONS==============================================
var currentFirstWeapon: String = "fist"
var currentSecondWeapon: String = "fist"
var currentFirstWeaponIndex: int = 0
var currentSecondWeaponIndex: int = 0
func change_weapon(weaponKey: String, slot: String) -> void:
match slot:
"first": #primary
currentFirstWeapon = weaponKey
"second": #secondary
currentSecondWeapon = weaponKey