What's that smell?

This commit is contained in:
Haze Weathers 2023-09-10 23:26:21 -04:00
parent dde551db56
commit 8c818ac174
16 changed files with 99 additions and 2 deletions

View file

@ -0,0 +1,16 @@
extends CPUParticles2D
const BloodSpray := preload("res://objects/environment/blood/blood_spray.tscn")
export var spray_ammount: int = 16
export var spray_velocity: float = 80
func _ready() -> void:
for i in spray_ammount:
var spray: RigidBody2D = BloodSpray.instance()
spray.global_position = global_position
spray.linear_velocity = Vector2(spray_velocity, 0.0).rotated(randf() * TAU)
get_parent().add_child(spray)

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://graphics/particles/blood.png" type="Texture" id=1]
[ext_resource path="res://objects/enemy/death_particles.gd" type="Script" id=2]
[sub_resource type="Curve" id=43]
_data = [ Vector2( 0, 1 ), 0.0, -0.113537, 0, 0, Vector2( 1, 0 ), -3.35032, 0.0, 0, 0 ]
@ -26,3 +27,4 @@ angle_random = 1.0
scale_amount = 0.5
scale_amount_random = 1.0
scale_amount_curve = SubResource( 43 )
script = ExtResource( 2 )

View file

@ -0,0 +1,5 @@
extends Light2D
func _ready() -> void:
rotation = randf() * TAU

View file

@ -0,0 +1,12 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://graphics/particles/blood.png" type="Texture" id=1]
[ext_resource path="res://objects/environment/blood/blood_splatter.gd" type="Script" id=2]
[node name="Splatter" type="Light2D"]
texture = ExtResource( 1 )
color = Color( 0.960784, 0.2, 0.258824, 1 )
energy = 4.0
mode = 2
range_item_cull_mask = 3
script = ExtResource( 2 )

View file

@ -0,0 +1,19 @@
extends RigidBody2D
const BloodSplatter := preload("res://objects/environment/blood/blood_splatter.tscn")
onready var sprite: Sprite = $Sprite
func _physics_process(delta: float) -> void:
sprite.global_rotation = linear_velocity.angle()
func _on_body_entered(body: Node) -> void:
if body is TileMap:
var splatter = BloodSplatter.instance()
splatter.global_position = global_position
get_parent().add_child(splatter)
queue_free()

View file

@ -0,0 +1,24 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://graphics/particles/muzzle_flash.png" type="Texture" id=1]
[ext_resource path="res://objects/environment/blood/blood_spray.gd" type="Script" id=3]
[sub_resource type="CircleShape2D" id=1]
radius = 1.0
[node name="BloodSpray" type="RigidBody2D"]
contacts_reported = 4
contact_monitor = true
script = ExtResource( 3 )
[node name="Sprite" type="Sprite" parent="."]
modulate = Color( 0.960784, 0.2, 0.258824, 1 )
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 1 )
offset = Vector2( 2, 0 )
flip_h = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View file

@ -6,6 +6,7 @@ signal died()
# CONSTANTS #
const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn")
const DeathSplatter = preload("res://objects/player/player_death_particles.tscn")
const BloodSpray := preload("res://objects/environment/blood/blood_spray.tscn")
# EXPORTS #
## whether to be temporarily invulnerable after respawning
@ -275,6 +276,11 @@ func _on_Dead_state_entered() -> void:
particles.global_position = death_splatter_position.global_position
particles.emitting = true
get_parent().add_child(particles)
for i in 32:
var spray: RigidBody2D = BloodSpray.instance()
spray.global_position = global_position
spray.linear_velocity = Vector2(80.0, 0.0).rotated(randf() * TAU)
get_parent().add_child(spray)
else:
skip_blood = false
# fade into the ether

View file

@ -1566,8 +1566,8 @@ align = 1
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/NormalFalling" to="." method="_on_NormalFalling_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/Falling/NormalFalling" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/Falling/ScaredFalling" to="." method="_on_ScaredFalling_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_on_DoubleJump_state_entered"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="reset_fall_speed"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_on_DoubleJump_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/DoubleJump" to="." method="_process_horizontal_movement"]
[connection signal="state_entered" from="StateChart/Root/Movement/Airborne/AirShooting" to="." method="_on_AirShooting_state_entered"]
[connection signal="state_physics_processing" from="StateChart/Root/Movement/Airborne/AirShooting" to="." method="_process_horizontal_movement"]