Compare commits

18 Commits

Author SHA1 Message Date
aa9b5a1793 Enemy follow 2023-09-03 18:23:51 -07:00
c8d0eefd7e Improve game over conditions 2023-09-03 15:57:21 -07:00
23f20f08e0 Set game over for character condition 2023-09-03 15:41:39 -07:00
f7417d0afd Initial character select implementation 2023-09-03 15:06:39 -07:00
a15973a621 Add stuff 2023-09-03 00:43:27 -07:00
23443546b2 Add game manager 2023-09-03 00:30:18 -07:00
cf2642be2c Boss healthbar 2023-09-03 00:16:40 -07:00
7764644b90 nobody is reading this 2023-09-02 21:43:53 -07:00
071010f652 Add controller support 2023-09-02 21:05:56 -07:00
9b5a94bfab Set spawn points 2023-09-02 20:59:00 -07:00
736060d6ca Load level 2023-09-02 20:03:20 -07:00
cff32e0fb9 Placeholder music 2023-09-02 18:33:44 -07:00
271b0ede0d Add stages 2023-09-02 18:17:24 -07:00
334378932c Basic enemy pathing implementation 2023-09-02 17:42:07 -07:00
549cb7a325 Bullet hit rock detection 2023-09-02 15:58:13 -07:00
11a2554697 A lot of UI work....
opening slash animation
main menu
load first level
2023-09-02 15:50:21 -07:00
c3d19b8e0d Fix project 2023-09-02 13:42:29 -07:00
f9c9bf0990 Fix project layout 2023-09-02 13:28:16 -07:00
104 changed files with 30674 additions and 100 deletions

BIN
Audio/BGM/02 MovinOn.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://cp787gdbhccb1"
path="res://.godot/imported/02 MovinOn.mp3-9ee085070ee763b5e5fda860f33a13f2.mp3str"
[deps]
source_file="res://Audio/BGM/02 MovinOn.mp3"
dest_files=["res://.godot/imported/02 MovinOn.mp3-9ee085070ee763b5e5fda860f33a13f2.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
Audio/BGM/titlemusic.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dbeeph3g2ped8"
path="res://.godot/imported/titlemusic.wav-dfb1259cd0095fafd5f1926f516a0a12.sample"
[deps]
source_file="res://Audio/BGM/titlemusic.wav"
dest_files=["res://.godot/imported/titlemusic.wav-dfb1259cd0095fafd5f1926f516a0a12.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_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View File

@@ -5,5 +5,6 @@
</PropertyGroup>
<ItemGroup>
<Folder Include="Scenes\" />
<Folder Include="Textures\Models\" />
</ItemGroup>
</Project>

BIN
Levels/Models/STAGE 1.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c0lv8ovqkl3a6"
path="res://.godot/imported/STAGE 1.blend-a0ebb2612e6580a56490c3fb7a136c7b.scn"
[deps]
source_file="res://Levels/Models/STAGE 1.blend"
dest_files=["res://.godot/imported/STAGE 1.blend-a0ebb2612e6580a56490c3fb7a136c7b.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 2.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dmi76rb317oou"
path="res://.godot/imported/STAGE 2.blend-26faad56e3fe8c962dcb9fd35eb71cf1.scn"
[deps]
source_file="res://Levels/Models/STAGE 2.blend"
dest_files=["res://.godot/imported/STAGE 2.blend-26faad56e3fe8c962dcb9fd35eb71cf1.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 3.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dwd2hlxhkcfpp"
path="res://.godot/imported/STAGE 3.blend-4ed8b476956d28a9310c05b3755f1349.scn"
[deps]
source_file="res://Levels/Models/STAGE 3.blend"
dest_files=["res://.godot/imported/STAGE 3.blend-4ed8b476956d28a9310c05b3755f1349.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 4.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c33ymduovqqw"
path="res://.godot/imported/STAGE 4.blend-764471844d4162d1c39199b30e0338df.scn"
[deps]
source_file="res://Levels/Models/STAGE 4.blend"
dest_files=["res://.godot/imported/STAGE 4.blend-764471844d4162d1c39199b30e0338df.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 5.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cthfld06b4dng"
path="res://.godot/imported/STAGE 5.blend-8358ddb2a6df2468fd8b8b59e9c3b69c.scn"
[deps]
source_file="res://Levels/Models/STAGE 5.blend"
dest_files=["res://.godot/imported/STAGE 5.blend-8358ddb2a6df2468fd8b8b59e9c3b69c.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 6.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bc3wjl3ibs5q7"
path="res://.godot/imported/STAGE 6.blend-98cd66082282f83ec6ad0702c192a4fb.scn"
[deps]
source_file="res://Levels/Models/STAGE 6.blend"
dest_files=["res://.godot/imported/STAGE 6.blend-98cd66082282f83ec6ad0702c192a4fb.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 7.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://biurk21cl5wxw"
path="res://.godot/imported/STAGE 7.blend-25d409d91f0f4219e3b34309a6e298c7.scn"
[deps]
source_file="res://Levels/Models/STAGE 7.blend"
dest_files=["res://.godot/imported/STAGE 7.blend-25d409d91f0f4219e3b34309a6e298c7.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 8.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dibismvgu8151"
path="res://.godot/imported/STAGE 8.blend-a2c42b5d8a1ab6153c93543b12f39a36.scn"
[deps]
source_file="res://Levels/Models/STAGE 8.blend"
dest_files=["res://.godot/imported/STAGE 8.blend-a2c42b5d8a1ab6153c93543b12f39a36.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

BIN
Levels/Models/STAGE 9.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bs8iqbayeqqm"
path="res://.godot/imported/STAGE 9.blend-cb66f2c4c46cf674b3169fdd5ca26e40.scn"
[deps]
source_file="res://Levels/Models/STAGE 9.blend"
dest_files=["res://.godot/imported/STAGE 9.blend-cb66f2c4c46cf674b3169fdd5ca26e40.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

Binary file not shown.

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cigdj84f0m3jd"
path="res://.godot/imported/god circuit stage 1.glb-2f69a377636b262509070ab5e0fe796a.scn"
[deps]
source_file="res://Levels/Models/god circuit stage 1.glb"
dest_files=["res://.godot/imported/god circuit stage 1.glb-2f69a377636b262509070ab5e0fe796a.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b41ur7kyd8vdl"
path.s3tc="res://.godot/imported/god circuit stage 1_image.png-f36e4022160fed836cbcc1729b099c66.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Levels/Models/god circuit stage 1_image.png"
dest_files=["res://.godot/imported/god circuit stage 1_image.png-f36e4022160fed836cbcc1729b099c66.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cmjk0lv873twh"
path="res://.godot/imported/FBXmeleeenemy.fbx-39d07ae3b54022cb3f8b6fc5b388c1b6.scn"
[deps]
source_file="res://Models/Enemies/FBXmeleeenemy.fbx"
dest_files=["res://.godot/imported/FBXmeleeenemy.fbx-39d07ae3b54022cb3f8b6fc5b388c1b6.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,48 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://hxu85nf6gm3b"
path="res://.godot/imported/meleeenemy.blend-8eccf61141ea355bc9186a38b93c1d84.scn"
[deps]
source_file="res://Models/Enemies/meleeenemy.blend"
dest_files=["res://.godot/imported/meleeenemy.blend-8eccf61141ea355bc9186a38b93c1d84.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1
blender/nodes/visible=0
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dr76w6fde0lqw"
path="res://.godot/imported/meleeenemy.dae-8f3f52592bee6d2abce9846b87baab92.scn"
[deps]
source_file="res://Models/Enemies/meleeenemy.dae"
dest_files=["res://.godot/imported/meleeenemy.dae-8f3f52592bee6d2abce9846b87baab92.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bybcv38cfxn01"
path="res://.godot/imported/meleeenemy1.gltf-5038921943114d8b9556b4a4f0229c76.scn"
[deps]
source_file="res://Models/Enemies/meleeenemy1.gltf"
dest_files=["res://.godot/imported/meleeenemy1.gltf-5038921943114d8b9556b4a4f0229c76.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dnqcfnmn1ijj6"
path="res://.godot/imported/meleeenemyloop.glb-5cddba91669024a643af51dd4b166979.scn"
[deps]
source_file="res://Models/Enemies/meleeenemyloop.glb"
dest_files=["res://.godot/imported/meleeenemyloop.glb-5cddba91669024a643af51dd4b166979.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

97
Scenes/ExitPortal.tscn Normal file
View File

@@ -0,0 +1,97 @@
[gd_scene load_steps=5 format=3 uid="uid://jgf7k1r35km1"]
[ext_resource type="PackedScene" uid="uid://0tegxun85rq" path="res://Textures/Models/exitprotal.gltf" id="1_jebs8"]
[sub_resource type="Animation" id="Animation_t7yyb"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Cylinder:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Circle:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Circle_001:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_y78yk"]
resource_name = "Spin"
length = 45.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Cylinder:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 45),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 6.28319, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Circle:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 45),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, -6.28319, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Circle_001:rotation")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 45),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, 6.28319, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_fkf2e"]
_data = {
"RESET": SubResource("Animation_t7yyb"),
"Spin": SubResource("Animation_y78yk")
}
[node name="Exit Portal" instance=ExtResource("1_jebs8")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="3"]
autoplay = "Spin"
libraries = {
"": SubResource("AnimationLibrary_fkf2e")
}

38
Scenes/GameManager.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=5 format=3 uid="uid://cxj6yeddshy16"]
[ext_resource type="PackedScene" uid="uid://b38hcomu4tpm5" path="res://Scenes/PiscesWitch.tscn" id="1_6lmun"]
[ext_resource type="Script" path="res://Scripts/GameManager.cs" id="1_ya2kt"]
[ext_resource type="PackedScene" uid="uid://dq1gtd55p04do" path="res://Scenes/StageGUI.tscn" id="5_gsh7q"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="7_4n1rc"]
[node name="GameManager" type="Node"]
script = ExtResource("1_ya2kt")
_p1Characters = [ExtResource("1_6lmun"), ExtResource("1_6lmun")]
_p2Characters = [ExtResource("1_6lmun"), ExtResource("1_6lmun")]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.929007, 0.136193, 0.34409, 0.369825, 0.375014, 0.850055, -0.0132668, 0.91696, -0.398758, -3.58319, 11.9025, 0.163277)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, -0.536318, 21.2932, 12.4591)
projection = 1
fov = 30.0
size = 9.0
[node name="StageGUI" parent="." instance=ExtResource("5_gsh7q")]
offset_left = 0.0
offset_top = 0.0
offset_right = 0.0
offset_bottom = 0.0
size_flags_horizontal = 4
size_flags_vertical = 4
[node name="P1SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.58707, 0, 0)
script = ExtResource("7_4n1rc")
[node name="P2SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.651031, 0, 0)
script = ExtResource("7_4n1rc")
[connection signal="OnCharacterSelectionMade" from="StageGUI" to="." method="OnP1CharacterSelected"]

6
Scenes/HPComponent.tscn Normal file
View File

@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://b1j0g6ikmnibm"]
[ext_resource type="Script" path="res://Scripts/HealthPoints.cs" id="1_ocdf1"]
[node name="HP Component" type="Node"]
script = ExtResource("1_ocdf1")

38
Scenes/Levels/Level1.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://dqv03pua4j8ga"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_owv8t"]
[ext_resource type="PackedScene" uid="uid://c0lv8ovqkl3a6" path="res://Levels/Models/STAGE 1.blend" id="1_pwpof"]
[ext_resource type="PackedScene" uid="uid://bt5rolsyjmx55" path="res://Scenes/MeleeEnemyOrb.tscn" id="5_dqbra"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="6_gegi6"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="9_8v1uu"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_kv6vl"]
radius = 0.957319
[node name="Level1" type="Node3D" groups=["Level"]]
script = ExtResource("1_owv8t")
[node name="STAGE 1" parent="." instance=ExtResource("1_pwpof")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("6_gegi6")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_kv6vl")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.28216, 0.123258, 5.51333)
script = ExtResource("9_8v1uu")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.78123, 0.123258, 5.51333)
script = ExtResource("9_8v1uu")
[node name="MeleeEnemyOrb" parent="." instance=ExtResource("5_dqbra")]
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level2.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://basequfmpg04f"]
[ext_resource type="PackedScene" uid="uid://dmi76rb317oou" path="res://Levels/Models/STAGE 2.blend" id="1_5pcmj"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_u04pt"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="2_sq8bv"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_1ryhf"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_dg8k3"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_tux5n"]
radius = 0.957319
[node name="Level2" type="Node3D" groups=["Level"]]
script = ExtResource("1_u04pt")
_levelIndex = 1
[node name="STAGE 2" parent="." instance=ExtResource("1_5pcmj")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.43759, 0, -2.42354)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("2_sq8bv")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_tux5n")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 4.44593)
script = ExtResource("4_1ryhf")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.97394, 0.246516, 4.57028)
script = ExtResource("5_dg8k3")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level3.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://btl5fdyjewnwc"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_1tnw5"]
[ext_resource type="PackedScene" uid="uid://dwd2hlxhkcfpp" path="res://Levels/Models/STAGE 3.blend" id="1_blsh8"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_2t766"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_t5mi5"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_kc2wt"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_j26hn"]
radius = 0.957319
[node name="Level3" type="Node3D" groups=["Level"]]
script = ExtResource("1_1tnw5")
_levelIndex = 2
[node name="STAGE 3" parent="." instance=ExtResource("1_blsh8")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.67434)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_2t766")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_j26hn")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("4_t5mi5")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3999, 0.123258, 5.51333)
script = ExtResource("5_kc2wt")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level4.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://ctvkevnc0wxka"]
[ext_resource type="PackedScene" uid="uid://c33ymduovqqw" path="res://Levels/Models/STAGE 4.blend" id="1_qu6ym"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_sqfsi"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_wflo5"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_hoql1"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_tx78o"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_8lqmd"]
radius = 0.957319
[node name="Level4" type="Node3D" groups=["Level"]]
script = ExtResource("1_sqfsi")
_levelIndex = 3
[node name="STAGE 4" parent="." instance=ExtResource("1_qu6ym")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.52969)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_wflo5")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_8lqmd")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("4_hoql1")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.65542, 0.123258, 5.51333)
script = ExtResource("5_tx78o")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level5.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://col60npvg7wr1"]
[ext_resource type="PackedScene" uid="uid://cthfld06b4dng" path="res://Levels/Models/STAGE 5.blend" id="1_fagdb"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_qbafj"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_ehcts"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_a5c54"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_2mfmm"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_a8pxa"]
radius = 0.957319
[node name="Level5" type="Node3D" groups=["Level"]]
script = ExtResource("1_qbafj")
_levelIndex = 4
[node name="STAGE 5" parent="." instance=ExtResource("1_fagdb")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.507195, 0, -1.82817)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_ehcts")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_a8pxa")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("4_a5c54")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.16798, 0.123258, 5.51333)
script = ExtResource("5_2mfmm")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level6.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://8ukphol1isp2"]
[ext_resource type="PackedScene" uid="uid://bc3wjl3ibs5q7" path="res://Levels/Models/STAGE 6.blend" id="1_q1cka"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_qlv44"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_0wdh0"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_awoco"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_tba4e"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_wu0in"]
radius = 0.957319
[node name="Level6" type="Node3D" groups=["Level"]]
script = ExtResource("1_qlv44")
_levelIndex = 5
[node name="STAGE 6" parent="." instance=ExtResource("1_q1cka")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.55156)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_0wdh0")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_wu0in")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("4_awoco")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.10805, 0.123258, 5.51333)
script = ExtResource("5_tba4e")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level7.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://bsq7edeueqyjg"]
[ext_resource type="PackedScene" uid="uid://biurk21cl5wxw" path="res://Levels/Models/STAGE 7.blend" id="1_dc67b"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_fio4n"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_sjnhq"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_kxyoc"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_5gfi0"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_a56hv"]
radius = 0.957319
[node name="Level7" type="Node3D" groups=["Level"]]
script = ExtResource("1_fio4n")
_levelIndex = 6
[node name="STAGE 7" parent="." instance=ExtResource("1_dc67b")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5888, 0, -1.39131)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_sjnhq")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_a56hv")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("4_kxyoc")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6401, 0.123258, 5.51333)
script = ExtResource("5_5gfi0")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

38
Scenes/Levels/Level8.tscn Normal file
View File

@@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://c4xcka4ekuur8"]
[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_mo03n"]
[ext_resource type="PackedScene" uid="uid://dibismvgu8151" path="res://Levels/Models/STAGE 8.blend" id="1_wd00s"]
[ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_44edv"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_rdu0b"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_76jfi"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_3ne7n"]
radius = 0.957319
[node name="Level8" type="Node3D" groups=["Level"]]
script = ExtResource("1_mo03n")
_levelIndex = 7
[node name="STAGE 8" parent="." instance=ExtResource("1_wd00s")]
[node name="Area3D2" type="Area3D" parent="." groups=["Level"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.47544)
collision_layer = 0
collision_mask = 16
[node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_44edv")]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823)
shape = SubResource("CylinderShape3D_3ne7n")
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("4_rdu0b")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.60971, 0.123258, 5.51333)
script = ExtResource("5_76jfi")
[connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"]

84
Scenes/Levels/Level9.tscn Normal file
View File

@@ -0,0 +1,84 @@
[gd_scene load_steps=10 format=3 uid="uid://0hdnmilwrsq6"]
[ext_resource type="PackedScene" uid="uid://bs8iqbayeqqm" path="res://Levels/Models/STAGE 9.blend" id="1_ley6w"]
[ext_resource type="Script" path="res://Scripts/HealthbarProgress.cs" id="2_53ar2"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="2_hr1h4"]
[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="3_xr71f"]
[ext_resource type="PackedScene" uid="uid://brbshysbgd47q" path="res://Scenes/god_circuit.tscn" id="4_vmhpd"]
[ext_resource type="Texture2D" uid="uid://ccnmmyvs53gni" path="res://Textures/Style_1.png" id="5_jjg8p"]
[ext_resource type="PackedScene" uid="uid://b1j0g6ikmnibm" path="res://Scenes/HPComponent.tscn" id="7_nvq88"]
[sub_resource type="LabelSettings" id="LabelSettings_8edkl"]
font_color = Color(0, 0, 0, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_slhvd"]
size = Vector3(2.65272, 5.04315, 1.02395)
[node name="Level9" type="Node3D" groups=["Level"]]
[node name="Control" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="TextureProgressBar" type="TextureProgressBar" parent="Control"]
top_level = true
z_index = 1
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_left = 4.0
offset_top = 44.0
offset_right = 4.0
offset_bottom = 73.0
grow_horizontal = 2
max_value = 2e+09
value = 2e+09
nine_patch_stretch = true
texture_progress = ExtResource("5_jjg8p")
script = ExtResource("2_53ar2")
[node name="Label" type="Label" parent="Control"]
top_level = true
z_index = 1
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -43.0
offset_right = 43.0
offset_bottom = 26.0
grow_horizontal = 2
text = "God Circuit
"
label_settings = SubResource("LabelSettings_8edkl")
[node name="STAGE 9" parent="." instance=ExtResource("1_ley6w")]
[node name="P1_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333)
script = ExtResource("2_hr1h4")
[node name="P2_SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.29148, 0.123258, 5.44653)
script = ExtResource("3_xr71f")
[node name="God Circuit" parent="." instance=ExtResource("4_vmhpd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.54956, 1.08022, -0.0539055)
[node name="Area3D" type="Area3D" parent="God Circuit"]
collision_layer = 0
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="God Circuit/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.89871, 1.49756, -2.3792)
shape = SubResource("BoxShape3D_slhvd")
[node name="HP Component" parent="God Circuit" node_paths=PackedStringArray("_healthBar") instance=ExtResource("7_nvq88")]
MaximumHP = 2000000000
_healthBar = NodePath("../../Control/TextureProgressBar")
[connection signal="body_entered" from="God Circuit/Area3D" to="God Circuit" method="OnHit"]

22
Scenes/Main.tscn Normal file
View File

@@ -0,0 +1,22 @@
[gd_scene load_steps=13 format=3 uid="uid://vwrw05ob2caq"]
[ext_resource type="Script" path="res://Scripts/Main.cs" id="1_g4hua"]
[ext_resource type="PackedScene" uid="uid://dqv03pua4j8ga" path="res://Scenes/Levels/Level1.tscn" id="2_cqnvi"]
[ext_resource type="PackedScene" uid="uid://b12gq4yqc3d8i" path="res://Scenes/MainMenu.tscn" id="2_kvovw"]
[ext_resource type="PackedScene" uid="uid://basequfmpg04f" path="res://Scenes/Levels/Level2.tscn" id="3_2qwg5"]
[ext_resource type="PackedScene" uid="uid://btl5fdyjewnwc" path="res://Scenes/Levels/Level3.tscn" id="4_8bgmu"]
[ext_resource type="PackedScene" uid="uid://ctvkevnc0wxka" path="res://Scenes/Levels/Level4.tscn" id="5_6rnhl"]
[ext_resource type="PackedScene" uid="uid://col60npvg7wr1" path="res://Scenes/Levels/Level5.tscn" id="6_krvi4"]
[ext_resource type="PackedScene" uid="uid://8ukphol1isp2" path="res://Scenes/Levels/Level6.tscn" id="7_or04k"]
[ext_resource type="PackedScene" uid="uid://bsq7edeueqyjg" path="res://Scenes/Levels/Level7.tscn" id="8_407wt"]
[ext_resource type="PackedScene" uid="uid://c4xcka4ekuur8" path="res://Scenes/Levels/Level8.tscn" id="9_q0hjs"]
[ext_resource type="PackedScene" uid="uid://0hdnmilwrsq6" path="res://Scenes/Levels/Level9.tscn" id="10_imcyj"]
[ext_resource type="PackedScene" uid="uid://cxj6yeddshy16" path="res://Scenes/GameManager.tscn" id="11_wiyvp"]
[node name="Main" type="Node"]
script = ExtResource("1_g4hua")
Levels = Array[PackedScene]([ExtResource("2_cqnvi"), ExtResource("3_2qwg5"), ExtResource("4_8bgmu"), ExtResource("5_6rnhl"), ExtResource("6_krvi4"), ExtResource("7_or04k"), ExtResource("8_407wt"), ExtResource("9_q0hjs"), ExtResource("10_imcyj")])
GameManager = ExtResource("11_wiyvp")
[node name="MainMenu" parent="." instance=ExtResource("2_kvovw")]
z_index = 100

28
Scenes/MainMenu.tscn Normal file
View File

@@ -0,0 +1,28 @@
[gd_scene load_steps=3 format=3 uid="uid://b12gq4yqc3d8i"]
[ext_resource type="Script" path="res://Scripts/MainMenu.cs" id="1_6aikc"]
[ext_resource type="PackedScene" uid="uid://cjl20bs56430j" path="res://UI/Animations/UIAnimations.tscn" id="2_erh7e"]
[node name="MainMenu" type="Node2D"]
script = ExtResource("1_6aikc")
[node name="NewGame" type="Control" parent="."]
z_index = 10
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Button" type="Button" parent="NewGame"]
layout_mode = 0
offset_left = 583.0
offset_top = 441.0
offset_right = 1155.0
offset_bottom = 645.0
text = "Play"
[node name="UIAnimations" parent="." instance=ExtResource("2_erh7e")]
[connection signal="pressed" from="NewGame/Button" to="." method="OnStartButtonPressed"]

8
Scenes/MeleeEnemy.tscn Normal file
View File

@@ -0,0 +1,8 @@
[gd_scene load_steps=2 format=3 uid="uid://8hrpjyw4owst"]
[ext_resource type="PackedScene" uid="uid://bg18q3cj6wdie" path="res://Models/Enemies/meleeenemy - Updated.glb" id="1_ug6b2"]
[node name="meleeenemy - Updated" instance=ExtResource("1_ug6b2")]
[node name="AnimationPlayer" parent="." index="10"]
autoplay = "Animation"

18
Scenes/MeleeEnemyOrb.tscn Normal file
View File

@@ -0,0 +1,18 @@
[gd_scene load_steps=4 format=3 uid="uid://bt5rolsyjmx55"]
[ext_resource type="PackedScene" uid="uid://bay1tvgtpfxns" path="res://Scenes/MeleeEnemySchmoove.tscn" id="1_0pxgq"]
[ext_resource type="Script" path="res://Scripts/MeleeEnemy.cs" id="1_50och"]
[sub_resource type="BoxShape3D" id="BoxShape3D_1nq5h"]
size = Vector3(0.470892, 0.604331, 0.423598)
[node name="MeleeEnemyOrb" type="Node3D"]
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
script = ExtResource("1_50och")
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.475385, 0.143401)
shape = SubResource("BoxShape3D_1nq5h")
[node name="meleeenemy - Updated" parent="CharacterBody3D" instance=ExtResource("1_0pxgq")]

View File

@@ -0,0 +1,21 @@
[gd_scene load_steps=2 format=3 uid="uid://bay1tvgtpfxns"]
[ext_resource type="PackedScene" uid="uid://bg18q3cj6wdie" path="res://Models/Enemies/meleeenemy - Updated.glb" id="1_7u76h"]
[node name="meleeenemy - Updated" instance=ExtResource("1_7u76h")]
[node name="Circle_004" parent="." index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0868937, 0.567455, 0.186096)
[node name="Text_003" parent="." index="4"]
transform = Transform3D(0.0536953, 0, 0, 0, 0.0536953, 0, 0, 0, 0.0536953, 0.0626427, 0.123465, 0.11049)
[node name="Text_004" parent="." index="6"]
transform = Transform3D(0.0480592, 0, 0, 0, 0.0480592, 0, 0, 0, 0.0480592, 0.0626427, 0.123465, 0.11049)
[node name="Text_005" parent="." index="8"]
transform = Transform3D(0.0438454, 0, 0, 0, 0.0438454, 0, 0, 0, 0.0438454, 0.0626427, 0.123465, 0.11049)
[node name="AnimationPlayer" parent="." index="10"]
autoplay = "Animation"
reset_on_save = false

View File

@@ -1,6 +1,8 @@
[gd_scene load_steps=5 format=3 uid="uid://b38hcomu4tpm5"]
[gd_scene load_steps=7 format=3 uid="uid://b38hcomu4tpm5"]
[ext_resource type="Script" path="res://Scripts/TestCharacter.cs" id="1_hddqi"]
[ext_resource type="Script" path="res://Scripts/Player1.cs" id="1_tinf8"]
[ext_resource type="PackedScene" uid="uid://si4byubqnng4" path="res://Scenes/TestBullet.tscn" id="2_ciujd"]
[ext_resource type="PackedScene" uid="uid://bq40xbqibrk1y" path="res://Scenes/ShotgunBullet.tscn" id="3_0of1i"]
[ext_resource type="PackedScene" uid="uid://yosw0j58nvrf" path="res://Models/Characters/fwitch.gltf" id="4_n3637"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ayco3"]
@@ -11,17 +13,18 @@ height = 3.77708
radius = 0.704872
height = 1.67894
[node name="Character" type="CharacterBody3D"]
script = ExtResource("1_hddqi")
[node name="Pisces" type="CharacterBody3D" groups=["Player"]]
script = ExtResource("1_tinf8")
_fireProjectile = ExtResource("2_ciujd")
_altFireProjectile = ExtResource("3_0of1i")
[node name="Pivot" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
[node name="fwitch" parent="Pivot" instance=ExtResource("4_n3637")]
[node name="Area3D" type="Area3D" parent="Pivot"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75657e-15, 0, 0)
collision_layer = 0
collision_layer = 16
collision_mask = 4
[node name="CollisionShape3D" type="CollisionShape3D" parent="Pivot/Area3D"]
@@ -32,4 +35,12 @@ shape = SubResource("CapsuleShape3D_ayco3")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.06805, -0.211049)
shape = SubResource("CapsuleShape3D_fqik1")
[node name="Button" type="Button" parent="."]
offset_left = 1602.0
offset_top = 40.0
offset_right = 1872.0
offset_bottom = 178.0
text = "Hit"
[connection signal="body_entered" from="Pivot/Area3D" to="." method="OnHit"]
[connection signal="pressed" from="Button" to="." method="HitDebug"]

View File

@@ -1,16 +1,10 @@
[gd_scene load_steps=6 format=3 uid="uid://bq40xbqibrk1y"]
[gd_scene load_steps=4 format=3 uid="uid://bq40xbqibrk1y"]
[ext_resource type="Script" path="res://Scripts/ShotgunBullet.cs" id="1_binxs"]
[ext_resource type="Texture2D" uid="uid://borp7xvlfdcmq" path="res://Textures/Projectiles/bubble.png" id="2_dv80m"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5vpcx"]
albedo_color = Color(0.584314, 0.0352941, 0.141176, 1)
[sub_resource type="SphereMesh" id="SphereMesh_ugmuv"]
material = SubResource("StandardMaterial3D_5vpcx")
[sub_resource type="SphereShape3D" id="SphereShape3D_o6kys"]
radius = 0.8
radius = 0.2
[node name="ShotgunBullet" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.73894, 0)
@@ -19,72 +13,58 @@ Cooldown = 0.5
_projectileSpeed = 15.0
[node name="RigidBody3D" type="RigidBody3D" parent="."]
transform = Transform3D(0.999848, 0, -0.0174524, 0, 1, 0, 0.0174524, 0, 0.999848, -1.27456, 0, 0)
collision_layer = 2
collision_mask = 0
transform = Transform3D(0.99863, 0, -0.052336, 0, 1, 0, 0.052336, 0, 0.99863, -0.508974, 0, 0)
collision_layer = 34
collision_mask = 32
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 10
max_contacts_reported = 1000
contact_monitor = true
can_sleep = false
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D"]
transform = Transform3D(0.647894, 0, 0.761731, 0, 1, 0, -0.761731, 0, 0.647894, 0, 0, 0)
visible = false
mesh = SubResource("SphereMesh_ugmuv")
skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
shape = SubResource("SphereShape3D_o6kys")
[node name="Sprite3D" type="Sprite3D" parent="RigidBody3D"]
pixel_size = 0.05
axis = 1
texture = ExtResource("2_dv80m")
[node name="RigidBody3D2" type="RigidBody3D" parent="."]
transform = Transform3D(0.999848, 0, 0.0174524, 0, 1, 0, -0.0174524, 0, 0.999848, 1.32, 0, 0)
collision_layer = 2
collision_mask = 0
transform = Transform3D(0.99863, 0, 0.052336, 0, 1, 0, -0.052336, 0, 0.99863, 0.647, 0, 0)
collision_layer = 34
collision_mask = 32
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 10
max_contacts_reported = 1000
contact_monitor = true
can_sleep = false
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D2"]
visible = false
mesh = SubResource("SphereMesh_ugmuv")
skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D2"]
shape = SubResource("SphereShape3D_o6kys")
[node name="Sprite3D" type="Sprite3D" parent="RigidBody3D2"]
pixel_size = 0.05
axis = 1
texture = ExtResource("2_dv80m")
[node name="RigidBody3D3" type="RigidBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.56619)
collision_layer = 2
collision_mask = 0
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.592052)
collision_layer = 34
collision_mask = 32
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 10
max_contacts_reported = 1000
contact_monitor = true
can_sleep = false
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D3"]
transform = Transform3D(0.999848, 0, 0.0174524, 0, 1, 0, -0.0174524, 0, 0.999848, 0, 0, 0)
visible = false
mesh = SubResource("SphereMesh_ugmuv")
skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D3"]
shape = SubResource("SphereShape3D_o6kys")
[node name="Sprite3D" type="Sprite3D" parent="RigidBody3D3"]
pixel_size = 0.05
axis = 1
texture = ExtResource("2_dv80m")
[node name="TTL" type="Timer" parent="."]
process_callback = 0
autostart = true
[connection signal="timeout" from="TTL" to="." method="OnTimeToLiveTimeout"]

127
Scenes/StageGUI.tscn Normal file
View File

@@ -0,0 +1,127 @@
[gd_scene load_steps=6 format=3 uid="uid://dq1gtd55p04do"]
[ext_resource type="Texture2D" uid="uid://dieoh0r7a5try" path="res://Textures/Portraits/Pisces.jpg" id="1_id5nf"]
[ext_resource type="Script" path="res://Scripts/StageGUI.cs" id="1_wr2m0"]
[ext_resource type="Texture2D" uid="uid://2vog2nty4qrj" path="res://Textures/wheel.png" id="4_3jyfi"]
[sub_resource type="Animation" id="Animation_ptfpl"]
resource_name = "Rollover"
[sub_resource type="AnimationLibrary" id="AnimationLibrary_05shj"]
_data = {
"Rollover": SubResource("Animation_ptfpl")
}
[node name="StageGUI" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -59.0
offset_top = -36.0
offset_right = -59.0
offset_bottom = -36.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_wr2m0")
[node name="Placeholder1" type="ColorRect" parent="."]
custom_minimum_size = Vector2(410, 1080)
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_top = -540.0
offset_right = 240.0
offset_bottom = 540.0
grow_vertical = 2
color = Color(1, 0.447059, 1, 1)
[node name="Placeholder2" type="ColorRect" parent="."]
custom_minimum_size = Vector2(410, 1080)
layout_mode = 1
anchors_preset = 6
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = -300.0
offset_top = -540.0
offset_bottom = 540.0
grow_horizontal = 0
grow_vertical = 2
color = Color(1, 0.447059, 1, 1)
[node name="CharacterSelect" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="AnimationPlayer" type="AnimationPlayer" parent="CharacterSelect"]
libraries = {
"": SubResource("AnimationLibrary_05shj")
}
[node name="Wheel" type="TextureRect" parent="CharacterSelect"]
visible = false
layout_mode = 0
offset_left = 48.0
offset_top = 71.0
offset_right = 349.0
offset_bottom = 386.0
texture = ExtResource("4_3jyfi")
expand_mode = 1
[node name="Wheel2" type="TextureRect" parent="CharacterSelect"]
visible = false
layout_mode = 0
offset_left = 1570.0
offset_top = 84.0
offset_right = 1871.0
offset_bottom = 399.0
texture = ExtResource("4_3jyfi")
expand_mode = 1
[node name="P1_Portrait" type="TextureRect" parent="CharacterSelect"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 30.0
offset_top = 400.0
offset_right = -722.0
offset_bottom = 400.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.3, 0.3)
texture = ExtResource("1_id5nf")
expand_mode = 1
flip_h = true
[node name="P2_Portrait" type="TextureRect" parent="CharacterSelect"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 1545.0
offset_top = 400.0
offset_right = 793.0
offset_bottom = 400.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.3, 0.3)
texture = ExtResource("1_id5nf")
expand_mode = 1
[node name="Button" type="Button" parent="CharacterSelect"]
layout_mode = 0
offset_left = 64.0
offset_top = 774.0
offset_right = 336.0
offset_bottom = 889.0
text = "Character select"
[connection signal="pressed" from="CharacterSelect/Button" to="." method="OnCharacterSelect"]

View File

@@ -10,7 +10,7 @@ albedo_color = Color(0.584314, 0.0352941, 0.141176, 1)
material = SubResource("StandardMaterial3D_phgri")
[sub_resource type="SphereShape3D" id="SphereShape3D_rokeu"]
radius = 0.8
radius = 0.2
[node name="TestBullet" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.538645, 0)
@@ -19,12 +19,11 @@ Cooldown = 0.5
_projectileSpeed = 15.0
[node name="RigidBody3D" type="RigidBody3D" parent="."]
collision_layer = 2
collision_mask = 0
collision_layer = 34
collision_mask = 32
gravity_scale = 0.0
custom_integrator = true
continuous_cd = true
max_contacts_reported = 10
max_contacts_reported = 1000
contact_monitor = true
can_sleep = false
@@ -34,10 +33,17 @@ mesh = SubResource("SphereMesh_wuk0e")
skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0905764, 0, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0054872, -0.00215495, 0.0167444)
shape = SubResource("SphereShape3D_rokeu")
[node name="Sprite3D" type="Sprite3D" parent="RigidBody3D"]
pixel_size = 0.05
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00168204, -0.0587139, 0)
axis = 1
texture = ExtResource("2_n5c16")
[node name="TTL" type="Timer" parent="."]
process_callback = 0
autostart = true
[connection signal="body_entered" from="RigidBody3D" to="." method="OnBulletHitObject"]
[connection signal="timeout" from="TTL" to="." method="OnTimeToLiveTimeout"]

View File

@@ -1,41 +1,61 @@
[gd_scene load_steps=6 format=3 uid="uid://dkjdt7uq3a4j3"]
[gd_scene load_steps=7 format=3 uid="uid://dkjdt7uq3a4j3"]
[ext_resource type="ArrayMesh" uid="uid://d3u564wle888o" path="res://Models/TestModels/Ness/nesspoly.obj" id="1_jhe4l"]
[ext_resource type="Script" path="res://Scripts/TestEnemy.cs" id="1_m03um"]
[ext_resource type="PackedScene" uid="uid://rlxnnw4yay7e" path="res://Scenes/EnemyBullet.tscn" id="2_h68e2"]
[ext_resource type="Script" path="res://Scripts/FireAtPlayer.cs" id="3_dhmfs"]
[sub_resource type="Curve3D" id="Curve3D_dgatw"]
_data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
"tilts": PackedFloat32Array(0, 0, 0)
}
point_count = 3
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_eb41r"]
radius = 1.0
height = 3.5
[node name="TestEnemy" type="Node3D"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[node name="RigidBody3D" type="RigidBody3D" parent="."]
[node name="Path3D" type="Path3D" parent="."]
curve = SubResource("Curve3D_dgatw")
[node name="PathFollow3D" type="PathFollow3D" parent="Path3D"]
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0, 0, 0)
rotation_mode = 0
cubic_interp = false
tilt_enabled = false
[node name="RigidBody3D" type="RigidBody3D" parent="Path3D/PathFollow3D" node_paths=PackedStringArray("_pathFollow")]
collision_layer = 0
collision_mask = 2
gravity_scale = 0.0
continuous_cd = true
max_contacts_reported = 10
contact_monitor = true
can_sleep = false
script = ExtResource("1_m03um")
_speed = 1.0
_pathFollow = NodePath("..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51635, 0)
shape = SubResource("CapsuleShape3D_eb41r")
[node name="Nesspoly" type="MeshInstance3D" parent="RigidBody3D"]
[node name="Nesspoly" type="MeshInstance3D" parent="Path3D/PathFollow3D/RigidBody3D"]
transform = Transform3D(7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0)
mesh = ExtResource("1_jhe4l")
skeleton = NodePath("../..")
skeleton = NodePath("../../../..")
[node name="Timer" type="Timer" parent="." node_paths=PackedStringArray("_enemy")]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Path3D/PathFollow3D/RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.53674e-07, 1.51635, -9.53674e-07)
shape = SubResource("CapsuleShape3D_eb41r")
[node name="Timer" type="Timer" parent="Path3D" node_paths=PackedStringArray("_enemy")]
wait_time = 3.0
autostart = true
script = ExtResource("3_dhmfs")
_enemy = NodePath("../RigidBody3D")
_enemy = NodePath("../PathFollow3D/RigidBody3D")
_fireProjectile = ExtResource("2_h68e2")
[connection signal="body_entered" from="RigidBody3D" to="RigidBody3D" method="OnHit"]
[connection signal="tree_exiting" from="RigidBody3D" to="Timer" method="OnDied"]
[connection signal="timeout" from="Timer" to="Timer" method="OnFireAtPlayer"]
[connection signal="body_entered" from="Path3D/PathFollow3D/RigidBody3D" to="Path3D/PathFollow3D/RigidBody3D" method="OnHit"]
[connection signal="tree_exiting" from="Path3D/PathFollow3D/RigidBody3D" to="Path3D/Timer" method="OnDied"]
[connection signal="timeout" from="Path3D/Timer" to="Path3D/Timer" method="OnFireAtPlayer"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://dy3d4e6qegyjg"]
[gd_scene load_steps=14 format=3 uid="uid://dy3d4e6qegyjg"]
[ext_resource type="Script" path="res://Scripts/TestLevel.cs" id="1_blhn0"]
[ext_resource type="PackedScene" uid="uid://b38hcomu4tpm5" path="res://Scenes/TestCharacter.tscn" id="1_fwf6c"]
[ext_resource type="PackedScene" uid="uid://b38hcomu4tpm5" path="res://Scenes/PiscesWitch.tscn" id="1_fwf6c"]
[ext_resource type="PackedScene" uid="uid://bckd04543occ5" path="res://Levels/levelTEST.gltf" id="2_afl3s"]
[ext_resource type="PackedScene" uid="uid://dkjdt7uq3a4j3" path="res://Scenes/TestEnemy.tscn" id="3_ds7vi"]
[ext_resource type="PackedScene" uid="uid://si4byubqnng4" path="res://Scenes/TestBullet.tscn" id="3_lmb02"]
@@ -28,19 +28,24 @@ radius = 2.32337
height = 5.0
radius = 2.06347
[sub_resource type="BoxShape3D" id="BoxShape3D_6yy78"]
size = Vector3(23.703, 10, 5.06868)
[node name="Level" type="Node3D" node_paths=PackedStringArray("_spawnPoint")]
script = ExtResource("1_blhn0")
_spawnPoint = NodePath("SpawnPoint")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, -0.0769171, 95.2611, -32.0601)
transform = Transform3D(1, 0, 0, 0, 0.496974, 0.867765, 0, -0.867765, 0.496974, 0, 47.9461, -5.79899)
projection = 1
fov = 30.0
size = 45.0
[node name="DebugCamera" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.821149, 0.570714, 0, -0.570714, 0.821149, -0.36148, 22.6449, 10.8421)
[node name="Fish Witch" parent="." groups=["Player"] instance=ExtResource("1_fwf6c")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 40.7459)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.64605, -18.4987)
_speed = 10.0
_fireProjectile = ExtResource("3_lmb02")
_altFireProjectile = ExtResource("4_t522c")
@@ -62,8 +67,6 @@ shape = SubResource("BoxShape3D_hr26o")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.1248, 1.81661, -31.1077)
shape = SubResource("BoxShape3D_hr26o")
[node name="levelTEST" parent="StaticBody3D" instance=ExtResource("2_afl3s")]
[node name="CollisionShape3D4" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4.42545)
shape = SubResource("BoxShape3D_sjyl3")
@@ -84,20 +87,33 @@ shape = SubResource("BoxShape3D_sjyl3")
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -48.9058, -1.95573, -40.25)
shape = SubResource("BoxShape3D_sjyl3")
[node name="Rock1" type="CollisionShape3D" parent="StaticBody3D"]
[node name="TestEnemy" parent="." instance=ExtResource("3_ds7vi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.5579, 5.52246, -43.2246)
[node name="SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.757998, 6.71652, -10.4768)
[node name="StaticBody3D2" type="StaticBody3D" parent="."]
collision_layer = 16
collision_mask = 16
[node name="Rock1" type="CollisionShape3D" parent="StaticBody3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.93645, 5.82082, -21.6909)
shape = SubResource("CylinderShape3D_lhgew")
[node name="Rock2" type="CollisionShape3D" parent="StaticBody3D"]
[node name="Rock2" type="CollisionShape3D" parent="StaticBody3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.82773, 6.46042, -40.6232)
shape = SubResource("CylinderShape3D_fa41j")
[node name="Rock3" type="CollisionShape3D" parent="StaticBody3D"]
[node name="Rock3" type="CollisionShape3D" parent="StaticBody3D2"]
transform = Transform3D(0.999841, -0.0178538, 0, 0.0178538, 0.999841, 0, 0, 0, 1, -6.84036, 6.33278, -46.1737)
shape = SubResource("CylinderShape3D_krlem")
[node name="TestEnemy" parent="." instance=ExtResource("3_ds7vi")]
transform = Transform3D(0.998405, 0.0226647, 0.0517184, -0.0544217, 0.630486, 0.77429, -0.0150588, -0.775869, 0.630714, -20.5579, 5.52246, -43.2246)
[node name="levelTEST" parent="." instance=ExtResource("2_afl3s")]
[node name="SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, -0.757998, 6.71652, -10.4768)
[node name="Area3D" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.37586, 6.95177, -51.8635)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.8568, 0, -1.7855)
shape = SubResource("BoxShape3D_6yy78")

9
Scenes/god_circuit.tscn Normal file
View File

@@ -0,0 +1,9 @@
[gd_scene load_steps=3 format=3 uid="uid://brbshysbgd47q"]
[ext_resource type="Script" path="res://Scripts/GodCircuit.cs" id="1_gyfww"]
[ext_resource type="PackedScene" uid="uid://cigdj84f0m3jd" path="res://Levels/Models/god circuit stage 1.glb" id="1_w12q0"]
[node name="God Circuit" type="Node3D"]
script = ExtResource("1_gyfww")
[node name="god circuit stage 1" parent="." instance=ExtResource("1_w12q0")]

View File

@@ -0,0 +1,29 @@
[gd_scene load_steps=2 format=3 uid="uid://bh2xtqtquiplt"]
[ext_resource type="PackedScene" uid="uid://dnqcfnmn1ijj6" path="res://Models/Enemies/meleeenemyloop.glb" id="1_kiqcg"]
[node name="meleeenemyloop" instance=ExtResource("1_kiqcg")]
[node name="Icosphere_001" parent="." index="0"]
transform = Transform3D(0.857174, 0, 0, 0, 0.857174, 0, 0, 0, 0.857174, 0.0805536, 0.463081, 0.158035)
[node name="Circle_001" parent="." index="1"]
transform = Transform3D(1.04984, 0, -0.0183252, 0, 1.05, 0, 0.0183252, 0, 1.04984, 0.0457887, 0.476383, 0.128917)
[node name="Circle_002" parent="." index="2"]
transform = Transform3D(1.1, 0, 0, 0, 1.09983, 0.0191979, 0, -0.0191979, 1.09983, 0.0659095, 0.483551, 0.119628)
[node name="Circle_004" parent="." index="3"]
transform = Transform3D(0.999848, -0.0174526, 0, 0.0174526, 0.999848, 0, 0, 0, 1, 0.0868937, 0.567455, 0.186096)
[node name="Text_003" parent="." index="4"]
transform = Transform3D(0.0536871, 0, -0.000937123, 0, 0.0536953, 0, 0.000937123, 0, 0.0536871, 0.0626427, 0.123465, 0.11049)
[node name="Text_004" parent="." index="6"]
transform = Transform3D(0.0480519, 0, -0.000838759, 0, 0.0480592, 0, 0.000838759, 0, 0.0480519, 0.0626427, 0.123465, 0.11049)
[node name="Text_005" parent="." index="8"]
transform = Transform3D(0.0438387, 0, -0.000765217, 0, 0.0438454, 0, 0.000765217, 0, 0.0438387, 0.0626427, 0.123465, 0.11049)
[node name="AnimationPlayer" parent="." index="10"]
autoplay = "Animation"

15
Scripts/AreaExit.cs Normal file
View File

@@ -0,0 +1,15 @@
using Godot;
public partial class AreaExit : Node3D
{
[Export]
private int _levelIndex;
private void OnExitEntered(Node3D node)
{
GD.Print("Exit reached");
var main = GetTree().Root.GetNode<Main>("/root/Main");
main.LoadNextLevel(_levelIndex);
}
}

17
Scripts/BGMPlayer.cs Normal file
View File

@@ -0,0 +1,17 @@
using Godot;
public partial class BGMPlayer : AudioStreamPlayer
{
public void SetBGMFromFilepath(string path)
{
var audioStream = ResourceLoader.Load<AudioStream>(path);
if (Stream != audioStream)
Stream = audioStream;
}
public void PlayBGM()
{
if (!Playing)
Play();
}
}

89
Scripts/GameManager.cs Normal file
View File

@@ -0,0 +1,89 @@
using Godot;
using Godot.Collections;
using System.Linq;
public partial class GameManager : Node
{
[Signal]
public delegate void OnGameOverEventHandler();
[Signal]
public delegate void OnP1GameOverEventHandler();
[Signal]
public delegate void OnP2GameOverEventHandler();
public int NumberOfPlayers;
public bool IsP1SelectingCharacter = true;
public bool IsP2SelectingCharacter = true;
[Export]
public Array<PackedScene> _p1Characters;
[Export]
public Array<PackedScene> _p2Characters;
[Export]
public Character _p1SelectedCharacter;
[Export]
public Character _p2SelectedCharacter;
private bool _p1GameOver = false;
private bool _p2GameOver = false;
private int _p1CharacterIndex = 0;
private int _p2CharacterIndex = 0;
public void SetP1ToNextCharacter() => _p1CharacterIndex = (++_p1CharacterIndex) % _p1Characters.Count();
public void SetP1ToPreviousCharacter() => _p1CharacterIndex = _p1CharacterIndex == 0 ? _p1Characters.Count() : --_p1CharacterIndex;
public void OnP1CharacterSelected()
{
GD.Print("Instancing...");
var selectedPlayer = _p1Characters[_p1CharacterIndex].Instantiate();
_p1SelectedCharacter = selectedPlayer as Character;
GetTree().Root.AddChild(_p1SelectedCharacter);
var playerSpawnPoint = GetNode<SpawnPoint>("P1SpawnPoint");
playerSpawnPoint.SetPlayerPosition(_p1SelectedCharacter);
}
public void RemoveP1Character()
{
_p1Characters.Remove(_p1Characters.ElementAt(_p1CharacterIndex));
_p1SelectedCharacter?.QueueFree();
_p1CharacterIndex = 0;
}
public void SetP1GameOver(bool isGameOver)
{
_p1GameOver = isGameOver;
if (isGameOver)
{
EmitSignal(SignalName.OnP1GameOver);
CheckForOverallGameOver();
}
}
public bool IsP1GameOver => _p1GameOver;
public void SetP2GameOver(bool isGameOver)
{
_p2GameOver = isGameOver;
if (isGameOver)
{
EmitSignal(SignalName.OnP2GameOver);
CheckForOverallGameOver();
}
}
private void CheckForOverallGameOver()
{
if (_p1GameOver && _p2GameOver)
EmitSignal(SignalName.OnGameOver);
}
}
public partial class Character : CharacterBody3D
{
}

12
Scripts/GodCircuit.cs Normal file
View File

@@ -0,0 +1,12 @@
using Godot;
public partial class GodCircuit : Node3D
{
private void OnHit(Node3D node)
{
GD.Print("Hit");
var hpComponent = GetNode<HealthPoints>("HP Component");
hpComponent.TakeDamage(800000);
hpComponent.UpdateHealthbar();
}
}

28
Scripts/HealthPoints.cs Normal file
View File

@@ -0,0 +1,28 @@
using Godot;
public partial class HealthPoints : Node
{
[Export]
public long MaximumHP { get; protected set; }
public long CurrentHP { get; protected set; }
[Export]
private TextureProgressBar _healthBar;
public override void _Ready()
{
CurrentHP = MaximumHP;
}
public void TakeDamage(long damage)
{
CurrentHP -= damage;
GD.Print(CurrentHP);
}
public void UpdateHealthbar()
{
_healthBar.Value = CurrentHP;
}
}

View File

@@ -0,0 +1,9 @@
using Godot;
public partial class HealthbarProgress : TextureProgressBar
{
public void UpdateBar(long amount, long full)
{
Value = amount;
}
}

46
Scripts/Main.cs Normal file
View File

@@ -0,0 +1,46 @@
using Godot;
using Godot.Collections;
using System.Linq;
public partial class Main : Node
{
[Export]
public Array<PackedScene> Levels;
[Export]
public PackedScene GameManager;
public void LoadLevel(int indexToLoad)
{
var sceneToLoad = Levels.ElementAt(indexToLoad);
CallDeferred(nameof(DeferredGoToScene), sceneToLoad);
var gameManager = GameManager.Instantiate();
AddChild(gameManager);
}
public void LoadNextLevel(int currentSceneIndex)
{
if (currentSceneIndex < Levels.Count())
{
var currentScene = Levels.ToList().ElementAt(currentSceneIndex);
var nextScene = currentSceneIndex + 1;
CallDeferred(nameof(DeferredGoToScene), Levels.ElementAt(nextScene), currentScene);
}
}
private void DeferredGoToScene(PackedScene sceneToAdd)
{
GD.Print(sceneToAdd.ResourcePath);
var nextScene = GD.Load<PackedScene>(sceneToAdd.ResourcePath);
var newScene = nextScene.Instantiate();
GetTree().Root.AddChild(newScene);
}
private void DeferredGoToScene(PackedScene sceneToAdd, PackedScene sceneToRemove)
{
GD.Print(sceneToAdd.ResourcePath);
GetTree().GetFirstNodeInGroup("Level").QueueFree();
var nextScene = GD.Load<PackedScene>(sceneToAdd.ResourcePath);
var newScene = nextScene.Instantiate();
GetTree().Root.AddChild(newScene);
}
}

36
Scripts/MainMenu.cs Normal file
View File

@@ -0,0 +1,36 @@
using Godot;
using System.Linq;
public partial class MainMenu : Node2D
{
private AnimationPlayer _player;
[Signal]
public delegate void IntroAnimationsCompletedEventHandler();
public override void _Ready()
{
GetParent().GetNode<TextureRect>("MainMenu/UIAnimations/LoreSplash").Show();
_player = GetTree().Root.GetNode<AnimationPlayer>("/root/Main/MainMenu/UIAnimations/AnimationPlayer");
_player.Queue("IntroLore");
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
bgmPlayer.SetBGMFromFilepath("Audio/BGM/titlemusic.wav");
bgmPlayer.PlayBGM();
}
private void OnStartButtonPressed()
{
_player.Play("FirstLevel");
Hide();
_player.AnimationFinished += OnAnimationFinished;
}
private void OnAnimationFinished(StringName animationName)
{
if (animationName == "FirstLevel")
{
var main = GetTree().Root.GetNode<Main>("/root/Main");
main.LoadLevel(0);
}
}
}

20
Scripts/MeleeEnemy.cs Normal file
View File

@@ -0,0 +1,20 @@
using Godot;
using System.Linq;
public partial class MeleeEnemy : CharacterBody3D
{
private float _speed = 1.0f;
public override void _PhysicsProcess(double delta)
{
var players = GetTree().GetNodesInGroup("Player");
if (players.Any())
{
var convertedPlayers = players.Select(x => (Node3D)x);
var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
GD.Print(Position.DirectionTo(target.Position));
Position = Position.MoveToward(target.Position, _speed * (float)delta);
MoveAndSlide();
}
}
}

101
Scripts/Player1.cs Normal file
View File

@@ -0,0 +1,101 @@
using Godot;
public partial class Player1 : Character
{
[Export]
private float _speed = 5.0f;
[Export]
private PackedScene _fireProjectile;
[Export]
private PackedScene _altFireProjectile;
private GameManager _gameManager;
public bool CanShoot { get; private set; }
public override void _Ready()
{
CanShoot = true;
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
_gameManager.SetP1GameOver(false);
}
public override void _PhysicsProcess(double delta)
{
if (!_gameManager.IsP1SelectingCharacter)
{
Velocity = CalculateCharacterMovement(delta);
MoveAndSlide();
}
}
public override void _UnhandledInput(InputEvent @event)
{
if (Input.IsActionJustPressed("exit"))
GetTree().Quit();
if (!_gameManager.IsP1SelectingCharacter)
{
if (Input.IsActionJustPressed("p1_fire") && CanShoot)
Fire();
if (Input.IsActionJustPressed("p1_altfire") && CanShoot)
AltFire();
}
}
private Vector3 CalculateCharacterMovement(double delta)
{
var velocity = Velocity;
var inputDir = Input.GetVector("p1_left", "p1_right", "p1_up", "p1_down");
var direction = (Transform.Basis * new Vector3(inputDir.X, 0, inputDir.Y)).Normalized();
if (direction != Vector3.Zero)
{
velocity.X = direction.X * _speed;
velocity.Z = direction.Z * _speed;
GetNode<Node3D>("Pivot").LookAt(Position + direction, Vector3.Up);
}
else
{
velocity.X = Mathf.MoveToward(Velocity.X, 0, _speed);
velocity.Z = Mathf.MoveToward(Velocity.Z, 0, _speed);
}
return velocity;
}
private async void Fire()
{
var projectile = _fireProjectile.Instantiate<Projectile>();
projectile.Position = Position + new Vector3(0f, 1f, -1f);
GetParent().AddChild(projectile);
CanShoot = false;
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");
CanShoot = true;
}
private async void AltFire()
{
var projectile = _altFireProjectile.Instantiate<Projectile>();
projectile.Position = Position + new Vector3(0f, 1f, -1f);
GetParent().AddChild(projectile);
CanShoot = false;
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");
CanShoot = true;
}
private void HitDebug()
{
var node = new Node3D();
OnHit(node);
}
private void OnHit(Node3D node)
{
_gameManager.RemoveP1Character();
if (_gameManager._p1Characters.Count == 0)
{
GD.Print("Game over for P1");
_gameManager.SetP1GameOver(true);
}
}
}

View File

@@ -1,6 +1,7 @@
using Godot;
using System;
public partial class TestCharacter : CharacterBody3D
public partial class Player2 : CharacterBody3D
{
[Export]
private float _speed = 5.0f;
@@ -18,31 +19,37 @@ public partial class TestCharacter : CharacterBody3D
public override void _PhysicsProcess(double delta)
{
if (Input.IsActionJustPressed("p1_fire") && CanShoot)
Fire();
if (Input.IsActionJustPressed("p1_altfire") && CanShoot)
AltFire();
Velocity = CalculateCharacterMovement(delta);
MoveAndSlide();
}
public override void _UnhandledInput(InputEvent @event)
{
if (Input.IsActionJustPressed("exit"))
GetTree().Quit();
if (Input.IsActionJustPressed("p2_fire") && CanShoot)
Fire();
if (Input.IsActionJustPressed("p2_altfire") && CanShoot)
AltFire();
}
private Vector3 CalculateCharacterMovement(double delta)
{
var velocity = Velocity;
var inputDir = Input.GetVector("p1_left", "p1_right", "p1_up", "p1_down");
var inputDir = Input.GetVector("p2_left", "p2_right", "p2_up", "p2_down");
var direction = (Transform.Basis * new Vector3(inputDir.X, 0, inputDir.Y)).Normalized();
if (direction != Vector3.Zero)
{
velocity.X = direction.X * _speed;
velocity.Z = direction.Z * _speed * 2;
GetNode<Node3D>("Pivot").LookAt(Position + direction, Vector3.Forward + Vector3.Up);
velocity.Z = direction.Z * _speed;
GetNode<Node3D>("Pivot").LookAt(Position + direction, Vector3.Up);
}
else
{
velocity.X = Mathf.MoveToward(Velocity.X, 0, _speed);
velocity.Z = Mathf.MoveToward(Velocity.Z, 0, _speed * 2);
velocity.Z = Mathf.MoveToward(Velocity.Z, 0, _speed);
}
return velocity;
}
@@ -50,7 +57,7 @@ public partial class TestCharacter : CharacterBody3D
private async void Fire()
{
var projectile = _fireProjectile.Instantiate<Projectile>();
projectile.Position = Position + new Vector3(0f, 1f, -3f);
projectile.Position = Position + new Vector3(0f, 1f, -1f);
GetParent().AddChild(projectile);
CanShoot = false;
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");
@@ -60,7 +67,7 @@ public partial class TestCharacter : CharacterBody3D
private async void AltFire()
{
var projectile = _altFireProjectile.Instantiate<Projectile>();
projectile.Position = Position + new Vector3(0f, 1f, -3f);
projectile.Position = Position + new Vector3(0f, 1f, -1f);
GetParent().AddChild(projectile);
CanShoot = false;
await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout");

10
Scripts/SpawnPoint.cs Normal file
View File

@@ -0,0 +1,10 @@
using Godot;
public partial class SpawnPoint : Marker3D
{
public void SetPlayerPosition(Character character)
{
GD.Print("Moving character to spawn point");
character.Position = Position;
}
}

50
Scripts/StageGUI.cs Normal file
View File

@@ -0,0 +1,50 @@
using Godot;
public partial class StageGUI : Control
{
[Signal]
public delegate void OnCharacterSelectionMadeEventHandler();
private GameManager _gameManager;
public override void _Ready()
{
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
}
public void OnCharacterSelect()
{
if (_gameManager.IsP1GameOver)
return;
var wheel1 = GetNode<TextureRect>("CharacterSelect/Wheel");
var wheel2 = GetNode<TextureRect>("CharacterSelect/Wheel2");
wheel1.FocusMode = FocusModeEnum.All;
wheel1.GrabFocus();
wheel1.Visible = true;
_gameManager.IsP1SelectingCharacter = true;
}
public override void _Process(double delta)
{
var wheel1 = GetNode<TextureRect>("CharacterSelect/Wheel");
if (wheel1.HasFocus())
{
if (Input.IsActionJustPressed("p1_right"))
_gameManager.SetP1ToNextCharacter();
if (Input.IsActionJustPressed("p1_left"))
_gameManager.SetP1ToPreviousCharacter();
if (Input.IsActionJustPressed("p1_fire"))
{
GD.Print("Selected character");
wheel1.ReleaseFocus();
wheel1.Hide();
_gameManager.IsP1SelectingCharacter = false;
EmitSignal(SignalName.OnCharacterSelectionMade);
}
}
}
}

View File

@@ -6,4 +6,9 @@ public partial class TestBullet : Projectile
{
Translate(new Vector3(0, 0, Speed * -(float)delta));
}
private void OnBulletHitObject(Node node)
{
QueueFree();
}
}

View File

@@ -1,14 +1,24 @@
using Godot;
public partial class TestEnemy : Node3D
public partial class TestEnemy : RigidBody3D
{
[Export]
private float _speed;
[Export]
private PathFollow3D _pathFollow;
public override void _Process(double delta)
{
var player = GetTree().GetFirstNodeInGroup("Player") as TestCharacter;
var player = GetTree().GetFirstNodeInGroup("Player") as Player1;
if (player != null)
LookAt(player.Position);
}
public override void _PhysicsProcess(double delta)
{
_pathFollow.Progress += _speed * (float)delta;
}
public void OnHit(Node node)
{
GD.Print("Hit detected");

View File

@@ -8,7 +8,12 @@ public partial class TestLevel : Node3D
public override void _Ready()
{
var players = GetTree().GetNodesInGroup("Player");
foreach (TestCharacter player in players)
foreach (Player1 player in players)
player.Transform = _spawnPoint.Transform;
}
private void OnExit()
{
GD.Print("Exit reached");
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://0tegxun85rq"
path="res://.godot/imported/exitprotal.gltf-590eb9612971dd3e3e6943948ff086a9.scn"
[deps]
source_file="res://Textures/Models/exitprotal.gltf"
dest_files=["res://.godot/imported/exitprotal.gltf-590eb9612971dd3e3e6943948ff086a9.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ginttpl52vf7"
path.s3tc="res://.godot/imported/exitprotal_1 (1).png-ffa4c95ce1f1de0897917990c7c938f3.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Textures/Models/exitprotal_1 (1).png"
dest_files=["res://.godot/imported/exitprotal_1 (1).png-ffa4c95ce1f1de0897917990c7c938f3.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cwcask7sl7uvo"
path.s3tc="res://.godot/imported/exitprotal_2.png-20e2edeed5a3dd03db3fcc7f9eba3de0.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Textures/Models/exitprotal_2.png"
dest_files=["res://.godot/imported/exitprotal_2.png-20e2edeed5a3dd03db3fcc7f9eba3de0.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dja0dicdmp2li"
path.s3tc="res://.godot/imported/exitprotal_portal.png-cdcef1fd9cfe16937912698221f837d5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={}
[deps]
source_file="res://Textures/Models/exitprotal_portal.png"
dest_files=["res://.godot/imported/exitprotal_portal.png-cdcef1fd9cfe16937912698221f837d5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dieoh0r7a5try"
path="res://.godot/imported/Pisces.jpg-c351c8459f4e19b9a85580584007606d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Portraits/Pisces.jpg"
dest_files=["res://.godot/imported/Pisces.jpg-c351c8459f4e19b9a85580584007606d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
Textures/Style_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccnmmyvs53gni"
path="res://.godot/imported/Style_1.png-17c1593f269805b264cd152373e129bb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/Style_1.png"
dest_files=["res://.godot/imported/Style_1.png-17c1593f269805b264cd152373e129bb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
Textures/wheel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

34
Textures/wheel.png.import Normal file
View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2vog2nty4qrj"
path="res://.godot/imported/wheel.png-792fa1e83a3b6c36b3fc88601a9fd08f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/wheel.png"
dest_files=["res://.godot/imported/wheel.png-792fa1e83a3b6c36b3fc88601a9fd08f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,220 @@
[gd_scene load_steps=8 format=3 uid="uid://cjl20bs56430j"]
[ext_resource type="Texture2D" uid="uid://b1ucutlpx3fnp" path="res://UI/INTRO LORE.png" id="1_f4dp3"]
[ext_resource type="Texture2D" uid="uid://haxbuoepqn2b" path="res://UI/LEVEL DROP 1.png" id="2_r3e0d"]
[sub_resource type="Animation" id="Animation_3u8q8"]
resource_name = "FirstLevel"
length = 5.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DissolveRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("FirstLevelSplash:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("LoreSplash:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DissolveRect:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="Animation" id="Animation_qsjit"]
resource_name = "IntroLore"
length = 10.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DissolveRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 3, 7.5, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DissolveRect:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 10),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("LoreSplash:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 10),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("FirstLevelSplash:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_fm0re"]
resource_name = "RESET"
length = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DissolveRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("FirstLevelSplash:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DissolveRect:visible")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("LoreSplash:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_ghusn"]
resource_name = "fade_out"
length = 3.0
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DissolveRect:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_iabf8"]
_data = {
"FirstLevel": SubResource("Animation_3u8q8"),
"IntroLore": SubResource("Animation_qsjit"),
"RESET": SubResource("Animation_fm0re"),
"fade_out": SubResource("Animation_ghusn")
}
[node name="UIAnimations" type="CanvasLayer"]
[node name="DissolveRect" type="ColorRect" parent="."]
visible = false
modulate = Color(1, 1, 1, 0)
z_index = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0, 0, 0, 1)
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
speed_scale = 64.0
libraries = {
"": SubResource("AnimationLibrary_iabf8")
}
[node name="LoreSplash" type="TextureRect" parent="."]
visible = false
show_behind_parent = true
offset_right = 1920.0
offset_bottom = 1080.0
texture = ExtResource("1_f4dp3")
[node name="FirstLevelSplash" type="TextureRect" parent="."]
z_index = -2
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_r3e0d")

BIN
UI/INTRO LORE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Some files were not shown because too many files have changed in this diff Show More