Skip to content

Commit

Permalink
Merge pull request #273 from tecMTST/ajustes-nivel-audio-boss
Browse files Browse the repository at this point in the history
Ajustes de exibição de nível e som de entrada do Boss
  • Loading branch information
mihailov-vf authored Feb 5, 2025
2 parents 2cf39a2 + aa3b87a commit d01e335
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 12 deletions.
21 changes: 19 additions & 2 deletions projeto/recursos/Menu_principal/TelasExtras/Contador_de_Nivel.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,38 @@ extends Control

export (Array, StreamTexture) var textura_indicador
export (Array, StreamTexture) var textura_popup
export (Array, AudioStreamMP3) var audio_fases

onready var Indicador = $Indicador
onready var PopUp = $PopUp
onready var Indicador_tween = $Indicador/IndicadorTween
onready var PopUp_tween = $PopUp/PopUpTween
onready var barraprogresso = get_node("/root/Enchente/BarraDeProgresso")
onready var audio_stream_player = $AudioStreamPlayer

func _ready() -> void:
Indicador.texture = textura_indicador[0]
PopUp.texture = textura_popup[0]
PopUp.visible = false
EnchenteEstadoDeJogo.connect('trocou_fase', self, "_change_all")
EnchenteEstadoDeJogo.connect("entrada_boss", self, "_entrada_boss")
if barraprogresso.has_method("enviar_pos"):
var progressopos = barraprogresso.enviar_pos()
Indicador.rect_position = Vector2((progressopos.x + 250), (progressopos.y + 75))

func _change_all(fase):
if fase > 3:
if fase > 3: # Limita somente a primeira fase do boss
return
change_popup(fase)
if fase < 3:
change_popup(fase)
change_indicador(fase)
# -1 pois os tons dos áudios vão subindo e a primeira fase não tem toque de entrada
tocar_audio(fase - 1)

func _entrada_boss():
change_popup(4)
tocar_audio(4)
yield(audio_stream_player, "finished")

func change_popup(fase):
PopUp.texture = textura_popup[fase - 1]
Expand All @@ -40,3 +51,9 @@ func change_indicador(fase):
Indicador_tween.interpolate_property(Indicador, "rect_scale", Vector2(0,0), Vector2(1,1), 1, Tween.TRANS_ELASTIC, Tween.EASE_IN_OUT)
Indicador_tween.start()
yield(get_tree().create_timer(1.6),"timeout")

func tocar_audio(fase: int):
audio_stream_player.stop()
audio_stream_player.stream = audio_fases[fase - 1]
audio_stream_player.stream.loop = false
audio_stream_player.play()
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=2]
[gd_scene load_steps=12 format=2]

[ext_resource path="res://elementos/UI/indicador_nivel_1.png" type="Texture" id=1]
[ext_resource path="res://elementos/UI/pop_up_nivel_1.png" type="Texture" id=2]
Expand All @@ -7,13 +7,18 @@
[ext_resource path="res://elementos/UI/pop_up_nivel_3.png" type="Texture" id=5]
[ext_resource path="res://elementos/UI/inidicador_nivel_3.png" type="Texture" id=6]
[ext_resource path="res://elementos/UI/indicador_nivel_2.png" type="Texture" id=7]
[ext_resource path="res://elementos/audio/sfx/chefe/boss_alarm.mp3" type="AudioStream" id=8]
[ext_resource path="res://elementos/audio/sfx/anuncio-level-1.mp3" type="AudioStream" id=9]
[ext_resource path="res://elementos/audio/sfx/anuncio-level-3.mp3" type="AudioStream" id=10]
[ext_resource path="res://elementos/audio/sfx/anuncio-level-2.mp3" type="AudioStream" id=11]

[node name="Nivel" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 3 )
textura_indicador = [ ExtResource( 1 ), ExtResource( 7 ), ExtResource( 6 ), ExtResource( 6 ), ExtResource( 6 ), ExtResource( 6 ) ]
textura_popup = [ ExtResource( 2 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ) ]
audio_fases = [ ExtResource( 9 ), ExtResource( 11 ), ExtResource( 10 ), ExtResource( 8 ) ]

[node name="Indicador" type="TextureRect" parent="."]
pause_mode = 2
Expand Down Expand Up @@ -53,3 +58,6 @@ expand = true
stretch_mode = 6

[node name="PopUpTween" type="Tween" parent="PopUp"]

[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
bus = "SFX Menu"
4 changes: 1 addition & 3 deletions projeto/recursos/jogos/enchente/chefao/ChamadaDoBoss.gd
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ extends Node
const chamada_boss = preload("res://recursos/jogos/enchente/chefao/Chefao.tscn")

func iniciar():
yield(get_tree().create_timer(3), "timeout")
$AudioStreamPlayerSFX.tocar_sfx("chefe-alerta")
$Timer.start(10)
$Timer.start()

func _on_Timer_timeout():
var instancia = chamada_boss.instance()
Expand Down
8 changes: 2 additions & 6 deletions projeto/recursos/jogos/enchente/chefao/ChamadaDoBoss.tscn
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=2 format=2]

[ext_resource path="res://recursos/jogos/enchente/chefao/ChamadaDoBoss.gd" type="Script" id=1]
[ext_resource path="res://recursos/jogos/enchente/chefao/AudioStreamSFX.gd" type="Script" id=2]

[node name="ChamadaDoBoss" type="Node"]
script = ExtResource( 1 )

[node name="Timer" type="Timer" parent="."]
wait_time = 5.0
one_shot = true

[node name="AudioStreamPlayerSFX" type="AudioStreamPlayer" parent="."]
bus = "SFX Game"
script = ExtResource( 2 )

[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]
2 changes: 2 additions & 0 deletions projeto/recursos/jogos/enchente/chefao/ChefaoScript.gd
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ var CAMINHO_MODULO = 'res://recursos/jogos/enchente/chefao/modulos.json'
var conteudo_total_modulo = loadJson(CAMINHO_MODULO)

func _ready():
EnchenteEstadoDeJogo.emit_signal("entrada_boss")
yield(get_tree().create_timer(3.0),"timeout")
randomize()
boss_sprite.texture = textura_entrada_saida
boss_sprite.visible = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ extends Node

signal iniciou()
signal trocou_fase(fase)
signal entrada_boss()
signal nova_velocidade()
signal dano_jogador(vida)

Expand Down

0 comments on commit d01e335

Please sign in to comment.