citylimits/scripts/ticker.gd
Tony Bark d1da70a099 Streamlined advisor window
- Streamlined advisor window messages through signals.
- Added TODO file
- Ignore /except directory
- News ticker based on the advisor code with text from SC3k with news from the game, with some exceptions.
- New SC3k-like interface.
- Added icons from Font Awesome.
2021-05-26 03:35:52 -04:00

57 lines
1.3 KiB
GDScript

extends ColorRect
onready var ticker_text = $TickerTxt
var news_file = ""
var rng = RandomNumberGenerator.new()
var news_keys = []
func _index_news():
var news = _load_news()
news_keys.clear()
for key in news:
news_keys.append(news[key])
func _load_news():
var file = File.new()
if file.file_exists(news_file):
file.open(news_file, file.READ)
var dialogue = parse_json(file.get_as_text())
return dialogue
func _ready():
SimEvents.connect("send_alert", self, "_start_alert")
SimEvents.connect("resume_news", self, "_resume_ticker")
_random_news("res://dialog/ticker.json")
func _process(delta):
if get_tree().paused:
ticker_text.text = "Simulation Paused"
func _start_alert(message):
SimData.is_alert = true
news_file = "res://dialog/ticker_alerts.json"
ticker_text.text = news_keys[message].text
func _random_news(file):
news_file = file
_load_news()
_index_news()
rng.randomize()
var max_mange = news_keys.size() - 1
var ticker_range = rng.randi_range(0, max_mange)
var news = news_keys[ticker_range].text
if "[city]" in news:
news = news.replace("[city]", SimData.city_name)
if "[mayor]" in news:
news = news.replace("[mayor]", SimData.mayor_name)
ticker_text.text = news
func _resume_ticker():
_random_news("res://dialog/ticker.json")
func _on_RotateNews_timeout():
_random_news("res://dialog/ticker.json")