More work on portraits and on combat in quest views

This commit is contained in:
2025-10-02 15:42:16 -04:00
parent 00ef506689
commit aa9b0720d8
36 changed files with 236 additions and 90 deletions

View File

@@ -24,7 +24,8 @@ func _process(delta: float) -> void:
toggle_player_profile()
if Input.is_action_just_pressed("switch modes"):
confirm_end_shift()
if Input.is_action_just_pressed("test"):
test_save()
func add_quest_progress_bar(quest : Quest) -> void:
panel.add_quest_progress_bar(quest)

View File

@@ -9,6 +9,8 @@ var energy : int = 1
var max_energy : int = 1
var level : int = 1
var exp : int = 0
var reset_position : Vector2
var melee_range : float = 100
@export var stats : StatBlock
var gold : int = 0
@@ -18,7 +20,33 @@ var gold : int = 0
signal died(killer :QuestSprite)
signal action_complete(requeue : bool)
signal busy()
signal arrived()
func position_reset() -> void:
var tween = create_tween()
#TODO: Vary movement animations?
tween.tween_callback(anim_player.play.bind("running"))
tween.tween_property(self, "position", reset_position,.75)
if reset_position.x < position.x:
$Sprite.flip_h = true
tween.tween_property($Sprite, "flip_h", false, 0)
tween.tween_callback(anim_player.play.bind("idle"))
tween.tween_callback(arrived.emit)
func approach(target, offset) -> void:
var tween = create_tween()
if target.position.x > position.x:
#TODO: Switch facing direction
offset = -offset
#TODO: Vary movement animations?
tween.tween_callback(anim_player.play.bind("running"))
var target_position = target.position + Vector2(offset, 0)
tween.tween_property(self, "position", target_position,.75)
if target_position.x < position.x:
$Sprite.flip_h = true
tween.tween_property($Sprite, "flip_h", false, 0)
tween.tween_callback(anim_player.play.bind("idle"))
tween.tween_callback(arrived.emit)
func attack(target : QuestSprite) -> void:
print("Attack by %s to %s" % [name, target.name])

View File

@@ -6,6 +6,7 @@ const questor_template = preload("res://templates/questor_sprite.tscn")
@onready var setting = $Setting
var quest : Quest
@export var base_speed : float
func setup(qst : Quest) -> void:
quest = qst
@@ -14,6 +15,10 @@ func setup(qst : Quest) -> void:
questorSprite.setup(quest.questor)
add_child(questorSprite)
questorSprite.global_position = $QuestorPosition.global_position
questorSprite.reset_position = questorSprite.position
for child in %Layers.get_children():
if child is Parallax2D:
child.autoscroll.x = -base_speed * child.scroll_scale.x
func set_questor_animation(anim_name : String) -> void:
@@ -22,9 +27,10 @@ func set_questor_animation(anim_name : String) -> void:
func set_enemy_animation(enemy : Enemy, anim_name : String) -> void:
enemy.set_animation(anim_name)
func place_enemy(enemy : Enemy) -> void:
func place_enemy(enemy : Enemy, reset : bool = false) -> void:
add_child(enemy)
enemy.global_position = $EnemyPosition.global_position
enemy.reset_position = enemy.position
func pause_setting() -> void:
setting.process_mode = Node.PROCESS_MODE_DISABLED

View File

@@ -54,3 +54,6 @@ func check_levelup() -> void:
func _on_level_up() -> void:
show_levelup_banner()
func _on_questor_changed() -> void:
pass