added functionality for various game modes
This commit is contained in:
@@ -3,9 +3,11 @@ extends Node3D
|
||||
@export var item : Resource
|
||||
@export var item_name : String
|
||||
@export var item_price : int
|
||||
@export var number_uses = 1
|
||||
@onready var anim_player = $AnimationPlayer
|
||||
@onready var vend_ray = $VendRay
|
||||
@onready var label_3d = $Label3D
|
||||
@onready var price_label = $Price
|
||||
@onready var item_label: Label3D = $Item
|
||||
@onready var level_control = get_tree().current_scene
|
||||
|
||||
var active = true
|
||||
@@ -13,29 +15,31 @@ var active = true
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
if active == true:
|
||||
label_3d.text = str(item_price)
|
||||
price_label.text = str("$",item_price)
|
||||
item_label.text = str(item_name)
|
||||
else:
|
||||
label_3d.text = "offline"
|
||||
price_label.text = "offline"
|
||||
|
||||
func interact():
|
||||
if active == true:
|
||||
if level_control.money >= item_price:
|
||||
level_control.money -= item_price
|
||||
anim_player.play("vend")
|
||||
label_3d.text = "vending..."
|
||||
price_label.text = "vending..."
|
||||
else:
|
||||
var original_text = label_3d.text
|
||||
label_3d.text = "too poor"
|
||||
var original_text = price_label.text
|
||||
price_label.text = "too poor"
|
||||
await get_tree().create_timer(2.0).timeout
|
||||
label_3d.text = original_text
|
||||
price_label.text = original_text
|
||||
|
||||
func vend():
|
||||
var item_vend = item.instantiate()
|
||||
item_vend.position = vend_ray.global_position
|
||||
item_vend.transform.basis = vend_ray.global_transform.basis
|
||||
item_vend.linear_velocity += vend_ray.global_transform.basis * Vector3(0,0,3)
|
||||
active = false
|
||||
label_3d.text = "offline"
|
||||
if number_uses <= 1:
|
||||
active = false
|
||||
price_label.text = "offline"
|
||||
get_parent().add_child(item_vend)
|
||||
|
||||
func save():
|
||||
|
||||
Reference in New Issue
Block a user