2B/0 NPCs WIP! Added bench & tree_behind animations! <3

remove NPC.tscn, Player is now used for everything! (-=
Player ready_z_index to sort NPCs ^.^
This commit is contained in:
Harmony Honey 2023-04-03 00:19:20 -04:00
parent 9906513a15
commit 9bf2234db2
11 changed files with 452 additions and 101 deletions

View file

@ -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"]

View file

@ -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:

View file

@ -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"]

View file

@ -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()

View file

@ -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

View file

@ -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"]

View file

@ -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="."]

View file

@ -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="."]

View file

@ -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"]

View file

@ -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="."]

View file

@ -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="."]