diff --git a/2d/role_playing_game/combat/combat.gd b/2d/role_playing_game/combat/combat.gd index d3e6d8e8..8303261d 100644 --- a/2d/role_playing_game/combat/combat.gd +++ b/2d/role_playing_game/combat/combat.gd @@ -3,6 +3,17 @@ extends Node signal combat_finished(winner: Combatant, loser: Combatant) +@onready var ui := $CombatCanvas/UI + + +func _ready() -> void: + ui.flee.connect(_on_flee) + + +func _on_flee(winner: Combatant, loser: Combatant) -> void: + finish_combat(winner, loser) + + func initialize(combat_combatants: Array[PackedScene]) -> void: for combatant_scene in combat_combatants: var combatant := combatant_scene.instantiate() @@ -11,20 +22,20 @@ func initialize(combat_combatants: Array[PackedScene]) -> void: combatant.get_node("Health").dead.connect(_on_combatant_death.bind(combatant)) else: combatant.queue_free() - $UI.initialize() + ui.initialize() $TurnQueue.initialize() func clear_combat() -> void: for n in $Combatants.get_children(): + # Player characters. n.queue_free() - for n in $UI/Combatants.get_children(): + for n in ui.get_node("Combatants").get_children(): + # Health bars. n.queue_free() func finish_combat(winner: Combatant, loser: Combatant) -> void: - # FIXME: Error calling from signal 'combat_finished' to callable: - # 'Node(game.gd)::_on_combat_finished': Cannot convert argument 1 from Object to Object. combat_finished.emit(winner, loser) diff --git a/2d/role_playing_game/combat/combat.tscn b/2d/role_playing_game/combat/combat.tscn index 6d102694..268a4937 100644 --- a/2d/role_playing_game/combat/combat.tscn +++ b/2d/role_playing_game/combat/combat.tscn @@ -876,17 +876,19 @@ script = SubResource("1") script = ExtResource("2") combatants_list = NodePath("../Combatants") -[node name="UI" type="Control" parent="." node_paths=PackedStringArray("combatants_node")] +[node name="CombatCanvas" type="CanvasLayer" parent="."] + +[node name="UI" type="Control" parent="CombatCanvas" node_paths=PackedStringArray("combatants_node")] layout_mode = 3 anchors_preset = 0 offset_right = 1280.0 offset_bottom = 720.0 theme = ExtResource("3") script = ExtResource("4") -combatants_node = NodePath("../Combatants") +combatants_node = NodePath("../../Combatants") info_scene = ExtResource("5") -[node name="Combatants" type="HBoxContainer" parent="UI"] +[node name="Combatants" type="HBoxContainer" parent="CombatCanvas/UI"] layout_mode = 0 offset_left = 20.0 offset_top = 77.0 @@ -894,37 +896,37 @@ offset_right = 1260.0 offset_bottom = 328.0 theme_override_constants/separation = 360 -[node name="Buttons" type="PanelContainer" parent="UI"] +[node name="Buttons" type="PanelContainer" parent="CombatCanvas/UI"] layout_mode = 0 offset_left = 80.0 offset_top = 376.0 offset_right = 1200.0 offset_bottom = 698.0 -[node name="GridContainer" type="GridContainer" parent="UI/Buttons"] +[node name="GridContainer" type="GridContainer" parent="CombatCanvas/UI/Buttons"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 columns = 2 -[node name="Attack" type="Button" parent="UI/Buttons/GridContainer"] +[node name="Attack" type="Button" parent="CombatCanvas/UI/Buttons/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Attack" -[node name="Defend" type="Button" parent="UI/Buttons/GridContainer"] +[node name="Defend" type="Button" parent="CombatCanvas/UI/Buttons/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Defend" -[node name="Flee" type="Button" parent="UI/Buttons/GridContainer"] +[node name="Flee" type="Button" parent="CombatCanvas/UI/Buttons/GridContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Flee" -[connection signal="button_up" from="UI/Buttons/GridContainer/Attack" to="UI" method="_on_Attack_button_up"] -[connection signal="button_up" from="UI/Buttons/GridContainer/Defend" to="UI" method="_on_Defend_button_up"] -[connection signal="button_up" from="UI/Buttons/GridContainer/Flee" to="UI" method="_on_Flee_button_up"] +[connection signal="button_up" from="CombatCanvas/UI/Buttons/GridContainer/Attack" to="CombatCanvas/UI" method="_on_Attack_button_up"] +[connection signal="button_up" from="CombatCanvas/UI/Buttons/GridContainer/Defend" to="CombatCanvas/UI" method="_on_Defend_button_up"] +[connection signal="button_up" from="CombatCanvas/UI/Buttons/GridContainer/Flee" to="CombatCanvas/UI" method="_on_Flee_button_up"] diff --git a/2d/role_playing_game/combat/combatants/combatant.gd b/2d/role_playing_game/combat/combatants/combatant.gd index 587f4e34..c4db2ec1 100644 --- a/2d/role_playing_game/combat/combatants/combatant.gd +++ b/2d/role_playing_game/combat/combatants/combatant.gd @@ -8,6 +8,8 @@ signal turn_finished var active := false: set = set_active +@onready var animation_playback: AnimationNodeStateMachinePlayback = $Sprite2D/AnimationTree.get("parameters/playback") + func set_active(value: bool) -> void: active = value set_process(value) @@ -35,4 +37,4 @@ func flee() -> void: func take_damage(damage_to_take: float) -> void: $Health.take_damage(damage_to_take) - $Sprite2D/AnimationPlayer.play("take_damage") + animation_playback.start("take_damage") diff --git a/2d/role_playing_game/combat/combatants/sprites/sprite.tscn b/2d/role_playing_game/combat/combatants/sprites/sprite.tscn index 9c6682cc..c5df04bf 100644 --- a/2d/role_playing_game/combat/combatants/sprites/sprite.tscn +++ b/2d/role_playing_game/combat/combatants/sprites/sprite.tscn @@ -1,11 +1,51 @@ -[gd_scene load_steps=6 format=3 uid="uid://pxvb8ikxb0k"] +[gd_scene load_steps=13 format=3 uid="uid://pxvb8ikxb0k"] [ext_resource type="Texture2D" uid="uid://bxrjk2lilj53q" path="res://combat/combatants/sprites/shadow.png" id="1"] [ext_resource type="Texture2D" uid="uid://c82ex4vybwch5" path="res://combat/combatants/sprites/player_battle.png" id="2"] +[sub_resource type="Animation" id="Animation_q241x"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Pivot/Body:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Pivot/Body:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, -41)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Pivot/Body:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + [sub_resource type="Animation" id="2"] resource_name = "idle" length = 1.5 +loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -50,17 +90,40 @@ tracks/0/keys = { [sub_resource type="AnimationLibrary" id="AnimationLibrary_cqku5"] _data = { +&"RESET": SubResource("Animation_q241x"), &"idle": SubResource("2"), &"take_damage": SubResource("1") } +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_q241x"] +animation = &"idle" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ylufg"] +animation = &"take_damage" + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_cg2b2"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8xcit"] + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5sgx1"] +switch_mode = 2 +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_mjsen"] +states/idle/node = SubResource("AnimationNodeAnimation_q241x") +states/idle/position = Vector2(407.333, 120.667) +states/take_damage/node = SubResource("AnimationNodeAnimation_ylufg") +states/take_damage/position = Vector2(700.667, 192.667) +transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition_cg2b2"), "idle", "take_damage", SubResource("AnimationNodeStateMachineTransition_8xcit"), "take_damage", "idle", SubResource("AnimationNodeStateMachineTransition_5sgx1")] + [node name="Sprite2D" type="Node2D"] [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "idle" libraries = { -"": SubResource("AnimationLibrary_cqku5") +&"": SubResource("AnimationLibrary_cqku5") } +autoplay = "idle" next/take_damage = &"idle" [node name="Pivot" type="Marker2D" parent="."] @@ -73,3 +136,7 @@ texture = ExtResource("1") [node name="Body" type="Sprite2D" parent="Pivot"] position = Vector2(0, -41) texture = ExtResource("2") + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource("AnimationNodeStateMachine_mjsen") +anim_player = NodePath("../AnimationPlayer") diff --git a/2d/role_playing_game/combat/interface/ui.gd b/2d/role_playing_game/combat/interface/ui.gd index 0c5728d4..f1388e9b 100644 --- a/2d/role_playing_game/combat/interface/ui.gd +++ b/2d/role_playing_game/combat/interface/ui.gd @@ -1,5 +1,7 @@ extends Control +signal flee(winner: Combatant, loser: Combatant) + @export var combatants_node: Node @export var info_scene: PackedScene @@ -38,6 +40,7 @@ func _on_Flee_button_up() -> void: return combatants_node.get_node("Player").flee() + var loser: Combatant = combatants_node.get_node("Player") var winner: Combatant = combatants_node.get_node("Opponent") - get_parent().finish_combat(winner, loser) + flee.emit(winner, loser) diff --git a/2d/role_playing_game/decoration/wind_sway.tres b/2d/role_playing_game/decoration/wind_sway.tres index 1e038f87..675a9317 100644 --- a/2d/role_playing_game/decoration/wind_sway.tres +++ b/2d/role_playing_game/decoration/wind_sway.tres @@ -53,6 +53,6 @@ shader_parameter/maxStrength = 0.01 shader_parameter/strengthScale = 100.0 shader_parameter/interval = 3.5 shader_parameter/detail = 1.0 -shader_parameter/distortion = null -shader_parameter/heightOffset = null +shader_parameter/distortion = 0.0 +shader_parameter/heightOffset = 0.0 shader_parameter/offset = 0.0 diff --git a/2d/role_playing_game/game.gd b/2d/role_playing_game/game.gd index 35b2b62e..770e0692 100644 --- a/2d/role_playing_game/game.gd +++ b/2d/role_playing_game/game.gd @@ -21,13 +21,13 @@ func _ready() -> void: func start_combat(combat_actors: Array[PackedScene]) -> void: - remove_child($Exploration) - $AnimationPlayer.play("fade") + $AnimationPlayer.play("fade_to_black") await $AnimationPlayer.animation_finished + remove_child($Exploration) add_child(combat_screen) combat_screen.show() combat_screen.initialize(combat_actors) - $AnimationPlayer.play_backwards("fade") + $AnimationPlayer.play_backwards("fade_to_black") func _on_opponent_dialogue_finished(opponent: Pawn) -> void: @@ -40,7 +40,7 @@ func _on_opponent_dialogue_finished(opponent: Pawn) -> void: func _on_combat_finished(winner: Combatant, _loser: Combatant) -> void: remove_child(combat_screen) - $AnimationPlayer.play_backwards("fade") + $AnimationPlayer.play_backwards("fade_to_black") add_child(exploration_screen) var dialogue: Node = load("res://dialogue/dialogue_player/dialogue_player.tscn").instantiate() @@ -51,7 +51,7 @@ func _on_combat_finished(winner: Combatant, _loser: Combatant) -> void: await $AnimationPlayer.animation_finished var player: Pawn = $Exploration/Grid/Player - exploration_screen.get_node("DialogueUI").show_dialogue(player, dialogue) + exploration_screen.get_node("DialogueCanvas/DialogueUI").show_dialogue(player, dialogue) combat_screen.clear_combat() await dialogue.dialogue_finished dialogue.queue_free() diff --git a/2d/role_playing_game/game.tscn b/2d/role_playing_game/game.tscn index f27889ec..68143a8f 100644 --- a/2d/role_playing_game/game.tscn +++ b/2d/role_playing_game/game.tscn @@ -21,7 +21,7 @@ tracks/0/keys = { [sub_resource type="AnimationLibrary" id="AnimationLibrary_53g8u"] _data = { -&"fade": SubResource("1") +&"fade_to_black": SubResource("1") } [node name="Game" type="Node" node_paths=PackedStringArray("combat_screen", "exploration_screen")] @@ -31,13 +31,12 @@ exploration_screen = NodePath("Exploration") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { -"": SubResource("AnimationLibrary_53g8u") +&"": SubResource("AnimationLibrary_53g8u") } [node name="Transition" type="CanvasLayer" parent="."] [node name="ColorRect" type="ColorRect" parent="Transition"] -visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 diff --git a/2d/role_playing_game/grid_movement/exploration.tscn b/2d/role_playing_game/grid_movement/exploration.tscn index 882f9ef5..860158c7 100644 --- a/2d/role_playing_game/grid_movement/exploration.tscn +++ b/2d/role_playing_game/grid_movement/exploration.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=27 format=3 uid="uid://ckgv4m67a5kfj"] +[gd_scene load_steps=29 format=4 uid="uid://ckgv4m67a5kfj"] [ext_resource type="TileSet" path="res://grid_movement/grid/lines/grid_lines_tileset.tres" id="1"] [ext_resource type="TileSet" path="res://grid_movement/grid/tiles/grid_tileset.tres" id="2"] @@ -14,10 +14,13 @@ [ext_resource type="Texture2D" uid="uid://mi3mmtft0snh" path="res://decoration/grass.png" id="12"] [ext_resource type="Material" uid="uid://blst65bnoqyam" path="res://decoration/wind_sway.tres" id="13"] [ext_resource type="Texture2D" uid="uid://bb6xgdlxov660" path="res://grid_movement/pawns/opponent_exploration.png" id="14"] +[ext_resource type="Script" uid="uid://jktwsmihasw3" path="res://grid_movement/pawns/player.gd" id="14_dg62l"] [ext_resource type="Texture2D" uid="uid://dcs722r26k774" path="res://decoration/grass_variant.png" id="15"] +[ext_resource type="SpriteFrames" uid="uid://gucxux3cqds3" path="res://grid_movement/pawns/anim_player.tres" id="15_qps0g"] [ext_resource type="TileSet" path="res://grid_movement/grid/tiles/pathways.tres" id="16"] [ext_resource type="Texture2D" uid="uid://m6yf6xcjcsw5" path="res://decoration/pebble.png" id="17"] [ext_resource type="Texture2D" uid="uid://bvd0moi55jury" path="res://decoration/grass_upperlevel.png" id="18"] +[ext_resource type="SpriteFrames" uid="uid://bgwcs0i1rmrn8" path="res://grid_movement/pawns/anim_opponent.tres" id="18_dg62l"] [ext_resource type="Texture2D" uid="uid://c7qvcysn4b426" path="res://decoration/grass_variant_upperlevel.png" id="19"] [ext_resource type="Texture2D" uid="uid://cynl0x6vk4sf6" path="res://decoration/pebble_variant.png" id="20"] [ext_resource type="Texture2D" uid="uid://cr0xmj8c7wbyr" path="res://decoration/flower.png" id="21"] @@ -26,22 +29,19 @@ [ext_resource type="Texture2D" uid="uid://bm0xbwedm3iwt" path="res://decoration/flower_upperlevel.png" id="24"] [ext_resource type="Texture2D" uid="uid://ct0dfl4e14ahx" path="res://decoration/bush.png" id="25"] -[sub_resource type="AnimationNodeStateMachinePlayback" id="AnimationNodeStateMachinePlayback_ksykr"] - [node name="Exploration" type="Node2D"] -[node name="Ground" type="TileMap" parent="."] -z_index = -3 +[node name="Ground" type="TileMapLayer" parent="."] +use_parent_material = true position = Vector2(0, 25) +tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAARAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAEAAAAAAAAAAAACAAEAAAAAAAAAAAADAAEAAAAAAAAAAAAEAAEAAAAAAAAAAAAFAAEAAAAAAAAAAAAGAAEAAAAAAAAAAAAHAAEAAAAAAAAAAAAIAAEAAAAAAAAAAAAJAAEAAAAAAAAAAAAKAAEAAAAAAAAAAAALAAEAAAAAAAAAAAAMAAEAAAAAAAAAAAANAAEAAAAAAAAAAAAOAAEAAAAAAAAAAAAPAAEAAAAAAAAAAAAQAAEAAAAAAAAAAAARAAEAAAAAAAAAAAASAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAABAAIAAAAAAAAAAAACAAIAAAAAAAAAAAADAAIAAAAAAAAAAAAEAAIAAAAAAAAAAAAFAAIAAAAAAAAAAAAGAAIAAAAAAAAAAAAHAAIAAAAAAAAAAAAIAAIAAAAAAAAAAAAJAAIAAAAAAAAAAAAKAAIAAAAAAAAAAAALAAIAAAAAAAAAAAAMAAIAAAAAAAAAAAANAAIAAAAAAAAAAAAOAAIAAAAAAAAAAAAPAAIAAAAAAAAAAAAQAAIAAAAAAAAAAAARAAIAAAAAAAAAAAASAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAABAAMAAAAAAAAAAAACAAMAAAAAAAAAAAADAAMAAAAAAAAAAAAEAAMAAAAAAAAAAAAFAAMAAAAAAAAAAAAGAAMAAAAAAAAAAAAHAAMAAAAAAAAAAAAIAAMAAAAAAAAAAAAJAAMAAAAAAAAAAAAKAAMAAAAAAAAAAAALAAMAAAAAAAAAAAAMAAMAAAAAAAAAAAANAAMAAAAAAAAAAAAOAAMAAAAAAAAAAAAPAAMAAAAAAAAAAAAQAAMAAAAAAAAAAAARAAMAAAAAAAAAAAASAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAABAAQAAAAAAAAAAAACAAQAAAAAAAAAAAADAAQAAAAAAAAAAAAEAAQAAAAAAAAAAAAFAAQAAAAAAAAAAAAGAAQAAAAAAAAAAAAHAAQAAAAAAAAAAAAIAAQAAAAAAAAAAAAJAAQAAAAAAAAAAAAKAAQAAAAAAAAAAAALAAQAAAAAAAAAAAAMAAQAAAAAAAAAAAANAAQAAAAAAAAAAAAOAAQAAAAAAAAAAAAPAAQAAAAAAAAAAAAQAAQAAAAAAAAAAAARAAQAAAAAAAAAAAASAAQAAAAAAAAAAAAAAAUAAAAAAAAAAAABAAUAAAAAAAAAAAACAAUAAAAAAAAAAAADAAUAAAAAAAAAAAAEAAUAAAAAAAAAAAAFAAUAAAAAAAAAAAAGAAUAAAAAAAAAAAAHAAUAAAAAAAAAAAAIAAUAAAAAAAAAAAAJAAUAAAAAAAAAAAAKAAUAAAAAAAAAAAALAAUAAAAAAAAAAAAMAAUAAAAAAAAAAAANAAUAAAAAAAAAAAAOAAUAAAAAAAAAAAAPAAUAAAAAAAAAAAAQAAUAAAAAAAAAAAARAAUAAAAAAAAAAAASAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAABAAYAAAAAAAAAAAACAAYAAAAAAAAAAAADAAYAAAAAAAAAAAAEAAYAAAAAAAAAAAAFAAYAAAAAAAAAAAAGAAYAAAAAAAAAAAAHAAYAAAAAAAAAAAAIAAYAAAAAAAAAAAAJAAYAAAAAAAAAAAAKAAYAAAAAAAAAAAALAAYAAAAAAAAAAAAMAAYAAAAAAAAAAAANAAYAAAAAAAAAAAAOAAYAAAAAAAAAAAAPAAYAAAAAAAAAAAAQAAYAAAAAAAAAAAARAAYAAAAAAAAAAAASAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAABAAcAAAAAAAAAAAACAAcAAAAAAAAAAAADAAcAAAAAAAAAAAAEAAcAAAAAAAAAAAAFAAcAAAAAAAAAAAAGAAcAAAAAAAAAAAAHAAcAAAAAAAAAAAAIAAcAAAAAAAAAAAAJAAcAAAAAAAAAAAAKAAcAAAAAAAAAAAALAAcAAAAAAAAAAAAMAAcAAAAAAAAAAAANAAcAAAAAAAAAAAAOAAcAAAAAAAAAAAAPAAcAAAAAAAAAAAAQAAcAAAAAAAAAAAARAAcAAAAAAAAAAAASAAcAAAAAAAAAAAAAAAgAAAAAAAAAAAABAAgAAAAAAAAAAAACAAgAAAAAAAAAAAADAAgAAAAAAAAAAAAEAAgAAAAAAAAAAAAFAAgAAAAAAAAAAAAGAAgAAAAAAAAAAAAHAAgAAAAAAAAAAAAIAAgAAAAAAAAAAAAJAAgAAAAAAAAAAAAKAAgAAAAAAAAAAAALAAgAAAAAAAAAAAAMAAgAAAAAAAAAAAANAAgAAAAAAAAAAAAOAAgAAAAAAAAAAAAPAAgAAAAAAAAAAAAQAAgAAAAAAAAAAAARAAgAAAAAAAAAAAASAAgAAAAAAAAAAAAAAAkAAAAAAAAAAAABAAkAAAAAAAAAAAACAAkAAAAAAAAAAAADAAkAAAAAAAAAAAAEAAkAAAAAAAAAAAAFAAkAAAAAAAAAAAAGAAkAAAAAAAAAAAAHAAkAAAAAAAAAAAAIAAkAAAAAAAAAAAAJAAkAAAAAAAAAAAAKAAkAAAAAAAAAAAALAAkAAAAAAAAAAAAMAAkAAAAAAAAAAAANAAkAAAAAAAAAAAAOAAkAAAAAAAAAAAAPAAkAAAAAAAAAAAAQAAkAAAAAAAAAAAARAAkAAAAAAAAAAAASAAkAAAAAAAAAAAAAAAoAAAAAAAAAAAABAAoAAAAAAAAAAAACAAoAAAAAAAAAAAADAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAFAAoAAAAAAAAAAAAGAAoAAAAAAAAAAAAHAAoAAAAAAAAAAAAIAAoAAAAAAAAAAAAJAAoAAAAAAAAAAAAKAAoAAAAAAAAAAAALAAoAAAAAAAAAAAAMAAoAAAAAAAAAAAANAAoAAAAAAAAAAAAOAAoAAAAAAAAAAAAPAAoAAAAAAAAAAAAQAAoAAAAAAAAAAAARAAoAAAAAAAAAAAASAAoAAAAAAAAAAAA=") tile_set = ExtResource("11") -format = 2 -layer_0/tile_data = PackedInt32Array(0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 0, 0, 65554, 0, 0, 131072, 0, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 131090, 0, 0, 196608, 0, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 0, 196624, 0, 0, 196625, 0, 0, 196626, 0, 0, 262144, 0, 0, 262145, 0, 0, 262146, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 0, 0, 262154, 0, 0, 262155, 0, 0, 262156, 0, 0, 262157, 0, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 262161, 0, 0, 262162, 0, 0, 327680, 0, 0, 327681, 0, 0, 327682, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327686, 0, 0, 327687, 0, 0, 327688, 0, 0, 327689, 0, 0, 327690, 0, 0, 327691, 0, 0, 327692, 0, 0, 327693, 0, 0, 327694, 0, 0, 327695, 0, 0, 327696, 0, 0, 327697, 0, 0, 327698, 0, 0, 393216, 0, 0, 393217, 0, 0, 393218, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 0, 0, 393223, 0, 0, 393224, 0, 0, 393225, 0, 0, 393226, 0, 0, 393227, 0, 0, 393228, 0, 0, 393229, 0, 0, 393230, 0, 0, 393231, 0, 0, 393232, 0, 0, 393233, 0, 0, 393234, 0, 0, 458752, 0, 0, 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, 0, 0, 458765, 0, 0, 458766, 0, 0, 458767, 0, 0, 458768, 0, 0, 458769, 0, 0, 458770, 0, 0, 524288, 0, 0, 524289, 0, 0, 524290, 0, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 524304, 0, 0, 524305, 0, 0, 524306, 0, 0, 589824, 0, 0, 589825, 0, 0, 589826, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0, 589840, 0, 0, 589841, 0, 0, 589842, 0, 0, 655360, 0, 0, 655361, 0, 0, 655362, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655366, 0, 0, 655367, 0, 0, 655368, 0, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0) -[node name="Pathways" type="TileMap" parent="."] +[node name="Pathways" type="TileMapLayer" parent="."] +use_parent_material = true position = Vector2(0, 25) +tile_map_data = PackedByteArray("AAALAAAAAQAAAAAAAAAMAAAAAgAAAAAABgANAAAAAgAAAAAABgAOAAAAAgAAAAAABgAPAAAAAQAAAAAAAQALAAEAAwAAAAAABgAMAAEAAAAAAAAABgANAAEAAAAAAAAABgAOAAEAAAAAAAAABgAPAAEAAwAAAAAABwACAAIAAwAAAAAABAADAAIAAAAAAAAABQAEAAIAAwAAAAAAAQACAAMAAAAAAAAAAAADAAMAAgAAAAAABAAEAAMAAQAAAAAAAQAHAAMAAAAAAAAABAAIAAMAAAAAAAAABAAJAAMAAAAAAAAABAAKAAMAAAAAAAAABAALAAMAAwAAAAAAAQACAAQAAAAAAAAAAAADAAQAAgAAAAAABAAEAAQAAAAAAAAAAwAHAAQAAgAAAAAAAQAIAAQAAgAAAAAAAQAJAAQAAgAAAAAAAQAKAAQAAgAAAAAAAQALAAQAAAAAAAAAAwACAAUAAwAAAAAABgADAAUAAAAAAAAABwAEAAUAAwAAAAAABwAHAAUAAAAAAAAABgAIAAUAAAAAAAAABgAJAAUAAAAAAAAABgAKAAUAAAAAAAAABgALAAUAAwAAAAAAAwAPAAUAAwAAAAAABAAQAAUAAAAAAAAABAARAAUAAAAAAAAABAASAAUAAgAAAAAABAALAAYAAwAAAAAAAAAMAAYAAAAAAAAABAANAAYAAwAAAAAABQAPAAYAAQAAAAAAAgAQAAYAAgAAAAAABAARAAYAAgAAAAAABAASAAYAAgAAAAAABAALAAcAAQAAAAAAAgAMAAcAAgAAAAAAAgANAAcAAAAAAAAAAwAPAAcAAAAAAAAAAgAQAAcAAgAAAAAABAARAAcAAgAAAAAABAASAAcAAgAAAAAABAATAAcAAgAAAAAABAALAAgAAwAAAAAABgAMAAgAAQAAAAAABwANAAgAAwAAAAAAAwAPAAgAAwAAAAAAAgAQAAgAAQAAAAAABwARAAgAAQAAAAAABwASAAgAAgAAAAAABAATAAgAAgAAAAAABAA=") tile_set = ExtResource("16") -format = 2 -layer_0/tile_data = PackedInt32Array(11, 1, 0, 12, 2, 393216, 13, 2, 393216, 14, 2, 393216, 15, 1, 65536, 65547, 3, 393216, 65548, 0, 393216, 65549, 0, 393216, 65550, 0, 393216, 65551, 3, 458752, 131074, 3, 262144, 131075, 0, 327680, 131076, 3, 65536, 196610, 0, 0, 196611, 2, 262144, 196612, 1, 65536, 196615, 0, 262144, 196616, 0, 262144, 196617, 0, 262144, 196618, 0, 262144, 196619, 3, 65536, 262146, 0, 0, 262147, 2, 262144, 262148, 0, 196608, 262151, 2, 65536, 262152, 2, 65536, 262153, 2, 65536, 262154, 2, 65536, 262155, 0, 196608, 327682, 3, 393216, 327683, 0, 458752, 327684, 3, 458752, 327687, 0, 393216, 327688, 0, 393216, 327689, 0, 393216, 327690, 0, 393216, 327691, 3, 196608, 327695, 3, 262144, 327696, 0, 262144, 327697, 0, 262144, 327698, 2, 262144, 393227, 3, 0, 393228, 0, 262144, 393229, 3, 327680, 393231, 1, 131072, 393232, 2, 262144, 393233, 2, 262144, 393234, 2, 262144, 458763, 1, 131072, 458764, 2, 131072, 458765, 0, 196608, 458767, 0, 131072, 458768, 2, 262144, 458769, 2, 262144, 458770, 2, 262144, 458771, 2, 262144, 524299, 3, 393216, 524300, 1, 458752, 524301, 3, 196608, 524303, 3, 131072, 524304, 1, 458752, 524305, 1, 458752, 524306, 2, 262144, 524307, 2, 262144) [node name="Decoration" type="Node2D" parent="."] @@ -624,37 +624,31 @@ position = Vector2(596, 520) rotation = -0.764454 texture = ExtResource("17") -[node name="Grid Walkable Floor" type="TileMap" parent="."] -z_as_relative = false +[node name="Grid Walkable Floor" type="TileMapLayer" parent="."] +use_parent_material = true position = Vector2(0, 25) tile_set = ExtResource("1") -format = 2 -[node name="Grid" type="TileMap" parent="." node_paths=PackedStringArray("dialogue_ui")] +[node name="Grid" type="TileMapLayer" parent="." node_paths=PackedStringArray("dialogue_ui")] +use_parent_material = true position = Vector2(0, 25) +tile_map_data = PackedByteArray("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AAAbAAAAAwAAAAAAAAAcAAAAAwAAAAAAAAAdAAAAAwAAAAAAAAD0/wEAAwAAAAAAAAD1/wEAAwAAAAAAAAD2/wEAAwAAAAAAAAD3/wEAAwAAAAAAAAD4/wEAAwAAAAAAAAD5/wEAAwAAAAAAAAD6/wEAAwAAAAAAAAD7/wEAAwAAAAAAAAD8/wEAAwAAAAAAAAD9/wEAAwAAAAAAAAD+/wEAAwAAAAAAAAD//wEAAwAAAAAAAAAAAAEABQAAAAAABQAQAAEACgAAAAAAAQASAAEABQAAAAAABgATAAEAAwAAAAAAAAAUAAEAAwAAAAAAAAAVAAEAAwAAAAAAAAAWAAEAAwAAAAAAAAAXAAEAAwAAAAAAAAAYAAEAAwAAAAAAAAAZAAEAAwAAAAAAAAAaAAEAAwAAAAAAAAAbAAEAAwAAAAAAAAAcAAEAAwAAAAAAAAAdAAEAAwAAAAAAAAD0/wIAAwAAAAAAAAD1/wIAAwAAAAAAAAD2/wIAAwAAAAAAAAD3/wIAAwAAAAAAAAD4/wIAAwAAAAAAAAD5/wIAAwAAAAAAAAD6/wIAAwAAAAAAAAD7/wIAAwAAAAAAAAD8/wIAAwAAAAAAAAD9/wIAAwAAAAAAAAD+/wIAAwAAAAAAAAD//wIAAwAAAAAAAAAAAAIABQAAAAAABQAGAAIABAAAAAAAAQAHAAIABQAAAAAAAQAIAAIABQAAAAAAAQAJAAIABQAAAAAAAQAKAAIABAAAAAAAAAASAAIABQAAAAAABgATAAIAAwAAAAAAAAAUAAIAAwAAAAAAAAAVAAIAAwAAAAAAAAAWAAIAAwAAAAAAAAAXAAIAAwAAAAAAAAAYAAIAAwAAAAAAAAAZAAIAAwAAAAAAAAAaAAIAAwAAAAAAAAAbAAIAAwAAAAAAAAAcAAIAAwAAAAAAAAAdAAIAAwAAAAAAAAD0/wMAAwAAAAAAAAD1/wMAAwAAAAAAAAD2/wMAAwAAAAAAAAD3/wMAAwAAAAAAAAD4/wMAAwAAAAAAAAD5/wMAAwAAAAAAAAD6/wMAAwAAAAAAAAD7/wMAAwAAAAAAAAD8/wMAAwAAAAAAAAD9/wMAAwAAAAAAAAD+/wMAAwAAAAAAAAD//wMAAwAAAAAAAAAAAAMABQAAAAAABQAGAAMABQAAAAAABgAHAAMACAAAAAAAAAAIAAMABwAAAAAAAQAJAAMABwAAAAAAAQAKAAMACQAAAAAAAQARAAMABAAAAAAAAQASAAMABgAAAAAAAQATAAMAAwAAAAAAAAAUAAMAAwAAAAAAAAAVAAMAAwAAAAAAAAAWAAMAAwAAAAAAAAAXAAMAAwAAAAAAAAAYAAMAAwAAAAAAAAAZAAMAAwAAAAAAAAAaAAMAAwAAAAAAAAAbAAMAAwAAAAAAAAAcAAMAAwAAAAAAAAAdAAMAAwAAAAAAAAD0/wQAAwAAAAAAAAD1/wQAAwAAAAAAAAD2/wQAAwAAAAAAAAD3/wQAAwAAAAAAAAD4/wQAAwAAAAAAAAD5/wQAAwAAAAAAAAD6/wQAAwAAAAAAAAD7/wQAAwAAAAAAAAD8/wQAAwAAAAAAAAD9/wQAAwAAAAAAAAD+/wQAAwAAAAAAAAD//wQAAwAAAAAAAAAAAAQABQAAAAAABQAGAAQABQAAAAAABgAHAAQABQAAAAAABQARAAQABQAAAAAABAASAAQAAwAAAAAAAQATAAQAAwAAAAAAAAAUAAQAAwAAAAAAAAAVAAQAAwAAAAAAAAAWAAQAAwAAAAAAAAAXAAQAAwAAAAAAAAAYAAQAAwAAAAAAAAAZAAQAAwAAAAAAAAAaAAQAAwAAAAAAAAAbAAQAAwAAAAAAAAAcAAQAAwAAAAAAAAAdAAQAAwAAAAAAAAD0/wUAAwAAAAAAAAD1/wUAAwAAAAAAAAD2/wUAAwAAAAAAAAD3/wUAAwAAAAAAAAD4/wUAAwAAAAAAAAD5/wUAAwAAAAAAAAD6/wUAAwAAAAAAAAD7/wUAAwAAAAAAAAD8/wUAAwAAAAAAAAD9/wUAAwAAAAAAAAD+/wUAAwAAAAAAAAD//wUAAwAAAAAAAAAAAAUABQAAAAAABQAGAAUABQAAAAAABgAHAAUABgAAAAAABwAIAAUABQAAAAAAAQAJAAUABQAAAAAAAQAKAAUABAAAAAAAAAARAAUACQAAAAAAAAASAAUACAAAAAAAAQATAAUAAwAAAAAAAAAUAAUAAwAAAAAAAAAVAAUAAwAAAAAAAAAWAAUAAwAAAAAAAAAXAAUAAwAAAAAAAAAYAAUAAwAAAAAAAAAZAAUAAwAAAAAAAAAaAAUAAwAAAAAAAAAbAAUAAwAAAAAAAAAcAAUAAwAAAAAAAAAdAAUAAwAAAAAAAAD0/wYAAwAAAAAAAAD1/wYAAwAAAAAAAAD2/wYAAwAAAAAAAAD3/wYAAwAAAAAAAAD4/wYAAwAAAAAAAAD5/wYAAwAAAAAAAAD6/wYAAwAAAAAAAAD7/wYAAwAAAAAAAAD8/wYAAwAAAAAAAAD9/wYAAwAAAAAAAAD+/wYAAwAAAAAAAAD//wYAAwAAAAAAAAAAAAYABQAAAAAABQABAAYACgAAAAAAAAAGAAYACQAAAAAAAAAHAAYABwAAAAAAAAAIAAYABwAAAAAAAQAJAAYABwAAAAAAAQAKAAYACQAAAAAAAQASAAYABQAAAAAABgATAAYAAwAAAAAAAAAUAAYAAwAAAAAAAAAVAAYAAwAAAAAAAAAWAAYAAwAAAAAAAAAXAAYAAwAAAAAAAAAYAAYAAwAAAAAAAAAZAAYAAwAAAAAAAAAaAAYAAwAAAAAAAAAbAAYAAwAAAAAAAAAcAAYAAwAAAAAAAAAdAAYAAwAAAAAAAAD0/wcAAwAAAAAAAAD1/wcAAwAAAAAAAAD2/wcAAwAAAAAAAAD3/wcAAwAAAAAAAAD4/wcAAwAAAAAAAAD5/wcAAwAAAAAAAAD6/wcAAwAAAAAAAAD7/wcAAwAAAAAAAAD8/wcAAwAAAAAAAAD9/wcAAwAAAAAAAAD+/wcAAwAAAAAAAAD//wcAAwAAAAAAAAAAAAcABgAAAAAAAAABAAcABQAAAAAAAAACAAcABAAAAAAAAAASAAcABQAAAAAABgATAAcAAwAAAAAAAAAUAAcAAwAAAAAAAAAVAAcAAwAAAAAAAAAWAAcAAwAAAAAAAAAXAAcAAwAAAAAAAAAYAAcAAwAAAAAAAAAZAAcAAwAAAAAAAAAaAAcAAwAAAAAAAAAbAAcAAwAAAAAAAAAcAAcAAwAAAAAAAAAdAAcAAwAAAAAAAAD0/wgAAwAAAAAAAAD1/wgAAwAAAAAAAAD2/wgAAwAAAAAAAAD3/wgAAwAAAAAAAAD4/wgAAwAAAAAAAAD5/wgAAwAAAAAAAAD6/wgAAwAAAAAAAAD7/wgAAwAAAAAAAAD8/wgAAwAAAAAAAAD9/wgAAwAAAAAAAAD+/wgAAwAAAAAAAAD//wgAAwAAAAAAAAAAAAgAAwAAAAAAAAABAAgAAwAAAAAAAAACAAgABQAAAAAABQARAAgABAAAAAAAAQASAAgABgAAAAAAAQATAAgAAwAAAAAA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") tile_set = ExtResource("2") -format = 2 -layer_0/tile_data = PackedInt32Array(-458764, 3, 0, -458763, 3, 0, -458762, 3, 0, -458761, 3, 0, -458760, 3, 0, -458759, 3, 0, -458758, 3, 0, -458757, 3, 0, -458756, 3, 0, -458755, 3, 0, -458754, 3, 0, -458753, 3, 0, -524288, 3, 0, -524287, 3, 0, -524286, 3, 0, -524285, 3, 0, -524284, 3, 0, -524283, 3, 0, -524282, 3, 0, -524281, 3, 0, -524280, 3, 0, -524279, 3, 0, -524278, 3, 0, -524277, 3, 0, -524276, 3, 0, -524275, 3, 0, -524274, 3, 0, -524273, 3, 0, -524272, 3, 0, -524271, 3, 0, -524270, 3, 0, -524269, 3, 0, -524268, 3, 0, -524267, 3, 0, -524266, 3, 0, -524265, 3, 0, -524264, 3, 0, -524263, 3, 0, -524262, 3, 0, -524261, 3, 0, -524260, 3, 0, -524259, 3, 0, -393228, 3, 0, -393227, 3, 0, -393226, 3, 0, -393225, 3, 0, -393224, 3, 0, -393223, 3, 0, -393222, 3, 0, -393221, 3, 0, -393220, 3, 0, -393219, 3, 0, -393218, 3, 0, -393217, 3, 0, -458752, 3, 0, -458751, 3, 0, -458750, 3, 0, -458749, 3, 0, -458748, 3, 0, -458747, 3, 0, -458746, 3, 0, -458745, 3, 0, -458744, 3, 0, -458743, 3, 0, -458742, 3, 0, -458741, 3, 0, -458740, 3, 0, -458739, 3, 0, -458738, 3, 0, -458737, 3, 0, -458736, 3, 0, -458735, 3, 0, -458734, 3, 0, -458733, 3, 0, -458732, 3, 0, -458731, 3, 0, -458730, 3, 0, -458729, 3, 0, -458728, 3, 0, -458727, 3, 0, -458726, 3, 0, -458725, 3, 0, -458724, 3, 0, -458723, 3, 0, -327692, 3, 0, -327691, 3, 0, -327690, 3, 0, -327689, 3, 0, -327688, 3, 0, -327687, 3, 0, -327686, 3, 0, -327685, 3, 0, -327684, 3, 0, -327683, 3, 0, -327682, 3, 0, -327681, 3, 0, -393216, 3, 0, -393215, 3, 0, -393214, 3, 0, -393213, 3, 0, -393212, 3, 0, -393211, 3, 0, -393210, 3, 0, -393209, 3, 0, -393208, 3, 0, -393207, 3, 0, -393206, 3, 0, -393205, 3, 0, -393204, 3, 0, -393203, 3, 0, -393202, 3, 0, -393201, 3, 0, -393200, 3, 0, -393199, 3, 0, -393198, 3, 0, -393197, 3, 0, -393196, 3, 0, -393195, 3, 0, -393194, 3, 0, -393193, 3, 0, -393192, 3, 0, -393191, 3, 0, -393190, 3, 0, -393189, 3, 0, -393188, 3, 0, -393187, 3, 0, -262156, 3, 0, -262155, 3, 0, -262154, 3, 0, -262153, 3, 0, -262152, 3, 0, -262151, 3, 0, -262150, 3, 0, -262149, 3, 0, -262148, 3, 0, -262147, 3, 0, -262146, 3, 0, -262145, 3, 0, -327680, 3, 0, -327679, 3, 0, -327678, 3, 0, -327677, 3, 0, -327676, 3, 0, -327675, 3, 0, -327674, 3, 0, -327673, 3, 0, -327672, 3, 0, -327671, 3, 0, -327670, 3, 0, -327669, 3, 0, -327668, 3, 0, -327667, 3, 0, -327666, 3, 0, -327665, 3, 0, -327664, 3, 0, -327663, 3, 0, -327662, 3, 0, -327661, 3, 0, -327660, 3, 0, -327659, 3, 0, -327658, 3, 0, -327657, 3, 0, -327656, 3, 0, -327655, 3, 0, -327654, 3, 0, -327653, 3, 0, -327652, 3, 0, -327651, 3, 0, -196620, 3, 0, -196619, 3, 0, -196618, 3, 0, -196617, 3, 0, -196616, 3, 0, -196615, 3, 0, -196614, 3, 0, -196613, 3, 0, -196612, 3, 0, -196611, 3, 0, -196610, 3, 0, -196609, 3, 0, -262144, 3, 0, -262143, 3, 0, -262142, 3, 0, -262141, 3, 0, -262140, 3, 0, -262139, 3, 0, -262138, 3, 0, -262137, 3, 0, -262136, 3, 0, -262135, 3, 0, -262134, 3, 0, -262133, 3, 0, -262132, 3, 0, -262131, 3, 0, -262130, 3, 0, -262129, 3, 0, -262128, 3, 0, -262127, 3, 0, -262126, 3, 0, -262125, 3, 0, -262124, 3, 0, -262123, 3, 0, -262122, 3, 0, -262121, 3, 0, -262120, 3, 0, -262119, 3, 0, -262118, 3, 0, -262117, 3, 0, -262116, 3, 0, -262115, 3, 0, -131084, 3, 0, -131083, 3, 0, -131082, 3, 0, -131081, 3, 0, -131080, 3, 0, -131079, 3, 0, -131078, 3, 0, -131077, 3, 0, -131076, 3, 0, -131075, 3, 0, -131074, 3, 0, -131073, 3, 0, -196608, 3, 0, -196607, 3, 0, -196606, 3, 0, -196605, 3, 0, -196604, 3, 0, -196603, 3, 0, -196602, 3, 0, -196601, 3, 0, -196600, 3, 0, -196599, 3, 0, -196598, 3, 0, -196597, 3, 0, -196596, 3, 0, -196595, 3, 0, -196594, 3, 0, -196593, 3, 0, -196592, 3, 0, -196591, 3, 0, -196590, 3, 0, -196589, 3, 0, -196588, 3, 0, -196587, 3, 0, -196586, 3, 0, -196585, 3, 0, -196584, 3, 0, -196583, 3, 0, -196582, 3, 0, -196581, 3, 0, -196580, 3, 0, -196579, 3, 0, -65548, 3, 0, -65547, 3, 0, -65546, 3, 0, -65545, 3, 0, -65544, 3, 0, -65543, 3, 0, -65542, 3, 0, -65541, 3, 0, -65540, 3, 0, -65539, 3, 0, -65538, 3, 0, -65537, 3, 0, -131072, 3, 0, -131071, 3, 0, -131070, 3, 0, -131069, 3, 0, -131068, 3, 0, -131067, 3, 0, -131066, 3, 0, -131065, 3, 0, -131064, 3, 0, -131063, 3, 0, -131062, 3, 0, -131061, 3, 0, -131060, 3, 0, -131059, 3, 0, -131058, 3, 0, -131057, 3, 0, -131056, 3, 0, -131055, 3, 0, -131054, 3, 0, -131053, 3, 0, -131052, 3, 0, -131051, 3, 0, -131050, 3, 0, -131049, 3, 0, -131048, 3, 0, -131047, 3, 0, -131046, 3, 0, -131045, 3, 0, -131044, 3, 0, -131043, 3, 0, -12, 3, 0, -11, 3, 0, -10, 3, 0, -9, 3, 0, -8, 3, 0, -7, 3, 0, -6, 3, 0, -5, 3, 0, -4, 3, 0, -3, 3, 0, -2, 3, 0, -1, 3, 0, -65536, 3, 0, -65535, 3, 0, -65534, 3, 0, -65533, 3, 0, -65532, 3, 0, -65531, 3, 0, -65530, 3, 0, -65529, 3, 0, -65528, 3, 0, -65527, 3, 0, -65526, 3, 0, -65525, 3, 0, -65524, 3, 0, -65523, 3, 0, -65522, 3, 0, -65521, 3, 0, -65520, 3, 0, -65519, 3, 0, -65518, 3, 0, -65517, 3, 0, -65516, 3, 0, -65515, 3, 0, -65514, 3, 0, -65513, 3, 0, -65512, 3, 0, -65511, 3, 0, -65510, 3, 0, -65509, 3, 0, -65508, 3, 0, -65507, 3, 0, 65524, 3, 0, 65525, 3, 0, 65526, 3, 0, 65527, 3, 0, 65528, 3, 0, 65529, 3, 0, 65530, 3, 0, 65531, 3, 0, 65532, 3, 0, 65533, 3, 0, 65534, 3, 0, 65535, 3, 0, 0, 8, 0, 1, 7, 65536, 2, 7, 65536, 3, 7, 65536, 4, 7, 65536, 5, 7, 65536, 6, 7, 65536, 7, 7, 65536, 8, 7, 65536, 9, 7, 65536, 10, 7, 65536, 11, 7, 65536, 12, 7, 65536, 13, 7, 65536, 14, 7, 65536, 15, 7, 65536, 16, 7, 65536, 17, 7, 65536, 18, 8, 65536, 19, 3, 0, 20, 3, 0, 21, 3, 0, 22, 3, 0, 23, 3, 0, 24, 3, 0, 25, 3, 0, 26, 3, 0, 27, 3, 0, 28, 3, 0, 29, 3, 0, 131060, 3, 0, 131061, 3, 0, 131062, 3, 0, 131063, 3, 0, 131064, 3, 0, 131065, 3, 0, 131066, 3, 0, 131067, 3, 0, 131068, 3, 0, 131069, 3, 0, 131070, 3, 0, 131071, 3, 0, 65536, 5, 327680, 65552, 10, 65536, 65554, 5, 393216, 65555, 3, 0, 65556, 3, 0, 65557, 3, 0, 65558, 3, 0, 65559, 3, 0, 65560, 3, 0, 65561, 3, 0, 65562, 3, 0, 65563, 3, 0, 65564, 3, 0, 65565, 3, 0, 196596, 3, 0, 196597, 3, 0, 196598, 3, 0, 196599, 3, 0, 196600, 3, 0, 196601, 3, 0, 196602, 3, 0, 196603, 3, 0, 196604, 3, 0, 196605, 3, 0, 196606, 3, 0, 196607, 3, 0, 131072, 5, 327680, 131078, 4, 65536, 131079, 5, 65536, 131080, 5, 65536, 131081, 5, 65536, 131082, 4, 0, 131090, 5, 393216, 131091, 3, 0, 131092, 3, 0, 131093, 3, 0, 131094, 3, 0, 131095, 3, 0, 131096, 3, 0, 131097, 3, 0, 131098, 3, 0, 131099, 3, 0, 131100, 3, 0, 131101, 3, 0, 262132, 3, 0, 262133, 3, 0, 262134, 3, 0, 262135, 3, 0, 262136, 3, 0, 262137, 3, 0, 262138, 3, 0, 262139, 3, 0, 262140, 3, 0, 262141, 3, 0, 262142, 3, 0, 262143, 3, 0, 196608, 5, 327680, 196614, 5, 393216, 196615, 8, 0, 196616, 7, 65536, 196617, 7, 65536, 196618, 9, 65536, 196625, 4, 65536, 196626, 6, 65536, 196627, 3, 0, 196628, 3, 0, 196629, 3, 0, 196630, 3, 0, 196631, 3, 0, 196632, 3, 0, 196633, 3, 0, 196634, 3, 0, 196635, 3, 0, 196636, 3, 0, 196637, 3, 0, 327668, 3, 0, 327669, 3, 0, 327670, 3, 0, 327671, 3, 0, 327672, 3, 0, 327673, 3, 0, 327674, 3, 0, 327675, 3, 0, 327676, 3, 0, 327677, 3, 0, 327678, 3, 0, 327679, 3, 0, 262144, 5, 327680, 262150, 5, 393216, 262151, 5, 327680, 262161, 5, 262144, 262162, 3, 65536, 262163, 3, 0, 262164, 3, 0, 262165, 3, 0, 262166, 3, 0, 262167, 3, 0, 262168, 3, 0, 262169, 3, 0, 262170, 3, 0, 262171, 3, 0, 262172, 3, 0, 262173, 3, 0, 393204, 3, 0, 393205, 3, 0, 393206, 3, 0, 393207, 3, 0, 393208, 3, 0, 393209, 3, 0, 393210, 3, 0, 393211, 3, 0, 393212, 3, 0, 393213, 3, 0, 393214, 3, 0, 393215, 3, 0, 327680, 5, 327680, 327686, 5, 393216, 327687, 6, 458752, 327688, 5, 65536, 327689, 5, 65536, 327690, 4, 0, 327697, 9, 0, 327698, 8, 65536, 327699, 3, 0, 327700, 3, 0, 327701, 3, 0, 327702, 3, 0, 327703, 3, 0, 327704, 3, 0, 327705, 3, 0, 327706, 3, 0, 327707, 3, 0, 327708, 3, 0, 327709, 3, 0, 458740, 3, 0, 458741, 3, 0, 458742, 3, 0, 458743, 3, 0, 458744, 3, 0, 458745, 3, 0, 458746, 3, 0, 458747, 3, 0, 458748, 3, 0, 458749, 3, 0, 458750, 3, 0, 458751, 3, 0, 393216, 5, 327680, 393217, 10, 0, 393222, 9, 0, 393223, 7, 0, 393224, 7, 65536, 393225, 7, 65536, 393226, 9, 65536, 393234, 5, 393216, 393235, 3, 0, 393236, 3, 0, 393237, 3, 0, 393238, 3, 0, 393239, 3, 0, 393240, 3, 0, 393241, 3, 0, 393242, 3, 0, 393243, 3, 0, 393244, 3, 0, 393245, 3, 0, 524276, 3, 0, 524277, 3, 0, 524278, 3, 0, 524279, 3, 0, 524280, 3, 0, 524281, 3, 0, 524282, 3, 0, 524283, 3, 0, 524284, 3, 0, 524285, 3, 0, 524286, 3, 0, 524287, 3, 0, 458752, 6, 0, 458753, 5, 0, 458754, 4, 0, 458770, 5, 393216, 458771, 3, 0, 458772, 3, 0, 458773, 3, 0, 458774, 3, 0, 458775, 3, 0, 458776, 3, 0, 458777, 3, 0, 458778, 3, 0, 458779, 3, 0, 458780, 3, 0, 458781, 3, 0, 589812, 3, 0, 589813, 3, 0, 589814, 3, 0, 589815, 3, 0, 589816, 3, 0, 589817, 3, 0, 589818, 3, 0, 589819, 3, 0, 589820, 3, 0, 589821, 3, 0, 589822, 3, 0, 589823, 3, 0, 524288, 3, 0, 524289, 3, 0, 524290, 5, 327680, 524305, 4, 65536, 524306, 6, 65536, 524307, 3, 0, 524308, 3, 0, 524309, 3, 0, 524310, 3, 0, 524311, 3, 0, 524312, 3, 0, 524313, 3, 0, 524314, 3, 0, 524315, 3, 0, 524316, 3, 0, 524317, 3, 0, 655348, 3, 0, 655349, 3, 0, 655350, 3, 0, 655351, 3, 0, 655352, 3, 0, 655353, 3, 0, 655354, 3, 0, 655355, 3, 0, 655356, 3, 0, 655357, 3, 0, 655358, 3, 0, 655359, 3, 0, 589824, 3, 0, 589825, 3, 0, 589826, 6, 0, 589827, 5, 0, 589828, 5, 0, 589829, 5, 0, 589830, 5, 0, 589831, 4, 0, 589841, 5, 262144, 589842, 3, 65536, 589843, 3, 0, 589844, 3, 0, 589845, 3, 0, 589846, 3, 0, 589847, 3, 0, 589848, 3, 0, 589849, 3, 0, 589850, 3, 0, 589851, 3, 0, 589852, 3, 0, 589853, 3, 0, 720884, 3, 0, 720885, 3, 0, 720886, 3, 0, 720887, 3, 0, 720888, 3, 0, 720889, 3, 0, 720890, 3, 0, 720891, 3, 0, 720892, 3, 0, 720893, 3, 0, 720894, 3, 0, 720895, 3, 0, 655360, 3, 0, 655361, 3, 0, 655362, 3, 0, 655363, 3, 0, 655364, 3, 0, 655365, 3, 0, 655366, 3, 0, 655367, 6, 0, 655368, 5, 0, 655369, 5, 0, 655370, 5, 0, 655371, 5, 0, 655372, 5, 0, 655373, 5, 0, 655374, 5, 0, 655375, 5, 0, 655376, 5, 0, 655377, 6, 65536, 655378, 3, 65536, 655379, 3, 0, 655380, 3, 0, 655381, 3, 0, 655382, 3, 0, 655383, 3, 0, 655384, 3, 0, 655385, 3, 0, 655386, 3, 0, 655387, 3, 0, 655388, 3, 0, 655389, 3, 0, 786420, 3, 0, 786421, 3, 0, 786422, 3, 0, 786423, 3, 0, 786424, 3, 0, 786425, 3, 0, 786426, 3, 0, 786427, 3, 0, 786428, 3, 0, 786429, 3, 0, 786430, 3, 0, 786431, 3, 0, 720896, 3, 0, 720897, 3, 0, 720898, 3, 0, 720899, 3, 0, 720900, 3, 0, 720901, 3, 0, 720902, 3, 0, 720903, 3, 0, 720904, 3, 0, 720905, 3, 0, 720906, 3, 0, 720907, 3, 0, 720908, 3, 0, 720909, 3, 0, 720910, 3, 0, 720911, 3, 0, 720912, 3, 0, 720913, 3, 0, 720914, 3, 0, 720915, 3, 0, 720916, 3, 0, 720917, 3, 0, 720918, 3, 0, 720919, 3, 0, 720920, 3, 0, 720921, 3, 0, 720922, 3, 0, 720923, 3, 0, 720924, 3, 0, 720925, 3, 0, 851956, 3, 0, 851957, 3, 0, 851958, 3, 0, 851959, 3, 0, 851960, 3, 0, 851961, 3, 0, 851962, 3, 0, 851963, 3, 0, 851964, 3, 0, 851965, 3, 0, 851966, 3, 0, 851967, 3, 0, 786432, 3, 0, 786433, 3, 0, 786434, 3, 0, 786435, 3, 0, 786436, 3, 0, 786437, 3, 0, 786438, 3, 0, 786439, 3, 0, 786440, 3, 0, 786441, 3, 0, 786442, 3, 0, 786443, 3, 0, 786444, 3, 0, 786445, 3, 0, 786446, 3, 0, 786447, 3, 0, 786448, 3, 0, 786449, 3, 0, 786450, 3, 0, 786451, 3, 0, 786452, 3, 0, 786453, 3, 0, 786454, 3, 0, 786455, 3, 0, 786456, 3, 0, 786457, 3, 0, 786458, 3, 0, 786459, 3, 0, 786460, 3, 0, 786461, 3, 0, 917492, 3, 0, 917493, 3, 0, 917494, 3, 0, 917495, 3, 0, 917496, 3, 0, 917497, 3, 0, 917498, 3, 0, 917499, 3, 0, 917500, 3, 0, 917501, 3, 0, 917502, 3, 0, 917503, 3, 0, 851968, 3, 0, 851969, 3, 0, 851970, 3, 0, 851971, 3, 0, 851972, 3, 0, 851973, 3, 0, 851974, 3, 0, 851975, 3, 0, 851976, 3, 0, 851977, 3, 0, 851978, 3, 0, 851979, 3, 0, 851980, 3, 0, 851981, 3, 0, 851982, 3, 0, 851983, 3, 0, 851984, 3, 0, 851985, 3, 0, 851986, 3, 0, 851987, 3, 0, 851988, 3, 0, 851989, 3, 0, 851990, 3, 0, 851991, 3, 0, 851992, 3, 0, 851993, 3, 0, 851994, 3, 0, 851995, 3, 0, 851996, 3, 0, 851997, 3, 0, 983028, 3, 0, 983029, 3, 0, 983030, 3, 0, 983031, 3, 0, 983032, 3, 0, 983033, 3, 0, 983034, 3, 0, 983035, 3, 0, 983036, 3, 0, 983037, 3, 0, 983038, 3, 0, 983039, 3, 0, 917504, 3, 0, 917505, 3, 0, 917506, 3, 0, 917507, 3, 0, 917508, 3, 0, 917509, 3, 0, 917510, 3, 0, 917511, 3, 0, 917512, 3, 0, 917513, 3, 0, 917514, 3, 0, 917515, 3, 0, 917516, 3, 0, 917517, 3, 0, 917518, 3, 0, 917519, 3, 0, 917520, 3, 0, 917521, 3, 0, 917522, 3, 0, 917523, 3, 0, 917524, 3, 0, 917525, 3, 0, 917526, 3, 0, 917527, 3, 0, 917528, 3, 0, 917529, 3, 0, 917530, 3, 0, 917531, 3, 0, 917532, 3, 0, 917533, 3, 0, 1048564, 3, 0, 1048565, 3, 0, 1048566, 3, 0, 1048567, 3, 0, 1048568, 3, 0, 1048569, 3, 0, 1048570, 3, 0, 1048571, 3, 0, 1048572, 3, 0, 1048573, 3, 0, 1048574, 3, 0, 1048575, 3, 0, 983040, 3, 0, 983041, 3, 0, 983042, 3, 0, 983043, 3, 0, 983044, 3, 0, 983045, 3, 0, 983046, 3, 0, 983047, 3, 0, 983048, 3, 0, 983049, 3, 0, 983050, 3, 0, 983051, 3, 0, 983052, 3, 0, 983053, 3, 0, 983054, 3, 0, 983055, 3, 0, 983056, 3, 0, 983057, 3, 0, 983058, 3, 0, 983059, 3, 0, 983060, 3, 0, 983061, 3, 0, 983062, 3, 0, 983063, 3, 0, 983064, 3, 0, 983065, 3, 0, 983066, 3, 0, 983067, 3, 0, 983068, 3, 0, 983069, 3, 0, 1114100, 3, 0, 1114101, 3, 0, 1114102, 3, 0, 1114103, 3, 0, 1114104, 3, 0, 1114105, 3, 0, 1114106, 3, 0, 1114107, 3, 0, 1114108, 3, 0, 1114109, 3, 0, 1114110, 3, 0, 1114111, 3, 0, 1048576, 3, 0, 1048577, 3, 0, 1048578, 3, 0, 1048579, 3, 0, 1048580, 3, 0, 1048581, 3, 0, 1048582, 3, 0, 1048583, 3, 0, 1048584, 3, 0, 1048585, 3, 0, 1048586, 3, 0, 1048587, 3, 0, 1048588, 3, 0, 1048589, 3, 0, 1048590, 3, 0, 1048591, 3, 0, 1048592, 3, 0, 1048593, 3, 0, 1048594, 3, 0, 1048595, 3, 0, 1048596, 3, 0, 1048597, 3, 0, 1048598, 3, 0, 1048599, 3, 0, 1048600, 3, 0, 1048601, 3, 0, 1048602, 3, 0, 1048603, 3, 0, 1048604, 3, 0, 1048605, 3, 0, 1179636, 3, 0, 1179637, 3, 0, 1179638, 3, 0, 1179639, 3, 0, 1179640, 3, 0, 1179641, 3, 0, 1179642, 3, 0, 1179643, 3, 0, 1179644, 3, 0, 1179645, 3, 0, 1179646, 3, 0, 1179647, 3, 0, 1114112, 3, 0, 1114113, 3, 0, 1114114, 3, 0, 1114115, 3, 0, 1114116, 3, 0, 1114117, 3, 0, 1114118, 3, 0, 1114119, 3, 0, 1114120, 3, 0, 1114121, 3, 0, 1114122, 3, 0, 1114123, 3, 0, 1114124, 3, 0, 1114125, 3, 0, 1114126, 3, 0, 1114127, 3, 0, 1114128, 3, 0, 1114129, 3, 0, 1114130, 3, 0, 1114131, 3, 0, 1114132, 3, 0, 1114133, 3, 0, 1114134, 3, 0, 1114135, 3, 0, 1114136, 3, 0, 1114137, 3, 0, 1114138, 3, 0, 1114139, 3, 0, 1114140, 3, 0, 1114141, 3, 0, 1245172, 3, 0, 1245173, 3, 0, 1245174, 3, 0, 1245175, 3, 0, 1245176, 3, 0, 1245177, 3, 0, 1245178, 3, 0, 1245179, 3, 0, 1245180, 3, 0, 1245181, 3, 0, 1245182, 3, 0, 1245183, 3, 0, 1179648, 3, 0, 1179649, 3, 0, 1179650, 3, 0, 1179651, 3, 0, 1179652, 3, 0, 1179653, 3, 0, 1179654, 3, 0, 1179655, 3, 0, 1179656, 3, 0, 1179657, 3, 0, 1179658, 3, 0, 1179659, 3, 0, 1179660, 3, 0, 1179661, 3, 0, 1179662, 3, 0, 1179663, 3, 0, 1179664, 3, 0, 1179665, 3, 0, 1179666, 3, 0, 1179667, 3, 0, 1179668, 3, 0, 1179669, 3, 0, 1179670, 3, 0, 1179671, 3, 0, 1179672, 3, 0, 1179673, 3, 0, 1179674, 3, 0, 1179675, 3, 0, 1179676, 3, 0, 1179677, 3, 0) script = ExtResource("3") -dialogue_ui = NodePath("../DialogueUI") +dialogue_ui = NodePath("../DialogueCanvas/DialogueUI") [node name="Player" parent="Grid" instance=ExtResource("4")] z_index = 0 position = Vector2(224, 288) +script = ExtResource("14_dg62l") combat_actor = ExtResource("5") +pose_anims = ExtResource("15_qps0g") [node name="Opponent" parent="Grid" instance=ExtResource("4")] position = Vector2(800, 480) script = ExtResource("6") combat_actor = ExtResource("7") - -[node name="Slime" parent="Grid/Opponent/Pivot" index="0"] -position = Vector2(0, -4.18243) -scale = Vector2(0.912595, 1.13111) -texture = ExtResource("14") - -[node name="AnimationTree" parent="Grid/Opponent" index="2"] -parameters/playback = SubResource("AnimationNodeStateMachinePlayback_ksykr") +pose_anims = ExtResource("18_dg62l") [node name="DialoguePlayer" parent="Grid/Opponent" instance=ExtResource("8")] dialogue_file = "res://dialogue/dialogue_data/npc.json" @@ -1897,7 +1891,7 @@ position = Vector2(537, 710) scale = Vector2(0.7, 0.7) texture = ExtResource("19") -[node name="DialogueUI" parent="." instance=ExtResource("10")] -visible = false +[node name="DialogueCanvas" type="CanvasLayer" parent="."] -[editable path="Grid/Opponent"] +[node name="DialogueUI" parent="DialogueCanvas" instance=ExtResource("10")] +visible = false diff --git a/2d/role_playing_game/grid_movement/grid/grid.gd b/2d/role_playing_game/grid_movement/grid/grid.gd index 089e7145..55bb8caa 100644 --- a/2d/role_playing_game/grid_movement/grid/grid.gd +++ b/2d/role_playing_game/grid_movement/grid/grid.gd @@ -1,4 +1,5 @@ -extends TileMap +class_name Grid +extends TileMapLayer enum CellType { ACTOR, @@ -10,7 +11,7 @@ enum CellType { func _ready() -> void: for child in get_children(): - set_cell(0, local_to_map(child.position), child.type, Vector2i.ZERO) + set_cell(local_to_map(child.position), child.type, Vector2i.ZERO) func get_cell_pawn(cell: Vector2i, type: CellType = CellType.ACTOR) -> Node2D: @@ -27,12 +28,13 @@ func request_move(pawn: Pawn, direction: Vector2i) -> Vector2i: var cell_start := local_to_map(pawn.position) var cell_target := cell_start + direction - var cell_tile_id := get_cell_source_id(0, cell_target) + var cell_tile_id := get_cell_source_id(cell_target) match cell_tile_id: -1: - set_cell(0, cell_target, CellType.ACTOR, Vector2i.ZERO) - set_cell(0, cell_start, -1, Vector2i.ZERO) + set_cell(cell_target, CellType.ACTOR, Vector2i.ZERO) + set_cell(cell_start, -1, Vector2i.ZERO) return map_to_local(cell_target) + CellType.OBJECT, CellType.ACTOR: var target_pawn := get_cell_pawn(cell_target, cell_tile_id) #print("Cell %s contains %s" % [cell_target, target_pawn.name]) diff --git a/2d/role_playing_game/grid_movement/pawns/actor.gd b/2d/role_playing_game/grid_movement/pawns/actor.gd deleted file mode 100644 index a30776a7..00000000 --- a/2d/role_playing_game/grid_movement/pawns/actor.gd +++ /dev/null @@ -1,51 +0,0 @@ -extends Pawn - -var lost = false -@onready var Grid = get_parent() - - -func _ready(): - update_look_direction(Vector2.RIGHT) - - -func _process(delta): - var input_direction = get_input_direction() - if not input_direction: - return - update_look_direction(input_direction) - - var target_position = Grid.request_move(self, input_direction) - if target_position: - move_to(target_position) - else: - bump() - - -func get_input_direction(): - return Vector2( - Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left"), - Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up") - ) - - -func update_look_direction(direction): - $Pivot/Sprite2D.rotation = direction.angle() - - -func move_to(target_position): - set_process(false) - $AnimationPlayer.play("walk") - var move_direction = (position - target_position).normalized() - var tween := create_tween() - tween.set_ease(Tween.EASE_IN) - tween.tween_property($Pivot, "position", $Pivot.position + move_direction * 32, $AnimationPlayer.current_animation_length) - $Pivot/Sprite2D.position = position - target_position - position = target_position - - await $AnimationPlayer.animation_finished - - set_process(true) - - -func bump(): - $AnimationPlayer.play("bump") diff --git a/2d/role_playing_game/grid_movement/pawns/actor.gd.uid b/2d/role_playing_game/grid_movement/pawns/actor.gd.uid deleted file mode 100644 index 03a937fa..00000000 --- a/2d/role_playing_game/grid_movement/pawns/actor.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cdar60j1jhogk diff --git a/2d/role_playing_game/grid_movement/pawns/anim_opponent.tres b/2d/role_playing_game/grid_movement/pawns/anim_opponent.tres new file mode 100644 index 00000000..2cf4a91e --- /dev/null +++ b/2d/role_playing_game/grid_movement/pawns/anim_opponent.tres @@ -0,0 +1,22 @@ +[gd_resource type="SpriteFrames" load_steps=2 format=3 uid="uid://bgwcs0i1rmrn8"] + +[ext_resource type="Texture2D" uid="uid://bb6xgdlxov660" path="res://grid_movement/pawns/opponent_exploration.png" id="1_wm3cl"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_wm3cl") +}], +"loop": false, +"name": &"bump", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_wm3cl") +}], +"loop": true, +"name": &"idle", +"speed": 5.0 +}] diff --git a/2d/role_playing_game/grid_movement/pawns/anim_player.tres b/2d/role_playing_game/grid_movement/pawns/anim_player.tres new file mode 100644 index 00000000..b70e3987 --- /dev/null +++ b/2d/role_playing_game/grid_movement/pawns/anim_player.tres @@ -0,0 +1,23 @@ +[gd_resource type="SpriteFrames" load_steps=3 format=3 uid="uid://gucxux3cqds3"] + +[ext_resource type="Texture2D" uid="uid://c5mr2yqxvctld" path="res://grid_movement/pawns/player_exploration_bump.png" id="1_j46su"] +[ext_resource type="Texture2D" uid="uid://c7n37h1euodch" path="res://grid_movement/pawns/player_exploration.png" id="2_jkcju"] + +[resource] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_j46su") +}], +"loop": false, +"name": &"bump", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_jkcju") +}], +"loop": false, +"name": &"idle", +"speed": 5.0 +}] diff --git a/2d/role_playing_game/grid_movement/pawns/character.tscn b/2d/role_playing_game/grid_movement/pawns/character.tscn index 0f97611f..6e946a50 100644 --- a/2d/role_playing_game/grid_movement/pawns/character.tscn +++ b/2d/role_playing_game/grid_movement/pawns/character.tscn @@ -1,9 +1,8 @@ -[gd_scene load_steps=21 format=3 uid="uid://bdni5iw2j108j"] +[gd_scene load_steps=19 format=3 uid="uid://bdni5iw2j108j"] [ext_resource type="Script" uid="uid://b240sdxvva6wr" path="res://grid_movement/pawns/walker.gd" id="1"] [ext_resource type="Texture2D" uid="uid://ba5rklp7brg7" path="res://grid_movement/pawns/character.png" id="2"] -[ext_resource type="Texture2D" uid="uid://c7n37h1euodch" path="res://grid_movement/pawns/player_exploration.png" id="3"] -[ext_resource type="Texture2D" uid="uid://c5mr2yqxvctld" path="res://grid_movement/pawns/player_exploration_bump.png" id="4"] +[ext_resource type="SpriteFrames" uid="uid://gucxux3cqds3" path="res://grid_movement/pawns/anim_player.tres" id="4_1c7h6"] [sub_resource type="Animation" id="3"] length = 0.001 @@ -15,7 +14,7 @@ step = 0.01 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Pivot/Sprite2D:position") +tracks/0/path = NodePath("Pivot/FacingDirection:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -48,18 +47,6 @@ tracks/2/keys = { "update": 0, "values": [Vector2(1, 1), Vector2(1, 1)] } -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("Pivot/Slime:texture") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0, 0.24, 0.25), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 1, -"values": [ExtResource("4"), ExtResource("4"), ExtResource("3")] -} [sub_resource type="Animation" id="4"] resource_name = "idle" @@ -89,18 +76,6 @@ tracks/1/keys = { "update": 0, "values": [Vector2(1, 1), Vector2(1.125, 0.844), Vector2(0.906, 1.141), Vector2(1, 1)] } -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = false -tracks/2/path = NodePath("Pivot/Slime:texture") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 1.5), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [ExtResource("3"), ExtResource("3")] -} [sub_resource type="Animation" id="2"] resource_name = "walk" @@ -108,8 +83,8 @@ length = 0.25 step = 0.05 tracks/0/type = "value" tracks/0/imported = false -tracks/0/enabled = false -tracks/0/path = NodePath("Pivot/Sprite2D:self_modulate") +tracks/0/enabled = true +tracks/0/path = NodePath("Pivot/FacingDirection:self_modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -121,7 +96,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Pivot/Sprite2D:position") +tracks/1/path = NodePath("Pivot/FacingDirection:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -133,7 +108,7 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Pivot/Sprite2D:scale") +tracks/2/path = NodePath("Pivot/FacingDirection:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { @@ -166,18 +141,6 @@ tracks/4/keys = { "update": 0, "values": [Vector2(1, 1), Vector2(1.2, 0.917), Vector2(0.917, 1.135), Vector2(1, 1)] } -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = false -tracks/5/path = NodePath("Pivot/Slime:texture") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0, 0.25), -"transitions": PackedFloat32Array(1, 1), -"update": 1, -"values": [ExtResource("3"), ExtResource("3")] -} [sub_resource type="AnimationLibrary" id="AnimationLibrary_yxglf"] _data = { @@ -222,28 +185,27 @@ states/walk/position = Vector2(310, 116) transitions = ["walk", "idle", SubResource("11"), "bump", "idle", SubResource("12"), "idle", "walk", SubResource("13"), "idle", "bump", SubResource("14"), "Start", "idle", SubResource("AnimationNodeStateMachineTransition_ed7tp"), "idle", "End", SubResource("AnimationNodeStateMachineTransition_j3wgi")] graph_offset = Vector2(-609, -158) -[sub_resource type="AnimationNodeStateMachinePlayback" id="6"] - [node name="Character" type="Node2D"] z_index = 1 -position = Vector2(32, 32) script = ExtResource("1") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { -"": SubResource("AnimationLibrary_yxglf") +&"": SubResource("AnimationLibrary_yxglf") } [node name="Pivot" type="Marker2D" parent="."] -[node name="Slime" type="Sprite2D" parent="Pivot"] -position = Vector2(0, -4.37912) -scale = Vector2(0.908741, 1.13728) -texture = ExtResource("3") +[node name="Slime" type="AnimatedSprite2D" parent="Pivot"] +position = Vector2(0, -3.21718) +scale = Vector2(0.932767, 1.10085) +sprite_frames = ExtResource("4_1c7h6") +animation = &"idle" centered = false offset = Vector2(-32, -32) -[node name="Sprite2D" type="Sprite2D" parent="Pivot"] +[node name="FacingDirection" type="Sprite2D" parent="Pivot"] +editor_description = "Enable this node to see the character's facing direction." visible = false self_modulate = Color(0, 0, 0, 1) scale = Vector2(1e-05, 1e-05) @@ -254,5 +216,3 @@ offset = Vector2(-32, -32) [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource("5") anim_player = NodePath("../AnimationPlayer") -active = true -parameters/playback = SubResource("6") diff --git a/2d/role_playing_game/grid_movement/pawns/opponent.gd b/2d/role_playing_game/grid_movement/pawns/opponent.gd index fbaa9db2..1a8e6287 100644 --- a/2d/role_playing_game/grid_movement/pawns/opponent.gd +++ b/2d/role_playing_game/grid_movement/pawns/opponent.gd @@ -1,7 +1,5 @@ -extends Pawn - -@export var combat_actor: PackedScene -var lost := false +extends Walker func _ready() -> void: + super._ready() set_process(false) diff --git a/2d/role_playing_game/grid_movement/pawns/player.gd b/2d/role_playing_game/grid_movement/pawns/player.gd new file mode 100644 index 00000000..282afa05 --- /dev/null +++ b/2d/role_playing_game/grid_movement/pawns/player.gd @@ -0,0 +1,21 @@ +extends Walker + +func _process(_delta: float) -> void: + var input_direction := get_input_direction() + # We only move in integer increments. + input_direction = input_direction.round() + + if input_direction.is_zero_approx(): + return + + update_look_direction(input_direction) + + var target_position: Vector2 = grid.request_move(self, input_direction) + if target_position: + move_to(target_position) + elif active: + bump() + + +func get_input_direction() -> Vector2: + return Input.get_vector("move_left", "move_right", "move_up", "move_down") diff --git a/2d/role_playing_game/grid_movement/pawns/player.gd.uid b/2d/role_playing_game/grid_movement/pawns/player.gd.uid new file mode 100644 index 00000000..211e2e4e --- /dev/null +++ b/2d/role_playing_game/grid_movement/pawns/player.gd.uid @@ -0,0 +1 @@ +uid://jktwsmihasw3 diff --git a/2d/role_playing_game/grid_movement/pawns/walker.gd b/2d/role_playing_game/grid_movement/pawns/walker.gd index 57715de9..daa9aaa8 100644 --- a/2d/role_playing_game/grid_movement/pawns/walker.gd +++ b/2d/role_playing_game/grid_movement/pawns/walker.gd @@ -1,48 +1,33 @@ +## A pawn that can animate and walk around the grid. +class_name Walker extends Pawn @export var combat_actor: PackedScene +@export var pose_anims: SpriteFrames var lost := false var grid_size: float -@onready var parent := get_parent() +@onready var grid : Grid = get_parent() @onready var animation_playback: AnimationNodeStateMachinePlayback = $AnimationTree.get("parameters/playback") @onready var walk_animation_time: float = $AnimationPlayer.get_animation("walk").length +@onready var pose := $Pivot/Slime func _ready() -> void: + pose.sprite_frames = pose_anims update_look_direction(Vector2.RIGHT) - grid_size = parent.tile_set.tile_size.x - - -func _process(_delta: float) -> void: - var input_direction := get_input_direction() - if input_direction.is_zero_approx(): - return - - update_look_direction(input_direction) - - var target_position: Vector2 = parent.request_move(self, input_direction) - if target_position: - move_to(target_position) - elif active: - bump() - - -func get_input_direction() -> Vector2: - return Vector2( - Input.get_action_strength("move_right") - Input.get_action_strength("move_left"), - Input.get_action_strength("move_down") - Input.get_action_strength("move_up") - ) + grid_size = grid.tile_set.tile_size.x func update_look_direction(direction: Vector2) -> void: - $Pivot/Sprite2D.rotation = direction.angle() + $Pivot/FacingDirection.rotation = direction.angle() func move_to(target_position: Vector2) -> void: set_process(false) var move_direction := (target_position - position).normalized() + pose.play("idle") animation_playback.start("walk") var tween := create_tween() @@ -54,13 +39,16 @@ func move_to(target_position: Vector2) -> void: $Pivot.position = Vector2.ZERO position = target_position animation_playback.start("idle") + pose.play("idle") set_process(true) func bump() -> void: set_process(false) + pose.play("bump") animation_playback.start("bump") await $AnimationTree.animation_finished animation_playback.start("idle") + pose.play("idle") set_process(true) diff --git a/2d/role_playing_game/project.godot b/2d/role_playing_game/project.godot index 71e7b6ef..f6e9759c 100644 --- a/2d/role_playing_game/project.godot +++ b/2d/role_playing_game/project.godot @@ -36,6 +36,14 @@ import/blender/enabled=false [input] +ui_accept={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":true,"script":null) +] +} move_up={ "deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)