46 lines
1.4 KiB
GDScript
46 lines
1.4 KiB
GDScript
extends Popup
|
|
|
|
var dragging : bool = false
|
|
|
|
var item : Item
|
|
@onready var image : TextureRect = %Image
|
|
@onready var item_name : Label = %ItemName
|
|
@onready var item_type : Label = %ItemType
|
|
@onready var item_grade : Label = %ItemGrade
|
|
@onready var primary_stat : Label = %PrimaryStat
|
|
@onready var secondary_stats : Label = %SecondaryStats
|
|
@onready var brief : Label = %Brief
|
|
|
|
|
|
func setup(itm : Item) -> void:
|
|
item = itm
|
|
title = item.name + " Information"
|
|
image.texture = item.image
|
|
item_name.text = item.name
|
|
item_type.text = item.item_type_name()
|
|
item_grade.text = item.grade
|
|
primary_stat.text = item.primary_stat()
|
|
#TODO: Implement item secondary stats meaningfully
|
|
var ss_string = ""
|
|
var ss_count = 0
|
|
var pp_list : Array = item.stats.get_property_list()
|
|
print(item.stats)
|
|
print(item.stats.INT)
|
|
for stat in pp_list.slice(9, len(pp_list)-1):
|
|
var val = item.stats.get(stat.name)
|
|
if val:
|
|
ss_string += stat.name + " " + ("+" if val > 0 else "")
|
|
ss_string += str(val) + ("\n" if ss_count % 2 else " ")
|
|
ss_count += 1
|
|
if ss_count > 0:
|
|
secondary_stats.text = ss_string
|
|
brief.text = item.brief
|
|
|
|
func _on_drag_region_gui_input(event: InputEvent) -> void:
|
|
if event is InputEventMouseButton:
|
|
if event.button_index == MOUSE_BUTTON_LEFT:
|
|
dragging = event.pressed
|
|
elif dragging and event is InputEventMouseMotion:
|
|
position += Vector2i(event.screen_relative)
|
|
|