Compare commits
No commits in common. "master" and "levelz999" have entirely different histories.
23
README.md
23
README.md
@ -1,23 +0,0 @@
|
|||||||
# Ely and the Crab
|
|
||||||
|
|
||||||
A game by [kwarel](https://kwarel.itch.io/) and [ashpie](https://ashpie.com) (was Arisu).
|
|
||||||
|
|
||||||
It was made during the itch.io weekly game jam 162 (theme: Crabs).
|
|
||||||
|
|
||||||
[itch.io page](https://kwarel.itch.io/ely-and-the-crab)
|
|
||||||
|
|
||||||
## Licenses
|
|
||||||
|
|
||||||
- All 2D images are made by [kwarel](https://kwarel.itch.io/) © 2020 and are licensed under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
|
|
||||||
- The following sound assets are made by [ashpie](https://ashpie.com) © 2020 and are licensed under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/):
|
|
||||||
- Main title music (sounds/main_title.ogg)
|
|
||||||
- Dialog letter by letter sound effets (sounds/gibberish.wav, sounds/gibberish2.wav)
|
|
||||||
- Herbert sound effects and theme music (sounds/herbert*.ogg)
|
|
||||||
- All dialogs are made by [kwarel](https://kwarel.itch.io/) and [ashpie](https://ashpie.com) © 2020 and are licensed under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
|
|
||||||
- All code (including scripts), godot scenes and godot project files are licensed under [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
||||||
- Fonts used in this project are public domains (we did not make any of those)
|
|
||||||
- We also use [two songs by Chris Zabriskie](https://www.chriszabriskie.com/dtv/) and a sound effect that we picked on splice for the campfire
|
|
||||||
|
|
||||||
## Play the game
|
|
||||||
|
|
||||||
[itch.io page](https://kwarel.itch.io/ely-and-the-crab)
|
|
@ -5,9 +5,9 @@
|
|||||||
{"name": "Herbert", "text": "This coast is really nice, is it yours?"},
|
{"name": "Herbert", "text": "This coast is really nice, is it yours?"},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "Hey-oh, hooman, 're you okay?"},
|
{"name": "Herbert", "text": "Hey-oh, hooman, 're you okay?"},
|
||||||
{"name": "Ely", "text": "W-wait... Did you just say it was a recent oil tanker sinking?", "expression": "listening"},
|
{"name": "Ely", "text": "W-wait... Did you just say it was a recent oil tanker sinking?"},
|
||||||
{"name": "Herbert", "text": "Hum... Yeah! It must have sank about a few days ago..."},
|
{"name": "Herbert", "text": "Hum... Yeah! It must have sank about a few days ago..."},
|
||||||
{"name": "Ely", "text": "...", "expression": "listening"},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Herbert", "text": "Are you okay?"},
|
{"name": "Herbert", "text": "Are you okay?"},
|
||||||
{"name": "Ely", "text": "So... Yeah... Here's the thing:"}
|
{"name": "Ely", "text": "So... Yeah... Here's the thing:"}
|
||||||
]
|
]
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
[
|
[
|
||||||
{"name": "Ely", "text": "I am a part of a non-profit organization.", "expression": "smile"},
|
{"name": "Ely", "text": "I am a part of a non-profit organization."},
|
||||||
{"name": "Herbert", "text": "A what?"},
|
{"name": "Herbert", "text": "A what?"},
|
||||||
{"name": "Ely", "text": "A bunch of people doing things more or less selflessly.", "expression": "smile"},
|
{"name": "Ely", "text": "A bunch of people doing things more or less selflessly."},
|
||||||
{"name": "Herbert", "text": "Oh, that's nice!"},
|
{"name": "Herbert", "text": "Oh, that's nice!"},
|
||||||
{"name": "Ely", "text": "We scan the ocean to find the garbage left by other hu-... uh... other [wave amp=20 freq=2]hoomans[/wave].", "expression": "smile"},
|
{"name": "Ely", "text": "We scan the ocean to find the garbage left by other hu-... uh... other [wave amp=20 freq=2]hoomans[/wave]."},
|
||||||
{"name": "Herbert", "text": "How neat!"},
|
{"name": "Herbert", "text": "How neat!"},
|
||||||
{"name": "Ely", "text": "We're mostly pals enjoying scuba diving together and collecting small funds for bigger organizations."},
|
{"name": "Ely", "text": "We're mostly pals enjoying scuba diving together and collecting small funds for bigger organizations."},
|
||||||
{"name": "Ely", "text": "And... you see, the oil tanker you found..."},
|
{"name": "Ely", "text": "And... you see, the oil tanker you found..."},
|
||||||
{"name": "Ely", "text": "We were supposed to go through it and gather pieces of information for later dismantlement."},
|
{"name": "Ely", "text": "We were supposed to go through it and gather pieces of information for later dismantlement."},
|
||||||
{"name": "Ely", "text": "But... as you can tell, it didn't go well.", "expression": "gasp"},
|
{"name": "Ely", "text": "But... as you can tell, it didn't go well."},
|
||||||
{"name": "Ely", "text": "The sea was angry, thunderous even...", "expression": "gasp"},
|
{"name": "Ely", "text": "The sea was angry, thunderous even..."},
|
||||||
{"name": "Ely", "text": "And we lost our ship.", "expression": "gasp"},
|
{"name": "Ely", "text": "And we lost our ship."},
|
||||||
{"name": "Ely", "text": "I don't even know were my friends are...", "expression": "sad"},
|
{"name": "Ely", "text": "I don't even know were my friends are..."},
|
||||||
{"name": "Ely", "text": "...", "expression": "sad"},
|
|
||||||
{"name": "Herbert", "text": "..."},
|
|
||||||
{"name": "Ely", "text": "Crap...", "expression": "listening"},
|
|
||||||
{"name": "Ely", "text": "... I don't know why I'm telling you all of that, it's not even what really happened...", "expression": "listening"},
|
|
||||||
{"name": "Ely", "text": "..."},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Ely", "text": "I-I don't want you to know the truth...", "expression": "sad"},
|
{"name": "Herbert", "text": "..."},
|
||||||
|
{"name": "Ely", "text": "Crap..."},
|
||||||
|
{"name": "Ely", "text": "... I don't know why I'm telling you all of that, it's not even what really happened..."},
|
||||||
|
{"name": "Ely", "text": "..."},
|
||||||
|
{"name": "Ely", "text": "I-I don't want you to know the truth..."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "That was a beautiful tale."},
|
{"name": "Herbert", "text": "That was a beautiful tale."},
|
||||||
{"name": "Herbert", "text": "In a sense, it brings me hope to know you're aware that oil tankers are bad."},
|
{"name": "Herbert", "text": "In a sense, it brings me hope to know you're aware that oil tankers are bad."},
|
||||||
|
@ -1,54 +1,54 @@
|
|||||||
[
|
[
|
||||||
{"name": "Ely", "text": "... You see, the oil tanker?", "expression": "listening"},
|
{"name": "Ely", "text": "... You see, the oil tanker?"},
|
||||||
{"name": "Herbert", "text": "Yes."},
|
{"name": "Herbert", "text": "Yes."},
|
||||||
{"name": "Ely", "text": "I worked there.", "expression": "listening"},
|
{"name": "Ely", "text": "I worked there."},
|
||||||
{"name": "Ely", "text": "I was the deck officer.", "expression": "listening"},
|
{"name": "Ely", "text": "I was the deck officer."},
|
||||||
{"name": "Ely", "text": "We were on our way back home after 72 days at sea.", "expression": "listening"},
|
{"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.", "expression": "listening"},
|
{"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.", "expression": "listening"},
|
{"name": "Ely", "text": "They... didn't follow the planned route."},
|
||||||
{"name": "Ely", "text": "We hit something... and we sank.", "expression": "sad"},
|
{"name": "Ely", "text": "We hit something... and we sank."},
|
||||||
{"name": "Ely", "text": "I lost consciousness and woke up here, alone.", "expression": "listening"},
|
{"name": "Ely", "text": "I lost consciousness and woke up here, alone."},
|
||||||
{"name": "Ely", "text": "To be clear, I wasn't responsible for that accident.", "expression": "listening"},
|
{"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...", "expression": "sad"},
|
{"name": "Ely", "text": "I was just trying to do my job and pay my rent..."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Ely", "text": "Gosh! Your damn cute face didn't make it easy.", "expression": "gasp"},
|
{"name": "Ely", "text": "Gosh! Your damn cute face didn't make it easy."},
|
||||||
{"name": "Herbert", "text": "Sorry, I only have one animation, the artist is lazy..."},
|
{"name": "Herbert", "text": "Sorry, I only have one animation, the artist is lazy..."},
|
||||||
{"name": "Herbert", "text": "So... is that it?"},
|
{"name": "Herbert", "text": "So... is that it?"},
|
||||||
{"name": "Ely", "text": "Yeah! Pretty much.", "expression": "listening"},
|
{"name": "Ely", "text": "Yeah! Pretty much."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "Why did you tell me the truth?"},
|
{"name": "Herbert", "text": "Why did you tell me the truth?"},
|
||||||
{"name": "Ely", "text": "wha-", "timer": 0.4, "auto": true, "expression": "listening"},
|
{"name": "Ely", "text": "wha-", "auto": true},
|
||||||
{"name": "Herbert", "text": "I thought we were telling tales."},
|
{"name": "Herbert", "text": "I thought we were telling tales."},
|
||||||
{"name": "Ely", "text": "Y-yeah. True.", "expression": "sad"},
|
{"name": "Ely", "text": "Y-yeah. True."},
|
||||||
{"name": "Ely", "text": "I don't know. I find it really hard to lie.", "expression": "sad"},
|
{"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.", "expression": "listening"},
|
{"name": "Ely", "text": "Furthermore, I think it's better to tell the truth."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "Is it really?"},
|
{"name": "Herbert", "text": "Is it really?"},
|
||||||
{"name": "Ely", "text": "What do you mean?", "expression": "listening"},
|
{"name": "Ely", "text": "What do you mean?"},
|
||||||
{"name": "Herbert", "text": "What does it change? Is the world a better place now?"},
|
{"name": "Herbert", "text": "What does it change? Is the world a better place now?"},
|
||||||
{"name": "Herbert", "text": "What does it accomplish?"},
|
{"name": "Herbert", "text": "What does it accomplish?"},
|
||||||
{"name": "Ely", "text": "I mean... Now you know it was hum-... hum... hoomans' fault.", "expression": "sad"},
|
{"name": "Ely", "text": "I mean... Now you know it was hum-... hum... hoomans' fault."},
|
||||||
{"name": "Herbert", "text": "I already knew that. And besides, what could I [wave amp=20 freq=2]do[/wave] with this knowledge?"},
|
{"name": "Herbert", "text": "I already knew that. And besides, what could I [wave amp=20 freq=2]do[/wave] with this knowledge?"},
|
||||||
{"name": "Ely", "text": "...", "expression": "sad"},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Ely", "text": "Nothing...", "expression": "sad"},
|
{"name": "Ely", "text": "Nothing..."},
|
||||||
{"name": "Ely", "text": "You're just...", "expression": "sad"},
|
{"name": "Ely", "text": "You're just..."},
|
||||||
{"name": "Herbert", "text": "A cute talking crab?"},
|
{"name": "Herbert", "text": "A cute talking crab?"},
|
||||||
{"name": "Ely", "text": "Yeah... A cute talking crab."},
|
{"name": "Ely", "text": "Yeah... A cute talking crab."},
|
||||||
{"name": "Ely", "text": "...", "expression": "listening"},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Ely", "text": "I'm sorry.", "expression": "sad"},
|
{"name": "Ely", "text": "I'm sorry."},
|
||||||
{"name": "Ely", "text": "I'm so sorry...", "expression": "sad"},
|
{"name": "Ely", "text": "I'm so sorry..."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "You said you were just trying to do your job and pay your rent."},
|
{"name": "Herbert", "text": "You said you were just trying to do your job and pay your rent."},
|
||||||
{"name": "Ely", "text": "Yes true.", "expression": "listening"},
|
{"name": "Ely", "text": "Yes true."},
|
||||||
{"name": "Ely", "text": "But I'm still responsible.", "expression": "listening"},
|
{"name": "Ely", "text": "But I'm still responsible."},
|
||||||
{"name": "Ely", "text": "I-I shouldn't have picked this job. I know it's bad for the environment.", "expression": "sad"},
|
{"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.", "expression": "sad"},
|
{"name": "Ely", "text": "And participating in this system... ain't a pleasure at all."},
|
||||||
{"name": "Ely", "text": "Uh. Crap.", "expression": "sad"},
|
{"name": "Ely", "text": "Uh. Crap."},
|
||||||
{"name": "Ely", "text": "I'm so sorry.", "expression": "sad"},
|
{"name": "Ely", "text": "I'm so sorry."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "You had no choice but to pick this job."},
|
{"name": "Herbert", "text": "You had no choice but to pick this job."},
|
||||||
{"name": "Ely", "text": "... I suppose...", "expression": "listening"},
|
{"name": "Ely", "text": "... I suppose..."},
|
||||||
{"name": "Ely", "text": "Yes... That was the only way to pay my bills.", "expression": "listening"},
|
{"name": "Ely", "text": "Yes... That was the only way to pay my bills."},
|
||||||
{"name": "Herbert", "text": "..."},
|
{"name": "Herbert", "text": "..."},
|
||||||
{"name": "Herbert", "text": "To be honest... It's okay."},
|
{"name": "Herbert", "text": "To be honest... It's okay."},
|
||||||
{"name": "Herbert", "text": "You are in a system that requires you to take that job."},
|
{"name": "Herbert", "text": "You are in a system that requires you to take that job."},
|
||||||
@ -56,15 +56,14 @@
|
|||||||
{"name": "Herbert", "text": "If I needed someone or something to blame it could be you."},
|
{"name": "Herbert", "text": "If I needed someone or something to blame it could be you."},
|
||||||
{"name": "Herbert", "text": "But it feels like the system you're talking about is what's to blame."},
|
{"name": "Herbert", "text": "But it feels like the system you're talking about is what's to blame."},
|
||||||
{"name": "Herbert", "text": "What forced you to take the job really is eviler than you."},
|
{"name": "Herbert", "text": "What forced you to take the job really is eviler than you."},
|
||||||
{"name": "Ely", "text": "[code]Actually it's \"more evil than\".[/code]", "expression": "smile"},
|
{"name": "Ely", "text": "[code]Actually it's \"more evil than\".[/code]"},
|
||||||
{"name": "Herbert", "text": "Welp imma take that back."},
|
{"name": "Herbert", "text": "Welp imma take that back."},
|
||||||
{"name": "Ely", "text": "Haha", "expression": "smile"},
|
{"name": "Ely", "text": "Haha"},
|
||||||
{"name": "Herbert", "text": "I'll say one last thing."},
|
{"name": "Herbert", "text": "I'll say one last thing."},
|
||||||
{"name": "Ely", "text": "...", "expression": "listening"},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Herbert", "text": "Maybe some of us won't blame the system."},
|
{"name": "Herbert", "text": "Maybe some of us won't blame the system."},
|
||||||
{"name": "Herbert", "text": "Maybe some of us will blame you."},
|
{"name": "Herbert", "text": "Maybe some of us will blame you."},
|
||||||
{"name": "Herbert", "text": "And I cannot do anything about that."},
|
{"name": "Herbert", "text": "And I cannot do anything about that."},
|
||||||
{"name": "Ely", "text": "...", "expression": "listening"},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Ely", "text": "Fair.", "expression": "listening"},
|
{"name": "Ely", "text": "Fair."}
|
||||||
{"animation": "fadeout", "timer": 2, "auto": true}
|
|
||||||
]
|
]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[
|
[
|
||||||
{"name": "", "text": "There was some sort of weird goo floating around.", "upside_down": true},
|
{"name": "Herbert", "text": "There was some sort of weird goo floating around.", "upside_down": true, "timer": 6, "auto": true},
|
||||||
{"name": "", "text": "So I decided to look for the source.", "upside_down": true}
|
{"name": "Herbert", "text": "So I decided to look for the source.", "upside_down": true, "timer": 6, "auto": true}
|
||||||
]
|
]
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{"animation": "fadein", "timer": 2, "auto": true},
|
{"timer": 2, "auto": true},
|
||||||
|
|
||||||
{"name": "Ely", "text": "What a shame...", "expression": "sad"},
|
{"name": "Ely", "text": "What a shame..."},
|
||||||
{"name": "Ely", "text": "I don't like being alone.", "expression": "sad"},
|
{"name": "Ely", "text": "I don't like being alone."},
|
||||||
{"name": "Ely", "text": "I just want to go home!", "expression": "sad"},
|
{"name": "Ely", "text": "I just want to go home!"},
|
||||||
{"name": "Ely", "text": "Hopefully someone will come by and rescue me...", "expression": "sad"},
|
{"name": "Ely", "text": "Hopefully someone will come by and rescue me..."},
|
||||||
|
|
||||||
{"timer": 2, "auto": true},
|
{"timer": 2, "auto": true},
|
||||||
|
|
||||||
@ -18,16 +18,16 @@
|
|||||||
|
|
||||||
{"name": "Crab", "text": "Hey you!", "audio": "herbert_is_happy"},
|
{"name": "Crab", "text": "Hey you!", "audio": "herbert_is_happy"},
|
||||||
{"name": "Crab", "text": "You ok buddy?"},
|
{"name": "Crab", "text": "You ok buddy?"},
|
||||||
{"name": "Ely", "text": "I must be going crazy.", "expression": "gasp"},
|
{"name": "Ely", "text": "I must be going crazy."},
|
||||||
{"name": "Crab", "text": "You don't look [i]that[/i] crazy to me."},
|
{"name": "Crab", "text": "You don't look [i]that[/i] crazy to me."},
|
||||||
{"name": "Ely", "text": "You're a crab."},
|
{"name": "Ely", "text": "You're a crab."},
|
||||||
{"name": "Crab", "text": "Yes."},
|
{"name": "Crab", "text": "Yes."},
|
||||||
{"name": "Ely", "text": "You speak."},
|
{"name": "Ely", "text": "You speak."},
|
||||||
{"name": "Crab", "text": "Of course I do you muffinhead."},
|
{"name": "Crab", "text": "Of course I do you muffinhead."},
|
||||||
{"name": "Ely", "text": "Cuuuuute!", "expression": "cute"},
|
{"name": "Ely", "text": "Cuuuuute!", "expression": "blush"},
|
||||||
{"name": "Ely", "text": "...", "expression": "smile"},
|
{"name": "Ely", "text": "..."},
|
||||||
{"name": "Ely", "text": "So... You're a cute talking crab.", "expression": "smile"},
|
{"name": "Ely", "text": "So... You're a cute talking crab."},
|
||||||
{"name": "Crab", "text": "", "expression": "cute"},
|
{"name": "Crab", "text": "", "expression": "blush"},
|
||||||
{"name": "Ely", "text": "Do you have a name? [code](by any chance...)[/code]"},
|
{"name": "Ely", "text": "Do you have a name? [code](by any chance...)[/code]"},
|
||||||
{"name": "Crab", "text": "The name's Herbert."},
|
{"name": "Crab", "text": "The name's Herbert."},
|
||||||
{"name": "Herbert", "text": "I am a [wave amp=20 freq=2]Pachygrapsus Marmoratus[/wave] as you [i]hoomans[/i] like to call us."},
|
{"name": "Herbert", "text": "I am a [wave amp=20 freq=2]Pachygrapsus Marmoratus[/wave] as you [i]hoomans[/i] like to call us."},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{"animation": "fadein", "timer": 2, "auto": true},
|
{"animation": "fadein", "timer": 2, "auto": true},
|
||||||
{"name": "", "text": "Finally I found the source.", "upside_down": true},
|
{"name": "Herbert", "text": "Finally I found the source.", "timer": 4, "auto": true, "upside_down": true},
|
||||||
{"name": "", "text": "It was a recently sunk oil tanker.", "upside_down": true},
|
{"name": "Herbert", "text": "It was a recently sunk oil tanker.", "timer": 4, "auto": true, "upside_down": true},
|
||||||
{"name": "", "text": "I had to investigate further.", "upside_down": true}
|
{"name": "Herbert", "text": "I had to investigate further.", "timer": 4, "auto": true, "upside_down": true}
|
||||||
]
|
]
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
[
|
[
|
||||||
{"name": "", "text": "The closer I got, the more oil there was.", "upside_down": true}
|
{"name": "Herbert", "text": "The closer I got, the more oil there was.", "timer": 6, "auto": true, "upside_down": true}
|
||||||
]
|
]
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
[
|
[
|
||||||
{"name": "", "text": "The inside was full of oil, I was really close.", "upside_down": true}
|
{"name": "Herbert", "text": "The inside was full of oil, I was really close.", "upside_down": true, "timer": 6, "auto": true}
|
||||||
]
|
]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[
|
[
|
||||||
{"name": "", "text": "And there it was, one of the tank was damaged.", "upside_down": true},
|
{"name": "Herbert", "text": "And there it was, one of the tank was damaged.", "upside_down": true},
|
||||||
{"name": "", "text": "I'm just a crab, I couldn't do anything about it.", "upside_down": true, "animation": "fadeout", "timer": 2}
|
{"name": "Herbert", "text": "I'm just a crab, I couldn't do anything about it.", "upside_down": true, "animation": "fadeout", "timer": 2}
|
||||||
]
|
]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[
|
[
|
||||||
{"name": "", "text": "Back at my home, there was goo everywhere.", "expression": "black"},
|
{"name": "Herbert", "text": "Back at my home, there was goo everywhere.", "expression": "black"},
|
||||||
{"animation": "fadein", "timer": 2, "auto": true},
|
{"animation": "fadein", "timer": 2, "auto": true},
|
||||||
{"name": "", "text": "My friends and I were forced to move..."}
|
{"name": "Herbert", "text": "My friends and I were forced to move..."}
|
||||||
]
|
]
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
[gd_resource type="DynamicFont" load_steps=2 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://fonts/EnterCommand-Bold.ttf" type="DynamicFontData" id=1]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
size = 32
|
|
||||||
outline_color = Color( 0, 0, 0, 1 )
|
|
||||||
extra_spacing_bottom = -6
|
|
||||||
font_data = ExtResource( 1 )
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 1.7 KiB |
@ -1,34 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/ParralaxPoutre3.png-b5d3bc235ed07e42bde584c21cebcf92.stex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://images/game1/ParralaxPoutre3.png"
|
|
||||||
dest_files=[ "res://.import/ParralaxPoutre3.png-b5d3bc235ed07e42bde584c21cebcf92.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=true
|
|
||||||
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
|
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
BIN
images/icon.ico
BIN
images/icon.ico
Binary file not shown.
Before Width: | Height: | Size: 894 B |
BIN
images/icon.png
BIN
images/icon.png
Binary file not shown.
Before Width: | Height: | Size: 164 B After Width: | Height: | Size: 3.2 KiB |
@ -8,7 +8,7 @@
|
|||||||
[node name="root" type="Node2D"]
|
[node name="root" type="Node2D"]
|
||||||
|
|
||||||
[node name="CampfireBackground" parent="." instance=ExtResource( 2 )]
|
[node name="CampfireBackground" parent="." instance=ExtResource( 2 )]
|
||||||
frame = 2
|
frame = 14
|
||||||
|
|
||||||
[node name="Herbert" parent="." instance=ExtResource( 1 )]
|
[node name="Herbert" parent="." instance=ExtResource( 1 )]
|
||||||
visible = false
|
visible = false
|
||||||
|
@ -12,12 +12,11 @@ centered = false
|
|||||||
|
|
||||||
[node name="FireCrackles" type="AudioStreamPlayer" parent="."]
|
[node name="FireCrackles" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource( 3 )
|
stream = ExtResource( 3 )
|
||||||
volume_db = -6.0
|
|
||||||
autoplay = true
|
autoplay = true
|
||||||
|
|
||||||
[node name="Ely" type="AnimatedSprite" parent="."]
|
[node name="Ely" type="AnimatedSprite" parent="."]
|
||||||
frames = ExtResource( 2 )
|
frames = ExtResource( 2 )
|
||||||
animation = "idle"
|
animation = "idle"
|
||||||
frame = 53
|
frame = 74
|
||||||
playing = true
|
playing = true
|
||||||
centered = false
|
centered = false
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scripts/campfire2.gd" type="Script" id=1]
|
[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/Herbert.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://scenes/campfire/CampfireBackground.tscn" type="PackedScene" id=3]
|
[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://scenes/dialogue.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://images/campfire/thechoice.tres" type="SpriteFrames" id=5]
|
[ext_resource path="res://images/campfire/thechoice.tres" type="SpriteFrames" id=5]
|
||||||
[ext_resource path="res://fonts/dialog_default_font_bold.tres" type="DynamicFont" id=6]
|
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Node2D" type="Node2D"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
@ -33,26 +32,3 @@ visible = false
|
|||||||
frames = ExtResource( 5 )
|
frames = ExtResource( 5 )
|
||||||
animation = "lie"
|
animation = "lie"
|
||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
[node name="Lie" type="Label" parent="TheChoice"]
|
|
||||||
margin_left = 127.633
|
|
||||||
margin_top = 75.0
|
|
||||||
margin_right = 167.633
|
|
||||||
margin_bottom = 97.0
|
|
||||||
custom_fonts/font = ExtResource( 6 )
|
|
||||||
text = "Lie"
|
|
||||||
align = 1
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Tell the truth" type="Label" parent="TheChoice"]
|
|
||||||
margin_top = 3.71011
|
|
||||||
margin_right = 84.0
|
|
||||||
margin_bottom = 25.7101
|
|
||||||
custom_fonts/font = ExtResource( 6 )
|
|
||||||
text = "Truth"
|
|
||||||
align = 1
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://images/Credits.png" type="Texture" id=1]
|
[ext_resource path="res://images/Credits.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://scripts/credits.gd" type="Script" id=2]
|
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Node2D" type="Node2D"]
|
||||||
script = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="Sprite" type="Sprite" parent="."]
|
[node name="Sprite" type="Sprite" parent="."]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=16 format=2]
|
[gd_scene load_steps=14 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://images/ui/dialogue_bg.png" type="Texture" id=1]
|
[ext_resource path="res://images/ui/dialogue_bg.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://fonts/dialog_default_font.tres" type="DynamicFont" id=2]
|
[ext_resource path="res://fonts/dialog_default_font.tres" type="DynamicFont" id=2]
|
||||||
@ -8,8 +8,6 @@
|
|||||||
[ext_resource path="res://BlackScreen.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://BlackScreen.tscn" type="PackedScene" id=6]
|
||||||
[ext_resource path="res://scripts/BlackScreen.gd" type="Script" id=7]
|
[ext_resource path="res://scripts/BlackScreen.gd" type="Script" id=7]
|
||||||
[ext_resource path="res://scripts/ControlIndicator.gd" type="Script" id=8]
|
[ext_resource path="res://scripts/ControlIndicator.gd" type="Script" id=8]
|
||||||
[ext_resource path="res://sounds/gibberish.wav" type="AudioStream" id=9]
|
|
||||||
[ext_resource path="res://sounds/gibberish2.wav" type="AudioStream" id=10]
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeColorConstant" id=1]
|
[sub_resource type="VisualShaderNodeColorConstant" id=1]
|
||||||
constant = Color( 0, 0, 0, 0.803922 )
|
constant = Color( 0, 0, 0, 0.803922 )
|
||||||
@ -214,9 +212,3 @@ fit_content_height = true
|
|||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="GibberishPlayer1" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="GibberishPlayer2" type="AudioStreamPlayer" parent="."]
|
|
||||||
stream = ExtResource( 10 )
|
|
||||||
|
@ -34,7 +34,7 @@ extents = Vector2( 13.4499, 41.9587 )
|
|||||||
[sub_resource type="RectangleShape2D" id=4]
|
[sub_resource type="RectangleShape2D" id=4]
|
||||||
extents = Vector2( 6.44203, 23.0973 )
|
extents = Vector2( 6.44203, 23.0973 )
|
||||||
|
|
||||||
[sub_resource type="Shader" id=5]
|
[sub_resource type="Shader" id=14]
|
||||||
code = "shader_type canvas_item;
|
code = "shader_type canvas_item;
|
||||||
uniform sampler2D tex_frg_3;
|
uniform sampler2D tex_frg_3;
|
||||||
uniform sampler2D tex_frg_7;
|
uniform sampler2D tex_frg_7;
|
||||||
@ -100,8 +100,8 @@ void light() {
|
|||||||
"
|
"
|
||||||
custom_defines = ""
|
custom_defines = ""
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=6]
|
[sub_resource type="ShaderMaterial" id=13]
|
||||||
shader = SubResource( 5 )
|
shader = SubResource( 14 )
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Node2D" type="Node2D"]
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
@ -109,10 +109,6 @@ dialogue = "res://dialogues/game1.json"
|
|||||||
|
|
||||||
[node name="Game" type="Node2D" parent="."]
|
[node name="Game" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="GameControlIndicator" type="AnimatedSprite" parent="."]
|
|
||||||
position = Vector2( 96, 70 )
|
|
||||||
script = ExtResource( 8 )
|
|
||||||
|
|
||||||
[node name="Opening2" type="Node2D" parent="."]
|
[node name="Opening2" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Opening2Bg" type="AnimatedSprite" parent="Opening2"]
|
[node name="Opening2Bg" type="AnimatedSprite" parent="Opening2"]
|
||||||
@ -207,7 +203,7 @@ frames = ExtResource( 12 )
|
|||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
[node name="OpeningOver" type="AnimatedSprite" parent="Opening1"]
|
[node name="OpeningOver" type="AnimatedSprite" parent="Opening1"]
|
||||||
material = SubResource( 6 )
|
material = SubResource( 13 )
|
||||||
frames = ExtResource( 1 )
|
frames = ExtResource( 1 )
|
||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=2]
|
[gd_scene load_steps=10 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://scripts/menu/title_background.gd" type="Script" id=1]
|
[ext_resource path="res://scripts/menu/title_background.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://fonts/dialog_default_font.tres" type="DynamicFont" id=2]
|
[ext_resource path="res://fonts/dialog_default_font.tres" type="DynamicFont" id=2]
|
||||||
@ -7,14 +7,12 @@
|
|||||||
[ext_resource path="res://scripts/menu/MainMenu.gd" type="Script" id=5]
|
[ext_resource path="res://scripts/menu/MainMenu.gd" type="Script" id=5]
|
||||||
[ext_resource path="res://images/main_menu/title_background_campfire.tres" type="SpriteFrames" id=6]
|
[ext_resource path="res://images/main_menu/title_background_campfire.tres" type="SpriteFrames" id=6]
|
||||||
[ext_resource path="res://images/main_menu/titleWithoutEly_loop.tres" type="SpriteFrames" id=7]
|
[ext_resource path="res://images/main_menu/titleWithoutEly_loop.tres" type="SpriteFrames" id=7]
|
||||||
[ext_resource path="res://scripts/main_menu.gd" type="Script" id=9]
|
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=1]
|
[sub_resource type="StyleBoxEmpty" id=1]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=2]
|
[sub_resource type="StyleBoxEmpty" id=2]
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Node2D" type="Node2D"]
|
||||||
script = ExtResource( 9 )
|
|
||||||
|
|
||||||
[node name="background" type="AnimatedSprite" parent="."]
|
[node name="background" type="AnimatedSprite" parent="."]
|
||||||
frames = ExtResource( 7 )
|
frames = ExtResource( 7 )
|
||||||
@ -38,27 +36,29 @@ script = ExtResource( 1 )
|
|||||||
start_delay = 4.0
|
start_delay = 4.0
|
||||||
|
|
||||||
[node name="UI" type="Control" parent="."]
|
[node name="UI" type="Control" parent="."]
|
||||||
margin_right = 192.0
|
margin_right = 40.0
|
||||||
margin_bottom = 108.0
|
margin_bottom = 40.0
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Buttons" type="VBoxContainer" parent="UI"]
|
[node name="Buttons" type="Control" parent="UI"]
|
||||||
margin_left = 74.0
|
margin_right = 40.0
|
||||||
margin_top = 19.0
|
margin_bottom = 40.0
|
||||||
margin_right = 192.0
|
|
||||||
margin_bottom = 74.0
|
|
||||||
alignment = 2
|
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="PlayButton" type="Button" parent="UI/Buttons"]
|
[node name="PlayButton" type="Button" parent="UI/Buttons"]
|
||||||
margin_top = 23.0
|
anchor_left = 3.875
|
||||||
margin_right = 118.0
|
anchor_top = 1.35
|
||||||
margin_bottom = 37.0
|
anchor_right = 3.875
|
||||||
|
anchor_bottom = 1.35
|
||||||
|
margin_left = -13.3871
|
||||||
|
margin_top = -17.551
|
||||||
|
margin_right = 30.6129
|
||||||
|
margin_bottom = 2.449
|
||||||
custom_styles/focus = SubResource( 1 )
|
custom_styles/focus = SubResource( 1 )
|
||||||
custom_fonts/font = ExtResource( 2 )
|
custom_fonts/font = ExtResource( 2 )
|
||||||
custom_colors/font_color = Color( 0.282353, 0.282353, 0.282353, 1 )
|
custom_colors/font_color = Color( 0.282353, 0.282353, 0.282353, 1 )
|
||||||
@ -72,9 +72,14 @@ __meta__ = {
|
|||||||
scene_to_load = "res://scenes/campfire.tscn"
|
scene_to_load = "res://scenes/campfire.tscn"
|
||||||
|
|
||||||
[node name="QuitButton" type="Button" parent="UI/Buttons"]
|
[node name="QuitButton" type="Button" parent="UI/Buttons"]
|
||||||
margin_top = 41.0
|
anchor_left = 3.875
|
||||||
margin_right = 118.0
|
anchor_top = 1.35
|
||||||
margin_bottom = 55.0
|
anchor_right = 3.875
|
||||||
|
anchor_bottom = 1.35
|
||||||
|
margin_left = -13.3871
|
||||||
|
margin_top = 2.449
|
||||||
|
margin_right = 30.6129
|
||||||
|
margin_bottom = 22.449
|
||||||
custom_styles/focus = SubResource( 2 )
|
custom_styles/focus = SubResource( 2 )
|
||||||
custom_fonts/font = ExtResource( 2 )
|
custom_fonts/font = ExtResource( 2 )
|
||||||
custom_colors/font_color = Color( 0.282353, 0.282353, 0.282353, 1 )
|
custom_colors/font_color = Color( 0.282353, 0.282353, 0.282353, 1 )
|
||||||
@ -85,22 +90,5 @@ script = ExtResource( 3 )
|
|||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="AnotherChoiceButton" type="Button" parent="UI/Buttons"]
|
|
||||||
visible = false
|
|
||||||
margin_top = 41.0
|
|
||||||
margin_right = 118.0
|
|
||||||
margin_bottom = 55.0
|
|
||||||
custom_styles/focus = SubResource( 2 )
|
|
||||||
custom_fonts/font = ExtResource( 2 )
|
|
||||||
custom_colors/font_color = Color( 0.282353, 0.282353, 0.282353, 1 )
|
|
||||||
custom_colors/font_color_hover = Color( 1, 1, 1, 1 )
|
|
||||||
text = "Make another choice"
|
|
||||||
flat = true
|
|
||||||
script = ExtResource( 3 )
|
|
||||||
__meta__ = {
|
|
||||||
"_editor_description_": ""
|
|
||||||
}
|
|
||||||
scene_to_load = "res://scenes/campfire2.tscn"
|
|
||||||
[connection signal="animation_finished" from="ely" to="ely" method="_on_background_animation_finished"]
|
[connection signal="animation_finished" from="ely" to="ely" method="_on_background_animation_finished"]
|
||||||
[connection signal="animation_finished" from="fire" to="fire" method="_on_background_animation_finished"]
|
[connection signal="animation_finished" from="fire" to="fire" method="_on_background_animation_finished"]
|
||||||
|
@ -25,52 +25,52 @@
|
|||||||
[ext_resource path="res://images/oil_tanker/OilTankerLeak_Midground_GooMask.png" type="Texture" id=23]
|
[ext_resource path="res://images/oil_tanker/OilTankerLeak_Midground_GooMask.png" type="Texture" id=23]
|
||||||
[ext_resource path="res://images/oil_tanker/OilTankerCrabnimation.tres" type="SpriteFrames" id=24]
|
[ext_resource path="res://images/oil_tanker/OilTankerCrabnimation.tres" type="SpriteFrames" id=24]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=6]
|
||||||
extents = Vector2( 10, 34.563 )
|
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=5]
|
|
||||||
extents = Vector2( 175.74, 9.07445 )
|
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id=6]
|
|
||||||
radius = 31.4057
|
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=7]
|
[sub_resource type="RectangleShape2D" id=7]
|
||||||
extents = Vector2( 10, 22.4756 )
|
extents = Vector2( 10, 34.563 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=8]
|
[sub_resource type="RectangleShape2D" id=8]
|
||||||
extents = Vector2( 10, 27.9493 )
|
extents = Vector2( 276.861, 9.9101 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=9]
|
[sub_resource type="RectangleShape2D" id=9]
|
||||||
extents = Vector2( 10, 27.9493 )
|
extents = Vector2( 276.861, 9.9101 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=10]
|
[sub_resource type="RectangleShape2D" id=10]
|
||||||
|
extents = Vector2( 175.74, 9.07445 )
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id=11]
|
||||||
|
radius = 31.4057
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=20]
|
||||||
|
extents = Vector2( 10, 22.4756 )
|
||||||
|
|
||||||
|
[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 )
|
extents = Vector2( 20.5315, 7.16187 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=11]
|
[sub_resource type="RectangleShape2D" id=15]
|
||||||
extents = Vector2( 85.2849, 7.16187 )
|
extents = Vector2( 85.2849, 7.16187 )
|
||||||
|
|
||||||
[sub_resource type="SegmentShape2D" id=12]
|
[sub_resource type="SegmentShape2D" id=16]
|
||||||
b = Vector2( 70.2283, 33.9024 )
|
b = Vector2( 70.2283, 33.9024 )
|
||||||
|
|
||||||
[sub_resource type="SegmentShape2D" id=13]
|
[sub_resource type="SegmentShape2D" id=17]
|
||||||
b = Vector2( 122.205, -7.65517 )
|
b = Vector2( 122.205, -7.65517 )
|
||||||
|
|
||||||
[sub_resource type="SegmentShape2D" id=14]
|
[sub_resource type="SegmentShape2D" id=18]
|
||||||
b = Vector2( 107.673, 44.0238 )
|
b = Vector2( 107.673, 44.0238 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=15]
|
[sub_resource type="RectangleShape2D" id=19]
|
||||||
extents = Vector2( 4.85875, 16.0913 )
|
extents = Vector2( 4.85875, 16.0913 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=16]
|
[sub_resource type="RectangleShape2D" id=21]
|
||||||
extents = Vector2( 4.85875, 16.0913 )
|
extents = Vector2( 4.85875, 16.0913 )
|
||||||
|
|
||||||
[node name="Node2D" type="Node2D"]
|
[node name="Node2D" type="Node2D"]
|
||||||
@ -127,7 +127,7 @@ collision_mask = 4
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall"]
|
||||||
position = Vector2( -23.7448, 88.1799 )
|
position = Vector2( -23.7448, 88.1799 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 6 )
|
||||||
|
|
||||||
[node name="Wall4" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
[node name="Wall4" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
||||||
collision_layer = 2147483652
|
collision_layer = 2147483652
|
||||||
@ -138,7 +138,7 @@ __meta__ = {
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall4"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall4"]
|
||||||
position = Vector2( 520.202, 91.1098 )
|
position = Vector2( 520.202, 91.1098 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 7 )
|
||||||
|
|
||||||
[node name="Wall2" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
[node name="Wall2" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
||||||
collision_layer = 2147483652
|
collision_layer = 2147483652
|
||||||
@ -149,7 +149,7 @@ __meta__ = {
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall2"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall2"]
|
||||||
position = Vector2( 249.14, 122.296 )
|
position = Vector2( 249.14, 122.296 )
|
||||||
shape = SubResource( 3 )
|
shape = SubResource( 8 )
|
||||||
|
|
||||||
[node name="Wall3" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
[node name="Wall3" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
||||||
collision_layer = 2147483652
|
collision_layer = 2147483652
|
||||||
@ -160,7 +160,7 @@ __meta__ = {
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall3"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall3"]
|
||||||
position = Vector2( 244.468, 58.9552 )
|
position = Vector2( 244.468, 58.9552 )
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 9 )
|
||||||
|
|
||||||
[node name="Wall5" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
[node name="Wall5" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
||||||
collision_layer = 2147483652
|
collision_layer = 2147483652
|
||||||
@ -172,7 +172,7 @@ __meta__ = {
|
|||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall5"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall5"]
|
||||||
position = Vector2( 342.076, 75.064 )
|
position = Vector2( 342.076, 75.064 )
|
||||||
rotation = 0.0123712
|
rotation = 0.0123712
|
||||||
shape = SubResource( 5 )
|
shape = SubResource( 10 )
|
||||||
|
|
||||||
[node name="Wall6" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
[node name="Wall6" type="StaticBody2D" parent="InsideOilTanker2/walls"]
|
||||||
collision_layer = 2147483652
|
collision_layer = 2147483652
|
||||||
@ -184,7 +184,7 @@ __meta__ = {
|
|||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall6"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/walls/Wall6"]
|
||||||
position = Vector2( 168.01, 51.7275 )
|
position = Vector2( 168.01, 51.7275 )
|
||||||
rotation = 0.0123712
|
rotation = 0.0123712
|
||||||
shape = SubResource( 6 )
|
shape = SubResource( 11 )
|
||||||
|
|
||||||
[node name="NextTrigger" type="Area2D" parent="InsideOilTanker2"]
|
[node name="NextTrigger" type="Area2D" parent="InsideOilTanker2"]
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
@ -192,7 +192,7 @@ collision_mask = 4
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/NextTrigger"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker2/NextTrigger"]
|
||||||
position = Vector2( 330.844, 100.227 )
|
position = Vector2( 330.844, 100.227 )
|
||||||
shape = SubResource( 7 )
|
shape = SubResource( 20 )
|
||||||
|
|
||||||
[node name="InsideOilTanker" type="AnimatedSprite" parent="."]
|
[node name="InsideOilTanker" type="AnimatedSprite" parent="."]
|
||||||
frames = ExtResource( 3 )
|
frames = ExtResource( 3 )
|
||||||
@ -219,55 +219,55 @@ centered = false
|
|||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall"]
|
||||||
position = Vector2( 208.261, 91.1098 )
|
position = Vector2( 208.261, 91.1098 )
|
||||||
shape = SubResource( 8 )
|
shape = SubResource( 12 )
|
||||||
|
|
||||||
[node name="Wall2" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
[node name="Wall2" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall2"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall2"]
|
||||||
position = Vector2( -23.7448, 81.6604 )
|
position = Vector2( -23.7448, 81.6604 )
|
||||||
shape = SubResource( 9 )
|
shape = SubResource( 13 )
|
||||||
|
|
||||||
[node name="Wall5" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
[node name="Wall5" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall5"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall5"]
|
||||||
position = Vector2( 6.44882, 51.7275 )
|
position = Vector2( 6.44882, 51.7275 )
|
||||||
shape = SubResource( 10 )
|
shape = SubResource( 14 )
|
||||||
|
|
||||||
[node name="Wall6" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
[node name="Wall6" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall6"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall6"]
|
||||||
position = Vector2( 127.185, 119.399 )
|
position = Vector2( 127.185, 119.399 )
|
||||||
shape = SubResource( 11 )
|
shape = SubResource( 15 )
|
||||||
|
|
||||||
[node name="Wall7" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
[node name="Wall7" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall7"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall7"]
|
||||||
position = Vector2( 10.2871, 55.1923 )
|
position = Vector2( 10.2871, 55.1923 )
|
||||||
shape = SubResource( 12 )
|
shape = SubResource( 16 )
|
||||||
|
|
||||||
[node name="Wall9" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
[node name="Wall9" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall9"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall9"]
|
||||||
position = Vector2( 79.5423, 88.1799 )
|
position = Vector2( 79.5423, 88.1799 )
|
||||||
shape = SubResource( 13 )
|
shape = SubResource( 17 )
|
||||||
|
|
||||||
[node name="Wall10" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
[node name="Wall10" type="StaticBody2D" parent="InsideOilTanker/walls"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall10"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/walls/Wall10"]
|
||||||
position = Vector2( -15.3507, 75.064 )
|
position = Vector2( -15.3507, 75.064 )
|
||||||
shape = SubResource( 14 )
|
shape = SubResource( 18 )
|
||||||
|
|
||||||
[node name="NextTrigger" type="Area2D" parent="InsideOilTanker"]
|
[node name="NextTrigger" type="Area2D" parent="InsideOilTanker"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/NextTrigger"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/NextTrigger"]
|
||||||
position = Vector2( 197.689, 97.7763 )
|
position = Vector2( 197.689, 97.7763 )
|
||||||
shape = SubResource( 15 )
|
shape = SubResource( 19 )
|
||||||
|
|
||||||
[node name="DialogueTrigger" type="Area2D" parent="InsideOilTanker"]
|
[node name="DialogueTrigger" type="Area2D" parent="InsideOilTanker"]
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/DialogueTrigger"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="InsideOilTanker/DialogueTrigger"]
|
||||||
position = Vector2( 84.0628, 97.7763 )
|
position = Vector2( 84.0628, 97.7763 )
|
||||||
shape = SubResource( 16 )
|
shape = SubResource( 21 )
|
||||||
|
|
||||||
[node name="OilTanker" type="AnimatedSprite" parent="."]
|
[node name="OilTanker" type="AnimatedSprite" parent="."]
|
||||||
frames = ExtResource( 2 )
|
frames = ExtResource( 2 )
|
||||||
|
@ -11,7 +11,7 @@ const press_right = preload("res://images/Controls/PressRight.tres")
|
|||||||
var last_is_joy = false
|
var last_is_joy = false
|
||||||
|
|
||||||
func show_press(action : String):
|
func show_press(action : String):
|
||||||
if action == 'ui_accept' || action == 'interact':
|
if action == 'ui_accept':
|
||||||
frames = press_a if last_is_joy else press_space
|
frames = press_a if last_is_joy else press_space
|
||||||
if action == 'right':
|
if action == 'right':
|
||||||
frames = press_right
|
frames = press_right
|
||||||
@ -24,7 +24,7 @@ func show_press(action : String):
|
|||||||
play('default')
|
play('default')
|
||||||
show()
|
show()
|
||||||
|
|
||||||
func _input(_event):
|
func _input(event):
|
||||||
last_is_joy = false
|
last_is_joy = false
|
||||||
for b in [
|
for b in [
|
||||||
JOY_XBOX_A,
|
JOY_XBOX_A,
|
||||||
|
@ -16,7 +16,7 @@ func start() -> void:
|
|||||||
|
|
||||||
func load_dialogue(file_path) -> Array:
|
func load_dialogue(file_path) -> Array:
|
||||||
var file = File.new()
|
var file = File.new()
|
||||||
# assert (file.file_exists(file_path))
|
assert (file.file_exists(file_path))
|
||||||
|
|
||||||
file.open(file_path, file.READ)
|
file.open(file_path, file.READ)
|
||||||
var dialogue = parse_json(file.get_as_text())
|
var dialogue = parse_json(file.get_as_text())
|
||||||
|
@ -10,8 +10,8 @@ onready var name_label = get_node(name_label_path) as RichTextLabel
|
|||||||
export (NodePath) var text_label_path
|
export (NodePath) var text_label_path
|
||||||
onready var text_label = get_node(text_label_path) as RichTextLabel
|
onready var text_label = get_node(text_label_path) as RichTextLabel
|
||||||
|
|
||||||
#export (NodePath) var expression_node_path
|
export (NodePath) var expression_node_path
|
||||||
#onready var expression_node = get_node(expression_node_path) as RichTextLabel
|
onready var expression_node = get_node(expression_node_path) as RichTextLabel
|
||||||
|
|
||||||
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
||||||
|
|
||||||
@ -36,11 +36,11 @@ func _ready():
|
|||||||
$MarginContainer.hide()
|
$MarginContainer.hide()
|
||||||
|
|
||||||
func start_dialogue(dialog_path : String) -> DialogueAction:
|
func start_dialogue(dialog_path : String) -> DialogueAction:
|
||||||
var action = DialogueAction.new()
|
var dialogue = DialogueAction.new()
|
||||||
action.dialogue_file_path = dialog_path
|
dialogue.dialogue_file_path = dialog_path
|
||||||
action.dialogue_box = self
|
dialogue.dialogue_box = self
|
||||||
action.start()
|
dialogue.start()
|
||||||
return action
|
return dialogue
|
||||||
|
|
||||||
func start(_dialogue : Array):
|
func start(_dialogue : Array):
|
||||||
dialogue = _dialogue
|
dialogue = _dialogue
|
||||||
@ -96,14 +96,11 @@ func update() -> void:
|
|||||||
$MarginContainer/VBoxContainer.alignment = BoxContainer.ALIGN_END
|
$MarginContainer/VBoxContainer.alignment = BoxContainer.ALIGN_END
|
||||||
$MarginContainer/VBoxContainer.add_child_below_node($MarginContainer/VBoxContainer/NameContainer, $MarginContainer/VBoxContainer/TextContainer)
|
$MarginContainer/VBoxContainer.add_child_below_node($MarginContainer/VBoxContainer/NameContainer, $MarginContainer/VBoxContainer/TextContainer)
|
||||||
|
|
||||||
if text != '':
|
if text != '' and character_name != '':
|
||||||
name_label.bbcode_text = 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
|
name_label.rect_min_size.x = name_label.get_font('normal_font').get_string_size(name_label.text).x
|
||||||
text_label.bbcode_text = text
|
text_label.bbcode_text = text
|
||||||
|
|
||||||
if character_name == '': $MarginContainer/VBoxContainer/NameContainer.hide()
|
|
||||||
else: $MarginContainer/VBoxContainer/NameContainer.show()
|
|
||||||
|
|
||||||
if text == "": $MarginContainer.hide()
|
if text == "": $MarginContainer.hide()
|
||||||
else: $MarginContainer.show()
|
else: $MarginContainer.show()
|
||||||
|
|
||||||
@ -113,11 +110,8 @@ func update() -> void:
|
|||||||
var animation = line.get('animation', null)
|
var animation = line.get('animation', null)
|
||||||
if animation != null:
|
if animation != null:
|
||||||
print('animate!' + animation)
|
print('animate!' + animation)
|
||||||
if animation == 'fadein':
|
|
||||||
black_screen.modulate.a = 1
|
|
||||||
black_screen.animate(animation, timer)
|
black_screen.animate(animation, timer)
|
||||||
elif expression == 'black':
|
elif expression == 'black':
|
||||||
black_screen.modulate.a = 1
|
|
||||||
black_screen.animate('black', 0)
|
black_screen.animate('black', 0)
|
||||||
else:
|
else:
|
||||||
black_screen.animate(null, timer)
|
black_screen.animate(null, timer)
|
||||||
@ -136,15 +130,7 @@ func animate_text():
|
|||||||
if text_label.text[text_label.visible_characters] == ' ':
|
if text_label.text[text_label.visible_characters] == ' ':
|
||||||
text_label.visible_characters += 1
|
text_label.visible_characters += 1
|
||||||
text_label.visible_characters += 1
|
text_label.visible_characters += 1
|
||||||
|
yield(get_tree().create_timer(0.4 if text_label.text[text_label.visible_characters - 1] == '.' else 0.05), 'timeout')
|
||||||
var c = text_label.text[text_label.visible_characters - 1]
|
|
||||||
|
|
||||||
if $MarginContainer.visible:
|
|
||||||
if "abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀàéÉçÇÈèùÙ.".rfind(c) >= 0:
|
|
||||||
if character_name == 'Ely': $GibberishPlayer2.play()
|
|
||||||
else: $GibberishPlayer1.play()
|
|
||||||
|
|
||||||
yield(get_tree().create_timer(0.4 if c == '.' else 0.05), 'timeout')
|
|
||||||
if !Globals.ui_accept_tip:
|
if !Globals.ui_accept_tip:
|
||||||
control_indicator.show_press('ui_accept')
|
control_indicator.show_press('ui_accept')
|
||||||
Globals.ui_accept_tip = true
|
Globals.ui_accept_tip = true
|
||||||
|
@ -1,22 +1,3 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
var ui_accept_tip = false
|
var ui_accept_tip = false
|
||||||
var ui_interact_flatfish_tip = false
|
|
||||||
var did_already_play_once = false
|
|
||||||
|
|
||||||
func save_game():
|
|
||||||
var file = File.new()
|
|
||||||
file.open('user://globals.save', File.WRITE)
|
|
||||||
file.store_line('1' if did_already_play_once else '0')
|
|
||||||
file.close()
|
|
||||||
print('saved')
|
|
||||||
|
|
||||||
func load_game():
|
|
||||||
var file = File.new()
|
|
||||||
if not file.file_exists("user://savegame.save"):
|
|
||||||
return
|
|
||||||
|
|
||||||
file.open('user://globals.save', File.READ)
|
|
||||||
var d = file.get_line()
|
|
||||||
did_already_play_once = true if d == '1' else false
|
|
||||||
print('loaded')
|
|
||||||
|
@ -9,9 +9,9 @@ var previous_tracks : Array
|
|||||||
func play(music, offset=0, duration=1):
|
func play(music, offset=0, duration=1):
|
||||||
print('Play music: ' + music)
|
print('Play music: ' + music)
|
||||||
var path = "res://sounds/" + music + ".ogg"
|
var path = "res://sounds/" + music + ".ogg"
|
||||||
# if !File.new().file_exists(path):
|
if !File.new().file_exists(path):
|
||||||
# path = "res://sounds/" + music
|
path = "res://sounds/" + music
|
||||||
# assert(File.new().file_exists(path))
|
assert(File.new().file_exists(path))
|
||||||
var stream = load(path)
|
var stream = load(path)
|
||||||
|
|
||||||
target_track = get_free_track()
|
target_track = get_free_track()
|
||||||
@ -46,7 +46,7 @@ func get_free_track() -> AudioStreamPlayer:
|
|||||||
free_track = track
|
free_track = track
|
||||||
if free_track == null:
|
if free_track == null:
|
||||||
free_track = AudioStreamPlayer.new()
|
free_track = AudioStreamPlayer.new()
|
||||||
free_track.volume_db = -8
|
print('yo')
|
||||||
add_child(free_track)
|
add_child(free_track)
|
||||||
print(free_track)
|
print(free_track)
|
||||||
return free_track
|
return free_track
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
onready var ely = $CampfireBackground/Ely
|
onready var ely = $CampfireBackground
|
||||||
onready var herbert = $Herbert
|
onready var herbert = $Herbert
|
||||||
onready var dialogue_box = $UI/Dialogue
|
onready var dialogue_box = $UI/Dialogue
|
||||||
onready var the_choice = $TheChoice
|
onready var the_choice = $TheChoice
|
||||||
@ -9,8 +9,6 @@ export (String, FILE, '*.json') var end_1_dialogue
|
|||||||
export (String, FILE, '*.json') var end_truth_dialogue
|
export (String, FILE, '*.json') var end_truth_dialogue
|
||||||
export (String, FILE, '*.json') var end_lie_dialogue
|
export (String, FILE, '*.json') var end_lie_dialogue
|
||||||
|
|
||||||
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
assert(end_1_dialogue != null)
|
assert(end_1_dialogue != null)
|
||||||
assert(end_truth_dialogue != null)
|
assert(end_truth_dialogue != null)
|
||||||
@ -26,7 +24,6 @@ var choice = -1
|
|||||||
|
|
||||||
func make_choice(choice : int):
|
func make_choice(choice : int):
|
||||||
the_choice.hide()
|
the_choice.hide()
|
||||||
music_player.play("Chris Zabriskie - Direct to Video - 07 It's Always Too Late to Start Over")
|
|
||||||
yield(dialogue_box.start_dialogue(end_truth_dialogue if choice == 0 else end_lie_dialogue), 'end')
|
yield(dialogue_box.start_dialogue(end_truth_dialogue if choice == 0 else end_lie_dialogue), 'end')
|
||||||
get_tree().change_scene("res://scenes/credits.tscn")
|
get_tree().change_scene("res://scenes/credits.tscn")
|
||||||
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
extends Node2D
|
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
Globals.did_already_play_once = true
|
|
||||||
Globals.save_game()
|
|
||||||
|
|
||||||
func _input(event):
|
|
||||||
if event.is_action_pressed("ui_accept"):
|
|
||||||
get_tree().change_scene("res://scenes/main_menu.tscn")
|
|
@ -1,7 +1,5 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
signal can_leave
|
|
||||||
|
|
||||||
var playing = false
|
var playing = false
|
||||||
|
|
||||||
onready var player_fab = preload('res://scenes/game1/Player.tscn')
|
onready var player_fab = preload('res://scenes/game1/Player.tscn')
|
||||||
@ -11,8 +9,6 @@ var player_camera : Camera2D
|
|||||||
onready var dialogue_box = $UI/Dialog
|
onready var dialogue_box = $UI/Dialog
|
||||||
export (String, FILE, '*.json') var dialogue
|
export (String, FILE, '*.json') var dialogue
|
||||||
|
|
||||||
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
|
||||||
|
|
||||||
onready var levels = [
|
onready var levels = [
|
||||||
#'TestLogEntity',
|
#'TestLogEntity',
|
||||||
'Level1',
|
'Level1',
|
||||||
@ -27,13 +23,11 @@ export var skipToLevel = ''
|
|||||||
var current_level = -1
|
var current_level = -1
|
||||||
var spawn_pos = Vector2()
|
var spawn_pos = Vector2()
|
||||||
var exit_points = []
|
var exit_points = []
|
||||||
var can_leave = false
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
assert(dialogue != null)
|
assert(dialogue != null)
|
||||||
|
|
||||||
if skipToLevel != '':
|
if skipToLevel != '':
|
||||||
can_leave = true
|
|
||||||
$Opening1.queue_free()
|
$Opening1.queue_free()
|
||||||
start_game()
|
start_game()
|
||||||
while levels[current_level] != skipToLevel:
|
while levels[current_level] != skipToLevel:
|
||||||
@ -41,7 +35,6 @@ func _ready():
|
|||||||
return
|
return
|
||||||
|
|
||||||
yield(get_tree().create_timer(6), "timeout")
|
yield(get_tree().create_timer(6), "timeout")
|
||||||
music_player.play("Chris Zabriskie - Direct to Video - 03 I Don't See the Branches, I See the Leaves")
|
|
||||||
$Opening1.play('default')
|
$Opening1.play('default')
|
||||||
$Opening1/Mask.play('default')
|
$Opening1/Mask.play('default')
|
||||||
$Opening1/OpeningOver.play('default')
|
$Opening1/OpeningOver.play('default')
|
||||||
@ -50,13 +43,8 @@ func _ready():
|
|||||||
|
|
||||||
$Opening2/Player.sleep = false
|
$Opening2/Player.sleep = false
|
||||||
yield(dialogue_box.start_dialogue(dialogue), 'end')
|
yield(dialogue_box.start_dialogue(dialogue), 'end')
|
||||||
can_leave = true
|
|
||||||
emit_signal("can_leave")
|
|
||||||
|
|
||||||
func start_game():
|
func start_game():
|
||||||
$Opening2/Player.sleep = true
|
|
||||||
if !can_leave:
|
|
||||||
yield(self, 'can_leave')
|
|
||||||
# Hide opening
|
# Hide opening
|
||||||
$Opening2.queue_free()
|
$Opening2.queue_free()
|
||||||
next_level()
|
next_level()
|
||||||
@ -122,7 +110,6 @@ func spawn_entities(level : Node):
|
|||||||
# Spawn point
|
# Spawn point
|
||||||
for cell in tm.get_used_cells_by_id(tileset.find_tile_by_name('start')):
|
for cell in tm.get_used_cells_by_id(tileset.find_tile_by_name('start')):
|
||||||
spawn_pos = cell
|
spawn_pos = cell
|
||||||
tm.set_cell(cell.x, cell.y, -1)
|
|
||||||
|
|
||||||
# Exit points
|
# Exit points
|
||||||
for cell in tm.get_used_cells_by_id(tileset.find_tile_by_name('finish')):
|
for cell in tm.get_used_cells_by_id(tileset.find_tile_by_name('finish')):
|
||||||
@ -170,7 +157,7 @@ func move():
|
|||||||
move_left()
|
move_left()
|
||||||
trying_to_move = false
|
trying_to_move = false
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(delta):
|
||||||
interact()
|
interact()
|
||||||
move()
|
move()
|
||||||
|
|
||||||
@ -230,19 +217,6 @@ func move_left():
|
|||||||
|
|
||||||
func check_exit() -> bool:
|
func check_exit() -> bool:
|
||||||
var player_pos = (player.position - Vector2(8, 8)) / 16
|
var player_pos = (player.position - Vector2(8, 8)) / 16
|
||||||
|
|
||||||
if !Globals.ui_interact_flatfish_tip:
|
|
||||||
var level = $Game.get_node(levels[current_level])
|
|
||||||
var shown = false
|
|
||||||
for e in level.get_node('Entities').get_children():
|
|
||||||
if e is Flatfish && e.position == player.position:
|
|
||||||
$GameControlIndicator.show_press('interact')
|
|
||||||
$GameControlIndicator.position = player.position + Vector2(0, 8 + 16)
|
|
||||||
shown = true
|
|
||||||
break
|
|
||||||
if !shown:
|
|
||||||
$GameControlIndicator.hide()
|
|
||||||
|
|
||||||
print(player_pos)
|
print(player_pos)
|
||||||
for exit in exit_points:
|
for exit in exit_points:
|
||||||
if player_pos == exit:
|
if player_pos == exit:
|
||||||
@ -281,9 +255,6 @@ func interact():
|
|||||||
break
|
break
|
||||||
|
|
||||||
if fish != null:
|
if fish != null:
|
||||||
Globals.ui_interact_flatfish_tip = true
|
|
||||||
$GameControlIndicator.hide()
|
|
||||||
|
|
||||||
fish.appear()
|
fish.appear()
|
||||||
yield(get_tree().create_timer(0.2), "timeout")
|
yield(get_tree().create_timer(0.2), "timeout")
|
||||||
|
|
||||||
@ -297,7 +268,5 @@ func interact():
|
|||||||
|
|
||||||
fish.disappear()
|
fish.disappear()
|
||||||
|
|
||||||
player.rotation_degrees = fmod(player.rotation_degrees, 360.0)
|
|
||||||
|
|
||||||
is_interacting = false
|
is_interacting = false
|
||||||
if fish != null: interact()
|
if fish != null: interact()
|
||||||
|
@ -41,7 +41,7 @@ func _input(event):
|
|||||||
|
|
||||||
dir = Vector2(x, y)
|
dir = Vector2(x, y)
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(delta):
|
||||||
if linear_velocity.length_squared() < 1:
|
if linear_velocity.length_squared() < 1:
|
||||||
$Sprite.play('default')
|
$Sprite.play('default')
|
||||||
elif linear_velocity.x > 0:
|
elif linear_velocity.x > 0:
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
extends Node2D
|
|
||||||
|
|
||||||
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
music_player.play('main_title')
|
|
||||||
Globals.load_game()
|
|
||||||
if Globals.did_already_play_once:
|
|
||||||
$UI/Buttons/AnotherChoiceButton.show()
|
|
@ -1,7 +1,5 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
$Buttons/PlayButton.grab_focus()
|
$Buttons/PlayButton.grab_focus()
|
||||||
for button in $Buttons.get_children():
|
for button in $Buttons.get_children():
|
||||||
@ -9,8 +7,6 @@ func _ready():
|
|||||||
|
|
||||||
func _on_Button_pressed(scene_to_load : String):
|
func _on_Button_pressed(scene_to_load : String):
|
||||||
if scene_to_load != "":
|
if scene_to_load != "":
|
||||||
music_player.fade_out()
|
|
||||||
get_tree().change_scene(scene_to_load)
|
get_tree().change_scene(scene_to_load)
|
||||||
else:
|
else:
|
||||||
music_player.fade_out()
|
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
@ -1,16 +1,11 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
signal can_leave
|
|
||||||
var can_leave = false
|
|
||||||
|
|
||||||
onready var dialogue_box = $UI/Dialog
|
onready var dialogue_box = $UI/Dialog
|
||||||
onready var music_player = get_node('/root/MusicPlayer') as MusicPlayer
|
|
||||||
|
|
||||||
#0
|
#0
|
||||||
onready var oil_tanker = $OilTanker
|
onready var oil_tanker = $OilTanker
|
||||||
onready var crab_0 = $OilTanker/Crab
|
onready var crab_0 = $OilTanker/Crab
|
||||||
export (String, FILE, "*.json") var dialogue_1
|
export (String, FILE, "*.json") var dialogue_1
|
||||||
var leaving_0 = false
|
|
||||||
|
|
||||||
#1
|
#1
|
||||||
onready var oil_tanker_inside_1 = $InsideOilTanker
|
onready var oil_tanker_inside_1 = $InsideOilTanker
|
||||||
@ -46,8 +41,6 @@ func _ready():
|
|||||||
next_trigger_2.connect("body_entered", self, 'end_step_2')
|
next_trigger_2.connect("body_entered", self, 'end_step_2')
|
||||||
|
|
||||||
yield(dialogue_box.start_dialogue(dialogue_1), 'end')
|
yield(dialogue_box.start_dialogue(dialogue_1), 'end')
|
||||||
can_leave = true
|
|
||||||
emit_signal('can_leave')
|
|
||||||
|
|
||||||
# oil_tanker.frame = 12
|
# oil_tanker.frame = 12
|
||||||
# end_step_0()
|
# end_step_0()
|
||||||
@ -58,47 +51,26 @@ func dialogue_2(body : Node):
|
|||||||
print('end_step_1')
|
print('end_step_1')
|
||||||
if body.name == "Player":
|
if body.name == "Player":
|
||||||
yield(dialogue_box.start_dialogue(dialogue_2), 'end')
|
yield(dialogue_box.start_dialogue(dialogue_2), 'end')
|
||||||
can_leave = true
|
|
||||||
emit_signal('can_leave')
|
|
||||||
|
|
||||||
func end_step_0():
|
func end_step_0():
|
||||||
print('end_step_0')
|
print('end_step_0')
|
||||||
if crab_0.frame > 1:
|
if crab_0.frame > 1:
|
||||||
leaving_0 = true
|
|
||||||
|
|
||||||
if !can_leave:
|
|
||||||
yield(self, 'can_leave')
|
|
||||||
can_leave = false
|
|
||||||
|
|
||||||
oil_tanker.queue_free()
|
oil_tanker.queue_free()
|
||||||
player_1.sleep = false
|
player_1.sleep = false
|
||||||
|
|
||||||
func end_step_1(body : Node):
|
func end_step_1(body : Node):
|
||||||
print('end_step_1')
|
print('end_step_1')
|
||||||
if body.name == "Player":
|
if body.name == "Player":
|
||||||
player_1.sleep = true
|
|
||||||
|
|
||||||
if !can_leave:
|
|
||||||
yield(self, 'can_leave')
|
|
||||||
can_leave = false
|
|
||||||
|
|
||||||
oil_tanker_inside_1.queue_free()
|
oil_tanker_inside_1.queue_free()
|
||||||
|
|
||||||
player_2.sleep = false
|
player_2.sleep = false
|
||||||
camera_2.current = true
|
camera_2.current = true
|
||||||
yield(dialogue_box.start_dialogue(dialogue_3), 'end')
|
yield(dialogue_box.start_dialogue(dialogue_3), 'end')
|
||||||
can_leave = true
|
|
||||||
emit_signal('can_leave')
|
|
||||||
|
|
||||||
func end_step_2(body : Node):
|
func end_step_2(body : Node):
|
||||||
print('end_step_2')
|
print('end_step_2')
|
||||||
if body.name == "Player":
|
if body.name == "Player":
|
||||||
player_2.sleep = true
|
player_2.sleep = true
|
||||||
|
|
||||||
if !can_leave:
|
|
||||||
yield(self, 'can_leave')
|
|
||||||
can_leave = false
|
|
||||||
|
|
||||||
yield(dialogue_box.start_dialogue(dialogue_4), 'end')
|
yield(dialogue_box.start_dialogue(dialogue_4), 'end')
|
||||||
oil_tanker_inside_2.queue_free()
|
oil_tanker_inside_2.queue_free()
|
||||||
herbert_must_go_3.play('default')
|
herbert_must_go_3.play('default')
|
||||||
@ -106,11 +78,10 @@ func end_step_2(body : Node):
|
|||||||
yield(get_tree().create_timer(1), "timeout")
|
yield(get_tree().create_timer(1), "timeout")
|
||||||
yield(dialogue_box.start_dialogue(dialogue_5), 'end')
|
yield(dialogue_box.start_dialogue(dialogue_5), 'end')
|
||||||
yield(get_tree().create_timer(0.2), "timeout")
|
yield(get_tree().create_timer(0.2), "timeout")
|
||||||
music_player.fade_out()
|
|
||||||
get_tree().change_scene("res://scenes/campfire2.tscn")
|
get_tree().change_scene("res://scenes/campfire2.tscn")
|
||||||
|
|
||||||
func _input(event):
|
func _input(event):
|
||||||
if oil_tanker != null && !leaving_0:
|
if oil_tanker != null:
|
||||||
if event.is_action_pressed('right'):
|
if event.is_action_pressed('right'):
|
||||||
if !crab_0.is_playing():
|
if !crab_0.is_playing():
|
||||||
crab_0.play('default')
|
crab_0.play('default')
|
||||||
|
@ -18,6 +18,7 @@ func _ready():
|
|||||||
|
|
||||||
dialogue_box.connect('update', self, 'update_camera')
|
dialogue_box.connect('update', self, 'update_camera')
|
||||||
|
|
||||||
|
yield(get_tree().create_timer(2.0), 'timeout')
|
||||||
yield(dialogue_box.start_dialogue(intro_dialogue), 'end')
|
yield(dialogue_box.start_dialogue(intro_dialogue), 'end')
|
||||||
get_tree().change_scene("res://scenes/game1.tscn")
|
get_tree().change_scene("res://scenes/game1.tscn")
|
||||||
|
|
||||||
|
@ -17,5 +17,5 @@ force/max_rate=false
|
|||||||
force/max_rate_hz=44100
|
force/max_rate_hz=44100
|
||||||
edit/trim=false
|
edit/trim=false
|
||||||
edit/normalize=false
|
edit/normalize=false
|
||||||
edit/loop=true
|
edit/loop=false
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
|
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="ogg_vorbis"
|
|
||||||
type="AudioStreamOGGVorbis"
|
|
||||||
path="res://.import/Chris Zabriskie - Direct to Video - 03 I Don't See the Branches, I See the Leaves.ogg-7a0547bf1d516755a7b69367e9f6573a.oggstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://sounds/Chris Zabriskie - Direct to Video - 03 I Don't See the Branches, I See the Leaves.ogg"
|
|
||||||
dest_files=[ "res://.import/Chris Zabriskie - Direct to Video - 03 I Don't See the Branches, I See the Leaves.ogg-7a0547bf1d516755a7b69367e9f6573a.oggstr" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=true
|
|
||||||
loop_offset=0
|
|
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="ogg_vorbis"
|
|
||||||
type="AudioStreamOGGVorbis"
|
|
||||||
path="res://.import/Chris Zabriskie - Direct to Video - 07 It's Always Too Late to Start Over.ogg-0c87f633d9f4f7ca0cb0ddc35e26b788.oggstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://sounds/Chris Zabriskie - Direct to Video - 07 It's Always Too Late to Start Over.ogg"
|
|
||||||
dest_files=[ "res://.import/Chris Zabriskie - Direct to Video - 07 It's Always Too Late to Start Over.ogg-0c87f633d9f4f7ca0cb0ddc35e26b788.oggstr" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=true
|
|
||||||
loop_offset=0
|
|
Binary file not shown.
@ -1,21 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="wav"
|
|
||||||
type="AudioStreamSample"
|
|
||||||
path="res://.import/gibberish.wav-d9ccae3969716aecb07896cc5967f4f1.sample"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://sounds/gibberish.wav"
|
|
||||||
dest_files=[ "res://.import/gibberish.wav-d9ccae3969716aecb07896cc5967f4f1.sample" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
force/8_bit=false
|
|
||||||
force/mono=false
|
|
||||||
force/max_rate=false
|
|
||||||
force/max_rate_hz=44100
|
|
||||||
edit/trim=false
|
|
||||||
edit/normalize=false
|
|
||||||
edit/loop=false
|
|
||||||
compress/mode=0
|
|
Binary file not shown.
@ -1,21 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="wav"
|
|
||||||
type="AudioStreamSample"
|
|
||||||
path="res://.import/gibberish2.wav-6ec18f6f246c055727b749c364482200.sample"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://sounds/gibberish2.wav"
|
|
||||||
dest_files=[ "res://.import/gibberish2.wav-6ec18f6f246c055727b749c364482200.sample" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
force/8_bit=false
|
|
||||||
force/mono=false
|
|
||||||
force/max_rate=false
|
|
||||||
force/max_rate_hz=44100
|
|
||||||
edit/trim=false
|
|
||||||
edit/normalize=false
|
|
||||||
edit/loop=false
|
|
||||||
compress/mode=0
|
|
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="ogg_vorbis"
|
|
||||||
type="AudioStreamOGGVorbis"
|
|
||||||
path="res://.import/main_title.ogg-ccd8b7af008d3af3848694e6df920f8a.oggstr"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://sounds/main_title.ogg"
|
|
||||||
dest_files=[ "res://.import/main_title.ogg-ccd8b7af008d3af3848694e6df920f8a.oggstr" ]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
loop=true
|
|
||||||
loop_offset=0
|
|
Loading…
Reference in New Issue
Block a user