mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:05:34 +00:00
Redesigned bullet emitters
This commit is contained in:
parent
ed87163b2f
commit
7b24e47739
16 changed files with 306 additions and 28 deletions
8
Scenes/Activable/BrokenFloorEmitter.tscn
Normal file
8
Scenes/Activable/BrokenFloorEmitter.tscn
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://dmumxecckh42r"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://ck8e4ngk8wy0m" path="res://Sprites/Actors/Floor_Emitter.png" id="1_0r0ud"]
|
||||
|
||||
[node name="BrokenFloorEmitter" type="Sprite2D"]
|
||||
texture = ExtResource("1_0r0ud")
|
||||
hframes = 3
|
||||
frame = 2
|
||||
45
Scenes/Activable/FloorEmitter.tscn
Normal file
45
Scenes/Activable/FloorEmitter.tscn
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://b7gkxlll3b1eg"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://uq50svtj2muh" path="res://Scripts/Activables/BulletEmitter.cs" id="1_g5ki3"]
|
||||
[ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="2_uhbyd"]
|
||||
[ext_resource type="Texture2D" uid="uid://ck8e4ngk8wy0m" path="res://Sprites/Actors/Floor_Emitter.png" id="3_g5ki3"]
|
||||
[ext_resource type="Script" uid="uid://cq3hkweplldbr" path="res://Scripts/Components/Actors/GenericDamageReceiver.cs" id="4_bbtu4"]
|
||||
[ext_resource type="Script" uid="uid://701a3no2cu45" path="res://Scripts/Components/Actors/EmitterActivationStateSprite.cs" id="4_uhbyd"]
|
||||
[ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="6_6dpsy"]
|
||||
[ext_resource type="PackedScene" uid="uid://dmumxecckh42r" path="res://Scenes/Activable/BrokenFloorEmitter.tscn" id="6_uhbyd"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_4awvh"]
|
||||
radius = 5.0
|
||||
|
||||
[node name="FloorEmitter" type="Node2D"]
|
||||
script = ExtResource("1_g5ki3")
|
||||
EmissionRotation = 90.0
|
||||
|
||||
[node name="BulletSpawner" type="Node2D" parent="."]
|
||||
script = ExtResource("2_uhbyd")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("3_g5ki3")
|
||||
hframes = 3
|
||||
script = ExtResource("4_uhbyd")
|
||||
|
||||
[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("HealthProvider")]
|
||||
collision_layer = 64
|
||||
collision_mask = 136
|
||||
script = ExtResource("4_bbtu4")
|
||||
HealthProvider = NodePath("Health")
|
||||
BulletGroup = 2
|
||||
Debris = ExtResource("6_uhbyd")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"]
|
||||
position = Vector2(0, 3.865)
|
||||
shape = SubResource("CircleShape2D_4awvh")
|
||||
|
||||
[node name="Health" type="Node2D" parent="DamageReceiver"]
|
||||
script = ExtResource("6_6dpsy")
|
||||
ResourceName = "Health"
|
||||
MaxResource = 4.0
|
||||
|
||||
[connection signal="StateChanged" from="." to="Sprite2D" method="ChangeState"]
|
||||
[connection signal="StateChanged" from="." to="DamageReceiver" method="ChangeState"]
|
||||
[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"]
|
||||
|
|
@ -1,8 +1,14 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://b4gugris5j5kd"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://b4gugris5j5kd"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://uq50svtj2muh" path="res://Scripts/Activables/BulletEmitter.cs" id="1_kaaee"]
|
||||
[ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="2_dj8i8"]
|
||||
[ext_resource type="Texture2D" uid="uid://b6xatixd2u1wn" path="res://Sprites/Actors/WallEmitter.png" id="3_dj8i8"]
|
||||
[ext_resource type="Script" uid="uid://cq3hkweplldbr" path="res://Scripts/Components/Actors/GenericDamageReceiver.cs" id="4_epfbp"]
|
||||
[ext_resource type="PackedScene" uid="uid://b4hntn7l5c5ln" path="res://Scenes/Interactable/DestroyedWallEmitter.tscn" id="5_epfbp"]
|
||||
[ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="6_xbljl"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_4awvh"]
|
||||
radius = 3.0
|
||||
|
||||
[node name="BulletEmitter" type="Node2D"]
|
||||
script = ExtResource("1_kaaee")
|
||||
|
|
@ -13,3 +19,22 @@ script = ExtResource("2_dj8i8")
|
|||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("3_dj8i8")
|
||||
hframes = 2
|
||||
|
||||
[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("HealthProvider")]
|
||||
collision_layer = 64
|
||||
collision_mask = 136
|
||||
script = ExtResource("4_epfbp")
|
||||
HealthProvider = NodePath("Health")
|
||||
BulletGroup = 2
|
||||
Debris = ExtResource("5_epfbp")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"]
|
||||
shape = SubResource("CircleShape2D_4awvh")
|
||||
|
||||
[node name="Health" type="Node2D" parent="DamageReceiver"]
|
||||
script = ExtResource("6_xbljl")
|
||||
ResourceName = "Health"
|
||||
MaxResource = 4.0
|
||||
|
||||
[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"]
|
||||
|
|
|
|||
8
Scenes/Interactable/DestroyedWallEmitter.tscn
Normal file
8
Scenes/Interactable/DestroyedWallEmitter.tscn
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b4hntn7l5c5ln"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b6xatixd2u1wn" path="res://Sprites/Actors/WallEmitter.png" id="1_kawoo"]
|
||||
|
||||
[node name="DestroyedWallEmitter" type="Sprite2D"]
|
||||
texture = ExtResource("1_kawoo")
|
||||
hframes = 2
|
||||
frame = 1
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=77 format=4 uid="uid://6a6tjohypmmb"]
|
||||
[gd_scene load_steps=81 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"]
|
||||
|
|
@ -38,13 +38,16 @@
|
|||
[ext_resource type="PackedScene" uid="uid://dcbcyp1qogcl0" path="res://Scenes/Props/BigTankHorizontal.tscn" id="30_i668q"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0gpbkxdfbnjh" path="res://Scenes/Actors/ForceField_Horizontal.tscn" id="31_hvfip"]
|
||||
[ext_resource type="AudioStream" uid="uid://blohh20jktoyo" path="res://SFX/270641__phantastonia__alarm2.wav" id="31_nb1db"]
|
||||
[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="PackedScene" uid="uid://dre2wvw4pa3hc" path="res://Scenes/Weapons/Bullets/enemyBullet_mid_blue.tscn" id="35_owyq0"]
|
||||
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="36_qo7ri"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="37_47klv"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6wo78"]
|
||||
script = ExtResource("4_s1vkf")
|
||||
EggIndex = 0
|
||||
StartingEquipment = [ExtResource("3_mqt4u")]
|
||||
StartingEquipment = Array[ExtResource("3_hw1so")]([ExtResource("3_mqt4u")])
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s23f3"]
|
||||
script = ExtResource("14_s23f3")
|
||||
|
|
@ -288,6 +291,20 @@ animations = [{
|
|||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5j8ks"]
|
||||
script = ExtResource("36_qo7ri")
|
||||
BulletScene = ExtResource("35_owyq0")
|
||||
BulletSpeed = 100.0
|
||||
Direction = Vector2(1, 0)
|
||||
BulletDamage = 4.0
|
||||
LifeTime = 10.0
|
||||
DestroyOnCollision = true
|
||||
Owner = 2
|
||||
DamageType = 0
|
||||
Controllable = false
|
||||
TimeModifiers = null
|
||||
metadata/_custom_type_script = "uid://dslyrfcej3g2n"
|
||||
|
||||
[node name="GameScene" type="Node2D"]
|
||||
script = ExtResource("1_t2k72")
|
||||
PlayerTemplate = ExtResource("2_2jsgm")
|
||||
|
|
@ -317,7 +334,7 @@ metadata/_edit_lock_ = true
|
|||
|
||||
[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
|
||||
y_sort_enabled = true
|
||||
tile_map_data = PackedByteArray("AAARABEAAQAAAAAAAgASABEAAQAAAAAAAgAVABQAAQAAAAAAAgAVABEAAQAAAAAADAAVABIAAQAAAAAADAAUABEAAQAAAAAADQAKABAAAAAGAAAAAAALABAAAAAHAAAAAAAHABAAAAAGAAAAAAAIABAAAAAHAAAAAAAFABAAAQAAAAAAAgAGABAAAQAAAAAAAgADABUAAQAAAAAAAQADABYAAQAAAAAAAQAEABcAAQAAAAAADgADABcAAQAAAAAAAQATABEAAQAAAAAADwAVABMAAQAAAAAADwADABgAAQAAAAAADgAEABgAAQAAAAAADgALABgAAQAAAAAACQAKABgAAQAAAAAADwALABcAAQAAAAAAAQAJABgAAQAAAAAAEAAIABgAAQAAAAAAEAADABMAAQAAAAAAEAADABQAAQAAAAAAEAAKAB4AAQAAAAAAEAALAB4AAQAAAAAAEAACAB4AAQAAAAAAEAADAB4AAQAAAAAAAQALAB8AAQAAAAAAAQAJACMAAQAAAAAAAgAKACMAAQAAAAAAAgALACMAAQAAAAAACQAIACMAAQAAAAAADAAEACMAAQAAAAAADAAHACMAAQAAAAAAEAADACMAAQAAAAAADQAFACMAAQAAAAAADgAGACMAAQAAAAAAEAAJABAAAQAAAAAAEQACACAAAAAGAAMAAAANAB8AAQAAAAAACQAUACEAAQAAAAAAEAANACEAAQAAAAAAEAAGABMAAAAIAAYAAAAGABQAAAAIAAYAAAAHABUAAAAHAAUAAAAIABUAAAAHAAUAAAAJABMAAAAGAAYAAAAJABQAAAAGAAYAAAAHABIAAAAHAAcAAAAIABIAAAAHAAcAAAAHABMAAQAAAAAAAQAHABQAAQAAAAAAAQAIABMAAQAAAAAAAQAIABQAAQAAAAAAAQAVACAAAAAIAAYAAAAXAB8AAAAIAAYAAAAXACAAAAAIAAYAAAAXACEAAAAIAAYAAAAXACIAAAAIAAYAAAAYACMAAAAHAAUAAAAZACMAAAAHAAUAAAAaACMAAAAHAAUAAAAbACMAAAAHAAUAAAAcACMAAAAHAAUAAAAdACMAAAAHAAUAAAAeAB8AAAAGAAYAAAAeACAAAAAGAAYAAAAeACEAAAAGAAYAAAAeACIAAAAGAAYAAAAYAB4AAAAHAAcAAAAZAB4AAAAHAAcAAAAaAB4AAAAHAAcAAAAbAB4AAAAHAAcAAAAcAB4AAAAHAAcAAAAdAB4AAAAHAAcAAAAfAB0AAQAAAAAADgAVAB4AAAAKAA4AAAAcABsAAAAKAAQAAAAZABsAAAAKAAQAAAAHABwAAAAJAAwAAAAHAB0AAAAJAA0AAAAMABEAAAAJAAwAAAAMABIAAAAJAA0AAAAEABwAAAAKAAwAAAAEAB0AAAAKAA0AAAABAB8AAAAKAAwAAAABACAAAAAKAA0AAAAQABEAAAAKAAwAAAAQABIAAAAKAA0AAAD7/x0AAAAKAAwAAAD7/x4AAAAKAA0AAAD+/x0AAAAJAAwAAAD+/x4AAAAJAA0AAAD//x8AAAAJAAwAAAD//yAAAAAJAA0AAAAMAB4AAAAKAA4AAAAMAB8AAAAKAA8AAAAVAB8AAAAKAA8AAAD6/yAAAAAMAAQAAAD9/yMAAAAGAAwAAAD9/yQAAAAGAAwAAAD9/yUAAAAHAAsAAAD+/yUAAAAHAAsAAADz/yAAAAAHAAsAAAD0/yAAAAAHAAsAAAD1/yAAAAAHAAsAAAD2/yAAAAAHAAsAAAD3/yAAAAAHAAsAAAD4/yAAAAAHAAsAAAD5/yAAAAAHAAsAAADz/x8AAAAGAAwAAADz/x4AAAAGAAwAAAD9/yEAAAAGAAYAAAD9/yIAAAAGAAYAAAD7/yAAAAAHAAcAAAD8/yAAAAAHAAcAAAAKABMAAAANAAgAAAAKABQAAAANAAkAAAALABMAAAAOAAgAAAALABQAAAAOAAkAAAAXACMAAAAEAA8AAAAeAB4AAAAFAA4AAAAeACMAAAAFAA8AAAAXAB4AAAAEAA4AAAD9/yAAAAAFAA4AAAAJABIAAAAFAA4AAAAGABIAAAAEAA4AAAAGABUAAAAEAA8AAAAJABUAAAAFAA8AAADV/x8AAAAJAAwAAADV/yAAAAAJAA0AAADi/x8AAAAKAAwAAADi/yAAAAAKAA0AAADr/xAAAAAKAAwAAADr/xEAAAAKAA0AAADq/xAAAAAJAAwAAADq/xEAAAAJAA0AAADV/x0AAAAGAAYAAADV/x4AAAAGAAYAAADT/xwAAAAHAAcAAADU/xwAAAAHAAcAAADV/xwAAAAFAA4AAAD6/yMAAAAIAAYAAAD6/yQAAAAIAAYAAAD7/yUAAAAHAAUAAAD8/yUAAAAHAAUAAAD6/yUAAAAEAA8AAADT/xkAAAAHAAsAAADU/xkAAAAHAAsAAADV/xkAAAAHAAsAAADW/xkAAAAHAAsAAADX/xkAAAAHAAsAAADY/xkAAAAHAAsAAADZ/xkAAAAHAAsAAADa/xkAAAAHAAsAAADb/xkAAAAHAAsAAADd/w8AAAAIAAwAAADd/xAAAAAIAAwAAADd/xEAAAAIAAwAAADd/xIAAAAIAAwAAADd/xMAAAAIAAwAAADd/xQAAAAIAAwAAADd/xUAAAAIAAwAAADc/xkAAAAHAAsAAADd/xkAAAAHAAsAAADd/xYAAAAHAAsAAAA=")
|
||||
tile_map_data = PackedByteArray("AAARABEAAQAAAAAAAgASABEAAQAAAAAAAgAVABQAAQAAAAAAAgAVABEAAQAAAAAADAAVABIAAQAAAAAADAAUABEAAQAAAAAADQAKABAAAAAGAAAAAAALABAAAAAHAAAAAAAHABAAAAAGAAAAAAAIABAAAAAHAAAAAAAFABAAAQAAAAAAAgAGABAAAQAAAAAAAgADABUAAQAAAAAAAQADABYAAQAAAAAAAQAEABcAAQAAAAAADgADABcAAQAAAAAAAQATABEAAQAAAAAADwAVABMAAQAAAAAADwADABgAAQAAAAAADgAEABgAAQAAAAAADgALABgAAQAAAAAACQAKABgAAQAAAAAADwALABcAAQAAAAAAAQAJABgAAQAAAAAAEAAIABgAAQAAAAAAEAADABMAAQAAAAAAEAADABQAAQAAAAAAEAAKAB4AAQAAAAAAEAALAB4AAQAAAAAAEAACAB4AAQAAAAAAEAADAB4AAQAAAAAAAQALAB8AAQAAAAAAAQAJACMAAQAAAAAAAgAKACMAAQAAAAAAAgALACMAAQAAAAAACQAIACMAAQAAAAAADAAEACMAAQAAAAAADAAHACMAAQAAAAAAEAADACMAAQAAAAAADQAFACMAAQAAAAAADgAGACMAAQAAAAAAEAAJABAAAQAAAAAAEQACACAAAAAGAAMAAAANAB8AAQAAAAAACQAUACEAAQAAAAAAEAANACEAAQAAAAAAEAAGABMAAAAIAAYAAAAGABQAAAAIAAYAAAAHABUAAAAHAAUAAAAIABUAAAAHAAUAAAAJABMAAAAGAAYAAAAJABQAAAAGAAYAAAAHABIAAAAHAAcAAAAIABIAAAAHAAcAAAAHABMAAQAAAAAAAQAHABQAAQAAAAAAAQAIABMAAQAAAAAAAQAIABQAAQAAAAAAAQAVACAAAAAIAAYAAAAXAB8AAAAIAAYAAAAXACAAAAAIAAYAAAAXACEAAAAIAAYAAAAXACIAAAAIAAYAAAAYACMAAAAHAAUAAAAZACMAAAAHAAUAAAAaACMAAAAHAAUAAAAbACMAAAAHAAUAAAAcACMAAAAHAAUAAAAdACMAAAAHAAUAAAAeAB8AAAAGAAYAAAAeACAAAAAGAAYAAAAeACEAAAAGAAYAAAAeACIAAAAGAAYAAAAYAB4AAAAHAAcAAAAZAB4AAAAHAAcAAAAaAB4AAAAHAAcAAAAbAB4AAAAHAAcAAAAcAB4AAAAHAAcAAAAdAB4AAAAHAAcAAAAfAB0AAQAAAAAADgAVAB4AAAAKAA4AAAAcABsAAAAKAAQAAAAZABsAAAAKAAQAAAAHABwAAAAJAAwAAAAHAB0AAAAJAA0AAAAMABEAAAAJAAwAAAAMABIAAAAJAA0AAAAEABwAAAAKAAwAAAAEAB0AAAAKAA0AAAABAB8AAAAKAAwAAAABACAAAAAKAA0AAAAQABEAAAAKAAwAAAAQABIAAAAKAA0AAAD7/x0AAAAKAAwAAAD7/x4AAAAKAA0AAAD+/x0AAAAJAAwAAAD+/x4AAAAJAA0AAAD//x8AAAAJAAwAAAD//yAAAAAJAA0AAAAMAB4AAAAKAA4AAAAMAB8AAAAKAA8AAAAVAB8AAAAKAA8AAAD6/yAAAAAMAAQAAAD9/yMAAAAGAAwAAAD9/yQAAAAGAAwAAAD9/yUAAAAHAAsAAAD+/yUAAAAHAAsAAADz/yAAAAAHAAsAAAD0/yAAAAAHAAsAAAD1/yAAAAAHAAsAAAD2/yAAAAAHAAsAAAD3/yAAAAAHAAsAAAD4/yAAAAAHAAsAAAD5/yAAAAAHAAsAAADz/x8AAAAGAAwAAADz/x4AAAAGAAwAAAD9/yEAAAAGAAYAAAD9/yIAAAAGAAYAAAD7/yAAAAAHAAcAAAD8/yAAAAAHAAcAAAAKABMAAAANAAgAAAAKABQAAAANAAkAAAALABMAAAAOAAgAAAALABQAAAAOAAkAAAAXACMAAAAEAA8AAAAeAB4AAAAFAA4AAAAeACMAAAAFAA8AAAAXAB4AAAAEAA4AAAD9/yAAAAAFAA4AAAAJABIAAAAFAA4AAAAGABIAAAAEAA4AAAAGABUAAAAEAA8AAAAJABUAAAAFAA8AAADV/x8AAAAJAAwAAADV/yAAAAAJAA0AAADi/x8AAAAKAAwAAADi/yAAAAAKAA0AAADr/xAAAAAKAAwAAADr/xEAAAAKAA0AAADq/xAAAAAJAAwAAADq/xEAAAAJAA0AAADV/x0AAAAGAAYAAADV/x4AAAAGAAYAAADT/xwAAAAHAAcAAADU/xwAAAAHAAcAAADV/xwAAAAFAA4AAAD6/yMAAAAIAAYAAAD6/yQAAAAIAAYAAAD7/yUAAAAHAAUAAAD8/yUAAAAHAAUAAAD6/yUAAAAEAA8AAADT/xkAAAAHAAsAAADU/xkAAAAHAAsAAADV/xkAAAAHAAsAAADW/xkAAAAHAAsAAADX/xkAAAAHAAsAAADY/xkAAAAHAAsAAADZ/xkAAAAHAAsAAADa/xkAAAAHAAsAAADb/xkAAAAHAAsAAADd/w8AAAAIAAwAAADd/xAAAAAIAAwAAADd/xEAAAAIAAwAAADd/xIAAAAIAAwAAADd/xMAAAAIAAwAAADd/xQAAAAIAAwAAADd/xUAAAAIAAwAAADc/xkAAAAHAAsAAADd/xkAAAAHAAsAAADd/xYAAAAHAAsAAAD3/ysAAAAKAAwAAAD3/ywAAAAKAA0AAADy/ysAAAAJAAwAAADy/ywAAAAJAA0AAAA=")
|
||||
tile_set = ExtResource("5_06rc0")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
|
|
@ -327,6 +344,15 @@ metadata/_edit_lock_ = true
|
|||
[node name="Teleporter" parent="Tilemaps/Actors" instance=ExtResource("6_e12id")]
|
||||
position = Vector2(311, 304)
|
||||
|
||||
[node name="DebugTeleporter" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("6_e12id")]
|
||||
position = Vector2(323.708, 324.168)
|
||||
IsEnabled = true
|
||||
Target = NodePath("../DebugTeleporterDestination")
|
||||
|
||||
[node name="DebugTeleporterDestination" parent="Tilemaps/Actors" instance=ExtResource("6_e12id")]
|
||||
position = Vector2(-72.1223, 735.098)
|
||||
Invisible = true
|
||||
|
||||
[node name="Vials" type="Sprite2D" parent="Tilemaps/Actors"]
|
||||
position = Vector2(134, 259)
|
||||
texture = ExtResource("9_j5c74")
|
||||
|
|
@ -374,6 +400,7 @@ Events = Array[ExtResource("14_hvfip")]([SubResource("Resource_mq37i")])
|
|||
position = Vector2(264, 482)
|
||||
BulletResource = ExtResource("22_uaqq6")
|
||||
EmitCoolDown = 0.5
|
||||
BurstCoolDown = 0.0
|
||||
|
||||
[node name="WallEmitter3" parent="Tilemaps/Actors" instance=ExtResource("21_qi6uc")]
|
||||
position = Vector2(456, 455)
|
||||
|
|
@ -384,6 +411,7 @@ EmitCoolDown = 0.5
|
|||
position = Vector2(312, 482)
|
||||
BulletResource = ExtResource("22_uaqq6")
|
||||
EmitCoolDown = 0.5
|
||||
BurstCoolDown = 0.0
|
||||
|
||||
[node name="Elevator" parent="Tilemaps/Actors" instance=ExtResource("23_577wb")]
|
||||
position = Vector2(-64, 576)
|
||||
|
|
@ -443,7 +471,7 @@ position = Vector2(-274, 530)
|
|||
[node name="SwitchBox" parent="Tilemaps/Actors" node_paths=PackedStringArray("Targets") instance=ExtResource("30_47klv")]
|
||||
position = Vector2(-152, 707)
|
||||
StartingState = 0
|
||||
Targets = [NodePath("../HorizontalForceField")]
|
||||
Targets = [NodePath("../HorizontalForceField"), NodePath("../FloorEmitter"), NodePath("../FloorEmitter2"), NodePath("../FloorEmitter3")]
|
||||
|
||||
[node name="HorizontalForceField" parent="Tilemaps/Actors" instance=ExtResource("31_hvfip")]
|
||||
position = Vector2(-48, 480)
|
||||
|
|
@ -455,6 +483,36 @@ autoplay = "default"
|
|||
frame = 22
|
||||
frame_progress = 0.83544
|
||||
|
||||
[node name="FloorEmitter" parent="Tilemaps/Actors" instance=ExtResource("33_6h3t3")]
|
||||
position = Vector2(-97, 661)
|
||||
BulletResource = SubResource("Resource_5j8ks")
|
||||
InvertSignal = true
|
||||
BurstCoolDown = 0.7
|
||||
Spread = 360.0
|
||||
Count = 8
|
||||
RotationSpeed = 5.0
|
||||
BulletsPerBurst = 4
|
||||
|
||||
[node name="FloorEmitter2" parent="Tilemaps/Actors" instance=ExtResource("33_6h3t3")]
|
||||
position = Vector2(-170.149, 591.864)
|
||||
BulletResource = SubResource("Resource_5j8ks")
|
||||
InvertSignal = true
|
||||
BurstCoolDown = 0.7
|
||||
Spread = 360.0
|
||||
Count = 8
|
||||
RotationSpeed = 5.0
|
||||
BulletsPerBurst = 4
|
||||
|
||||
[node name="FloorEmitter3" parent="Tilemaps/Actors" instance=ExtResource("33_6h3t3")]
|
||||
position = Vector2(-282.728, 648.41)
|
||||
BulletResource = SubResource("Resource_5j8ks")
|
||||
InvertSignal = true
|
||||
BurstCoolDown = 0.7
|
||||
Spread = 360.0
|
||||
Count = 8
|
||||
RotationSpeed = 5.0
|
||||
BulletsPerBurst = 4
|
||||
|
||||
[node name="CameraController" type="Camera2D" parent="."]
|
||||
script = ExtResource("7_lxkiw")
|
||||
pixel_snap = false
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=124 format=4 uid="uid://bv451a8wgty4u"]
|
||||
[gd_scene load_steps=125 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"]
|
||||
|
|
@ -60,6 +60,7 @@
|
|||
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="42_wigyb"]
|
||||
[ext_resource type="PackedScene" uid="uid://fxvlaidieiv7" path="res://Scenes/Interactable/ScriptableAreaTrigger.tscn" id="43_kf3qc"]
|
||||
[ext_resource type="Script" uid="uid://dkihoo85jfec5" path="res://Scripts/Resources/Events/MovePlayerEvent.cs" id="44_klwgh"]
|
||||
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="44_mah4x"]
|
||||
[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"]
|
||||
|
|
@ -104,7 +105,7 @@
|
|||
[sub_resource type="Resource" id="Resource_6sau4"]
|
||||
script = ExtResource("7_l32kg")
|
||||
EggIndex = 0
|
||||
StartingEquipment = [ExtResource("6_khabp")]
|
||||
StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("6_khabp")])
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ksslq"]
|
||||
size = Vector2(184, 46.5)
|
||||
|
|
@ -208,7 +209,7 @@ ActivationType = 0
|
|||
Targets = Array[NodePath]([NodePath("../Rumia")])
|
||||
WaitForCompletion = true
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qnbhd"]
|
||||
[sub_resource type="Resource" id="Resource_bhq8p"]
|
||||
resource_local_to_scene = true
|
||||
script = ExtResource("49_0si7g")
|
||||
Target = NodePath(".")
|
||||
|
|
@ -232,7 +233,7 @@ SpawnMarkers = Dictionary[int, NodePath]({
|
|||
2: NodePath("Parallax2D/Factory Tilemaps/LevelProps/BossDebugTeleporterDestination"),
|
||||
255: NodePath("Parallax2D/Factory Tilemaps/Debug Room/DebugRoomStartPosition")
|
||||
})
|
||||
StartingEquipment = [ExtResource("4_swym2"), ExtResource("5_nqier")]
|
||||
StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("4_swym2"), ExtResource("5_nqier")])
|
||||
MapStartData = SubResource("Resource_6sau4")
|
||||
PlayerParentNode = NodePath("Parallax2D/Factory Tilemaps/PlayerParent")
|
||||
metadata/_edit_lock_ = true
|
||||
|
|
@ -554,7 +555,7 @@ Invisible = true
|
|||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps/DebugTeleporter" instance=ExtResource("43_kf3qc")]
|
||||
Events = [SubResource("Resource_usuub")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_usuub")])
|
||||
|
||||
[node name="BlueKeycard2" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("35_rblsn")]
|
||||
position = Vector2(-1032, -317)
|
||||
|
|
@ -730,7 +731,7 @@ position = Vector2(-1506, -188)
|
|||
[node name="LevelStartTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")]
|
||||
position = Vector2(-781, -160)
|
||||
scale = Vector2(1.455, 1.455)
|
||||
Events = [SubResource("Resource_5er5x"), SubResource("Resource_b25hy")]
|
||||
Events = Array[ExtResource("44_mah4x")]([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)
|
||||
|
|
@ -772,7 +773,7 @@ Targets = [NodePath("Script2")]
|
|||
[node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer2"]
|
||||
position = Vector2(120, 25)
|
||||
script = ExtResource("42_wigyb")
|
||||
Events = [SubResource("Resource_ji7au")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_ji7au")])
|
||||
|
||||
[node name="Computer5" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")]
|
||||
position = Vector2(-1344, -251)
|
||||
|
|
@ -780,7 +781,7 @@ Targets = [NodePath("Computer5Script")]
|
|||
|
||||
[node name="Computer5Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer5"]
|
||||
script = ExtResource("42_wigyb")
|
||||
Events = [SubResource("Resource_fasrq"), SubResource("Resource_mah4x"), SubResource("Resource_yot54")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_fasrq"), SubResource("Resource_mah4x"), SubResource("Resource_yot54")])
|
||||
|
||||
[node name="Computer3" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")]
|
||||
position = Vector2(-612.57, -358.528)
|
||||
|
|
@ -788,7 +789,7 @@ Target = NodePath("Script")
|
|||
|
||||
[node name="Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer3"]
|
||||
script = ExtResource("42_wigyb")
|
||||
Events = [SubResource("Resource_o2kpk")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_o2kpk")])
|
||||
|
||||
[node name="Computer4" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")]
|
||||
position = Vector2(-791, -505)
|
||||
|
|
@ -796,7 +797,7 @@ Target = NodePath("Node2D")
|
|||
|
||||
[node name="Node2D" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"]
|
||||
script = ExtResource("42_wigyb")
|
||||
Events = [SubResource("Resource_s3g2w")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_s3g2w")])
|
||||
|
||||
[node name="Label" type="Label" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"]
|
||||
offset_left = -5.0
|
||||
|
|
@ -824,11 +825,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 = [SubResource("Resource_068l7"), SubResource("Resource_l3nop")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_068l7"), SubResource("Resource_l3nop")])
|
||||
|
||||
[node name="BossBattleStartScript" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")]
|
||||
position = Vector2(-1487, -396)
|
||||
Events = [SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_qnbhd")]
|
||||
Events = Array[ExtResource("44_mah4x")]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_bhq8p")])
|
||||
|
||||
[node name="Enemy13" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("47_u1ve6")]
|
||||
position = Vector2(-1657, -788)
|
||||
|
|
@ -1025,7 +1026,7 @@ position = Vector2(-2000, -736)
|
|||
[node name="ControlPad8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")]
|
||||
position = Vector2(-2027, -735)
|
||||
Targets = [NodePath("../HorizontalForceField")]
|
||||
Requirements = [ExtResource("84_ma1ta")]
|
||||
Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")])
|
||||
|
||||
[node name="Ammo6" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")]
|
||||
position = Vector2(-872, -220)
|
||||
|
|
|
|||
|
|
@ -14,33 +14,74 @@ public partial class BulletEmitter : Node2D, IActivable
|
|||
public bool EmitOnStart { get; set; } = false;
|
||||
|
||||
[Export]
|
||||
public float EmitCoolDown { get; private set; } = 1f;
|
||||
public bool InvertSignal { get; private set; } = false;
|
||||
|
||||
[Export]
|
||||
public float EmitCoolDown { get; private set; } = 0.2f;
|
||||
|
||||
[Export] public float BurstCoolDown { get; private set; } = 2f;
|
||||
|
||||
[Export] public float Spread { get; set; } = 0f;
|
||||
|
||||
[Export] public int Count { get; set; } = 1;
|
||||
|
||||
[Export] public float EmissionRotation { get; set; } = 0f;
|
||||
|
||||
|
||||
[Export] public float RotationSpeed { get; private set; } = 0f;
|
||||
|
||||
[Export] public int BulletsPerBurst { get; private set; } = 1;
|
||||
|
||||
|
||||
[Signal]
|
||||
public delegate void StateChangedEventHandler(bool isEmitting);
|
||||
|
||||
private BulletSpawner _bulletSpawner;
|
||||
|
||||
protected bool IsEmitting = false;
|
||||
|
||||
private double _emitTimer = 0f;
|
||||
|
||||
private double _reloadTimer = 0f;
|
||||
|
||||
private float _currentEmissionRotation = 0f;
|
||||
|
||||
private int _currentBullets = 0;
|
||||
|
||||
private bool _isReloading = false;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_bulletSpawner = GetNode<BulletSpawner>("BulletSpawner");
|
||||
|
||||
_currentEmissionRotation = EmissionRotation;
|
||||
_currentBullets = BulletsPerBurst;
|
||||
|
||||
if (EmitOnStart)
|
||||
{
|
||||
IsEmitting = true;
|
||||
CallDeferred(MethodName.Shoot);
|
||||
}
|
||||
EmitSignal(SignalName.StateChanged, IsEmitting);
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (!IsEmitting) return;
|
||||
|
||||
if (_isReloading)
|
||||
{
|
||||
_reloadTimer += delta;
|
||||
|
||||
if (_reloadTimer >= BurstCoolDown)
|
||||
{
|
||||
_currentBullets = BulletsPerBurst;
|
||||
_isReloading = false;
|
||||
_reloadTimer = 0f;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
_emitTimer += delta;
|
||||
|
||||
if (_emitTimer >= EmitCoolDown)
|
||||
|
|
@ -52,7 +93,16 @@ public partial class BulletEmitter : Node2D, IActivable
|
|||
|
||||
public void Shoot()
|
||||
{
|
||||
_bulletSpawner.SpawnBullet(BulletResource.MakeBullet(this.GlobalPosition, Count, Spread, EmissionRotation));
|
||||
_bulletSpawner.SpawnBullet(BulletResource.MakeBullet(this.GlobalPosition, Count, Spread, _currentEmissionRotation));
|
||||
|
||||
_currentEmissionRotation += RotationSpeed;
|
||||
|
||||
_currentBullets--;
|
||||
|
||||
if (_currentBullets <= 0)
|
||||
{
|
||||
_isReloading = true;
|
||||
}
|
||||
}
|
||||
|
||||
public bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||
|
|
@ -61,12 +111,12 @@ public partial class BulletEmitter : Node2D, IActivable
|
|||
{
|
||||
case ActivationType.Open:
|
||||
case ActivationType.Enable:
|
||||
IsEmitting = true;
|
||||
IsEmitting = !InvertSignal;
|
||||
_emitTimer = 0;
|
||||
break;
|
||||
case ActivationType.Close:
|
||||
case ActivationType.Disable:
|
||||
IsEmitting = false;
|
||||
IsEmitting = InvertSignal;
|
||||
_emitTimer = 0;
|
||||
break;
|
||||
case ActivationType.Use:
|
||||
|
|
@ -77,7 +127,8 @@ public partial class BulletEmitter : Node2D, IActivable
|
|||
case ActivationType.Destroy:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
EmitSignal(SignalName.StateChanged, IsEmitting);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
17
Scripts/Components/Actors/EmitterActivationStateSprite.cs
Normal file
17
Scripts/Components/Actors/EmitterActivationStateSprite.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class EmitterActivationStateSprite : Sprite2D
|
||||
{
|
||||
public void ChangeState(bool enabled)
|
||||
{
|
||||
if (enabled)
|
||||
{
|
||||
this.Frame = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Frame = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://701a3no2cu45
|
||||
|
|
@ -19,15 +19,23 @@ public partial class GenericDamageReceiver : Area2D, IHittable
|
|||
|
||||
private Node2D _parent;
|
||||
|
||||
public bool Enabled { get; private set; } = true;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_parent = GetParent<Node2D>();
|
||||
HealthProvider.FillResource();
|
||||
HealthProvider.ResourceDepleted += OnDeath;
|
||||
}
|
||||
|
||||
public void ChangeState(bool enabled)
|
||||
{
|
||||
Enabled = enabled;
|
||||
}
|
||||
|
||||
private void _on_damage_hitbox_area_entered(Area2D area)
|
||||
{
|
||||
if (!Enabled) return;
|
||||
if (Invulnerable) return;
|
||||
if (area is not Bullet bullet) return;
|
||||
|
||||
|
|
@ -46,6 +54,7 @@ public partial class GenericDamageReceiver : Area2D, IHittable
|
|||
|
||||
public void Hit(float damage, DamageType damageType = DamageType.Neutral)
|
||||
{
|
||||
if (!Enabled) return;
|
||||
if (Invulnerable) return;
|
||||
|
||||
var dmg = DamageResistances.Aggregate(damage, (current, resistance) => current * resistance.CalculateDamage(current, damageType));
|
||||
|
|
|
|||
|
|
@ -16,6 +16,21 @@ public partial class StateSwitch : Switch
|
|||
base._Ready();
|
||||
|
||||
CurrentState = StartingState;
|
||||
|
||||
switch (CurrentState)
|
||||
{
|
||||
case SwitchState.On:
|
||||
TriggerEnable();
|
||||
break;
|
||||
case SwitchState.Off:
|
||||
TriggerDisable();
|
||||
break;
|
||||
case SwitchState.Destroyed:
|
||||
break;
|
||||
case SwitchState.Disabled:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||
|
|
|
|||
BIN
Sprites/Actors/Floor_Emitter.aseprite
(Stored with Git LFS)
Normal file
BIN
Sprites/Actors/Floor_Emitter.aseprite
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Sprites/Actors/Floor_Emitter.png
(Stored with Git LFS)
Normal file
BIN
Sprites/Actors/Floor_Emitter.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Sprites/Actors/Floor_Emitter.png.import
Normal file
34
Sprites/Actors/Floor_Emitter.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ck8e4ngk8wy0m"
|
||||
path="res://.godot/imported/Floor_Emitter.png-55d9af697d9013c7f62d6c7b500bba7d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Sprites/Actors/Floor_Emitter.png"
|
||||
dest_files=["res://.godot/imported/Floor_Emitter.png-55d9af697d9013c7f62d6c7b500bba7d.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
Sprites/Actors/WallEmitter.aseprite
(Stored with Git LFS)
BIN
Sprites/Actors/WallEmitter.aseprite
(Stored with Git LFS)
Binary file not shown.
BIN
Sprites/Actors/WallEmitter.png
(Stored with Git LFS)
BIN
Sprites/Actors/WallEmitter.png
(Stored with Git LFS)
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue