From 29dcc1630cb786762d5a5444ff33b550359dc795 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Thu, 20 Aug 2020 12:01:19 +0200 Subject: [PATCH] oil_tanker: add dialogues --- dialogues/game1.json | 5 ++++ dialogues/oilTanker1.json | 5 ++++ dialogues/oilTanker2.json | 3 ++ dialogues/oilTanker3.json | 5 ++++ dialogues/oilTanker4.json | 5 ++++ images/campfire/thechoice.tres | 14 ++------- .../OilTankerLeak_Midground_GooMask.png | Bin 1432 -> 2393 bytes scenes/campfire2.tscn | 2 -- scenes/dialogue.tscn | 20 ++++++------- scenes/oil_tanker.tscn | 28 +++++++++++++++++- scripts/DialogueBox.gd | 21 ++++++++----- scripts/UI.gd | 5 ++++ scripts/game1/PlayerController.gd | 1 + scripts/oil_tanker.gd | 27 ++++++++++++++++- 14 files changed, 109 insertions(+), 32 deletions(-) create mode 100644 dialogues/game1.json create mode 100644 dialogues/oilTanker1.json create mode 100644 dialogues/oilTanker2.json create mode 100644 dialogues/oilTanker3.json create mode 100644 dialogues/oilTanker4.json create mode 100644 scripts/UI.gd diff --git a/dialogues/game1.json b/dialogues/game1.json new file mode 100644 index 0000000..aabed33 --- /dev/null +++ b/dialogues/game1.json @@ -0,0 +1,5 @@ +[ + {"name": "Herbert", "text": "As I was on my daily morning walk, I saw something strange."}, + {"name": "Herbert", "text": "There was some sort of weird goo floating around."}, + {"name": "Herbert", "text": "So I decided to look for the source."} +] diff --git a/dialogues/oilTanker1.json b/dialogues/oilTanker1.json new file mode 100644 index 0000000..09ad8ab --- /dev/null +++ b/dialogues/oilTanker1.json @@ -0,0 +1,5 @@ +[ + {"name": "Herbert", "text": "Finally I found the source.", "timer": 4, "auto": true, "upside_down": true}, + {"name": "Herbert", "text": "It was a recently sunk oil tanker.", "timer": 5, "auto": true, "upside_down": true}, + {"name": "Herbert", "text": "I had to investigate further.", "timer": 3, "auto": true, "upside_down": true} +] diff --git a/dialogues/oilTanker2.json b/dialogues/oilTanker2.json new file mode 100644 index 0000000..7aa509f --- /dev/null +++ b/dialogues/oilTanker2.json @@ -0,0 +1,3 @@ +[ + {"name": "Herbert", "text": "The closer I got, the more oil there was.", "timer": 4, "auto": true, "upside_down": true} +] diff --git a/dialogues/oilTanker3.json b/dialogues/oilTanker3.json new file mode 100644 index 0000000..4eed7b9 --- /dev/null +++ b/dialogues/oilTanker3.json @@ -0,0 +1,5 @@ +[ + {"name": "Herbert", "text": "The inside was full of oil, I was really close.", "upside_down": true}, + {"name": "Herbert", "text": "And there it was, one of the tank was damaged.", "upside_down": true}, + {"name": "Herbert", "text": "I'm just a crab, I couldn't do anything about it.", "upside_down": true, "animation": "fadeout", "timer": 2} +] diff --git a/dialogues/oilTanker4.json b/dialogues/oilTanker4.json new file mode 100644 index 0000000..c105650 --- /dev/null +++ b/dialogues/oilTanker4.json @@ -0,0 +1,5 @@ +[ + {"name": "Herbert", "text": "Back at my home, there was goo everywhere.", "expression": "black"}, + {"animation": "fadein", "timer": 2, "auto": true}, + {"name": "Herbert", "text": "My friends and I were forced to move..."} +] diff --git a/images/campfire/thechoice.tres b/images/campfire/thechoice.tres index 90aa6fe..2500e4a 100644 --- a/images/campfire/thechoice.tres +++ b/images/campfire/thechoice.tres @@ -1,4 +1,4 @@ -[gd_resource type="SpriteFrames" load_steps=8 format=2] +[gd_resource type="SpriteFrames" load_steps=6 format=2] [ext_resource path="res://images/campfire/Choice.png" type="Texture" id=1] @@ -14,18 +14,10 @@ region = Rect2( 192, 0, 192, 108 ) atlas = ExtResource( 1 ) region = Rect2( 384, 0, 192, 108 ) -[sub_resource type="AtlasTexture" id=4] -atlas = ExtResource( 1 ) -region = Rect2( 192, 0, 192, 108 ) - [sub_resource type="AtlasTexture" id=5] atlas = ExtResource( 1 ) region = Rect2( 576, 0, 192, 108 ) -[sub_resource type="AtlasTexture" id=6] -atlas = ExtResource( 1 ) -region = Rect2( 192, 0, 192, 108 ) - [resource] animations = [ { "frames": [ SubResource( 1 ), SubResource( 2 ) ], @@ -33,12 +25,12 @@ animations = [ { "name": "default", "speed": 2.0 }, { -"frames": [ SubResource( 3 ), SubResource( 4 ) ], +"frames": [ SubResource( 3 ) ], "loop": true, "name": "truth", "speed": 2.0 }, { -"frames": [ SubResource( 5 ), SubResource( 6 ) ], +"frames": [ SubResource( 5 ) ], "loop": true, "name": "lie", "speed": 2.0 diff --git a/images/oil_tanker/OilTankerLeak_Midground_GooMask.png b/images/oil_tanker/OilTankerLeak_Midground_GooMask.png index 479f63a81679f6f9c6fdec08735c1af8cac433dc..9bce8016d88187592c46efe7cd57a06b7d4252c9 100644 GIT binary patch delta 2370 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 void: music_player.play(audio) # UI - name_label.bbcode_text = character_name - name_label.rect_min_size.x = name_label.get_font('normal_font').get_string_size(name_label.text).x - text_label.bbcode_text = text - - if text == "": - hide() + var upside_down = line.get('upside_down', false) + if upside_down: + $MarginContainer/VBoxContainer.alignment = BoxContainer.ALIGN_BEGIN + $MarginContainer/VBoxContainer.add_child_below_node($MarginContainer/VBoxContainer/TextContainer, $MarginContainer/VBoxContainer/NameContainer) else: - show() + $MarginContainer/VBoxContainer.alignment = BoxContainer.ALIGN_END + $MarginContainer/VBoxContainer.add_child_below_node($MarginContainer/VBoxContainer/NameContainer, $MarginContainer/VBoxContainer/TextContainer) + + if text != '' and character_name != '': + name_label.bbcode_text = character_name + name_label.rect_min_size.x = name_label.get_font('normal_font').get_string_size(name_label.text).x + text_label.bbcode_text = text + + if text == "": hide() + else: show() emit_signal('update') diff --git a/scripts/UI.gd b/scripts/UI.gd new file mode 100644 index 0000000..8d9292f --- /dev/null +++ b/scripts/UI.gd @@ -0,0 +1,5 @@ +extends Control + +func _process(delta): + var origin = get_tree().root.get_viewport().canvas_transform.get_origin() + rect_position.x = -origin.x diff --git a/scripts/game1/PlayerController.gd b/scripts/game1/PlayerController.gd index 47fdb42..7ad4474 100644 --- a/scripts/game1/PlayerController.gd +++ b/scripts/game1/PlayerController.gd @@ -50,5 +50,6 @@ func _process(delta): $Sprite.play('left') func _physics_process(delta : float): + if sleep: return apply_central_impulse(dir.normalized() * 10) diff --git a/scripts/oil_tanker.gd b/scripts/oil_tanker.gd index 904121a..45f0841 100644 --- a/scripts/oil_tanker.gd +++ b/scripts/oil_tanker.gd @@ -1,12 +1,17 @@ extends Node2D +onready var dialogue_box = $UI/Dialog + #0 onready var oil_tanker = $OilTanker +export (String, FILE, "*.json") var dialogue_1 #1 onready var oil_tanker_inside_1 = $InsideOilTanker onready var player_1 = $InsideOilTanker/Player onready var next_trigger_1 = $InsideOilTanker/NextTrigger +onready var dialogue_trigger_1 = $InsideOilTanker/DialogueTrigger +export (String, FILE, "*.json") var dialogue_2 #2 onready var oil_tanker_inside_2 = $InsideOilTanker2 @@ -15,18 +20,35 @@ onready var player_2 = $InsideOilTanker2/Player onready var prop1 = $InsideOilTanker2/Parallax/Prop1 onready var prop2 = $InsideOilTanker2/Parallax/Prop2 onready var next_trigger_2 = $InsideOilTanker2/NextTrigger +export (String, FILE, "*.json") var dialogue_3 #3 onready var herbert_must_go_3 = $HerbertMustGo +export (String, FILE, "*.json") var dialogue_4 func _ready(): + assert(dialogue_1 != null) + assert(dialogue_2 != null) + assert(dialogue_3 != null) + assert(dialogue_4 != null) + oil_tanker.connect('animation_finished', self, 'end_step_0') next_trigger_1.connect("body_entered", self, 'end_step_1') + dialogue_trigger_1.connect("body_entered", self, 'dialogue_2') next_trigger_2.connect("body_entered", self, 'end_step_2') + yield(get_tree().create_timer(1), "timeout") + yield(dialogue_box.start_dialogue(dialogue_1), 'end') + # oil_tanker.frame = 12 # end_step_0() # end_step_1(player_1) +# end_step_2(player_2) + +func dialogue_2(body : Node): + print('end_step_1') + if body.name == "Player": + yield(dialogue_box.start_dialogue(dialogue_2), 'end') func end_step_0(): print('end_step_0') @@ -45,10 +67,13 @@ func end_step_1(body : Node): func end_step_2(body : Node): print('end_step_2') if body.name == "Player": + player_2.sleep = true + yield(dialogue_box.start_dialogue(dialogue_3), 'end') oil_tanker_inside_2.queue_free() herbert_must_go_3.play('default') - yield(get_tree().create_timer(5), "timeout") + yield(get_tree().create_timer(1), "timeout") + yield(dialogue_box.start_dialogue(dialogue_4), 'end') get_tree().change_scene("res://scenes/campfire2.tscn") func _input(event):