diff --git a/src/actor/NPC.tscn b/src/actor/NPC.tscn deleted file mode 100644 index 0f3bc14..0000000 --- a/src/actor/NPC.tscn +++ /dev/null @@ -1,23 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=1] -[ext_resource path="res://src/actor/ChatStart.gd" type="Script" id=2] -[ext_resource path="res://src/actor/door/Arrow.tscn" type="PackedScene" id=4] - -[node name="NPC" instance=ExtResource( 1 )] -idle_anim = "idle2" -is_npc = true - -[node name="Arrow" parent="." index="5" instance=ExtResource( 4 )] -is_turn = true -col_size = Vector2( 150, 50 ) -col_pos = Vector2( 0, -33 ) -image_pos = Vector2( 0, -110 ) - -[node name="Chat" type="Node2D" parent="Arrow" index="2"] -modulate = Color( 1, 1, 1, 0 ) -position = Vector2( 0, -110 ) -script = ExtResource( 2 ) -arrow_path = NodePath("..") - -[connection signal="turn" from="." to="Arrow" method="set_dir"] diff --git a/src/actor/Player.gd b/src/actor/Player.gd index 5b91266..2e40674 100644 --- a/src/actor/Player.gd +++ b/src/actor/Player.gd @@ -133,6 +133,7 @@ export (String, MULTILINE) var queue_write := "" setget set_queue_write export var chat_offset := Vector2(0, -110) setget set_chat_offset onready var arrow := get_node_or_null("Arrow") onready var chat := get_node_or_null("Arrow/Chat") +export var ready_z_index := 50 var snowball_scene : PackedScene = preload("res://src/actor/Snowball.tscn") var snowballs = [] @@ -154,7 +155,9 @@ func _ready(): set_hat() set_chat_offset() if Engine.editor_hint: return + solve_jump() + if arrow: connect("turn", arrow, "set_dir") # create idle animiations facing left var l = anim.get_animation("idle").duplicate() @@ -169,18 +172,29 @@ func _ready(): # anim.seek(2.0, true) if is_npc: - z_index -= 1 - spr_hands_parent.z_index = 0 + z_index = min(ready_z_index, 45) spr_easy.clock = spr_easy.time set_lines() set_queue_write() - if hairstyle_back == 6 or hairstyle_front == 7: - self.chat_offset.y = -130 + var coy = chat_offset.y + if hat == 1: + coy = min(coy, -160) + elif hairstyle_back in [6, 7] or hairstyle_front in [7]: + coy = min(coy, -130) elif hairstyle_front == 10: - self.chat_offset.y = -115 + coy = min(coy, -115) + + if idle_anim == "bench": + coy -= 17 + elif idle_anim == "tree_behind": + coy = min(coy, -160) + + self.chat_offset.y = coy if idle_anim == "handstand": emit_signal("scale_y", -1) + else: + if arrow: arrow.is_locked = true func wipe_start(arg): if !is_npc: diff --git a/src/actor/Player.tscn b/src/actor/Player.tscn index 2fe573f..0598bde 100644 --- a/src/actor/Player.tscn +++ b/src/actor/Player.tscn @@ -1,10 +1,12 @@ -[gd_scene load_steps=19 format=2] +[gd_scene load_steps=23 format=2] [ext_resource path="res://src/class/shape/Rectangle.gd" type="Script" id=1] [ext_resource path="res://src/actor/Player.gd" type="Script" id=2] [ext_resource path="res://src/class/shape/Circle.gd" type="Script" id=3] [ext_resource path="res://src/detail/Visible.gd" type="Script" id=4] [ext_resource path="res://media/audio/sfx/player_land.wav" type="AudioStream" id=5] +[ext_resource path="res://src/actor/door/Arrow.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/actor/ChatStart.gd" type="Script" id=7] [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 17, 17 ) @@ -97,6 +99,80 @@ tracks/7/keys = { "values": [ true ] } +[sub_resource type="Animation" id=20] +resource_name = "bench" +loop = true +tracks/0/type = "bezier" +tracks/0/path = NodePath("Sprites/Root/Body:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( -6, -0.25, 0, 0.25, 0, 6, -0.25, 0, 0.25, 0, -6, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("Sprites/Root/Body:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( -17, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("Sprites/Root/Body:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( -10, -0.25, 0, 0.25, 0, 10, -0.25, 0, 0.25, 0, -10, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1.01 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("Sprites/Hands/Left:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( -30, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("Sprites/Hands/Left:position:y") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( -10, -0.25, 0, 0.25, 0, -13, -0.25, 0, 0.25, 0, -10, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0.00999999, 0.5, 1 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("Sprites/Hands/Right:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 30, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("Sprites/Hands/Right:position:y") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( -13, -0.25, 0, 0.25, 0, -10, -0.25, 0, 0.25, 0, -13, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1 ) +} + [sub_resource type="Animation" id=17] resource_name = "handstand" loop = true @@ -649,6 +725,80 @@ tracks/7/keys = { } ] } +[sub_resource type="Animation" id=21] +resource_name = "tree_behind" +loop = true +tracks/0/type = "bezier" +tracks/0/path = NodePath("Sprites/Root/Body:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 6, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("Sprites/Root/Body:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( -60, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("Sprites/Root/Body:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( 45, -0.25, 0, 0.25, 0, 35, -0.25, 0, 0.25, 0, 45, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0.0100001, 0.5, 1.02 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("Sprites/Hands/Left:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( -20, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("Sprites/Hands/Left:position:y") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( -50, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("Sprites/Hands/Right:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 20, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("Sprites/Hands/Right:position:y") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( -50, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} + [sub_resource type="Animation" id=8] resource_name = "walk" loop = true @@ -791,6 +941,7 @@ shape = SubResource( 3 ) autoplay = "RESET" playback_default_blend_time = 0.2 anims/RESET = SubResource( 6 ) +anims/bench = SubResource( 20 ) anims/handstand = SubResource( 17 ) anims/idle = SubResource( 5 ) anims/idle2 = SubResource( 15 ) @@ -799,6 +950,7 @@ anims/jump = SubResource( 7 ) anims/ponder = SubResource( 16 ) anims/release = SubResource( 9 ) anims/snowball = SubResource( 19 ) +anims/tree_behind = SubResource( 21 ) anims/walk = SubResource( 8 ) next/jump = "jump" @@ -809,6 +961,18 @@ rect = Rect2( -100, -100, 200, 200 ) script = ExtResource( 4 ) node_path = NodePath("../Sprites") +[node name="Arrow" parent="." instance=ExtResource( 6 )] +is_turn = true +col_size = Vector2( 150, 50 ) +col_pos = Vector2( 0, -33 ) +image_pos = Vector2( 0, -110 ) + +[node name="Chat" type="Node2D" parent="Arrow"] +modulate = Color( 1, 1, 1, 0 ) +position = Vector2( 0, -110 ) +script = ExtResource( 7 ) +arrow_path = NodePath("..") + [node name="Sprites" type="Node2D" parent="."] [node name="Root" type="Node2D" parent="Sprites"] diff --git a/src/actor/door/Arrow.gd b/src/actor/door/Arrow.gd index ab1340b..9f02713 100644 --- a/src/actor/door/Arrow.gd +++ b/src/actor/door/Arrow.gd @@ -17,7 +17,7 @@ onready var col_shape := $Area2D/CollisionShape2D var player = null var body = null var is_active := false -var is_locked := false +export var is_locked := false var arrow_easy := EaseMover.new(0.3) var open_easy := EaseMover.new() diff --git a/src/map/worlds/0/0_hub.tscn b/src/map/worlds/0/0_hub.tscn index 167f074..a44fef6 100644 --- a/src/map/worlds/0/0_hub.tscn +++ b/src/map/worlds/0/0_hub.tscn @@ -18,7 +18,7 @@ [ext_resource path="res://src/detail/Fence.tscn" type="PackedScene" id=16] [ext_resource path="res://src/detail/RockSquare.tscn" type="PackedScene" id=17] [ext_resource path="res://src/detail/RockCircle.tscn" type="PackedScene" id=18] -[ext_resource path="res://src/actor/NPC.tscn" type="PackedScene" id=19] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=19] [node name="Map" type="Node2D"] @@ -72,6 +72,10 @@ gem_count = 15 [node name="NPC" parent="Actors" instance=ExtResource( 19 )] position = Vector2( 3425, 2250 ) +__meta__ = { +"_editor_description_": "" +} +idle_anim = "idle2" dye = { "eye": 18, "fit": 15, @@ -80,6 +84,42 @@ dye = { } hairstyle_back = 0 hairstyle_front = 7 +is_npc = true +lines = [ "Where am I?", "What happened last night?...", "I'm looking for my keys..", "do you have any snacks?" ] + +[node name="NPC2" parent="Actors" instance=ExtResource( 19 )] +position = Vector2( 3450, 1765 ) +__meta__ = { +"_editor_description_": "" +} +dir = 3 +idle_anim = "bench" +dye = { +"eye": 18, +"fit": 15, +"hair": 12, +"skin": 5 +} +hairstyle_back = 2 +hairstyle_front = 7 +is_npc = true + +[node name="NPC3" parent="Actors" instance=ExtResource( 19 )] +position = Vector2( 2700, 1750 ) +__meta__ = { +"_editor_description_": "" +} +idle_anim = "snowball" +dye = { +"eye": 3, +"fit": 10, +"hair": 13, +"skin": 0 +} +hairstyle_back = 0 +hairstyle_front = 8 +hat = 3 +is_npc = true lines = [ "Where am I?", "What happened last night?...", "I'm looking for my keys..", "do you have any snacks?" ] [node name="Details" type="Node2D" parent="."] @@ -164,7 +204,8 @@ position = Vector2( 2850, 2150 ) rotation = 1.57079 [node name="Flower" parent="Details/Snow" instance=ExtResource( 12 )] -position = Vector2( 2700, 1800 ) +position = Vector2( 2610, 1810 ) +rotation = -0.785397 palette = 4 [node name="Flower3" parent="Details/Snow" instance=ExtResource( 12 )] @@ -172,7 +213,7 @@ position = Vector2( 2700, 2300 ) rotation = 3.14159 [node name="Flower2" parent="Details/Snow" instance=ExtResource( 12 )] -position = Vector2( 2795, 1805 ) +position = Vector2( 2790, 1810 ) rotation = 0.785397 palette = 2 diff --git a/src/map/worlds/1/0_hub.tscn b/src/map/worlds/1/0_hub.tscn index 19ceccf..840227e 100644 --- a/src/map/worlds/1/0_hub.tscn +++ b/src/map/worlds/1/0_hub.tscn @@ -4,7 +4,6 @@ [ext_resource path="res://src/stage/SolidTileMap.tscn" type="PackedScene" id=2] [ext_resource path="res://src/detail/Tree.tscn" type="PackedScene" id=3] [ext_resource path="res://src/detail/FlowerPetals.tscn" type="PackedScene" id=4] -[ext_resource path="res://src/actor/NPC.tscn" type="PackedScene" id=5] [ext_resource path="res://src/detail/Bench.tscn" type="PackedScene" id=6] [ext_resource path="res://src/actor/door/DoorLittle.tscn" type="PackedScene" id=7] [ext_resource path="res://src/detail/Flower.tscn" type="PackedScene" id=8] @@ -15,6 +14,7 @@ [ext_resource path="res://src/detail/RockCircle.tscn" type="PackedScene" id=13] [ext_resource path="res://src/detail/Candle.tscn" type="PackedScene" id=14] [ext_resource path="res://src/detail/Lamppost.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=16] [node name="Map" type="Node2D"] @@ -75,33 +75,28 @@ rotation = 1.5708 dir = 1 scene_path = "res://src/map/worlds/1/7.tscn" -[node name="NPC" parent="Actors" instance=ExtResource( 5 )] +[node name="NPC" parent="Actors" instance=ExtResource( 16 )] position = Vector2( 350, 350 ) +__meta__ = { +"_editor_description_": "" +} +idle_anim = "idle2" dye = { "eye": 15, "fit": 14, "hair": 11, "skin": 5 } +is_npc = true lines = [ "Lovely weather!", "I do adore the flowers", "Hello (=", "Are you a gem collector?", "I saw something shiny through that door..", "I flipped over this rock and found a gem! 0=" ] -[node name="NPC5" parent="Actors" instance=ExtResource( 5 )] -position = Vector2( -550, 1150 ) -dir = 3 -idle_anim = "ponder" -dye = { -"eye": 18, -"fit": 13, -"hair": 11, -"skin": 8 -} -hairstyle_back = 0 -hairstyle_front = 2 -lines = [ "Be careful!", "These things are pretty pointy..", "I come here to admire the view", "I like the seclusion" ] - -[node name="NPC2" parent="Actors" instance=ExtResource( 5 )] +[node name="NPC2" parent="Actors" instance=ExtResource( 16 )] position = Vector2( 1350, 1360 ) +__meta__ = { +"_editor_description_": "" +} dir = 3 +idle_anim = "idle2" dye = { "eye": 17, "fit": 18, @@ -110,11 +105,15 @@ dye = { } hairstyle_back = 2 hairstyle_front = 7 +is_npc = true lines = [ "I've been through that big door!", "I lost a few gems, now I'm locked out..", "I tried knocking.. no answer 0:", "Finding a white flower is good luck!" ] queue_write = "0" -[node name="NPC3" parent="Actors" instance=ExtResource( 5 )] +[node name="NPC3" parent="Actors" instance=ExtResource( 16 )] position = Vector2( 1500, 450 ) +__meta__ = { +"_editor_description_": "" +} dir = 2 idle_anim = "handstand" dye = { @@ -125,8 +124,27 @@ dye = { } hairstyle_back = 0 hairstyle_front = 8 +is_npc = true lines = [ "Feet are overrated", "I'm a hands on learner", "Look at life upside down", "I'm going for the record!", "Change your perspective!", "Head rush!", "*phew* let me catch my breath!", "hello" ] +[node name="NPC5" parent="Actors" instance=ExtResource( 16 )] +position = Vector2( -550, 1150 ) +__meta__ = { +"_editor_description_": "" +} +dir = 3 +idle_anim = "ponder" +dye = { +"eye": 18, +"fit": 13, +"hair": 11, +"skin": 8 +} +hairstyle_back = 0 +hairstyle_front = 2 +is_npc = true +lines = [ "Be careful!", "These things are pretty pointy..", "I come here to admire the view", "I like the seclusion" ] + [node name="Details" type="Node2D" parent="."] [node name="Rocks" type="Node2D" parent="Details"] diff --git a/src/map/worlds/2/0_hub.tscn b/src/map/worlds/2/0_hub.tscn index a30d3b1..5f88edc 100644 --- a/src/map/worlds/2/0_hub.tscn +++ b/src/map/worlds/2/0_hub.tscn @@ -4,6 +4,7 @@ [ext_resource path="res://src/stage/SolidTileMap.tscn" type="PackedScene" id=2] [ext_resource path="res://src/detail/Rocks.tscn" type="PackedScene" id=3] [ext_resource path="res://src/detail/Flower.tscn" type="PackedScene" id=4] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=5] [ext_resource path="res://src/detail/Tree.tscn" type="PackedScene" id=6] [ext_resource path="res://src/detail/Candle.tscn" type="PackedScene" id=7] [ext_resource path="res://src/detail/Bench.tscn" type="PackedScene" id=8] @@ -14,7 +15,6 @@ [ext_resource path="res://src/detail/TreeTop.tscn" type="PackedScene" id=13] [ext_resource path="res://src/actor/door/DoorLittle.tscn" type="PackedScene" id=14] [ext_resource path="res://src/detail/RockSquare.tscn" type="PackedScene" id=15] -[ext_resource path="res://src/actor/NPC.tscn" type="PackedScene" id=17] [node name="Map" type="Node2D"] __meta__ = { @@ -68,10 +68,12 @@ scene_path = "res://src/map/worlds/2/4.tscn" position = Vector2( -700, 2650 ) scene_path = "res://src/map/worlds/2/5.tscn" -[node name="NPC" parent="Actors" instance=ExtResource( 17 )] +[node name="NPC" parent="Actors" instance=ExtResource( 5 )] position = Vector2( -1950, 2025 ) +__meta__ = { +"_editor_description_": "" +} dir = 3 -idle_anim = "idle" dye = { "eye": 18, "fit": 5, @@ -81,13 +83,16 @@ dye = { hairstyle_back = 0 hairstyle_front = 0 hat = 1 +is_npc = true lines = [ "It's always handy having a light", "Feel the delight of candle light!", "I'm not afraid of the dark! I swear..", "Candle candle candle candle..", "I've been trying to open that big door!", "They call me Candle Randall", "I get a lil spooked without my candy", "Need a light?" ] queue_write = "5" chat_offset = Vector2( 0, -160 ) -[node name="NPC2" parent="Actors" instance=ExtResource( 17 )] +[node name="NPC2" parent="Actors" instance=ExtResource( 5 )] position = Vector2( -1600, 1050 ) -idle_anim = "idle" +__meta__ = { +"_editor_description_": "" +} dye = { "eye": 0, "fit": 18, @@ -95,10 +100,14 @@ dye = { "skin": 5 } hairstyle_front = 3 +is_npc = true lines = [ "Have you tried turning it off and on again?", "Breathe in, breathe out", "It's so cozy between these trees", "I'ts nice to catch a break and relax", "I feel calm.", "I found a big worm here yesterday!", "Let the trees breathe into you", "Nature takes care of you <3" ] -[node name="NPC3" parent="Actors" instance=ExtResource( 17 )] +[node name="NPC3" parent="Actors" instance=ExtResource( 5 )] position = Vector2( -575, 2450 ) +__meta__ = { +"_editor_description_": "" +} dir = 2 idle_anim = "ponder" dye = { @@ -109,6 +118,7 @@ dye = { } hairstyle_back = 3 hairstyle_front = 9 +is_npc = true lines = [ "I feel a little dizzy..", "I'm taking a break to enjoy the night sky!", "These boxes have a mind of their own!", "I've been moving boxes all day!", "I've seen a few gems around here..", "I wonder whats beyond that big door" ] [node name="Details" type="Node2D" parent="."] diff --git a/src/map/worlds/2A/0_hub.tscn b/src/map/worlds/2A/0_hub.tscn index 65822cd..dd163dd 100644 --- a/src/map/worlds/2A/0_hub.tscn +++ b/src/map/worlds/2A/0_hub.tscn @@ -7,7 +7,7 @@ [ext_resource path="res://src/stage/SpikeMap.tscn" type="PackedScene" id=5] [ext_resource path="res://src/actor/door/DoorLittle.tscn" type="PackedScene" id=6] [ext_resource path="res://src/detail/RockCircle.tscn" type="PackedScene" id=7] -[ext_resource path="res://src/actor/NPC.tscn" type="PackedScene" id=8] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=8] [ext_resource path="res://src/detail/PineTree.tscn" type="PackedScene" id=10] [ext_resource path="res://src/detail/Snowman.tscn" type="PackedScene" id=11] [ext_resource path="res://src/detail/Flower.tscn" type="PackedScene" id=12] @@ -72,9 +72,13 @@ rotation = 1.5708 dir = 1 scene_path = "res://src/map/worlds/2A/7.tscn" -[node name="NPC" parent="Actors" instance=ExtResource( 8 )] +[node name="Player" parent="Actors" instance=ExtResource( 8 )] position = Vector2( 200, 1350 ) +__meta__ = { +"_editor_description_": "" +} dir = 2 +idle_anim = "idle2" dye = { "eye": 3, "fit": 10, @@ -84,38 +88,33 @@ dye = { hairstyle_back = 0 hairstyle_front = 5 hat = 3 +is_npc = true lines = [ "Aren't they marvelous?", "I rolled em up myself!", "Yeah, I'm pretty sick at rollin snow (;", "Balancing the last snowball is tricky!", "Now i feel tiny next to Snowbo", "I named them Snowbo!" ] -[node name="NPC4" parent="Actors" instance=ExtResource( 8 )] -position = Vector2( 350, 750 ) -dir = 1 -idle_anim = "ponder" -dye = { -"eye": 0, -"fit": 15, -"hair": 6, -"skin": 5 +[node name="Player2" parent="Actors" instance=ExtResource( 8 )] +position = Vector2( 1150, 150 ) +__meta__ = { +"_editor_description_": "" } -hairstyle_back = 3 -hairstyle_front = 8 -lines = [ "Cozy up and feel the candle warmth!", "I'm a lover not a snowball fighter..", "Hmm this puzzle has me stumped..", "Love that pine tree scent! Mmm..", "These are my flower friends (=", "Take a moment to relax and reflect..", "Do I really need that gem?" ] - -[node name="NPC5" parent="Actors" instance=ExtResource( 8 )] -position = Vector2( -350, 400 ) -dir = 3 +dir = 2 idle_anim = "snowball" dye = { -"eye": 15, -"fit": 18, -"hair": 11, -"skin": 6 +"eye": 3, +"fit": 11, +"hair": 15, +"skin": 0 } -hairstyle_back = 0 -hairstyle_front = 3 -lines = [ "*brrr* I forgot my coat!", "Find any pine cones?", "Wiggle the trees with me!", "We're playing hide and seek!", "Have you found my friend?", "I saw a gem through that door..", "My pappy told me to save my gems!" ] +hairstyle_front = 6 +hat = 3 +is_npc = true +lines = [ "Wanna have a snowball fight? (:", "I'm gonna crush you!", "The snow is light and fluffy!", "It won't hurt thaat bad ;P", "I haven't seen Robbi since my astonishing victory (;", "Watch your back..", "Snowball Snowball Snooowbaaall", "Ooo yeah right in the face!" ] +queue_write = "0" -[node name="NPC3" parent="Actors" instance=ExtResource( 8 )] +[node name="Player3" parent="Actors" instance=ExtResource( 8 )] position = Vector2( 650, 700 ) +__meta__ = { +"_editor_description_": "" +} dir = 1 idle_anim = "invisible" dye = { @@ -127,24 +126,47 @@ dye = { hairstyle_back = 0 hairstyle_front = 5 hat = 3 +is_npc = true lines = [ "You found me! 0:", "I've been hiding in here all day!", "Tell my mom I'm fine!", "Psst.. can you bring me a soda?", "My friend rolled me up in here..", "Snow surrounds me in every direction..", "That's not yellow snow!.. I'ts something else", "*oof* Can you poke another air hole?", "Sure beats chores", "You gotta try this!", "I'm chillin!", "It's me, Robbi!", "Snowballs can't hurt me now!" ] queue_write = "0" chat_offset = Vector2( 0, -220 ) +ready_z_index = -50 -[node name="NPC2" parent="Actors" instance=ExtResource( 8 )] -position = Vector2( 1150, 150 ) -dir = 2 +[node name="Player4" parent="Actors" instance=ExtResource( 8 )] +position = Vector2( 350, 750 ) +__meta__ = { +"_editor_description_": "" +} +dir = 1 +idle_anim = "ponder" +dye = { +"eye": 0, +"fit": 15, +"hair": 6, +"skin": 5 +} +hairstyle_back = 3 +hairstyle_front = 8 +is_npc = true +lines = [ "Cozy up and feel the candle warmth!", "I'm a lover not a snowball fighter..", "Hmm this puzzle has me stumped..", "Love that pine tree scent! Mmm..", "These are my flower friends (=", "Take a moment to relax and reflect..", "Do I really need that gem?" ] + +[node name="Player5" parent="Actors" instance=ExtResource( 8 )] +position = Vector2( -350, 400 ) +__meta__ = { +"_editor_description_": "" +} +dir = 3 idle_anim = "snowball" dye = { -"eye": 3, -"fit": 11, -"hair": 15, -"skin": 0 +"eye": 15, +"fit": 18, +"hair": 11, +"skin": 6 } -hairstyle_front = 6 -hat = 3 -lines = [ "Wanna have a snowball fight? (:", "I'm gonna crush you!", "The snow is light and fluffy!", "It won't hurt thaat bad ;P", "I haven't seen Robbi since my astonishing victory (;", "Watch your back..", "Snowball Snowball Snooowbaaall", "Ooo yeah right in the face!" ] -queue_write = "0" +hairstyle_back = 0 +hairstyle_front = 3 +is_npc = true +lines = [ "*brrr* I forgot my coat!", "Find any pine cones?", "Wiggle the trees with me!", "We're playing hide and seek!", "Have you found my friend?", "I saw a gem through that door..", "My pappy told me to save my gems!" ] [node name="Details" type="Node2D" parent="."] diff --git a/src/map/worlds/2B/0_hub.tscn b/src/map/worlds/2B/0_hub.tscn index 884b6f2..2ee5dff 100644 --- a/src/map/worlds/2B/0_hub.tscn +++ b/src/map/worlds/2B/0_hub.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://src/detail/Fence.tscn" type="PackedScene" id=1] [ext_resource path="res://src/detail/Rocks.tscn" type="PackedScene" id=2] @@ -15,6 +15,7 @@ [ext_resource path="res://src/detail/RockCircle.tscn" type="PackedScene" id=13] [ext_resource path="res://src/detail/Candle.tscn" type="PackedScene" id=14] [ext_resource path="res://src/detail/Lamppost.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=17] [node name="Map" type="Node2D"] __meta__ = { @@ -66,6 +67,75 @@ rotation = 4.71239 dir = 3 scene_path = "res://src/map/worlds/2B/6.tscn" +[node name="NPC" parent="Actors" instance=ExtResource( 17 )] +position = Vector2( 906, 350 ) +__meta__ = { +"_editor_description_": "" +} +idle_anim = "tree_behind" +dye = { +"eye": 0, +"fit": 3, +"hair": 14, +"skin": 4 +} +hairstyle_back = 1 +hairstyle_front = 4 +is_npc = true +lines = [ "You didn't see me here...", "This is my tree!", "Climb your own!", "I'm a fly on the wall *bzz bzz*", "I'm on a secret mission (;", "I've said too much...", "Quit shaking it!" ] +ready_z_index = -31 + +[node name="NPC2" parent="Actors" instance=ExtResource( 17 )] +position = Vector2( 1150, 1210 ) +__meta__ = { +"_editor_description_": "" +} +dir = 1 +idle_anim = "bench" +dye = { +"eye": 0, +"fit": 14, +"hair": 12, +"skin": 16 +} +hairstyle_back = 0 +hairstyle_front = 7 +is_npc = true + +[node name="NPC3" parent="Actors" instance=ExtResource( 17 )] +position = Vector2( -350, 450 ) +__meta__ = { +"_editor_description_": "" +} +dir = 3 +idle_anim = "idle2" +dye = { +"eye": 14, +"fit": 10, +"hair": 18, +"skin": 6 +} +hairstyle_back = 3 +hairstyle_front = 6 +is_npc = true + +[node name="NPC4" parent="Actors" instance=ExtResource( 17 )] +position = Vector2( 200, 950 ) +__meta__ = { +"_editor_description_": "" +} +dir = 2 +idle_anim = "ponder" +dye = { +"eye": 15, +"fit": 13, +"hair": 0, +"skin": 8 +} +hairstyle_back = 3 +hairstyle_front = 2 +is_npc = true + [node name="Details" type="Node2D" parent="."] [node name="Rocks" type="Node2D" parent="Details"] diff --git a/src/map/worlds/3/0_hub.tscn b/src/map/worlds/3/0_hub.tscn index 9c9d56a..1115e13 100644 --- a/src/map/worlds/3/0_hub.tscn +++ b/src/map/worlds/3/0_hub.tscn @@ -8,7 +8,7 @@ [ext_resource path="res://src/actor/door/DoorBig.tscn" type="PackedScene" id=6] [ext_resource path="res://src/detail/Saguaro.tscn" type="PackedScene" id=7] [ext_resource path="res://src/detail/RockCircle.tscn" type="PackedScene" id=8] -[ext_resource path="res://src/actor/NPC.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=9] [ext_resource path="res://src/detail/Candle.tscn" type="PackedScene" id=10] [ext_resource path="res://src/detail/Lamppost.tscn" type="PackedScene" id=11] [ext_resource path="res://src/stage/SolidTileMap.tscn" type="PackedScene" id=12] @@ -78,6 +78,10 @@ scene_path = "res://src/map/worlds/3/7.tscn" [node name="NPC" parent="Actors" instance=ExtResource( 9 )] position = Vector2( 1350, 450 ) +__meta__ = { +"_editor_description_": "" +} +idle_anim = "idle2" dye = { "eye": 14, "fit": 13, @@ -86,11 +90,15 @@ dye = { } hairstyle_back = 0 hairstyle_front = 10 +is_npc = true lines = [ "You found my shortcut!", "I'm watching the door for new friends (:", "I can see it all from up here!", "Which way is up?..", "Spikes! Be careful..", "Have you seen the snow? I hear it's lovely (:" ] queue_write = "0" [node name="NPC2" parent="Actors" instance=ExtResource( 9 )] position = Vector2( 1300, 2250 ) +__meta__ = { +"_editor_description_": "" +} idle_anim = "ponder" dye = { "eye": 0, @@ -100,12 +108,15 @@ dye = { } hairstyle_back = 3 hairstyle_front = 10 +is_npc = true lines = [ "Me and my twin!", "This flower matches my hair (=", "What brings you out to the desert?", "Are you a gem collector too?", "Free hugs! Hope you like pricklies (;", "I love twirling the petals around!" ] [node name="NPC3" parent="Actors" instance=ExtResource( 9 )] position = Vector2( 450, 1250 ) +__meta__ = { +"_editor_description_": "" +} dir = 3 -idle_anim = "idle" dye = { "eye": 13, "fit": 10, @@ -114,12 +125,15 @@ dye = { } hairstyle_back = 0 hairstyle_front = 10 +is_npc = true lines = [ "Welcome to our home!", "Shake my hand! Don't mind the sting", "Watch your head...", "These blocks make my head spin!", "Ooo that cool desert breeze...", "Come to check out the rocks?", "Saguaro-k!" ] queue_write = "0" [node name="NPC4" parent="Actors" instance=ExtResource( 9 )] position = Vector2( 1600, 1650 ) -idle_anim = "idle" +__meta__ = { +"_editor_description_": "" +} dye = { "eye": 10, "fit": 3, @@ -128,12 +142,15 @@ dye = { } hairstyle_back = 6 hairstyle_front = 8 +is_npc = true lines = [ "24... 25... 26...", "I've been saving up my gems to open this door!", "I almost have enough...", "Have you seen these rotating blocks? Marvelous..", "Now, how can I reach that gem?...", "I found a smooth rock (:", "Turn this block, push that block over top... hmm", "Bask in the sunlight!" ] [node name="NPC5" parent="Actors" instance=ExtResource( 9 )] position = Vector2( 2250, 2450 ) +__meta__ = { +"_editor_description_": "" +} dir = 1 -idle_anim = "idle" dye = { "eye": 15, "fit": 18, @@ -142,6 +159,7 @@ dye = { } hairstyle_back = 3 hairstyle_front = 4 +is_npc = true lines = [ "Do you have any water?", "It gets a little toasty out here!", "I'm thirsty...", "Have you ever drank from a cactus?", "These spinny blocks are bending my brain 0=", "Look at all the cuute cacti!", "I adore that pink blossom" ] [node name="Details" type="Node2D" parent="."] diff --git a/src/map/worlds/3A/0_hub.tscn b/src/map/worlds/3A/0_hub.tscn index b268517..88e984b 100644 --- a/src/map/worlds/3A/0_hub.tscn +++ b/src/map/worlds/3A/0_hub.tscn @@ -14,7 +14,7 @@ [ext_resource path="res://src/detail/FlowerPetals.tscn" type="PackedScene" id=12] [ext_resource path="res://src/detail/RockSquare.tscn" type="PackedScene" id=13] [ext_resource path="res://src/detail/RockCircle.tscn" type="PackedScene" id=14] -[ext_resource path="res://src/actor/NPC.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/actor/Player.tscn" type="PackedScene" id=15] [node name="Map" type="Node2D"] @@ -65,7 +65,11 @@ scene_path = "res://src/map/worlds/3A/6.tscn" [node name="NPC" parent="Actors" instance=ExtResource( 15 )] position = Vector2( 1650, 475 ) +__meta__ = { +"_editor_description_": "" +} dir = 3 +idle_anim = "idle2" dye = { "eye": 2, "fit": 2, @@ -74,11 +78,16 @@ dye = { } hairstyle_back = 3 hairstyle_front = 4 +is_npc = true lines = [ "You look vibrant!", "I lost my colors..", "Have you seen a mirror around here?", "I came here searching for gems (:", "Twist that block.. slide it over there.. hmm", "Have any dye?", "I love these colorful flowers (=" ] [node name="NPC2" parent="Actors" instance=ExtResource( 15 )] position = Vector2( 600, 1350 ) +__meta__ = { +"_editor_description_": "" +} dir = 2 +idle_anim = "idle2" dye = { "eye": 18, "fit": 8, @@ -88,11 +97,14 @@ dye = { hairstyle_back = 2 hairstyle_front = 9 hat = 1 +is_npc = true lines = [ "Lighten up!", "Too dark to handle? Bring a candle! (;", "I'm not afraid of the dark anymore!", "I'm Candle Candice! Sorry it doesn't rhyme...", "It's pine-scented! Have a sniff ^.^", "Have you seen Randall? Tell them hiii", "I'll trade you my candle for 50 gems... SIKE!", "Let the flames guide you... (:" ] -chat_offset = Vector2( 0, -160 ) [node name="NPC3" parent="Actors" instance=ExtResource( 15 )] position = Vector2( 1950, 865 ) +__meta__ = { +"_editor_description_": "" +} dir = 1 idle_anim = "handstand" dye = { @@ -102,11 +114,15 @@ dye = { "skin": 11 } hairstyle_back = 3 +is_npc = true lines = [ "I'm training for the handstand olympics (:", "My cousin has been training too..", "I'm staying upside down the longest!!", "Last year I sneezed at the last second..", "This year I'm taking home the gold ;P", "Hold it... hold it... I WILL WIN! (=" ] queue_write = "0" [node name="NPC4" parent="Actors" instance=ExtResource( 15 )] position = Vector2( 2025, 1550 ) +__meta__ = { +"_editor_description_": "" +} dir = 2 idle_anim = "ponder" dye = { @@ -117,6 +133,7 @@ dye = { } hairstyle_back = 6 hairstyle_front = 10 +is_npc = true lines = [ "These puzzles are twisting me up!", "I can see it all from here (=", "Gaze off with me!", "What does that cloud look like to you?", "Breathe in... Breath out.. *phew* (:", "That one looks like a turtle!! 0=", "I want to float around inside a cloud (=", "If I dive off will the clouds catch me?" ] [node name="Details" type="Node2D" parent="."]