extends CharacterBody2D const SPEED = 700.0 const JUMP_VELOCITY = -400.0 @export var target : Node2D func _ready() -> void: UserContext. set_target_for . connect(set_target_for) func set_target_for(who: CurrencyMemberSprite, t: Node2D): if %MemberSprite == who: if target != null: target.tree_exiting.disconnect(removed_target) t.tree_exiting.connect(removed_target) target = t UserContext.modal(null) func removed_target(): target = null func combat(target): var winner = randf_range(0,2) print(winner) if winner <= 1: target.queue_free() else: var p := Production.new() p.amount = -1 p.currency = %MemberSprite.currency Economy.produce(p) self.queue_free() #func _Direction() -> Vector2: #self.position = self.position.move_toward(target.transform.position, speed * delta) func _physics_process(delta: float) -> void: if target != null: #print(self.global_position.distance_to(target.global_position)) var _num = abs(abs(self.global_position) - abs(target.global_position)) #print(num) var direction = (target.global_position - self.global_position).normalized() * SPEED * delta #if (num > Vector2(2,2)): if (self.global_position.distance_to(target.global_position) > 25): self.velocity = direction #self.global_position = self.global_position.move_toward(target.global_position, SPEED * delta) elif (target.is_class("CharacterBody2D")): print("is SentientCurrency") print(target.name) print(target.get_node("MemberSprite").get_allegiance()) if (target.get_node("MemberSprite").get_allegiance() != get_node("MemberSprite").get_allegiance() ): #print("different Allegience: "+ target.get_node("CurrencyMemberSprite").alligence) combat(target) removed_target() else: print("Removed Target") removed_target() #target = null move_and_slide()