4 Commits

Author SHA1 Message Date
6fd53367c0 Animations & Movement tweaks 2020-05-17 20:48:11 -04:00
abe340f025 Added dirt! 2020-05-17 18:04:19 -04:00
e22d56d0df New sfx, credits overhaul, and feedback button 2020-05-17 17:07:52 -04:00
3614049c11 Add feedback template 2020-05-17 15:49:31 -04:00
59 changed files with 3379 additions and 696 deletions

View 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?

View File

@ -1,3 +1,3 @@
source_md5="29f28fa741ffa711826400e7fea90a27"
dest_md5="2fe6ef3f4c5624748dc861a0b95a251b"
source_md5="3bfdad86a3348e10ad92dce7a0c7edfb"
dest_md5="b2215c68eec5e82ae3b199c3ebef6ca3"

View File

@ -0,0 +1,3 @@
source_md5="385e8652393bf9a3fa82a062489c5435"
dest_md5="2ca28503838f7dd03b796000ec31111f"

View File

@ -0,0 +1,3 @@
source_md5="34e50c915b51252660db4c26d6f61d92"
dest_md5="284c8f30177baaab7a71e88c2fa18e87"

View File

@ -0,0 +1,3 @@
source_md5="34e50c915b51252660db4c26d6f61d92"
dest_md5="284c8f30177baaab7a71e88c2fa18e87"

View File

@ -0,0 +1,3 @@
source_md5="130412d800df4b7c2fc9747a6a5805ef"
dest_md5="94ec308054667a107722b55e2203ebfc"

View File

@ -0,0 +1,3 @@
source_md5="130412d800df4b7c2fc9747a6a5805ef"
dest_md5="94ec308054667a107722b55e2203ebfc"

View File

@ -0,0 +1,3 @@
source_md5="b5b713d18d62a88eb579db8fdc12c626"
dest_md5="3fa5aa738a28dc6cdeb9786d5398a721"

View File

@ -0,0 +1,3 @@
source_md5="60a33f3b90accb46263e6e020ba53220"
dest_md5="3ecf06c6cb13d5480124991534f6698c"

View File

@ -0,0 +1,3 @@
source_md5="385e8652393bf9a3fa82a062489c5435"
dest_md5="2ca28503838f7dd03b796000ec31111f"

View File

@ -0,0 +1,3 @@
source_md5="385e8652393bf9a3fa82a062489c5435"
dest_md5="2ca28503838f7dd03b796000ec31111f"

View File

@ -0,0 +1,3 @@
source_md5="b85c7252c4e8b281547c84fdfeaec78d"
dest_md5="ec0b5aba05be1d14ab11983117a481f1"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View 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

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

View File

@ -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 )

View 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

View File

@ -1,31 +1,173 @@
[gd_scene load_steps=7 format=2]
[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=14]
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 4 )
region = Rect2( 0, 0, 32, 16 )
region = Rect2( 23, 0, 5, 16 )
[sub_resource type="RectangleShape2D" id=15]
[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"]
position = Vector2( 830.805, 1176.02 )
script = ExtResource( 3 )
__meta__ = {
"_edit_group_": true
}
[node name="Sprite" type="Sprite" parent="."]
texture = SubResource( 14 )
hframes = 2
frame = 1
[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="."]
shape = SubResource( 15 )
visible = false
shape = SubResource( 2 )
[node name="Speaker" type="Node" parent="."]
script = ExtResource( 2 )
@ -45,3 +187,7 @@ 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 )

View File

@ -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 )

View 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 )

View File

@ -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 )

View 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

View File

@ -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.

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=2]
[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]
@ -6,6 +6,8 @@
[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"]
@ -13,13 +15,21 @@
tile_set = ExtResource( 1 )
cell_size = Vector2( 16, 16 )
format = 1
tile_data = PoolIntArray( 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, 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, 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 )
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( 90.0225, 142.418 )
position = Vector2( 82.2741, 164.848 )
[node name="GUI" parent="." instance=ExtResource( 4 )]

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -7,7 +7,8 @@ func _ready():
$Speaker.speaker_name = "Aura"
connect("body_entered", self, "_on_body_enter")
connect("body_exited", self, "_on_body_exit")
#$Speaker.connect("dialog_exited", self, "_next")
$AnimationPlayer.play("Idle")
$AnimationPlayer.seek(rand_range(0.0,2.0))
func _on_body_enter(body):
if body.has_method("add_interactable"):
@ -16,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():

View File

@ -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:

View File

@ -4,6 +4,8 @@ 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")
@ -12,6 +14,7 @@ func _ready():
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")

View File

@ -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")

View File

@ -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()

View File

@ -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()

View File

@ -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)

View File

@ -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=""

View File

@ -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)
]
}