diff --git a/graphics/hud/speccy/break_the_glass.png b/graphics/hud/speccy/break_the_glass.png new file mode 100644 index 0000000..91b6e49 Binary files /dev/null and b/graphics/hud/speccy/break_the_glass.png differ diff --git a/graphics/hud/speccy/break_the_glass.png.import b/graphics/hud/speccy/break_the_glass.png.import new file mode 100644 index 0000000..e130b48 --- /dev/null +++ b/graphics/hud/speccy/break_the_glass.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/break_the_glass.png-322e406de2ce417c6947e7c51513424a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/break_the_glass.png" +dest_files=[ "res://.import/break_the_glass.png-322e406de2ce417c6947e7c51513424a.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/graphics/hud/speccy/go_get_em.png b/graphics/hud/speccy/go_get_em.png new file mode 100644 index 0000000..a258c9b Binary files /dev/null and b/graphics/hud/speccy/go_get_em.png differ diff --git a/graphics/hud/speccy/go_get_em.png.import b/graphics/hud/speccy/go_get_em.png.import new file mode 100644 index 0000000..f6a343a --- /dev/null +++ b/graphics/hud/speccy/go_get_em.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/go_get_em.png-80076e7e728e92f49b471d7986a620fe.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/go_get_em.png" +dest_files=[ "res://.import/go_get_em.png-80076e7e728e92f49b471d7986a620fe.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/graphics/hud/speccy/kill_em_all.png b/graphics/hud/speccy/kill_em_all.png new file mode 100644 index 0000000..2b12863 Binary files /dev/null and b/graphics/hud/speccy/kill_em_all.png differ diff --git a/graphics/hud/speccy/kill_em_all.png.import b/graphics/hud/speccy/kill_em_all.png.import new file mode 100644 index 0000000..ecf5766 --- /dev/null +++ b/graphics/hud/speccy/kill_em_all.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/kill_em_all.png-043b29a5fc7f16177492c344511e8a3a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/kill_em_all.png" +dest_files=[ "res://.import/kill_em_all.png-043b29a5fc7f16177492c344511e8a3a.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/graphics/hud/speccy/oi_go_right.png b/graphics/hud/speccy/oi_go_right.png new file mode 100644 index 0000000..dcde1da Binary files /dev/null and b/graphics/hud/speccy/oi_go_right.png differ diff --git a/graphics/hud/speccy/oi_go_right.png.import b/graphics/hud/speccy/oi_go_right.png.import new file mode 100644 index 0000000..bf4083e --- /dev/null +++ b/graphics/hud/speccy/oi_go_right.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/oi_go_right.png-23a20f2a0d8cb4ec57588e4ae39867a8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/oi_go_right.png" +dest_files=[ "res://.import/oi_go_right.png-23a20f2a0d8cb4ec57588e4ae39867a8.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/graphics/hud/speccy/over_here.png b/graphics/hud/speccy/over_here.png new file mode 100644 index 0000000..af337fd Binary files /dev/null and b/graphics/hud/speccy/over_here.png differ diff --git a/graphics/hud/speccy/over_here.png.import b/graphics/hud/speccy/over_here.png.import new file mode 100644 index 0000000..48a4d32 --- /dev/null +++ b/graphics/hud/speccy/over_here.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/over_here.png-aea3855eafdcaa5c5f0a21f9ac1c64a0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/over_here.png" +dest_files=[ "res://.import/over_here.png-aea3855eafdcaa5c5f0a21f9ac1c64a0.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/graphics/hud/speccy/shoot_that_thing.png b/graphics/hud/speccy/shoot_that_thing.png new file mode 100644 index 0000000..284ea08 Binary files /dev/null and b/graphics/hud/speccy/shoot_that_thing.png differ diff --git a/graphics/hud/speccy/shoot_that_thing.png.import b/graphics/hud/speccy/shoot_that_thing.png.import new file mode 100644 index 0000000..5347456 --- /dev/null +++ b/graphics/hud/speccy/shoot_that_thing.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/shoot_that_thing.png-967594bf022da78bfe418a0ac5073eda.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/shoot_that_thing.png" +dest_files=[ "res://.import/shoot_that_thing.png-967594bf022da78bfe418a0ac5073eda.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/graphics/hud/speccy/shoot_the_eye.png b/graphics/hud/speccy/shoot_the_eye.png new file mode 100644 index 0000000..712c2ce Binary files /dev/null and b/graphics/hud/speccy/shoot_the_eye.png differ diff --git a/graphics/hud/speccy/shoot_the_eye.png.import b/graphics/hud/speccy/shoot_the_eye.png.import new file mode 100644 index 0000000..66c1332 --- /dev/null +++ b/graphics/hud/speccy/shoot_the_eye.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/shoot_the_eye.png-483a88ff92e95a40ee9cfc88aa6084cb.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/speccy/shoot_the_eye.png" +dest_files=[ "res://.import/shoot_the_eye.png-483a88ff92e95a40ee9cfc88aa6084cb.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/graphics/npc/speccy_talk.png b/graphics/npc/speccy_talk.png new file mode 100644 index 0000000..c269c25 Binary files /dev/null and b/graphics/npc/speccy_talk.png differ diff --git a/graphics/npc/speccy_talk.png.import b/graphics/npc/speccy_talk.png.import new file mode 100644 index 0000000..a62b071 --- /dev/null +++ b/graphics/npc/speccy_talk.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/speccy_talk.png-0e5075eaf8cca73ab16668de5d45d342.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/npc/speccy_talk.png" +dest_files=[ "res://.import/speccy_talk.png-0e5075eaf8cca73ab16668de5d45d342.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/maps/test_room.tscn b/maps/test_room.tscn index dec673d..65b245c 100644 --- a/maps/test_room.tscn +++ b/maps/test_room.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=32 format=2] +[gd_scene load_steps=33 format=2] [ext_resource path="res://tilesets/t_death.tres" type="TileSet" id=1] +[ext_resource path="res://objects/npc/speccy.tscn" type="PackedScene" id=2] [ext_resource path="res://tilesets/t_mountain.tres" type="TileSet" id=3] [ext_resource path="res://objects/hud/hud.tscn" type="PackedScene" id=4] [ext_resource path="res://objects/enemy/roboturret.tscn" type="PackedScene" id=5] @@ -121,14 +122,12 @@ position = Vector2( 48, 120 ) [node name="AnimatedSprite" parent="RollingFiend" index="0"] visible = false -frame = 1 [node name="SawTest2" type="AnimatedSprite" parent="RollingFiend"] material = SubResource( 4 ) position = Vector2( 4, 4 ) z_index = -3 frames = SubResource( 5 ) -frame = 1 playing = true [node name="Steam" parent="." instance=ExtResource( 23 )] @@ -204,4 +203,7 @@ position = Vector2( 144, 24 ) [node name="FallingBlock" parent="." instance=ExtResource( 24 )] position = Vector2( 124, 96 ) +[node name="speccy" parent="." instance=ExtResource( 2 )] +position = Vector2( 82, 72 ) + [editable path="RollingFiend"] diff --git a/objects/npc/speccy.tscn b/objects/npc/speccy.tscn new file mode 100644 index 0000000..7575119 --- /dev/null +++ b/objects/npc/speccy.tscn @@ -0,0 +1,180 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://graphics/npc/speccy.png" type="Texture" id=1] +[ext_resource path="res://shaders/beam_cycle.gdshader" type="Shader" id=2] +[ext_resource path="res://graphics/enemy/boss/stg_2600/beam_gradient.png" type="Texture" id=3] +[ext_resource path="res://graphics/hud/speccy/over_here.png" type="Texture" id=4] +[ext_resource path="res://graphics/npc/speccy_talk.png" type="Texture" id=5] +[ext_resource path="res://graphics/npc/speccy_cool.png" type="Texture" id=6] + +[sub_resource type="ShaderMaterial" id=3] +shader = ExtResource( 2 ) +shader_param/cycle_speed = 4.0 +shader_param/gradient = ExtResource( 3 ) + +[sub_resource type="AtlasTexture" id=4] +atlas = ExtResource( 6 ) +region = Rect2( 72, 0, 24, 24 ) + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite/Overlay:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite2:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0.155205, 1 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 1 ] +} + +[sub_resource type="Animation" id=2] +resource_name = "fun" +length = 3.0 +step = 0.05 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:scale") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.5, 0.6, 2.4, 2.5, 2.6, 2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 1e-05, 1 ), Vector2( 0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( -0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( 0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( -0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( 1.25, 0.833 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1.25, 0.833 ), Vector2( 1e-05, 1 ), Vector2( -0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( 0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( -0.75, 1 ), Vector2( 1e-05, 1 ), Vector2( 0.75, 1 ), Vector2( 1e-05, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite/Overlay:modulate") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.5, 0.6, 2.4, 2.5, 3 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite2:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.8, 0.9, 1, 1.65, 1.75, 1.85 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 1e-05, 1e-05 ), Vector2( 1.0418, 1 ), Vector2( 1, 0.96 ), Vector2( 1, 0.96 ), Vector2( 1.0418, 1 ), Vector2( 1e-05, 1e-05 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:texture") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.75, 0.85, 0.95, 1.05, 1.15, 1.25, 1.4, 2 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ ExtResource( 1 ), ExtResource( 1 ), ExtResource( 5 ), ExtResource( 1 ), ExtResource( 5 ), ExtResource( 1 ), ExtResource( 5 ), ExtResource( 1 ), ExtResource( 6 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:hframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ 1, 4 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:frame") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 2, 2.05, 2.1, 2.15 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 0, 1, 2, 3 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite/Overlay:texture") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 2.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ ExtResource( 1 ), SubResource( 4 ) ] +} + +[node name="speccy" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -12 ) +texture = ExtResource( 6 ) +offset = Vector2( -2, 0 ) +region_rect = Rect2( 1.015, 0, 0, 0 ) + +[node name="Overlay" type="Sprite" parent="Sprite"] +material = SubResource( 3 ) +texture = SubResource( 4 ) +region_rect = Rect2( 1.015, 0, 0, 0 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "fun" +anims/RESET = SubResource( 1 ) +anims/fun = SubResource( 2 ) + +[node name="Sprite2" type="Sprite" parent="."] +position = Vector2( 0, -24 ) +scale = Vector2( 0.155205, 1 ) +texture = ExtResource( 4 )