diff --git a/Resources/Bullets/yin_yang_bullet.tres b/Resources/Bullets/yin_yang_bullet.tres index 560818b1..79a3e79b 100644 --- a/Resources/Bullets/yin_yang_bullet.tres +++ b/Resources/Bullets/yin_yang_bullet.tres @@ -1,8 +1,20 @@ -[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://brfrxovsuxgts"] +[gd_resource type="Resource" script_class="BulletResource" load_steps=6 format=3 uid="uid://brfrxovsuxgts"] [ext_resource type="PackedScene" uid="uid://eqppkegmt562" path="res://Scenes/Weapons/Bullets/Yin_Yan_Bullet.tscn" id="1_lfcuj"] -[ext_resource type="PackedScene" uid="uid://dfbmny3s4rili" path="res://Scenes/Particles/IceBulletParticle.tscn" id="2_mdq2b"] +[ext_resource type="PackedScene" uid="uid://1lowv5ce2poq" path="res://Scenes/Weapons/Bullets/Autoclearing_Explosion_Bullet.tscn" id="2_mdq2b"] [ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_78iov"] +[ext_resource type="Script" uid="uid://ci2vjo54w7i18" path="res://Scripts/Resources/Modifiers/DelayedSpeedIncreaseModifier.cs" id="3_fvk2e"] + +[sub_resource type="Resource" id="Resource_lcgqc"] +script = ExtResource("3_fvk2e") +TransitionType = 2 +EaseType = 2 +Duration = 0.5 +TimeInSeconds = 0.0 +ModifierType = 0 +Value = 20.0 +Continuous = false +metadata/_custom_type_script = "uid://ci2vjo54w7i18" [resource] script = ExtResource("3_78iov") @@ -10,10 +22,10 @@ BulletScene = ExtResource("1_lfcuj") DestructionParticlesScene = ExtResource("2_mdq2b") BulletSpeed = 100.0 Direction = Vector2(1, 0) -BulletDamage = 4.0 +BulletDamage = 1.0 LifeTime = 10.0 DestroyOnCollision = true Owner = 1 DamageType = 1 Controllable = false -TimeModifiers = null +TimeModifiers = Array[Object]([SubResource("Resource_lcgqc")]) diff --git a/Resources/Items/Yin_Yang_Ammo.tres b/Resources/Items/Yin_Yang_Ammo.tres new file mode 100644 index 00000000..112ff915 --- /dev/null +++ b/Resources/Items/Yin_Yang_Ammo.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=3 format=3 uid="uid://diqm2ju0xakkt"] + +[ext_resource type="Texture2D" uid="uid://b61po207ggn63" path="res://Sprites/Items/Yin_Ammo.png" id="1_jt7l8"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_ajs4l"] + +[resource] +script = ExtResource("3_ajs4l") +ItemName = "Yin Yang Ammo" +ItemDescription = "Ammunition for Ying-Yang based weapons" +ItemKey = "YinYangAmmo" +Item = 3 +Amount = 5 +Max = 50 +PickupIfMaxed = false +ConsumeOnUse = true +UiType = 2 +Selectable = false +InventorySprite = ExtResource("1_jt7l8") +DropScenePath = &"res://Scenes/Items/Yin_Yang_Ammo.tscn" diff --git a/Resources/Items/Yin_Yang_Gun_Pickup.tres b/Resources/Items/Yin_Yang_Gun_Pickup.tres new file mode 100644 index 00000000..d4dc3894 --- /dev/null +++ b/Resources/Items/Yin_Yang_Gun_Pickup.tres @@ -0,0 +1,22 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=4 format=3 uid="uid://ccmuffmnevrt4"] + +[ext_resource type="Texture2D" uid="uid://61kfxc7k3do" path="res://Sprites/Items/Ying_Yang_Gun.png" id="1_2w24o"] +[ext_resource type="Resource" uid="uid://ba0r3qmsrm0td" path="res://Resources/Weapons/Yin_Yang_Gun.tres" id="1_cuxft"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_2w24o"] + +[resource] +script = ExtResource("2_2w24o") +ItemName = "Yin-Yang Gun" +ItemDescription = "A weapon reverse engineered from Reimu's Yin-Yang orbs, shoots explosive projectiles" +ItemKey = "YinYangGun" +Item = 9 +WeaponData = ExtResource("1_cuxft") +Amount = 1 +Max = 1 +PickupIfMaxed = true +ConsumeOnUse = false +UiType = 1 +Selectable = true +InventorySprite = ExtResource("1_2w24o") +DropScenePath = &"res://Scenes/Items/Yin_Yang_Gun_Pickup.tscn" +metadata/_custom_type_script = "uid://epnwjptvks3t" diff --git a/Resources/Weapons/Yin_Yang_Gun.tres b/Resources/Weapons/Yin_Yang_Gun.tres new file mode 100644 index 00000000..638b3890 --- /dev/null +++ b/Resources/Weapons/Yin_Yang_Gun.tres @@ -0,0 +1,20 @@ +[gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://ba0r3qmsrm0td"] + +[ext_resource type="Resource" uid="uid://brfrxovsuxgts" path="res://Resources/Bullets/yin_yang_bullet.tres" id="1_otehl"] +[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="2_dbal7"] + +[resource] +script = ExtResource("2_dbal7") +Name = "Yin-Yang Gun" +BulletData = ExtResource("1_otehl") +RateOfFire = 0.8 +BulletCapacity = 3 +ReloadTime = 0.4 +AutoReload = true +InfiniteAmmo = false +BulletsPerShot = 1 +SpreadAngle = 0.0 +RandomSpread = 0.0 +ItemKey = "YinYangGun" +AmmoKey = "YinYangAmmo" +_rotationOffset = 0.0 diff --git a/Scenes/Items/Ice_Shotgun_Pickup.tscn b/Scenes/Items/Ice_Shotgun_Pickup.tscn index 9d069416..64df6268 100644 --- a/Scenes/Items/Ice_Shotgun_Pickup.tscn +++ b/Scenes/Items/Ice_Shotgun_Pickup.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://ddwcib46ttlrp"] +[gd_scene load_steps=6 format=3 uid="uid://ddwcib46ttlrp"] [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_gpoff"] [ext_resource type="Resource" uid="uid://dau0s8ob7qnpc" path="res://Resources/Items/IceShotgun.tres" id="2_l5f4t"] +[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="3_2spyx"] [ext_resource type="Texture2D" uid="uid://b46usr10jhmev" path="res://Sprites/Items/Ice_Shotgun.png" id="3_w7kfy"] [sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] @@ -10,7 +11,7 @@ collision_layer = 4 collision_mask = 2 script = ExtResource("1_gpoff") -LootTable = [ExtResource("2_l5f4t")] +LootTable = [ExtResource("2_l5f4t"), ExtResource("3_2spyx")] [node name="Sprite2D" type="Sprite2D" parent="."] texture = ExtResource("3_w7kfy") diff --git a/Scenes/Items/Icicle_Repeater.tscn b/Scenes/Items/Icicle_Repeater.tscn index 96aa1d44..12c0b336 100644 --- a/Scenes/Items/Icicle_Repeater.tscn +++ b/Scenes/Items/Icicle_Repeater.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_qo3uh"] [ext_resource type="Resource" uid="uid://bgcgeg187vg1h" path="res://Resources/Items/IcicleRepeater.tres" id="2_qo3uh"] -[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_sb7le"] +[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="3_leexx"] [ext_resource type="Texture2D" uid="uid://bxe747rnr5xt7" path="res://Sprites/Items/Ice_Repeater.png" id="3_sb7le"] [sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] @@ -11,7 +11,7 @@ collision_layer = 4 collision_mask = 2 script = ExtResource("1_qo3uh") -LootTable = Array[ExtResource("2_sb7le")]([ExtResource("2_qo3uh")]) +LootTable = [ExtResource("2_qo3uh"), ExtResource("3_leexx")] [node name="Sprite2D" type="Sprite2D" parent="."] texture = ExtResource("3_sb7le") diff --git a/Scenes/Items/Yin_Yang_Ammo.tscn b/Scenes/Items/Yin_Yang_Ammo.tscn new file mode 100644 index 00000000..c940b56a --- /dev/null +++ b/Scenes/Items/Yin_Yang_Ammo.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=7 format=3 uid="uid://sjxkj5jdndxb"] + +[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_o42iv"] +[ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="2_o42iv"] +[ext_resource type="Texture2D" uid="uid://b61po207ggn63" path="res://Sprites/Items/Yin_Ammo.png" id="3_o42iv"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_q76u6"] +atlas = ExtResource("3_o42iv") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_8gvnj"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_q76u6") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="YinYangAmmo" type="Area2D" groups=["Interactable"]] +collision_layer = 4 +collision_mask = 2 +script = ExtResource("1_o42iv") +LootTable = [ExtResource("2_o42iv")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_6vv2s") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_8gvnj") diff --git a/Scenes/Items/Yin_Yang_Gun_Pickup.tscn b/Scenes/Items/Yin_Yang_Gun_Pickup.tscn new file mode 100644 index 00000000..c2d12aa3 --- /dev/null +++ b/Scenes/Items/Yin_Yang_Gun_Pickup.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=6 format=3 uid="uid://dyvrwksve4ulg"] + +[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_47pfy"] +[ext_resource type="Resource" uid="uid://ccmuffmnevrt4" path="res://Resources/Items/Yin_Yang_Gun_Pickup.tres" id="2_47pfy"] +[ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="3_44v4n"] +[ext_resource type="Texture2D" uid="uid://61kfxc7k3do" path="res://Sprites/Items/Ying_Yang_Gun.png" id="3_atrc8"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] + +[node name="YinYangGun" type="Area2D" groups=["Interactable"]] +collision_layer = 4 +collision_mask = 2 +script = ExtResource("1_47pfy") +LootTable = [ExtResource("2_47pfy"), ExtResource("3_44v4n")] + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("3_atrc8") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_jtwy2") diff --git a/Scenes/Maps/PlayerFSMTest.tscn b/Scenes/Maps/PlayerFSMTest.tscn index 80a59d6f..b6450e98 100644 --- a/Scenes/Maps/PlayerFSMTest.tscn +++ b/Scenes/Maps/PlayerFSMTest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=49 format=4 uid="uid://dqyfnby0t7gu1"] +[gd_scene load_steps=52 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"] @@ -37,6 +37,9 @@ [ext_resource type="PackedScene" uid="uid://fxvlaidieiv7" path="res://Scenes/Interactable/ScriptableAreaTrigger.tscn" id="28_fuxq3"] [ext_resource type="PackedScene" uid="uid://4q82gggqax87" path="res://Scenes/Items/Cheat_Gun_Pickup.tscn" id="28_pgobb"] [ext_resource type="Script" uid="uid://dkihoo85jfec5" path="res://Scripts/Resources/Events/MovePlayerEvent.cs" id="29_3ll5g"] +[ext_resource type="PackedScene" uid="uid://dyvrwksve4ulg" path="res://Scenes/Items/Yin_Yang_Gun_Pickup.tscn" id="30_bea3m"] +[ext_resource type="PackedScene" uid="uid://sjxkj5jdndxb" path="res://Scenes/Items/Yin_Yang_Ammo.tscn" id="31_3a4iu"] +[ext_resource type="PackedScene" uid="uid://cnhgvn2salyxl" path="res://Scenes/Items/Icicle_Repeater.tscn" id="32_luw81"] [ext_resource type="Script" uid="uid://bgertv72tq1dt" path="res://Scripts/Components/FSM/NewPlayerStateMachine.cs" id="34_2vu2h"] [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"] @@ -237,6 +240,18 @@ metadata/_edit_group_ = true [node name="Elevator" parent="Tilemaps/Actors/Path2D" node_paths=PackedStringArray("ElevatorPath") instance=ExtResource("28_3ll5g")] ElevatorPath = NodePath("..") +[node name="YinYangGun" parent="Tilemaps/Actors" instance=ExtResource("30_bea3m")] +position = Vector2(364, 195) + +[node name="YinYangAmmo" parent="Tilemaps/Actors" instance=ExtResource("31_3a4iu")] +position = Vector2(382, 189) + +[node name="YinYangAmmo2" parent="Tilemaps/Actors" instance=ExtResource("31_3a4iu")] +position = Vector2(382, 170) + +[node name="IcicleRepeater" parent="Tilemaps/Actors" instance=ExtResource("32_luw81")] +position = Vector2(354, 172) + [node name="ScriptableAreaTrigger" parent="Tilemaps" instance=ExtResource("28_fuxq3")] position = Vector2(230, 250) Events = Array[Object]([SubResource("Resource_pgobb")]) diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 1e033513..d638601b 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=116 format=4 uid="uid://bv451a8wgty4u"] +[gd_scene load_steps=117 format=4 uid="uid://bv451a8wgty4u"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_ksslq"] @@ -29,6 +29,7 @@ [ext_resource type="PackedScene" uid="uid://dtuu2oo6qyo73" path="res://Scenes/Items/Power_Pickup.tscn" id="19_2boii"] [ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="19_8fb73"] [ext_resource type="PackedScene" uid="uid://d1rlw6ddpmrn8" path="res://Scenes/Actors/Rumia.tscn" id="19_acobs"] +[ext_resource type="PackedScene" uid="uid://dyvrwksve4ulg" path="res://Scenes/Items/Yin_Yang_Gun_Pickup.tscn" id="19_bwt6v"] [ext_resource type="PackedScene" uid="uid://ddwcib46ttlrp" path="res://Scenes/Items/Ice_Shotgun_Pickup.tscn" id="19_xob8g"] [ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="22_krk0o"] [ext_resource type="Script" uid="uid://bdshph801ac2i" path="res://Scenes/CameraTarget.gd" id="24_0c2yt"] @@ -197,7 +198,7 @@ ActivationType = 0 Targets = Array[NodePath]([NodePath("../Rumia")]) WaitForCompletion = true -[sub_resource type="Resource" id="Resource_ma1ta"] +[sub_resource type="Resource" id="Resource_bwt6v"] resource_local_to_scene = true script = ExtResource("49_0si7g") Target = NodePath(".") @@ -334,6 +335,9 @@ offset_bottom = -463.0 text = "Start Marisa" label_settings = ExtResource("14_c4c20") +[node name="YinYangGun" parent="Factory Tilemaps/Debug Room" instance=ExtResource("19_bwt6v")] +position = Vector2(-745.124, -361.545) + [node name="CheaetGun" parent="Factory Tilemaps/Debug Room" instance=ExtResource("18_a1e2x")] position = Vector2(-744, -347) @@ -797,7 +801,7 @@ Events = Array[Object]([SubResource("Resource_068l7"), SubResource("Resource_l3n [node name="BossBattleStartScript" parent="Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")] position = Vector2(-1487, -396) -Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_ma1ta")]) +Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_bwt6v")]) [node name="Enemy13" parent="Factory Tilemaps/LevelProps" instance=ExtResource("47_u1ve6")] position = Vector2(-1657, -788) diff --git a/Sprites/Items/Ammo1.aseprite b/Sprites/Items/Ammo1.aseprite index c7fcc834..34594930 100644 --- a/Sprites/Items/Ammo1.aseprite +++ b/Sprites/Items/Ammo1.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b97bcaf823253e8c74e1e8f9199659ec391975317c72c418e51eac1a298e979 -size 671 +oid sha256:7466bac71131e8c43701a8eddc429d2448df4f93d6e9f117b6828cdb56abd634 +size 907 diff --git a/Sprites/Items/Ammo1.png b/Sprites/Items/Ammo1.png index 4b94b412..9d3e4da7 100644 --- a/Sprites/Items/Ammo1.png +++ b/Sprites/Items/Ammo1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1592dcdedaba6b7e84a838e97c605ae8e5abc2cd9e07d85cfc19151496a8e283 -size 187 +oid sha256:8cebd8de7c736f803125457a4ec9d2f074c4dd010319ececb2c255a07f614757 +size 189 diff --git a/Sprites/Items/Yin_Ammo.aseprite b/Sprites/Items/Yin_Ammo.aseprite new file mode 100644 index 00000000..b2aa5c43 --- /dev/null +++ b/Sprites/Items/Yin_Ammo.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6488a7825d9d43fbf20c60ced4777be26db61b3bc49fc4328ba32e5ccc7a4ba5 +size 926 diff --git a/Sprites/Items/Yin_Ammo.png b/Sprites/Items/Yin_Ammo.png new file mode 100644 index 00000000..610f2e98 --- /dev/null +++ b/Sprites/Items/Yin_Ammo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f203a26ef59e241bbe3d2112824eb6b64db9529f0907643e9faa82a6fcb5c61a +size 233 diff --git a/Sprites/Items/Yin_Ammo.png.import b/Sprites/Items/Yin_Ammo.png.import new file mode 100644 index 00000000..d13f169f --- /dev/null +++ b/Sprites/Items/Yin_Ammo.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b61po207ggn63" +path="res://.godot/imported/Yin_Ammo.png-a006a21b0965b3c91c2670f3e4ece755.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Items/Yin_Ammo.png" +dest_files=["res://.godot/imported/Yin_Ammo.png-a006a21b0965b3c91c2670f3e4ece755.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