Energy weapons

This commit is contained in:
Marco 2025-05-02 13:10:38 +02:00
commit 2f76d4742e
12 changed files with 144 additions and 24 deletions

View file

@ -0,0 +1,25 @@
[gd_resource type="Resource" script_class="LootItem" load_steps=4 format=3 uid="uid://ckfqrq8a0uj1t"]
[ext_resource type="Texture2D" uid="uid://d04hnwyg3sqlu" path="res://Sprites/Items/LaserWeapon.png" id="1_h548w"]
[ext_resource type="Resource" uid="uid://do0jwf5jhx1i5" path="res://Resources/Weapons/LaserWeapon.tres" id="2_rec72"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_2blkp"]
[resource]
script = ExtResource("3_2blkp")
ItemName = &"Laser"
ShortName = &"Laser"
ItemDescription = &"Laser"
ItemKey = &"LASER_WEAPON"
Item = 9
Tier = 0
Price = 0
WeaponData = ExtResource("2_rec72")
Amount = 1
Max = 1
PickupIfMaxed = false
ConsumeOnUse = false
UiType = 1
Selectable = true
AutoPickup = false
InventorySprite = ExtResource("1_h548w")
DropScenePath = &"res://Scenes/Items/GenericItem.tscn"

View file

@ -0,0 +1,26 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=5 format=3 uid="uid://do0jwf5jhx1i5"]
[ext_resource type="Resource" uid="uid://eu6n6c5175y8" path="res://Resources/Bullets/simple_ice_bullet.tres" id="1_1h0tt"]
[ext_resource type="AudioStream" uid="uid://jsv3yjluv1au" path="res://SFX/Weapons/Reload_01.wav" id="2_h0bjj"]
[ext_resource type="AudioStream" uid="uid://cjg8r7bthkfsy" path="res://SFX/Laser_shoot 11.wav" id="3_iquwk"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="4_70v4a"]
[resource]
script = ExtResource("4_70v4a")
Name = &"Laser"
BulletData = ExtResource("1_1h0tt")
Priority = 1
AmmoPerShot = 2
RateOfFire = 0.3
BulletCapacity = 5
ReloadTime = 0.6
AutoReload = true
InfiniteAmmo = true
ItemKey = &"LASER_WEAPON"
AmmoKey = &"SHIELD"
BulletsPerShot = 1
SpreadAngle = 5.0
RandomSpread = 2.5
_rotationOffset = 0.0
ReloadSound = ExtResource("2_h0bjj")
ShootSound = ExtResource("3_iquwk")

View file

@ -334,9 +334,10 @@ PlayerFSM = NodePath("StateMachine")
InteractionController = NodePath("InteractionController") InteractionController = NodePath("InteractionController")
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="StateMachine" type="Node2D" parent="." node_paths=PackedStringArray("MotivationResource")] [node name="StateMachine" type="Node2D" parent="." node_paths=PackedStringArray("MotivationResource", "Shield")]
script = ExtResource("1_mpmil") script = ExtResource("1_mpmil")
MotivationResource = NodePath("../DamageReceiver/MotivationProvider") MotivationResource = NodePath("../DamageReceiver/MotivationProvider")
Shield = NodePath("../DamageReceiver/ShieldProvider")
[node name="Init" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider", "_storageModule")] [node name="Init" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider", "_storageModule")]
script = ExtResource("2_i6wc8") script = ExtResource("2_i6wc8")

View file

@ -27,7 +27,6 @@ process_mode = 1
y_sort_enabled = true y_sort_enabled = true
script = ExtResource("4_jtlua") script = ExtResource("4_jtlua")
MapThemes = Array[Object]([ExtResource("25_7gtqx")]) MapThemes = Array[Object]([ExtResource("25_7gtqx")])
ManualSeed = "5708733892301100157"
[node name="CameraController" type="Camera2D" parent="."] [node name="CameraController" type="Camera2D" parent="."]
process_mode = 1 process_mode = 1

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=28 format=4 uid="uid://24wh7h2dbljf"] [gd_scene load_steps=30 format=4 uid="uid://24wh7h2dbljf"]
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vhsym"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vhsym"]
[ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="2_vhsym"] [ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="2_vhsym"]
@ -24,6 +24,8 @@
[ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="19_ii24s"] [ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="19_ii24s"]
[ext_resource type="Resource" uid="uid://cfod8kephnio6" path="res://Resources/Items/Nuclear_Ammo_Pickup.tres" id="20_15ruc"] [ext_resource type="Resource" uid="uid://cfod8kephnio6" path="res://Resources/Items/Nuclear_Ammo_Pickup.tres" id="20_15ruc"]
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="21_5uxd1"] [ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="21_5uxd1"]
[ext_resource type="Script" uid="uid://cqoqovfvk83wn" path="res://Scripts/Actors/ItemMarker.cs" id="25_5uxd1"]
[ext_resource type="Resource" uid="uid://ckfqrq8a0uj1t" path="res://Resources/Items/LaserWeapon.tres" id="26_iyfx3"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_u3c1h"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_u3c1h"]
size = Vector2(272, 85) size = Vector2(272, 85)
@ -73,7 +75,7 @@ position = Vector2(248, 56)
[node name="Chest" parent="Actors" instance=ExtResource("7_kublc")] [node name="Chest" parent="Actors" instance=ExtResource("7_kublc")]
position = Vector2(216, 55) position = Vector2(216, 55)
LootTable = Array[ExtResource("8_dbn5e")]([ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("10_6gtn1"), ExtResource("11_0a3am"), ExtResource("12_t3lr8"), ExtResource("13_ii24s"), ExtResource("14_15ruc"), ExtResource("15_5uxd1"), ExtResource("16_iyfx3"), ExtResource("17_45mmk"), ExtResource("18_ipsj4"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1")]) LootTable = Array[ExtResource("8_dbn5e")]([ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("10_6gtn1"), ExtResource("11_0a3am"), ExtResource("12_t3lr8"), ExtResource("13_ii24s"), ExtResource("14_15ruc"), ExtResource("15_5uxd1"), ExtResource("16_iyfx3"), ExtResource("17_45mmk"), ExtResource("18_ipsj4"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("26_iyfx3")])
[node name="Label" type="Label" parent="Actors"] [node name="Label" type="Label" parent="Actors"]
offset_left = 153.0 offset_left = 153.0
@ -132,4 +134,10 @@ offset_bottom = 35.0
text = "Exit test" text = "Exit test"
label_settings = ExtResource("14_c0yr1") label_settings = ExtResource("14_c0yr1")
[node name="AmmoMarker4" type="Marker2D" parent="Features"]
position = Vector2(91, 134)
script = ExtResource("25_5uxd1")
Item = ExtResource("26_iyfx3")
AutoSpawn = true
[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] [connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=167 format=4 uid="uid://bv451a8wgty4u"] [gd_scene load_steps=166 format=4 uid="uid://bv451a8wgty4u"]
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"] [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"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_ksslq"]
@ -79,7 +79,6 @@
[ext_resource type="Resource" uid="uid://dwwbyyy3fo4bt" path="res://Resources/Items/IcicleRepeater_Advanced.tres" id="53_mgwgx"] [ext_resource type="Resource" uid="uid://dwwbyyy3fo4bt" path="res://Resources/Items/IcicleRepeater_Advanced.tres" id="53_mgwgx"]
[ext_resource type="Resource" uid="uid://c01jixi7b2s7v" path="res://Resources/Items/IceShotgun_T1.tres" id="55_7lma1"] [ext_resource type="Resource" uid="uid://c01jixi7b2s7v" path="res://Resources/Items/IceShotgun_T1.tres" id="55_7lma1"]
[ext_resource type="PackedScene" uid="uid://bqjcwxene73l2" path="res://Scenes/Actors/ActorEnemyTest.tscn" id="55_chha6"] [ext_resource type="PackedScene" uid="uid://bqjcwxene73l2" path="res://Scenes/Actors/ActorEnemyTest.tscn" id="55_chha6"]
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="55_j86ly"]
[ext_resource type="Resource" uid="uid://bhllj7r3oxipf" path="res://Resources/Items/IceShotgun_T2.tres" id="56_w8skm"] [ext_resource type="Resource" uid="uid://bhllj7r3oxipf" path="res://Resources/Items/IceShotgun_T2.tres" id="56_w8skm"]
[ext_resource type="Resource" uid="uid://btk4kojtepwv" path="res://Resources/Items/IceShotgun_Sawed_T1.tres" id="57_jm0wb"] [ext_resource type="Resource" uid="uid://btk4kojtepwv" path="res://Resources/Items/IceShotgun_Sawed_T1.tres" id="57_jm0wb"]
[ext_resource type="Resource" uid="uid://c57od7cpn5kwf" path="res://Resources/Items/IceShotgun_Sawed_T2.tres" id="58_dfo5i"] [ext_resource type="Resource" uid="uid://c57od7cpn5kwf" path="res://Resources/Items/IceShotgun_Sawed_T2.tres" id="58_dfo5i"]
@ -292,7 +291,7 @@ ActivationType = 0
Targets = Array[NodePath]([NodePath("../Rumia")]) Targets = Array[NodePath]([NodePath("../Rumia")])
WaitForCompletion = true WaitForCompletion = true
[sub_resource type="Resource" id="Resource_y3li7"] [sub_resource type="Resource" id="Resource_uh0gg"]
resource_local_to_scene = true resource_local_to_scene = true
script = ExtResource("49_0si7g") script = ExtResource("49_0si7g")
Target = NodePath(".") Target = NodePath(".")
@ -908,7 +907,7 @@ Invisible = true
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps/DebugTeleporter" instance=ExtResource("43_kf3qc")] [node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps/DebugTeleporter" instance=ExtResource("43_kf3qc")]
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_usuub")]) Events = [SubResource("Resource_usuub")]
[node name="BlueKeycard2" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("35_rblsn")] [node name="BlueKeycard2" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("35_rblsn")]
position = Vector2(-1032, -317) position = Vector2(-1032, -317)
@ -1104,7 +1103,7 @@ position = Vector2(-1423, -188)
[node name="LevelStartTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")] [node name="LevelStartTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")]
position = Vector2(-762, -129) position = Vector2(-762, -129)
scale = Vector2(1.455, 1.455) scale = Vector2(1.455, 1.455)
Events = Array[ExtResource("55_j86ly")]([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")] [node name="AreaTrigger2" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("28_6au4t")]
position = Vector2(-435, -162) position = Vector2(-435, -162)
@ -1147,7 +1146,7 @@ metadata/_edit_group_ = true
[node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer2"] [node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer2"]
position = Vector2(120, 25) position = Vector2(120, 25)
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_wma5c")]) Events = [SubResource("Resource_wma5c")]
[node name="Computer8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")] [node name="Computer8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")]
position = Vector2(-2073, -215) position = Vector2(-2073, -215)
@ -1158,7 +1157,7 @@ metadata/_edit_group_ = true
[node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer8"] [node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer8"]
position = Vector2(120, 25) position = Vector2(120, 25)
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_dferh")]) Events = [SubResource("Resource_dferh")]
[node name="Computer6" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")] [node name="Computer6" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")]
position = Vector2(-1113, -139) position = Vector2(-1113, -139)
@ -1168,7 +1167,7 @@ metadata/_edit_group_ = true
[node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer6"] [node name="Script2" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer6"]
position = Vector2(0, 1) position = Vector2(0, 1)
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_cxj4w")]) Events = [SubResource("Resource_cxj4w")]
[node name="Computer7" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")] [node name="Computer7" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")]
position = Vector2(-1175.36, 213.708) position = Vector2(-1175.36, 213.708)
@ -1179,7 +1178,7 @@ metadata/_edit_group_ = true
[node name="Computer7Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer7"] [node name="Computer7Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer7"]
position = Vector2(0, 1) position = Vector2(0, 1)
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_tcc7d")]) Events = [SubResource("Resource_tcc7d")]
[node name="Computer5" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")] [node name="Computer5" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("31_243ec")]
position = Vector2(-1344, -251) position = Vector2(-1344, -251)
@ -1187,7 +1186,7 @@ Targets = [NodePath("Computer5Script")]
[node name="Computer5Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer5"] [node name="Computer5Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer5"]
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([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")] [node name="Computer3" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")]
position = Vector2(-612.57, -358.528) position = Vector2(-612.57, -358.528)
@ -1195,7 +1194,7 @@ Target = NodePath("Script")
[node name="Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer3"] [node name="Script" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer3"]
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_o2kpk")]) Events = [SubResource("Resource_o2kpk")]
[node name="Computer4" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")] [node name="Computer4" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Target") instance=ExtResource("31_243ec")]
position = Vector2(-791, -505) position = Vector2(-791, -505)
@ -1203,7 +1202,7 @@ Target = NodePath("Node2D")
[node name="Node2D" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"] [node name="Node2D" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"]
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_s3g2w")]) Events = [SubResource("Resource_s3g2w")]
[node name="Label" type="Label" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"] [node name="Label" type="Label" parent="Parallax2D/Factory Tilemaps/LevelProps/Computer4"]
offset_left = -5.0 offset_left = -5.0
@ -1220,11 +1219,11 @@ EnemyData = ExtResource("71_xhinl")
[node name="BossBattleEndScript" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps"] [node name="BossBattleEndScript" type="Node2D" parent="Parallax2D/Factory Tilemaps/LevelProps"]
position = Vector2(-1628.53, -477.628) position = Vector2(-1628.53, -477.628)
script = ExtResource("42_wigyb") script = ExtResource("42_wigyb")
Events = Array[ExtResource("55_j86ly")]([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")] [node name="BossBattleStartScript" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")]
position = Vector2(-1487, -396) position = Vector2(-1487, -396)
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_y3li7")]) Events = [SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_uh0gg")]
[node name="Enemy13" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("47_u1ve6")] [node name="Enemy13" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("47_u1ve6")]
position = Vector2(-1657, -788) position = Vector2(-1657, -788)
@ -1541,7 +1540,7 @@ position = Vector2(-2232, -203)
[node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")] [node name="ScriptableAreaTrigger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")]
position = Vector2(-2063, -232) position = Vector2(-2063, -232)
Events = Array[ExtResource("55_j86ly")]([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")] [node name="ShieldExtendPickup" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("103_0bqta")]
position = Vector2(-1646, 38) position = Vector2(-1646, 38)
@ -1669,7 +1668,7 @@ position = Vector2(-1633, 391)
[node name="MovementSensorLonger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("112_j86ly")] [node name="MovementSensorLonger" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("112_j86ly")]
position = Vector2(-1495, 516) position = Vector2(-1495, 516)
Events = Array[ExtResource("55_j86ly")]([SubResource("Resource_uslvo")]) Events = [SubResource("Resource_uslvo")]
[node name="WallEmitter" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("113_dferh")] [node name="WallEmitter" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("113_dferh")]
position = Vector2(-1480, 451) position = Vector2(-1480, 451)

View file

@ -12,6 +12,8 @@ public partial class PlayerStateMachine : StateMachineBase<PlayerState, Characte
[Export] public ActorResourceProvider MotivationResource { get; private set; } [Export] public ActorResourceProvider MotivationResource { get; private set; }
[Export] public ActorResourceProvider Shield { get; private set; }
public void RefillHealth() public void RefillHealth()
{ {
GD.Print("Refilling health"); GD.Print("Refilling health");

View file

@ -20,6 +20,7 @@ public partial class WeaponResource : Resource
//[Export] public PackedScene DestructionParticlesScene { get; set; } //[Export] public PackedScene DestructionParticlesScene { get; set; }
[Export] public int Priority { get; set; } = 0; [Export] public int Priority { get; set; } = 0;
[Export] public int AmmoPerShot { get; set; } = 1;
[Export] public double RateOfFire = 0.4f; [Export] public double RateOfFire = 0.4f;

View file

@ -50,6 +50,9 @@ public partial class Weapon : Node2D
private GameManager _gameManager; private GameManager _gameManager;
private InventoryManager _inventoryManager; private InventoryManager _inventoryManager;
private readonly StringName _shieldAmmoType = "SHIELD";
private bool UsesBattery => WeaponData.AmmoKey == _shieldAmmoType;
// Called when the node enters the scene tree for the first time. // Called when the node enters the scene tree for the first time.
public override void _Ready() public override void _Ready()
@ -79,8 +82,7 @@ public partial class Weapon : Node2D
} }
else else
{ {
// if (_inventoryManager.GetItemCount(WeaponData.AmmoKey) <= 0) return; var ammoToLoad = _inventoryManager.RemoveItem(WeaponData.AmmoKey, WeaponData.BulletCapacity - LoadedAmmo);
var ammoToLoad = _inventoryManager.RemoveItem(WeaponData.AmmoKey, WeaponData.BulletCapacity);
if (ammoToLoad > 0) if (ammoToLoad > 0)
{ {
@ -102,8 +104,21 @@ public partial class Weapon : Node2D
return; return;
} }
// Check for battery if it's used
if (UsesBattery)
{
if (GameManager.Instance.Player.Shield.CurrentResource >= WeaponData.AmmoPerShot)
{
GameManager.Instance.Player.Shield.CurrentResource -= WeaponData.AmmoPerShot;
}
else
{
return;
}
}
// Out of ammo? // Out of ammo?
if (LoadedAmmo <= 0) if (LoadedAmmo < WeaponData.AmmoPerShot)
{ {
if (WeaponData.AutoReload) if (WeaponData.AutoReload)
{ {
@ -160,7 +175,11 @@ public partial class Weapon : Node2D
bullet.Speed = WeaponData.BulletData.BulletSpeed; bullet.Speed = WeaponData.BulletData.BulletSpeed;
} }
LoadedAmmo -= 1; if (!UsesBattery)
{
LoadedAmmo -= WeaponData.AmmoPerShot;
}
//_inventoryManager.NotifyLoadedAmmoChange(WeaponData.ItemKey, LoadedAmmo); //_inventoryManager.NotifyLoadedAmmoChange(WeaponData.ItemKey, LoadedAmmo);
// if (!string.IsNullOrWhiteSpace(WeaponData?.AmmoKey)) // if (!string.IsNullOrWhiteSpace(WeaponData?.AmmoKey))
// { // {

BIN
Sprites/Items/LaserWeapon.aseprite (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Sprites/Items/LaserWeapon.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d04hnwyg3sqlu"
path="res://.godot/imported/LaserWeapon.png-e292e12aa34e57d3d32457a4c9af747e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Sprites/Items/LaserWeapon.png"
dest_files=["res://.godot/imported/LaserWeapon.png-e292e12aa34e57d3d32457a4c9af747e.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