From a2869c720f24144b2d43db6ec82498f9929a0465 Mon Sep 17 00:00:00 2001 From: Alice Gaudon Date: Thu, 20 Aug 2020 10:35:25 +0200 Subject: [PATCH] Progress towards the end of the game --- dialogues/End_1.json | 12 +-- dialogues/End_Lie.json | 27 ++++++ dialogues/End_Truth.json | 61 ++++++++----- images/campfire/Choice.png | Bin 0 -> 6038 bytes images/campfire/Choice.png.import | 34 +++++++ images/campfire/thechoice.tres | 45 ++++++++++ images/oil_tanker/HerbertMustGo.png | Bin 0 -> 5598 bytes images/oil_tanker/HerbertMustGo.png.import | 34 +++++++ images/oil_tanker/HerbertMustGo.tres | 27 ++++++ scenes/campfire.tscn | 31 ++----- scenes/campfire/CampfireBackground.tscn | 22 +++++ scenes/campfire/Herbert.tscn | 8 ++ scenes/campfire2.tscn | 36 ++++++++ scenes/oil_tanker.tscn | 98 ++++++++++++--------- scripts/DialogueBox.gd | 7 ++ scripts/GooEmitter.gd | 1 - scripts/campfire2.gd | 63 +++++++++++++ scripts/oil_tanker.gd | 83 +++++++++++------ scripts/scenes/IntroScript.gd | 9 +- 19 files changed, 465 insertions(+), 133 deletions(-) create mode 100644 dialogues/End_Lie.json create mode 100644 images/campfire/Choice.png create mode 100644 images/campfire/Choice.png.import create mode 100644 images/campfire/thechoice.tres create mode 100644 images/oil_tanker/HerbertMustGo.png create mode 100644 images/oil_tanker/HerbertMustGo.png.import create mode 100644 images/oil_tanker/HerbertMustGo.tres create mode 100644 scenes/campfire/CampfireBackground.tscn create mode 100644 scenes/campfire/Herbert.tscn create mode 100644 scenes/campfire2.tscn create mode 100644 scripts/campfire2.gd diff --git a/dialogues/End_1.json b/dialogues/End_1.json index bb5c0e9..281910a 100644 --- a/dialogues/End_1.json +++ b/dialogues/End_1.json @@ -1,12 +1,12 @@ [ - {"name": "Crab", "text": "And voilĂ ! After some pitfalls and a long walk, here I am."}, - {"name": "Crab", "text": "I saw your big warm thing so I decided to stop by"}, + {"name": "Crab", "text": "Et voilĂ ! After some pitfalls and a long walk, here I am."}, + {"name": "Crab", "text": "I saw your big warm thing so I decided to stop by."}, {"name": "Crab", "text": "..."}, - {"name": "Crab", "text": "This coast is really nice, is it yours ?"}, + {"name": "Crab", "text": "This coast is really nice, is it yours?"}, {"name": "Crab", "text": "..."}, {"name": "Crab", "text": "Hey-oh, hooman, 're you okay?"}, - {"name": "Ely", "text": "W-wait... Did you say it was a recent oil Tanker ?"}, - {"name": "Crab", "text": "Hum... Yeah! It must have sank a few days ago or so..."}, + {"name": "Ely", "text": "W-wait... Did you just say it was a recent oil tanker sinking?"}, + {"name": "Crab", "text": "Hum... Yeah! It must have sank about a few days ago..."}, {"name": "Ely", "text": "..."}, - {"name": "Crab", "text": "Are you okay ?"} + {"name": "Crab", "text": "Are you okay?"} ] diff --git a/dialogues/End_Lie.json b/dialogues/End_Lie.json new file mode 100644 index 0000000..b3c6937 --- /dev/null +++ b/dialogues/End_Lie.json @@ -0,0 +1,27 @@ +[ + {"name": "Ely", "text": "So... Yeah... Here's the thing"}, + {"name": "Ely", "text": "I am a part of a non-profit organisation"}, + {"name": "Crab", "text": "A what ?"}, + {"name": "Ely", "text": "A bunch of people doing things more or less selflessly"}, + {"name": "Crab", "text": "Oh, that's nice !"}, + {"name": "Ely", "text": "Yeah, and our goal is to scan ocean in search of potential garbage and wrecks left by other hu-... uh... other [wave amp=20 freq=2]hoomans[wave/]"}, + {"name": "Crab", "text": "How neat !"}, + {"name": "Ely", "text": "We're mostly pals enjoying scuba diving together and collecting small funds for bigger organisations"}, + {"name": "Ely", "text": "And... you see, the oil tanker you found..."}, + {"name": "Ely", "text": "We were supposed to go trough it and gather some pieces of information for later dismantelment"}, + {"name": "Ely", "text": "But... as you can tell, it didn't go well."}, + {"name": "Ely", "text": "The sea was thunderous, angry even..."}, + {"name": "Ely", "text": "And we lost our ship. I don't even know were my friends are..."}, + {"name": "Ely", "text": "..."}, + {"name": "Crab", "text": "..."}, + {"name": "Ely", "text": "Crap..."}, + {"name": "Ely", "text": "... I don't know why I'm telling you all of that, it's not even really what happened..."}, + {"name": "Ely", "text": "..."}, + {"name": "Ely", "text": "I-I don't want to tell you the truth..."}, + {"name": "Crab", "text": "..."}, + {"name": "Crab", "text": "That was a beautiful tale."}, + {"name": "Crab", "text": "In a sense, it brings me hope to know you're aware that oil tankers are bad."}, + {"name": "Crab", "text": "Lie or not, yout story tells me somethings about hoomans and about you."}, + {"name": "Crab", "text": "Something good..."}, + {"name": "Crab", "text": "Thank you..."} +] diff --git a/dialogues/End_Truth.json b/dialogues/End_Truth.json index e7b2e7c..82dfd2c 100644 --- a/dialogues/End_Truth.json +++ b/dialogues/End_Truth.json @@ -1,39 +1,39 @@ [ - {"name": "Ely", "text": "So... Yeah... Here's the thing"}, - {"name": "Ely", "text": "... You see, the oil tanker."}, + {"name": "Ely", "text": "So... Yeah... Here's the thing:"}, + {"name": "Ely", "text": "... You see, the oil tanker?"}, {"name": "Crab", "text": "Yes."}, {"name": "Ely", "text": "I worked there."}, - {"name": "Ely", "text": "I was deck Officer"}, + {"name": "Ely", "text": "I was the deck officer."}, {"name": "Ely", "text": "We were on our way back home after 72 days at sea."}, {"name": "Ely", "text": "The captain decided it was a good idea to take a shortcut."}, - {"name": "Ely", "text": "They didn't follow the planned route."}, - {"name": "Ely", "text": "We hit something... and then we sank."}, + {"name": "Ely", "text": "They... didn't follow the planned route."}, + {"name": "Ely", "text": "We hit something... and we sank."}, {"name": "Ely", "text": "I lost consciousness and woke up here, alone."}, {"name": "Ely", "text": "To be clear, I wasn't responsible for that accident."}, {"name": "Ely", "text": "I was just trying to do my job and pay my rent..."}, {"name": "Crab", "text": "..."}, - {"name": "Ely", "text": "Gosh! Your cute face didn't make this easy."}, + {"name": "Ely", "text": "Gosh! Your damn cute face didn't make it easy."}, {"name": "Crab", "text": "Sorry, I have only one animation, the artist is lazy..."}, - {"name": "Crab", "text": "...So is that it ?"}, + {"name": "Crab", "text": "So... is that it?"}, {"name": "Ely", "text": "Yeah! Pretty much."}, {"name": "Crab", "text": "..."}, - {"name": "Crab", "text": "Why are you telling me the truth ?"}, - {"name": "Ely", "text": "Sorry, wha-"}, + {"name": "Crab", "text": "Why did you tell me the truth?"}, + {"name": "Ely", "text": "wha-", "auto": true}, {"name": "Crab", "text": "I thought we were telling tales."}, - {"name": "Ely", "text": "Y-yeah. That's true..."}, - {"name": "Ely", "text": "I don't know. I find it really hard to lie"}, - {"name": "Ely", "text": "Furthermore, I think it's better to tell what really happened."}, + {"name": "Ely", "text": "Y-yeah. True."}, + {"name": "Ely", "text": "I don't know. I find it really hard to lie."}, + {"name": "Ely", "text": "Furthermore, I think it's better to tell the truth."}, {"name": "Crab", "text": "..."}, - {"name": "Crab", "text": "Is it really ?"}, - {"name": "Ely", "text": "What do you mean ?"}, - {"name": "Crab", "text": "What does it changes ? Is the world a better place now ?"}, - {"name": "Crab", "text": "Did you accomplish anything by telling the truth ?"}, + {"name": "Crab", "text": "Is it really?"}, + {"name": "Ely", "text": "What do you mean?"}, + {"name": "Crab", "text": "What does it change? Is the world a better place now?"}, + {"name": "Crab", "text": "What does it accomplish?"}, {"name": "Ely", "text": "I mean... Now you know it was hum-... hum... hoomans' fault."}, - {"name": "Crab", "text": "I already knew that and besides, what can I [wave amp=20 freq=2]do[wave/] with this knowledge ?"}, + {"name": "Crab", "text": "I already knew that. And besides, what could I [wave amp=20 freq=2]do[/wave] with this knowledge?"}, {"name": "Ely", "text": "..."}, {"name": "Ely", "text": "Nothing..."}, {"name": "Ely", "text": "You're just..."}, - {"name": "Crab", "text": "a cute talking crab ?"}, + {"name": "Crab", "text": "A cute talking crab?"}, {"name": "Ely", "text": "Yeah... A cute talking crab."}, {"name": "Ely", "text": "..."}, {"name": "Ely", "text": "I'm sorry."}, @@ -42,16 +42,29 @@ {"name": "Crab", "text": "You said you were just trying to do your job and pay you rent."}, {"name": "Ely", "text": "Yes true."}, {"name": "Ely", "text": "But I'm still responsible."}, - {"name": "Ely", "text": "I-I shouldn't have pick this job. I know it's bad for the environnement."}, - {"name": "Ely", "text": "And I dislike the job, it's not a pleasure to participate in this system."}, + {"name": "Ely", "text": "I-I shouldn't have picked this job. I know it's bad for the environment."}, + {"name": "Ely", "text": "And participating in this system... ain't a pleasure at all."}, {"name": "Ely", "text": "Uh. Crap."}, {"name": "Ely", "text": "I'm so sorry."}, {"name": "Crab", "text": "..."}, - {"name": "Crab", "text": "You had to pick this job."}, + {"name": "Crab", "text": "You had no choice but to pick this job."}, {"name": "Ely", "text": "... I suppose..."}, {"name": "Ely", "text": "Yes... That was the only way to pay my bills."}, {"name": "Crab", "text": "..."}, - {"name": "Crab", "text": "To be honest..."}, - {"name": "Crab", "text": "It's okay. You were in a system that requires you to take that job."}, - {"name": "Crab", "text": "If I had someone or something to blame or attack it could be you but "} + {"name": "Crab", "text": "To be honest... It's okay."}, + {"name": "Crab", "text": "You are in a system that requires you to take that job."}, + + {"name": "Crab", "text": "If I needed someone or something to blame it could be you."}, + {"name": "Crab", "text": "But it feels like the system you're talking about is what's to blame."}, + {"name": "Crab", "text": "What forced you to take the job really is eviler than you."}, + {"name": "Ely", "text": "[code]Actually it's \"more evil than\".[/code]"}, + {"name": "Crab", "text": "Welp imma take that back."}, + {"name": "Ely", "text": "Haha"}, + {"name": "Crab", "text": "I'll say one last thing."}, + {"name": "Ely", "text": "..."}, + {"name": "Crab", "text": "Maybe some of us won't blame the system."}, + {"name": "Crab", "text": "Maybe some of us will blame you."}, + {"name": "Crab", "text": "And I cannot do anything about that."}, + {"name": "Ely", "text": "..."}, + {"name": "Ely", "text": "Fair."} ] diff --git a/images/campfire/Choice.png b/images/campfire/Choice.png new file mode 100644 index 0000000000000000000000000000000000000000..5a935c809c6d0f39727f2197c7a753378a70147e GIT binary patch literal 6038 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 CkR*Qq literal 0 HcmV?d00001 diff --git a/images/campfire/Choice.png.import b/images/campfire/Choice.png.import new file mode 100644 index 0000000..2836908 --- /dev/null +++ b/images/campfire/Choice.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Choice.png-da9b62f2dfce1054bb0be0878760a98e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/campfire/Choice.png" +dest_files=[ "res://.import/Choice.png-da9b62f2dfce1054bb0be0878760a98e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/campfire/thechoice.tres b/images/campfire/thechoice.tres new file mode 100644 index 0000000..90aa6fe --- /dev/null +++ b/images/campfire/thechoice.tres @@ -0,0 +1,45 @@ +[gd_resource type="SpriteFrames" load_steps=8 format=2] + +[ext_resource path="res://images/campfire/Choice.png" type="Texture" id=1] + +[sub_resource type="AtlasTexture" id=1] +atlas = ExtResource( 1 ) +region = Rect2( 0, 0, 192, 108 ) + +[sub_resource type="AtlasTexture" id=2] +atlas = ExtResource( 1 ) +region = Rect2( 192, 0, 192, 108 ) + +[sub_resource type="AtlasTexture" id=3] +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 ) ], +"loop": true, +"name": "default", +"speed": 2.0 +}, { +"frames": [ SubResource( 3 ), SubResource( 4 ) ], +"loop": true, +"name": "truth", +"speed": 2.0 +}, { +"frames": [ SubResource( 5 ), SubResource( 6 ) ], +"loop": true, +"name": "lie", +"speed": 2.0 +} ] diff --git a/images/oil_tanker/HerbertMustGo.png b/images/oil_tanker/HerbertMustGo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b576a8dadc7a0e77124b2187a8dcaf974bf38cf GIT binary patch literal 5598 zcmXw7c_38X`=7Clro|LRDobT~Wh^em0HO3nJMdt&1aU~x&eaGR}W0zr>kd6P_8C`FuBLQ~gZF zhqEp&w2J6EKKVfp!-=avNGuSA_+nqU`qdB>se>alSe<89l{&71V_z6HK3Ec#<9H}V z$EVH0u<~bc`KLP(UNfRMpx!|?1}Wt=mns9Xw)i^l@6s{?(hQD;NiuY*+9xPAzVXsJ zP5(Imq>)pP|K6Yrd6a6q^!fMJHvmzi|4|`@J+({-?P25m7qA|qDr+Bw!bKYy1nZTp$!$J`0jj)r1)q?Z1KwX|us1i)lN&r0WL9V!5Ds5w9 zfzI3Wp0&sP2e~zS(Vq0GGYtCtFx$XCc`KSt?v4Y|2}9q~21@3omVs8r*#=-8CYh~E zeG)z5O||oD+B*H$%h=4!`fQF{D|vKyJrQOrKVIA}VjE!{6T_&}b9{&*WXqR8KUm@g zqxshU3GvhKcaj@<+N`NXNr6&_lg2K$`nSezA17@d-zI-M=U5M8lK~#gY`vl%ag_>S zwq7G36{BE}blS5=TGI0y-L}P_+kMORU5_Z;5TEVueqc-fn%o@|qy5*xL<5+aQWFAs zO;lVhw*f#Cufg1Ez-C1Tp3NRty62&!XQdJ}v+L{rcP2qm{)9e{p*mTJEsyZz5Fm&0 z9D<^dq`W&T+z=oO#PKjl?K5*@6Dlh9_eHdC62EQg)VEA2DO7G}()()Sm0|2an!(*% zQ*F33SQ>4Qg?X%y&H!AHaATHNQ0JG@#^?*`c5*VHfTcQfnX8JZuRv#3p{ak4Lbr~< zJOY|}9VY*KUgsZzO%hwiGm?Gm9nto|4L994V-K8t;=+Y&bvTrS%p6F%+ZB0lX;*oq z5#Vt{6Zdh<#0;2(&?CETgW4i|eK!`!=$oeC0k;9F<3pBKgZd|M!(hFTtvUk!xuJzq z@S<10)}a5MG}BZm@xLMUHWo-4AWJ^*IH+s`vz3q;l8DmWCBq45l$>X&56UH#TPqEG zQbg3{&>0dcw!Mh2F!|pD5&7_CsSdr!TUm=|0=9mVaN0SqiDi~>s4@~N2c~>PQh`^5 zJVO}R=HV&^S=#3h`FjSh-Id7ca<_s*)sa$cP&}C9v!jI|yOb@RmVTa|Q~s#E_v*9t zdT;wSz^PzYJb)n+tiuw`UBMN^GiqtV8@5qwp8GGwm<9-8t1RvNQs>tAa-39NmdeFF zetaN@ut^A@0&y%*$DH7m0<}|I?fG_uc#7Gk*8p}Zop|x-TNWSMkYwn2ZuX#%eCy9_ z{i>^GEi|g6VdH}9Z{104cZV3YYc27>BK#r|a5<1_T}|e!y113kP8o{Yg0{kXp;8L3 zsmy(rYO7W4;z5`R9T6PQCs~=8Zo=u&bS^^1A3FavyELl{Hd7jN&Hr2QFMxM-Qf>mZ_ z#Gjs%<(u^Jn0MFk!AU+iE`*GPkReP~J0``C7X}mKoeuYXARZ;5rLv$u4g@!VNgNAT2buTSs)+-LBSqBFY}Kk zPObPTts}i z75>*Ohq{$4Yt&CSSkS&UvYWtPQ_KP!8RNGoGGf%fV>#xKN-#w`SQSfqkDc~ zc5Su6Kjyjj4ohh&^S3%A-dj^QHmmYAE_C|J(-+R8Yb`cyv-3BS}ktz%) z%oomMw+KMQ4v2;sym@T^p{sMkZT58@jNfIk(aBFV9DtfJlY*eSe9_|Pi|1T?yPWMp z%&opNH=OgPy`35wKvElATe>Dqta|4@+e&#Y0ks_z64 zdW0$h(]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 literal 0 HcmV?d00001 diff --git a/images/oil_tanker/HerbertMustGo.png.import b/images/oil_tanker/HerbertMustGo.png.import new file mode 100644 index 0000000..992f65b --- /dev/null +++ b/images/oil_tanker/HerbertMustGo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/HerbertMustGo.png-eb1b4766bd9a7596a2ea26b5fc498985.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/oil_tanker/HerbertMustGo.png" +dest_files=[ "res://.import/HerbertMustGo.png-eb1b4766bd9a7596a2ea26b5fc498985.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/oil_tanker/HerbertMustGo.tres b/images/oil_tanker/HerbertMustGo.tres new file mode 100644 index 0000000..eaaa9ba --- /dev/null +++ b/images/oil_tanker/HerbertMustGo.tres @@ -0,0 +1,27 @@ +[gd_resource type="SpriteFrames" load_steps=6 format=2] + +[ext_resource path="res://images/oil_tanker/HerbertMustGo.png" type="Texture" id=1] + +[sub_resource type="AtlasTexture" id=1] +atlas = ExtResource( 1 ) +region = Rect2( 0, 0, 192, 108 ) + +[sub_resource type="AtlasTexture" id=2] +atlas = ExtResource( 1 ) +region = Rect2( 192, 0, 192, 108 ) + +[sub_resource type="AtlasTexture" id=3] +atlas = ExtResource( 1 ) +region = Rect2( 384, 0, 192, 108 ) + +[sub_resource type="AtlasTexture" id=4] +atlas = ExtResource( 1 ) +region = Rect2( 576, 0, 192, 108 ) + +[resource] +animations = [ { +"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ], +"loop": true, +"name": "default", +"speed": 3.0 +} ] diff --git a/scenes/campfire.tscn b/scenes/campfire.tscn index 9a11c14..4de62c5 100644 --- a/scenes/campfire.tscn +++ b/scenes/campfire.tscn @@ -1,34 +1,17 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=5 format=2] -[ext_resource path="res://images/campfire/campfire.tres" type="SpriteFrames" id=1] -[ext_resource path="res://images/campfire/ely.tres" type="SpriteFrames" id=2] +[ext_resource path="res://scenes/campfire/Herbert.tscn" type="PackedScene" id=1] +[ext_resource path="res://scenes/campfire/CampfireBackground.tscn" type="PackedScene" id=2] [ext_resource path="res://scenes/dialogue.tscn" type="PackedScene" id=3] [ext_resource path="res://scripts/scenes/IntroScript.gd" type="Script" id=4] -[ext_resource path="res://images/campfire/herbert_intro.tres" type="SpriteFrames" id=5] -[ext_resource path="res://sounds/BRS_Fire_Campfire_Busy_Crackles_Snaps_1.wav" type="AudioStream" id=6] [node name="root" type="Node2D"] -[node name="Campfire (background)" type="AnimatedSprite" parent="."] -frames = ExtResource( 1 ) -playing = true -centered = false +[node name="CampfireBackground" parent="." instance=ExtResource( 2 )] +frame = 14 -[node name="FireCrackles" type="AudioStreamPlayer" parent="Campfire (background)"] -stream = ExtResource( 6 ) -autoplay = true - -[node name="Ely" type="AnimatedSprite" parent="."] -frames = ExtResource( 2 ) -animation = "idle" -playing = true -centered = false - -[node name="Herbert" type="AnimatedSprite" parent="."] +[node name="Herbert" parent="." instance=ExtResource( 1 )] visible = false -frames = ExtResource( 5 ) -animation = "idle" -centered = false [node name="UI" type="Control" parent="."] margin_right = 192.0 @@ -43,6 +26,6 @@ visible = false [node name="IntroScript" type="Node" parent="."] script = ExtResource( 4 ) dialogue_box_path = NodePath("../UI/Dialog") -ely_sprite_path = NodePath("../Ely") +ely_sprite_path = NodePath("../CampfireBackground/Ely") herbert_sprite_path = NodePath("../Herbert") intro_dialogue = "res://dialogues/intro_1.json" diff --git a/scenes/campfire/CampfireBackground.tscn b/scenes/campfire/CampfireBackground.tscn new file mode 100644 index 0000000..2fcd4b3 --- /dev/null +++ b/scenes/campfire/CampfireBackground.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://images/campfire/campfire.tres" type="SpriteFrames" id=1] +[ext_resource path="res://images/campfire/ely.tres" type="SpriteFrames" id=2] +[ext_resource path="res://sounds/BRS_Fire_Campfire_Busy_Crackles_Snaps_1.wav" type="AudioStream" id=3] + +[node name="CampfireBackground" type="AnimatedSprite"] +frames = ExtResource( 1 ) +frame = 10 +playing = true +centered = false + +[node name="FireCrackles" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) +autoplay = true + +[node name="Ely" type="AnimatedSprite" parent="."] +frames = ExtResource( 2 ) +animation = "idle" +frame = 74 +playing = true +centered = false diff --git a/scenes/campfire/Herbert.tscn b/scenes/campfire/Herbert.tscn new file mode 100644 index 0000000..d042b91 --- /dev/null +++ b/scenes/campfire/Herbert.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://images/campfire/herbert_intro.tres" type="SpriteFrames" id=1] + +[node name="Herbert" type="AnimatedSprite"] +frames = ExtResource( 1 ) +animation = "idle" +centered = false diff --git a/scenes/campfire2.tscn b/scenes/campfire2.tscn new file mode 100644 index 0000000..3688f72 --- /dev/null +++ b/scenes/campfire2.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scripts/campfire2.gd" type="Script" id=1] +[ext_resource path="res://scenes/campfire/Herbert.tscn" type="PackedScene" id=2] +[ext_resource path="res://scenes/campfire/CampfireBackground.tscn" type="PackedScene" id=3] +[ext_resource path="res://scenes/dialogue.tscn" type="PackedScene" id=4] +[ext_resource path="res://images/campfire/thechoice.tres" type="SpriteFrames" id=5] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) +end_1_dialogue = "res://dialogues/End_1.json" +end_truth_dialogue = "res://dialogues/End_Truth.json" +end_lie_dialogue = "res://dialogues/End_Lie.json" + +[node name="CampfireBackground" parent="." instance=ExtResource( 3 )] +frame = 7 + +[node name="Herbert" parent="." instance=ExtResource( 2 )] +visible = false + +[node name="UI" type="Control" parent="."] +margin_right = 192.0 +margin_bottom = 108.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Dialogue" parent="UI" instance=ExtResource( 4 )] +name_label_path = NodePath("../Dialogue/MarginContainer/VBoxContainer/MarginContainer/MarginContainer/CharacterName") +text_label_path = NodePath("../Dialogue/MarginContainer/VBoxContainer/MarginContainer2/MarginContainer/DialogText") + +[node name="TheChoice" type="AnimatedSprite" parent="."] +visible = false +frames = ExtResource( 5 ) +animation = "lie" +centered = false diff --git a/scenes/oil_tanker.tscn b/scenes/oil_tanker.tscn index 8c9e355..1d108dc 100644 --- a/scenes/oil_tanker.tscn +++ b/scenes/oil_tanker.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=35 format=2] +[gd_scene load_steps=37 format=2] [ext_resource path="res://scripts/oil_tanker.gd" type="Script" id=1] [ext_resource path="res://images/oil_tanker/OilTanker.tres" type="SpriteFrames" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://scenes/SidePlayer.tscn" type="PackedScene" id=4] [ext_resource path="res://images/oil_tanker/oilTankerInside_Foreground.png" type="Texture" id=5] [ext_resource path="res://scripts/GooEmitter.gd" type="Script" id=6] +[ext_resource path="res://images/oil_tanker/HerbertMustGo.tres" type="SpriteFrames" id=7] [ext_resource path="res://images/goo/BigGoo1.tres" type="Resource" id=8] [ext_resource path="res://images/goo/BigGoo2.tres" type="Resource" id=11] [ext_resource path="res://images/goo/goo5.tres" type="Resource" id=12] @@ -21,51 +22,58 @@ [ext_resource path="res://images/oil_tanker/OilTankerLeak_Midground.png" type="Texture" id=22] [ext_resource path="res://images/oil_tanker/OilTankerLeak_Midground_GooMask.png" type="Texture" id=23] -[sub_resource type="RectangleShape2D" id=1] +[sub_resource type="RectangleShape2D" id=6] extents = Vector2( 10, 34.563 ) -[sub_resource type="RectangleShape2D" id=2] -extents = Vector2( 10, 34.563 ) - -[sub_resource type="RectangleShape2D" id=3] -extents = Vector2( 276.861, 9.9101 ) - -[sub_resource type="RectangleShape2D" id=4] -extents = Vector2( 276.861, 9.9101 ) - -[sub_resource type="RectangleShape2D" id=15] -extents = Vector2( 175.74, 9.07445 ) - -[sub_resource type="CircleShape2D" id=16] -radius = 31.4057 - [sub_resource type="RectangleShape2D" id=7] -extents = Vector2( 10, 27.9493 ) +extents = Vector2( 10, 34.563 ) [sub_resource type="RectangleShape2D" id=8] -extents = Vector2( 10, 27.9493 ) +extents = Vector2( 276.861, 9.9101 ) [sub_resource type="RectangleShape2D" id=9] -extents = Vector2( 20.5315, 7.16187 ) +extents = Vector2( 276.861, 9.9101 ) [sub_resource type="RectangleShape2D" id=10] -extents = Vector2( 85.2849, 7.16187 ) +extents = Vector2( 175.74, 9.07445 ) -[sub_resource type="SegmentShape2D" id=11] -b = Vector2( 70.2283, 33.9024 ) +[sub_resource type="CircleShape2D" id=11] +radius = 31.4057 -[sub_resource type="SegmentShape2D" id=12] -b = Vector2( 122.205, -7.65517 ) +[sub_resource type="RectangleShape2D" id=20] +extents = Vector2( 10, 22.4756 ) -[sub_resource type="SegmentShape2D" id=13] -b = Vector2( 107.673, 44.0238 ) +[sub_resource type="RectangleShape2D" id=12] +extents = Vector2( 10, 27.9493 ) + +[sub_resource type="RectangleShape2D" id=13] +extents = Vector2( 10, 27.9493 ) [sub_resource type="RectangleShape2D" id=14] +extents = Vector2( 20.5315, 7.16187 ) + +[sub_resource type="RectangleShape2D" id=15] +extents = Vector2( 85.2849, 7.16187 ) + +[sub_resource type="SegmentShape2D" id=16] +b = Vector2( 70.2283, 33.9024 ) + +[sub_resource type="SegmentShape2D" id=17] +b = Vector2( 122.205, -7.65517 ) + +[sub_resource type="SegmentShape2D" id=18] +b = Vector2( 107.673, 44.0238 ) + +[sub_resource type="RectangleShape2D" id=19] extents = Vector2( 4.85875, 16.0913 ) [node name="Node2D" type="Node2D"] script = ExtResource( 1 ) +[node name="HerbertMustGo" type="AnimatedSprite" parent="."] +frames = ExtResource( 7 ) +centered = false + [node name="InsideOilTanker2" type="Sprite" parent="."] texture = ExtResource( 20 ) centered = false @@ -108,7 +116,7 @@ collision_mask = 4 [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall"] position = Vector2( -23.7448, 88.1799 ) -shape = SubResource( 1 ) +shape = SubResource( 6 ) [node name="Wall4" type="StaticBody2D" parent="InsideOilTanker2/walls"] collision_layer = 2147483652 @@ -119,7 +127,7 @@ __meta__ = { [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall4"] position = Vector2( 520.202, 91.1098 ) -shape = SubResource( 2 ) +shape = SubResource( 7 ) [node name="Wall2" type="StaticBody2D" parent="InsideOilTanker2/walls"] collision_layer = 2147483652 @@ -130,7 +138,7 @@ __meta__ = { [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall2"] position = Vector2( 249.14, 122.296 ) -shape = SubResource( 3 ) +shape = SubResource( 8 ) [node name="Wall3" type="StaticBody2D" parent="InsideOilTanker2/walls"] collision_layer = 2147483652 @@ -141,7 +149,7 @@ __meta__ = { [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall3"] position = Vector2( 244.468, 58.9552 ) -shape = SubResource( 4 ) +shape = SubResource( 9 ) [node name="Wall5" type="StaticBody2D" parent="InsideOilTanker2/walls"] collision_layer = 2147483652 @@ -153,7 +161,7 @@ __meta__ = { [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall5"] position = Vector2( 342.076, 75.064 ) rotation = 0.0123712 -shape = SubResource( 15 ) +shape = SubResource( 10 ) [node name="Wall6" type="StaticBody2D" parent="InsideOilTanker2/walls"] collision_layer = 2147483652 @@ -165,7 +173,15 @@ __meta__ = { [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall6"] position = Vector2( 168.01, 51.7275 ) rotation = 0.0123712 -shape = SubResource( 16 ) +shape = SubResource( 11 ) + +[node name="NextTrigger" type="Area2D" parent="InsideOilTanker2"] +collision_layer = 4 +collision_mask = 4 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/NextTrigger"] +position = Vector2( 330.844, 100.227 ) +shape = SubResource( 20 ) [node name="InsideOilTanker" type="Sprite" parent="."] texture = ExtResource( 3 ) @@ -191,49 +207,49 @@ centered = false [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall"] position = Vector2( 208.261, 91.1098 ) -shape = SubResource( 7 ) +shape = SubResource( 12 ) [node name="Wall2" type="StaticBody2D" parent="InsideOilTanker/walls"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall2"] position = Vector2( -23.7448, 81.6604 ) -shape = SubResource( 8 ) +shape = SubResource( 13 ) [node name="Wall5" type="StaticBody2D" parent="InsideOilTanker/walls"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall5"] position = Vector2( 6.44882, 51.7275 ) -shape = SubResource( 9 ) +shape = SubResource( 14 ) [node name="Wall6" type="StaticBody2D" parent="InsideOilTanker/walls"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall6"] position = Vector2( 127.185, 119.399 ) -shape = SubResource( 10 ) +shape = SubResource( 15 ) [node name="Wall7" type="StaticBody2D" parent="InsideOilTanker/walls"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall7"] position = Vector2( 10.2871, 55.1923 ) -shape = SubResource( 11 ) +shape = SubResource( 16 ) [node name="Wall9" type="StaticBody2D" parent="InsideOilTanker/walls"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall9"] position = Vector2( 79.5423, 88.1799 ) -shape = SubResource( 12 ) +shape = SubResource( 17 ) [node name="Wall10" type="StaticBody2D" parent="InsideOilTanker/walls"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall10"] position = Vector2( -15.3507, 75.064 ) -shape = SubResource( 13 ) +shape = SubResource( 18 ) [node name="NextTrigger" type="Area2D" parent="InsideOilTanker"] [node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/NextTrigger"] position = Vector2( 197.689, 97.7763 ) -shape = SubResource( 14 ) +shape = SubResource( 19 ) [node name="OilTanker" type="AnimatedSprite" parent="."] frames = ExtResource( 2 ) diff --git a/scripts/DialogueBox.gd b/scripts/DialogueBox.gd index d2a233c..9b36968 100644 --- a/scripts/DialogueBox.gd +++ b/scripts/DialogueBox.gd @@ -29,6 +29,13 @@ func _ready(): assert(text_label != null) assert(music_player != null) +func start_dialogue(dialog_path : String) -> DialogueAction: + var dialogue = DialogueAction.new() + dialogue.dialogue_file_path = dialog_path + dialogue.dialogue_box = self + dialogue.start() + return dialogue + func start(_dialogue : Array): dialogue = _dialogue index = 0 diff --git a/scripts/GooEmitter.gd b/scripts/GooEmitter.gd index 1bb8e2c..cee35ac 100644 --- a/scripts/GooEmitter.gd +++ b/scripts/GooEmitter.gd @@ -18,7 +18,6 @@ func _ready(): func emit(): var particle = goo_particles[rand_range(0, goo_particles.size())] as GooParticle - print(particle.name) var instance = Particle.new() instance.particle = particle diff --git a/scripts/campfire2.gd b/scripts/campfire2.gd new file mode 100644 index 0000000..0e6ced9 --- /dev/null +++ b/scripts/campfire2.gd @@ -0,0 +1,63 @@ +extends Node2D + +onready var ely = $CampfireBackground +onready var herbert = $Herbert +onready var dialogue_box = $UI/Dialogue +onready var the_choice = $TheChoice + +export (String, FILE, '*.json') var end_1_dialogue +export (String, FILE, '*.json') var end_truth_dialogue +export (String, FILE, '*.json') var end_lie_dialogue + +func _ready(): + assert(end_1_dialogue != null) + assert(end_truth_dialogue != null) + assert(end_lie_dialogue != null) + + dialogue_box.connect('update', self, 'update_camera') + + yield(dialogue_box.start_dialogue(end_1_dialogue), 'end') + the_choice.show() + the_choice.play('default') + +var choice = -1 + +func make_choice(choice : int): + the_choice.hide() + yield(dialogue_box.start_dialogue(end_truth_dialogue if choice == 0 else end_lie_dialogue), 'end') + +func _input(event): + if the_choice.visible: + if event.is_action_pressed("right"): + the_choice.play('lie') + choice = 1 + if event.is_action_pressed("left"): + the_choice.play('truth') + choice = 0 + if event.is_action_pressed("ui_accept"): + if choice >= 0: + make_choice(choice) + +func update_camera(): + var animation = dialogue_box.expression + if animation == "": + animation = "idle" + + var sprite : AnimatedSprite + if dialogue_box.character_name == 'Crab' || dialogue_box.character_name == 'Herbert': + herbert.show() + sprite = herbert + else: + herbert.hide() + sprite = ely + + var is_old_animation_loop = sprite.get_sprite_frames().get_animation_loop(sprite.get_animation()) + var is_new_animation_loop = sprite.get_sprite_frames().get_animation_loop(animation) + if !is_old_animation_loop || !is_new_animation_loop: + sprite.frame = 0 + + sprite.play(animation) + + if !is_new_animation_loop: + yield(sprite, 'animation_finished') + dialogue_box.stop_waiting() diff --git a/scripts/oil_tanker.gd b/scripts/oil_tanker.gd index 02b73b4..904121a 100644 --- a/scripts/oil_tanker.gd +++ b/scripts/oil_tanker.gd @@ -1,48 +1,73 @@ extends Node2D -# 2 +#0 +onready var oil_tanker = $OilTanker + +#1 +onready var oil_tanker_inside_1 = $InsideOilTanker +onready var player_1 = $InsideOilTanker/Player +onready var next_trigger_1 = $InsideOilTanker/NextTrigger + +#2 onready var oil_tanker_inside_2 = $InsideOilTanker2 -onready var camera = $InsideOilTanker2/Camera2D -onready var player = $InsideOilTanker2/Player +onready var camera_2 = $InsideOilTanker2/Camera2D +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 + +#3 +onready var herbert_must_go_3 = $HerbertMustGo func _ready(): - $OilTanker.connect('animation_finished', self, 'end_oil_tanker') - $InsideOilTanker/NextTrigger.connect("body_entered", self, 'end_inside_oil_tanker') + oil_tanker.connect('animation_finished', self, 'end_step_0') + next_trigger_1.connect("body_entered", self, 'end_step_1') + next_trigger_2.connect("body_entered", self, 'end_step_2') -# $OilTanker.frame = 12 -# end_oil_tanker() -# end_inside_oil_tanker($InsideOilTanker/Player) +# oil_tanker.frame = 12 +# end_step_0() +# end_step_1(player_1) -func end_oil_tanker(): - print('end_oil_tanker') - if $OilTanker.frame > 1: - $OilTanker.queue_free() - $InsideOilTanker/Player.sleep = false +func end_step_0(): + print('end_step_0') + if oil_tanker.frame > 1: + oil_tanker.queue_free() + player_1.sleep = false -func end_inside_oil_tanker(body : Node): - print('end_inside_oil_tanker') +func end_step_1(body : Node): + print('end_step_1') if body.name == "Player": - $InsideOilTanker.queue_free() - $InsideOilTanker2/Player.sleep = false - $InsideOilTanker2/Camera2D.current = true + oil_tanker_inside_1.queue_free() + + player_2.sleep = false + camera_2.current = true + +func end_step_2(body : Node): + print('end_step_2') + if body.name == "Player": + oil_tanker_inside_2.queue_free() + herbert_must_go_3.play('default') + + yield(get_tree().create_timer(5), "timeout") + get_tree().change_scene("res://scenes/campfire2.tscn") func _input(event): - if $OilTanker != null: + if oil_tanker != null: if event.is_action_pressed('right'): - if !$OilTanker.is_playing(): - $OilTanker.play('default') + if !oil_tanker.is_playing(): + oil_tanker.play('default') if event.is_action_released('right'): - $OilTanker.stop() + oil_tanker.stop() if event.is_action_pressed('left'): - if !$OilTanker.is_playing() && $OilTanker.frame > 0: - $OilTanker.play('default', true) + if !oil_tanker.is_playing() && oil_tanker.frame > 0: + oil_tanker.play('default', true) if event.is_action_released('left'): - $OilTanker.stop() + oil_tanker.stop() func _process(delta): - if !$InsideOilTanker2/Player.sleep: + if player_2 != null && !player_2.sleep: var screen_width = ProjectSettings.get_setting("display/window/size/width") - camera.position.x = floor(clamp(player.position.x - screen_width / 2.0, 0, oil_tanker_inside_2.texture.get_width() - screen_width)) - $InsideOilTanker2/Parallax/Prop2.position.x = floor((260 - camera.position.x) * 0.5) - $InsideOilTanker2/Parallax/Prop1.position.x = floor((300 - camera.position.x) * 0.75) + camera_2.position.x = floor(clamp(player_2.position.x - screen_width / 2.0, 0, oil_tanker_inside_2.texture.get_width() - screen_width)) + prop2.position.x = floor((260 - camera_2.position.x) * 0.5) + prop1.position.x = floor((300 - camera_2.position.x) * 0.75) diff --git a/scripts/scenes/IntroScript.gd b/scripts/scenes/IntroScript.gd index 5f9fd7a..1ba8a66 100644 --- a/scripts/scenes/IntroScript.gd +++ b/scripts/scenes/IntroScript.gd @@ -19,7 +19,7 @@ func _ready(): dialogue_box.connect('update', self, 'update_camera') yield(get_tree().create_timer(2.0), 'timeout') - yield(start_dialogue(intro_dialogue), 'end') + yield(dialogue_box.start_dialogue(intro_dialogue), 'end') get_tree().change_scene("res://scenes/game1.tscn") func update_camera(): @@ -46,13 +46,6 @@ func update_camera(): yield(sprite, 'animation_finished') dialogue_box.stop_waiting() -func start_dialogue(dialog_path : String) -> DialogueAction: - var dialogue = DialogueAction.new() - dialogue.dialogue_file_path = dialog_path - dialogue.dialogue_box = dialogue_box - dialogue.start() - return dialogue - var crab_finished = false var crab_step = 0 func do_crab_step():