diff --git a/3D/3DTest.tscn b/3D/3DTest.tscn new file mode 100644 index 00000000..353c7ecc --- /dev/null +++ b/3D/3DTest.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=5 format=3 uid="uid://d360rx247qywn"] + +[ext_resource type="Texture2D" uid="uid://txphtr0045lo" path="res://Models/carr/carr_tex.png" id="1_bkq0b"] +[ext_resource type="Script" uid="uid://q44rbbdjx75v" path="res://Scripts/TestRotation3D.cs" id="1_cucar"] +[ext_resource type="ArrayMesh" uid="uid://cllvgarxk3q8a" path="res://Models/carr/carr.obj" id="1_y0h7v"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cucar"] +albedo_texture = ExtResource("1_bkq0b") + +[node name="3dTest" type="Node3D"] +script = ExtResource("1_cucar") + +[node name="Carr" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.114124, 0, 0.0902536) +material_override = SubResource("StandardMaterial3D_cucar") +mesh = ExtResource("1_y0h7v") diff --git a/ExternalMaterial/NuclearBullets/NuclearBullets.pxc b/ExternalMaterial/NuclearBullets/NuclearBullets.pxc new file mode 100644 index 00000000..e2e1c1e6 Binary files /dev/null and b/ExternalMaterial/NuclearBullets/NuclearBullets.pxc differ diff --git a/ExternalMaterial/NuclearBullets/NuclearBullets.pxc1 b/ExternalMaterial/NuclearBullets/NuclearBullets.pxc1 new file mode 100644 index 00000000..5482bf49 Binary files /dev/null and b/ExternalMaterial/NuclearBullets/NuclearBullets.pxc1 differ diff --git a/ExternalMaterial/NuclearBullets/Nuclear_Bullet.png b/ExternalMaterial/NuclearBullets/Nuclear_Bullet.png new file mode 100644 index 00000000..e91fc3a9 --- /dev/null +++ b/ExternalMaterial/NuclearBullets/Nuclear_Bullet.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f97bfac5ebed15cf655f30f4e188670b4e1ea7d173a5871cfbf1fae54db47b9 +size 2138 diff --git a/ExternalMaterial/NuclearBullets/Nuclear_Bullet.png.import b/ExternalMaterial/NuclearBullets/Nuclear_Bullet.png.import new file mode 100644 index 00000000..b1775525 --- /dev/null +++ b/ExternalMaterial/NuclearBullets/Nuclear_Bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnq7w1q14uj3l" +path="res://.godot/imported/Nuclear_Bullet.png-37864889929b6b5619b7a79e5ca676b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ExternalMaterial/NuclearBullets/Nuclear_Bullet.png" +dest_files=["res://.godot/imported/Nuclear_Bullet.png-37864889929b6b5619b7a79e5ca676b3.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 diff --git a/ExternalMaterial/ShieldExtend/Extend.mtl b/ExternalMaterial/ShieldExtend/Extend.mtl new file mode 100644 index 00000000..3c1742b3 --- /dev/null +++ b/ExternalMaterial/ShieldExtend/Extend.mtl @@ -0,0 +1,3 @@ +# Pixel Composer +newmtl mat.0 +map_Kd K:/godot/cirno/ExternalMaterial/ShieldExtend/Extend_texture0.png diff --git a/ExternalMaterial/ShieldExtend/Extend.obj b/ExternalMaterial/ShieldExtend/Extend.obj new file mode 100644 index 00000000..64d861d6 --- /dev/null +++ b/ExternalMaterial/ShieldExtend/Extend.obj @@ -0,0 +1,58 @@ +# Pixel Composer +mtllib Extend.mtl +o shape0 +usemtl mat.0 +v -0.50000 -0.50000 0.50000 +v 255.00000 0.00000 0.00000 +v 0.00000 0.00000 -nan +v 0.00000 0.00000 1.00000 +v 1.00000 0.00000 -nan +v -0.50000 -0.50000 -0.50000 +v 0.00000 1.00000 -nan +v 0.00000 0.00000 -1.00000 +v -1.00000 0.00000 0.00000 +v 1.00000 1.00000 -nan +v 0.50000 -0.50000 0.50000 +v 1.00000 0.00000 0.00000 +v -0.50000 0.50000 0.50000 +v 0.00000 1.00000 0.00000 + +vn 0.00000 0.00000 1.00000 +vn 0.50000 0.50000 0.50000 +vn 0.00000 255.00000 0.00000 +vn 0.00000 1.00000 -nan +vn -0.50000 0.50000 0.50000 +vn 0.00000 0.00000 -nan +vn 0.00000 0.00000 -1.00000 +vn 0.50000 -0.50000 -0.50000 +vn 0.50000 0.50000 -0.50000 +vn 1.00000 0.00000 -nan +vn -1.00000 0.00000 0.00000 +vn -0.50000 0.50000 -0.50000 +vn -0.50000 -0.50000 -0.50000 +vn 1.00000 0.00000 0.00000 +vn 1.00000 1.00000 -nan +vn 0.00000 1.00000 0.00000 + +vt 1.00000 1.00000 +vt 0.00000 0.00000 +vt 0.50000 -0.50000 +vt 0.50000 0.50000 +vt -0.50000 0.50000 +vt 1.00000 0.00000 +vt -1.00000 0.00000 +vt 0.00000 1.00000 + +f 1/1/1 2/2/2 3/3/3 +f 4/2/4 1/1/1 2/2/5 +f 5/4/3 4/2/6 6/1/7 +f 2/2/8 7/4/3 8/2/6 +f 6/1/7 2/2/9 3/5/3 +f 8/2/10 1/6/11 2/7/12 +f 7/5/3 9/2/6 1/6/11 +f 2/7/13 10/5/3 9/2/4 +f 11/2/14 2/6/2 5/4/3 +f 12/2/15 11/2/14 2/6/9 +f 10/3/3 12/2/4 13/6/16 +f 2/8/9 7/4/3 14/2/6 + diff --git a/ExternalMaterial/ShieldExtend/Extend.obj.import b/ExternalMaterial/ShieldExtend/Extend.obj.import new file mode 100644 index 00000000..279f9946 --- /dev/null +++ b/ExternalMaterial/ShieldExtend/Extend.obj.import @@ -0,0 +1,25 @@ +[remap] + +importer="wavefront_obj" +importer_version=1 +type="Mesh" +uid="uid://dxgih4o8uoxrq" +path="res://.godot/imported/Extend.obj-1832b62f3590c5b1c3d2c1ac69335e22.mesh" + +[deps] + +files=["res://.godot/imported/Extend.obj-1832b62f3590c5b1c3d2c1ac69335e22.mesh"] + +source_file="res://ExternalMaterial/ShieldExtend/Extend.obj" +dest_files=["res://.godot/imported/Extend.obj-1832b62f3590c5b1c3d2c1ac69335e22.mesh", "res://.godot/imported/Extend.obj-1832b62f3590c5b1c3d2c1ac69335e22.mesh"] + +[params] + +generate_tangents=true +generate_lods=true +generate_shadow_mesh=true +generate_lightmap_uv2=false +generate_lightmap_uv2_texel_size=0.2 +scale_mesh=Vector3(1, 1, 1) +offset_mesh=Vector3(0, 0, 0) +force_disable_mesh_compression=false diff --git a/ExternalMaterial/ShieldExtend/Extend_texture0.png b/ExternalMaterial/ShieldExtend/Extend_texture0.png new file mode 100644 index 00000000..c3029c19 --- /dev/null +++ b/ExternalMaterial/ShieldExtend/Extend_texture0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c5a69db2379a6c9e88ac2c3e00fe095c17d40f9cdcf481015df4e5cf2dc0093 +size 108 diff --git a/ExternalMaterial/ShieldExtend/Extend_texture0.png.import b/ExternalMaterial/ShieldExtend/Extend_texture0.png.import new file mode 100644 index 00000000..4d921921 --- /dev/null +++ b/ExternalMaterial/ShieldExtend/Extend_texture0.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4gt5q3umv70d" +path.s3tc="res://.godot/imported/Extend_texture0.png-e1a45463efd0f4a75e74cdc59caa8a7d.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://ExternalMaterial/ShieldExtend/Extend_texture0.png" +dest_files=["res://.godot/imported/Extend_texture0.png-e1a45463efd0f4a75e74cdc59caa8a7d.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 diff --git a/ExternalMaterial/ShieldExtend/ShieldExtend.pxc b/ExternalMaterial/ShieldExtend/ShieldExtend.pxc index b17e8168..11a10da6 100644 Binary files a/ExternalMaterial/ShieldExtend/ShieldExtend.pxc and b/ExternalMaterial/ShieldExtend/ShieldExtend.pxc differ diff --git a/ExternalMaterial/ShieldExtend/ShieldExtend.pxc1 b/ExternalMaterial/ShieldExtend/ShieldExtend.pxc1 index c76fe0de..35784b26 100644 Binary files a/ExternalMaterial/ShieldExtend/ShieldExtend.pxc1 and b/ExternalMaterial/ShieldExtend/ShieldExtend.pxc1 differ diff --git a/Models/carr/CarrRotation.pxc b/Models/carr/CarrRotation.pxc new file mode 100644 index 00000000..472c247e Binary files /dev/null and b/Models/carr/CarrRotation.pxc differ diff --git a/Models/carr/carr_rotating.png b/Models/carr/carr_rotating.png new file mode 100644 index 00000000..569b4f59 --- /dev/null +++ b/Models/carr/carr_rotating.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c6c71d6f27ff3e91a29d71b8a2ca7c3ed9ab8f51ca97011e755f747a74e8d11 +size 2794 diff --git a/Models/carr/carr_rotating.png.import b/Models/carr/carr_rotating.png.import new file mode 100644 index 00000000..2daf1a71 --- /dev/null +++ b/Models/carr/carr_rotating.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnayqn8jgb8jj" +path="res://.godot/imported/carr_rotating.png-33b157feb3d1f76d6db9259ebb98416e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Models/carr/carr_rotating.png" +dest_files=["res://.godot/imported/carr_rotating.png-33b157feb3d1f76d6db9259ebb98416e.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 diff --git a/Models/carr/carr_tex.png.import b/Models/carr/carr_tex.png.import index 378bf16c..d049b983 100644 --- a/Models/carr/carr_tex.png.import +++ b/Models/carr/carr_tex.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://txphtr0045lo" -path="res://.godot/imported/carr_tex.png-b2559c92332da2d5bda843a52c8e8121.ctex" +path.s3tc="res://.godot/imported/carr_tex.png-b2559c92332da2d5bda843a52c8e8121.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://Models/carr/carr_tex.png" -dest_files=["res://.godot/imported/carr_tex.png-b2559c92332da2d5bda843a52c8e8121.ctex"] +dest_files=["res://.godot/imported/carr_tex.png-b2559c92332da2d5bda843a52c8e8121.s3tc.ctex"] [params] -compress/mode=0 +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=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ 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 +detect_3d/compress_to=0 diff --git a/Resources/Bullets/nuclear_bullets.tres b/Resources/Bullets/nuclear_bullets.tres new file mode 100644 index 00000000..146ff9e7 --- /dev/null +++ b/Resources/Bullets/nuclear_bullets.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://bhtt1h56ksjt3"] + +[ext_resource type="PackedScene" uid="uid://b23lyiq42kvrr" path="res://Scenes/Weapons/Bullets/Nuclear_Bullet.tscn" id="1_wx5pd"] +[ext_resource type="PackedScene" uid="uid://1lowv5ce2poq" path="res://Scenes/Weapons/Bullets/Autoclearing_Explosion_Bullet.tscn" id="2_w7ktr"] +[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_mw15l"] + +[resource] +script = ExtResource("3_mw15l") +BulletScene = ExtResource("1_wx5pd") +DestructionParticlesScene = ExtResource("2_w7ktr") +BulletSpeed = 120.0 +Direction = Vector2(1, 0) +BulletDamage = 6.0 +LifeTime = 20.0 +DestroyOnCollision = true +Owner = 1 +DamageType = 2 +Controllable = false +TimeModifiers = null diff --git a/Resources/Enemies/Base_Fairy.tres b/Resources/Enemies/Base_Fairy.tres index 6fbc7dd1..8469ef5d 100644 --- a/Resources/Enemies/Base_Fairy.tres +++ b/Resources/Enemies/Base_Fairy.tres @@ -47,8 +47,9 @@ PrefabPath = &"res://Scenes/Actors/Fairy_New.tscn" MaxHealth = 2.0 MovementSpeed = 20.0 Weapon = ExtResource("7_xkg5o") -LootDrops = Array[Object]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) +LootDrops = Array[ExtResource("2_sxbtw")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) PlayerDetectionRange = 90.0 +ViewRange = 120.0 AlarmReactRange = 300.0 PlayerDisengageRange = 200.0 metadata/_custom_type_script = "uid://cd5o0ceb50jki" diff --git a/Resources/Enemies/Fairy_Guard.tres b/Resources/Enemies/Fairy_Guard.tres index fc194ed6..0f4bc188 100644 --- a/Resources/Enemies/Fairy_Guard.tres +++ b/Resources/Enemies/Fairy_Guard.tres @@ -47,7 +47,7 @@ PrefabPath = &"res://Scenes/Actors/FairyGuard_New.tscn" MaxHealth = 4.0 MovementSpeed = 30.0 Weapon = ExtResource("7_xlxdc") -LootDrops = Array[Object]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) +LootDrops = Array[ExtResource("2_ivudp")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")]) PlayerDetectionRange = 90.0 ViewRange = 120.0 AlarmReactRange = 200.0 diff --git a/Resources/Items/NuclearGunPickup.tres b/Resources/Items/NuclearGunPickup.tres new file mode 100644 index 00000000..c8eb6be9 --- /dev/null +++ b/Resources/Items/NuclearGunPickup.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=4 format=3 uid="uid://brsukcuyoq364"] + +[ext_resource type="Texture2D" uid="uid://cfxxgj6i5fykd" path="res://Sprites/Items/Nuclear_Gun.png" id="1_qxsuv"] +[ext_resource type="Resource" uid="uid://bpuvt30alfxhh" path="res://Resources/Weapons/NuclearGun.tres" id="3_5kq8e"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="4_imbrn"] + +[resource] +script = ExtResource("4_imbrn") +ItemName = &"Nuclear Gun (MP-42)" +ItemDescription = &"Shoots micro suns" +ItemKey = &"NUCLEAR_GUN" +Item = 9 +WeaponData = ExtResource("3_5kq8e") +Amount = 1 +Max = 1 +PickupIfMaxed = false +ConsumeOnUse = false +UiType = 1 +Selectable = true +InventorySprite = ExtResource("1_qxsuv") +DropScenePath = &"res://Scenes/Items/Nuclear_Gun_Pickup.tscn" diff --git a/Resources/Items/Nuclear_Ammo_Pickup.tres b/Resources/Items/Nuclear_Ammo_Pickup.tres new file mode 100644 index 00000000..4eda7531 --- /dev/null +++ b/Resources/Items/Nuclear_Ammo_Pickup.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=3 format=3 uid="uid://cfod8kephnio6"] + +[ext_resource type="Texture2D" uid="uid://b61po207ggn63" path="res://Sprites/Items/Yin_Ammo.png" id="1_6ly0q"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_x45it"] + +[resource] +script = ExtResource("2_x45it") +ItemName = &"Nuclear Ammo" +ItemDescription = &"Ammo for Nuclear weapons" +ItemKey = &"NUCLEAR_AMMO" +Item = 3 +Amount = 5 +Max = 50 +PickupIfMaxed = false +ConsumeOnUse = true +UiType = 2 +Selectable = false +InventorySprite = ExtResource("1_6ly0q") +DropScenePath = &"res://Scenes/Items/Nuclear_Gun_Pickup.tscn" diff --git a/Resources/Weapons/NuclearGun.tres b/Resources/Weapons/NuclearGun.tres new file mode 100644 index 00000000..477f1fc3 --- /dev/null +++ b/Resources/Weapons/NuclearGun.tres @@ -0,0 +1,20 @@ +[gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://bpuvt30alfxhh"] + +[ext_resource type="Resource" uid="uid://bhtt1h56ksjt3" path="res://Resources/Bullets/nuclear_bullets.tres" id="1_x7js4"] +[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="2_vm6dw"] + +[resource] +script = ExtResource("2_vm6dw") +Name = &"Nuclear Gun (MP-42)" +BulletData = ExtResource("1_x7js4") +RateOfFire = 0.6 +BulletCapacity = 5 +ReloadTime = 0.5 +AutoReload = true +InfiniteAmmo = false +BulletsPerShot = 1 +SpreadAngle = 0.0 +RandomSpread = 0.0 +ItemKey = &"NUCLEAR_GUN" +AmmoKey = &"NUCLEAR_AMMO" +_rotationOffset = 0.0 diff --git a/Scenes/Interactable/control_pad_yellow_keycard.tscn b/Scenes/Interactable/control_pad_yellow_keycard.tscn index 0506aeb5..6934ef13 100644 --- a/Scenes/Interactable/control_pad_yellow_keycard.tscn +++ b/Scenes/Interactable/control_pad_yellow_keycard.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=10 format=3 uid="uid://ue3i2qyhhtbg"] +[gd_scene load_steps=11 format=3 uid="uid://ue3i2qyhhtbg"] [ext_resource type="Script" uid="uid://duhodrhcnoslh" path="res://Scripts/Interactables/Switch.cs" id="1_fef30"] [ext_resource type="Resource" uid="uid://b2vyr1tcm4rc1" path="res://Resources/Items/Yellow_Keycard.tres" id="2_05i2o"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_058fi"] [ext_resource type="Texture2D" uid="uid://c1hcyxn2og2kq" path="res://Sprites/Actors/Key_Reader.png" id="4_al0cc"] [ext_resource type="Texture2D" uid="uid://dsf7jj36mk0xp" path="res://Sprites/Actors/KeyReaderOverlay.png" id="5_co1pm"] @@ -40,7 +41,7 @@ animations = [{ collision_layer = 4 collision_mask = 2 script = ExtResource("1_fef30") -Requirements = [ExtResource("2_05i2o")] +Requirements = Array[ExtResource("2_058fi")]([ExtResource("2_05i2o")]) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_vvpve") diff --git a/Scenes/Items/Nuclear_Gun_Pickup.tscn b/Scenes/Items/Nuclear_Gun_Pickup.tscn new file mode 100644 index 00000000..66fc5a0b --- /dev/null +++ b/Scenes/Items/Nuclear_Gun_Pickup.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=7 format=3 uid="uid://iooa4gqy2uu2"] + +[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_mtwur"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_atc14"] +[ext_resource type="Resource" uid="uid://brsukcuyoq364" path="res://Resources/Items/NuclearGunPickup.tres" id="3_jutu4"] +[ext_resource type="Resource" uid="uid://cfod8kephnio6" path="res://Resources/Items/Nuclear_Ammo_Pickup.tres" id="4_wo03s"] +[ext_resource type="Texture2D" uid="uid://cfxxgj6i5fykd" path="res://Sprites/Items/Nuclear_Gun.png" id="5_atc14"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] + +[node name="NuclearGun" type="Area2D" groups=["Interactable"]] +collision_layer = 4 +collision_mask = 2 +script = ExtResource("1_mtwur") +LootTable = Array[ExtResource("2_atc14")]([ExtResource("3_jutu4"), ExtResource("4_wo03s")]) + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("5_atc14") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_jtwy2") diff --git a/Scenes/Maps/Level2.tscn b/Scenes/Maps/Level2.tscn index 26069221..8a3c29cf 100644 --- a/Scenes/Maps/Level2.tscn +++ b/Scenes/Maps/Level2.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=80 format=4 uid="uid://6a6tjohypmmb"] +[gd_scene load_steps=82 format=4 uid="uid://6a6tjohypmmb"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_t2k72"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_2jsgm"] @@ -41,8 +41,10 @@ [ext_resource type="PackedScene" uid="uid://b7gkxlll3b1eg" path="res://Scenes/Activable/FloorEmitter.tscn" id="33_6h3t3"] [ext_resource type="Texture2D" uid="uid://r2bdhalt8sih" path="res://Sprites/Items/ofudagun_test.png" id="33_v8wj6"] [ext_resource type="Resource" uid="uid://cmra7n6so1x4u" path="res://Resources/BulletScripts/Basic_Enemy_Emitter_Spiral_Bullets.tres" id="35_imrxd"] +[ext_resource type="PackedScene" uid="uid://ey71mxa5ocpn" path="res://Scenes/Items/Shield_Extend_Pickup.tscn" id="37_5j8ks"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="37_47klv"] [ext_resource type="PackedScene" uid="uid://dfat0erkvb513" path="res://Scenes/Actors/Fairy_New.tscn" id="37_sb7g3"] +[ext_resource type="PackedScene" uid="uid://1yxieu8ekvkm" path="res://Scenes/Items/Heart_Extend_Pickup.tscn" id="38_sb7g3"] [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_s1vkf") @@ -472,7 +474,7 @@ Targets = [NodePath("../HorizontalForceField"), NodePath("../FloorEmitter"), Nod position = Vector2(-48, 480) [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Tilemaps/Actors"] -position = Vector2(-642, 312) +position = Vector2(289.455, 319.659) sprite_frames = SubResource("SpriteFrames_qco45") autoplay = "default" frame = 22 @@ -493,30 +495,12 @@ position = Vector2(-282.728, 648.41) Script = ExtResource("35_imrxd") InvertSignal = true -[node name="FairyGuard" parent="Tilemaps/Actors" instance=ExtResource("25_nb1db")] -position = Vector2(99, 311) - -[node name="FairyGuard2" parent="Tilemaps/Actors" instance=ExtResource("25_nb1db")] -position = Vector2(96, 523) - [node name="Fairy" parent="Tilemaps/Actors" instance=ExtResource("37_sb7g3")] position = Vector2(159, 349) -[node name="FairyGuard3" parent="Tilemaps/Actors" instance=ExtResource("25_nb1db")] -position = Vector2(-34, 566) - -[node name="FairyGuard4" parent="Tilemaps/Actors" instance=ExtResource("25_nb1db")] -position = Vector2(-202, 610) - [node name="Fairy2" parent="Tilemaps/Actors" instance=ExtResource("37_sb7g3")] position = Vector2(-103, 505) -[node name="Fairy3" parent="Tilemaps/Actors" instance=ExtResource("37_sb7g3")] -position = Vector2(-64, 642) - -[node name="Fairy4" parent="Tilemaps/Actors" instance=ExtResource("37_sb7g3")] -position = Vector2(-123, 594) - [node name="Fairy5" parent="Tilemaps/Actors" instance=ExtResource("37_sb7g3")] position = Vector2(287, 515) @@ -529,6 +513,12 @@ position = Vector2(-121, 476) [node name="VerticalDoor3" parent="Tilemaps/Actors" instance=ExtResource("20_qudbj")] position = Vector2(-324, 696) +[node name="ShieldExtendPickup" parent="Tilemaps/Actors" instance=ExtResource("37_5j8ks")] +position = Vector2(281, 296) + +[node name="HeartExtendPickup" parent="Tilemaps/Actors" instance=ExtResource("38_sb7g3")] +position = Vector2(306, 326) + [node name="CameraController" type="Camera2D" parent="."] script = ExtResource("7_lxkiw") pixel_snap = false diff --git a/Scenes/Maps/PlayerFSMTest.tscn b/Scenes/Maps/PlayerFSMTest.tscn index f638fc32..a4f6ef38 100644 --- a/Scenes/Maps/PlayerFSMTest.tscn +++ b/Scenes/Maps/PlayerFSMTest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=84 format=4 uid="uid://dqyfnby0t7gu1"] +[gd_scene load_steps=105 format=4 uid="uid://dqyfnby0t7gu1"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_c3v4x"] [ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="3_6314l"] @@ -46,7 +46,6 @@ [ext_resource type="PackedScene" uid="uid://cnhgvn2salyxl" path="res://Scenes/Items/Icicle_Repeater.tscn" id="32_luw81"] [ext_resource type="PackedScene" uid="uid://bjb1xv0ny1qim" path="res://Scenes/Props/Chair.tscn" id="33_7ft0s"] [ext_resource type="Script" uid="uid://bgertv72tq1dt" path="res://Scripts/Components/FSM/NewPlayerStateMachine.cs" id="34_2vu2h"] -[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="35_16ubp"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="35_31m6w"] [ext_resource type="Script" uid="uid://btwuahxvreivs" path="res://Scripts/Components/FSM/Player/NewInit.cs" id="35_mpb62"] [ext_resource type="Script" uid="uid://dl50bcl8dx3k8" path="res://Scripts/Components/FSM/TestModule.cs" id="36_4rfvg"] @@ -57,6 +56,7 @@ [ext_resource type="Script" uid="uid://bngko08ho85p6" path="res://Scripts/Resources/BulletScript.cs" id="39_83jc5"] [ext_resource type="Resource" uid="uid://dqnvesdj0dk3v" path="res://Resources/Bullets/simple_enemy_bullet.tres" id="39_b0wyy"] [ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="40_o56je"] +[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="43_8n581"] [ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="43_b8ffn"] [ext_resource type="PackedScene" uid="uid://b7gkxlll3b1eg" path="res://Scenes/Activable/FloorEmitter.tscn" id="44_b8ffn"] [ext_resource type="Resource" uid="uid://cmra7n6so1x4u" path="res://Resources/BulletScripts/Basic_Enemy_Emitter_Spiral_Bullets.tres" id="45_4mkc6"] @@ -66,6 +66,10 @@ [ext_resource type="PackedScene" uid="uid://bb32f4p5e671j" path="res://Scenes/Actors/Fairy_Guard_FSM.tscn" id="51_awjkl"] [ext_resource type="PackedScene" uid="uid://d1h48wgasakk4" path="res://Scenes/Interactable/alarm_box.tscn" id="52_5nxem"] [ext_resource type="Script" uid="uid://bwox5lmgiijcs" path="res://Scripts/Resources/Events/ActivateEvent.cs" id="52_q2wmj"] +[ext_resource type="Texture2D" uid="uid://cnayqn8jgb8jj" path="res://Models/carr/carr_rotating.png" id="56_5glx6"] +[ext_resource type="PackedScene" uid="uid://iooa4gqy2uu2" path="res://Scenes/Items/Nuclear_Gun_Pickup.tscn" id="56_iv5wi"] +[ext_resource type="PackedScene" uid="uid://ey71mxa5ocpn" path="res://Scenes/Items/Shield_Extend_Pickup.tscn" id="60_bjd5y"] +[ext_resource type="PackedScene" uid="uid://d360rx247qywn" path="res://3D/3DTest.tscn" id="68_8n581"] [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_u1i8n") @@ -124,7 +128,7 @@ DamageType = 0 OverrideControllable = false Controllable = false OverrideCreationModifier = false -TimeModifiers = [] +TimeModifiers = Array[ExtResource("43_8n581")]([]) WaitForCompletion = true metadata/_custom_type_script = "uid://c0ndqalsc4jve" @@ -152,11 +156,11 @@ DamageType = 0 OverrideControllable = false Controllable = false OverrideCreationModifier = false -TimeModifiers = [] +TimeModifiers = Array[ExtResource("43_8n581")]([]) WaitForCompletion = true metadata/_custom_type_script = "uid://c0ndqalsc4jve" -[sub_resource type="Resource" id="Resource_cr4hs"] +[sub_resource type="Resource" id="Resource_bjd5y"] resource_local_to_scene = true script = ExtResource("39_83jc5") Patterns = Array[Object]([SubResource("Resource_kuo18")]) @@ -176,6 +180,122 @@ Targets = Array[NodePath]([NodePath("../../ThermatronFsm")]) WaitForCompletion = true metadata/_custom_type_script = "uid://bwox5lmgiijcs" +[sub_resource type="AtlasTexture" id="AtlasTexture_8qe0x"] +atlas = ExtResource("56_5glx6") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nadrw"] +atlas = ExtResource("56_5glx6") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vto58"] +atlas = ExtResource("56_5glx6") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1tvdd"] +atlas = ExtResource("56_5glx6") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v4yda"] +atlas = ExtResource("56_5glx6") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_awrqa"] +atlas = ExtResource("56_5glx6") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tv14v"] +atlas = ExtResource("56_5glx6") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_amdeb"] +atlas = ExtResource("56_5glx6") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0e6ic"] +atlas = ExtResource("56_5glx6") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6khjs"] +atlas = ExtResource("56_5glx6") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rgw1q"] +atlas = ExtResource("56_5glx6") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_g20dv"] +atlas = ExtResource("56_5glx6") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tf3yy"] +atlas = ExtResource("56_5glx6") +region = Rect2(192, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_56glb"] +atlas = ExtResource("56_5glx6") +region = Rect2(208, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w73bs"] +atlas = ExtResource("56_5glx6") +region = Rect2(224, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_n5tt7"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_8qe0x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nadrw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vto58") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1tvdd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v4yda") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_awrqa") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tv14v") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_amdeb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0e6ic") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6khjs") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rgw1q") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_g20dv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tf3yy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_56glb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w73bs") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="ViewportTexture" id="ViewportTexture_q2wmj"] +viewport_path = NodePath("Tilemaps/3DSprite/SubViewport") + [sub_resource type="Resource" id="Resource_pgobb"] script = ExtResource("29_3ll5g") RelativeTargetPosition = Vector2(0, -96) @@ -262,7 +382,7 @@ scale = Vector2(0.66, 2.04) [node name="FairyFsm" parent="Tilemaps/AcidHitboxes" node_paths=PackedStringArray("DefeatScript") instance=ExtResource("12_64bae")] position = Vector2(776, -56) -ExtraLoot = Array[ExtResource("13_b3y78")]([SubResource("Resource_w8nwr"), SubResource("Resource_awjkl")]) +ExtraLoot = [SubResource("Resource_w8nwr"), SubResource("Resource_awjkl")] DefeatScript = NodePath("../../Actors/HorizontalForceField2") ActivationType = 2 @@ -433,7 +553,7 @@ InvertSignal = true [node name="FloorEmitter2" parent="Tilemaps/Actors" instance=ExtResource("44_b8ffn")] position = Vector2(601, 147) -Script = SubResource("Resource_cr4hs") +Script = SubResource("Resource_bjd5y") InvertSignal = true [node name="Camera" parent="Tilemaps/Actors" instance=ExtResource("48_r562v")] @@ -445,7 +565,7 @@ Targets = [NodePath("Script")] [node name="Script" type="Node2D" parent="Tilemaps/Actors/ControlPad4"] script = ExtResource("50_cr4hs") -Events = Array[ExtResource("35_16ubp")]([SubResource("Resource_8n581"), SubResource("Resource_iv5wi")]) +Events = [SubResource("Resource_8n581"), SubResource("Resource_iv5wi")] [node name="FairyGuardFsm" parent="Tilemaps/Actors" instance=ExtResource("50_w8nwr")] position = Vector2(712, -136) @@ -469,13 +589,49 @@ position = Vector2(888, 176) position = Vector2(544, -32) StartingAiState = 1 +[node name="NuclearGun" parent="Tilemaps/Actors" instance=ExtResource("56_iv5wi")] +position = Vector2(602, 30) + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Tilemaps"] +position = Vector2(622, 36) +sprite_frames = SubResource("SpriteFrames_n5tt7") +autoplay = "default" +frame = 8 +frame_progress = 0.43812 + +[node name="3DSprite" type="Sprite2D" parent="Tilemaps"] +position = Vector2(643, 38) +texture = SubResource("ViewportTexture_q2wmj") + +[node name="SubViewport" type="SubViewport" parent="Tilemaps/3DSprite"] +transparent_bg = true +handle_input_locally = false +snap_2d_transforms_to_pixel = true +snap_2d_vertices_to_pixel = true +size = Vector2i(16, 16) +render_target_update_mode = 4 + +[node name="3dTest" parent="Tilemaps/3DSprite/SubViewport" instance=ExtResource("68_8n581")] +transform = Transform3D(0.548614, 0, -0.836076, 0, 1, 0, 0.836076, 0, 0.548614, 0, 0, 0) + +[node name="Camera3D" type="Camera3D" parent="Tilemaps/3DSprite/SubViewport"] +transform = Transform3D(1, 0, 0, 0, 0.929886, 0.367849, 0, -0.367849, 0.929886, -0.0305517, 3.01764, 7.21974) +projection = 1 +size = 3.0 + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Tilemaps/3DSprite/SubViewport"] +transform = Transform3D(0.826924, -0.385938, 0.408961, 0, 0.727282, 0.686339, -0.562314, -0.56755, 0.601406, -1.68338, 4.05689, 4.38376) + [node name="ScriptableAreaTrigger" parent="Tilemaps" instance=ExtResource("28_fuxq3")] position = Vector2(230, 250) -Events = Array[ExtResource("35_16ubp")]([SubResource("Resource_pgobb")]) +Events = [SubResource("Resource_pgobb")] [node name="AlarmBox" parent="Tilemaps" instance=ExtResource("52_5nxem")] position = Vector2(616, 88) +[node name="ShieldExtendPickup" parent="Tilemaps" instance=ExtResource("60_bjd5y")] +position = Vector2(664, 38) + [node name="CameraController" type="Camera2D" parent="."] process_mode = 1 script = ExtResource("9_dj0ui") diff --git a/Scenes/Weapons/Bullets/Nuclear_Bullet.tscn b/Scenes/Weapons/Bullets/Nuclear_Bullet.tscn new file mode 100644 index 00000000..dc6273c9 --- /dev/null +++ b/Scenes/Weapons/Bullets/Nuclear_Bullet.tscn @@ -0,0 +1,142 @@ +[gd_scene load_steps=20 format=3 uid="uid://b23lyiq42kvrr"] + +[ext_resource type="Script" uid="uid://dsa4b75hdig8p" path="res://Scripts/Bullet.cs" id="1_gvb0k"] +[ext_resource type="Texture2D" uid="uid://4dfuib4wce7n" path="res://Sprites/Bullets/Nuclear_Bullet.png" id="2_oarhb"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_jxptd"] +radius = 2.23607 + +[sub_resource type="AtlasTexture" id="AtlasTexture_uqai3"] +atlas = ExtResource("2_oarhb") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6lwk6"] +atlas = ExtResource("2_oarhb") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7m7f4"] +atlas = ExtResource("2_oarhb") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_axb8f"] +atlas = ExtResource("2_oarhb") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wbpbe"] +atlas = ExtResource("2_oarhb") +region = Rect2(64, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4y8ns"] +atlas = ExtResource("2_oarhb") +region = Rect2(80, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qrx7w"] +atlas = ExtResource("2_oarhb") +region = Rect2(96, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p1tue"] +atlas = ExtResource("2_oarhb") +region = Rect2(112, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ypiu1"] +atlas = ExtResource("2_oarhb") +region = Rect2(128, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_w4arb"] +atlas = ExtResource("2_oarhb") +region = Rect2(144, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_n4wf5"] +atlas = ExtResource("2_oarhb") +region = Rect2(160, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eyqto"] +atlas = ExtResource("2_oarhb") +region = Rect2(176, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xai3s"] +atlas = ExtResource("2_oarhb") +region = Rect2(192, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hw63c"] +atlas = ExtResource("2_oarhb") +region = Rect2(208, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2dn0u"] +atlas = ExtResource("2_oarhb") +region = Rect2(224, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_e6wo0"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_uqai3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_6lwk6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7m7f4") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_axb8f") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wbpbe") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4y8ns") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qrx7w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_p1tue") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ypiu1") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w4arb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_n4wf5") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eyqto") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xai3s") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hw63c") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2dn0u") +}], +"loop": false, +"name": &"default", +"speed": 8.0 +}] + +[node name="Bullet" type="Area2D" groups=["bullets"]] +collision_layer = 8 +collision_mask = 85 +script = ExtResource("1_gvb0k") +Speed = 200.0 +metadata/_edit_group_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_jxptd") + +[node name="Node2D" type="Node2D" parent="."] +editor_description = "Player Bullet" + +[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_e6wo0") + +[connection signal="area_entered" from="." to="." method="_on_area_entered"] +[connection signal="body_entered" from="." to="." method="_on_body_entered"] +[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="_on_visible_on_screen_notifier_2d_screen_exited"] diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 2ea8d872..b06dc6e1 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -63,7 +63,6 @@ [ext_resource type="PackedScene" uid="uid://dx1urm7nttkqk" path="res://Scenes/Actors/level_teleporter.tscn" id="44_q5xi2"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="45_5qg27"] [ext_resource type="Script" uid="uid://bwox5lmgiijcs" path="res://Scripts/Resources/Events/ActivateEvent.cs" id="45_emjoj"] -[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="45_f37sa"] [ext_resource type="Script" uid="uid://ddv26x2qilprb" path="res://Scripts/Resources/Events/DialogueStartEvent.cs" id="46_i0omr"] [ext_resource type="PackedScene" uid="uid://cqrkisw6jg24w" path="res://Scenes/Props/MainFrame1.tscn" id="46_ny2s2"] [ext_resource type="PackedScene" uid="uid://cdti0hnbs3e63" path="res://Scenes/Actors/RoamingSusan.tscn" id="47_u1ve6"] @@ -103,6 +102,7 @@ [ext_resource type="Resource" uid="uid://cmra7n6so1x4u" path="res://Resources/BulletScripts/Basic_Enemy_Emitter_Spiral_Bullets.tres" id="95_7m6n7"] [ext_resource type="Resource" uid="uid://dodwpect0ldjf" path="res://Resources/Items/Heart_Pickup.tres" id="95_srv0g"] [ext_resource type="PackedScene" uid="uid://nupd3pg74vua" path="res://Scenes/Activable/ScriptableInvisibleEmitter.tscn" id="96_ygp23"] +[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="97_0bqta"] [ext_resource type="Resource" uid="uid://dtkti2rjlcp3u" path="res://Resources/Bullets/Fire_Emitter_Bullet.tres" id="97_xwjvv"] [ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="98_gvbi8"] [ext_resource type="Script" uid="uid://bngko08ho85p6" path="res://Scripts/Resources/BulletScript.cs" id="99_j6vrf"] @@ -255,7 +255,7 @@ DamageType = 0 OverrideControllable = false Controllable = false OverrideCreationModifier = false -TimeModifiers = [] +TimeModifiers = Array[ExtResource("97_0bqta")]([]) WaitForCompletion = true metadata/_custom_type_script = "uid://c0ndqalsc4jve" @@ -637,7 +637,7 @@ Invisible = true metadata/_edit_group_ = true [node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps/DebugTeleporter" instance=ExtResource("43_kf3qc")] -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_usuub")]) +Events = [SubResource("Resource_usuub")] [node name="BlueKeycard2" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("35_rblsn")] position = Vector2(-1032, -317) @@ -816,7 +816,7 @@ position = Vector2(-1423, -188) [node name="LevelStartTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")] position = Vector2(-781, -160) scale = Vector2(1.455, 1.455) -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_5er5x"), SubResource("Resource_b25hy")]) +Events = [SubResource("Resource_5er5x"), SubResource("Resource_b25hy")] [node name="AreaTrigger2" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("28_6au4t")] position = Vector2(-435, -162) @@ -859,7 +859,7 @@ metadata/_edit_group_ = true [node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer2"] position = Vector2(120, 25) script = ExtResource("42_wigyb") -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_ji7au")]) +Events = [SubResource("Resource_ji7au")] [node name="Computer6" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")] position = Vector2(-1113, -139) @@ -869,7 +869,7 @@ metadata/_edit_group_ = true [node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer6"] position = Vector2(0, 1) script = ExtResource("42_wigyb") -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_ji7au")]) +Events = [SubResource("Resource_ji7au")] [node name="Computer5" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")] position = Vector2(-1344, -251) @@ -877,7 +877,7 @@ Targets = [NodePath("Computer5Script")] [node name="Computer5Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer5"] script = ExtResource("42_wigyb") -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_fasrq"), SubResource("Resource_mah4x"), SubResource("Resource_0bqta")]) +Events = [SubResource("Resource_fasrq"), SubResource("Resource_mah4x"), SubResource("Resource_0bqta")] [node name="Computer3" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")] position = Vector2(-612.57, -358.528) @@ -885,7 +885,7 @@ Target = NodePath("Script") [node name="Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer3"] script = ExtResource("42_wigyb") -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_o2kpk")]) +Events = [SubResource("Resource_o2kpk")] [node name="Computer4" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")] position = Vector2(-791, -505) @@ -893,7 +893,7 @@ Target = NodePath("Node2D") [node name="Node2D" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"] script = ExtResource("42_wigyb") -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_s3g2w")]) +Events = [SubResource("Resource_s3g2w")] [node name="Label" type="Label" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"] offset_left = -5.0 @@ -922,11 +922,11 @@ position = Vector2(-792, -407) [node name="BossBattleEndScript" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps"] position = Vector2(-1628.53, -477.628) script = ExtResource("42_wigyb") -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_068l7"), SubResource("Resource_l3nop")]) +Events = [SubResource("Resource_068l7"), SubResource("Resource_l3nop")] [node name="BossBattleStartScript" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")] position = Vector2(-1487, -396) -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_wma5c")]) +Events = [SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_wma5c")] [node name="Enemy13" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("47_u1ve6")] position = Vector2(-1657, -788) @@ -1188,7 +1188,7 @@ position = Vector2(-2072, -211) [node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")] position = Vector2(-2063, -232) -Events = Array[ExtResource("45_f37sa")]([SubResource("Resource_l476f"), SubResource("Resource_dskij")]) +Events = [SubResource("Resource_l476f"), SubResource("Resource_dskij")] [node name="ShieldExtendPickup" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("103_0bqta")] position = Vector2(-1646, 38) diff --git a/Scripts/Components/Actors/KeyboardInputProvider.cs b/Scripts/Components/Actors/KeyboardInputProvider.cs index bb55656d..0228e3ba 100644 --- a/Scripts/Components/Actors/KeyboardInputProvider.cs +++ b/Scripts/Components/Actors/KeyboardInputProvider.cs @@ -1,4 +1,6 @@ -using Godot; +using System; +using System.Threading.Tasks; +using Godot; namespace Cirno.Scripts.Components.Actors; @@ -36,6 +38,35 @@ public partial class KeyboardInputProvider : InputProvider private enum AimInputMethod { RightStick, Mouse } private AimInputMethod _lastUsedInput = AimInputMethod.RightStick; + + public override void _Ready() + { + CallDeferred(MethodName.DelayedRegisterGameManager); + } + + private void DelayedRegisterGameManager() + { + GameManager.Instance.GameStateChange += InstanceOnGameStateChange; + _enabled = true; + } + + private bool _enabled = false; + + private void InstanceOnGameStateChange(GameState state) + { + if (state is not GameState.Playing) return; + + _enabled = false; + + _ = DelayResume(); + } + + private async Task DelayResume() + { + //await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame); + await Task.Delay(200); + _enabled = true; + } public override Vector2 GetMovementInput() { @@ -96,7 +127,7 @@ public partial class KeyboardInputProvider : InputProvider public override bool GetShootPressed() { - return GetActionPressed(_shootActionName); + return _enabled && GetActionPressed(_shootActionName); } public override bool GetShootJustPressed() diff --git a/Scripts/GameManager.cs b/Scripts/GameManager.cs index f2b36947..1e248b4c 100644 --- a/Scripts/GameManager.cs +++ b/Scripts/GameManager.cs @@ -328,15 +328,24 @@ public partial class GameManager : Node2D case GameState.Playing: case GameState.Controlling: //Input.MouseMode = Input.MouseModeEnum.Confined; - GetTree().SetPause(false); + DelayedUnpause(); + //CallDeferred(MethodName.DelayedUnpause); + //GetTree().SetPause(false); break; case GameState.Menu: //Input.MouseMode = Input.MouseModeEnum.Visible; - GetTree().SetPause(false); + DelayedUnpause(); + //CallDeferred(MethodName.DelayedUnpause); + //GetTree().SetPause(false); break; } } + private void DelayedUnpause() + { + GetTree().SetPause(false); + } + public void ClearBullets() { if (_bulletsContainer is null) return; diff --git a/Scripts/TestRotation3D.cs b/Scripts/TestRotation3D.cs new file mode 100644 index 00000000..b1a3060b --- /dev/null +++ b/Scripts/TestRotation3D.cs @@ -0,0 +1,12 @@ +using Godot; +using System; + +public partial class TestRotation3D : Node3D +{ + [Export] public float RotationSpeed = 1f; + + public override void _PhysicsProcess(double delta) + { + this.RotateY(Mathf.DegToRad(RotationSpeed)); + } +} diff --git a/Scripts/TestRotation3D.cs.uid b/Scripts/TestRotation3D.cs.uid new file mode 100644 index 00000000..9155e235 --- /dev/null +++ b/Scripts/TestRotation3D.cs.uid @@ -0,0 +1 @@ +uid://q44rbbdjx75v diff --git a/Sprites/Bullets/Nuclear_Bullet.png b/Sprites/Bullets/Nuclear_Bullet.png new file mode 100644 index 00000000..e91fc3a9 --- /dev/null +++ b/Sprites/Bullets/Nuclear_Bullet.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f97bfac5ebed15cf655f30f4e188670b4e1ea7d173a5871cfbf1fae54db47b9 +size 2138 diff --git a/Sprites/Bullets/Nuclear_Bullet.png.import b/Sprites/Bullets/Nuclear_Bullet.png.import new file mode 100644 index 00000000..402fe617 --- /dev/null +++ b/Sprites/Bullets/Nuclear_Bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4dfuib4wce7n" +path="res://.godot/imported/Nuclear_Bullet.png-a6d3d4d728d87d0f5a7ec5d30d7e804b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Bullets/Nuclear_Bullet.png" +dest_files=["res://.godot/imported/Nuclear_Bullet.png-a6d3d4d728d87d0f5a7ec5d30d7e804b.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