diff --git a/audio/sounds/copsquash.ogg b/audio/sounds/copsquash.ogg new file mode 100644 index 0000000..b688b4f Binary files /dev/null and b/audio/sounds/copsquash.ogg differ diff --git a/audio/sounds/copsquash.ogg.import b/audio/sounds/copsquash.ogg.import new file mode 100644 index 0000000..c8139b9 --- /dev/null +++ b/audio/sounds/copsquash.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/copsquash.ogg-a2a63a7fc30ae2fd8b3edcf426e02f2a.oggstr" + +[deps] + +source_file="res://audio/sounds/copsquash.ogg" +dest_files=[ "res://.import/copsquash.ogg-a2a63a7fc30ae2fd8b3edcf426e02f2a.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/fami_transform.ogg b/audio/sounds/fami_transform.ogg new file mode 100644 index 0000000..6b09397 Binary files /dev/null and b/audio/sounds/fami_transform.ogg differ diff --git a/audio/sounds/fami_transform.ogg.import b/audio/sounds/fami_transform.ogg.import new file mode 100644 index 0000000..08a7e4f --- /dev/null +++ b/audio/sounds/fami_transform.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/fami_transform.ogg-36f9a31db915a5c7f08d6eca0c6987e2.oggstr" + +[deps] + +source_file="res://audio/sounds/fami_transform.ogg" +dest_files=[ "res://.import/fami_transform.ogg-36f9a31db915a5c7f08d6eca0c6987e2.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/laser_charge.ogg.import b/audio/sounds/laser_charge.ogg.import new file mode 100644 index 0000000..9eb79a1 --- /dev/null +++ b/audio/sounds/laser_charge.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/laser_charge.ogg-3dd55e9655eb311b462e45b101329c49.oggstr" + +[deps] + +source_file="res://audio/sounds/laser_charge.ogg" +dest_files=[ "res://.import/laser_charge.ogg-3dd55e9655eb311b462e45b101329c49.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/audio/sounds/laser_ready.ogg b/audio/sounds/laser_ready.ogg new file mode 100644 index 0000000..e6af735 Binary files /dev/null and b/audio/sounds/laser_ready.ogg differ diff --git a/audio/sounds/laser_ready.ogg.import b/audio/sounds/laser_ready.ogg.import new file mode 100644 index 0000000..8f179ce --- /dev/null +++ b/audio/sounds/laser_ready.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/laser_ready.ogg-31781bea44cd48185c1814586386ce52.oggstr" + +[deps] + +source_file="res://audio/sounds/laser_ready.ogg" +dest_files=[ "res://.import/laser_ready.ogg-31781bea44cd48185c1814586386ce52.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/autoloads/audio.gd b/autoloads/audio.gd index 4eb9421..35ea5db 100644 --- a/autoloads/audio.gd +++ b/autoloads/audio.gd @@ -56,6 +56,10 @@ const a_msx_die = preload("res://audio/sounds/msx_die.ogg") const a_famira = preload("res://audio/sounds/famira.ogg") const a_vulcan = preload("res://audio/sounds/se_g2.wav") const a_grumble = preload("res://audio/sounds/fami_grumble.ogg") +const a_laser_ready = preload("res://audio/sounds/laser_ready.ogg") +const a_copsquash = preload("res://audio/sounds/copsquash.ogg") +const a_copsquash2 = preload("res://audio/sounds/cop_splat.ogg") +const a_fami_transform = preload("res://audio/sounds/fami_transform.ogg") var loop_section = null var has_looped = false diff --git a/cutscenes/fami_cutscene.gd b/cutscenes/fami_cutscene.gd index 39e46a6..b09edd3 100644 --- a/cutscenes/fami_cutscene.gd +++ b/cutscenes/fami_cutscene.gd @@ -13,6 +13,7 @@ func _init() -> void: func _on_cutscene_finished() -> void: Game.can_pause = true + Audio.play_sound(Audio.a_fami_transform,Audio.ac_voice) func _physics_process(delta: float) -> void: if animation_player.current_animation_position < cutscene_skip: @@ -32,6 +33,8 @@ func kill_cop() -> void: var splatter := DeathParticles.instance() splatter.global_position = $Cop.global_position splatter.emitting = true + Audio.play_sound(Audio.a_copsquash,Audio.ac_land) + Audio.play_sound(Audio.a_copsquash2,Audio.ac_voice) add_child(splatter) $Cop.queue_free() diff --git a/cutscenes/fami_cutscene.tscn b/cutscenes/fami_cutscene.tscn index d12e423..bff3dfd 100644 --- a/cutscenes/fami_cutscene.tscn +++ b/cutscenes/fami_cutscene.tscn @@ -403,7 +403,7 @@ material = ExtResource( 19 ) position = Vector2( 160, 167 ) scale = Vector2( -1, 1 ) frames = SubResource( 7 ) -animation = "orb" +animation = "idle" playing = true [node name="FamiVoice" type="AudioStreamPlayer" parent="."] @@ -417,7 +417,7 @@ anims/cutscene = SubResource( 2 ) [node name="Cop" type="AnimatedSprite" parent="."] material = SubResource( 8 ) -position = Vector2( 72, 169 ) +position = Vector2( -8, 169 ) frames = SubResource( 13 ) animation = "gun" playing = true diff --git a/graphics/backgrounds/fami_rooftop.png b/graphics/backgrounds/fami_rooftop.png index bf89082..df5c30d 100644 Binary files a/graphics/backgrounds/fami_rooftop.png and b/graphics/backgrounds/fami_rooftop.png differ diff --git a/graphics/enemy/boss/famira_fire.png b/graphics/enemy/boss/famira_fire.png new file mode 100644 index 0000000..bf6ff01 Binary files /dev/null and b/graphics/enemy/boss/famira_fire.png differ diff --git a/graphics/enemy/boss/famira_fire.png.import b/graphics/enemy/boss/famira_fire.png.import new file mode 100644 index 0000000..052b4a1 --- /dev/null +++ b/graphics/enemy/boss/famira_fire.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/famira_fire.png-e17dc562be1c1f2c970eb59a9cfda450.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/enemy/boss/famira_fire.png" +dest_files=[ "res://.import/famira_fire.png-e17dc562be1c1f2c970eb59a9cfda450.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/laser_ok.png b/graphics/hud/laser_ok.png index be5142c..59273b9 100644 Binary files a/graphics/hud/laser_ok.png and b/graphics/hud/laser_ok.png differ diff --git a/graphics/hud/laser_ok_text.png b/graphics/hud/laser_ok_text.png index a030046..f085abe 100644 Binary files a/graphics/hud/laser_ok_text.png and b/graphics/hud/laser_ok_text.png differ diff --git a/maps/boss/boss3_arena.gd b/maps/boss/boss3_arena.gd index 4b3ab8a..67a0b0e 100644 --- a/maps/boss/boss3_arena.gd +++ b/maps/boss/boss3_arena.gd @@ -4,6 +4,7 @@ extends "res://maps/map.gd" onready var sg_health: TextureProgress = $"%SGHealthBar" onready var sg_energy: TextureProgress = $"%SGEnergyBar" onready var fami_health: TextureProgress = $"%FamiHealthBar" +onready var laser_ok: TextureRect = $"%LaserOk" onready var sg2083: KinematicBody2D = $"2083" onready var famira: Node2D = $Famira @@ -13,15 +14,13 @@ func _ready() -> void: sg2083.state = sg2083.State.INACTIVE famira.animation_player.play("grow", -1.0, 0.0) -func _process(delta): - sg_energy.value -= 1 func _on_2083_health_changed(amount) -> void: - sg_health.value = amount + sg_health.value = amount - 4 func _on_Famira_health_changed(amount) -> void: - fami_health.value = amount + fami_health.value = ceil(amount) - 3 func _on_cutscene_finished() -> void: @@ -49,8 +48,14 @@ func start_fight() -> void: famira.animation_player.state_chart.send_event("transformed") -func _on_2083_energy_changed(amount) -> void: - sg_energy.value = amount +func _on_2083_energy_changed(amount,laser_energy) -> void: + sg_energy.value = amount - 3 + #Display heads up of laser status + if amount >= laser_energy: + if !Audio.ac_collectible.is_playing() && $"%LaserOk".visible == false: Audio.play_sound(Audio.a_laser_ready,Audio.ac_collectible) + $"%LaserOk".visible = true + else: + $"%LaserOk".visible = false func _on_Famira_died() -> void: diff --git a/maps/boss/boss3_arena.tscn b/maps/boss/boss3_arena.tscn index 1b435ed..98cb95a 100644 --- a/maps/boss/boss3_arena.tscn +++ b/maps/boss/boss3_arena.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=2] +[gd_scene load_steps=28 format=2] [ext_resource path="res://objects/enemy/boss/sg2083.tscn" type="PackedScene" id=1] [ext_resource path="res://tilesets/t_laboratory.tres" type="TileSet" id=2] @@ -17,6 +17,31 @@ [ext_resource path="res://graphics/hud/2083_energy_filled.png" type="Texture" id=15] [ext_resource path="res://graphics/hud/2083_health_filled.png" type="Texture" id=16] [ext_resource path="res://graphics/hud/2083_health_back.png" type="Texture" id=17] +[ext_resource path="res://shaders/color_noise.gdshader" type="Shader" id=18] +[ext_resource path="res://shaders/ska_plane.gdshader" type="Shader" id=19] +[ext_resource path="res://shaders/beam_cycle.gdshader" type="Shader" id=20] +[ext_resource path="res://graphics/enemy/boss/stg_2600/beam_gradient.png" type="Texture" id=21] +[ext_resource path="res://graphics/hud/laser_ok_text.png" type="Texture" id=22] + +[sub_resource type="ShaderMaterial" id=4] +shader = ExtResource( 19 ) +shader_param/color_1 = Color( 1, 0.282353, 0, 0 ) +shader_param/color_2 = Color( 0.478431, 0.113725, 0, 0.619608 ) +shader_param/checker_size = Vector2( 4, 6 ) +shader_param/pan_speed = Vector2( 4, 6 ) +shader_param/cycle_speed = Vector2( 8, 0 ) +shader_param/cycle_alternation = Vector2( 1, 8 ) +shader_param/uv_transform = Transform2D( 1, 2, 1, 3, 0, 0 ) + +[sub_resource type="ShaderMaterial" id=3] +shader = ExtResource( 18 ) +shader_param/animate_noise = true +shader_param/noise_intensity = 1.0 + +[sub_resource type="ShaderMaterial" id=5] +shader = ExtResource( 20 ) +shader_param/cycle_speed = 3.0 +shader_param/gradient = ExtResource( 21 ) [sub_resource type="Animation" id=1] length = 0.001 @@ -65,7 +90,7 @@ tracks/3/keys = { "values": [ false ] } tracks/4/type = "value" -tracks/4/path = NodePath("ParallaxBackground/ParallaxLayer/Sprite:visible") +tracks/4/path = NodePath("CanvasLayer/Sprite:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/imported = false @@ -174,16 +199,26 @@ pause_mode = 1 script = ExtResource( 3 ) lore_entries = [ ExtResource( 8 ) ] -[node name="ParallaxBackground" type="ParallaxBackground" parent="."] +[node name="CanvasLayer" type="CanvasLayer" parent="."] +layer = -11 -[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] -motion_scale = Vector2( 0.5, 1 ) - -[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"] +[node name="Sprite" type="Sprite" parent="CanvasLayer"] +position = Vector2( 128, 0 ) texture = ExtResource( 9 ) centered = false offset = Vector2( -128, 0 ) +[node name="ColorRect2" type="ColorRect" parent="CanvasLayer"] +material = SubResource( 4 ) +margin_right = 256.0 +margin_bottom = 192.0 + +[node name="ColorRect" type="ColorRect" parent="CanvasLayer"] +material = SubResource( 3 ) +margin_right = 256.0 +margin_bottom = 192.0 +color = Color( 1, 0, 0, 0.333333 ) + [node name="GUI" type="CanvasLayer" parent="."] [node name="Control" type="Control" parent="GUI"] @@ -221,6 +256,16 @@ margin_right = 100.0 margin_bottom = 22.0 texture = ExtResource( 10 ) +[node name="LaserOk" type="TextureRect" parent="GUI/Control/Energy"] +unique_name_in_owner = true +visible = false +material = SubResource( 5 ) +margin_left = 60.0 +margin_top = 11.0 +margin_right = 100.0 +margin_bottom = 22.0 +texture = ExtResource( 22 ) + [node name="FamiHealth" type="Control" parent="GUI/Control/Energy"] margin_left = 140.0 margin_top = -163.0 diff --git a/menus/file_create.tscn b/menus/file_create.tscn index 10f6459..1ca045b 100644 --- a/menus/file_create.tscn +++ b/menus/file_create.tscn @@ -112,8 +112,8 @@ margin_top = 8.0 margin_right = 253.0 margin_bottom = 44.0 text = "Select the difficulty of the -future, sg loves hot chips but that -doesn't mean you have to" +future, sg loves hot peppers but +that doesn't mean you have to!" [node name="Label2" type="Label" parent="DifficultySelect"] material = ExtResource( 8 ) diff --git a/objects/enemy/boss/famira.gd b/objects/enemy/boss/famira.gd index caa705e..6fc0f23 100644 --- a/objects/enemy/boss/famira.gd +++ b/objects/enemy/boss/famira.gd @@ -6,7 +6,7 @@ signal health_changed(amount) export var push_speed: float = 30.0 -export var chase_speed: float = 50.0 +export var chase_speed: float = 65.0 export var breath_dps: float = 20.0 export var breath_knockback: float = 16.0 export var punch_damage: float = 8.0 @@ -38,6 +38,7 @@ func _physics_process(delta: float) -> void: state_chart.send_event("in_range") if fmod(Game.time, 15.0) == 0.0: Audio.play_sound(Audio.a_grumble,Audio.ac_boss) + print(hp) func start_push() -> void: diff --git a/objects/enemy/boss/famira.tscn b/objects/enemy/boss/famira.tscn index 882b6f8..42dc8ba 100644 --- a/objects/enemy/boss/famira.tscn +++ b/objects/enemy/boss/famira.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=54 format=2] +[gd_scene load_steps=55 format=2] [ext_resource path="res://objects/enemy/boss/famira.gd" type="Script" id=1] [ext_resource path="res://shaders/scale3x.gdshader" type="Shader" id=2] @@ -27,6 +27,7 @@ [ext_resource path="res://graphics/enemy/boss/fami_parts/head_upper.png" type="Texture" id=25] [ext_resource path="res://graphics/enemy/boss/fami_parts/eye.png" type="Texture" id=26] [ext_resource path="res://audio/sounds/fami_grumble.ogg" type="AudioStream" id=27] +[ext_resource path="res://graphics/enemy/boss/famira_fire.png" type="Texture" id=28] [sub_resource type="RectangleShape2D" id=11] extents = Vector2( 28, 64 ) @@ -1759,7 +1760,7 @@ shader = ExtResource( 2 ) shader_param/pixel_scale = 1.0 [sub_resource type="Curve" id=8] -_data = [ Vector2( 0, 0.5 ), 0.0, 0.890696, 0, 0, Vector2( 0.814474, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), -13.2988, 0.0, 0, 0 ] +_data = [ Vector2( 0, 0.5 ), 0.0, 0.890696, 0, 0, Vector2( 0.79703, 0.718182 ), 0.0, 0.0, 0, 0, Vector2( 0.985149, 0 ), -13.2988, 0.0, 0, 0 ] [sub_resource type="Gradient" id=9] offsets = PoolRealArray( 0, 0.163743, 0.432749, 0.596491, 0.853801, 1 ) @@ -3906,7 +3907,7 @@ lifetime = 2.0 lifetime_randomness = 0.5 local_coords = false draw_order = 1 -texture = ExtResource( 15 ) +texture = ExtResource( 28 ) emission_shape = 2 emission_rect_extents = Vector2( 0, 0 ) direction = Vector2( -1, 0 ) diff --git a/objects/enemy/boss/sg2083.gd b/objects/enemy/boss/sg2083.gd index 2e64284..0e1c86c 100644 --- a/objects/enemy/boss/sg2083.gd +++ b/objects/enemy/boss/sg2083.gd @@ -3,7 +3,7 @@ extends KinematicBody2D signal died() signal health_changed(amount) -signal energy_changed(amount) +signal energy_changed(amount,laser_energy) enum State {DEAD, STAND, FORWARD, BACK, DUCK, BEAM, INACTIVE} @@ -76,8 +76,7 @@ func _input(event: InputEvent) -> void: func set_energy(value: float) -> void: energy = clamp(value, 0.0, max_energy) - emit_signal("energy_changed", energy) - + emit_signal("energy_changed", energy, beam_energy) func land(duck: bool) -> void: if duck: