Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Dragon20C |
I have two scripts ones a class_name called Actions, and the other is a scene with a script that does some ui updates, in the class script I have a signal and a function that gets called when doing an action, in the function I emit a signal, in the other script i connect the signal with self.connect(“ui_update”, self, “update_ui”) but this never happens because the function inside that script never runs
func _ready():
self.connect("ui_update", self, "update_ui")
func update_ui():
print("ui is updating")
$Player_position.update(MonsterInventories.player_inventory[0])
$Enemy_position.update(MonsterInventories.enemy_inventory[0])
That is the script what I want to run a function
class_name Actions
signal ui_update
func attack(attacker_inventory, target_inventory, move):
#print(str(attacker.name) + " used " + str(move.name) + " " + str((move)))
var attacker = attacker_inventory[0]
var target = target_inventory[0]
var new_text = (attacker.name + " attacked with " + move.name)
#text_scroller(new_text) # UI will become usless unless I change how the ui is controlled
var data = recieve_damage(move,attacker,target)
emit_signal("ui_update")
and this script I simply emit the signal but nothing works, either the signal doesnt get emitted or the signal never actually connects and I have to do it this way since this class script isn’t in a scene
Looking in the debug box it says its a nonexistent signal so the signal doesnt exist yet, how can I go around this?
Dragon20C | 2021-05-19 07:25