6 Commits

63 changed files with 1342 additions and 362 deletions

View File

@ -0,0 +1,3 @@
source_md5="ac15d19b18183939f2cb938b48b83391"
dest_md5="0983b74d7b93c756eb0c5a98b4157abd"

View File

@ -0,0 +1,3 @@
source_md5="240c53764197402a0c89fe8fb8b2a878"
dest_md5="de36b355f43d62393cda8f9c25ab30ad"

View File

@ -0,0 +1,3 @@
source_md5="a43d1da157f5981d7d307fa0f05c7144"
dest_md5="de067c565a3ab4762ae06714e45fe0ae"

View File

@ -0,0 +1,3 @@
source_md5="3cacd4765fc525e57c7258a4805508e6"
dest_md5="2dab7bdfa7f0fc281860167c39ed10b6"

View File

@ -0,0 +1,3 @@
source_md5="8f26965afe0b4209670f48e30c0ac7d7"
dest_md5="5baf4f679ea1fa30b2a8de6c0cb4af9a"

View File

@ -0,0 +1,3 @@
source_md5="adff44dac2834f17108b17f4084591a1"
dest_md5="e2e7037a5692f3fe173da14e5c60805a"

View File

@ -0,0 +1,3 @@
source_md5="b13caddd7fdd2e51d2b7a6b20a8f47c3"
dest_md5="4475888cf6d0167b58105bf9f678979c"

View File

@ -0,0 +1,3 @@
source_md5="88515d8ae34cca55294e20310b7476c4"
dest_md5="0f70ef32cfa3623874dce680b21fdd79"

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/elevator-button-color.png-fe767a41ebb2e92445e76edbb2e18f7a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Art/Objects/elevator/elevator-button-color.png"
dest_files=[ "res://.import/elevator-button-color.png-fe767a41ebb2e92445e76edbb2e18f7a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/elevator-button.png-77644fd41dc75c8e32a225dd140c8b38.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Art/Objects/elevator/elevator-button.png"
dest_files=[ "res://.import/elevator-button.png-77644fd41dc75c8e32a225dd140c8b38.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/elevator-door.png-c8a525f29a53c56da780c1ade7c02552.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Art/Objects/elevator/elevator-door.png"
dest_files=[ "res://.import/elevator-door.png-c8a525f29a53c56da780c1ade7c02552.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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/elevator.png-6104b47e90854ba939097ca22c392814.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Art/Objects/elevator/elevator.png"
dest_files=[ "res://.import/elevator.png-6104b47e90854ba939097ca22c392814.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -2,15 +2,15 @@
importer="texture" importer="texture"
type="StreamTexture" type="StreamTexture"
path="res://.import/animation_reference.png-0380e195c2981cbf6a12a964c592fbc3.stex" path="res://.import/x07DLrX.jpg-800f7c21b25c7cf1a88b1ba7bf53d2e0.stex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://animation_reference.png" source_file="res://Assets/Art/UI/Credits/x07DLrX.jpg"
dest_files=[ "res://.import/animation_reference.png-0380e195c2981cbf6a12a964c592fbc3.stex" ] dest_files=[ "res://.import/x07DLrX.jpg-800f7c21b25c7cf1a88b1ba7bf53d2e0.stex" ]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/panel.png-cc4decc7b9943cbf17f375e8d90306c0.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Art/UI/panel.png"
dest_files=[ "res://.import/panel.png-cc4decc7b9943cbf17f375e8d90306c0.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=1
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.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/square_light.png-aadfc5d355cc8a74d0d2f8166db807ad.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Art/square_light.png"
dest_files=[ "res://.import/square_light.png-aadfc5d355cc8a74d0d2f8166db807ad.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

View File

@ -35,7 +35,7 @@ story = {
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Welcome to Ravenworks.", "text": "Welcome to Ravenworks. Your designation is SCENE.",
"type": "line" "type": "line"
}, },
2: { 2: {
@ -61,7 +61,7 @@ story = {
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 2, "slot_amount": 2,
"text": "You are in Ravenworks cloining facility in Central City. "text": "You are in Ravenworks main facility in Central City.
<choice>Okay</choice> <choice>Okay</choice>
<choice>Central City?</choice>", <choice>Central City?</choice>",
"type": "line" "type": "line"
@ -83,13 +83,13 @@ story = {
}, },
"rect_size": Vector2( 441, 165 ), "rect_size": Vector2( 441, 165 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Central City is the location of the five corporate seats of power.", "text": "Central City is the capital of the five corporate seats of power.",
"type": "line" "type": "line"
}, },
6: { 6: {
"graph_offset": Vector2( 1000, 80 ), "graph_offset": Vector2( 1000, 80 ),
"links": { "links": {
0: 7 0: 10
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
@ -97,14 +97,13 @@ story = {
"type": "line" "type": "line"
}, },
7: { 7: {
"graph_offset": Vector2( 1480, 80 ), "graph_offset": Vector2( 2120, 80 ),
"links": { "links": {
0: 10 0: 9
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "There are reports that an executive here at Ravenworks is "text": "You will now serve as an agent of Ravenworks.",
working against the company's interests.",
"type": "line" "type": "line"
}, },
8: { 8: {
@ -114,12 +113,11 @@ working against the company's interests.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "You died hundreds of years ago and I do not have time to explain "text": "You died hundreds of years ago and I do not have time to explain to you over 100 years of history.",
to you over 100 years of history.",
"type": "line" "type": "line"
}, },
9: { 9: {
"graph_offset": Vector2( 2440, 80 ), "graph_offset": Vector2( 2600, 80 ),
"links": { "links": {
0: 12 0: 12
}, },
@ -130,50 +128,46 @@ to you over 100 years of history.",
"type": "line" "type": "line"
}, },
10: { 10: {
"graph_offset": Vector2( 1960, 80 ), "graph_offset": Vector2( 1600, 80 ),
"links": { "links": {
0: 9, 0: 7,
1: 11 1: 11
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 2, "slot_amount": 2,
"text": "The CEO of Ravenworks has decided to task you with finding "text": "The CEO of Ravenworks has decided to clone your template to deal with a sensitive issue.
and killing this individual.
<choice>Okay</choice> <choice>Okay</choice>
<choice>Why me?</choice>", <choice>Why me?</choice>",
"type": "line" "type": "line"
}, },
11: { 11: {
"graph_offset": Vector2( 1960, 300 ), "graph_offset": Vector2( 1920, 300 ),
"links": { "links": {
0: 9 0: 7
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "I do not know.", "text": "I do not know. ",
"type": "line" "type": "line"
}, },
12: { 12: {
"graph_offset": Vector2( 2920, 80 ), "graph_offset": Vector2( 3080, 80 ),
"links": { "links": {
0: 13 0: 13
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Good. You have been given Level 1 security clearance "text": "Good. You have been given Level 1 security clearance in all Ravenwork facilities.",
in Ravenwork facilities.",
"type": "line" "type": "line"
}, },
13: { 13: {
"graph_offset": Vector2( 3400, 80 ), "graph_offset": Vector2( 3560, 80 ),
"links": { "links": {
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "CEO Grant Blevins would like to speak to you about the "text": "CEO Grant Blevins would like to speak to you as soon as possible. His office is located at the top of Central Tower.",
investigation. His office is located at the top of
Central Tower.",
"type": "line" "type": "line"
} }
} }
@ -284,7 +278,7 @@ for our services.",
"slot_amount": 2, "slot_amount": 2,
"text": "Did you need something? "text": "Did you need something?
<choice>No</choice> <choice>No</choice>
<choice>You are the traitor!</choice>", <choice>What do you think of Grant Blevins?</choice>",
"type": "line" "type": "line"
}, },
2: { 2: {
@ -294,8 +288,7 @@ for our services.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Don't make such false accusations. Get back to your job "text": "He has done good for me and Ravenworks.",
and find the real culpurit.",
"type": "line" "type": "line"
}, },
3: { 3: {
@ -333,25 +326,26 @@ and find the real culpurit.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "It's good to see they have not eliminated you yet. Most my attempts "text": "It's good to see they have not eliminated you yet. Most my attempts to find the mole up until this point have ended in swift failure.",
to find the mole up until this point have ended in swift failure.",
"type": "line" "type": "line"
}, },
3: { 3: {
"graph_offset": Vector2( 1020, 0 ), "graph_offset": Vector2( 1020, 0 ),
"links": { "links": {
0: 7, 0: 7,
1: 4 1: 4,
2: 30
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 2, "slot_amount": 3,
"text": "You will not disappoint me, right Scene? "text": "You will not disappoint me, right Scene?
<choice>Of course not!</choice> <choice>Of course not!</choice>
<choice>I will do my best</choice>", <choice>I will do my best</choice>
<choice>What do you need me to do?</choice>",
"type": "line" "type": "line"
}, },
4: { 4: {
"graph_offset": Vector2( 1500, 100 ), "graph_offset": Vector2( 1520, 100 ),
"links": { "links": {
0: 5 0: 5
}, },
@ -367,8 +361,7 @@ to find the mole up until this point have ended in swift failure.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "You will need more than just your wits to defeat this "text": "You will need more than just your wits to defeat this traitor.",
traitor.",
"type": "line" "type": "line"
}, },
6: { 6: {
@ -382,7 +375,7 @@ traitor.",
"type": "line" "type": "line"
}, },
7: { 7: {
"graph_offset": Vector2( 1760, -80 ), "graph_offset": Vector2( 1580, -80 ),
"links": { "links": {
0: 6 0: 6
}, },
@ -442,8 +435,7 @@ but we both remeber how your final job went.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "There has been a concerning amount of leaks of secret projects "text": "There has been a concerning amount of leaks of secret projects and internal data to our competitor Duke Enterprises.",
and internal data to our competitor Duke Enterprises.",
"type": "line" "type": "line"
}, },
13: { 13: {
@ -453,8 +445,7 @@ and internal data to our competitor Duke Enterprises.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Due the volume and nature of the data, the one conspiring with "text": "Due the volume and nature of the data, the one conspiring with the Dukes must have extremely high security clearance.",
the Dukes must have extremely high security clearance.",
"type": "line" "type": "line"
}, },
14: { 14: {
@ -464,8 +455,7 @@ the Dukes must have extremely high security clearance.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "That is why I have given you nearly full access to our facilities. "text": "That is why I have given you nearly full access to our facilities. This traitor could be anyone.",
This traitor could be anyone.",
"type": "line" "type": "line"
}, },
15: { 15: {
@ -490,8 +480,7 @@ This traitor could be anyone.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "I'm trusting you Scene. It's not a common thing in our time, but I have "text": "I'm trusting you Scene. It's not a common thing in our time, but Veronica rarely fails me.",
little choice.",
"type": "line" "type": "line"
}, },
17: { 17: {
@ -501,8 +490,7 @@ little choice.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "I have always been sympathatic to societies of the past. Things were done... "text": "I have always been sympathatic to societies of the past. Things were done... different than they are now.",
different than they are now.",
"type": "line" "type": "line"
}, },
18: { 18: {
@ -512,8 +500,7 @@ different than they are now.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "You were one of the best investigators of your time! It was sad "text": "You were one of the best investigators of your time! It was a shame you got caught up in the events of the old capital.",
you got caught up in the events of the old capital.",
"type": "line" "type": "line"
}, },
19: { 19: {
@ -523,7 +510,7 @@ you got caught up in the events of the old capital.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "It 3024, making it around 1000 years since your death.", "text": "It 3024, making it around 1000 years since your death. Welcome to the future!",
"type": "line" "type": "line"
}, },
20: { 20: {
@ -535,8 +522,7 @@ you got caught up in the events of the old capital.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 3, "slot_amount": 3,
"text": "We have a shipment of biological materials coming in today. It seems "text": "We have a shipment of biological materials coming in today. It seems like the sort of thing we have had troubles with recently.
like the sort of thing we have had troubles with recently.
<choice>Okay, where?</choice> <choice>Okay, where?</choice>
<choice>What sort of troubles?</choice> <choice>What sort of troubles?</choice>
<choice>Biological materials?</choice>", <choice>Biological materials?</choice>",
@ -592,8 +578,7 @@ like the sort of thing we have had troubles with recently.
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Once democratic powers fell, enforcement was placed in the hand of the Corporate Collective, "text": "Once democratic powers fell, enforcement was placed in the hand of the Corporate Collective, the closest thing to the centralized government of old.",
the closest thing to a centralized government.",
"type": "line" "type": "line"
}, },
26: { 26: {
@ -603,8 +588,7 @@ the closest thing to a centralized government.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "In corporate politics, our opposition likes to put in place agreements that "text": "In corporate politics, our opposition likes to put in place agreements that hinder our success. We are not alone in ignoring many of these agreements.",
hinder our success. We are not alone in ignoring many of these agreements.",
"type": "line" "type": "line"
}, },
27: { 27: {
@ -614,7 +598,7 @@ hinder our success. We are not alone in ignoring many of these agreements.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Anyway,", "text": "Anyway...",
"type": "line" "type": "line"
}, },
28: { 28: {
@ -624,8 +608,7 @@ hinder our success. We are not alone in ignoring many of these agreements.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "This building's shipping facility is located on mid levels. They should "text": "This building's shipping facility is located on mid levels. They should not be too far out of reach.",
not be too far out of reach.",
"type": "line" "type": "line"
}, },
29: { 29: {
@ -637,6 +620,16 @@ not be too far out of reach.",
"slot_amount": 1, "slot_amount": 1,
"text": "Keep me up to date on your progress.", "text": "Keep me up to date on your progress.",
"type": "line" "type": "line"
},
30: {
"graph_offset": Vector2( 3380, 400 ),
"links": {
0: 12
},
"rect_size": Vector2( 324, 137 ),
"slot_amount": 1,
"text": "That's unusual. In that case, we'll skip the pleasantries.",
"type": "line"
} }
} }
}, },
@ -694,8 +687,7 @@ not be too far out of reach.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "This seems to be a Ravenetworks transport, but it's empty. Is this "text": "This seems to be a Ravenetworks transport, but it's empty. Is this suppose to be carrying the biological shipment?",
suppose to be carrying the biological shipment?",
"type": "line" "type": "line"
} }
} }
@ -796,9 +788,9 @@ Cubic Carbon - MISSING",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 2, "slot_amount": 2,
"text": "Yeah, we met a few days ago. "text": "Yeah, we worked together a few months ago.
<choice>Weird</choice> <choice>Weird</choice>
<choice>No?</choice>", <choice>I just got here?</choice>",
"type": "line" "type": "line"
}, },
3: { 3: {
@ -812,7 +804,7 @@ Cubic Carbon - MISSING",
"type": "line" "type": "line"
}, },
4: { 4: {
"graph_offset": Vector2( 440, 0 ), "graph_offset": Vector2( 540, 80 ),
"links": { "links": {
}, },
@ -828,7 +820,7 @@ Cubic Carbon - MISSING",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Yeah, we don't see many faces like yours around here.", "text": "Yeah, we don't see many faces like yours around here. It's hard to forget.",
"type": "line" "type": "line"
} }
} }
@ -836,7 +828,7 @@ Cubic Carbon - MISSING",
11: { 11: {
"available_nid": [ ], "available_nid": [ ],
"groups": [ "Introduction" ], "groups": [ "Introduction" ],
"human_readable_description": "Work who drove spacecraft", "human_readable_description": "Worker who drove spacecraft",
"name": "intro_major_worker", "name": "intro_major_worker",
"nodes": { "nodes": {
1: { 1: {
@ -859,8 +851,7 @@ Cubic Carbon - MISSING",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "During the flight over here, the navigation computer redirected to "text": "During the flight over here, the navigation computer redirected to the lower levels.",
the lower levels.",
"type": "line" "type": "line"
}, },
3: { 3: {
@ -893,9 +884,7 @@ the lower levels.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "I lost the cargo after my stop at the lower levels. I was just "text": "I lost the cargo after my stop at the lower levels. I was just following the navigation computer and it was taken by Ravenwork staff!",
following the navigation computer and it was taken by
Ravenwork staff!",
"type": "line" "type": "line"
}, },
6: { 6: {
@ -971,10 +960,9 @@ Ravenwork staff!",
1: 11, 1: 11,
2: 12 2: 12
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 441, 221 ),
"slot_amount": 3, "slot_amount": 3,
"text": "As you can see now, you are not the first person cloned for Ravenworks profit "text": "As you can see now, you are not the first Veronica cloned for Ravenworks profit margins.
margins.
<choice>Are you the traitor?</choice> <choice>Are you the traitor?</choice>
<choice>Return the shipment!</choice> <choice>Return the shipment!</choice>
<choice>We can talk</choice>", <choice>We can talk</choice>",
@ -983,7 +971,7 @@ margins.
5: { 5: {
"graph_offset": Vector2( 520, -120 ), "graph_offset": Vector2( 520, -120 ),
"links": { "links": {
0: 22
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
@ -1051,8 +1039,7 @@ surpress democratic sympathizers.
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "This shipment is being delivered to Resistance medical facilities. It's going to save "text": "This shipment is being delivered to Resistance medical facilities. It's going to save lives, not be used for creating slaves.",
lives, not be used for creating slaves.",
"type": "line" "type": "line"
}, },
12: { 12: {
@ -1062,8 +1049,7 @@ lives, not be used for creating slaves.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "There isn't much we can do sadly. I'm presuming you still have "text": "There isn't much we can do sadly. I'm presuming you still have your implant.",
your implant.",
"type": "line" "type": "line"
}, },
13: { 13: {
@ -1073,7 +1059,7 @@ your implant.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Do you want to discuss terms of peace with us? "text": "Do you want to discuss terms with us?
<choice>No</choice>", <choice>No</choice>",
"type": "line" "type": "line"
}, },
@ -1084,7 +1070,7 @@ your implant.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "You weren't even given the choice. They programmed you to respond that way.", "text": "You weren't even given the choice.",
"type": "line" "type": "line"
}, },
15: { 15: {
@ -1157,6 +1143,16 @@ out for anyone but their executives.",
"slot_amount": 1, "slot_amount": 1,
"text": "But after what I learned about the old capital... Never again.", "text": "But after what I learned about the old capital... Never again.",
"type": "line" "type": "line"
},
22: {
"graph_offset": Vector2( 1000, -120 ),
"links": {
},
"rect_size": Vector2( 324, 137 ),
"slot_amount": 1,
"text": "It's sad to here they finally perfected the program.",
"type": "line"
} }
} }
}, },
@ -1191,8 +1187,7 @@ out for anyone but their executives.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "Mr.Demunt has pushed for increasing security in the mid levels to account "text": "Mr.Demunt has pushed for increasing security in the mid levels to account for the recent increase in deliveries.",
for the recent increase in deliveries.",
"type": "line" "type": "line"
}, },
2: { 2: {
@ -1202,8 +1197,7 @@ for the recent increase in deliveries.",
}, },
"rect_size": Vector2( 324, 137 ), "rect_size": Vector2( 324, 137 ),
"slot_amount": 1, "slot_amount": 1,
"text": "To account for this change, we have moved all non-mandatory security officers "text": "To account for this change, we have moved all non-mandatory security officers to the mid and upper levels.",
to the mid and upper levels.",
"type": "line" "type": "line"
} }
} }

View File

@ -12,7 +12,7 @@ story = {
"links": { "links": {
0: 2 0: 2
}, },
"text": "Welcome to Ravenworks." "text": "Welcome to Ravenworks. Your designation is SCENE."
}, },
2: { 2: {
"links": { "links": {
@ -30,7 +30,7 @@ story = {
0: 2, 0: 2,
1: 5 1: 5
}, },
"text": "You are in Ravenworks cloining facility in Central City. "text": "You are in Ravenworks main facility in Central City.
<choice>Okay</choice> <choice>Okay</choice>
<choice>Central City?</choice>" <choice>Central City?</choice>"
}, },
@ -44,27 +44,25 @@ story = {
"links": { "links": {
0: 8 0: 8
}, },
"text": "Central City is the location of the five corporate seats of power." "text": "Central City is the capital of the five corporate seats of power."
}, },
6: { 6: {
"links": { "links": {
0: 7 0: 10
}, },
"text": "Excellent." "text": "Excellent."
}, },
7: { 7: {
"links": { "links": {
0: 10 0: 9
}, },
"text": "There are reports that an executive here at Ravenworks is "text": "You will now serve as an agent of Ravenworks."
working against the company's interests."
}, },
8: { 8: {
"links": { "links": {
0: 2 0: 2
}, },
"text": "You died hundreds of years ago and I do not have time to explain "text": "You died hundreds of years ago and I do not have time to explain to you over 100 years of history."
to you over 100 years of history."
}, },
9: { 9: {
"links": { "links": {
@ -75,34 +73,30 @@ to you over 100 years of history."
}, },
10: { 10: {
"links": { "links": {
0: 9, 0: 7,
1: 11 1: 11
}, },
"text": "The CEO of Ravenworks has decided to task you with finding "text": "The CEO of Ravenworks has decided to clone your template to deal with a sensitive issue.
and killing this individual.
<choice>Okay</choice> <choice>Okay</choice>
<choice>Why me?</choice>" <choice>Why me?</choice>"
}, },
11: { 11: {
"links": { "links": {
0: 9 0: 7
}, },
"text": "I do not know." "text": "I do not know. "
}, },
12: { 12: {
"links": { "links": {
0: 13 0: 13
}, },
"text": "Good. You have been given Level 1 security clearance "text": "Good. You have been given Level 1 security clearance in all Ravenwork facilities."
in Ravenwork facilities."
}, },
13: { 13: {
"links": { "links": {
}, },
"text": "CEO Grant Blevins would like to speak to you about the "text": "CEO Grant Blevins would like to speak to you as soon as possible. His office is located at the top of Central Tower."
investigation. His office is located at the top of
Central Tower."
} }
} }
}, },
@ -169,14 +163,13 @@ for our services."
}, },
"text": "Did you need something? "text": "Did you need something?
<choice>No</choice> <choice>No</choice>
<choice>You are the traitor!</choice>" <choice>What do you think of Grant Blevins?</choice>"
}, },
2: { 2: {
"links": { "links": {
}, },
"text": "Don't make such false accusations. Get back to your job "text": "He has done good for me and Ravenworks."
and find the real culpurit."
}, },
3: { 3: {
"links": { "links": {
@ -198,17 +191,18 @@ and find the real culpurit."
"links": { "links": {
0: 3 0: 3
}, },
"text": "It's good to see they have not eliminated you yet. Most my attempts "text": "It's good to see they have not eliminated you yet. Most my attempts to find the mole up until this point have ended in swift failure."
to find the mole up until this point have ended in swift failure."
}, },
3: { 3: {
"links": { "links": {
0: 7, 0: 7,
1: 4 1: 4,
2: 30
}, },
"text": "You will not disappoint me, right Scene? "text": "You will not disappoint me, right Scene?
<choice>Of course not!</choice> <choice>Of course not!</choice>
<choice>I will do my best</choice>" <choice>I will do my best</choice>
<choice>What do you need me to do?</choice>"
}, },
4: { 4: {
"links": { "links": {
@ -220,8 +214,7 @@ to find the mole up until this point have ended in swift failure."
"links": { "links": {
0: 6 0: 6
}, },
"text": "You will need more than just your wits to defeat this "text": "You will need more than just your wits to defeat this traitor."
traitor."
}, },
6: { 6: {
"links": { "links": {
@ -267,22 +260,19 @@ but we both remeber how your final job went."
"links": { "links": {
0: 13 0: 13
}, },
"text": "There has been a concerning amount of leaks of secret projects "text": "There has been a concerning amount of leaks of secret projects and internal data to our competitor Duke Enterprises."
and internal data to our competitor Duke Enterprises."
}, },
13: { 13: {
"links": { "links": {
0: 14 0: 14
}, },
"text": "Due the volume and nature of the data, the one conspiring with "text": "Due the volume and nature of the data, the one conspiring with the Dukes must have extremely high security clearance."
the Dukes must have extremely high security clearance."
}, },
14: { 14: {
"links": { "links": {
0: 16 0: 16
}, },
"text": "That is why I have given you nearly full access to our facilities. "text": "That is why I have given you nearly full access to our facilities. This traitor could be anyone."
This traitor could be anyone."
}, },
15: { 15: {
"links": { "links": {
@ -299,28 +289,25 @@ This traitor could be anyone."
"links": { "links": {
0: 15 0: 15
}, },
"text": "I'm trusting you Scene. It's not a common thing in our time, but I have "text": "I'm trusting you Scene. It's not a common thing in our time, but Veronica rarely fails me."
little choice."
}, },
17: { 17: {
"links": { "links": {
0: 18 0: 18
}, },
"text": "I have always been sympathatic to societies of the past. Things were done... "text": "I have always been sympathatic to societies of the past. Things were done... different than they are now."
different than they are now."
}, },
18: { 18: {
"links": { "links": {
0: 15 0: 15
}, },
"text": "You were one of the best investigators of your time! It was sad "text": "You were one of the best investigators of your time! It was a shame you got caught up in the events of the old capital."
you got caught up in the events of the old capital."
}, },
19: { 19: {
"links": { "links": {
0: 15 0: 15
}, },
"text": "It 3024, making it around 1000 years since your death." "text": "It 3024, making it around 1000 years since your death. Welcome to the future!"
}, },
20: { 20: {
"links": { "links": {
@ -328,8 +315,7 @@ you got caught up in the events of the old capital."
1: 21, 1: 21,
2: 22 2: 22
}, },
"text": "We have a shipment of biological materials coming in today. It seems "text": "We have a shipment of biological materials coming in today. It seems like the sort of thing we have had troubles with recently.
like the sort of thing we have had troubles with recently.
<choice>Okay, where?</choice> <choice>Okay, where?</choice>
<choice>What sort of troubles?</choice> <choice>What sort of troubles?</choice>
<choice>Biological materials?</choice>" <choice>Biological materials?</choice>"
@ -365,34 +351,37 @@ like the sort of thing we have had troubles with recently.
"links": { "links": {
0: 27 0: 27
}, },
"text": "Once democratic powers fell, enforcement was placed in the hand of the Corporate Collective, "text": "Once democratic powers fell, enforcement was placed in the hand of the Corporate Collective, the closest thing to the centralized government of old."
the closest thing to a centralized government."
}, },
26: { 26: {
"links": { "links": {
0: 27 0: 27
}, },
"text": "In corporate politics, our opposition likes to put in place agreements that "text": "In corporate politics, our opposition likes to put in place agreements that hinder our success. We are not alone in ignoring many of these agreements."
hinder our success. We are not alone in ignoring many of these agreements."
}, },
27: { 27: {
"links": { "links": {
0: 28 0: 28
}, },
"text": "Anyway," "text": "Anyway..."
}, },
28: { 28: {
"links": { "links": {
0: 29 0: 29
}, },
"text": "This building's shipping facility is located on mid levels. They should "text": "This building's shipping facility is located on mid levels. They should not be too far out of reach."
not be too far out of reach."
}, },
29: { 29: {
"links": { "links": {
}, },
"text": "Keep me up to date on your progress." "text": "Keep me up to date on your progress."
},
30: {
"links": {
0: 12
},
"text": "That's unusual. In that case, we'll skip the pleasantries."
} }
} }
}, },
@ -427,8 +416,7 @@ not be too far out of reach."
"links": { "links": {
}, },
"text": "This seems to be a Ravenetworks transport, but it's empty. Is this "text": "This seems to be a Ravenetworks transport, but it's empty. Is this suppose to be carrying the biological shipment?"
suppose to be carrying the biological shipment?"
} }
} }
}, },
@ -489,9 +477,9 @@ Cubic Carbon - MISSING"
0: 5, 0: 5,
1: 3 1: 3
}, },
"text": "Yeah, we met a few days ago. "text": "Yeah, we worked together a few months ago.
<choice>Weird</choice> <choice>Weird</choice>
<choice>No?</choice>" <choice>I just got here?</choice>"
}, },
3: { 3: {
"links": { "links": {
@ -509,7 +497,7 @@ Cubic Carbon - MISSING"
"links": { "links": {
}, },
"text": "Yeah, we don't see many faces like yours around here." "text": "Yeah, we don't see many faces like yours around here. It's hard to forget."
} }
} }
}, },
@ -528,8 +516,7 @@ Cubic Carbon - MISSING"
"links": { "links": {
0: 3 0: 3
}, },
"text": "During the flight over here, the navigation computer redirected to "text": "During the flight over here, the navigation computer redirected to the lower levels."
the lower levels."
}, },
3: { 3: {
"links": { "links": {
@ -550,9 +537,7 @@ the lower levels."
"links": { "links": {
0: 6 0: 6
}, },
"text": "I lost the cargo after my stop at the lower levels. I was just "text": "I lost the cargo after my stop at the lower levels. I was just following the navigation computer and it was taken by Ravenwork staff!"
following the navigation computer and it was taken by
Ravenwork staff!"
}, },
6: { 6: {
"links": { "links": {
@ -602,15 +587,14 @@ Ravenwork staff!"
1: 11, 1: 11,
2: 12 2: 12
}, },
"text": "As you can see now, you are not the first person cloned for Ravenworks profit "text": "As you can see now, you are not the first Veronica cloned for Ravenworks profit margins.
margins.
<choice>Are you the traitor?</choice> <choice>Are you the traitor?</choice>
<choice>Return the shipment!</choice> <choice>Return the shipment!</choice>
<choice>We can talk</choice>" <choice>We can talk</choice>"
}, },
5: { 5: {
"links": { "links": {
0: 22
}, },
"text": "Oh... They truely had you didn't they." "text": "Oh... They truely had you didn't they."
}, },
@ -652,28 +636,26 @@ surpress democratic sympathizers.
"links": { "links": {
0: 15 0: 15
}, },
"text": "This shipment is being delivered to Resistance medical facilities. It's going to save "text": "This shipment is being delivered to Resistance medical facilities. It's going to save lives, not be used for creating slaves."
lives, not be used for creating slaves."
}, },
12: { 12: {
"links": { "links": {
0: 13 0: 13
}, },
"text": "There isn't much we can do sadly. I'm presuming you still have "text": "There isn't much we can do sadly. I'm presuming you still have your implant."
your implant."
}, },
13: { 13: {
"links": { "links": {
0: 14 0: 14
}, },
"text": "Do you want to discuss terms of peace with us? "text": "Do you want to discuss terms with us?
<choice>No</choice>" <choice>No</choice>"
}, },
14: { 14: {
"links": { "links": {
}, },
"text": "You weren't even given the choice. They programmed you to respond that way." "text": "You weren't even given the choice."
}, },
15: { 15: {
"links": { "links": {
@ -717,6 +699,12 @@ out for anyone but their executives."
}, },
"text": "But after what I learned about the old capital... Never again." "text": "But after what I learned about the old capital... Never again."
},
22: {
"links": {
},
"text": "It's sad to here they finally perfected the program."
} }
} }
}, },
@ -736,15 +724,13 @@ out for anyone but their executives."
"links": { "links": {
0: 2 0: 2
}, },
"text": "Mr.Demunt has pushed for increasing security in the mid levels to account "text": "Mr.Demunt has pushed for increasing security in the mid levels to account for the recent increase in deliveries."
for the recent increase in deliveries."
}, },
2: { 2: {
"links": { "links": {
}, },
"text": "To account for this change, we have moved all non-mandatory security officers "text": "To account for this change, we have moved all non-mandatory security officers to the mid and upper levels."
to the mid and upper levels."
} }
} }
} }

View File

@ -0,0 +1,55 @@
[gd_resource type="Theme" load_steps=11 format=2]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/marksman-v1/Marksman.ttf" type="DynamicFontData" id=1]
[sub_resource type="StyleBoxEmpty" id=1]
[sub_resource type="StyleBoxEmpty" id=2]
[sub_resource type="StyleBoxEmpty" id=3]
[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="StyleBoxEmpty" id=5]
[sub_resource type="StyleBoxEmpty" id=6]
[sub_resource type="StyleBoxLine" id=7]
color = Color( 0.203922, 0.760784, 0.819608, 0.54902 )
[sub_resource type="StyleBoxEmpty" id=8]
[sub_resource type="DynamicFont" id=9]
size = 32
outline_size = 1
outline_color = Color( 0.243137, 0.858824, 0.815686, 0.498039 )
font_data = ExtResource( 1 )
[resource]
default_font = SubResource( 9 )
Button/colors/font_color = Color( 0.203922, 0.760784, 0.819608, 0.54902 )
Button/colors/font_color_disabled = Color( 0.901961, 0.901961, 0.901961, 0.2 )
Button/colors/font_color_hover = Color( 0.203922, 0.760784, 0.819608, 0.784314 )
Button/colors/font_color_pressed = Color( 0.6, 0.835294, 0.858824, 0.784314 )
Button/constants/hseparation = 16
Button/fonts/font = null
Button/styles/ = SubResource( 1 )
Button/styles/disabled = SubResource( 2 )
Button/styles/focus = SubResource( 3 )
Button/styles/hover = SubResource( 4 )
Button/styles/normal = SubResource( 5 )
Button/styles/pressed = SubResource( 6 )
HBoxContainer/constants/separation = 64
HSeparator/constants/separation = 4
HSeparator/styles/separator = SubResource( 7 )
Label/colors/font_color = Color( 0.203922, 0.760784, 0.819608, 0.54902 )
Label/colors/font_color_shadow = Color( 0, 0, 0, 0 )
Label/colors/font_outline_modulate = Color( 0.243137, 0.858824, 0.815686, 0.498039 )
Label/constants/line_spacing = 3
Label/constants/shadow_as_outline = 0
Label/constants/shadow_offset_x = 1
Label/constants/shadow_offset_y = 1
Label/fonts/font = null
Label/icons/ = null
Label/styles/normal = null
Panel/styles/panel = SubResource( 8 )

View File

@ -0,0 +1,107 @@
[gd_resource type="Theme" load_steps=19 format=2]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/marksman-v1/Marksman.ttf" type="DynamicFontData" id=1]
[ext_resource path="res://Assets/Art/UI/panel.png" type="Texture" id=2]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/targets-v3.1/Targets.otf" type="DynamicFontData" id=3]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/zapper-v1.1/Zapper.otf" type="DynamicFontData" id=4]
[ext_resource path="res://Assets/Art/UI/button1.png" type="Texture" id=5]
[ext_resource path="res://Assets/Art/UI/button2.png" type="Texture" id=6]
[sub_resource type="StyleBoxEmpty" id=1]
[sub_resource type="StyleBoxEmpty" id=2]
[sub_resource type="StyleBoxEmpty" id=3]
[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="StyleBoxEmpty" id=5]
[sub_resource type="StyleBoxEmpty" id=6]
[sub_resource type="StyleBoxLine" id=7]
color = Color( 0.203922, 0.760784, 0.819608, 0.54902 )
[sub_resource type="StyleBoxTexture" id=8]
texture = ExtResource( 2 )
region_rect = Rect2( 0, 0, 8, 8 )
axis_stretch_horizontal = 2
axis_stretch_vertical = 2
modulate_color = Color( 1, 1, 1, 0.686275 )
[sub_resource type="DynamicFont" id=9]
outline_size = 1
outline_color = Color( 0.313726, 0.627451, 0.85098, 0.176471 )
font_data = ExtResource( 4 )
[sub_resource type="DynamicFont" id=10]
size = 32
font_data = ExtResource( 3 )
[sub_resource type="StyleBoxTexture" id=11]
texture = ExtResource( 2 )
region_rect = Rect2( 0, 0, 8, 8 )
axis_stretch_horizontal = 2
axis_stretch_vertical = 2
modulate_color = Color( 1, 1, 1, 0.686275 )
[sub_resource type="DynamicFont" id=12]
size = 32
outline_size = 2
outline_color = Color( 0.313726, 0.627451, 0.85098, 0.176471 )
font_data = ExtResource( 1 )
[resource]
default_font = SubResource( 12 )
Button/colors/font_color = Color( 1, 1, 1, 1 )
Button/colors/font_color_disabled = Color( 0.901961, 0.901961, 0.901961, 0.2 )
Button/colors/font_color_hover = Color( 0.286275, 0.568627, 0.768627, 0.941176 )
Button/colors/font_color_pressed = Color( 0.1813, 0.361375, 0.49, 0.686275 )
Button/constants/hseparation = 16
Button/fonts/font = null
Button/styles/ = SubResource( 1 )
Button/styles/disabled = SubResource( 2 )
Button/styles/focus = SubResource( 3 )
Button/styles/hover = SubResource( 4 )
Button/styles/normal = SubResource( 5 )
Button/styles/pressed = SubResource( 6 )
HBoxContainer/constants/separation = 64
HSeparator/constants/separation = 4
HSeparator/styles/separator = SubResource( 7 )
Label/colors/font_color = Color( 1, 1, 1, 1 )
Label/colors/font_color_shadow = Color( 0, 0, 0, 0 )
Label/colors/font_outline_modulate = Color( 0.223529, 0.443137, 0.6, 0 )
Label/constants/line_spacing = 3
Label/constants/shadow_as_outline = 0
Label/constants/shadow_offset_x = 1
Label/constants/shadow_offset_y = 1
Label/fonts/font = null
Label/icons/ = null
Label/styles/normal = null
Panel/styles/panel = SubResource( 8 )
RichTextLabel/colors/default_color = Color( 1, 1, 1, 1 )
RichTextLabel/colors/font_color_selected = Color( 0.49, 0.49, 0.49, 1 )
RichTextLabel/colors/font_color_shadow = Color( 0, 0, 0, 0 )
RichTextLabel/colors/selection_color = Color( 0.1, 0.1, 1, 0.8 )
RichTextLabel/constants/line_separation = 1
RichTextLabel/constants/shadow_as_outline = 0
RichTextLabel/constants/shadow_offset_x = 1
RichTextLabel/constants/shadow_offset_y = 1
RichTextLabel/constants/table_hseparation = 3
RichTextLabel/constants/table_vseparation = 3
RichTextLabel/fonts/bold_font = null
RichTextLabel/fonts/bold_italics_font = null
RichTextLabel/fonts/italics_font = null
RichTextLabel/fonts/mono_font = null
RichTextLabel/fonts/normal_font = SubResource( 9 )
RichTextLabel/styles/focus = null
RichTextLabel/styles/normal = null
WindowDialog/colors/title_color = Color( 0.980392, 0.960784, 0.960784, 1 )
WindowDialog/constants/close_h_ofs = 18
WindowDialog/constants/close_v_ofs = 18
WindowDialog/constants/scaleborder_size = 4
WindowDialog/constants/title_height = 20
WindowDialog/fonts/title_font = SubResource( 10 )
WindowDialog/icons/close = ExtResource( 6 )
WindowDialog/icons/close_highlight = ExtResource( 5 )
WindowDialog/styles/panel = SubResource( 11 )

View File

@ -5,31 +5,28 @@
[ext_resource path="res://Scripts/Entities/Door.gd" type="Script" id=3] [ext_resource path="res://Scripts/Entities/Door.gd" type="Script" id=3]
[ext_resource path="res://Assets/Art/32x32mask.png" type="Texture" id=5] [ext_resource path="res://Assets/Art/32x32mask.png" type="Texture" id=5]
[sub_resource type="RectangleShape2D" id=1]
[sub_resource type="RectangleShape2D" id=7]
extents = Vector2( 16.0007, 15.9043 ) extents = Vector2( 16.0007, 15.9043 )
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 1 )
region = Rect2( 0, 0, 32, 32 )
[sub_resource type="OccluderPolygon2D" id=8]
polygon = PoolVector2Array( -5, 18, -5, 0, -2, 0, -2, 4, 2, 4, 2, 0, 5, 0, 5, 18 )
[sub_resource type="AtlasTexture" id=2] [sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 1 ) atlas = ExtResource( 1 )
region = Rect2( 0, 0, 32, 32 )
[sub_resource type="OccluderPolygon2D" id=3]
polygon = PoolVector2Array( -5, 18, -5, 0, -2, 0, -2, 4, 2, 4, 2, 0, 5, 0, 5, 18 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 1 )
region = Rect2( 0, 32, 32, 32 ) region = Rect2( 0, 32, 32, 32 )
[sub_resource type="AtlasTexture" id=3] [sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 1 ) atlas = ExtResource( 1 )
region = Rect2( 0, 64, 32, 32 ) region = Rect2( 0, 64, 32, 32 )
[sub_resource type="OccluderPolygon2D" id=9] [sub_resource type="OccluderPolygon2D" id=6]
polygon = PoolVector2Array( 5, -18, 5, 0, -5, 0, -5, -18 ) polygon = PoolVector2Array( 5, -18, 5, 0, -5, 0, -5, -18 )
[sub_resource type="Animation" id=5] [sub_resource type="Animation" id=7]
resource_name = "Close"
length = 0.5 length = 0.5
tracks/0/type = "bezier" tracks/0/type = "bezier"
tracks/0/path = NodePath("Top:position:x") tracks/0/path = NodePath("Top:position:x")
@ -92,8 +89,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0, 0.5 ) "times": PoolRealArray( 0, 0.5 )
} }
[sub_resource type="Animation" id=4] [sub_resource type="Animation" id=8]
resource_name = "Open"
length = 0.5 length = 0.5
tracks/0/type = "bezier" tracks/0/type = "bezier"
tracks/0/path = NodePath("Bottom:position:x") tracks/0/path = NodePath("Bottom:position:x")
@ -156,7 +152,7 @@ tracks/5/keys = {
"times": PoolRealArray( 0, 0.5 ) "times": PoolRealArray( 0, 0.5 )
} }
[sub_resource type="RectangleShape2D" id=6] [sub_resource type="RectangleShape2D" id=9]
extents = Vector2( 40.2987, 16.0621 ) extents = Vector2( 40.2987, 16.0621 )
[node name="Door" type="Area2D"] [node name="Door" type="Area2D"]
@ -165,31 +161,31 @@ script = ExtResource( 3 )
[node name="StaticBody2D" type="StaticBody2D" parent="."] [node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource( 7 ) shape = SubResource( 1 )
[node name="Bottom" type="Sprite" parent="."] [node name="Bottom" type="Sprite" parent="."]
z_index = 25 z_index = 25
texture = SubResource( 1 ) texture = SubResource( 2 )
[node name="LightOccluder2D" type="LightOccluder2D" parent="Bottom"] [node name="LightOccluder2D" type="LightOccluder2D" parent="Bottom"]
occluder = SubResource( 8 ) occluder = SubResource( 3 )
[node name="Top" type="Sprite" parent="."] [node name="Top" type="Sprite" parent="."]
z_index = 25 z_index = 25
texture = SubResource( 2 ) texture = SubResource( 4 )
[node name="Color" type="Sprite" parent="Top"] [node name="Color" type="Sprite" parent="Top"]
texture = SubResource( 3 ) texture = SubResource( 5 )
[node name="LightOccluder2D" type="LightOccluder2D" parent="Top"] [node name="LightOccluder2D" type="LightOccluder2D" parent="Top"]
occluder = SubResource( 9 ) occluder = SubResource( 6 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/Close = SubResource( 5 ) anims/Close = SubResource( 7 )
anims/Open = SubResource( 4 ) anims/Open = SubResource( 8 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 6 ) shape = SubResource( 9 )
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 2 ) stream = ExtResource( 2 )

View File

@ -0,0 +1,53 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://Assets/Art/Objects/elevator/elevator.png" type="Texture" id=1]
[ext_resource path="res://Scripts/Entities/Elevator.gd" type="Script" id=2]
[ext_resource path="res://Scripts/Component/ElevatorControls.gd" type="Script" id=3]
[ext_resource path="res://Scripts/Component/LandingArea.gd" type="Script" id=4]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 16, 2 )
[sub_resource type="RectangleShape2D" id=2]
extents = Vector2( 10, 16 )
[sub_resource type="RectangleShape2D" id=3]
extents = Vector2( 16, 1 )
[node name="Elevator" type="Node2D"]
script = ExtResource( 2 )
__meta__ = {
"_edit_group_": true
}
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
[node name="Bottom" type="StaticBody2D" parent="."]
position = Vector2( 0, 18 )
collision_layer = 2
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bottom"]
shape = SubResource( 1 )
[node name="Top" type="StaticBody2D" parent="."]
position = Vector2( 0, -18 )
collision_layer = 2
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Top"]
shape = SubResource( 1 )
[node name="ElevatorControls" type="Area2D" parent="."]
script = ExtResource( 3 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="ElevatorControls"]
shape = SubResource( 2 )
[node name="LandingArea" type="Area2D" parent="."]
script = ExtResource( 4 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="LandingArea"]
position = Vector2( 0, 15 )
shape = SubResource( 3 )

View File

@ -0,0 +1,67 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://Assets/Art/Objects/elevator/elevator-button-color.png" type="Texture" id=1]
[ext_resource path="res://Scripts/Entities/ElevatorButton.gd" type="Script" id=2]
[ext_resource path="res://Assets/Art/Objects/elevator/elevator-button.png" type="Texture" id=3]
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 3 )
region = Rect2( 0, 0, 16, 8 )
[sub_resource type="CircleShape2D" id=2]
radius = 16.0
[sub_resource type="Animation" id=3]
resource_name = "Done"
length = 0.001
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ 1 ]
}
[sub_resource type="Animation" id=4]
resource_name = "Waiting"
length = 0.4
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.2 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ 1, 0 ]
}
[node name="ElevatorButton" type="Area2D"]
script = ExtResource( 2 )
__meta__ = {
"_edit_group_": true
}
[node name="Sprite" type="Sprite" parent="."]
texture = SubResource( 1 )
hframes = 2
frame = 1
[node name="Color" type="Sprite" parent="."]
modulate = Color( 0.0941176, 1, 0.14902, 1 )
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 2 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/Done = SubResource( 3 )
anims/Waiting = SubResource( 4 )

View File

@ -0,0 +1,174 @@
[gd_scene load_steps=9 format=2]
[ext_resource path="res://Assets/Art/Objects/elevator/elevator-door.png" type="Texture" id=1]
[ext_resource path="res://Assets/Sfx/door.wav" type="AudioStream" id=2]
[ext_resource path="res://Scripts/Entities/ElevatorDoor.gd" type="Script" id=3]
[ext_resource path="res://Assets/Art/32x32mask.png" type="Texture" id=5]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 1.65761, 15.9043 )
[sub_resource type="Animation" id=7]
length = 0.3
tracks/0/type = "bezier"
tracks/0/path = NodePath("Top:position:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/1/type = "bezier"
tracks/1/path = NodePath("Top:position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"points": PoolRealArray( -24, -0.25, 0, 0.25, 0, -8, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/2/type = "bezier"
tracks/2/path = NodePath("Top:rotation_degrees")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/3/type = "bezier"
tracks/3/path = NodePath("Bottom:position:x")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/4/type = "bezier"
tracks/4/path = NodePath("Bottom:position:y")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"points": PoolRealArray( 24, -0.25, 0, 0.25, 0, 8, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/5/type = "bezier"
tracks/5/path = NodePath("Bottom:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
[sub_resource type="Animation" id=8]
length = 0.3
tracks/0/type = "bezier"
tracks/0/path = NodePath("Bottom:position:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/1/type = "bezier"
tracks/1/path = NodePath("Bottom:position:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"points": PoolRealArray( 8, -0.25, 0, 0.25, 0, 24, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/2/type = "bezier"
tracks/2/path = NodePath("Bottom:rotation_degrees")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/3/type = "bezier"
tracks/3/path = NodePath("Top:position:x")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/4/type = "bezier"
tracks/4/path = NodePath("Top:position:y")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"points": PoolRealArray( -8, -0.25, 0, 0.25, 0, -24, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
tracks/5/type = "bezier"
tracks/5/path = NodePath("Top:rotation_degrees")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
"times": PoolRealArray( 0, 0.3 )
}
[sub_resource type="RectangleShape2D" id=9]
extents = Vector2( 14.4443, 16.0621 )
[node name="ElevatorDoor" type="Area2D"]
script = ExtResource( 3 )
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource( 1 )
[node name="Bottom" type="Sprite" parent="."]
position = Vector2( 0, 8 )
scale = Vector2( 1, -1 )
z_index = 25
texture = ExtResource( 1 )
[node name="Top" type="Sprite" parent="."]
position = Vector2( 0, -8 )
z_index = 25
texture = ExtResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/Close = SubResource( 7 )
anims/Open = SubResource( 8 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 9 )
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 2 )
bus = "Sfx"
[node name="Mask" type="Light2D" parent="."]
enabled = false
texture = ExtResource( 5 )
mode = 3
range_item_cull_mask = 2

View File

@ -1,23 +1,16 @@
[gd_scene load_steps=10 format=2] [gd_scene load_steps=8 format=2]
[ext_resource path="res://Assets/Themes/default.tres" type="Theme" id=1] [ext_resource path="res://Assets/Themes/main_theme.tres" type="Theme" id=1]
[ext_resource path="res://Scripts/Systems/GameGui.gd" type="Script" id=2] [ext_resource path="res://Scripts/Systems/GameGui.gd" type="Script" id=2]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/improbable-v1/Improbable.ttf" type="DynamicFontData" id=3] [ext_resource path="res://Assets/Proprietary/hf-scifi-complete/improbable-v1/Improbable.ttf" type="DynamicFontData" id=3]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/zapper-v1.1/Zapper.otf" type="DynamicFontData" id=4]
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/marksman-v1/Marksman.ttf" type="DynamicFontData" id=5] [ext_resource path="res://Assets/Proprietary/hf-scifi-complete/marksman-v1/Marksman.ttf" type="DynamicFontData" id=5]
[ext_resource path="res://Scripts/Entities/Fader.gd" type="Script" id=6]
[sub_resource type="DynamicFont" id=1] [sub_resource type="DynamicFont" id=1]
size = 18
font_data = ExtResource( 4 )
[sub_resource type="StyleBoxFlat" id=4]
bg_color = Color( 0.2, 0.376471, 0.368627, 0.694118 )
[sub_resource type="DynamicFont" id=2]
size = 48 size = 48
font_data = ExtResource( 3 ) font_data = ExtResource( 3 )
[sub_resource type="DynamicFont" id=3] [sub_resource type="DynamicFont" id=2]
size = 32 size = 32
outline_size = 2 outline_size = 2
outline_color = Color( 0, 0, 0, 0.45098 ) outline_color = Color( 0, 0, 0, 0.45098 )
@ -40,7 +33,7 @@ __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Textbox" type="ColorRect" parent="Dialog"] [node name="Textbox" type="Panel" parent="Dialog"]
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 0.5 anchor_right = 0.5
@ -49,10 +42,6 @@ margin_left = -475.0
margin_top = -143.0 margin_top = -143.0
margin_right = 475.0 margin_right = 475.0
margin_bottom = -20.0 margin_bottom = -20.0
color = Color( 0.254902, 0.513726, 0.505882, 0.870588 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Speaker" type="Label" parent="Dialog/Textbox"] [node name="Speaker" type="Label" parent="Dialog/Textbox"]
margin_left = 12.0 margin_left = 12.0
@ -64,16 +53,13 @@ __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Body" type="Label" parent="Dialog/Textbox"] [node name="Body" type="RichTextLabel" parent="Dialog/Textbox"]
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
margin_left = 12.0 margin_left = 12.0
margin_top = -16.5 margin_top = 40.0
margin_right = -39.0 margin_right = 933.0
margin_bottom = 49.5 margin_bottom = 111.0
custom_fonts/font = SubResource( 1 ) text = "Hello world! ' & * $"
text = "Hello world!" scroll_active = false
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@ -83,7 +69,6 @@ margin_left = 37.0
margin_top = -9.0 margin_top = -9.0
margin_right = 987.0 margin_right = 987.0
margin_bottom = 22.0 margin_bottom = 22.0
custom_styles/panel = SubResource( 4 )
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
@ -115,13 +100,14 @@ margin_bottom = 31.0
text = "Choice" text = "Choice"
[node name="ZoneLabel" type="Label" parent="."] [node name="ZoneLabel" type="Label" parent="."]
visible = false
anchor_top = 1.0 anchor_top = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
margin_left = 12.0 margin_left = 12.0
margin_top = -59.0 margin_top = -59.0
margin_right = 1257.0 margin_right = 1257.0
margin_bottom = -8.0 margin_bottom = -8.0
custom_fonts/font = SubResource( 2 ) custom_fonts/font = SubResource( 1 )
text = "Entering: Depths" text = "Entering: Depths"
valign = 2 valign = 2
__meta__ = { __meta__ = {
@ -129,6 +115,7 @@ __meta__ = {
} }
[node name="Tip" type="Label" parent="."] [node name="Tip" type="Label" parent="."]
visible = false
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 0.5 anchor_top = 0.5
anchor_right = 0.5 anchor_right = 0.5
@ -137,9 +124,48 @@ margin_left = -386.0
margin_top = -110.5 margin_top = -110.5
margin_right = 386.0 margin_right = 386.0
margin_bottom = 110.5 margin_bottom = 110.5
custom_fonts/font = SubResource( 3 ) custom_fonts/font = SubResource( 2 )
text = "Press WASD to move" text = "Press WASD to move"
align = 1 align = 1
__meta__ = { __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Fader" type="ColorRect" parent="."]
visible = false
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 2
color = Color( 0, 0, 0, 1 )
script = ExtResource( 6 )
__meta__ = {
"_edit_use_anchors_": false
}
start_with_fade_in = false
[node name="ElevatorDialog" type="WindowDialog" parent="."]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -125.5
margin_top = -132.0
margin_right = 125.5
margin_bottom = 132.0
theme = ExtResource( 1 )
window_title = "Elevator"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Buttons" type="VBoxContainer" parent="ElevatorDialog"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 6.0
margin_top = 6.0
margin_right = -6.0
margin_bottom = -6.0
alignment = 1
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -1,28 +1,27 @@
[gd_scene load_steps=12 format=2] [gd_scene load_steps=13 format=2]
[ext_resource path="res://Assets/Sfx/intro/processed.wav" type="AudioStream" id=1] [ext_resource path="res://Assets/Sfx/intro/processed.wav" type="AudioStream" id=1]
[ext_resource path="res://Scripts/Component/StorySpeaker.gd" type="Script" id=2] [ext_resource path="res://Scripts/Component/StorySpeaker.gd" type="Script" id=2]
[ext_resource path="res://Scripts/Entities/NPCs/Aura.gd" type="Script" id=3] [ext_resource path="res://Scripts/Entities/NPCs/Aura.gd" type="Script" id=3]
[ext_resource path="res://Assets/Art/Characters/aura.png" type="Texture" id=4] [ext_resource path="res://Assets/Art/Characters/aura.png" type="Texture" id=4]
[ext_resource path="res://Scripts/Entities/Fader.gd" type="Script" id=5]
[sub_resource type="AtlasTexture" id=1] [sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 4 ) atlas = ExtResource( 4 )
region = Rect2( 23, 0, 5, 16 ) region = Rect2( 23, 0, 5, 16 )
[sub_resource type="StreamTexture" id=3] [sub_resource type="StreamTexture" id=2]
load_path = "res://.import/aura.png-d56c2c3c604fb12791bf7613004ed5a9.stex" load_path = "res://.import/aura.png-d56c2c3c604fb12791bf7613004ed5a9.stex"
[sub_resource type="AtlasTexture" id=4] [sub_resource type="AtlasTexture" id=3]
atlas = SubResource( 3 ) atlas = SubResource( 2 )
region = Rect2( 19, 0, 3, 16 ) region = Rect2( 19, 0, 3, 16 )
[sub_resource type="AtlasTexture" id=5] [sub_resource type="AtlasTexture" id=4]
atlas = SubResource( 3 ) atlas = SubResource( 2 )
region = Rect2( 29, 0, 3, 16 ) region = Rect2( 29, 0, 3, 16 )
[sub_resource type="RectangleShape2D" id=2] [sub_resource type="RectangleShape2D" id=5]
extents = Vector2( 62.9439, 20.084 ) extents = Vector2( 62.9439, 20.084 )
[sub_resource type="Animation" id=6] [sub_resource type="Animation" id=6]
@ -160,16 +159,16 @@ texture = SubResource( 1 )
[node name="RightArm" type="Sprite" parent="Torso"] [node name="RightArm" type="Sprite" parent="Torso"]
position = Vector2( -3, 0 ) position = Vector2( -3, 0 )
z_index = -1 z_index = -1
texture = SubResource( 4 ) texture = SubResource( 3 )
[node name="LeftArm" type="Sprite" parent="Torso"] [node name="LeftArm" type="Sprite" parent="Torso"]
position = Vector2( 3, 0 ) position = Vector2( 3, 0 )
z_index = -1 z_index = -1
texture = SubResource( 5 ) texture = SubResource( 4 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false visible = false
shape = SubResource( 2 ) shape = SubResource( 5 )
[node name="Speaker" type="Node" parent="."] [node name="Speaker" type="Node" parent="."]
script = ExtResource( 2 ) script = ExtResource( 2 )
@ -190,6 +189,18 @@ __meta__ = {
"_edit_use_anchors_": false "_edit_use_anchors_": false
} }
[node name="Fader" type="ColorRect" parent="CanvasLayer"]
visible = false
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 2
color = Color( 0, 0, 0, 1 )
script = ExtResource( 5 )
__meta__ = {
"_edit_use_anchors_": false
}
start_with_fade_in = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
anims/Idle = SubResource( 6 ) anims/Idle = SubResource( 6 )
anims/Shoot = SubResource( 7 ) anims/Shoot = SubResource( 7 )

View File

@ -8,9 +8,7 @@
[ext_resource path="res://Assets/Art/Objects/flashlight.png" type="Texture" id=6] [ext_resource path="res://Assets/Art/Objects/flashlight.png" type="Texture" id=6]
[ext_resource path="res://Scripts/Entities/Flashlight.gd" type="Script" id=7] [ext_resource path="res://Scripts/Entities/Flashlight.gd" type="Script" id=7]
[sub_resource type="Animation" id=1]
[sub_resource type="Animation" id=17]
resource_name = "Idle" resource_name = "Idle"
length = 2.0 length = 2.0
loop = true loop = true
@ -471,7 +469,7 @@ tracks/44/keys = {
"values": [ Vector2( 0, -2.5 ) ] "values": [ Vector2( 0, -2.5 ) ]
} }
[sub_resource type="Animation" id=21] [sub_resource type="Animation" id=2]
resource_name = "InAir" resource_name = "InAir"
length = 1.5 length = 1.5
loop = true loop = true
@ -716,7 +714,7 @@ tracks/23/keys = {
"times": PoolRealArray( 0, 0.8, 1.5 ) "times": PoolRealArray( 0, 0.8, 1.5 )
} }
[sub_resource type="Animation" id=22] [sub_resource type="Animation" id=3]
resource_name = "Jump" resource_name = "Jump"
length = 0.7 length = 0.7
tracks/0/type = "bezier" tracks/0/type = "bezier"
@ -870,7 +868,7 @@ tracks/14/keys = {
"times": PoolRealArray( 0, 0.4 ) "times": PoolRealArray( 0, 0.4 )
} }
[sub_resource type="Animation" id=18] [sub_resource type="Animation" id=4]
resource_name = "RunLeft" resource_name = "RunLeft"
length = 0.9 length = 0.9
loop = true loop = true
@ -1309,7 +1307,7 @@ tracks/42/keys = {
"times": PoolRealArray( 0, 0.5, 0.9 ) "times": PoolRealArray( 0, 0.5, 0.9 )
} }
[sub_resource type="Animation" id=19] [sub_resource type="Animation" id=5]
length = 0.9 length = 0.9
loop = true loop = true
tracks/0/type = "bezier" tracks/0/type = "bezier"
@ -1719,109 +1717,109 @@ tracks/39/keys = {
"times": PoolRealArray( 0, 0.5, 0.9 ) "times": PoolRealArray( 0, 0.5, 0.9 )
} }
[sub_resource type="CapsuleShape2D" id=20] [sub_resource type="RectangleShape2D" id=6]
radius = 1.5 extents = Vector2( 3.06702, 6.9149 )
height = 10.5
[sub_resource type="AtlasTexture" id=1]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 1, 7, 3, 4 )
[sub_resource type="AtlasTexture" id=2]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 2, 6, 1, 1 )
[sub_resource type="AtlasTexture" id=3]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 1, 1, 4, 4 )
[sub_resource type="AtlasTexture" id=4]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 7, 8, 1, 2 )
[sub_resource type="AtlasTexture" id=5]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 6, 10, 1, 2 )
[sub_resource type="AtlasTexture" id=6]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 6, 12, 1, 1 )
[sub_resource type="AtlasTexture" id=7] [sub_resource type="AtlasTexture" id=7]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 9, 8, 1, 2 ) region = Rect2( 1, 7, 3, 4 )
[sub_resource type="AtlasTexture" id=8] [sub_resource type="AtlasTexture" id=8]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 10, 10, 1, 2 ) region = Rect2( 2, 6, 1, 1 )
[sub_resource type="AtlasTexture" id=9] [sub_resource type="AtlasTexture" id=9]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 11, 3, 2 ) region = Rect2( 1, 1, 4, 4 )
[sub_resource type="AtlasTexture" id=10] [sub_resource type="AtlasTexture" id=10]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 13, 3, 1 ) region = Rect2( 7, 8, 1, 2 )
[sub_resource type="AtlasTexture" id=11] [sub_resource type="AtlasTexture" id=11]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 14, 3, 1 ) region = Rect2( 6, 10, 1, 2 )
[sub_resource type="AtlasTexture" id=12] [sub_resource type="AtlasTexture" id=12]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 15, 3, 1 ) region = Rect2( 6, 12, 1, 1 )
[sub_resource type="AtlasTexture" id=13] [sub_resource type="AtlasTexture" id=13]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 17, 1, 2 ) region = Rect2( 9, 8, 1, 2 )
[sub_resource type="AtlasTexture" id=14] [sub_resource type="AtlasTexture" id=14]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 19, 1, 2 ) region = Rect2( 10, 10, 1, 2 )
[sub_resource type="AtlasTexture" id=15] [sub_resource type="AtlasTexture" id=15]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 3, 17, 1, 2 ) region = Rect2( 1, 11, 3, 2 )
[sub_resource type="AtlasTexture" id=16] [sub_resource type="AtlasTexture" id=16]
flags = 8 flags = 8
atlas = ExtResource( 2 ) atlas = ExtResource( 2 )
region = Rect2( 1, 13, 3, 1 )
[sub_resource type="AtlasTexture" id=17]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 1, 14, 3, 1 )
[sub_resource type="AtlasTexture" id=18]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 1, 15, 3, 1 )
[sub_resource type="AtlasTexture" id=19]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 1, 17, 1, 2 )
[sub_resource type="AtlasTexture" id=20]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 1, 19, 1, 2 )
[sub_resource type="AtlasTexture" id=21]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 3, 17, 1, 2 )
[sub_resource type="AtlasTexture" id=22]
flags = 8
atlas = ExtResource( 2 )
region = Rect2( 3, 19, 1, 2 ) region = Rect2( 3, 19, 1, 2 )
[node name="Player" type="KinematicBody2D"] [node name="Player" type="KinematicBody2D"]
collision/safe_margin = 3.0 collision_layer = 3
collision_mask = 3
script = ExtResource( 4 ) script = ExtResource( 4 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "Idle" autoplay = "Idle"
anims/Idle = SubResource( 17 ) anims/Idle = SubResource( 1 )
anims/InAir = SubResource( 21 ) anims/InAir = SubResource( 2 )
anims/Jump = SubResource( 22 ) anims/Jump = SubResource( 3 )
anims/RunLeft = SubResource( 18 ) anims/RunLeft = SubResource( 4 )
anims/RunRight = SubResource( 19 ) anims/RunRight = SubResource( 5 )
[node name="Camera2D" type="Camera2D" parent="."] [node name="Camera2D" type="Camera2D" parent="."]
current = true current = true
zoom = Vector2( 0.187, 0.187 ) zoom = Vector2( 0.187, 0.187 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false position = Vector2( -0.0595379, 2.35723 )
shape = SubResource( 20 ) shape = SubResource( 6 )
[node name="Light2D" type="Light2D" parent="."] [node name="Light2D" type="Light2D" parent="."]
texture = ExtResource( 3 ) texture = ExtResource( 3 )
@ -1834,13 +1832,13 @@ position = Vector2( 0, 2 )
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 0.001 ) position = Vector2( 0, 0.001 )
z_index = 10 z_index = 10
texture = SubResource( 1 ) texture = SubResource( 7 )
[node name="Neck" type="Sprite" parent="Sprite/Torso"] [node name="Neck" type="Sprite" parent="Sprite/Torso"]
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, -2.5 ) position = Vector2( 0, -2.5 )
z_index = -1 z_index = -1
texture = SubResource( 2 ) texture = SubResource( 8 )
__meta__ = { __meta__ = {
"_edit_bone_": true, "_edit_bone_": true,
"_edit_ik_": true "_edit_ik_": true
@ -1849,7 +1847,7 @@ __meta__ = {
[node name="Head" type="Sprite" parent="Sprite/Torso/Neck"] [node name="Head" type="Sprite" parent="Sprite/Torso/Neck"]
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, -2.25 ) position = Vector2( 0, -2.25 )
texture = SubResource( 3 ) texture = SubResource( 9 )
offset = Vector2( 0.5, 0 ) offset = Vector2( 0.5, 0 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
@ -1862,7 +1860,7 @@ position = Vector2( -0.0449371, -1.88724 )
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( -2, 0 ) position = Vector2( -2, 0 )
z_index = -1 z_index = -1
texture = SubResource( 4 ) texture = SubResource( 10 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1871,7 +1869,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( -0.5, 1.75 ) position = Vector2( -0.5, 1.75 )
z_index = 3 z_index = 3
texture = SubResource( 5 ) texture = SubResource( 11 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1879,7 +1877,7 @@ __meta__ = {
[node name="LeftHand" type="Sprite" parent="Sprite/Torso/LeftArm/LeftForearm"] [node name="LeftHand" type="Sprite" parent="Sprite/Torso/LeftArm/LeftForearm"]
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 1.35 ) position = Vector2( 0, 1.35 )
texture = SubResource( 6 ) texture = SubResource( 12 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1894,7 +1892,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 2, 0 ) position = Vector2( 2, 0 )
z_index = -2 z_index = -2
texture = SubResource( 7 ) texture = SubResource( 13 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1903,7 +1901,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0.5, 1.75 ) position = Vector2( 0.5, 1.75 )
z_index = -3 z_index = -3
texture = SubResource( 8 ) texture = SubResource( 14 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1912,7 +1910,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 1.35 ) position = Vector2( 0, 1.35 )
rotation = 0.0242677 rotation = 0.0242677
texture = SubResource( 6 ) texture = SubResource( 12 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1951,7 +1949,7 @@ energy = 0.5
[node name="Hips" type="Sprite" parent="Sprite/Torso"] [node name="Hips" type="Sprite" parent="Sprite/Torso"]
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 2.75 ) position = Vector2( 0, 2.75 )
texture = SubResource( 9 ) texture = SubResource( 15 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1960,7 +1958,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 1 ) position = Vector2( 0, 1 )
z_index = -2 z_index = -2
texture = SubResource( 10 ) texture = SubResource( 16 )
__meta__ = { __meta__ = {
"_edit_bone_": true, "_edit_bone_": true,
"_edit_ik_": true "_edit_ik_": true
@ -1970,7 +1968,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 0.75 ) position = Vector2( 0, 0.75 )
z_index = -2 z_index = -2
texture = SubResource( 11 ) texture = SubResource( 17 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1979,7 +1977,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 0.75 ) position = Vector2( 0, 0.75 )
z_index = -2 z_index = -2
texture = SubResource( 12 ) texture = SubResource( 18 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -1994,7 +1992,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( -1, 1.75 ) position = Vector2( -1, 1.75 )
z_index = -2 z_index = -2
texture = SubResource( 13 ) texture = SubResource( 19 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -2003,7 +2001,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 1.75 ) position = Vector2( 0, 1.75 )
z_index = -2 z_index = -2
texture = SubResource( 14 ) texture = SubResource( 20 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -2018,7 +2016,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 1, 1.75 ) position = Vector2( 1, 1.75 )
z_index = -2 z_index = -2
texture = SubResource( 15 ) texture = SubResource( 21 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }
@ -2027,7 +2025,7 @@ __meta__ = {
material = ExtResource( 1 ) material = ExtResource( 1 )
position = Vector2( 0, 1.75 ) position = Vector2( 0, 1.75 )
z_index = -2 z_index = -2
texture = SubResource( 16 ) texture = SubResource( 22 )
__meta__ = { __meta__ = {
"_edit_bone_": true "_edit_bone_": true
} }

View File

@ -5,8 +5,6 @@
[ext_resource path="res://Scripts/Component/LightLoader.gd" type="Script" id=3] [ext_resource path="res://Scripts/Component/LightLoader.gd" type="Script" id=3]
[ext_resource path="res://Scripts/Entities/Wall Light.gd" type="Script" id=4] [ext_resource path="res://Scripts/Entities/Wall Light.gd" type="Script" id=4]
[sub_resource type="CircleShape2D" id=1] [sub_resource type="CircleShape2D" id=1]
radius = 200.0 radius = 200.0

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
extends "res://Scripts/Component/Interactable.gd"
func _ready():
connect("interacted", get_parent(), "_on_interact")

View File

@ -0,0 +1,8 @@
extends Area2D
func _ready():
connect("body_entered", self, "_on_body_entered")
func _on_body_entered(body):
if body.has_method("handle_death"):
body.handle_death()

View File

@ -0,0 +1,25 @@
extends Area2D
var player_node
func _ready():
connect("body_entered", self, "_on_body_enter")
connect("body_exited", self, "_on_body_exit")
set_process(false)
func _on_body_enter(body):
if body.has_method("user_input"):
player_node = body
set_process(true)
func _on_body_exit(body):
if body.has_method("user_input"):
body.floor_speed = Vector2.ZERO
set_process(false)
func _process(delta):
if get_parent().motion.y > 0:
player_node.floor_speed = get_parent().motion
else:
player_node.floor_speed = Vector2.ZERO

View File

@ -0,0 +1,8 @@
extends Area2D
func _ready():
connect("body_entered", self, "_on_body_entered")
func _on_body_entered(body):
if body.saved_pos:
body.saved_pos = body.position

View File

@ -6,34 +6,43 @@ var opened = false
export var locked = false export var locked = false
export var security_level = 0 export var security_level = 0
var player_level = -1 var player_level = -1
var color_node : Node2D
func lock(): func lock():
locked = true locked = true
$Top/Color.modulate = Color.red if color_node:
color_node.modulate = Color.red
func unlock(): func unlock():
locked = false locked = false
set_color() set_color()
func set_color(): func set_color():
if color_node:
match(security_level): match(security_level):
0: 0:
$Top/Color.modulate = Color.green color_node.modulate = Color.green
1: 1:
$Top/Color.modulate = Color.blue color_node.modulate = Color.blue
2: 2:
$Top/Color.modulate = Color.yellow color_node.modulate = Color.yellow
3: 3:
$Top/Color.modulate = Color.orange color_node.modulate = Color.orange
4: 4:
$Top/Color.modulate = Color.red color_node.modulate = Color.red
5: 5:
$Top/Color.modulate = Color.purple color_node.modulate = Color.purple
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
connect("body_entered", self, "_on_body_enter") connect("body_entered", self, "_on_body_enter")
connect("body_exited", self, "_on_body_exit") connect("body_exited", self, "_on_body_exit")
if $Top/Color:
color_node = $Top/Color
elif $Color:
color_node = $Color
if locked: if locked:
lock() lock()
else: else:
@ -60,6 +69,7 @@ func close():
if opened: if opened:
$AnimationPlayer.play("Close") $AnimationPlayer.play("Close")
$AudioStreamPlayer2D.play() $AudioStreamPlayer2D.play()
$StaticBody2D.collision_layer = 1 $StaticBody2D.collision_layer = 1
$StaticBody2D.collision_mask = 1 $StaticBody2D.collision_mask = 1
opened = false opened = false

View File

@ -0,0 +1,65 @@
extends Node2D
signal elevator_stopped
export(Array, Vector2) var relative_positions = [Vector2(0,0)]
export(Array, String) var labels = ["Default"]
export(Array, NodePath) var doors = []
export var current_pos : int = 0
var moving : bool = false
var gui
var motion
var intial_pos : Vector2
export var elevator_speed = 25
func _ready():
motion = Vector2.ZERO
intial_pos = global_position
func _on_interact():
if not moving:
if not gui:
gui = get_node("/root/World/GUI")
gui.open_elevator_menu(self)
func _on_choice(index):
start_moving(index)
gui.close_elevator_menu()
func start_moving(index):
if current_pos != index:
moving = true
current_pos = index
# Close all doors while in transit
for door_path in doors:
var door = get_node(door_path)
door.close()
door.lock()
return true
return false
func stop_moving():
emit_signal("elevator_stopped")
moving = false
motion = Vector2.ZERO
# Alert doors of updated elevator state
for door_path in doors:
get_node(door_path).on_elevator_stop(current_pos)
func _physics_process(delta):
if moving:
# Move towards elevator stop
var target_pos = intial_pos + relative_positions[current_pos]
var angle = get_angle_to(target_pos)
var velocity = Vector2(cos(angle),sin(angle))
motion = velocity * elevator_speed
global_position += velocity * elevator_speed * delta
# Stop when elevator is at destination
if global_position.distance_to(target_pos) < 0.25:
global_position = target_pos
stop_moving()

View File

@ -0,0 +1,20 @@
extends "res://Scripts/Component/Interactable.gd"
export(NodePath) var elevator
export var call_to_index : int = 0
var elevator_node
func _ready():
elevator_node = get_node(elevator)
connect("interacted", self, "_on_interact")
$AnimationPlayer.play("Done")
func _on_interact():
if elevator_node.start_moving(call_to_index):
elevator_node.connect("elevator_stopped", self, "_on_finish")
$AnimationPlayer.play("Waiting")
func _on_finish():
elevator_node.disconnect("elevator_stopped", self, "_on_finish")
$AnimationPlayer.play("Done")

View File

@ -0,0 +1,10 @@
extends "res://Scripts/Entities/Door.gd"
export var level_index : int = 0
func on_elevator_stop(index):
if index == level_index:
unlock()
open()
else:
lock()

View File

@ -39,7 +39,7 @@ func shoot_scene():
func start_fade(): func start_fade():
timer.stop() timer.stop()
var fader = get_tree().root.get_node("World").get_node("Fader").get_child(0) var fader = $CanvasLayer/Fader
fader.connect("fade_complete", self, "go_to_credits") fader.connect("fade_complete", self, "go_to_credits")
fader.fade(2, false) fader.fade(2, false)

View File

@ -7,20 +7,53 @@ var baseGravity : float = 9.8
# Player movment variables # Player movment variables
var maxMoveVelocity : float = 150 var maxMoveVelocity : float = 150
var moveAcceleration : float = 125 var moveAcceleration : float = 100
var moveFriction : float = 65 var moveFriction : float = 65
var jumpVelocity : float = -150 var jumpVelocity : float = -150
var jumped = false var jumped = false
var moveMotion : float = 0 # Player Input ( <- & -> ) var moveMotion : float = 0 # Player Input ( <- & -> )
var motion : Vector2 = Vector2(0,0) # Player's current velocity var motion : Vector2 = Vector2(0,0) # Player's current velocity
var floor_speed : Vector2 = Vector2.ZERO
var gui var gui # Node representing GUI object
var interactables = [] var interactables = [] # Objects in range to interact with
var items = [] var items = [] # Items in player inventory
var equiped = null var equiped = null # Currently equiped item
var saved_pos
func _ready():
saved_pos = position
#==================
# Helper Functions
#==================
func is_movement_locked():
if gui and gui.is_in_dialog():
return true
return false
func check_for_nodes():
if not gui:
gui = get_node("/root/World/GUI")
#==================
# Death management
#==================
func handle_death():
print_debug("Player death not implemented!")
gui.fade_screen(0.25, false)
gui.connect("screen_fade_complete", self, "death_fade_complete")
func death_fade_complete():
position = saved_pos
gui.fade_screen(1, true)
gui.disconnect("screen_fade_complete", self, "death_fade_complete")
#==================
# Inventory System
#==================
func add_item(item): func add_item(item):
items.append(item) items.append(item)
equip_item(item) equip_item(item)
@ -33,25 +66,37 @@ func equip_item(item):
else: else:
print("Tried to equip: " + item + " but item was missing!") print("Tried to equip: " + item + " but item was missing!")
#==============
# Interactions
#==============
func add_interactable(interactable): func add_interactable(interactable):
interactables.append(interactable) interactables.append(interactable)
func remove_interactable(interactable): func remove_interactable(interactable):
var loc = interactables.find(interactable) var loc = interactables.find(interactable)
if loc >= 0: if loc >= 0:
interactables.remove(loc) interactables.remove(loc)
func interact():
interactables[0].interact()
#==========
# Game Loop
#===========
func _physics_process(delta): func _physics_process(delta):
check_for_nodes()
jumped = false jumped = false
# Gravity # Gravity
motion.y += baseGravity
if is_on_floor(): if is_on_floor():
motion.y = 0 motion.y = 0
else:
motion.y += baseGravity
if not gui: # Manage movement input
gui = get_node("/root/World/GUI") if not is_movement_locked():
elif not gui.is_in_dialog():
user_input() user_input()
if jumped:
motion.y = jumpVelocity
else: else:
moveMotion = 0 moveMotion = 0
@ -60,51 +105,68 @@ func _physics_process(delta):
# Apply velocity to frame # Apply velocity to frame
motion.x = moveMotion motion.x = moveMotion
motion = motion + floor_speed
animation_manager(moveMotion) animation_manager(moveMotion)
move_and_slide(motion, Vector2(0,-1)) move_and_slide(motion, Vector2(0,-1))
#===================
func user_input(): # Animation Manager
if Input.is_action_just_pressed("interact") and len(interactables) > 0 and not gui.is_in_dialog(): #===================
interactables[0].interact() #
# Changes animation basd on current
if is_on_floor() and Input.is_action_just_pressed("ui_up") and Input.is_action_pressed("ui_down"): # conditions
var test_pos = Vector2(position.x,position.y+5)
if not test_move(Transform2D(0,test_pos), Vector2(0,8)):
position.y = position.y + 8
return
if(Input.is_action_pressed("ui_left")):
moveMotion = -moveAcceleration
if(Input.is_action_pressed("ui_right")):
moveMotion = moveAcceleration
if(is_on_floor() and Input.is_action_just_pressed("ui_up")):
motion.y = jumpVelocity
jumped = true
if is_on_floor() and (!Input.is_action_pressed("ui_left") and !Input.is_action_pressed("ui_right")):
if moveMotion > 0:
moveMotion = clamp(moveMotion - moveFriction, 0, moveMotion)
elif moveMotion < 0:
moveMotion = clamp(moveMotion + moveFriction, moveMotion, 0)
func animation_manager(motion : float): func animation_manager(motion : float):
if not is_on_floor(): if not test_move(transform, Vector2(0,1)):
$AnimationPlayer.play("InAir") $AnimationPlayer.play("InAir")
elif jumped: elif jumped:
if $AnimationPlayer.current_animation != "Jump": if $AnimationPlayer.current_animation != "Jump":
$AnimationPlayer.play("Jump") $AnimationPlayer.play("Jump")
elif moveMotion > 0: elif moveMotion > 0:
$AnimationPlayer.playback_speed = abs(motion)/200 $AnimationPlayer.playback_speed = abs(motion)/100
if $AnimationPlayer.current_animation != "RunRight": if $AnimationPlayer.current_animation != "RunRight":
$AnimationPlayer.play("RunRight") $AnimationPlayer.play("RunRight")
elif moveMotion < 0: elif moveMotion < 0:
$AnimationPlayer.playback_speed = abs(motion)/200 $AnimationPlayer.playback_speed = abs(motion)/100
if $AnimationPlayer.current_animation != "RunLeft": if $AnimationPlayer.current_animation != "RunLeft":
$AnimationPlayer.play("RunLeft") $AnimationPlayer.play("RunLeft")
else: else:
$AnimationPlayer.playback_speed = 1 $AnimationPlayer.playback_speed = 1
$AnimationPlayer.play("Idle") $AnimationPlayer.play("Idle")
#============
# User Input
#============
func user_input():
# Interactions
if Input.is_action_just_pressed("interact") and len(interactables) > 0 and not gui.is_in_dialog():
interact()
# Jumping
if Input.is_action_just_pressed("ui_up"):
if Input.is_action_pressed("ui_down"):
if is_on_floor():
var test_pos = Vector2(position.x,position.y+6)
if not test_move(Transform2D(0,test_pos), Vector2(0,1)):
position.y = position.y + 2
return
elif(test_move(transform, Vector2(0,1))):
jumped = true
# Move left and right <- & ->
# - - - - - - - - - - - - - - -
var movementModifier = 1
if not test_move(transform, Vector2(0,1)):
movementModifier = 0.5
# Movement input
if(Input.is_action_pressed("ui_left")):
moveMotion = -moveAcceleration * movementModifier
if(Input.is_action_pressed("ui_right")):
moveMotion = moveAcceleration * movementModifier
if is_on_floor() and (!Input.is_action_pressed("ui_left") and !Input.is_action_pressed("ui_right")):
if moveMotion > 0:
moveMotion = clamp(moveMotion - moveFriction, 0, moveMotion)
elif moveMotion < 0:
moveMotion = clamp(moveMotion + moveFriction, moveMotion, 0)

View File

@ -1,7 +1,9 @@
extends Sprite extends Sprite
export var shadows : bool = false export var shadows : bool = false
export var energy : float = 1.1
func _ready(): func _ready():
$Light2D.show() $Light2D.show()
$Light2D.shadow_enabled = shadows $Light2D.shadow_enabled = shadows
$Light2D.energy = energy

View File

@ -1,5 +1,7 @@
extends CanvasLayer extends CanvasLayer
signal screen_fade_complete
var in_dialog = false var in_dialog = false
var tip_timer : Timer var tip_timer : Timer
var zone_timer : Timer var zone_timer : Timer
@ -14,6 +16,7 @@ func _ready():
$Dialog.hide() $Dialog.hide()
$Tip.hide() $Tip.hide()
$ZoneLabel.hide() $ZoneLabel.hide()
$Fader.connect("fade_complete", self, "_on_screen_fade_complete")
func is_in_dialog(): func is_in_dialog():
return in_dialog or $Dialog.is_visible_in_tree() return in_dialog or $Dialog.is_visible_in_tree()
@ -111,3 +114,26 @@ func fade_zone_out():
$ZoneLabel.modulate.a = clamp($ZoneLabel.modulate.a - 0.1, 0, 1) $ZoneLabel.modulate.a = clamp($ZoneLabel.modulate.a - 0.1, 0, 1)
if $ZoneLabel.modulate.a == 0: if $ZoneLabel.modulate.a == 0:
zone_timer.stop() zone_timer.stop()
func fade_screen(seconds = 1, fade_in=true):
$Fader.fade(seconds, fade_in)
func _on_screen_fade_complete():
emit_signal("screen_fade_complete")
func open_elevator_menu(elevator):
for i in range($ElevatorDialog/Buttons.get_child_count()):
$ElevatorDialog/Buttons.get_child(i).queue_free()
var num = 0
for pos in elevator.relative_positions:
var button = Button.new()
button.text = elevator.labels[num]
button.connect("button_down", elevator, "_on_choice", [num])
$ElevatorDialog/Buttons.add_child(button)
num = num + 1
$ElevatorDialog.popup_centered()
func close_elevator_menu():
$ElevatorDialog.hide()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

View File

@ -5,7 +5,7 @@ bus/1/name = "Music"
bus/1/solo = false bus/1/solo = false
bus/1/mute = false bus/1/mute = false
bus/1/bypass_fx = false bus/1/bypass_fx = false
bus/1/volume_db = -8.39524 bus/1/volume_db = -6.57885
bus/1/send = "Master" bus/1/send = "Master"
bus/2/name = "Sfx" bus/2/name = "Sfx"
bus/2/solo = false bus/2/solo = false