2021-05-26 03:35:52 -04:00
|
|
|
extends ColorRect
|
|
|
|
|
|
|
|
onready var ticker_text = $TickerTxt
|
|
|
|
|
|
|
|
var news_file = ""
|
|
|
|
var rng = RandomNumberGenerator.new()
|
|
|
|
var news_keys = []
|
2021-05-27 10:33:08 -04:00
|
|
|
var speices = [
|
|
|
|
"Cat",
|
|
|
|
"Fennec",
|
|
|
|
"Fox"
|
|
|
|
]
|
2021-05-26 03:35:52 -04:00
|
|
|
|
|
|
|
func _index_news():
|
|
|
|
var news = _load_news()
|
|
|
|
news_keys.clear()
|
2021-05-26 10:30:41 -04:00
|
|
|
|
2021-05-26 03:35:52 -04:00
|
|
|
for key in news:
|
|
|
|
news_keys.append(news[key])
|
2021-05-26 05:50:47 -04:00
|
|
|
|
2021-05-26 10:30:41 -04:00
|
|
|
randomize()
|
|
|
|
news_keys.shuffle()
|
2021-05-26 03:35:52 -04:00
|
|
|
|
|
|
|
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():
|
2021-05-26 04:24:08 -04:00
|
|
|
SimData.city_name = SimData.city_name.capitalize()
|
|
|
|
SimData.mayor_name = SimData.mayor_name.capitalize()
|
2021-05-26 03:35:52 -04:00
|
|
|
SimEvents.connect("send_alert", self, "_start_alert")
|
|
|
|
SimEvents.connect("resume_news", self, "_resume_ticker")
|
2021-05-26 10:30:41 -04:00
|
|
|
_random_news("res://dialog/ticker/ticker.json")
|
2021-05-26 03:35:52 -04:00
|
|
|
|
|
|
|
func _start_alert(message):
|
2021-05-27 10:33:08 -04:00
|
|
|
SimData.on_alert = true
|
2021-05-26 10:30:41 -04:00
|
|
|
news_file = "res://dialog/ticker/ticker_alerts.json"
|
2021-05-26 03:35:52 -04:00
|
|
|
ticker_text.text = news_keys[message].text
|
|
|
|
|
|
|
|
func _random_news(file):
|
|
|
|
news_file = file
|
2021-05-26 10:30:41 -04:00
|
|
|
|
|
|
|
rng.randomize()
|
2021-05-26 03:35:52 -04:00
|
|
|
_load_news()
|
|
|
|
_index_news()
|
2021-05-26 10:30:41 -04:00
|
|
|
|
2021-05-26 03:35:52 -04:00
|
|
|
var max_mange = news_keys.size() - 1
|
|
|
|
var ticker_range = rng.randi_range(0, max_mange)
|
2021-05-26 10:30:41 -04:00
|
|
|
var news = news_keys[ticker_range].text
|
2021-05-26 03:35:52 -04:00
|
|
|
|
2021-05-26 10:30:41 -04:00
|
|
|
if SimData.has_ctower or SimData.city_name == "Furtropolis" or "Furville" and "[outlet]" in news:
|
2021-05-26 04:24:08 -04:00
|
|
|
# FNN = Furtropolis/Furry News Network
|
2021-05-26 03:48:50 -04:00
|
|
|
news = news.replace("[outlet]", "FNN")
|
|
|
|
elif "[outlet]" in news:
|
|
|
|
news = news.replace("[outlet]", "Pawprint Press")
|
|
|
|
|
2021-05-27 10:33:08 -04:00
|
|
|
if "[species]" in news:
|
|
|
|
randomize()
|
|
|
|
speices.shuffle()
|
|
|
|
news = news.replace("[species]", speices[rng.randi()%speices.size()])
|
|
|
|
|
2021-05-26 03:35:52 -04:00
|
|
|
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():
|
2021-05-26 10:30:41 -04:00
|
|
|
_random_news("res://dialog/ticker/ticker.json")
|
2021-05-26 03:35:52 -04:00
|
|
|
|
|
|
|
func _on_RotateNews_timeout():
|
2021-05-26 10:30:41 -04:00
|
|
|
_random_news("res://dialog/ticker/ticker.json")
|