Files
zacharie ffe6f50ba6 Dev 0.2.0
* Equilibrage de la difficulté (suite)
* Correction du timing des dialogues de Demeter
* Dev de la base astra (avec les logs)
* Fix de bug de duplication d'objets
* Fix de la mutation ancien
* Ajout d'une mention de la propagation des mutations dans le tuto
2026-07-25 20:09:54 +02:00

59 lines
1.7 KiB
GDScript

extends Interactable
class_name Radio
@onready var log_screen : LogScreen = %LogScreen
var radio_log : StoryStep.Log = null : set = set_radio_log
var unread := false : set = set_unread
func _ready():
var story_step := GameInfo.game_data.progression_data.get_story_step()
if len(story_step.get_logs()):
radio_log = story_step.get_logs().pick_random()
unread = not radio_log.key in GameInfo.game_data.logs_read
if unread :
available = true
else:
hide()
available = false
set_radio_log()
set_unread()
func interact(_p : Player) -> bool:
interacted.emit(_p)
if radio_log :
unread = false
AudioManager.play_sfx("MessageEnter")
GameInfo.game_data.logs_read.append(radio_log.key)
log_screen.appear()
region.player.controlling_player = false
Pointer.action_disabled = true
log_screen.disappeared.connect(
func():
region.player.controlling_player = true
get_tree().create_timer(0.2).timeout.connect( # Put a delay to not interfere with the ok button click
func():
Pointer.action_disabled = false
)
AudioManager.play_sfx("MessageExit")
)
return true
return false
func set_radio_log(v := radio_log):
radio_log = v
if is_node_ready() and radio_log:
log_screen.log_text = radio_log.text
log_screen.log_title = radio_log.title
func set_unread(v := unread):
unread = v
if is_node_ready():
%SpriteUnread.visible = unread
%SpriteRead.visible = not unread
default_info_title = "RADIO" if unread else "RADIO_READ"