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

BIN
graphics/enemy/bone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/bone.png-2137b92417f1b30af907afa9deaf8132.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/enemy/bone.png"
dest_files=[ "res://.import/bone.png-2137b92417f1b30af907afa9deaf8132.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
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

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" 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 shoot_time = 1.0
export var arrow_speed = 120.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 timer = $Timer
onready var anims = $AnimationPlayer onready var anims = $AnimationPlayer
onready var sprite = $Sprite onready var sprite = $Sprite
const ArrowProjectile = preload("res://objects/player/arrow_projectile.tscn")
const arrowpos = Vector2(4,4)
func _ready(): func _ready():
timer.start(shoot_time) timer.start(shoot_time)
func _process(delta):
Debug.print(Game.get_map())
func _on_Timer_timeout(): func _on_Timer_timeout():
anims.play("shoot") anims.play("shoot")
@ -30,3 +31,14 @@ func spawn_arrow():
arrow.speed = arrow_speed arrow.speed = arrow_speed
Game.get_map().add_child(arrow) Game.get_map().add_child(arrow)
timer.start(shoot_time) 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