citylimits/scripts/ticker.gd
2021-05-26 05:51:47 -04:00

67 lines
1.8 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])
news_keys[rng.randi()%news_keys.size()] # Sbuffle Keys
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():
SimData.city_name = SimData.city_name.capitalize()
SimData.mayor_name = SimData.mayor_name.capitalize()
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 # Shuffle News
if SimData.has_ctower or SimData.city_name == "Furtropolis" and "[outlet]" in news:
# FNN = Furtropolis/Furry News Network
news = news.replace("[outlet]", "FNN")
elif "[outlet]" in news:
news = news.replace("[outlet]", "Pawprint Press")
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")