32 lines
863 B
GDScript
32 lines
863 B
GDScript
extends Node
|
|
|
|
|
|
func can_buy(player_id: int,weapon: WeaponResource) -> bool:
|
|
return Session.player_data[player_id]["money"] >= weapon.cost
|
|
|
|
func buy(player_id: int, weapon: WeaponResource) -> void:
|
|
if not multiplayer.is_server() or can_buy(player_id,weapon) == false:
|
|
return
|
|
|
|
var player: Player = Session.player_nodes[player_id]
|
|
if player.hp == 0:
|
|
return
|
|
|
|
var weapon_system: WeaponSystem = player.get_node("%WeaponSystem")
|
|
var slot: StringName = ""
|
|
match weapon.slot:
|
|
"ability":
|
|
slot = weapon_system.get_empty_ability_slot()
|
|
if not weapon_system.can_add_ability(weapon.get_gid(),slot):
|
|
return
|
|
var anything:
|
|
slot = anything
|
|
if not weapon_system.can_add(slot):
|
|
return
|
|
|
|
|
|
|
|
var player_data = Session.player_data[player_id]
|
|
player_data["money"] -= weapon.cost
|
|
|
|
weapon_system.add(weapon.weapon_system_scene.instantiate(),slot)
|