extends WindowDialog

var dialogue_file = "res://dialog/policies/proposels.json"

var dialogue_keys = []
var dialogue_name = ""
var dialogue_text = ""
var policy_id

onready var ordinance_label = $OrdinanceLbl
onready var description_label = $DescPanel/DescriptionLbl

func _start_dialogue(policy):
	match policy:
		[SimData.Ordinances.ENERGY_CONSERVATION, 1]:
			policy_id = 1
			_launch_policy_window(1)
		[SimData.Ordinances.CLEAN_AIR_ACT, 3]:
			policy_id = 2
			_launch_policy_window(2)
		[SimData.Ordinances.TIRE_RECYCLE, 3]:
			policy_id = 3
			_launch_policy_window(3)

func _launch_policy_window(key):
	_index_dialogue()
	var message: String = dialogue_keys[key].text
	
	if "[name]" in message:
		message = message.replace("[name]", SimData.mayor_name)
	
	if "[city]" in message:
		message = message.replace("[city]", SimData.city_name)
	
	description_label.text = message
	window_title = dialogue_keys[key].name
	show()

func _index_dialogue():
	var dialogue = _load_dialogue()
	dialogue_keys.clear()
	for key in dialogue:
		dialogue_keys.append(dialogue[key])

func _load_dialogue():
	var file = File.new()
	if file.file_exists(dialogue_file):
		file.open(dialogue_file, file.READ)
		var dialogue = parse_json(file.get_as_text())
		return dialogue

func _ready():
	SimEvents.connect("policy_message", self, "_start_dialogue")

func _on_IgnoreBtn_pressed():
	policy_id = 0
	description_label.text = ""
	ordinance_label.text = ""
	hide()

func _on_EnectBtn_pressed():
	match policy_id:
		1: SimEvents.emit_signal("energy_saving")
		2: SimEvents.emit_signal("clean_air_act")

func _on_AnalysisBtn_pressed():
	match policy_id:
		1: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id)
		2: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id)
		3: SimEvents.emit_signal("policy_analysis", SimData.Advisors.CITY_PLANNER, policy_id)