extends Node3D var Swapper = false var HP: float = 100 var MaxHP: float = 100 var Attack: float = 10 var Heal: float = 2 var Level: int = 1 var Experience: float = 0 var PointsLeft: int = 0 @export_node_path("Node3D") var EnemyPath @onready var InventoryWeapons = get_tree().get_current_scene().get_node("InventoryGUI/Weapons/HFlowContainer") @onready var InventoryHelmets = get_tree().get_current_scene().get_node("InventoryGUI/Helmet/HFlowContainer") @onready var InventoryArmours = get_tree().get_current_scene().get_node("InventoryGUI/Armor/HFlowContainer") @export_node_path("Control") var InventoryGUI @export_category("Equipment") @export_node_path("Sprite3D") var Weapon @export_node_path("Sprite3D") var Helmet @export_node_path("Sprite3D") var Armour @export var Weapons: Array[CompressedTexture2D] @export var Helmets: Array[CompressedTexture2D] @export var Armours: Array[CompressedTexture2D] @export var WeaponRotation: Array[Vector3] @export var WeaponPosition: Array[Vector3] func _ready(): # stop from loading in the menu if InventoryWeapons == null: return var stringies = GlobalVars.LoadList("user://Items") var Number = 0 # stops a bug from happening if stringies.size() == 0: GlobalVars.SaveItems() stringies = GlobalVars.LoadList("user://Items") # loading the invenstory stuff while Number != GlobalVars.HelmetOwned.size(): GlobalVars.HelmetOwned[Number] = int(stringies[0]) stringies.remove_at(0) Number = Number + 1 Number = 0 while Number != GlobalVars.WeaponsOwned.size(): GlobalVars.WeaponsOwned[Number] = int(stringies[0]) stringies.remove_at(0) Number = Number + 1 Number = 0 while Number != GlobalVars.ArmourOwned.size(): GlobalVars.ArmourOwned[Number] = int(stringies[0]) stringies.remove_at(0) Number = Number + 1 # now, load the fun stuff. Number = 0 var Children = InventoryHelmets.get_children() Children.remove_at(0) stringies = GlobalVars.LoadList("user://Items") for i in GlobalVars.HelmetOwned: if i == 0: Children[0].visible = false Children.remove_at(0) Children = InventoryWeapons.get_children() Children.remove_at(0) for i in GlobalVars.WeaponsOwned: if i == 0: Children[0].visible = false Children.remove_at(0) Children = InventoryArmours.get_children() Children.remove_at(0) for i in GlobalVars.ArmourOwned: if i == 0: Children[0].visible = false Children.remove_at(0) # This function is a animation thing. Within Attack func DealEnemyDamage(): Enemy.HP -= Attack * randf_range(1, 8) if Swapper == false: get_node(EnemyPath).get_node("Damage").set("emitting", true) else: get_node(EnemyPath).get_node("Damage2").set("emitting", true) Swapper = !Swapper # This is the place for inventory stuff! func InventoryShow(): get_node(InventoryGUI).visible = true func InventoryHide(): get_node(InventoryGUI).visible = false func UpdateWeapon(Thing: int): get_node(Weapon).texture = Weapons[Thing] get_node(Weapon).rotation_degrees = WeaponRotation[Thing] get_node(Weapon).position = WeaponPosition[Thing] func UpdateHelmet(Thing: int): get_node(Helmet).texture = Helmets[Thing] func UpdateArmour(Thing: int): get_node(Armour).texture = Armours[Thing]