This commit is contained in:
Rendo 2025-12-09 12:27:04 +05:00
commit cd20f952ce
6 changed files with 116 additions and 68 deletions

View file

@ -7,9 +7,10 @@ func _ready() -> void:
text = str(weapon.cost)
func _pressed() -> void:
var player_data = Session.get_player_data()
if player_data["money"] >= weapon.cost:
var player: Player = Session.player_nodes[multiplayer.get_unique_id()]
player_data["money"] -= weapon.cost
player.get_node("WeaponSystem").add(weapon.weapon_system_scene.instantiate(),"ability_first")
try_server_buy.rpc_id(1)
@rpc("any_peer","call_local","reliable")
func try_server_buy() -> void:
if not multiplayer.is_server():
return
Shop.buy(multiplayer.get_remote_sender_id(),weapon)

29
gui/buy_menu/shop.gd Normal file
View file

@ -0,0 +1,29 @@
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()
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)

1
gui/buy_menu/shop.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://hyldsai23dh4