buckshotroulette-decomp/GlobalVariables.gd

351 lines
9.5 KiB
GDScript

extends Node
var currentVersion_nr = "v2.1.0"
var currentVersion_hotfix = 11
var using_steam = true
var currentVersion = ""
var versuffix_steam = " (STEAM)"
var versuffix_itch = " (ITCH.IO)"
var discord_link = "https://discord.gg/UdjMNaKkQe"
var using_gl = false
var controllerEnabled = false
var music_enabled = true
var current_button_hovered_over : Control
var colorblind = false
var colorblind_color = Color(1, 1, 0)
var greyscale_death = false
var looping_input_main = false
var looping_input_secondary = false
var cursor_state_after_toggle = false
var default_color_live = Color(1, 0.28, 0.29)
var default_color_blank = Color(0.29, 0.5, 1)
var colorblind_color_live = Color(1, 1, 1)
var colorblind_color_blank = Color(0.34, 0.34, 0.34)
var mp_debugging = false #mp debugging with temporary bots
var mp_printing_to_console = true #whether or not disconnect messages, etc are printed to console
var mp_debug_keys_enabled = false #whether or not the debug keys are enabled
var printing_packets = true #whether or not packets get logged
var sending_lobby_change_alerts_to_console = false #whether or not lobby status changes are sent to the console in lobby
var forcing_lobby_enter_from_main_menu = false #whether or not the game immediately goes to lobby scene from main menu
var message_to_forward = "" #message to forward through scenes, for instance a disconnect message
var original_volume_linear_interaction #original volume for bus 3 (interactions)
var original_volume_linear_music #original volume for bus 1 (music)
var debug_round_index_to_end_game_at : int #the game ends when this round index is met
var disband_lobby_after_exiting_main_scene = false #whether or not the lobby is disbanded when exiting to lobby scene from main
var exiting_to_lobby_after_inactivity = false #when a user is inactive for a set amount of time, all users exit to the lobby
var timeouts_enabled = false #whether or not timeouts are enabled for adrenaline, turn, shotgun target selection, item grabbing, etc
var skipping_intro = false #whether or not to skip the intro
var lobby_id_found_in_command_line = 0 #lobby ID for when a player joins through an invite with the game closed
var running_short_intro_in_lobby_scene : bool = false #if the user is entering the lobby scene from mp main, or has a command line lobby ID, skip the bootup animation
var command_line_checked = false #whether or not the command line has been checked on running the game
var version_to_check : String = "" #full version string that includes major, minor, patch, hotfix
var steam_id_version_checked_array : Array[int] #array of steam IDs that have the version checked. this must match the steam lobby member array IDs
var returning_to_main_menu_on_popup_close : bool #whether or not closing the popup window will return the user to the main menu
var active_match_customization_dictionary : Dictionary #match customization dictionary that will be used in the game. gets cleared on game end etc
var stashed_match_customization_dictionary : Dictionary #match customization dictionary that will be stored in the current game session
var previous_match_customization_differences : Dictionary #previously active match customization differences that were received by the host
var debug_match_customization = {
"number_of_rounds": 3,
"skipping_intro": false,
"round_property_array": [
{
"round_index": 0,
"starting_health": -1,
"item_properties": [
{
"item_id": 1, #handsaw
"max_per_player": 2,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 2, #magnifying glass
"max_per_player": 2,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 3, #jammer
"max_per_player": 1,
"max_on_table": 1,
"is_ingame": true},
{
"item_id": 4, #cigarettes
"max_per_player": 1,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 5, #beer
"max_per_player": 8,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 6, #burner phone
"max_per_player": 8,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 8, #adrenaline
"max_per_player": 4,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 9, #inverter
"max_per_player": 4,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 10, #remote
"max_per_player": 1,
"max_on_table": 2,
"is_ingame": true}],
"shell_load_properties": [
{
"sequence_index": 0,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 1,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 2,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 3,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},]},
{
"round_index": 1,
"starting_health": -1,
"item_properties": [
{
"item_id": 1, #handsaw
"max_per_player": 2,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 2, #magnifying glass
"max_per_player": 2,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 3, #jammer
"max_per_player": 1,
"max_on_table": 1,
"is_ingame": true},
{
"item_id": 4, #cigarettes
"max_per_player": 1,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 5, #beer
"max_per_player": 8,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 6, #burner phone
"max_per_player": 8,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 8, #adrenaline
"max_per_player": 4,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 9, #inverter
"max_per_player": 4,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 10, #remote
"max_per_player": 1,
"max_on_table": 2,
"is_ingame": true}],
"shell_load_properties": [
{
"sequence_index": 0,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 1,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 2,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 3,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},]
},
{
"round_index": 2,
"starting_health": -1,
"item_properties": [
{
"item_id": 1, #handsaw
"max_per_player": 2,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 2, #magnifying glass
"max_per_player": 2,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 3, #jammer
"max_per_player": 1,
"max_on_table": 1,
"is_ingame": true},
{
"item_id": 4, #cigarettes
"max_per_player": 1,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 5, #beer
"max_per_player": 8,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 6, #burner phone
"max_per_player": 8,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 8, #adrenaline
"max_per_player": 4,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 9, #inverter
"max_per_player": 4,
"max_on_table": 32,
"is_ingame": true},
{
"item_id": 10, #remote
"max_per_player": 1,
"max_on_table": 2,
"is_ingame": true}],
"shell_load_properties": [
{
"sequence_index": 0,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 1,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 2,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},
{
"sequence_index": 3,
"number_of_blanks": -1,
"number_of_lives": -1,
"number_of_items": -1,},]
}
]
}
func _ready():
if using_steam: currentVersion = currentVersion_nr + versuffix_steam
else: currentVersion = currentVersion_nr + versuffix_itch
debug_round_index_to_end_game_at = 2
original_volume_linear_interaction = db_to_linear(AudioServer.get_bus_volume_db(3))
original_volume_linear_music = db_to_linear(AudioServer.get_bus_volume_db(1))
version_to_check = currentVersion_nr + "." + str(currentVersion_hotfix)
print("running full version name: ", version_to_check)
if GlobalVariables.mp_debugging:
TranslationServer.set_locale("EN")
active_match_customization_dictionary = debug_match_customization
func _unhandled_input(event):
if GlobalVariables.mp_debugging:
if event.is_action_pressed("debug_q"):
SwapLanguage(false)
if event.is_action_pressed("debug_e"):
SwapLanguage(true)
if event.is_action_pressed("-"):
Engine.time_scale = .05
if event.is_action_pressed(","):
Engine.time_scale = 1
if event.is_action_pressed("."):
Engine.time_scale = 10
if event.is_action_pressed("end"):
Engine.time_scale = 0
var language_array = ["EN", "EE", "RU", "ES LATAM", "ES", "FR", "IT", "JA", "KO", "PL", "PT", "DE", "TR", "UA", "ZHS", "ZHT"]
var index = 0
func SwapLanguage(dir : bool):
if dir:
if index == language_array.size() - 1:
index = 0
else:
index += 1
else:
if index == 0:
index = language_array.size() - 1
else:
index -= 1
TranslationServer.set_locale(language_array[index])
print("setting locale to: ", language_array[index])