From d6bdcb151bbdebd48ed2b3c32497ddaa4edd38b9 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Thu, 1 May 2025 18:04:26 +0200 Subject: [PATCH] Add fire effect component to enemies and update game manager with initial coin count --- objects/enemy.tscn | 11 +++++-- objects/fire_fx.tscn | 33 +++++++++++++++++++++ scripts/components/fire_effect_component.gd | 5 ++++ scripts/game_manager.gd | 2 +- 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 objects/fire_fx.tscn diff --git a/objects/enemy.tscn b/objects/enemy.tscn index cc8c57f..b985ed0 100644 --- a/objects/enemy.tscn +++ b/objects/enemy.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=3 uid="uid://bwdlmualj6xbw"] +[gd_scene load_steps=19 format=3 uid="uid://bwdlmualj6xbw"] [ext_resource type="Shader" uid="uid://bs4xvm4qkurpr" path="res://shaders/hit_flash.tres" id="1_ep4yr"] [ext_resource type="Texture2D" uid="uid://cu72810eyk4dx" path="res://sprites/enemy-robot.png" id="2_hjtwe"] @@ -14,6 +14,7 @@ [ext_resource type="Script" path="res://scripts/components/ice_effect_component.gd" id="11_pq0k7"] [ext_resource type="AudioStream" uid="uid://b3tsqhr06pbrs" path="res://sfx/enemy_hurt.wav" id="13_u4k3d"] [ext_resource type="AudioStream" uid="uid://dyev46uqusimi" path="res://sfx/shoot.wav" id="14_tdjks"] +[ext_resource type="PackedScene" uid="uid://dx80ivlvuuew4" path="res://objects/fire_fx.tscn" id="15_mc6rj"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_pwwji"] size = Vector2(25, 31) @@ -115,11 +116,12 @@ health_component = NodePath("../HealthComponent") [node name="StatusEffectComponent" type="Node" parent="."] script = ExtResource("10_5i27q") -[node name="FireEffectComponent" type="Node" parent="." node_paths=PackedStringArray("health_component", "status_effect_component", "root")] +[node name="FireEffectComponent" type="Node" parent="." node_paths=PackedStringArray("health_component", "status_effect_component", "root", "fire_fx")] script = ExtResource("10_ej8vg") health_component = NodePath("../HealthComponent") status_effect_component = NodePath("../StatusEffectComponent") root = NodePath("..") +fire_fx = NodePath("../FireFX") [node name="IceEffectComponent" type="Node" parent="." node_paths=PackedStringArray("status_effect_component")] script = ExtResource("11_pq0k7") @@ -131,3 +133,8 @@ stream = ExtResource("13_u4k3d") [node name="sfx_shoot" type="AudioStreamPlayer2D" parent="."] stream = ExtResource("14_tdjks") + +[node name="FireFX" parent="." instance=ExtResource("15_mc6rj")] +position = Vector2(0, 9) +emitting = false +amount = 2048 diff --git a/objects/fire_fx.tscn b/objects/fire_fx.tscn new file mode 100644 index 0000000..639932b --- /dev/null +++ b/objects/fire_fx.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=6 format=3 uid="uid://dx80ivlvuuew4"] + +[sub_resource type="Gradient" id="Gradient_5woy1"] +offsets = PackedFloat32Array(0, 0.173759, 0.521277, 0.687943, 0.886525, 1) +colors = PackedColorArray(0.635294, 0.188235, 0, 1, 0.890196, 0.317647, 0, 1, 1, 0.470588, 0.188235, 1, 1, 0.635294, 0, 1, 1, 0.858824, 0.635294, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_mar4t"] +gradient = SubResource("Gradient_5woy1") + +[sub_resource type="Curve" id="Curve_xeno3"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.5), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_igm87"] +curve = SubResource("Curve_xeno3") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_dq33o"] +lifetime_randomness = 0.25 +particle_flag_disable_z = true +emission_shape = 1 +emission_sphere_radius = 8.0 +angle_min = -70.0 +angle_max = -40.0 +spread = 0.0 +gravity = Vector3(0, -100, 0) +scale_curve = SubResource("CurveTexture_igm87") +color_ramp = SubResource("GradientTexture1D_mar4t") + +[node name="FireFX" type="GPUParticles2D"] +amount = 512 +process_material = SubResource("ParticleProcessMaterial_dq33o") +lifetime = 0.5 +fixed_fps = 24 diff --git a/scripts/components/fire_effect_component.gd b/scripts/components/fire_effect_component.gd index bd60be3..0877b2c 100644 --- a/scripts/components/fire_effect_component.gd +++ b/scripts/components/fire_effect_component.gd @@ -4,6 +4,7 @@ extends Node @export var health_component: HealthComponent @export var status_effect_component: StatusEffectComponent @export var root: Node2D +@export var fire_fx: GPUParticles2D var data: StatusEffectDataResource = null var should_deal_damage: bool = false @@ -41,9 +42,13 @@ func on_effect_applied(effect_data: StatusEffectDataResource) -> void: if effect_data.effect_type == StatusEffectComponent.EffectType.FIRE: data = effect_data should_deal_damage = true + if fire_fx: + fire_fx.emitting = true func on_effect_removed(effect_type: StatusEffectComponent.EffectType) -> void: if effect_type == StatusEffectComponent.EffectType.FIRE: data = null should_deal_damage = false + if fire_fx: + fire_fx.emitting = false diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd index 89b978d..be47f33 100644 --- a/scripts/game_manager.gd +++ b/scripts/game_manager.gd @@ -2,7 +2,7 @@ class_name GM extends Node var player_state = { - "coins": 0, + "coins": 1000, "lives": 3, "unlocked_skills": [], }