From 3b1d2b4068081edf82914137e732f338696b6ae6 Mon Sep 17 00:00:00 2001 From: Hazel Snider Date: Fri, 20 Jan 2023 18:43:25 -0500 Subject: [PATCH] several bones to pick with skelarchers :) --- graphics/enemy/bone.png | Bin 0 -> 578 bytes graphics/enemy/bone.png.import | 35 +++++++++++++++++++++++++++++++ objects/enemy/bone_particle.tscn | 19 +++++++++++++++++ objects/enemy/skelarcher.gd | 24 +++++++++++++++------ 4 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 graphics/enemy/bone.png create mode 100644 graphics/enemy/bone.png.import create mode 100644 objects/enemy/bone_particle.tscn diff --git a/graphics/enemy/bone.png b/graphics/enemy/bone.png new file mode 100644 index 0000000000000000000000000000000000000000..769a5833b03fd7e0670ef3b1f369a9b1d5620c89 GIT binary patch literal 578 zcmV-I0=@l-P)EX>4Tx04R}tkv&MmP!xqvQ>7vm2ZM+>WT;MdQIWc76^c+H)C#RSn7s54nlvOS zE{=k0!NH%!s)LKOt`4q(Aov5~>f)s6A|>9J7Fxu3;qgAsyXWxUeSlCeGu`f*1$4u) zQi-^f$*xMFR|Ftp5HZXs%r@s_ISJqTx~FccyC~1{@B6d*w4BX=fJ8jYOv@qOAfDcI zOwRknA}cBy@j3ChMHeJ~C`;2NGugPSnXg|v~=Pr;)tdjlrLnO zta0Arte2~-bx;1naL!m+<~pqrB(R7j$dI6-iW16j5T)H9#YT$G<39dj&o7fpC07ZI z91EyGhvNCc|KRs*?fm3KGbtPgx?f!PV-yJO0*#vMejmGT;{*sk16M}dU#SDJPtt2` zEpi0(Zvz+CZB5++E_Z;TCsVN$PYTi!@_FF>jJ_!g4BP^}Yt6Z}&T;wxq-j>k8{ps& z7%Ncry3f0NI_LIpPiuZZAg6Nd7Ly+o00006VoOIv0674^0B$jQl==Vw010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=K&NK03Bc9vCaSh02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{000_EL_t&-(_>(uD)|5Z|9^BbCPJDhS3o%c0N-E)1I1eq Qb^rhX07*qoM6N<$g04L9l>h($ literal 0 HcmV?d00001 diff --git a/graphics/enemy/bone.png.import b/graphics/enemy/bone.png.import new file mode 100644 index 0000000..75284bb --- /dev/null +++ b/graphics/enemy/bone.png.import @@ -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 diff --git a/objects/enemy/bone_particle.tscn b/objects/enemy/bone_particle.tscn new file mode 100644 index 0000000..f42ccaa --- /dev/null +++ b/objects/enemy/bone_particle.tscn @@ -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 ) diff --git a/objects/enemy/skelarcher.gd b/objects/enemy/skelarcher.gd index 248f79a..48c961d 100644 --- a/objects/enemy/skelarcher.gd +++ b/objects/enemy/skelarcher.gd @@ -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