Dev 0.1.0
* Ajout des logs et de la radio
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
extends Interactable
|
||||
class_name Radio
|
||||
|
||||
@onready var log_screen : LogScreen = %LogScreen
|
||||
|
||||
var radio_log : StoryStep.Log = null : set = set_radio_log
|
||||
var unread := true : 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()
|
||||
|
||||
if radio_log:
|
||||
unread = not radio_log.key in GameInfo.game_data.logs_read
|
||||
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"
|
||||
@@ -0,0 +1 @@
|
||||
uid://il6l5xowbfex
|
||||
Reference in New Issue
Block a user