From 0cfe581493051a9b880350457a7f2589f99728ff Mon Sep 17 00:00:00 2001 From: pennyrigate Date: Fri, 12 Jul 2024 23:37:59 -0400 Subject: [PATCH] buncha bullshit --- graphics/backgrounds/fire.png | Bin 0 -> 7067 bytes graphics/backgrounds/fire.png.import | 35 +++++++++++++++ objects/enemy/death_particles_big.gd | 20 +++++++++ objects/enemy/death_particles_big.tscn | 30 +++++++++++++ objects/environment/blood/blood_spray_big.gd | 42 ++++++++++++++++++ .../environment/blood/blood_spray_big.tscn | 23 ++++++++++ objects/environment/test_fire/test_fire.tscn | 20 +++++++++ shaders/fire.gdshader | 5 +++ 8 files changed, 175 insertions(+) create mode 100644 graphics/backgrounds/fire.png create mode 100644 graphics/backgrounds/fire.png.import create mode 100644 objects/enemy/death_particles_big.gd create mode 100644 objects/enemy/death_particles_big.tscn create mode 100644 objects/environment/blood/blood_spray_big.gd create mode 100644 objects/environment/blood/blood_spray_big.tscn create mode 100644 objects/environment/test_fire/test_fire.tscn create mode 100644 shaders/fire.gdshader diff --git a/graphics/backgrounds/fire.png b/graphics/backgrounds/fire.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e70ce60985a72a845720830b70c07913263eea GIT binary patch literal 7067 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 void: + if autoplay: + emitting = true + yield(get_tree(), "idle_frame") + for i in spray_ammount: + var spray = BloodSpray.instance() + spray.global_position = global_position + spray.velocity = Vector2(randf() * spray_velocity, 0.0).rotated(randf() * (TAU / 45)) + get_parent().add_child(spray) diff --git a/objects/enemy/death_particles_big.tscn b/objects/enemy/death_particles_big.tscn new file mode 100644 index 0000000..035dc72 --- /dev/null +++ b/objects/enemy/death_particles_big.tscn @@ -0,0 +1,30 @@ +[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_big.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 ] + +[node name="DeathSplatter" type="CPUParticles2D"] +emitting = false +amount = 32 +lifetime = 0.3 +one_shot = true +explosiveness = 0.9 +local_coords = false +texture = ExtResource( 1 ) +emission_shape = 2 +emission_rect_extents = Vector2( 4, 4 ) +direction = Vector2( 0, -1 ) +spread = 180.0 +gravity = Vector2( 0, 50 ) +initial_velocity = 60.0 +initial_velocity_random = 0.9 +damping = 2.0 +angle = 720.0 +angle_random = 1.0 +scale_amount = 0.5 +scale_amount_random = 1.0 +scale_amount_curve = SubResource( 43 ) +script = ExtResource( 2 ) diff --git a/objects/environment/blood/blood_spray_big.gd b/objects/environment/blood/blood_spray_big.gd new file mode 100644 index 0000000..382c9d9 --- /dev/null +++ b/objects/environment/blood/blood_spray_big.gd @@ -0,0 +1,42 @@ +extends Area2D + + +const BloodStain := preload("res://objects/environment/blood/blood_stain.tscn") +const PlayerStain := preload("res://objects/player/player_stain.tscn") + + +export var color: Color +export var stains_player: bool = true + + +var velocity := Vector2.ZERO + + +onready var sprite: Sprite = $Sprite + + +func _ready() -> void: + sprite.self_modulate = color + + +func _physics_process(delta: float) -> void: + velocity.y += 98.0 * delta + position += velocity * delta + sprite.global_rotation = velocity.angle() + + +func _on_body_entered(body: Node) -> void: + if body.is_in_group("can_stain"): + var stain = BloodStain.instance() + stain.modulate = color + stain.global_position = global_position + StainLayer.add_stain(stain) + queue_free() + elif body is TileMap: + queue_free() + elif stains_player and body.is_in_group("player"): + var stain = PlayerStain.instance() + stain.color = color + body.get_node("Graphics/Sprite").add_child(stain) + stain.global_position = global_position + queue_free() diff --git a/objects/environment/blood/blood_spray_big.tscn b/objects/environment/blood/blood_spray_big.tscn new file mode 100644 index 0000000..26d0e21 --- /dev/null +++ b/objects/environment/blood/blood_spray_big.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://graphics/particles/famira_blood.png" type="Texture" id=1] +[ext_resource path="res://objects/environment/blood/blood_spray_big.gd" type="Script" id=2] + +[sub_resource type="CircleShape2D" id=1] +radius = 0.5 + +[node name="BloodSpray" type="Area2D"] +collision_mask = 129 +script = ExtResource( 2 ) +color = Color( 0.701961, 0.745098, 0.4, 1 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 0.75, 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"] diff --git a/objects/environment/test_fire/test_fire.tscn b/objects/environment/test_fire/test_fire.tscn new file mode 100644 index 0000000..ae6b1b0 --- /dev/null +++ b/objects/environment/test_fire/test_fire.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://graphics/backgrounds/fire.png" type="Texture" id=1] +[ext_resource path="res://shaders/fire.gdshader" type="Shader" id=2] + +[sub_resource type="ShaderMaterial" id=1] +shader = ExtResource( 2 ) + +[node name="Node2D" type="Node2D"] + +[node name="ColorRect" type="ColorRect" parent="."] +margin_right = 256.0 +margin_bottom = 192.0 +color = Color( 0, 0, 0, 1 ) + +[node name="Fire" type="Sprite" parent="."] +material = SubResource( 1 ) +position = Vector2( 144, 96 ) +scale = Vector2( 2.02667, 1 ) +texture = ExtResource( 1 ) diff --git a/shaders/fire.gdshader b/shaders/fire.gdshader new file mode 100644 index 0000000..35c2f5f --- /dev/null +++ b/shaders/fire.gdshader @@ -0,0 +1,5 @@ +shader_type canvas_item; + +void fragment() { + COLOR = texture(TEXTURE, vec2(UV.x + sin(TIME / 2.5 + UV.y*6.0)/30.0,UV.y)); +} \ No newline at end of file