STG-2600 redraw
Before Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 694 B |
Before Width: | Height: | Size: 685 B |
|
@ -1,35 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="StreamTexture"
|
|
||||||
path="res://.import/stg2600_head_cracked.png-ce070313d82d80420ae671eda2d5fa7b.stex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://graphics/enemy/boss/stg2600_head_cracked.png"
|
|
||||||
dest_files=[ "res://.import/stg2600_head_cracked.png-ce070313d82d80420ae671eda2d5fa7b.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
|
|
Before Width: | Height: | Size: 730 B |
Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 227 B |
35
graphics/enemy/boss/stg_2600/beam.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/beam.png-a6465ac769ebb2c528af0b787f682930.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/enemy/boss/stg_2600/beam.png"
|
||||||
|
dest_files=[ "res://.import/beam.png-a6465ac769ebb2c528af0b787f682930.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=1
|
||||||
|
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
|
BIN
graphics/enemy/boss/stg_2600/beam_gradient.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
35
graphics/enemy/boss/stg_2600/beam_gradient.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/beam_gradient.png-1b75c5d23d16832372548a1c5c3edb0d.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/enemy/boss/stg_2600/beam_gradient.png"
|
||||||
|
dest_files=[ "res://.import/beam_gradient.png-1b75c5d23d16832372548a1c5c3edb0d.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=1
|
||||||
|
flags/filter=true
|
||||||
|
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
|
BIN
graphics/enemy/boss/stg_2600/bold_large.xcf
Normal file
BIN
graphics/enemy/boss/stg_2600/bolt_large.png
Normal file
After Width: | Height: | Size: 846 B |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/stg2600_beam.png-fb234b289a938ec2639514f944c5940f.stex"
|
path="res://.import/bolt_large.png-87121a52143bd846fbb123b3634228b7.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://graphics/enemy/boss/stg2600_beam.png"
|
source_file="res://graphics/enemy/boss/stg_2600/bolt_large.png"
|
||||||
dest_files=[ "res://.import/stg2600_beam.png-fb234b289a938ec2639514f944c5940f.stex" ]
|
dest_files=[ "res://.import/bolt_large.png-87121a52143bd846fbb123b3634228b7.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
graphics/enemy/boss/stg_2600/bolt_large.xcf
Normal file
BIN
graphics/enemy/boss/stg_2600/bolt_medium.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/stg2600_head.png-7f6eac4b8ce6ce153476551d67bc94ab.stex"
|
path="res://.import/bolt_medium.png-c18f34f796165752e94c6e28216b7e6e.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://graphics/enemy/boss/stg2600_head.png"
|
source_file="res://graphics/enemy/boss/stg_2600/bolt_medium.png"
|
||||||
dest_files=[ "res://.import/stg2600_head.png-7f6eac4b8ce6ce153476551d67bc94ab.stex" ]
|
dest_files=[ "res://.import/bolt_medium.png-c18f34f796165752e94c6e28216b7e6e.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
graphics/enemy/boss/stg_2600/bolt_medium.xcf
Normal file
BIN
graphics/enemy/boss/stg_2600/bolt_small.xcf
Normal file
BIN
graphics/enemy/boss/stg_2600/foot.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/stg2600_leg.png-108ef670d4bc684a89af85dbd1afa5b5.stex"
|
path="res://.import/foot.png-49e7bfc3417af16c0f1c825106e6cf3a.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://graphics/enemy/boss/stg2600_leg.png"
|
source_file="res://graphics/enemy/boss/stg_2600/foot.png"
|
||||||
dest_files=[ "res://.import/stg2600_leg.png-108ef670d4bc684a89af85dbd1afa5b5.stex" ]
|
dest_files=[ "res://.import/foot.png-49e7bfc3417af16c0f1c825106e6cf3a.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
graphics/enemy/boss/stg_2600/foot.xcf
Normal file
BIN
graphics/enemy/boss/stg_2600/head_broken.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/stg2600_head_broken.png-f11802992dc57b057ed8315e0bcb6027.stex"
|
path="res://.import/head_broken.png-cf8f0c7e5f516f4b2efbd5ac2fee134c.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://graphics/enemy/boss/stg2600_head_broken.png"
|
source_file="res://graphics/enemy/boss/stg_2600/head_broken.png"
|
||||||
dest_files=[ "res://.import/stg2600_head_broken.png-f11802992dc57b057ed8315e0bcb6027.stex" ]
|
dest_files=[ "res://.import/head_broken.png-cf8f0c7e5f516f4b2efbd5ac2fee134c.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
graphics/enemy/boss/stg_2600/head_cracked.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
35
graphics/enemy/boss/stg_2600/head_cracked.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/head_cracked.png-6dfa8a34ba8a3e28ec67d923de7dda93.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/enemy/boss/stg_2600/head_cracked.png"
|
||||||
|
dest_files=[ "res://.import/head_cracked.png-6dfa8a34ba8a3e28ec67d923de7dda93.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
|
BIN
graphics/enemy/boss/stg_2600/head_intact.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
35
graphics/enemy/boss/stg_2600/head_intact.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/head_intact.png-54b42888eb160863193673b5bc2d22d5.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/enemy/boss/stg_2600/head_intact.png"
|
||||||
|
dest_files=[ "res://.import/head_intact.png-54b42888eb160863193673b5bc2d22d5.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
|
BIN
graphics/enemy/boss/stg_2600/leg.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
35
graphics/enemy/boss/stg_2600/leg.png.import
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/leg.png-e82a4080bfae744da299fb320083a254.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/enemy/boss/stg_2600/leg.png"
|
||||||
|
dest_files=[ "res://.import/leg.png-e82a4080bfae744da299fb320083a254.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=1
|
||||||
|
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
|
BIN
graphics/enemy/boss/stg_2600/mech_body.xcf
Normal file
|
@ -31,7 +31,6 @@ script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
[node name="AnimatedSprite" type="AnimatedSprite" parent="."]
|
||||||
frames = SubResource( 4 )
|
frames = SubResource( 4 )
|
||||||
frame = 1
|
|
||||||
playing = true
|
playing = true
|
||||||
|
|
||||||
[node name="Hitbox" type="Area2D" parent="." groups=["arrow"]]
|
[node name="Hitbox" type="Area2D" parent="." groups=["arrow"]]
|
||||||
|
|
|
@ -2,17 +2,18 @@ extends "res://objects/enemy/enemy.gd"
|
||||||
|
|
||||||
signal entered_phase(phase)
|
signal entered_phase(phase)
|
||||||
|
|
||||||
export var shot_speed = 50
|
const Bullet = preload("res://objects/enemy/2600_bullet.tscn")
|
||||||
|
|
||||||
|
export var shot_speed: float = 50
|
||||||
export var fire_rate: float = 1
|
export var fire_rate: float = 1
|
||||||
export var can_shoot = false
|
export var can_shoot: bool = false
|
||||||
|
|
||||||
var hp = 3
|
var hp: int = 3
|
||||||
|
|
||||||
onready var Bullet = preload("res://objects/enemy/2600_bullet.tscn")
|
onready var bullet_positions = $"%BulletPositions"
|
||||||
onready var positions = $Positions
|
|
||||||
onready var shoot_timer = $ShootTimer
|
onready var shoot_timer = $ShootTimer
|
||||||
onready var anims = $AnimationPlayer
|
onready var anims = $AnimationPlayer
|
||||||
onready var head_sprite = $Body/Head
|
onready var head_sprite = $"%Head"
|
||||||
|
|
||||||
|
|
||||||
func _on_ShootTimer_timeout():
|
func _on_ShootTimer_timeout():
|
||||||
|
@ -20,7 +21,7 @@ func _on_ShootTimer_timeout():
|
||||||
|
|
||||||
func shoot():
|
func shoot():
|
||||||
Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_boss)
|
Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_boss)
|
||||||
for pos in positions.get_children():
|
for pos in bullet_positions.get_children():
|
||||||
var bullet = Bullet.instance()
|
var bullet = Bullet.instance()
|
||||||
bullet.global_position = pos.global_position
|
bullet.global_position = pos.global_position
|
||||||
bullet.direction = Vector2.LEFT.rotated(pos.rotation)
|
bullet.direction = Vector2.LEFT.rotated(pos.rotation)
|
||||||
|
@ -40,15 +41,14 @@ func die():
|
||||||
anims.play("Beam")
|
anims.play("Beam")
|
||||||
match hp:
|
match hp:
|
||||||
2:
|
2:
|
||||||
Game.instance_node(load("res://objects/enemy/boss/collapse_blocks.tscn"),0,0,get_parent())
|
Game.instance_node(preload("res://objects/enemy/boss/collapse_blocks.tscn"),0,0,get_parent())
|
||||||
emit_signal("entered_phase", 2)
|
emit_signal("entered_phase", 2)
|
||||||
head_sprite.texture = load("res://graphics/enemy/boss/stg2600_head_cracked.png")
|
head_sprite.texture = preload("res://graphics/enemy/boss/stg_2600/head_cracked.png")
|
||||||
1:
|
1:
|
||||||
shot_speed = 70
|
shot_speed = 70
|
||||||
fire_rate = 0.8
|
fire_rate = 0.8
|
||||||
emit_signal("entered_phase", 3)
|
emit_signal("entered_phase", 3)
|
||||||
$Body/Head/Intelli.visible = true
|
head_sprite.texture = preload("res://graphics/enemy/boss/stg_2600/head_broken.png")
|
||||||
head_sprite.texture = load("res://graphics/enemy/boss/stg2600_head_broken.png")
|
|
||||||
0:
|
0:
|
||||||
queue_free()
|
queue_free()
|
||||||
emit_signal("entered_phase", 4)
|
emit_signal("entered_phase", 4)
|
||||||
|
|
|
@ -1,132 +1,61 @@
|
||||||
[gd_scene load_steps=13 format=2]
|
[gd_scene load_steps=21 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://objects/enemy/boss/2600.gd" type="Script" id=1]
|
[ext_resource path="res://objects/enemy/boss/2600.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://graphics/enemy/boss/stg2600_head.png" type="Texture" id=2]
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/beam.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://graphics/enemy/boss/stg2600_leg.png" type="Texture" id=3]
|
|
||||||
[ext_resource path="res://graphics/enemy/boss/stg2600_beam.png" type="Texture" id=4]
|
|
||||||
[ext_resource path="res://graphics/npc/intelli_idle.png" type="Texture" id=5]
|
[ext_resource path="res://graphics/npc/intelli_idle.png" type="Texture" id=5]
|
||||||
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/head_intact.png" type="Texture" id=6]
|
||||||
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/bolt_large.png" type="Texture" id=7]
|
||||||
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/bolt_medium.png" type="Texture" id=8]
|
||||||
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/leg.png" type="Texture" id=9]
|
||||||
|
[ext_resource path="res://scripts/sprite_ext.gd" type="Script" id=10]
|
||||||
|
[ext_resource path="res://shaders/scale3x.gdshader" type="Shader" id=11]
|
||||||
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/foot.png" type="Texture" id=12]
|
||||||
|
[ext_resource path="res://graphics/enemy/boss/stg_2600/beam_gradient.png" type="Texture" id=13]
|
||||||
|
[ext_resource path="res://shaders/beam_cycle.gdshader" type="Shader" id=14]
|
||||||
|
|
||||||
[sub_resource type="CanvasItemMaterial" id=7]
|
[sub_resource type="ShaderMaterial" id=10]
|
||||||
blend_mode = 1
|
shader = ExtResource( 14 )
|
||||||
|
shader_param/cycle_speed = 1.0
|
||||||
|
shader_param/gradient = ExtResource( 13 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=6]
|
[sub_resource type="RectangleShape2D" id=6]
|
||||||
extents = Vector2( 7.97672, 8 )
|
extents = Vector2( 128, 8 )
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id=8]
|
||||||
|
shader = ExtResource( 11 )
|
||||||
|
shader_param/pixel_scale = 1.0
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=1]
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
extents = Vector2( 28.5, 16 )
|
extents = Vector2( 20.5, 15.5 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=2]
|
[sub_resource type="RectangleShape2D" id=2]
|
||||||
extents = Vector2( 44, 16 )
|
extents = Vector2( 47, 16 )
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=3]
|
[sub_resource type="RectangleShape2D" id=3]
|
||||||
extents = Vector2( 38, 13 )
|
extents = Vector2( 23, 13 )
|
||||||
|
|
||||||
[sub_resource type="Animation" id=4]
|
[sub_resource type="Animation" id=4]
|
||||||
resource_name = "Beam"
|
resource_name = "Beam"
|
||||||
length = 8.0
|
length = 4.0
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath("Body/Head/Beam:modulate")
|
tracks/0/path = NodePath(".:can_shoot")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 0.1, 0.201388, 0.3, 0.4, 0.5, 0.6, 0.701388, 0.8, 0.9, 1, 1.1, 1.20139, 1.3, 1.4, 1.5, 1.6, 1.70139, 1.8, 1.9, 2, 2.1, 2.20139, 2.3, 2.4, 2.5, 2.59861, 2.69861, 2.79861, 2.89861, 3, 3.09861, 3.19861, 3.29861, 3.39861, 3.5, 3.59861, 3.69861, 3.79861, 3.89861, 4, 4.09861, 4.19861, 4.3, 4.39861, 4.49861, 4.59861, 4.69861, 4.8, 4.89861, 4.99861, 5.09861, 5.19861, 5.3, 5.39861, 5.49861, 5.59861, 5.69861, 5.8, 5.89861, 5.99861 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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": [ Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ), Color( 1, 0.423529, 0.4, 1 ), Color( 1, 0.894118, 0.4, 1 ), Color( 0.4, 1, 0.443137, 1 ), Color( 0.4, 0.52549, 1, 1 ), Color( 0.992157, 0.4, 1, 1 ) ]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
|
||||||
tracks/1/path = NodePath("Body/Head/Beam:visible")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PoolRealArray( 0, 1.3, 3.1 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ false, true, true ]
|
|
||||||
}
|
|
||||||
tracks/2/type = "value"
|
|
||||||
tracks/2/path = NodePath("Body/Head:rotation_degrees")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"times": PoolRealArray( 0, 1.3, 1.4, 3.1, 3.2, 3.5 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
|
||||||
"update": 0,
|
|
||||||
"values": [ 0.0, 15.0, 15.0, -15.0, -15.0, 0.0 ]
|
|
||||||
}
|
|
||||||
tracks/3/type = "value"
|
|
||||||
tracks/3/path = NodePath("Body/Head/Beam:scale")
|
|
||||||
tracks/3/interp = 1
|
|
||||||
tracks/3/loop_wrap = true
|
|
||||||
tracks/3/imported = false
|
|
||||||
tracks/3/enabled = true
|
|
||||||
tracks/3/keys = {
|
|
||||||
"times": PoolRealArray( 0, 1.3, 1.4, 3.1, 3.2 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
|
|
||||||
"update": 0,
|
|
||||||
"values": [ Vector2( 13.4376, 1 ), Vector2( 14, 0 ), Vector2( 14, 1 ), Vector2( 14, 1 ), Vector2( 14, 0 ) ]
|
|
||||||
}
|
|
||||||
tracks/4/type = "value"
|
|
||||||
tracks/4/path = NodePath("Body/Head/Beam:position")
|
|
||||||
tracks/4/interp = 1
|
|
||||||
tracks/4/loop_wrap = true
|
|
||||||
tracks/4/imported = false
|
|
||||||
tracks/4/enabled = true
|
|
||||||
tracks/4/keys = {
|
|
||||||
"times": PoolRealArray( 0, 3.1 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
|
||||||
"update": 0,
|
|
||||||
"values": [ Vector2( -70, -8 ), Vector2( -70, -8 ) ]
|
|
||||||
}
|
|
||||||
tracks/5/type = "value"
|
|
||||||
tracks/5/path = NodePath(".:can_shoot")
|
|
||||||
tracks/5/interp = 1
|
|
||||||
tracks/5/loop_wrap = true
|
|
||||||
tracks/5/imported = false
|
|
||||||
tracks/5/enabled = true
|
|
||||||
tracks/5/keys = {
|
|
||||||
"times": PoolRealArray( 0, 3.5 ),
|
"times": PoolRealArray( 0, 3.5 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [ false, true ]
|
"values": [ false, true ]
|
||||||
}
|
}
|
||||||
tracks/6/type = "value"
|
tracks/1/type = "method"
|
||||||
tracks/6/path = NodePath("AnimationPlayer:current_animation")
|
tracks/1/path = NodePath(".")
|
||||||
tracks/6/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/6/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/6/imported = false
|
tracks/1/imported = false
|
||||||
tracks/6/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/6/keys = {
|
tracks/1/keys = {
|
||||||
"times": PoolRealArray( 7.9 ),
|
|
||||||
"transitions": PoolRealArray( 1 ),
|
|
||||||
"update": 2,
|
|
||||||
"values": [ "RESET" ]
|
|
||||||
}
|
|
||||||
tracks/7/type = "value"
|
|
||||||
tracks/7/path = NodePath("Body/Head/Beam/Hitbox/CollisionShape2D:disabled")
|
|
||||||
tracks/7/interp = 1
|
|
||||||
tracks/7/loop_wrap = true
|
|
||||||
tracks/7/imported = false
|
|
||||||
tracks/7/enabled = true
|
|
||||||
tracks/7/keys = {
|
|
||||||
"times": PoolRealArray( 0, 1.3, 3.2 ),
|
|
||||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
|
||||||
"update": 1,
|
|
||||||
"values": [ true, false, true ]
|
|
||||||
}
|
|
||||||
tracks/8/type = "method"
|
|
||||||
tracks/8/path = NodePath(".")
|
|
||||||
tracks/8/interp = 1
|
|
||||||
tracks/8/loop_wrap = true
|
|
||||||
tracks/8/imported = false
|
|
||||||
tracks/8/enabled = true
|
|
||||||
tracks/8/keys = {
|
|
||||||
"times": PoolRealArray( 1.4, 3.2 ),
|
"times": PoolRealArray( 1.4, 3.2 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
"values": [ {
|
"values": [ {
|
||||||
|
@ -137,6 +66,54 @@ tracks/8/keys = {
|
||||||
"method": "_play_laser_sound"
|
"method": "_play_laser_sound"
|
||||||
} ]
|
} ]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("Axle/Head/Beam:scale")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3, 1.4, 3.1, 3.2 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 1, 1e-05 ), Vector2( 1, 1e-05 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1e-05 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("Axle/Head/InternalBeam:scale")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3, 3.1, 3.2 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 1e-05, 1 ), Vector2( 1, 1 ), Vector2( 1, 1 ), Vector2( 1, 1e-05 ) ]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.4, 3.2 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 1,
|
||||||
|
"values": [ true, false, true ]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/path = NodePath("Axle/Head:rotation_degrees")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3, 1.4, 3.1, 3.2, 3.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.0, 15.0, 15.0, -15.0, -15.0, 0.0 ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=5]
|
[sub_resource type="Animation" id=5]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
|
@ -152,94 +129,308 @@ tracks/0/keys = {
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [ true ]
|
"values": [ true ]
|
||||||
}
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath("Axle/Head/Beam:scale")
|
||||||
|
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": [ Vector2( 1, 1e-05 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("Axle/Head/InternalBeam: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( 1, 1 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("Axle/Head/Beam/Hitbox/BeamShape:disabled")
|
||||||
|
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": 0,
|
||||||
|
"values": [ true ]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/path = NodePath("Axle/Head:rotation_degrees")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ 0.0 ]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/path = NodePath("Axle/Head/Beam:visible")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ true ]
|
||||||
|
}
|
||||||
|
|
||||||
[node name="2600" type="Node2D"]
|
[node name="2600" type="Node2D"]
|
||||||
position = Vector2( 0, -16 )
|
position = Vector2( 0, -16 )
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
|
|
||||||
[node name="Body" type="Node2D" parent="."]
|
[node name="Axle" type="Node2D" parent="."]
|
||||||
position = Vector2( 1, 0 )
|
position = Vector2( 66, 78 )
|
||||||
|
|
||||||
[node name="LegR" type="Sprite" parent="Body"]
|
[node name="JointBack" type="Sprite" parent="Axle"]
|
||||||
position = Vector2( 44, 112 )
|
modulate = Color( 0.75, 0.75, 0.75, 1 )
|
||||||
texture = ExtResource( 3 )
|
position = Vector2( -10, -4 )
|
||||||
|
texture = ExtResource( 7 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true
|
||||||
|
}
|
||||||
|
|
||||||
[node name="Head" type="Sprite" parent="Body"]
|
[node name="LegBack" type="Sprite" parent="Axle/JointBack"]
|
||||||
position = Vector2( 73, 72 )
|
show_behind_parent = true
|
||||||
texture = ExtResource( 2 )
|
rotation = -0.436332
|
||||||
offset = Vector2( -23, -24 )
|
texture = ExtResource( 9 )
|
||||||
|
offset = Vector2( 0, 18 )
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2( 0, 0, 12, 36 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true,
|
||||||
|
"_edit_ik_": true
|
||||||
|
}
|
||||||
|
|
||||||
[node name="Beam" type="Sprite" parent="Body/Head"]
|
[node name="KneeBack" type="Node2D" parent="Axle/JointBack/LegBack"]
|
||||||
visible = false
|
position = Vector2( 0, 36 )
|
||||||
modulate = Color( 1, 0.423529, 0.4, 1 )
|
__meta__ = {
|
||||||
material = SubResource( 7 )
|
"_edit_bone_": true
|
||||||
position = Vector2( -70, -8 )
|
}
|
||||||
scale = Vector2( 13.4376, 1 )
|
|
||||||
|
[node name="ShinBack" type="Sprite" parent="Axle/JointBack/LegBack/KneeBack"]
|
||||||
|
rotation = 0.872665
|
||||||
|
texture = ExtResource( 9 )
|
||||||
|
offset = Vector2( 0, 24 )
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2( 0, 0, 12, 48 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="FootBack" type="Sprite" parent="Axle/JointBack/LegBack/KneeBack/ShinBack"]
|
||||||
|
position = Vector2( 0.00983047, 47.8521 )
|
||||||
|
rotation = -0.436332
|
||||||
|
texture = ExtResource( 12 )
|
||||||
|
offset = Vector2( -11.6527, 2.61113 )
|
||||||
|
script = ExtResource( 10 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true
|
||||||
|
}
|
||||||
|
rotation_lock = 0.0
|
||||||
|
|
||||||
|
[node name="Endpoint" type="Position2D" parent="Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack"]
|
||||||
|
position = Vector2( -17, 0 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true,
|
||||||
|
"_gizmo_extents_": 4.0
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HitboxTransform" type="RemoteTransform2D" parent="Axle/JointBack/LegBack/KneeBack/ShinBack/FootBack"]
|
||||||
|
position = Vector2( -8.99999, 5 )
|
||||||
|
remote_path = NodePath("../../../../../../../Hitbox/FootShapeBack")
|
||||||
|
|
||||||
|
[node name="KneeBack" type="Sprite" parent="Axle/JointBack/LegBack/KneeBack"]
|
||||||
|
texture = ExtResource( 8 )
|
||||||
|
hframes = 8
|
||||||
|
script = ExtResource( 10 )
|
||||||
|
fps = 4.0
|
||||||
|
rotation_lock = 0.0
|
||||||
|
|
||||||
|
[node name="Head" type="Sprite" parent="Axle"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
position = Vector2( 0, -4 )
|
||||||
|
texture = ExtResource( 6 )
|
||||||
|
offset = Vector2( -13, -25 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="End" type="Position2D" parent="Axle/Head"]
|
||||||
|
position = Vector2( -20, -28 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true,
|
||||||
|
"_gizmo_extents_": 4.0
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HitboxTransform" type="RemoteTransform2D" parent="Axle/Head"]
|
||||||
|
position = Vector2( -18, -10 )
|
||||||
|
remote_path = NodePath("../../../Hitbox/HeadShape")
|
||||||
|
|
||||||
|
[node name="CannonBG" type="ColorRect" parent="Axle/Head"]
|
||||||
|
show_behind_parent = true
|
||||||
|
margin_left = -64.0
|
||||||
|
margin_top = -18.0
|
||||||
|
margin_right = -32.0
|
||||||
|
margin_bottom = -2.0
|
||||||
|
color = Color( 0.266667, 0.266667, 0.305882, 1 )
|
||||||
|
|
||||||
|
[node name="Intelli" type="Sprite" parent="Axle/Head"]
|
||||||
|
show_behind_parent = true
|
||||||
|
position = Vector2( -37, -32 )
|
||||||
|
texture = ExtResource( 5 )
|
||||||
|
flip_h = true
|
||||||
|
|
||||||
|
[node name="Beam" type="Sprite" parent="Axle/Head"]
|
||||||
|
show_behind_parent = true
|
||||||
|
material = SubResource( 10 )
|
||||||
|
position = Vector2( -58, -10 )
|
||||||
|
scale = Vector2( 1, 1e-05 )
|
||||||
texture = ExtResource( 4 )
|
texture = ExtResource( 4 )
|
||||||
offset = Vector2( -8, 0 )
|
offset = Vector2( -128, 0 )
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2( 0, 0, 256, 16 )
|
||||||
|
|
||||||
[node name="Hitbox" type="Area2D" parent="Body/Head/Beam" groups=["blocks arrow", "enemy_hitbox"]]
|
[node name="Hitbox" type="Area2D" parent="Axle/Head/Beam" groups=["blocks arrow", "enemy_hitbox"]]
|
||||||
position = Vector2( -8.03715, 0 )
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Body/Head/Beam/Hitbox"]
|
[node name="BeamShape" type="CollisionShape2D" parent="Axle/Head/Beam/Hitbox"]
|
||||||
position = Vector2( 0.0139904, 0 )
|
position = Vector2( -128, 0 )
|
||||||
shape = SubResource( 6 )
|
shape = SubResource( 6 )
|
||||||
disabled = true
|
disabled = true
|
||||||
|
|
||||||
[node name="Intelli" type="Sprite" parent="Body/Head"]
|
[node name="InternalBeam" type="Sprite" parent="Axle/Head"]
|
||||||
visible = false
|
show_behind_parent = true
|
||||||
position = Vector2( -42, -31 )
|
material = SubResource( 10 )
|
||||||
rotation = 3.14159
|
position = Vector2( -33, -10 )
|
||||||
scale = Vector2( 1, -1 )
|
texture = ExtResource( 4 )
|
||||||
texture = ExtResource( 5 )
|
offset = Vector2( -12, 0 )
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2( 0, 0, 20, 14 )
|
region_rect = Rect2( 0, 0, 24, 16 )
|
||||||
|
|
||||||
[node name="LegL" type="Sprite" parent="Body"]
|
[node name="JointFront" type="Sprite" parent="Axle"]
|
||||||
position = Vector2( 67, 112 )
|
position = Vector2( 11, -4 )
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 7 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true,
|
||||||
|
"_edit_ik_": true
|
||||||
|
}
|
||||||
|
|
||||||
[node name="Positions" type="Node2D" parent="."]
|
[node name="LegFront" type="Sprite" parent="Axle/JointFront"]
|
||||||
|
show_behind_parent = true
|
||||||
|
rotation = -0.436332
|
||||||
|
texture = ExtResource( 9 )
|
||||||
|
offset = Vector2( 0, 18 )
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2( 0, 0, 12, 36 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true,
|
||||||
|
"_edit_ik_": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ShinFront" type="Sprite" parent="Axle/JointFront/LegFront"]
|
||||||
|
material = SubResource( 8 )
|
||||||
|
position = Vector2( 3.8147e-06, 36 )
|
||||||
|
rotation = 0.872665
|
||||||
|
texture = ExtResource( 9 )
|
||||||
|
offset = Vector2( 0, 24 )
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2( 0, 0, 12, 48 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="FootFront" type="Sprite" parent="Axle/JointFront/LegFront/ShinFront"]
|
||||||
|
position = Vector2( 0.00983047, 47.8521 )
|
||||||
|
rotation = -0.436332
|
||||||
|
texture = ExtResource( 12 )
|
||||||
|
offset = Vector2( -11.6527, 2.61113 )
|
||||||
|
script = ExtResource( 10 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true
|
||||||
|
}
|
||||||
|
rotation_lock = 0.0
|
||||||
|
|
||||||
|
[node name="Endpoint" type="Position2D" parent="Axle/JointFront/LegFront/ShinFront/FootFront"]
|
||||||
|
position = Vector2( -17, 0 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_bone_": true,
|
||||||
|
"_gizmo_extents_": 4.0
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="HitboxTransform" type="RemoteTransform2D" parent="Axle/JointFront/LegFront/ShinFront/FootFront"]
|
||||||
|
position = Vector2( -8.99999, 5 )
|
||||||
|
remote_path = NodePath("../../../../../../Hitbox/FootShapeFront")
|
||||||
|
|
||||||
|
[node name="KneeFront" type="Sprite" parent="Axle/JointFront/LegFront"]
|
||||||
|
position = Vector2( 3.8147e-06, 36 )
|
||||||
|
texture = ExtResource( 8 )
|
||||||
|
hframes = 8
|
||||||
|
script = ExtResource( 10 )
|
||||||
|
fps = 4.0
|
||||||
|
rotation_lock = 0.0
|
||||||
|
|
||||||
|
[node name="BulletPositions" type="Node2D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
position = Vector2( -153, -24 )
|
position = Vector2( -153, -24 )
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Positions"]
|
[node name="Position1" type="Position2D" parent="BulletPositions"]
|
||||||
position = Vector2( 152, 80 )
|
position = Vector2( 152, 80 )
|
||||||
|
|
||||||
[node name="Position2D2" type="Position2D" parent="Positions"]
|
[node name="Position2" type="Position2D" parent="BulletPositions"]
|
||||||
position = Vector2( 152, 88 )
|
position = Vector2( 152, 88 )
|
||||||
rotation = -0.436332
|
rotation = -0.436332
|
||||||
|
|
||||||
[node name="Position2D3" type="Position2D" parent="Positions"]
|
[node name="Position3" type="Position2D" parent="BulletPositions"]
|
||||||
position = Vector2( 152, 96 )
|
position = Vector2( 152, 96 )
|
||||||
rotation = -0.872665
|
rotation = -0.872665
|
||||||
|
|
||||||
[node name="ShootTimer" type="Timer" parent="."]
|
[node name="ShootTimer" type="Timer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
autostart = true
|
autostart = true
|
||||||
|
|
||||||
[node name="WeakSpot" type="Area2D" parent="." groups=["boss_weakspot", "enemy_hitbox"]]
|
[node name="WeakSpot" type="Area2D" parent="." groups=["boss_weakspot", "enemy_hitbox"]]
|
||||||
position = Vector2( 1, 0 )
|
position = Vector2( 1, 0 )
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="WeakSpot"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="WeakSpot"]
|
||||||
position = Vector2( 27.5, 32 )
|
position = Vector2( 26.5, 32.5 )
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
|
|
||||||
[node name="Hitbox" type="Area2D" parent="." groups=["blocks_arrow", "enemy_hitbox"]]
|
[node name="Hitbox" type="Area2D" parent="." groups=["blocks_arrow", "enemy_hitbox"]]
|
||||||
position = Vector2( 1, 0 )
|
position = Vector2( 1, 0 )
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"]
|
[node name="HeadShape" type="CollisionShape2D" parent="Hitbox"]
|
||||||
position = Vector2( 43, 64 )
|
position = Vector2( 47, 64 )
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
|
|
||||||
[node name="CollisionShape2D2" type="CollisionShape2D" parent="Hitbox"]
|
[node name="FootShapeFront" type="CollisionShape2D" parent="Hitbox"]
|
||||||
position = Vector2( 48, 155 )
|
position = Vector2( 62, 155 )
|
||||||
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="FootShapeBack" type="CollisionShape2D" parent="Hitbox"]
|
||||||
|
position = Vector2( 41, 155 )
|
||||||
shape = SubResource( 3 )
|
shape = SubResource( 3 )
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
anims/Beam = SubResource( 4 )
|
anims/Beam = SubResource( 4 )
|
||||||
anims/RESET = SubResource( 5 )
|
anims/RESET = SubResource( 5 )
|
||||||
|
|
||||||
[connection signal="area_entered" from="Body/Head/Beam/Hitbox" to="." method="_on_Hitbox_area_entered"]
|
[connection signal="area_entered" from="Axle/Head/Beam/Hitbox" to="." method="_on_Hitbox_area_entered"]
|
||||||
[connection signal="timeout" from="ShootTimer" to="." method="_on_ShootTimer_timeout"]
|
[connection signal="timeout" from="ShootTimer" to="." method="_on_ShootTimer_timeout"]
|
||||||
[connection signal="area_entered" from="WeakSpot" to="." method="_on_WeakSpot_area_entered"]
|
[connection signal="area_entered" from="WeakSpot" to="." method="_on_WeakSpot_area_entered"]
|
||||||
[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]
|
[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]
|
||||||
|
|
41
scripts/sprite_ext.gd
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
extends Sprite
|
||||||
|
|
||||||
|
|
||||||
|
## emitted when the stop frame is reached
|
||||||
|
signal stopped()
|
||||||
|
|
||||||
|
|
||||||
|
## speed at which to animate
|
||||||
|
export var fps: float = 0.0
|
||||||
|
## frame to stop on when reached
|
||||||
|
export var stop_at_frame: int = -1
|
||||||
|
## whether to animate back and forth instead of loop
|
||||||
|
export var ping_pong: bool = false
|
||||||
|
## whether to maintain fixed global rotation
|
||||||
|
export var rotation_lock: float = NAN
|
||||||
|
|
||||||
|
|
||||||
|
## whether the animation is paused
|
||||||
|
var stopped: bool = false
|
||||||
|
|
||||||
|
|
||||||
|
var _time: float = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
# rotation lock
|
||||||
|
if not is_nan(rotation_lock):
|
||||||
|
global_rotation_degrees = rotation_lock
|
||||||
|
# do not animate if paused
|
||||||
|
if stopped:
|
||||||
|
return
|
||||||
|
# accumulate time and animate
|
||||||
|
_time += abs(fps) * delta
|
||||||
|
if _time >= 1.0:
|
||||||
|
_time -= 1.0
|
||||||
|
# posmod to loop around
|
||||||
|
frame = posmod(frame + int(sign(fps)), hframes * vframes)
|
||||||
|
if frame == stop_at_frame:
|
||||||
|
stopped = true
|
||||||
|
if ping_pong and frame == 0:
|
||||||
|
fps = -fps
|
10
shaders/beam_cycle.gdshader
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
shader_type canvas_item;
|
||||||
|
render_mode blend_add;
|
||||||
|
|
||||||
|
uniform float cycle_speed = 1.0;
|
||||||
|
uniform sampler2D gradient;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
COLOR = texture(TEXTURE, UV);
|
||||||
|
COLOR *= texture(gradient, vec2(TIME * cycle_speed, 0.0));
|
||||||
|
}
|