extends Control const TICKER_PATH = "res://json/ticker/" const FNN_LOGO = "res://assets/ticker/fnn.png" const META_FILE = "meta.json" onready var ticker_text = $Status/NewsBtn onready var ticker_box = $Windows/NewsWindow/News onready var ticker_window = $Windows/NewsWindow onready var news_brand = $Windows/NewsWindow/Brand/NewsBrand onready var news_motto = $Windows/NewsWindow/Brand/NewsMotto var news_file: String = "" var rng = RandomNumberGenerator.new() var all_news: Array = [] var speices: Array = [ "Cat", "Fennec", "Fox" ] var json_files: Array = [] func _load_json(): var file = File.new() if file.file_exists(news_file): file.open(news_file, file.READ) var result = parse_json(file.get_as_text()) return result func _index_news(): var news = _load_json() all_news.clear() all_news = news["ticker"] randomize() all_news.shuffle() func _init(): json_files = JsonHelper.key_value(TICKER_PATH, META_FILE, "ticker_files") func _ready(): if SimData.city_name == "Furtropolis" or "Furville": news_brand.texture = load(FNN_LOGO) if Caseyverse.is_caseyverse(): json_files.append("extra_lore.json") _randomize_news(json_files) #func _process(delta): # var prev_json_Files = json_files # # var city_life = [ # "citylife.json", # "kittykibble.json", # "international.json", # "citylife.json" # ] # # if _array_check(city_life, json_files): # match SimData.has_power: # true: # prev_json_Files = json_files # for files in city_life: # json_files.append(files) # # false: # prev_json_Files = json_files # for files in city_life: # json_files.append(files) func _array_check(list1, list2): for item in list1: if item in list2: return true return false func _start_alert(message): # if ticker_text.items.size() > 1: # ticker_text.clear() # # SimData.on_alert = true # news_file = str(TICKER_PATH + "ticker_alerts.json") # ticker_text.add_item(all_news) pass func _randomize_news(files: Array): for file in files: news_file = str(TICKER_PATH + file) _load_json() _index_news() rng.randomize() randomize() files.shuffle() var news_range = rng.randi_range(0, all_news.size() - 1) var news_text: String = all_news[news_range] if Caseyverse.is_caseyverse(): news_text = news_text.replace("[competing_outlet]", JsonHelper.key_value(TICKER_PATH, META_FILE, "competing_outlet")) # If city name Furtropolis or Furville use Pawprint Press if SimData.city_name != "Furtropolis" or "Furville": news_text = news_text.replace("[outlet]", JsonHelper.key_value(TICKER_PATH, META_FILE, "secondary_outlet")) else: # FNN = Furtropolis/Furry News Network news_text = news_text.replace("[outlet]", JsonHelper.key_value(TICKER_PATH, META_FILE, "primary_outlet")) if "[species]" in news_text: speices.shuffle() var speices_range = rng.randi_range(speices.size() - 1) news_text = news_text.replace("[species]", speices[speices_range]) if "[city]" in news_text: news_text = news_text.replace("[city]", SimData.city_name) if "[mayor]" in news_text: news_text = news_text.replace("[mayor]", SimData.mayor_name) if ticker_box.items.size() > 15: ticker_box.clear() # Prevent duplicates var prev_news_text = ticker_text.text if news_text == prev_news_text: _randomize_news(json_files) else: json_files.shuffle() _add_news(news_text) func _add_news(news_item): ticker_text.text = news_item ticker_box.add_item(news_item) func _on_NewsBtn_pressed(): ticker_window.show() func _on_RotateNews_timeout(): rng.randomize() randomize() all_news.shuffle() json_files.shuffle() _randomize_news(json_files)