several bones to pick with skelarchers :)

This commit is contained in:
Haze Weathers 2023-01-20 18:43:25 -05:00
parent e4b7dd435c
commit 3b1d2b4068
4 changed files with 72 additions and 6 deletions

View file

@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://graphics/enemy/bone.png" type="Texture" id=1]
[sub_resource type="PhysicsMaterial" id=2]
bounce = 0.75
[sub_resource type="SegmentShape2D" id=1]
a = Vector2( 0, -2 )
b = Vector2( 0, 2 )
[node name="BoneParticle" type="RigidBody2D"]
physics_material_override = SubResource( 2 )
[node name="Sprite" type="Sprite" parent="."]
texture = ExtResource( 1 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource( 1 )

View file

@ -1,21 +1,22 @@
extends "res://objects/enemy/enemy.gd"
const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn")
const BoneParticle = preload("res://objects/enemy/bone_particle.tscn")
const arrowpos = Vector2(4,4)
export var shoot_time = 1.0
export var arrow_speed = 120.0
# bone death particles
export var bones_amount = 12
export var bones_speed = 50.0
onready var timer = $Timer
onready var anims = $AnimationPlayer
onready var sprite = $Sprite
const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn")
const arrowpos = Vector2(4,4)
func _ready():
timer.start(shoot_time)
func _process(delta):
Debug.print(Game.get_map())
func _on_Timer_timeout():
anims.play("shoot")
@ -30,3 +31,14 @@ func spawn_arrow():
arrow.speed = arrow_speed
Game.get_map().add_child(arrow)
timer.start(shoot_time)
func die():
for n in bones_amount:
var bone = BoneParticle.instance()
bone.rotation = rand_range(0.0, 2.0*PI) # random rotation
bone.global_position = global_position
bone.linear_velocity = Vector2(bones_speed, 0.0).rotated(rand_range(-PI, 0.0))
var timer = get_tree().create_timer(3.0 + rand_range(0.0, 1.0), false)
timer.connect("timeout", bone, "queue_free")
get_parent().add_child(bone)
.die() # call rest of enemy.gd die() funciton