extends NinePatchRect ## This message will trigger buy/sell node to fetch buy prices const BUY_FETCH = "BASE_FETCH_BUY" ## This message will trigger buy/sell node to fetch sell prices const SELL_FETCH = "BASE_FETCH_SELL" ## This message will trigger dialogue to get selected item data const BUY_ITEM = "BASE_BUY_ITEM" ## This message will trigger dialogue to get selected item data const SELL_ITEM = "BASE_SELL_ITEM" ## This message will trigger quest node to make answer format const TAKE_QUEST = "BASE_TAKE_QUEST" ## This message will trigger quest node to assign quest to player const ACCEPT_QUEST = "BASE_QUEST_ACCEPT" ## This message will trigger quest node to take quest from player const CANCEL_QUEST = "BASE_QUEST_CANCEL" ## This message will trigger quest node to get quest info const QUEST_INFO = "BASE_QUEST_INFO" ## This message will trigger dialogue node to reward player const QUEST_REWARD = "BASE_QUEST_REWARD" ## Quest progress template const QUEST_PROGRESS = "{cur} / {max}" @onready var dialogue = $DialogueView @onready var buy_sell = $"../../BuySell" @onready var actions_menu = $"../Actions/ActionsMenu" @onready var quest = $"../../Quest" func _ready(): create_tween().tween_property(dialogue,"visible_ratio",1.0, 2) func send_message(msg: Message): var format = {} match msg.fact: BUY_FETCH: format["sell_list"] = buy_sell.get_buy_sell_list(false) actions_menu.buy = false actions_menu.buy_sell_options = buy_sell.get_buy_sell_len(false) SELL_FETCH: format["buy_list"] = buy_sell.get_buy_sell_list(true) actions_menu.buy = true actions_menu.buy_sell_options = buy_sell.get_buy_sell_len(true) BUY_ITEM: var list = buy_sell.items_on_sell var id = actions_menu.buy_sell_selected_item var item_name = list[id].name format["amount"] = actions_menu.buy_sell_amount format["item_name"] = item_name SELL_ITEM: var list = buy_sell.items_on_buy var id = actions_menu.buy_sell_selected_item var item_name = list[id].name format["amount"] = actions_menu.buy_sell_amount format["item_name"] = item_name TAKE_QUEST: quest.make_answer(quest.quest) format["answer"] = quest.answer if quest.answer == tr(quest.NO_QUEST): get_tree().create_timer(0.05).timeout.connect(actions_menu.transit_menu.bind(0)) ACCEPT_QUEST: var player_ship = actions_menu.player_ship player_ship.quest = quest.assign_to_player() player_ship.quest.quest_failed.connect(player_ship.on_quest_failed) CANCEL_QUEST: actions_menu.player_ship.quest = null QUEST_INFO: var cur_quest = actions_menu.player_ship.quest quest.get_info(cur_quest) format["answer"] = quest.info format["given_by"] = tr(cur_quest.data["given_by"]) format["progress"] = QUEST_PROGRESS.format({"cur": cur_quest.progress, "max": cur_quest.progress_max}) QUEST_REWARD: var player_ship = actions_menu.player_ship var reward = player_ship.quest.reward_money player_ship.money += reward player_ship.quest = null format["reward"] = reward var new_msg = tr(msg.fact + "_RECEIVED").format(format) var old_len = len(dialogue.get_parsed_text()) dialogue.append_text(new_msg) dialogue.visible_characters = old_len create_tween().tween_property(dialogue,"visible_ratio",1.0, 2)