Added Grant Blevins
This commit is contained in:
@ -0,0 +1,3 @@
|
|||||||
|
source_md5="02860f21d0b06f5acf9d6f81718d443a"
|
||||||
|
dest_md5="29b11c828e308d1479c7681a6d77bbda"
|
||||||
|
|
Binary file not shown.
@ -1,3 +1,3 @@
|
|||||||
source_md5="4a4e86688ea9e233c2a97d2091f91210"
|
source_md5="4a4e86688ea9e233c2a97d2091f91210"
|
||||||
dest_md5="f46730c502307e961aea5b1794b64187"
|
dest_md5="0b5f4549065c5a8e08ef3984540c93ea"
|
||||||
|
|
||||||
|
Binary file not shown.
@ -20,7 +20,7 @@ compress/hdr_mode=0
|
|||||||
compress/bptc_ldr=0
|
compress/bptc_ldr=0
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
flags/repeat=0
|
flags/repeat=0
|
||||||
flags/filter=true
|
flags/filter=false
|
||||||
flags/mipmaps=false
|
flags/mipmaps=false
|
||||||
flags/anisotropic=true
|
flags/anisotropic=true
|
||||||
flags/srgb=2
|
flags/srgb=2
|
||||||
|
BIN
client/Assets/Art/platform.aseprite
Normal file
BIN
client/Assets/Art/platform.aseprite
Normal file
Binary file not shown.
BIN
client/Assets/Art/platform.png
Normal file
BIN
client/Assets/Art/platform.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 112 B |
34
client/Assets/Art/platform.png.import
Normal file
34
client/Assets/Art/platform.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/platform.png-fa6c1000359a082b3ed63552d71e9023.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Art/platform.png"
|
||||||
|
dest_files=[ "res://.import/platform.png-fa6c1000359a082b3ed63552d71e9023.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
|
@ -6,6 +6,7 @@
|
|||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
TYPE = "EXP_Story_editor"
|
TYPE = "EXP_Story_editor"
|
||||||
names = {
|
names = {
|
||||||
|
"intro_meet_ceo": 4,
|
||||||
"intro_science": 1,
|
"intro_science": 1,
|
||||||
"intro_science_followup": 3,
|
"intro_science_followup": 3,
|
||||||
"intro_text": 2
|
"intro_text": 2
|
||||||
@ -180,7 +181,7 @@ Central Tower.",
|
|||||||
},
|
},
|
||||||
"rect_size": Vector2( 324, 137 ),
|
"rect_size": Vector2( 324, 137 ),
|
||||||
"slot_amount": 1,
|
"slot_amount": 1,
|
||||||
"text": "Name: Veronica Dohwns",
|
"text": "Name: Veronica SCENE Gilmore",
|
||||||
"type": "line"
|
"type": "line"
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
@ -220,7 +221,7 @@ Central Tower.",
|
|||||||
},
|
},
|
||||||
"rect_size": Vector2( 324, 137 ),
|
"rect_size": Vector2( 324, 137 ),
|
||||||
"slot_amount": 1,
|
"slot_amount": 1,
|
||||||
"text": "Welcome Veroinica!",
|
"text": "Welcome SCENE!",
|
||||||
"type": "line"
|
"type": "line"
|
||||||
},
|
},
|
||||||
6: {
|
6: {
|
||||||
@ -264,8 +265,9 @@ for our services.",
|
|||||||
"name": "intro_science_followup",
|
"name": "intro_science_followup",
|
||||||
"nodes": {
|
"nodes": {
|
||||||
1: {
|
1: {
|
||||||
"graph_offset": Vector2( -1300, -880 ),
|
"graph_offset": Vector2( -1300, -860 ),
|
||||||
"links": {
|
"links": {
|
||||||
|
0: 3,
|
||||||
1: 2
|
1: 2
|
||||||
},
|
},
|
||||||
"rect_size": Vector2( 441, 172 ),
|
"rect_size": Vector2( 441, 172 ),
|
||||||
@ -276,7 +278,7 @@ for our services.",
|
|||||||
"type": "line"
|
"type": "line"
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
"graph_offset": Vector2( -780, -840 ),
|
"graph_offset": Vector2( -780, -820 ),
|
||||||
"links": {
|
"links": {
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -285,6 +287,346 @@ for our services.",
|
|||||||
"text": "Don't make such false accusations. Get back to your job
|
"text": "Don't make such false accusations. Get back to your job
|
||||||
and find the real culpurit.",
|
and find the real culpurit.",
|
||||||
"type": "line"
|
"type": "line"
|
||||||
|
},
|
||||||
|
3: {
|
||||||
|
"graph_offset": Vector2( -780, -1000 ),
|
||||||
|
"links": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Okay then.",
|
||||||
|
"type": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
4: {
|
||||||
|
"available_nid": [ ],
|
||||||
|
"groups": [ "Introduction" ],
|
||||||
|
"human_readable_description": "First interaction with CEO Grant Blevins",
|
||||||
|
"name": "intro_meet_ceo",
|
||||||
|
"nodes": {
|
||||||
|
1: {
|
||||||
|
"graph_offset": Vector2( 60, 0 ),
|
||||||
|
"links": {
|
||||||
|
0: 2
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Hello Scene.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
2: {
|
||||||
|
"graph_offset": Vector2( 540, 0 ),
|
||||||
|
"links": {
|
||||||
|
0: 3
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"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.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
3: {
|
||||||
|
"graph_offset": Vector2( 1020, 0 ),
|
||||||
|
"links": {
|
||||||
|
0: 7,
|
||||||
|
1: 4
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 2,
|
||||||
|
"text": "You will not disappoint me, right Scene?
|
||||||
|
<choice>Of course not!</choice>
|
||||||
|
<choice>I will do my best</choice>",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
4: {
|
||||||
|
"graph_offset": Vector2( 1500, 100 ),
|
||||||
|
"links": {
|
||||||
|
0: 5
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Ha! Such a 21st century phrase.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
5: {
|
||||||
|
"graph_offset": Vector2( 1980, 100 ),
|
||||||
|
"links": {
|
||||||
|
0: 6
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "You will need more than just your wits to defeat this
|
||||||
|
traitor.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
6: {
|
||||||
|
"graph_offset": Vector2( 2460, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 8
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "So much lost...",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
7: {
|
||||||
|
"graph_offset": Vector2( 1760, -80 ),
|
||||||
|
"links": {
|
||||||
|
0: 6
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "We will see. You had a great track record in the 21st century,
|
||||||
|
but we both remeber how your final job went.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
8: {
|
||||||
|
"graph_offset": Vector2( 2940, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 9,
|
||||||
|
1: 10
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 2,
|
||||||
|
"text": "What do you think of our facility here so far?
|
||||||
|
<choice>It's amazing!</choice>
|
||||||
|
<choice>I haven't seen much yet.</choice>",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
9: {
|
||||||
|
"graph_offset": Vector2( 3760, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 11
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "It's always interesting hearing the perspectives of those from the past.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
10: {
|
||||||
|
"graph_offset": Vector2( 3380, 240 ),
|
||||||
|
"links": {
|
||||||
|
0: 9
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Unfortunate.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
11: {
|
||||||
|
"graph_offset": Vector2( 4240, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 12
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Now away with the pleasantries.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
12: {
|
||||||
|
"graph_offset": Vector2( 4720, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 13
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "There has been a concerning amount of leaks of secret projects
|
||||||
|
and internal data to our competitor Duke Enterprises.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
13: {
|
||||||
|
"graph_offset": Vector2( 5200, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 14
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Due the volume and nature of the data, the one conspiring with
|
||||||
|
the Dukes must have extremely high security clearance.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
14: {
|
||||||
|
"graph_offset": Vector2( 5680, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 16
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "That is why I have given you nearly full access to our facilities.
|
||||||
|
This traitor could be anyone.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
15: {
|
||||||
|
"graph_offset": Vector2( 6660, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 17,
|
||||||
|
1: 19,
|
||||||
|
2: 20
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 3,
|
||||||
|
"text": "Do you have any questions before we get started?
|
||||||
|
<choice>Why me?</choice>
|
||||||
|
<choice>What year is it?</choice>
|
||||||
|
<choice>Where do I start?</choice>",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
16: {
|
||||||
|
"graph_offset": Vector2( 6160, 20 ),
|
||||||
|
"links": {
|
||||||
|
0: 15
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "I'm trusting you Scene. It's not a common thing in our time, but I have
|
||||||
|
little choice.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
17: {
|
||||||
|
"graph_offset": Vector2( 7140, -100 ),
|
||||||
|
"links": {
|
||||||
|
0: 18
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "I have always been sympathatic to societies of the past. Things were done...
|
||||||
|
different than they are now.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
18: {
|
||||||
|
"graph_offset": Vector2( 7620, -100 ),
|
||||||
|
"links": {
|
||||||
|
0: 15
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "You were one of the best investigators of your time! It was sad
|
||||||
|
you got caught up in the events of the old capital.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
19: {
|
||||||
|
"graph_offset": Vector2( 7140, 80 ),
|
||||||
|
"links": {
|
||||||
|
0: 15
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "It 3024, making it around 1000 years since your death.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
20: {
|
||||||
|
"graph_offset": Vector2( 7140, 260 ),
|
||||||
|
"links": {
|
||||||
|
0: 28,
|
||||||
|
1: 21,
|
||||||
|
2: 22
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 3,
|
||||||
|
"text": "We have a shipment of biological materials coming in today. It seems
|
||||||
|
like the sort of thing we have had troubles with recently.
|
||||||
|
<choice>Okay, where?</choice>
|
||||||
|
<choice>What sort of troubles?</choice>
|
||||||
|
<choice>Biological materials?</choice>",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
21: {
|
||||||
|
"graph_offset": Vector2( 7620, 300 ),
|
||||||
|
"links": {
|
||||||
|
0: 24
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Some of the data ending up in the Duke's hands is shipping information.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
22: {
|
||||||
|
"graph_offset": Vector2( 7620, 500 ),
|
||||||
|
"links": {
|
||||||
|
0: 23
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Yes, for our cloning facilities among other things.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
23: {
|
||||||
|
"graph_offset": Vector2( 8100, 500 ),
|
||||||
|
"links": {
|
||||||
|
0: 27
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Without such shipments, you wouldn't be standing here.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
24: {
|
||||||
|
"graph_offset": Vector2( 8100, 300 ),
|
||||||
|
"links": {
|
||||||
|
0: 25,
|
||||||
|
1: 26
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 2,
|
||||||
|
"text": "We have had too many missing shipments stopped by the coporate police.
|
||||||
|
<choice>Coporate police?</choice>
|
||||||
|
<choice>Why would they stop the shipments?</choice>",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
25: {
|
||||||
|
"graph_offset": Vector2( 8580, 260 ),
|
||||||
|
"links": {
|
||||||
|
0: 27
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Once democratic powers fell, enforcement was placed in the hand of the Corporate Collective,
|
||||||
|
the closest thing to a centralized government.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
26: {
|
||||||
|
"graph_offset": Vector2( 8580, 420 ),
|
||||||
|
"links": {
|
||||||
|
0: 27
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"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.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
27: {
|
||||||
|
"graph_offset": Vector2( 9060, 260 ),
|
||||||
|
"links": {
|
||||||
|
0: 28
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Anyway,",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
28: {
|
||||||
|
"graph_offset": Vector2( 9580, 100 ),
|
||||||
|
"links": {
|
||||||
|
0: 29
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "This building's shipping facility is located on mid levels. They should
|
||||||
|
not be too far out of reach.",
|
||||||
|
"type": "line"
|
||||||
|
},
|
||||||
|
29: {
|
||||||
|
"graph_offset": Vector2( 10060, 100 ),
|
||||||
|
"links": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"rect_size": Vector2( 324, 137 ),
|
||||||
|
"slot_amount": 1,
|
||||||
|
"text": "Keep me up to date on your progress.",
|
||||||
|
"type": "line"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
20
client/Nodes/NPCs/CEO.tscn
Normal file
20
client/Nodes/NPCs/CEO.tscn
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Scripts/Entities/NPCs/CEO.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://Scripts/Component/StorySpeaker.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://Assets/Art/Characters/business.png" type="Texture" id=3]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 5, 8 )
|
||||||
|
|
||||||
|
[node name="Scientist" type="Area2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite" parent="."]
|
||||||
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
|
[node name="Speaker" type="Node" parent="."]
|
||||||
|
script = ExtResource( 2 )
|
21
client/Nodes/NPCs/Scientist.tscn
Normal file
21
client/Nodes/NPCs/Scientist.tscn
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Scripts/Entities/NPCs/IntroScientist.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://Scripts/Component/StorySpeaker.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://Assets/Art/Characters/scientist.png" type="Texture" id=3]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
|
extents = Vector2( 5, 8 )
|
||||||
|
|
||||||
|
[node name="Scientist" type="Area2D"]
|
||||||
|
position = Vector2( 167.084, 231.933 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite" parent="."]
|
||||||
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="Speaker" type="Node" parent="."]
|
||||||
|
script = ExtResource( 2 )
|
@ -6,82 +6,82 @@
|
|||||||
[ext_resource path="res://Scripts/Entities/Player.gd" type="Script" id=4]
|
[ext_resource path="res://Scripts/Entities/Player.gd" type="Script" id=4]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=1]
|
[sub_resource type="AtlasTexture" id=1]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 7, 3, 4 )
|
region = Rect2( 1, 7, 3, 4 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=2]
|
[sub_resource type="AtlasTexture" id=2]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 2, 6, 1, 1 )
|
region = Rect2( 2, 6, 1, 1 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=3]
|
[sub_resource type="AtlasTexture" id=3]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 1, 3, 4 )
|
region = Rect2( 1, 1, 3, 4 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=4]
|
[sub_resource type="AtlasTexture" id=4]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 7, 8, 1, 2 )
|
region = Rect2( 7, 8, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=5]
|
[sub_resource type="AtlasTexture" id=5]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 6, 10, 1, 2 )
|
region = Rect2( 6, 10, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=6]
|
[sub_resource type="AtlasTexture" id=6]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 6, 12, 1, 1 )
|
region = Rect2( 6, 12, 1, 1 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=7]
|
[sub_resource type="AtlasTexture" id=7]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 9, 8, 1, 2 )
|
region = Rect2( 9, 8, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=8]
|
[sub_resource type="AtlasTexture" id=8]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 10, 10, 1, 2 )
|
region = Rect2( 10, 10, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=9]
|
[sub_resource type="AtlasTexture" id=9]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 11, 3, 2 )
|
region = Rect2( 1, 11, 3, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=10]
|
[sub_resource type="AtlasTexture" id=10]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 13, 3, 1 )
|
region = Rect2( 1, 13, 3, 1 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=11]
|
[sub_resource type="AtlasTexture" id=11]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 14, 3, 1 )
|
region = Rect2( 1, 14, 3, 1 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=12]
|
[sub_resource type="AtlasTexture" id=12]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 15, 3, 1 )
|
region = Rect2( 1, 15, 3, 1 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=13]
|
[sub_resource type="AtlasTexture" id=13]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 17, 1, 2 )
|
region = Rect2( 1, 17, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=14]
|
[sub_resource type="AtlasTexture" id=14]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 1, 19, 1, 2 )
|
region = Rect2( 1, 19, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=15]
|
[sub_resource type="AtlasTexture" id=15]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 3, 17, 1, 2 )
|
region = Rect2( 3, 17, 1, 2 )
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id=16]
|
[sub_resource type="AtlasTexture" id=16]
|
||||||
flags = 12
|
flags = 8
|
||||||
atlas = ExtResource( 2 )
|
atlas = ExtResource( 2 )
|
||||||
region = Rect2( 3, 19, 1, 2 )
|
region = Rect2( 3, 19, 1, 2 )
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
[gd_resource type="TileSet" load_steps=96 format=2]
|
[gd_resource type="TileSet" load_steps=98 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Nodes/Tiles/tileset_science_lab.png" type="Texture" id=1]
|
[ext_resource path="res://Nodes/Tiles/tileset_science_lab.png" type="Texture" id=1]
|
||||||
|
[ext_resource path="res://Assets/Art/platform.png" type="Texture" id=2]
|
||||||
|
|
||||||
[sub_resource type="OccluderPolygon2D" id=1]
|
[sub_resource type="OccluderPolygon2D" id=1]
|
||||||
polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||||
@ -284,6 +285,9 @@ points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
|||||||
[sub_resource type="ConvexPolygonShape2D" id=94]
|
[sub_resource type="ConvexPolygonShape2D" id=94]
|
||||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape2D" id=95]
|
||||||
|
points = PoolVector2Array( 16, 9, 0, 9, 0, 7, 16, 7 )
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
47/name = "tileset_science_lab.png 47"
|
47/name = "tileset_science_lab.png 47"
|
||||||
47/texture = ExtResource( 1 )
|
47/texture = ExtResource( 1 )
|
||||||
@ -591,3 +595,33 @@ points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
|||||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
} ]
|
} ]
|
||||||
47/z_index = 0
|
47/z_index = 0
|
||||||
|
48/name = "platform.png 48"
|
||||||
|
48/texture = ExtResource( 2 )
|
||||||
|
48/tex_offset = Vector2( 0, 0 )
|
||||||
|
48/modulate = Color( 1, 1, 1, 1 )
|
||||||
|
48/region = Rect2( 0, 0, 16, 16 )
|
||||||
|
48/tile_mode = 1
|
||||||
|
48/autotile/bitmask_mode = 0
|
||||||
|
48/autotile/bitmask_flags = [ ]
|
||||||
|
48/autotile/icon_coordinate = Vector2( 0, 0 )
|
||||||
|
48/autotile/tile_size = Vector2( 16, 16 )
|
||||||
|
48/autotile/spacing = 0
|
||||||
|
48/autotile/occluder_map = [ ]
|
||||||
|
48/autotile/navpoly_map = [ ]
|
||||||
|
48/autotile/priority_map = [ ]
|
||||||
|
48/autotile/z_index_map = [ ]
|
||||||
|
48/occluder_offset = Vector2( 0, 0 )
|
||||||
|
48/navigation_offset = Vector2( 0, 0 )
|
||||||
|
48/shape_offset = Vector2( 0, 0 )
|
||||||
|
48/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
48/shape = SubResource( 95 )
|
||||||
|
48/shape_one_way = true
|
||||||
|
48/shape_one_way_margin = 1.0
|
||||||
|
48/shapes = [ {
|
||||||
|
"autotile_coord": Vector2( 0, 0 ),
|
||||||
|
"one_way": true,
|
||||||
|
"one_way_margin": 1.0,
|
||||||
|
"shape": SubResource( 95 ),
|
||||||
|
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||||
|
} ]
|
||||||
|
48/z_index = 0
|
||||||
|
Binary file not shown.
18
client/Scripts/Component/Interactable.gd
Normal file
18
client/Scripts/Component/Interactable.gd
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
extends Area2D
|
||||||
|
|
||||||
|
signal interacted
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
connect("body_entered", self, "_on_body_enter")
|
||||||
|
connect("body_exited", self, "_on_body_exit")
|
||||||
|
|
||||||
|
func _on_body_enter(body):
|
||||||
|
if body.has_method("add_interactable"):
|
||||||
|
body.add_interactable(self)
|
||||||
|
|
||||||
|
func _on_body_exit(body):
|
||||||
|
if body.has_method("remove_interactable"):
|
||||||
|
body.remove_interactable(self)
|
||||||
|
|
||||||
|
func interact():
|
||||||
|
emit_signal("interacted")
|
@ -30,11 +30,11 @@ func start_dialog(record : String):
|
|||||||
|
|
||||||
func start_dialog_did(dialog_id : int):
|
func start_dialog_did(dialog_id : int):
|
||||||
gui = get_node("/root/World/GUI")
|
gui = get_node("/root/World/GUI")
|
||||||
|
if not gui.is_in_dialog():
|
||||||
nid = 1
|
nid = 1
|
||||||
did = dialog_id
|
did = dialog_id
|
||||||
|
|
||||||
process_message(story_reader.get_text(did, nid))
|
process_message(story_reader.get_text(did, nid))
|
||||||
|
|
||||||
func has_next_node():
|
func has_next_node():
|
||||||
return story_reader.has_slot(did, nid, 0)
|
return story_reader.has_slot(did, nid, 0)
|
||||||
|
11
client/Scripts/Entities/MusicZone.gd
Normal file
11
client/Scripts/Entities/MusicZone.gd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
extends Area2D
|
||||||
|
|
||||||
|
export var music : AudioStream
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
connect("body_entered", self, "_on_body_entered")
|
||||||
|
|
||||||
|
func _on_body_entered(body):
|
||||||
|
if body.has_method("user_input"):
|
||||||
|
if $"/root/MusicManager".stream != music:
|
||||||
|
$"/root/MusicManager".play_stream(music)
|
9
client/Scripts/Entities/NPCs/CEO.gd
Normal file
9
client/Scripts/Entities/NPCs/CEO.gd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
extends "res://Scripts/Component/Interactable.gd"
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
connect("interacted", self, "_on_interact")
|
||||||
|
$Speaker.speaker_name = "CEO Grant Blevins"
|
||||||
|
#$Speaker.start_dialog("intro_science")
|
||||||
|
|
||||||
|
func _on_interact():
|
||||||
|
$Speaker.start_dialog("intro_meet_ceo")
|
@ -1,7 +1,10 @@
|
|||||||
extends "res://Scripts/Component/StorySpeaker.gd"
|
extends "res://Scripts/Component/Interactable.gd"
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
start_dialog("intro_science")
|
connect("interacted", self, "_on_interact")
|
||||||
|
$Speaker.speaker_name = "Dr.Thadd"
|
||||||
|
$Speaker.start_dialog("intro_science")
|
||||||
|
|
||||||
func _on_interact():
|
func _on_interact():
|
||||||
start_dialog("intro_science_followup")
|
$Speaker.start_dialog("intro_science_followup")
|
||||||
|
|
||||||
|
@ -12,6 +12,20 @@ export var jumpVelocity : float = -150
|
|||||||
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 gui
|
||||||
|
|
||||||
|
var interactables = []
|
||||||
|
|
||||||
|
func add_interactable(interactable):
|
||||||
|
interactables.append(interactable)
|
||||||
|
func remove_interactable(interactable):
|
||||||
|
var loc = interactables.find(interactable)
|
||||||
|
if loc >= 0:
|
||||||
|
interactables.remove(loc)
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
if Input.is_action_just_pressed("ui_accept") and len(interactables) > 0:
|
||||||
|
interactables[0].interact()
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
|
|
||||||
@ -20,7 +34,10 @@ func _physics_process(delta):
|
|||||||
if is_on_floor():
|
if is_on_floor():
|
||||||
motion.y = 0
|
motion.y = 0
|
||||||
|
|
||||||
user_input()
|
if not gui:
|
||||||
|
gui = get_node("/root/World/GUI")
|
||||||
|
elif not gui.is_in_dialog():
|
||||||
|
user_input()
|
||||||
|
|
||||||
# Apply velocity limits
|
# Apply velocity limits
|
||||||
moveMotion = clamp(moveMotion, -maxMoveVelocity, maxMoveVelocity)
|
moveMotion = clamp(moveMotion, -maxMoveVelocity, maxMoveVelocity)
|
||||||
@ -32,6 +49,10 @@ func _physics_process(delta):
|
|||||||
|
|
||||||
|
|
||||||
func user_input():
|
func user_input():
|
||||||
|
if is_on_floor() and Input.is_action_just_pressed("ui_up") and Input.is_action_pressed("ui_down"):
|
||||||
|
position.y = position.y + 2
|
||||||
|
return
|
||||||
|
|
||||||
if(Input.is_action_pressed("ui_left")):
|
if(Input.is_action_pressed("ui_left")):
|
||||||
moveMotion -= moveAcceleration
|
moveMotion -= moveAcceleration
|
||||||
if(Input.is_action_pressed("ui_right")):
|
if(Input.is_action_pressed("ui_right")):
|
||||||
|
@ -14,5 +14,11 @@ func play_music(song, loop=true):
|
|||||||
main_player.stream = track
|
main_player.stream = track
|
||||||
main_player.play()
|
main_player.play()
|
||||||
|
|
||||||
|
func play_stream(track, loop = true):
|
||||||
|
looping = loop
|
||||||
|
main_player.stream = track
|
||||||
|
main_player.play()
|
||||||
|
|
||||||
func stop_music():
|
func stop_music():
|
||||||
main_player.stop()
|
main_player.stop()
|
||||||
|
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
extends CanvasLayer
|
extends CanvasLayer
|
||||||
|
|
||||||
|
func is_in_dialog():
|
||||||
|
return in_dialog
|
||||||
|
|
||||||
# Declare member variables here. Examples:
|
var in_dialog = false
|
||||||
# var a = 2
|
|
||||||
# var b = "text"
|
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready():
|
|
||||||
pass # Replace with function body.
|
|
||||||
|
|
||||||
func set_dialog(message, speaker=""):
|
func set_dialog(message, speaker=""):
|
||||||
$Dialog.show()
|
$Dialog.show()
|
||||||
|
in_dialog = true
|
||||||
$Dialog/Textbox/Speaker.text = speaker
|
$Dialog/Textbox/Speaker.text = speaker
|
||||||
$Dialog/Textbox/Body.text = message
|
$Dialog/Textbox/Body.text = message
|
||||||
|
|
||||||
func finish_dialog():
|
func finish_dialog():
|
||||||
|
in_dialog = false
|
||||||
$Dialog.hide()
|
$Dialog.hide()
|
||||||
|
|
||||||
func clear_choices():
|
func clear_choices():
|
||||||
|
@ -27,6 +27,16 @@ MusicManager="*res://Scripts/Singletons/MusicManager.gd"
|
|||||||
|
|
||||||
enabled=PoolStringArray( "EXP-System-Dialog" )
|
enabled=PoolStringArray( "EXP-System-Dialog" )
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
ui_up={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
|
||||||
|
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
environment/default_environment="res://default_env.tres"
|
environment/default_environment="res://default_env.tres"
|
||||||
|
Reference in New Issue
Block a user