Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
6fd53367c0 | |||
abe340f025 | |||
e22d56d0df | |||
3614049c11 | |||
23a13f349b | |||
65e4fc6a48 | |||
c39e44da3a |
16
.github/ISSUE_TEMPLATE/5_general_feedback.md
vendored
Normal file
16
.github/ISSUE_TEMPLATE/5_general_feedback.md
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
name: 📝 Feedback
|
||||
about: Let me know what you thought!
|
||||
title: "Feedback: [TITLE]"
|
||||
labels: 'feedback'
|
||||
---
|
||||
|
||||
<!-- This the recommended format, not required -->
|
||||
|
||||
### What did you like?
|
||||
|
||||
### What did you dislike?
|
||||
|
||||
### What could be improved?
|
||||
|
||||
### Any addtional thoughts?
|
@ -1,3 +1,3 @@
|
||||
source_md5="29f28fa741ffa711826400e7fea90a27"
|
||||
dest_md5="2fe6ef3f4c5624748dc861a0b95a251b"
|
||||
source_md5="3bfdad86a3348e10ad92dce7a0c7edfb"
|
||||
dest_md5="b2215c68eec5e82ae3b199c3ebef6ca3"
|
||||
|
||||
|
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="385e8652393bf9a3fa82a062489c5435"
|
||||
dest_md5="2ca28503838f7dd03b796000ec31111f"
|
||||
|
BIN
client/.import/dirt.png-5a2c7368ec57a5db104fd5562e4bc430.stex
Normal file
BIN
client/.import/dirt.png-5a2c7368ec57a5db104fd5562e4bc430.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="34e50c915b51252660db4c26d6f61d92"
|
||||
dest_md5="284c8f30177baaab7a71e88c2fa18e87"
|
||||
|
BIN
client/.import/doop.wav-c367f72b66b202e52047bea064819597.sample
Normal file
BIN
client/.import/doop.wav-c367f72b66b202e52047bea064819597.sample
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="34e50c915b51252660db4c26d6f61d92"
|
||||
dest_md5="284c8f30177baaab7a71e88c2fa18e87"
|
||||
|
BIN
client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample
Normal file
BIN
client/.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="130412d800df4b7c2fc9747a6a5805ef"
|
||||
dest_md5="94ec308054667a107722b55e2203ebfc"
|
||||
|
BIN
client/.import/glass.png-c925ddf2663ae6921355b7554750d020.stex
Normal file
BIN
client/.import/glass.png-c925ddf2663ae6921355b7554750d020.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="130412d800df4b7c2fc9747a6a5805ef"
|
||||
dest_md5="94ec308054667a107722b55e2203ebfc"
|
||||
|
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="b5b713d18d62a88eb579db8fdc12c626"
|
||||
dest_md5="3fa5aa738a28dc6cdeb9786d5398a721"
|
||||
|
BIN
client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex
Normal file
BIN
client/.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex
Normal file
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="60a33f3b90accb46263e6e020ba53220"
|
||||
dest_md5="3ecf06c6cb13d5480124991534f6698c"
|
||||
|
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="385e8652393bf9a3fa82a062489c5435"
|
||||
dest_md5="2ca28503838f7dd03b796000ec31111f"
|
||||
|
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="385e8652393bf9a3fa82a062489c5435"
|
||||
dest_md5="2ca28503838f7dd03b796000ec31111f"
|
||||
|
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
source_md5="b85c7252c4e8b281547c84fdfeaec78d"
|
||||
dest_md5="ec0b5aba05be1d14ab11983117a481f1"
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 326 B |
BIN
client/Assets/Art/Tiles/dirt.png
Normal file
BIN
client/Assets/Art/Tiles/dirt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
34
client/Assets/Art/Tiles/dirt.png.import
Normal file
34
client/Assets/Art/Tiles/dirt.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/dirt.png-5a2c7368ec57a5db104fd5562e4bc430.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Art/Tiles/dirt.png"
|
||||
dest_files=[ "res://.import/dirt.png-5a2c7368ec57a5db104fd5562e4bc430.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
|
BIN
client/Assets/Art/Tiles/glass_tile.png
Normal file
BIN
client/Assets/Art/Tiles/glass_tile.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
34
client/Assets/Art/Tiles/glass_tile.png.import
Normal file
34
client/Assets/Art/Tiles/glass_tile.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/glass_tile.png-a30ccd4c80c467b85ddbf01116cb0b6a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Art/Tiles/glass_tile.png"
|
||||
dest_files=[ "res://.import/glass_tile.png-a30ccd4c80c467b85ddbf01116cb0b6a.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
|
BIN
client/Assets/Art/UI/Credits/godot.png
Normal file
BIN
client/Assets/Art/UI/Credits/godot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
34
client/Assets/Art/UI/Credits/godot.png.import
Normal file
34
client/Assets/Art/UI/Credits/godot.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Art/UI/Credits/godot.png"
|
||||
dest_files=[ "res://.import/godot.png-5a026be5d3bdf3191b324100b5a9082a.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
|
21
client/Assets/Sfx/doop.wav.import
Normal file
21
client/Assets/Sfx/doop.wav.import
Normal file
@ -0,0 +1,21 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/doop.wav-c367f72b66b202e52047bea064819597.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Sfx/doop.wav"
|
||||
dest_files=[ "res://.import/doop.wav-c367f72b66b202e52047bea064819597.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop=false
|
||||
compress/mode=0
|
BIN
client/Assets/Sfx/intro/doop.wav
Normal file
BIN
client/Assets/Sfx/intro/doop.wav
Normal file
Binary file not shown.
21
client/Assets/Sfx/intro/doop.wav.import
Normal file
21
client/Assets/Sfx/intro/doop.wav.import
Normal file
@ -0,0 +1,21 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Sfx/intro/doop.wav"
|
||||
dest_files=[ "res://.import/doop.wav-e7e72235859ccaca12113963ce8e590b.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop=false
|
||||
compress/mode=0
|
BIN
client/Assets/Sfx/recharge.wav
Normal file
BIN
client/Assets/Sfx/recharge.wav
Normal file
Binary file not shown.
21
client/Assets/Sfx/recharge.wav.import
Normal file
21
client/Assets/Sfx/recharge.wav.import
Normal file
@ -0,0 +1,21 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Sfx/recharge.wav"
|
||||
dest_files=[ "res://.import/recharge.wav-32ace1901ba67b9ff95108bc1ef3f6bb.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop=false
|
||||
compress/mode=0
|
@ -926,13 +926,235 @@ Ravenwork staff!",
|
||||
"name": "aura_meeting",
|
||||
"nodes": {
|
||||
1: {
|
||||
"graph_offset": Vector2( 40, 40 ),
|
||||
"graph_offset": Vector2( 20, 40 ),
|
||||
"links": {
|
||||
0: 5,
|
||||
1: 2,
|
||||
2: 4
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 3,
|
||||
"text": "Hello Veronica.
|
||||
<choice>...</choice>
|
||||
<choice>Who are you?</choice>
|
||||
<choice>Stop!</choice>",
|
||||
"type": "line"
|
||||
},
|
||||
2: {
|
||||
"graph_offset": Vector2( 520, 60 ),
|
||||
"links": {
|
||||
0: 3
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "I am you.",
|
||||
"type": "line"
|
||||
},
|
||||
3: {
|
||||
"graph_offset": Vector2( 1000, 80 ),
|
||||
"links": {
|
||||
0: 6,
|
||||
1: 7
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 2,
|
||||
"text": "Well, I am Veronica Gilmore. Designation: Aura.
|
||||
<choice>Explain</choice>
|
||||
<choice>You are lying!</choice>",
|
||||
"type": "line"
|
||||
},
|
||||
4: {
|
||||
"graph_offset": Vector2( 460, 300 ),
|
||||
"links": {
|
||||
0: 8,
|
||||
1: 11,
|
||||
2: 12
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 3,
|
||||
"text": "As you can see now, you are not the first person cloned for Ravenworks profit
|
||||
margins.
|
||||
<choice>Are you the traitor?</choice>
|
||||
<choice>Return the shipment!</choice>
|
||||
<choice>We can talk</choice>",
|
||||
"type": "line"
|
||||
},
|
||||
5: {
|
||||
"graph_offset": Vector2( 520, -120 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "Hello Veronica.",
|
||||
"text": "Oh... They truely had you didn't they.",
|
||||
"type": "line"
|
||||
},
|
||||
6: {
|
||||
"graph_offset": Vector2( 1480, -100 ),
|
||||
"links": {
|
||||
0: 17,
|
||||
1: 19
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 2,
|
||||
"text": "You were not created to stop Duke Enterprises. You were created to
|
||||
surpress democratic sympathizers.
|
||||
<choice>Democratic Symathizers?</choice>
|
||||
<choice>What about the leaks?</choice>",
|
||||
"type": "line"
|
||||
},
|
||||
7: {
|
||||
"graph_offset": Vector2( 1480, 100 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "Then you will die in ignorance.",
|
||||
"type": "line"
|
||||
},
|
||||
8: {
|
||||
"graph_offset": Vector2( 1000, 280 ),
|
||||
"links": {
|
||||
0: 9
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "No, Grant is very much aware of my loyalties.",
|
||||
"type": "line"
|
||||
},
|
||||
9: {
|
||||
"graph_offset": Vector2( 1480, 280 ),
|
||||
"links": {
|
||||
0: 10
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "I am Commander Veronic Gilmore of the Resitance Forces.",
|
||||
"type": "line"
|
||||
},
|
||||
10: {
|
||||
"graph_offset": Vector2( 1960, 280 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "Grant is a cruel man...",
|
||||
"type": "line"
|
||||
},
|
||||
11: {
|
||||
"graph_offset": Vector2( 1000, 460 ),
|
||||
"links": {
|
||||
0: 15
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "This shipment is being delivered to Resistance medical facilities. It's going to save
|
||||
lives, not be used for creating slaves.",
|
||||
"type": "line"
|
||||
},
|
||||
12: {
|
||||
"graph_offset": Vector2( 1000, 640 ),
|
||||
"links": {
|
||||
0: 13
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "There isn't much we can do sadly. I'm presuming you still have
|
||||
your implant.",
|
||||
"type": "line"
|
||||
},
|
||||
13: {
|
||||
"graph_offset": Vector2( 1480, 640 ),
|
||||
"links": {
|
||||
0: 14
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "Do you want to discuss terms of peace with us?
|
||||
<choice>No</choice>",
|
||||
"type": "line"
|
||||
},
|
||||
14: {
|
||||
"graph_offset": Vector2( 1960, 640 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "You weren't even given the choice. They programmed you to respond that way.",
|
||||
"type": "line"
|
||||
},
|
||||
15: {
|
||||
"graph_offset": Vector2( 1480, 460 ),
|
||||
"links": {
|
||||
0: 16
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "Ravenworks and Duke Enterprises were the ones in the old capitial the day you died.",
|
||||
"type": "line"
|
||||
},
|
||||
16: {
|
||||
"graph_offset": Vector2( 1960, 460 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "They're the ones who took advantage of all the death...",
|
||||
"type": "line"
|
||||
},
|
||||
17: {
|
||||
"graph_offset": Vector2( 1980, -100 ),
|
||||
"links": {
|
||||
0: 18
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "The Corporate Collective does not care about human lives. They aren't looking
|
||||
out for anyone but their executives.",
|
||||
"type": "line"
|
||||
},
|
||||
18: {
|
||||
"graph_offset": Vector2( 2460, -100 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "That leaves those who were automated away to die.",
|
||||
"type": "line"
|
||||
},
|
||||
19: {
|
||||
"graph_offset": Vector2( 1980, 60 ),
|
||||
"links": {
|
||||
0: 20
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "All the leaks came from the resistance.",
|
||||
"type": "line"
|
||||
},
|
||||
20: {
|
||||
"graph_offset": Vector2( 2460, 60 ),
|
||||
"links": {
|
||||
0: 21
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "Grant has the foolish idea that he can convince me to work for Ravenworks again.",
|
||||
"type": "line"
|
||||
},
|
||||
21: {
|
||||
"graph_offset": Vector2( 2940, 60 ),
|
||||
"links": {
|
||||
|
||||
},
|
||||
"rect_size": Vector2( 324, 137 ),
|
||||
"slot_amount": 1,
|
||||
"text": "But after what I learned about the old capital... Never again.",
|
||||
"type": "line"
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_resource type="Theme" load_steps=10 format=2]
|
||||
[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]
|
||||
|
||||
@ -14,16 +14,19 @@
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id=6]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id=7]
|
||||
[sub_resource type="StyleBoxLine" id=7]
|
||||
color = Color( 0.203922, 0.760784, 0.819608, 0.54902 )
|
||||
|
||||
[sub_resource type="DynamicFont" id=8]
|
||||
[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( 8 )
|
||||
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 )
|
||||
@ -37,6 +40,8 @@ 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 )
|
||||
@ -47,4 +52,4 @@ Label/constants/shadow_offset_y = 1
|
||||
Label/fonts/font = null
|
||||
Label/icons/ = null
|
||||
Label/styles/normal = null
|
||||
Panel/styles/panel = SubResource( 7 )
|
||||
Panel/styles/panel = SubResource( 8 )
|
||||
|
198
client/Nodes/CreditsList.tscn
Normal file
198
client/Nodes/CreditsList.tscn
Normal file
@ -0,0 +1,198 @@
|
||||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://Assets/Art/UI/Credits/godot.png" type="Texture" id=1]
|
||||
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/improbable-v1/Improbable.otf" type="DynamicFontData" id=2]
|
||||
[ext_resource path="res://Assets/Art/logo.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Assets/Art/head_bg_less.png" type="Texture" id=4]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 48
|
||||
font_data = ExtResource( 2 )
|
||||
|
||||
[node name="Scolling" type="VBoxContainer"]
|
||||
margin_left = 407.0
|
||||
margin_top = 720.0
|
||||
margin_right = 873.0
|
||||
margin_bottom = 1621.0
|
||||
size_flags_horizontal = 3
|
||||
custom_constants/separation = 64
|
||||
alignment = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Logo" type="HBoxContainer" parent="."]
|
||||
margin_right = 562.0
|
||||
margin_bottom = 68.0
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Logo"]
|
||||
margin_left = 121.0
|
||||
margin_right = 441.0
|
||||
margin_bottom = 68.0
|
||||
texture = ExtResource( 3 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
margin_top = 132.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 216.0
|
||||
text = "Writing, Design, and Programming
|
||||
by Joseph Manley
|
||||
@josephbmanley"
|
||||
align = 1
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="."]
|
||||
margin_top = 280.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 284.0
|
||||
|
||||
[node name="AssetLabel" type="Label" parent="."]
|
||||
margin_top = 348.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 396.0
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
text = "Assets"
|
||||
align = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="Music" type="Label" parent="."]
|
||||
margin_top = 460.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 515.0
|
||||
text = "Music by Tim Beek
|
||||
@timbeekmusic"
|
||||
align = 1
|
||||
|
||||
[node name="Fonts" type="Label" parent="."]
|
||||
margin_top = 579.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 634.0
|
||||
text = "Fonts by somepx
|
||||
@somepx"
|
||||
align = 1
|
||||
|
||||
[node name="Shaders" type="Label" parent="."]
|
||||
margin_top = 698.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 753.0
|
||||
text = "Scaling Shaders by CptPotato
|
||||
www.github.com/CptPotato"
|
||||
align = 1
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="."]
|
||||
margin_top = 817.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 821.0
|
||||
|
||||
[node name="ToolsLabel" type="Label" parent="."]
|
||||
margin_top = 885.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 933.0
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
text = "Tools"
|
||||
align = 1
|
||||
uppercase = true
|
||||
|
||||
[node name="Godot" type="HSplitContainer" parent="."]
|
||||
margin_top = 997.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 1139.0
|
||||
|
||||
[node name="Label" type="Label" parent="Godot"]
|
||||
margin_right = 402.0
|
||||
margin_bottom = 142.0
|
||||
text = "
|
||||
Godot
|
||||
Game Engine
|
||||
www.godotengine.org
|
||||
"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Godot"]
|
||||
margin_left = 414.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 142.0
|
||||
texture = ExtResource( 1 )
|
||||
expand = true
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Aseprite" type="Label" parent="."]
|
||||
margin_top = 1203.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 1287.0
|
||||
text = "Aseprite
|
||||
Sprite Editor
|
||||
www.aseprite.org"
|
||||
align = 1
|
||||
|
||||
[node name="Tilesetter" type="Label" parent="."]
|
||||
margin_top = 1351.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 1435.0
|
||||
text = "Tilesetter
|
||||
Tileset Design Tool
|
||||
www.tilesetter.org"
|
||||
align = 1
|
||||
|
||||
[node name="DialogSystem" type="Label" parent="."]
|
||||
margin_top = 1499.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 1583.0
|
||||
text = "EXP Godot Dialog System
|
||||
Dialog Editor Godot Addon
|
||||
www.github.com/EXPWorlds/Godot-Dialog-System"
|
||||
align = 1
|
||||
|
||||
[node name="HSeparator3" type="HSeparator" parent="."]
|
||||
margin_top = 1647.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 1651.0
|
||||
|
||||
[node name="Godot Wild Jam" type="HSplitContainer" parent="."]
|
||||
margin_top = 1715.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 2031.0
|
||||
|
||||
[node name="Label" type="Label" parent="Godot Wild Jam"]
|
||||
margin_right = 230.0
|
||||
margin_bottom = 316.0
|
||||
text = "
|
||||
|
||||
|
||||
|
||||
|
||||
Godot Wild Jam #21
|
||||
Submission
|
||||
|
||||
|
||||
|
||||
"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Godot Wild Jam"]
|
||||
margin_left = 242.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 316.0
|
||||
texture = ExtResource( 4 )
|
||||
expand = true
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Thanks" type="Label" parent="."]
|
||||
margin_top = 2095.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 2121.0
|
||||
text = "Thanks for playing!"
|
||||
align = 1
|
||||
|
||||
[node name="Feedback" type="Label" parent="."]
|
||||
margin_top = 2185.0
|
||||
margin_right = 562.0
|
||||
margin_bottom = 2240.0
|
||||
text = "Any and all feedback is appreciated!
|
||||
cloudsumu.com/r/confeedback"
|
||||
align = 1
|
139
client/Nodes/GUI.tscn
Normal file
139
client/Nodes/GUI.tscn
Normal file
@ -0,0 +1,139 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://Assets/Themes/default.tres" type="Theme" id=1]
|
||||
[ext_resource path="res://Scripts/Systems/GameGui.gd" type="Script" id=2]
|
||||
[ext_resource path="res://Assets/Proprietary/hf-scifi-complete/zapper-v1.1/Zapper.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/targets-v3.1/Targets.ttf" type="DynamicFontData" id=5]
|
||||
|
||||
[sub_resource type="DynamicFont" id=2]
|
||||
size = 18
|
||||
font_data = ExtResource( 5 )
|
||||
|
||||
[sub_resource type="DynamicFont" id=17]
|
||||
size = 48
|
||||
font_data = ExtResource( 3 )
|
||||
|
||||
[sub_resource type="DynamicFont" id=18]
|
||||
size = 32
|
||||
outline_size = 1
|
||||
outline_color = Color( 0, 0, 0, 1 )
|
||||
font_data = ExtResource( 4 )
|
||||
|
||||
[node name="GUI" type="CanvasLayer"]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Dialog" type="Control" parent="."]
|
||||
visible = false
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -512.0
|
||||
margin_top = -173.0
|
||||
margin_right = 512.0
|
||||
theme = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Textbox" type="ColorRect" parent="Dialog"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -475.0
|
||||
margin_top = -143.0
|
||||
margin_right = 475.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"]
|
||||
margin_left = 12.0
|
||||
margin_top = 8.0
|
||||
margin_right = 594.0
|
||||
margin_bottom = 34.0
|
||||
text = "Speaker"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Body" type="Label" parent="Dialog/Textbox"]
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
margin_left = 12.0
|
||||
margin_top = -16.5
|
||||
margin_right = -39.0
|
||||
margin_bottom = 49.5
|
||||
custom_fonts/font = SubResource( 2 )
|
||||
text = "Hello world!"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Choices" type="HBoxContainer" parent="Dialog"]
|
||||
visible = false
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -472.0
|
||||
margin_top = -172.0
|
||||
margin_right = 472.0
|
||||
margin_bottom = -148.0
|
||||
alignment = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Button" type="Button" parent="Dialog/Choices"]
|
||||
margin_left = 297.0
|
||||
margin_right = 371.0
|
||||
margin_bottom = 26.0
|
||||
text = "Choice"
|
||||
|
||||
[node name="Button2" type="Button" parent="Dialog/Choices"]
|
||||
margin_left = 435.0
|
||||
margin_right = 509.0
|
||||
margin_bottom = 26.0
|
||||
text = "Choice"
|
||||
|
||||
[node name="Button3" type="Button" parent="Dialog/Choices"]
|
||||
margin_left = 573.0
|
||||
margin_right = 647.0
|
||||
margin_bottom = 26.0
|
||||
text = "Choice"
|
||||
|
||||
[node name="ZoneLabel" type="Label" parent="."]
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 12.0
|
||||
margin_top = -59.0
|
||||
margin_right = 1257.0
|
||||
margin_bottom = -8.0
|
||||
custom_fonts/font = SubResource( 17 )
|
||||
text = "Entering: Depths"
|
||||
valign = 2
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Tip" type="Label" parent="."]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -386.0
|
||||
margin_top = -110.5
|
||||
margin_right = 386.0
|
||||
margin_bottom = 110.5
|
||||
custom_fonts/font = SubResource( 18 )
|
||||
text = "Press WASD to move"
|
||||
align = 1
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
193
client/Nodes/NPCs/Aura.tscn
Normal file
193
client/Nodes/NPCs/Aura.tscn
Normal file
@ -0,0 +1,193 @@
|
||||
[gd_scene load_steps=12 format=2]
|
||||
|
||||
[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/Entities/NPCs/Aura.gd" type="Script" id=3]
|
||||
[ext_resource path="res://Assets/Art/Characters/aura.png" type="Texture" id=4]
|
||||
|
||||
[sub_resource type="AtlasTexture" id=1]
|
||||
atlas = ExtResource( 4 )
|
||||
region = Rect2( 23, 0, 5, 16 )
|
||||
|
||||
[sub_resource type="StreamTexture" id=3]
|
||||
load_path = "res://.import/aura.png-d56c2c3c604fb12791bf7613004ed5a9.stex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id=4]
|
||||
atlas = SubResource( 3 )
|
||||
region = Rect2( 19, 0, 3, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=5]
|
||||
atlas = SubResource( 3 )
|
||||
region = Rect2( 29, 0, 3, 16 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
extents = Vector2( 62.9439, 20.084 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "Idle"
|
||||
length = 2.0
|
||||
loop = true
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Torso/RightArm:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -3, -0.25, 0, 0.25, 0, -3, -0.25, 0, 0.25, 0, -3, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Torso/RightArm:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0.5, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Torso/RightArm: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, 4, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Torso/LeftArm:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 3, -0.25, 0, 0.25, 0, 3, -0.25, 0, 0.25, 0, 3, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/path = NodePath("Torso/LeftArm:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, 0.5, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/path = NodePath("Torso/LeftArm: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, -4, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=7]
|
||||
resource_name = "Shoot"
|
||||
length = 0.5
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Torso/RightArm:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -3, -0.25, 0, 0.25, 0, -3.28281, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 0.3 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Torso/RightArm:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.791864, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 0.3 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Torso/RightArm: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, 85.9568, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 0.3 )
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("Torso/RightArm:texture:region")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 0, 0.1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ Rect2( 19, 0, 3, 16 ), Rect2( 4, 0, 3, 16 ) ]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath("Torso:texture:region")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 0, 0.1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ Rect2( 23, 0, 5, 16 ), Rect2( 7, 0, 5, 16 ) ]
|
||||
}
|
||||
|
||||
[node name="Aura" type="Area2D"]
|
||||
script = ExtResource( 3 )
|
||||
__meta__ = {
|
||||
"_edit_group_": true
|
||||
}
|
||||
|
||||
[node name="Torso" type="Sprite" parent="."]
|
||||
texture = SubResource( 1 )
|
||||
|
||||
[node name="RightArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( -3, 0 )
|
||||
z_index = -1
|
||||
texture = SubResource( 4 )
|
||||
|
||||
[node name="LeftArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( 3, 0 )
|
||||
z_index = -1
|
||||
texture = SubResource( 5 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
visible = false
|
||||
shape = SubResource( 2 )
|
||||
|
||||
[node name="Speaker" type="Node" parent="."]
|
||||
script = ExtResource( 2 )
|
||||
speaker_name = "Aura"
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 1 )
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
layer = 19
|
||||
|
||||
[node name="Blood" type="ColorRect" parent="CanvasLayer"]
|
||||
visible = false
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color( 0.54902, 0.105882, 0.105882, 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/Idle = SubResource( 6 )
|
||||
anims/Shoot = SubResource( 7 )
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
[gd_scene load_steps=9 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]
|
||||
@ -7,14 +7,104 @@
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 16.0863, 8 )
|
||||
|
||||
[node name="Scientist" type="Area2D"]
|
||||
script = ExtResource( 1 )
|
||||
[sub_resource type="AtlasTexture" id=7]
|
||||
atlas = ExtResource( 3 )
|
||||
region = Rect2( 4, 0, 8, 16 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 3 )
|
||||
[sub_resource type="AtlasTexture" id=8]
|
||||
atlas = ExtResource( 3 )
|
||||
region = Rect2( 2, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=9]
|
||||
atlas = ExtResource( 3 )
|
||||
region = Rect2( 12, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "Idle"
|
||||
length = 2.0
|
||||
loop = true
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Torso/RightArm:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Torso/RightArm:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Torso/RightArm: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, 6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Torso/LeftArm:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/path = NodePath("Torso/LeftArm:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/path = NodePath("Torso/LeftArm: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, -6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
|
||||
[node name="CEO" type="Area2D"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="Speaker" type="Node" parent="."]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="Torso" type="Sprite" parent="."]
|
||||
texture = SubResource( 7 )
|
||||
|
||||
[node name="RightArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( -5, -0.25 )
|
||||
rotation = 0.10472
|
||||
texture = SubResource( 8 )
|
||||
|
||||
[node name="LeftArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( 5, -0.25 )
|
||||
rotation = -0.10472
|
||||
texture = SubResource( 9 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/Idle = SubResource( 6 )
|
||||
|
105
client/Nodes/NPCs/Soldier.tscn
Normal file
105
client/Nodes/NPCs/Soldier.tscn
Normal file
@ -0,0 +1,105 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://Assets/Art/Characters/soldier.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="GDScript" id=10]
|
||||
script/source = "extends Node2D
|
||||
|
||||
func _ready():
|
||||
$AnimationPlayer.play(\"Idle\")
|
||||
$AnimationPlayer.seek(rand_range(0.0, 2.0), true)
|
||||
"
|
||||
|
||||
[sub_resource type="AtlasTexture" id=7]
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 4, 0, 8, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=8]
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 2, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=9]
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 12, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "Idle"
|
||||
length = 2.0
|
||||
loop = true
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Torso/RightArm:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Torso/RightArm:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Torso/RightArm: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, 6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Torso/LeftArm:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/path = NodePath("Torso/LeftArm:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/path = NodePath("Torso/LeftArm: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, -6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
|
||||
[node name="Soldier" type="Node2D"]
|
||||
script = SubResource( 10 )
|
||||
|
||||
[node name="Torso" type="Sprite" parent="."]
|
||||
texture = SubResource( 7 )
|
||||
|
||||
[node name="RightArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( -5, 0 )
|
||||
texture = SubResource( 8 )
|
||||
|
||||
[node name="LeftArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( 5, 0 )
|
||||
texture = SubResource( 9 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/Idle = SubResource( 6 )
|
@ -1,21 +1,113 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
[gd_scene load_steps=10 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="AtlasTexture" id=2]
|
||||
atlas = ExtResource( 3 )
|
||||
region = Rect2( 4, 0, 8, 16 )
|
||||
|
||||
[sub_resource type="StreamTexture" id=3]
|
||||
load_path = "res://.import/scientist.png-ed3195bf022f65d4a0546af474992ee0.stex"
|
||||
|
||||
[sub_resource type="AtlasTexture" id=4]
|
||||
atlas = SubResource( 3 )
|
||||
region = Rect2( 2, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=5]
|
||||
atlas = SubResource( 3 )
|
||||
region = Rect2( 12, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 14.1446, 9.58948 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "Idle"
|
||||
length = 2.0
|
||||
loop = true
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Torso/RightArm:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Torso/RightArm:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Torso/RightArm: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, 6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Torso/LeftArm:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/path = NodePath("Torso/LeftArm:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/path = NodePath("Torso/LeftArm: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, -6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
|
||||
[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="Torso" type="Sprite" parent="."]
|
||||
texture = SubResource( 2 )
|
||||
|
||||
[node name="RightArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( -5, -0.25 )
|
||||
rotation = 0.10472
|
||||
texture = SubResource( 4 )
|
||||
|
||||
[node name="LeftArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( 5, -0.25 )
|
||||
rotation = -0.10472
|
||||
texture = SubResource( 5 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="Speaker" type="Node" parent="."]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/Idle = SubResource( 6 )
|
||||
|
114
client/Nodes/NPCs/Worker.tscn
Normal file
114
client/Nodes/NPCs/Worker.tscn
Normal file
@ -0,0 +1,114 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://Scripts/Component/StorySpeaker.gd" type="Script" id=1]
|
||||
[ext_resource path="res://Assets/Art/Characters/worker.png" type="Texture" id=2]
|
||||
[ext_resource path="res://Scripts/Component/InteractableDialog.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 13.908, 10 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=7]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 4, 0, 8, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=8]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 2, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="AtlasTexture" id=9]
|
||||
atlas = ExtResource( 2 )
|
||||
region = Rect2( 12, 0, 2, 16 )
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "Idle"
|
||||
length = 2.0
|
||||
loop = true
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Torso/RightArm:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0, -5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Torso/RightArm:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Torso/RightArm: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, 6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Torso/LeftArm:position:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0, 5, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/path = NodePath("Torso/LeftArm:position:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"points": PoolRealArray( 0, -0.25, 0, 0.25, 0, -0.25, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/path = NodePath("Torso/LeftArm: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, -6, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1, 2 )
|
||||
}
|
||||
|
||||
[node name="Worker" type="Area2D"]
|
||||
script = ExtResource( 3 )
|
||||
__meta__ = {
|
||||
"_edit_group_": true
|
||||
}
|
||||
|
||||
[node name="Speaker" type="Node" parent="."]
|
||||
script = ExtResource( 1 )
|
||||
speaker_name = "Worker"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="Torso" type="Sprite" parent="."]
|
||||
texture = SubResource( 7 )
|
||||
|
||||
[node name="RightArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( -5, -0.25 )
|
||||
rotation = 0.10472
|
||||
texture = SubResource( 8 )
|
||||
|
||||
[node name="LeftArm" type="Sprite" parent="Torso"]
|
||||
position = Vector2( 5, -0.25 )
|
||||
rotation = -0.10472
|
||||
texture = SubResource( 9 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/Idle = SubResource( 6 )
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,11 @@
|
||||
[gd_resource type="TileSet" load_steps=100 format=2]
|
||||
[gd_resource type="TileSet" load_steps=150 format=2]
|
||||
|
||||
[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]
|
||||
[ext_resource path="res://Assets/Art/metal_wall.png" type="Texture" id=3]
|
||||
[ext_resource path="res://Assets/Art/window.png" type="Texture" id=4]
|
||||
[ext_resource path="res://Assets/Art/Tiles/dirt.png" type="Texture" id=5]
|
||||
[ext_resource path="res://Assets/Art/Tiles/glass_tile.png" type="Texture" id=6]
|
||||
|
||||
[sub_resource type="OccluderPolygon2D" id=1]
|
||||
polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
@ -287,8 +289,152 @@ points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
[sub_resource type="ConvexPolygonShape2D" id=94]
|
||||
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 )
|
||||
[sub_resource type="ConvexPolygonShape2D" id=144]
|
||||
points = PoolVector2Array( 16, 7.15126, 0, 7.15126, 0, 6.95655, 16, 6.95655 )
|
||||
|
||||
[sub_resource type="OccluderPolygon2D" id=96]
|
||||
polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=97]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=98]
|
||||
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=99]
|
||||
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=100]
|
||||
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=101]
|
||||
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=102]
|
||||
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=103]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=104]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=105]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=106]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=107]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=108]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=109]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=110]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=111]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=112]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=113]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=114]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=115]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=116]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=117]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=118]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=119]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=120]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=121]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=122]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=123]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=124]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=125]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=126]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=127]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=128]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=129]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=130]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=131]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=132]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=133]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=134]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=135]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=136]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=137]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=138]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=139]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=140]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=141]
|
||||
points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=142]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[sub_resource type="ConvexPolygonShape2D" id=143]
|
||||
points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 )
|
||||
|
||||
[resource]
|
||||
47/name = "tileset_science_lab.png 47"
|
||||
@ -616,14 +762,14 @@ points = PoolVector2Array( 16, 9, 0, 9, 0, 7, 16, 7 )
|
||||
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 = SubResource( 144 )
|
||||
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": SubResource( 144 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
48/z_index = 0
|
||||
@ -673,3 +819,332 @@ points = PoolVector2Array( 16, 9, 0, 9, 0, 7, 16, 7 )
|
||||
50/shape_one_way_margin = 0.0
|
||||
50/shapes = [ ]
|
||||
50/z_index = 0
|
||||
51/name = "dirt.png 51"
|
||||
51/texture = ExtResource( 5 )
|
||||
51/tex_offset = Vector2( 0, 0 )
|
||||
51/modulate = Color( 1, 1, 1, 1 )
|
||||
51/region = Rect2( 0, 0, 176, 80 )
|
||||
51/tile_mode = 1
|
||||
51/autotile/bitmask_mode = 1
|
||||
51/autotile/bitmask_flags = [ Vector2( 0, 0 ), 432, Vector2( 0, 1 ), 438, Vector2( 0, 2 ), 54, Vector2( 0, 3 ), 48, Vector2( 1, 0 ), 504, Vector2( 1, 1 ), 511, Vector2( 1, 2 ), 63, Vector2( 1, 3 ), 56, Vector2( 2, 0 ), 216, Vector2( 2, 1 ), 219, Vector2( 2, 2 ), 27, Vector2( 2, 3 ), 24, Vector2( 3, 0 ), 144, Vector2( 3, 1 ), 146, Vector2( 3, 2 ), 18, Vector2( 3, 3 ), 16, Vector2( 4, 0 ), 176, Vector2( 4, 1 ), 182, Vector2( 4, 2 ), 434, Vector2( 4, 3 ), 50, Vector2( 4, 4 ), 178, Vector2( 5, 0 ), 248, Vector2( 5, 1 ), 255, Vector2( 5, 2 ), 507, Vector2( 5, 3 ), 59, Vector2( 5, 4 ), 251, Vector2( 6, 0 ), 440, Vector2( 6, 1 ), 447, Vector2( 6, 2 ), 510, Vector2( 6, 3 ), 62, Vector2( 6, 4 ), 446, Vector2( 7, 0 ), 152, Vector2( 7, 1 ), 155, Vector2( 7, 2 ), 218, Vector2( 7, 3 ), 26, Vector2( 7, 4 ), 154, Vector2( 8, 0 ), 184, Vector2( 8, 1 ), 191, Vector2( 8, 2 ), 506, Vector2( 8, 3 ), 58, Vector2( 8, 4 ), 186, Vector2( 9, 0 ), 443, Vector2( 9, 1 ), 254, Vector2( 9, 2 ), 442, Vector2( 9, 3 ), 190, Vector2( 10, 2 ), 250, Vector2( 10, 3 ), 187 ]
|
||||
51/autotile/icon_coordinate = Vector2( 0, 0 )
|
||||
51/autotile/tile_size = Vector2( 16, 16 )
|
||||
51/autotile/spacing = 0
|
||||
51/autotile/occluder_map = [ Vector2( 1, 1 ), SubResource( 96 ) ]
|
||||
51/autotile/navpoly_map = [ ]
|
||||
51/autotile/priority_map = [ ]
|
||||
51/autotile/z_index_map = [ ]
|
||||
51/occluder_offset = Vector2( 0, 0 )
|
||||
51/navigation_offset = Vector2( 0, 0 )
|
||||
51/shape_offset = Vector2( 0, 0 )
|
||||
51/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
51/shape = SubResource( 97 )
|
||||
51/shape_one_way = false
|
||||
51/shape_one_way_margin = 1.0
|
||||
51/shapes = [ {
|
||||
"autotile_coord": Vector2( 0, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 97 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 1, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 98 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 2, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 99 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 3, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 100 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 3, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 101 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 2, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 102 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 1, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 103 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 0, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 104 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 0, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 105 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 1, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 106 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 2, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 107 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 3, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 108 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 0, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 109 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 1, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 110 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 2, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 111 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 3, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 112 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 4, 4 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 113 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 5, 4 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 114 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 6, 4 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 115 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 7, 4 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 116 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 8, 4 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 117 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 8, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 118 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 8, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 119 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 8, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 120 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 8, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 121 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 9, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 122 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 9, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 123 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 9, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 124 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 10, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 125 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 10, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 126 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 9, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 127 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 4, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 128 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 5, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 129 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 6, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 130 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 7, 0 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 131 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 4, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 132 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 5, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 133 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 6, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 134 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 7, 1 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 135 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 4, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 136 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 5, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 137 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 6, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 138 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 7, 2 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 139 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 4, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 140 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 5, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 141 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 6, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 142 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
}, {
|
||||
"autotile_coord": Vector2( 7, 3 ),
|
||||
"one_way": false,
|
||||
"one_way_margin": 1.0,
|
||||
"shape": SubResource( 143 ),
|
||||
"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
} ]
|
||||
51/z_index = 0
|
||||
52/name = "glass_tile.png 52"
|
||||
52/texture = ExtResource( 6 )
|
||||
52/tex_offset = Vector2( 0, 0 )
|
||||
52/modulate = Color( 1, 1, 1, 1 )
|
||||
52/region = Rect2( 0, 0, 176, 80 )
|
||||
52/tile_mode = 1
|
||||
52/autotile/bitmask_mode = 2
|
||||
52/autotile/bitmask_flags = [ Vector2( 0, 0 ), 432, Vector2( 0, 1 ), 438, Vector2( 0, 2 ), 54, Vector2( 0, 3 ), 48, Vector2( 1, 0 ), 504, Vector2( 1, 1 ), 511, Vector2( 1, 2 ), 63, Vector2( 1, 3 ), 56, Vector2( 2, 0 ), 216, Vector2( 2, 1 ), 219, Vector2( 2, 2 ), 27, Vector2( 2, 3 ), 24, Vector2( 3, 0 ), 144, Vector2( 3, 1 ), 146, Vector2( 3, 2 ), 18, Vector2( 3, 3 ), 16, Vector2( 4, 0 ), 176, Vector2( 4, 1 ), 182, Vector2( 4, 2 ), 434, Vector2( 4, 3 ), 50, Vector2( 4, 4 ), 178, Vector2( 5, 0 ), 248, Vector2( 5, 1 ), 255, Vector2( 5, 2 ), 507, Vector2( 5, 3 ), 59, Vector2( 5, 4 ), 251, Vector2( 6, 0 ), 440, Vector2( 6, 1 ), 447, Vector2( 6, 2 ), 510, Vector2( 6, 3 ), 62, Vector2( 6, 4 ), 446, Vector2( 7, 0 ), 152, Vector2( 7, 1 ), 155, Vector2( 7, 2 ), 218, Vector2( 7, 3 ), 26, Vector2( 7, 4 ), 154, Vector2( 8, 0 ), 184, Vector2( 8, 1 ), 191, Vector2( 8, 2 ), 506, Vector2( 8, 3 ), 58, Vector2( 8, 4 ), 186, Vector2( 9, 0 ), 443, Vector2( 9, 1 ), 254, Vector2( 9, 2 ), 442, Vector2( 9, 3 ), 190, Vector2( 10, 2 ), 250, Vector2( 10, 3 ), 187 ]
|
||||
52/autotile/icon_coordinate = Vector2( 0, 0 )
|
||||
52/autotile/tile_size = Vector2( 16, 16 )
|
||||
52/autotile/spacing = 0
|
||||
52/autotile/occluder_map = [ ]
|
||||
52/autotile/navpoly_map = [ ]
|
||||
52/autotile/priority_map = [ ]
|
||||
52/autotile/z_index_map = [ ]
|
||||
52/occluder_offset = Vector2( 0, 0 )
|
||||
52/navigation_offset = Vector2( 0, 0 )
|
||||
52/shape_offset = Vector2( 0, 0 )
|
||||
52/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
|
||||
52/shape_one_way = false
|
||||
52/shape_one_way_margin = 0.0
|
||||
52/shapes = [ ]
|
||||
52/z_index = 0
|
||||
|
Binary file not shown.
41
client/Scenes/Dev.tscn
Normal file
41
client/Scenes/Dev.tscn
Normal file
@ -0,0 +1,41 @@
|
||||
[gd_scene load_steps=9 format=2]
|
||||
|
||||
[ext_resource path="res://Nodes/Tiles/tileset_science_lab.tres" type="TileSet" id=1]
|
||||
[ext_resource path="res://Nodes/NPCs/CEO.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://Nodes/Player.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://Nodes/GUI.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://Nodes/NPCs/Thadd.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://Nodes/NPCs/Aura.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://Nodes/NPCs/Worker.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://Nodes/NPCs/Soldier.tscn" type="PackedScene" id=8]
|
||||
|
||||
[node name="World" type="Node2D"]
|
||||
|
||||
[node name="TileMap" type="TileMap" parent="."]
|
||||
tile_set = ExtResource( 1 )
|
||||
cell_size = Vector2( 16, 16 )
|
||||
format = 1
|
||||
tile_data = PoolIntArray( 393217, 49, 0, 393218, 49, 0, 393219, 49, 0, 393220, 49, 0, 393221, 49, 0, 524285, 47, 3, 524286, 48, 0, 524287, 47, 3, 458753, 49, 0, 458754, 52, 0, 458755, 52, 2, 458756, 49, 0, 458757, 49, 0, 589821, 47, 65539, 589822, 48, 0, 589823, 47, 65539, 524289, 49, 0, 524290, 52, 65536, 524291, 52, 65538, 524292, 49, 0, 524293, 49, 0, 655357, 47, 131075, 655358, 48, 0, 655359, 47, 131075, 589825, 49, 0, 589826, 52, 65536, 589827, 52, 65538, 589828, 49, 0, 589829, 49, 0, 655361, 49, 0, 655362, 52, 131072, 655363, 52, 131074, 655364, 49, 0, 655365, 49, 0, 786429, 51, 0, 786430, 51, 1, 786431, 51, 1, 720896, 51, 2, 720897, 47, 0, 720898, 47, 1, 720899, 47, 1, 720900, 47, 1, 720901, 47, 1, 720902, 47, 1, 720903, 47, 1, 720904, 47, 1, 720905, 47, 1, 720906, 47, 1, 720907, 47, 1, 720908, 47, 1, 720909, 47, 1, 720910, 47, 1, 720911, 47, 1, 720912, 47, 1, 720913, 47, 1, 720914, 47, 1, 720915, 47, 1, 720916, 47, 1, 720917, 47, 1, 720918, 47, 1, 720919, 47, 1, 720920, 47, 1, 720921, 47, 1, 720922, 47, 1, 720923, 47, 1, 720924, 47, 1, 720925, 47, 1, 720926, 47, 1, 720927, 47, 2, 851965, 51, 65536, 851966, 51, 65537, 851967, 51, 65537, 786432, 51, 65538, 786433, 47, 65536, 786434, 47, 65537, 786435, 47, 65537, 786436, 47, 65537, 786437, 47, 65537, 786438, 47, 65537, 786439, 47, 65537, 786440, 47, 65537, 786441, 47, 65537, 786442, 47, 65537, 786443, 47, 65537, 786444, 47, 65537, 786445, 47, 65537, 786446, 47, 65537, 786447, 47, 65537, 786448, 47, 65537, 786449, 47, 65537, 786450, 47, 65537, 786451, 47, 65537, 786452, 47, 65537, 786453, 47, 65537, 786454, 47, 65537, 786455, 47, 65537, 786456, 47, 65537, 786457, 47, 65537, 786458, 47, 65537, 786459, 47, 65537, 786460, 47, 65537, 786461, 47, 65537, 786462, 47, 65537, 786463, 47, 65538, 917501, 51, 131072, 917502, 51, 131073, 917503, 51, 131073, 851968, 51, 131074, 851969, 47, 131072, 851970, 47, 131073, 851971, 47, 131073, 851972, 47, 131073, 851973, 47, 131073, 851974, 47, 131073, 851975, 47, 131073, 851976, 47, 131073, 851977, 47, 131073, 851978, 47, 131073, 851979, 47, 131073, 851980, 47, 131073, 851981, 47, 131073, 851982, 47, 131073, 851983, 47, 131073, 851984, 47, 131073, 851985, 47, 131073, 851986, 47, 131073, 851987, 47, 131073, 851988, 47, 131073, 851989, 47, 131073, 851990, 47, 131073, 851991, 47, 131073, 851992, 47, 131073, 851993, 47, 131073, 851994, 47, 131073, 851995, 47, 131073, 851996, 47, 131073, 851997, 47, 131073, 851998, 47, 131073, 851999, 47, 131074 )
|
||||
|
||||
[node name="Worker" parent="." instance=ExtResource( 7 )]
|
||||
position = Vector2( -48.0134, 200.126 )
|
||||
face_right_init = false
|
||||
reset_after_dialog = true
|
||||
|
||||
[node name="Soldier" parent="Worker" instance=ExtResource( 8 )]
|
||||
position = Vector2( 208.232, -31.4683 )
|
||||
|
||||
[node name="Scientist" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 182.674, 166.939 )
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource( 3 )]
|
||||
position = Vector2( 82.2741, 164.848 )
|
||||
|
||||
[node name="GUI" parent="." instance=ExtResource( 4 )]
|
||||
|
||||
[node name="Scientist2" parent="." instance=ExtResource( 5 )]
|
||||
position = Vector2( 139.806, 168.653 )
|
||||
start_on_play = false
|
||||
|
||||
[node name="Aura" parent="Scientist2" instance=ExtResource( 6 )]
|
||||
position = Vector2( 133.095, -0.638016 )
|
Binary file not shown.
Binary file not shown.
@ -1,9 +1,26 @@
|
||||
extends "res://Scripts/Component/Interactable.gd"
|
||||
|
||||
export var dialog_name : String = "unconfigured"
|
||||
export var face_right_init = true
|
||||
export var face_on_interact = true
|
||||
export var reset_after_dialog = false
|
||||
|
||||
func _ready():
|
||||
if $AnimationPlayer:
|
||||
$AnimationPlayer.play("Idle")
|
||||
$AnimationPlayer.seek(rand_range(0.0, 2.0), true)
|
||||
connect("interacted", self, "_on_interact")
|
||||
$Speaker.connect("dialog_exited", self, "_on_dialog_exit")
|
||||
if $Torso:
|
||||
$Torso.flip_h = face_right_init
|
||||
|
||||
func _on_interact():
|
||||
if $Torso:
|
||||
if face_on_interact:
|
||||
$Torso.flip_h = global_position.x < player.global_position.x
|
||||
$Speaker.start_dialog(dialog_name)
|
||||
|
||||
func _on_dialog_exit():
|
||||
if $Torso:
|
||||
if reset_after_dialog:
|
||||
$Torso.flip_h = face_right_init
|
||||
|
@ -63,8 +63,9 @@ func play_audio():
|
||||
else:
|
||||
playing_speech = false
|
||||
if len(soundQueue) == 0:
|
||||
emit_signal("finished_text")
|
||||
done = true
|
||||
if not done:
|
||||
emit_signal("finished_text")
|
||||
done = true
|
||||
|
||||
func del_obj(obj):
|
||||
obj.queue_free()
|
||||
|
@ -7,6 +7,8 @@ func _ready():
|
||||
$Speaker.speaker_name = "Aura"
|
||||
connect("body_entered", self, "_on_body_enter")
|
||||
connect("body_exited", self, "_on_body_exit")
|
||||
$AnimationPlayer.play("Idle")
|
||||
$AnimationPlayer.seek(rand_range(0.0,2.0))
|
||||
|
||||
func _on_body_enter(body):
|
||||
if body.has_method("add_interactable"):
|
||||
@ -15,7 +17,7 @@ func _on_body_enter(body):
|
||||
|
||||
func _process(delta):
|
||||
if state == 1 and not $Speaker.gui.is_in_dialog():
|
||||
$Sprite.frame = 0
|
||||
$AnimationPlayer.play("Shoot")
|
||||
$Speaker.start_dialog("aura_meeting_gun")
|
||||
state = 2
|
||||
elif state == 2 and not $Speaker.gui.is_in_dialog():
|
||||
|
@ -7,8 +7,11 @@ func _ready():
|
||||
$Speaker.speaker_name = "CEO Grant Blevins"
|
||||
$Speaker.speaker = "ceo"
|
||||
$Speaker.connect("dialog_exited", self, "_on_dialog_exit")
|
||||
$AnimationPlayer.play("Idle")
|
||||
$AnimationPlayer.seek(rand_range(0.0, 2.0), true)
|
||||
|
||||
func _on_interact():
|
||||
$Torso.flip_h = global_position.x < player.global_position.x
|
||||
if state == 0:
|
||||
$Speaker.start_dialog("intro_meet_ceo")
|
||||
if player:
|
||||
|
@ -1,14 +1,20 @@
|
||||
extends "res://Scripts/Component/Interactable.gd"
|
||||
|
||||
export var start_on_play = true
|
||||
|
||||
func _ready():
|
||||
connect("interacted", self, "_on_interact")
|
||||
$AnimationPlayer.play("Idle")
|
||||
$AnimationPlayer.seek(rand_range(0.0, 2.0), true)
|
||||
$Speaker.speaker = "fast_talker"
|
||||
$Speaker.speaker_name = "Dr.Thadd"
|
||||
$Speaker.connect("dialog_exited", self, "give_tip")
|
||||
$Speaker.start_dialog("intro_science")
|
||||
if start_on_play:
|
||||
$Speaker.start_dialog("intro_science")
|
||||
|
||||
func _on_interact():
|
||||
$Speaker.start_dialog("intro_science_followup")
|
||||
$Torso.flip_h = global_position.x < player.global_position.x
|
||||
|
||||
func give_tip():
|
||||
$Speaker.gui.display_tip("Used A & D to move\nleft and right")
|
||||
|
@ -3,13 +3,14 @@ extends KinematicBody2D
|
||||
export var clearance_level = 0
|
||||
|
||||
# Environment variables
|
||||
export var baseGravity : float = 9.8
|
||||
var baseGravity : float = 9.8
|
||||
|
||||
# Player movment variables
|
||||
export var maxMoveVelocity : float = 300
|
||||
export var moveAcceleration : float = 15
|
||||
export var moveFriction : float = 45
|
||||
export var jumpVelocity : float = -150
|
||||
var maxMoveVelocity : float = 150
|
||||
var moveAcceleration : float = 25
|
||||
var moveFriction : float = 65
|
||||
var jumpVelocity : float = -150
|
||||
var jumped = false
|
||||
|
||||
var moveMotion : float = 0 # Player Input ( <- & -> )
|
||||
var motion : Vector2 = Vector2(0,0) # Player's current velocity
|
||||
@ -25,7 +26,7 @@ func add_item(item):
|
||||
equip_item(item)
|
||||
|
||||
func equip_item(item):
|
||||
var node = get_node_or_null("Torso/RightArm/RightForearm/LeftHand/Node2D/" + item)
|
||||
var node = get_node_or_null("Sprite/Torso/RightArm/RightForearm/LeftHand/Node2D/" + item)
|
||||
if node:
|
||||
equiped = item
|
||||
node.show()
|
||||
@ -40,6 +41,7 @@ func remove_interactable(interactable):
|
||||
interactables.remove(loc)
|
||||
|
||||
func _physics_process(delta):
|
||||
jumped = false
|
||||
|
||||
# Gravity
|
||||
motion.y += baseGravity
|
||||
@ -67,8 +69,11 @@ func user_input():
|
||||
interactables[0].interact()
|
||||
|
||||
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
|
||||
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
|
||||
@ -77,6 +82,7 @@ func user_input():
|
||||
|
||||
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:
|
||||
@ -86,12 +92,19 @@ func user_input():
|
||||
|
||||
func animation_manager(motion : float):
|
||||
|
||||
if moveMotion > 0:
|
||||
if not is_on_floor():
|
||||
$AnimationPlayer.play("InAir")
|
||||
elif jumped:
|
||||
if $AnimationPlayer.current_animation != "Jump":
|
||||
$AnimationPlayer.play("Jump")
|
||||
elif moveMotion > 0:
|
||||
$AnimationPlayer.playback_speed = abs(motion)/200
|
||||
$AnimationPlayer.play("RunRight")
|
||||
if $AnimationPlayer.current_animation != "RunRight":
|
||||
$AnimationPlayer.play("RunRight")
|
||||
elif moveMotion < 0:
|
||||
$AnimationPlayer.playback_speed = abs(motion)/200
|
||||
$AnimationPlayer.play("RunLeft")
|
||||
if $AnimationPlayer.current_animation != "RunLeft":
|
||||
$AnimationPlayer.play("RunLeft")
|
||||
else:
|
||||
$AnimationPlayer.playback_speed = 1
|
||||
$AnimationPlayer.play("Idle")
|
||||
|
@ -2,11 +2,63 @@ extends Control
|
||||
|
||||
const SCROLL_SPEED = 25
|
||||
|
||||
var scroll_timer : Timer
|
||||
const SCROLL_TIP_DELAY = 5
|
||||
const SCROLL_FADE_RATE = 0.05
|
||||
const SCROLL_SHOW_RATE = 5
|
||||
|
||||
func _ready():
|
||||
$"/root/MusicManager".play_music("Dystopian/The Story Continues")
|
||||
$"/root/MusicManager".play_music("Dystopian/The Story Continues", false)
|
||||
if not scroll_timer:
|
||||
scroll_timer = Timer.new()
|
||||
add_child(scroll_timer)
|
||||
$Tip.modulate.a = 0
|
||||
scroll_timer.connect("timeout", self, "display_tip")
|
||||
scroll_timer.start(SCROLL_TIP_DELAY)
|
||||
set_completed()
|
||||
|
||||
func _process(delta):
|
||||
$Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED
|
||||
|
||||
if Input.is_action_pressed("ui_accept"):
|
||||
$Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED * 10
|
||||
else:
|
||||
$Scolling.rect_position.y = $Scolling.rect_position.y - delta * SCROLL_SPEED
|
||||
if abs($Scolling.rect_position.y) > $Scolling.rect_size.y + 100:
|
||||
get_tree().change_scene("res://Scenes/Title.scn")
|
||||
|
||||
func display_tip():
|
||||
$Tip.modulate.a = 0
|
||||
$Tip.text = "Press SPACE to speed up."
|
||||
$Tip.show()
|
||||
scroll_timer.disconnect("timeout", self, "display_tip")
|
||||
scroll_timer.disconnect("timeout", self, "fade_tip_out")
|
||||
scroll_timer.disconnect("timeout", self, "start_fade_tip_out")
|
||||
scroll_timer.connect("timeout", self, "fade_tip_in")
|
||||
scroll_timer.start(SCROLL_FADE_RATE)
|
||||
|
||||
func start_fade_tip_out():
|
||||
scroll_timer.disconnect("timeout", self, "display_tip")
|
||||
scroll_timer.disconnect("timeout", self, "fade_tip_in")
|
||||
scroll_timer.disconnect("timeout", self, "start_fade_tip_out")
|
||||
scroll_timer.connect("timeout", self, "fade_tip_out")
|
||||
scroll_timer.start(SCROLL_FADE_RATE)
|
||||
|
||||
func fade_tip_in():
|
||||
$Tip.modulate.a = clamp($Tip.modulate.a + 0.1, 0, 1)
|
||||
if $Tip.modulate.a == 1:
|
||||
scroll_timer.disconnect("timeout", self, "display_tip")
|
||||
scroll_timer.disconnect("timeout", self, "fade_tip_out")
|
||||
scroll_timer.disconnect("timeout", self, "fade_tip_in")
|
||||
scroll_timer.connect("timeout", self, "start_fade_tip_out")
|
||||
scroll_timer.start(SCROLL_SHOW_RATE)
|
||||
|
||||
func fade_tip_out():
|
||||
$Tip.modulate.a = clamp($Tip.modulate.a - 0.1, 0, 1)
|
||||
if $Tip.modulate.a == 0:
|
||||
scroll_timer.stop()
|
||||
|
||||
func set_completed():
|
||||
var file = File.new()
|
||||
file.open("user://progress.json", File.WRITE)
|
||||
file.store_string(to_json({"completed":"true"}))
|
||||
file.close()
|
||||
|
@ -10,8 +10,8 @@ func _ready():
|
||||
audio_player = AudioStreamPlayer.new()
|
||||
add_child(audio_player)
|
||||
$Fader/ColorRect.show()
|
||||
play_sound(preload("res://Assets/Sfx/intro/processed.wav"))
|
||||
play_sound(preload("res://Assets/Sfx/intro/doop.wav"))
|
||||
|
||||
func play_sound(audio_stream):
|
||||
audio_player.stream = audio_stream
|
||||
#audio_player.play()
|
||||
audio_player.play()
|
||||
|
@ -14,6 +14,7 @@ func _ready():
|
||||
$CreditsButton.connect("button_down", self, "_on_button_press", ["credits"])
|
||||
$OptionsButton.connect("button_down", self, "_on_button_press", ["options"])
|
||||
$BugButton.connect("button_down", self, "_on_button_press", ["bug"])
|
||||
check_completion()
|
||||
|
||||
|
||||
func _on_button_press(button):
|
||||
@ -29,3 +30,20 @@ func _on_button_press(button):
|
||||
get_parent().get_parent().get_node("OptionsDialog").popup_centered()
|
||||
"bug":
|
||||
OS.shell_open("https://github.com/josephbmanley/the-connection/issues/new?labels=bug&template=1_bug_report.md")
|
||||
"feedback":
|
||||
OS.shell_open("https://cloudsumu.com/r/confeedback")
|
||||
|
||||
func check_completion():
|
||||
var file = File.new()
|
||||
if file.file_exists("user://progress.json"):
|
||||
file.open("user://progress.json", File.READ)
|
||||
var data = parse_json(file.get_as_text())
|
||||
file.close()
|
||||
if typeof(data) == TYPE_DICTIONARY:
|
||||
if "completed" in data:
|
||||
if data["completed"] == "true":
|
||||
var feed_back_button = Button.new()
|
||||
feed_back_button.text = "Give Feedback"
|
||||
feed_back_button.connect("button_down", self, "_on_button_press", ["feedback"])
|
||||
add_child(feed_back_button)
|
||||
move_child(feed_back_button, 3)
|
||||
|
@ -91,7 +91,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter="*"
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
export_path="../../../Downloads/build/The Connection.x86_64"
|
||||
patch_list=PoolStringArray( )
|
||||
script_export_mode=1
|
||||
script_encryption_key=""
|
||||
|
@ -74,6 +74,7 @@ interact={
|
||||
"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":69,"unicode":0,"echo":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":88,"unicode":0,"echo":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":16777221,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user