diff --git a/src/Effects/Fire/fire-particle.png b/src/Effects/Fire/fire-particle.png new file mode 100644 index 0000000..2ed8e08 Binary files /dev/null and b/src/Effects/Fire/fire-particle.png differ diff --git a/src/Effects/Fire/fire-particle.png.import b/src/Effects/Fire/fire-particle.png.import new file mode 100644 index 0000000..86e1830 --- /dev/null +++ b/src/Effects/Fire/fire-particle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/fire-particle.png-542cf206ab06c7c5fa130fcfeee388bd.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Effects/Fire/fire-particle.png" +dest_files=[ "res://.import/fire-particle.png-542cf206ab06c7c5fa130fcfeee388bd.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Effects/Heal/HealEffect.tscn b/src/Effects/Heal/HealEffect.tscn new file mode 100644 index 0000000..a5e9a51 --- /dev/null +++ b/src/Effects/Heal/HealEffect.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://Effects/Heal/heal_particle.png" type="Texture" id=1] + +[sub_resource type="ParticlesMaterial" id=1] +emission_shape = 1 +emission_sphere_radius = 5.0 +flag_disable_z = true +gravity = Vector3( 0, -5, 0 ) +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +scale = 0.25 + +[node name="HealEffect" type="Particles2D"] +amount = 10 +lifetime = 2.0 +process_material = SubResource( 1 ) +texture = ExtResource( 1 ) diff --git a/src/Effects/Heal/heal_particle.png b/src/Effects/Heal/heal_particle.png new file mode 100644 index 0000000..658209e Binary files /dev/null and b/src/Effects/Heal/heal_particle.png differ diff --git a/src/Effects/Heal/heal_particle.png.import b/src/Effects/Heal/heal_particle.png.import new file mode 100644 index 0000000..c557870 --- /dev/null +++ b/src/Effects/Heal/heal_particle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/heal_particle.png-e55ff56a89193d8400c827d550e9f7e4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Effects/Heal/heal_particle.png" +dest_files=[ "res://.import/heal_particle.png-e55ff56a89193d8400c827d550e9f7e4.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Player/Player.gd b/src/Player/Player.gd index 70031c6..3c0d7c1 100644 --- a/src/Player/Player.gd +++ b/src/Player/Player.gd @@ -17,6 +17,8 @@ onready var animation_player := $AnimationPlayer onready var animation_tree := $AnimationTree onready var animation_state = animation_tree.get("parameters/playback") +export(String, FILE, "*.tscn,*.scn") var title_scene = "" + enum moveState{ MOVE, ROLL, @@ -26,6 +28,7 @@ enum moveState{ var movementState = moveState.MOVE var damage_per_second := 0.0 +var heal_per_second := 0.0 var totaldamage := 0.0 var currency := 0 @@ -36,7 +39,7 @@ func _debug_update(): func _physics_process(delta): - totaldamage+=damage_per_second*delta + totaldamage+=(damage_per_second - heal_per_second)*delta player_stats.speed+=10*delta while(totaldamage>1): totaldamage-=1 @@ -53,6 +56,8 @@ func _physics_process(delta): moveState.HIT: movement_hit() + print(heal_per_second) + $"Effects/HealEffect".emitting = heal_per_second > 0.0 move() # IMPORTANT: If you are using move_and_slide don't multiply by delta @@ -105,18 +110,30 @@ func roll_finished(): func _on_Hurtbox_area_entered(area): player_stats.health-=area.damage - damage_per_second = damage_per_second + area.damage + + print("enter") + + if area.damage > 0: + damage_per_second += area.damage + else: + heal_per_second += abs(area.damage) func _on_Hurtbox_area_exited(area): - damage_per_second = damage_per_second - area.damage + + if area.damage > 0: + damage_per_second -= area.damage + else: + heal_per_second -= abs(area.damage) func _on_Stats_no_health(): queue_free() - get_tree().change_scene("res://Menus/TitleScreen/TitleScreen.tscn") + get_tree().change_scene(title_scene) func _on_Hitbox_area_entered(area): currency += area.currency_value player_stats.health = player_stats.health+area.health_value player_stats.speed -= area.slowdown_value + + diff --git a/src/Player/Player.tscn b/src/Player/Player.tscn index 5c33152..abbe6b1 100644 --- a/src/Player/Player.tscn +++ b/src/Player/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=56 format=2] +[gd_scene load_steps=57 format=2] [ext_resource path="res://Player/Player.gd" type="Script" id=1] [ext_resource path="res://Player/Player.png" type="Texture" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.tscn" type="PackedScene" id=4] [ext_resource path="res://Overlap/Stats/Stats.tscn" type="PackedScene" id=5] [ext_resource path="res://Fonts/Harmonic/Harmonic.ttf" type="DynamicFontData" id=6] +[ext_resource path="res://Effects/Heal/HealEffect.tscn" type="PackedScene" id=7] [sub_resource type="CapsuleShape2D" id=1] radius = 2.15976 @@ -619,6 +620,7 @@ font_data = ExtResource( 6 ) [node name="Player" type="KinematicBody2D"] script = ExtResource( 1 ) FRICTION = 270 +title_scene = "res://Menus/TitleScreen/TitleScreen.tscn" [node name="Sprite" type="Sprite" parent="."] position = Vector2( 0.273621, 3.88423 ) @@ -707,6 +709,12 @@ __meta__ = { [node name="Stats" parent="." instance=ExtResource( 5 )] max_health = 5 + +[node name="Effects" type="Node" parent="."] + +[node name="HealEffect" parent="Effects" instance=ExtResource( 7 )] +position = Vector2( 0, -3.24489 ) +emitting = false [connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] [connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"] [connection signal="area_exited" from="Hurtbox" to="." method="_on_Hurtbox_area_exited"]