globalize_all_functions string pulsePrefix void function pulsePrefixSet() //Sets our prefix { pulsePrefix = format("\x1b[38;2;%i;%i;%im[PULSE]\x1b[0m", 255, 178, 102) } void function pulsePrintt(string content) //Prints whatever we want printed with given prefix (by standard [PULSE]). { printt(format("%s " + content, pulsePrefix)) } table function pulseGetCurrentVersionAsTable() //Gets our version numbers from mod.json and puts them in a table for use with pulseFormatAsVersion(). { table result = ["MajorVersion" = GetConVarString("MajorVersion"), "MinorVersion" = GetConVarString("MinorVersion"), "PatchVersion" = GetConVarString("PatchVersion")] return result } string function pulseFormatAsVersion(table Version) //Formats given version numbers into one neat string (example: v2.0.0). { return format("v%s.%s.%s", Version["MajorVersion"], Version["MinorVersion"], Version["PatchVersion"]) } bool function pulseIsUpToDate(string givenURL) //Compares version contained in our mod.json with a version.json contained on a remote GitHub repo (see VersionURL within mod.json). { bool result = false void functionref (HttpRequestResponse) onSuccess = void function(HttpRequestResponse response) { table DecodedJSON = DecodeJSON(response.body) if (pulseFormatAsVersion(DecodedJSON) == pulseFormatAsVersion(pulseGetCurrentVersionAsTable())) { result = true } else { result = false } } void functionref (HttpRequestFailure) onFailure = void function(HttpRequestFailure failure) { pulsePrintt("Something went wrong while getting latest version.") } NSHttpGet(givenURL, onSuccess, onFailure) return result } bool function pulseRequestData(string givenURL, table parameterTable) //Gets data from API (see ToneURL within mod.json) and puts it into one table for processing. { table > params foreach (parameter in paramTable) { params[parameter] <- [paramTable(parameter)] } void functionref (HttpRequestResponse) onSuccess = void function(HttpRequestResponse response) { table DecodedJSON = DecodeJSON(response.body) pulseData += DecodedJSON } void functionref (HttpRequestFailure) onFailure = void function(HttpRequestFailure failure) { pulsePrintt("Something went wrong while getting data.") } return NSHttpGet(givenURL, params, onSuccess, onFailure) } int function pulseParse(string parameter, string key, string value) { if (key == "maps") { parameter = parameter.slice(3) } if (key in pulseData) { table keyandvalTable = expect table(pulseData[key]) if (parameter in keyandvalTable) { table valTable = expect table(keyandvalTable[parameter]) return expect int(valTable[value]) } } return 0 }