Made dialog a separate view
This commit is contained in:
@@ -14,12 +14,12 @@ font_size = 32
|
|||||||
outline_size = 5
|
outline_size = 5
|
||||||
outline_color = Color(0, 0, 0, 1)
|
outline_color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="5"]
|
[sub_resource type="Gradient" id="Gradient_itcyp"]
|
||||||
offsets = PackedFloat32Array(0, 0.0820312)
|
offsets = PackedFloat32Array(0, 0.0820312)
|
||||||
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1)
|
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1)
|
||||||
|
|
||||||
[sub_resource type="GradientTexture2D" id="6"]
|
[sub_resource type="GradientTexture2D" id="6"]
|
||||||
gradient = SubResource("5")
|
gradient = SubResource("Gradient_itcyp")
|
||||||
width = 2372
|
width = 2372
|
||||||
height = 1239
|
height = 1239
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ tracks/0/keys = {
|
|||||||
"times": PackedFloat32Array(0.1, 0.5),
|
"times": PackedFloat32Array(0.1, 0.5),
|
||||||
"transitions": PackedFloat32Array(1, 3.13834),
|
"transitions": PackedFloat32Array(1, 3.13834),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
"values": [Color(1, 1, 1, 0.368627), Color(1, 1, 1, 0)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="8"]
|
[sub_resource type="Animation" id="8"]
|
||||||
@@ -110,6 +110,6 @@ position_smoothing_speed = 0.5
|
|||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
[node name="Node2D2" parent="CanvasLayer" instance=ExtResource("7_fj12q")]
|
[node name="dialogue" parent="." instance=ExtResource("7_fj12q")]
|
||||||
position = Vector2(328, 106)
|
position = Vector2(328, 106)
|
||||||
scale = Vector2(0.75, 0.75)
|
scale = Vector2(0.75, 0.75)
|
||||||
|
|||||||
@@ -26,13 +26,15 @@ class Say:
|
|||||||
var text
|
var text
|
||||||
var subject : Node2D = null
|
var subject : Node2D = null
|
||||||
var done = false
|
var done = false
|
||||||
|
var stop = true
|
||||||
var started = false
|
var started = false
|
||||||
var t
|
var t
|
||||||
func step_type():
|
func step_type():
|
||||||
return "Say " + text
|
return "Say " + text
|
||||||
func init(scene):
|
func init(scene):
|
||||||
super(scene)
|
super(scene)
|
||||||
subject.play_animation("talk", 0)
|
|
||||||
|
#subject.play_animation("talk", 0)
|
||||||
|
|
||||||
func do(delta):
|
func do(delta):
|
||||||
if !started:
|
if !started:
|
||||||
@@ -43,15 +45,18 @@ class Say:
|
|||||||
subject.add_child(t)
|
subject.add_child(t)
|
||||||
|
|
||||||
var label: Label = subject.find_child("talk-label")
|
var label: Label = subject.find_child("talk-label")
|
||||||
label.set_text(text)
|
#label.set_text(text)
|
||||||
subject.find_child("label-root").show()
|
#subject.find_child("label-root").show()
|
||||||
print ("SHOWING")
|
await scene.find_child("dialogue").say(text)
|
||||||
|
print ("SHOWING" + text)
|
||||||
await t.timeout
|
await t.timeout
|
||||||
print ("HIDING")
|
print ("HIDING" + text)
|
||||||
subject.remove_child(t)
|
subject.remove_child(t)
|
||||||
subject.find_child("label-root").hide()
|
if stop:
|
||||||
subject.stop_animation()
|
await scene.find_child("dialogue").done_say()
|
||||||
subject.play_animation_raw("idle_" + subject.facing)
|
#subject.find_child("label-root").hide()
|
||||||
|
#subject.stop_animation()
|
||||||
|
#subject.play_animation_raw("idle_" + subject.facing)
|
||||||
done = true
|
done = true
|
||||||
started = true
|
started = true
|
||||||
|
|
||||||
@@ -327,10 +332,11 @@ func walk_path(subject, path):
|
|||||||
walk_to.path = path
|
walk_to.path = path
|
||||||
return walk_to
|
return walk_to
|
||||||
|
|
||||||
func say(subject, text):
|
func say(subject, text, stop=true):
|
||||||
var say = Say.new()
|
var say = Say.new()
|
||||||
say.subject = subject
|
say.subject = subject
|
||||||
say.text = text
|
say.text = text
|
||||||
|
say.stop = stop
|
||||||
return say
|
return say
|
||||||
|
|
||||||
func walk_to_deferred(named_from, named_to):
|
func walk_to_deferred(named_from, named_to):
|
||||||
|
|||||||
88
UITheme.tres
88
UITheme.tres
File diff suppressed because one or more lines are too long
27
portrait.gd
Normal file
27
portrait.gd
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
@onready var animplayer:AnimationPlayer = $SubViewport/Fade/AnimationPlayer
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
$CanvasLayer.hide()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func say(line):
|
||||||
|
if !$CanvasLayer.visible:
|
||||||
|
animplayer.play("fade_in")
|
||||||
|
await get_tree().process_frame
|
||||||
|
$CanvasLayer.show()
|
||||||
|
|
||||||
|
await animplayer.animation_finished
|
||||||
|
$"SubViewport/talk-label".text = line
|
||||||
|
|
||||||
|
func done_say():
|
||||||
|
$"SubViewport/talk-label".text = ""
|
||||||
|
animplayer.play_backwards("fade_in")
|
||||||
|
await animplayer.animation_finished
|
||||||
|
$CanvasLayer.hide()
|
||||||
22
portrait.gdshader
Normal file
22
portrait.gdshader
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
vec4 col = texture(TEXTURE, UV) * 0.16;
|
||||||
|
col += texture(TEXTURE, UV + vec2(TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.075;
|
||||||
|
col += texture(TEXTURE, UV + vec2(-TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.075;
|
||||||
|
col += texture(TEXTURE, UV + vec2(2.0 * TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.06;
|
||||||
|
col += texture(TEXTURE, UV + vec2(2.0 * -TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.06;
|
||||||
|
col += texture(TEXTURE, UV + vec2(3.0 * TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.045;
|
||||||
|
col += texture(TEXTURE, UV + vec2(3.0 * -TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.045;
|
||||||
|
col += texture(TEXTURE, UV + vec2(4.0 * TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.025;
|
||||||
|
col += texture(TEXTURE, UV + vec2(4.0 * -TEXTURE_PIXEL_SIZE.x, 0.0)) * 0.025;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, TEXTURE_PIXEL_SIZE.y)) * 0.075;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, -TEXTURE_PIXEL_SIZE.y)) * 0.075;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, 2.0 * TEXTURE_PIXEL_SIZE.y)) * 0.06;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, 2.0 * -TEXTURE_PIXEL_SIZE.y)) * 0.06;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, 3.0 * TEXTURE_PIXEL_SIZE.y)) * 0.045;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, 3.0 * -TEXTURE_PIXEL_SIZE.y)) * 0.045;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, 4.0 * TEXTURE_PIXEL_SIZE.y)) * 0.025;
|
||||||
|
col += texture(TEXTURE, UV + vec2(0.0, 4.0 * -TEXTURE_PIXEL_SIZE.y)) * 0.025;
|
||||||
|
COLOR = col;
|
||||||
|
}
|
||||||
1464
portrait.tscn
1464
portrait.tscn
File diff suppressed because one or more lines are too long
@@ -26,7 +26,7 @@ func _on_entered_from_pasture():
|
|||||||
|
|
||||||
func _on_entranceexit_interacted():
|
func _on_entranceexit_interacted():
|
||||||
start_main_script(ScriptBuilder.init(
|
start_main_script(ScriptBuilder.init(
|
||||||
ScriptBuilder.say(self.ego, "Looks light a hot air balloon.")
|
ScriptBuilder.say(self.ego, "Looks light a hot air balloon.", false)
|
||||||
)
|
)
|
||||||
.and_then(ScriptBuilder.say(self.ego, "Just like gramps"))
|
.and_then(ScriptBuilder.say(self.ego, "Just like gramps"))
|
||||||
.build(self, "_on_script_complete"))
|
.build(self, "_on_script_complete"))
|
||||||
|
|||||||
Reference in New Issue
Block a user