Class Blursings: " + ("\n\n" + _rom.SpoilBlursings())
.Replace("\n\nFighter", "Fighter ")
.Replace("\n\nThief", "Thief ")
@@ -368,7 +402,6 @@
await JSRuntime.InvokeAsync("downloadFile", $"FFR_{_seed}_{_rom.GetHash()}.nes", encoded);
-
if(Flags.Spoilers && Utilities.SpoilerCache.Length > 0)
{
var encodedSpoiler = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(Utilities.SpoilerCache));
@@ -393,6 +426,7 @@
SetModalContent(modalContent + " " + StatusMessage);
SetGenerating(false);
}
+
StateHasChanged();
}
}
diff --git a/FF1Blazorizer/Tabs/FunTab.razor b/FF1Blazorizer/Tabs/FunTab.razor
index fc192bb71..7d4b59e70 100644
--- a/FF1Blazorizer/Tabs/FunTab.razor
+++ b/FF1Blazorizer/Tabs/FunTab.razor
@@ -13,6 +13,7 @@
Multi-instrumentalist Sara
Titan's Favorite Snack:
Hurray Dwarf's Fate:
+ Fun Fountain Text
Random Shard Names
Palette Swap
Modern Battlefield
diff --git a/FF1Blazorizer/Tabs/GoalTab.razor b/FF1Blazorizer/Tabs/GoalTab.razor
index 53dc43c63..e10dd0825 100644
--- a/FF1Blazorizer/Tabs/GoalTab.razor
+++ b/FF1Blazorizer/Tabs/GoalTab.razor
@@ -14,7 +14,12 @@
Temple of Fiends
Mode
- Fiends Refights
+ @if (Flags.ToFRMode == ToFRMode.Short)
+ {
+ Fiends Refights
+ } else {
+ Fiends Refights
+ }
Unlocked ToFR
Add ToFR Exit
Add Chaos Floor Encounters
diff --git a/FF1Blazorizer/Tabs/QoLTab.razor b/FF1Blazorizer/Tabs/QoLTab.razor
index 906ba1291..0e3843943 100644
--- a/FF1Blazorizer/Tabs/QoLTab.razor
+++ b/FF1Blazorizer/Tabs/QoLTab.razor
@@ -19,6 +19,7 @@
Accessible Spell Names
Cleaner Blursed Names
Shop Information Icons
+
Crop Friendly
Quick Controller 2 Reset
diff --git a/FF1Blazorizer/Tabs/ShopsTab.razor b/FF1Blazorizer/Tabs/ShopsTab.razor
index ecda872b2..5ec864350 100644
--- a/FF1Blazorizer/Tabs/ShopsTab.razor
+++ b/FF1Blazorizer/Tabs/ShopsTab.razor
@@ -54,6 +54,9 @@
Power Word Threshold:
Enable Soft in Battle
Life in Battle:
+ Sleep
+ Player Wake HP RNG Range:
+ @* Enemy Wake HP RNG Range: *@
Spell Crafter
diff --git a/FF1Blazorizer/Tabs/TreasuresTab.razor b/FF1Blazorizer/Tabs/TreasuresTab.razor
index 5792ac336..a7fd11a2e 100644
--- a/FF1Blazorizer/Tabs/TreasuresTab.razor
+++ b/FF1Blazorizer/Tabs/TreasuresTab.razor
@@ -36,7 +36,7 @@
Exclude Common Treasures
Exclude Incentivized Items
Trapped Chests are Marked
-
+
Freebies
diff --git a/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll b/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll
deleted file mode 100644
index 5bfebabd1..000000000
Binary files a/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll.br b/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll.br
deleted file mode 100644
index 00f93c585..000000000
Binary files a/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll.br and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll.gz b/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll.gz
deleted file mode 100644
index 4ac5ddbe6..000000000
Binary files a/FF1Blazorizer/output/wwwroot/_framework/System.Xml.Linq.dll.gz and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js b/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js
deleted file mode 100644
index d07c4854f..000000000
--- a/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js
+++ /dev/null
@@ -1,320 +0,0 @@
-var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i
>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for getValue: "+type)}return null}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);callRuntimeCallbacks(__ATINIT__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile="dotnet.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={577172:function($0,$1){MONO.string_decoder.decode($0,$0+$1,true)},577223:function($0,$1,$2){var js_str=MONO.string_decoder.copy($0);try{var res=eval(js_str);setValue($2,0,"i32");if(res===null||res===undefined)return 0;else res=res.toString()}catch(e){res=e.toString();setValue($2,1,"i32");if(res===null||res===undefined)res="unknown exception";var stack=e.stack;if(stack){if(stack.startsWith(res))res=stack;else res+="\n"+stack}}var buff=Module._malloc((res.length+1)*2);stringToUTF16(res,buff,(res.length+1)*2);setValue($1,res.length,"i32");return buff},577778:function($0,$1,$2,$3,$4){var log_level=$0;var message=Module.UTF8ToString($1);var isFatal=$2;var domain=Module.UTF8ToString($3);var dataPtr=$4;if(MONO["logging"]&&MONO.logging["trace"]){MONO.logging.trace(domain,log_level,message,isFatal,dataPtr);return}if(isFatal)console.trace(message);switch(Module.UTF8ToString($0)){case"critical":case"error":console.error(message);break;case"warning":console.warn(message);break;case"message":console.log(message);break;case"info":console.info(message);break;case"debug":console.debug(message);break;default:console.log(message);break}},578402:function($0,$1){var level=$0;var message=Module.UTF8ToString($1);var namespace="Debugger.Debug";if(MONO["logging"]&&MONO.logging["debugger"]){MONO.logging.debugger(level,message);return}console.debug("%s: %s",namespace,message)},578642:function($0,$1,$2,$3){MONO.mono_wasm_add_dbg_command_received($0,$1,$2,$3)},578704:function($0,$1,$2,$3){MONO.mono_wasm_add_dbg_command_received($0,$1,$2,$3)},578766:function($0,$1,$2,$3){MONO.mono_wasm_add_dbg_command_received($0,$1,$2,$3)},578828:function($0,$1,$2,$3){MONO.mono_wasm_add_dbg_command_received($0,$1,$2,$3)},578890:function($0,$1){MONO.mono_wasm_add_dbg_command_received(1,0,$0,$1)}};function compile_function(snippet_ptr,len,is_exception){try{var data=MONO.string_decoder.decode(snippet_ptr,snippet_ptr+len);var wrapper="(function () { "+data+" })";var funcFactory=eval(wrapper);var func=funcFactory();if(typeof func!=="function"){throw new Error("Code must return an instance of a JavaScript function. "+"Please use `return` statement to return a function.")}setValue(is_exception,0,"i32");return BINDING.js_to_mono_obj(func,true)}catch(e){res=e.toString();setValue(is_exception,1,"i32");if(res===null||res===undefined)res="unknown exception";return BINDING.js_to_mono_obj(res,true)}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function ___clock_gettime(a0,a1){return _clock_gettime(a0,a1)}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){var ptrSize=4;HEAP32[this.ptr+ptrSize>>2]=adjustedPtr};this.get_adjusted_ptr=function(){var ptrSize=4;return HEAP32[this.ptr+ptrSize>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){wasmTable.get(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_3(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);var stackTop=stackSave();var exceptionThrowBuf=stackAlloc(4);HEAP32[exceptionThrowBuf>>2]=thrown;for(var i=0;i>2];if(thrown!==adjusted){catchInfo.set_adjusted_ptr(adjusted)}setTempRet0(caughtType);return catchInfo.ptr|0}}stackRestore(stackTop);setTempRet0(thrownType);return catchInfo.ptr|0}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,65536);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_access(path,amode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(protocol){assert(streaming==(protocol==6))}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr==="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=ENVIRONMENT_IS_NODE?{"protocol":subProtocols.toString()}:subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!=="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data==="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,flags){if(!flags.binary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=ERRNO_CODES.ECONNREFUSED;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return ERRNO_CODES.EINVAL}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___sys_connect(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fadvise64_64(fd,offset,len,advice){return 0}function ___sys_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fstatfs64(fd,size,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return ___sys_statfs64(0,size,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ftruncate64(fd,zero,low,high){try{var length=SYSCALLS.get64(low,high);FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getpid(){return 42}function ___sys_getrusage(who,usage){try{_memset(usage,0,136);HEAP32[usage>>2]=1;HEAP32[usage+4>>2]=2;HEAP32[usage+8>>2]=3;HEAP32[usage+12>>2]=4;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_link(oldpath,newpath){return-34}function ___sys_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_madvise1(addr,length,advice){return 0}function ___sys_mkdir(path,mode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMmap2(addr,len,prot,flags,fd,off){off<<=12;var ptr;var allocated=false;if((flags&16)!==0&&addr%65536!==0){return-28}if((flags&32)!==0){ptr=_memalign(65536,len);if(!ptr)return-48;_memset(ptr,0,len);allocated=true}else{var info=FS.getStream(fd);if(!info)return-8;var res=FS.mmap(info,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,prot:prot,flags:flags,offset:off};return ptr}function ___sys_mmap2(addr,len,prot,flags,fd,off){try{return syscallMmap2(addr,len,prot,flags,fd,off)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_msync(addr,len,flags){try{var info=SYSCALLS.mappings[addr];if(!info)return 0;SYSCALLS.doMsync(addr,FS.getStream(info.fd),len,info.flags,0);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(stream){if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream)}SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_readlink(path,buf,bufsize){try{path=SYSCALLS.getStr(path);return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function inetPton4(str){var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);tempI64=[0>>>0,(tempDouble=0,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[sa+8>>2]=tempI64[0],HEAP32[sa+12>>2]=tempI64[1];break;case 10:addr=inetPton6(addr);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);HEAP32[sa+4>>2]=0;HEAP32[sa+24>>2]=0;break;default:return 5}return 0}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___sys_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_rename(old_path,new_path){try{old_path=SYSCALLS.getStr(old_path);new_path=SYSCALLS.getStr(new_path);FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);var dest=getSocketAddress(addr,addr_len,true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}else{return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_setsockopt(fd){try{return-50}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_shutdown(fd,how){try{getSocketFromFD(fd);return-52}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_symlink(target,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_unlink(path){try{path=SYSCALLS.getStr(path);FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);var seconds=HEAP32[times>>2];var nanoseconds=HEAP32[times+4>>2];var atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=8;seconds=HEAP32[times>>2];nanoseconds=HEAP32[times+4>>2];var mtime=seconds*1e3+nanoseconds/(1e3*1e3);FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _abort(){abort()}function _emscripten_get_now_res(){if(ENVIRONMENT_IS_NODE){return 1}else if(typeof dateNow!=="undefined"){return 1e3}else return 1e3}function _clock_getres(clk_id,res){var nsec;if(clk_id===0){nsec=1e3*1e3}else if(clk_id===1&&_emscripten_get_now_is_monotonic){nsec=_emscripten_get_now_res()}else{setErrNo(28);return-1}HEAP32[res>>2]=nsec/1e9|0;HEAP32[res+4>>2]=nsec;return 0}function _difftime(time1,time0){return time1-time0}var DOTNETENTROPY={batchedQuotaMax:65536,getBatchedRandomValues:function(buffer,bufferLength){for(var i=0;i>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_get_heap_max(){return 2147483648}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_pread(fd,iov,iovcnt,offset_low,offset_high,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_pwrite(fd,iov,iovcnt,offset_low,offset_high,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt,offset_low);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _flock(fd,operation){return 0}var GAI_ERRNO_MESSAGES={};function _gai_strerror(val){var buflen=256;if(!_gai_strerror.buffer){_gai_strerror.buffer=_malloc(buflen);GAI_ERRNO_MESSAGES["0"]="Success";GAI_ERRNO_MESSAGES[""+-1]="Invalid value for 'ai_flags' field";GAI_ERRNO_MESSAGES[""+-2]="NAME or SERVICE is unknown";GAI_ERRNO_MESSAGES[""+-3]="Temporary failure in name resolution";GAI_ERRNO_MESSAGES[""+-4]="Non-recoverable failure in name res";GAI_ERRNO_MESSAGES[""+-6]="'ai_family' not supported";GAI_ERRNO_MESSAGES[""+-7]="'ai_socktype' not supported";GAI_ERRNO_MESSAGES[""+-8]="SERVICE not supported for 'ai_socktype'";GAI_ERRNO_MESSAGES[""+-10]="Memory allocation failure";GAI_ERRNO_MESSAGES[""+-11]="System error returned in 'errno'";GAI_ERRNO_MESSAGES[""+-12]="Argument buffer overflow"}var msg="Unknown error";if(val in GAI_ERRNO_MESSAGES){if(GAI_ERRNO_MESSAGES[val].length>buflen-1){msg="Message too long"}else{msg=GAI_ERRNO_MESSAGES[val]}}writeAsciiToMemory(msg,_gai_strerror.buffer);return _gai_strerror.buffer}function _getTempRet0(){return getTempRet0()}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _gmtime_r(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();HEAP32[tmPtr+36>>2]=0;HEAP32[tmPtr+32>>2]=0;var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;if(!_gmtime_r.GMTString)_gmtime_r.GMTString=allocateUTF8("GMT");HEAP32[tmPtr+40>>2]=_gmtime_r.GMTString;return tmPtr}function _llvm_eh_typeid_for(type){return type}function _tzset(){if(_tzset.called)return;_tzset.called=true;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[__get_timezone()>>2]=stdTimezoneOffset*60;HEAP32[__get_daylight()>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}var MONO={pump_count:0,timeout_queue:[],spread_timers_maximum:0,_vt_stack:[],mono_wasm_runtime_is_ready:false,mono_wasm_ignore_pdb_load_errors:true,_id_table:{},pump_message:function(){if(!this.mono_background_exec)this.mono_background_exec=Module.cwrap("mono_background_exec",null);while(MONO.timeout_queue.length>0){--MONO.pump_count;MONO.timeout_queue.shift()()}while(MONO.pump_count>0){--MONO.pump_count;this.mono_background_exec()}},export_functions:function(module){module["pump_message"]=MONO.pump_message.bind(MONO);module["prevent_timer_throttling"]=MONO.prevent_timer_throttling.bind(MONO);module["mono_wasm_set_timeout_exec"]=MONO.mono_wasm_set_timeout_exec.bind(MONO);module["mono_load_runtime_and_bcl"]=MONO.mono_load_runtime_and_bcl.bind(MONO);module["mono_load_runtime_and_bcl_args"]=MONO.mono_load_runtime_and_bcl_args.bind(MONO);module["mono_wasm_load_bytes_into_heap"]=MONO.mono_wasm_load_bytes_into_heap.bind(MONO);module["mono_wasm_load_icu_data"]=MONO.mono_wasm_load_icu_data.bind(MONO);module["mono_wasm_get_icudt_name"]=MONO.mono_wasm_get_icudt_name.bind(MONO);module["mono_wasm_globalization_init"]=MONO.mono_wasm_globalization_init.bind(MONO);module["mono_wasm_get_loaded_files"]=MONO.mono_wasm_get_loaded_files.bind(MONO);module["mono_wasm_new_root_buffer"]=MONO.mono_wasm_new_root_buffer.bind(MONO);module["mono_wasm_new_root_buffer_from_pointer"]=MONO.mono_wasm_new_root_buffer_from_pointer.bind(MONO);module["mono_wasm_new_root"]=MONO.mono_wasm_new_root.bind(MONO);module["mono_wasm_new_roots"]=MONO.mono_wasm_new_roots.bind(MONO);module["mono_wasm_release_roots"]=MONO.mono_wasm_release_roots.bind(MONO);module["mono_wasm_load_config"]=MONO.mono_wasm_load_config.bind(MONO)},_base64Converter:{_base64Table:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],_makeByteReader:function(bytes,index,count){var position=typeof index==="number"?index:0;var endpoint;if(typeof count==="number")endpoint=position+count;else endpoint=bytes.length-position;var result={read:function(){if(position>=endpoint)return false;var nextByte=bytes[position];position+=1;return nextByte}};Object.defineProperty(result,"eof",{get:function(){return position>=endpoint},configurable:true,enumerable:true});return result},toBase64StringImpl:function(inArray,offset,length){var reader=this._makeByteReader(inArray,offset,length);var result="";var ch1=0,ch2=0,ch3=0,bits=0,equalsCount=0,sum=0;var mask1=(1<<24)-1,mask2=(1<<18)-1,mask3=(1<<12)-1,mask4=(1<<6)-1;var shift1=18,shift2=12,shift3=6,shift4=0;while(true){ch1=reader.read();ch2=reader.read();ch3=reader.read();if(ch1===false)break;if(ch2===false){ch2=0;equalsCount+=1}if(ch3===false){ch3=0;equalsCount+=1}sum=ch1<<16|ch2<<8|ch3<<0;bits=(sum&mask1)>>shift1;result+=this._base64Table[bits];bits=(sum&mask2)>>shift2;result+=this._base64Table[bits];if(equalsCount<2){bits=(sum&mask3)>>shift3;result+=this._base64Table[bits]}if(equalsCount===2){result+="=="}else if(equalsCount===1){result+="="}else{bits=(sum&mask4)>>shift4;result+=this._base64Table[bits]}}return result}},_mono_wasm_root_buffer_prototype:{_throw_index_out_of_range:function(){throw new Error("index out of range")},_check_in_range:function(index){if(index>=this.__count||index<0)this._throw_index_out_of_range()},get_address:function(index){this._check_in_range(index);return this.__offset+index*4},get_address_32:function(index){this._check_in_range(index);return this.__offset32+index},get:function(index){this._check_in_range(index);return Module.HEAP32[this.get_address_32(index)]},set:function(index,value){Module.HEAP32[this.get_address_32(index)]=value;return value},_unsafe_get:function(index){return Module.HEAP32[this.__offset32+index]},_unsafe_set:function(index,value){Module.HEAP32[this.__offset32+index]=value},clear:function(){if(this.__offset)MONO._zero_region(this.__offset,this.__count*4)},release:function(){if(this.__offset&&this.__ownsAllocation){MONO.mono_wasm_deregister_root(this.__offset);MONO._zero_region(this.__offset,this.__count*4);Module._free(this.__offset)}this.__handle=this.__offset=this.__count=this.__offset32=0},toString:function(){return"[root buffer @"+this.get_address(0)+", size "+this.__count+"]"}},_scratch_root_buffer:null,_scratch_root_free_indices:null,_scratch_root_free_indices_count:0,_scratch_root_free_instances:[],_mono_wasm_root_prototype:{get_address:function(){return this.__buffer.get_address(this.__index)},get_address_32:function(){return this.__buffer.get_address_32(this.__index)},get:function(){var result=this.__buffer._unsafe_get(this.__index);return result},set:function(value){this.__buffer._unsafe_set(this.__index,value);return value},valueOf:function(){return this.get()},clear:function(){this.set(0)},release:function(){const maxPooledInstances=128;if(MONO._scratch_root_free_instances.length>maxPooledInstances){MONO._mono_wasm_release_scratch_index(this.__index);this.__buffer=0;this.__index=0}else{this.set(0);MONO._scratch_root_free_instances.push(this)}},toString:function(){return"[root @"+this.get_address()+"]"}},_mono_wasm_release_scratch_index:function(index){if(index===undefined)return;this._scratch_root_buffer.set(index,0);this._scratch_root_free_indices[this._scratch_root_free_indices_count]=index;this._scratch_root_free_indices_count++},_mono_wasm_claim_scratch_index:function(){if(!this._scratch_root_buffer){const maxScratchRoots=8192;this._scratch_root_buffer=this.mono_wasm_new_root_buffer(maxScratchRoots,"js roots");this._scratch_root_free_indices=new Int32Array(maxScratchRoots);this._scratch_root_free_indices_count=maxScratchRoots;for(var i=0;i= 1");capacity=capacity|0;var capacityBytes=capacity*4;var offset=Module._malloc(capacityBytes);if(offset%4!==0)throw new Error("Malloc returned an unaligned offset");this._zero_region(offset,capacityBytes);var result=Object.create(this._mono_wasm_root_buffer_prototype);result.__offset=offset;result.__offset32=offset/4|0;result.__count=capacity;result.length=capacity;result.__handle=this.mono_wasm_register_root(offset,capacityBytes,msg||0);result.__ownsAllocation=true;return result},mono_wasm_new_root_buffer_from_pointer:function(offset,capacity,msg){if(!this.mono_wasm_register_root||!this.mono_wasm_deregister_root){this.mono_wasm_register_root=Module.cwrap("mono_wasm_register_root","number",["number","number","string"]);this.mono_wasm_deregister_root=Module.cwrap("mono_wasm_deregister_root",null,["number"])}if(capacity<=0)throw new Error("capacity >= 1");capacity=capacity|0;var capacityBytes=capacity*4;if(offset%4!==0)throw new Error("Unaligned offset");this._zero_region(offset,capacityBytes);var result=Object.create(this._mono_wasm_root_buffer_prototype);result.__offset=offset;result.__offset32=offset/4|0;result.__count=capacity;result.length=capacity;result.__handle=this.mono_wasm_register_root(offset,capacityBytes,msg||0);result.__ownsAllocation=false;return result},mono_wasm_new_root:function(value){var result;if(this._scratch_root_free_instances.length>0){result=this._scratch_root_free_instances.pop()}else{var index=this._mono_wasm_claim_scratch_index();var buffer=this._scratch_root_buffer;result=Object.create(this._mono_wasm_root_prototype);result.__buffer=buffer;result.__index=index}if(value!==undefined){if(typeof value!=="number")throw new Error("value must be an address in the managed heap");result.set(value)}else{result.set(0)}return result},mono_wasm_new_roots:function(count_or_values){var result;if(Array.isArray(count_or_values)){result=new Array(count_or_values.length);for(var i=0;i0){result=new Array(count_or_values);for(var i=0;ithis._debugger_buffer_len){if(this._debugger_buffer)Module._free(this._debugger_buffer);this._debugger_buffer_len=Math.max(command_parameters.length,this._debugger_buffer_len,256);this._debugger_buffer=Module._malloc(this._debugger_buffer_len)}this._debugger_heap_bytes=new Uint8Array(Module.HEAPU8.buffer,this._debugger_buffer,this._debugger_buffer_len);this._debugger_heap_bytes.set(this._base64_to_uint8(command_parameters))},mono_wasm_send_dbg_command_with_parms:function(id,command_set,command,command_parameters,length,valtype,newvalue){this.mono_wasm_malloc_and_set_debug_buffer(command_parameters);this._c_fn_table.mono_wasm_send_dbg_command_with_parms_wrapper(id,command_set,command,this._debugger_buffer,length,valtype,newvalue.toString());let{res_ok:res_ok,res:res}=MONO.commands_received.remove(id);if(!res_ok)throw new Error(`Failed on mono_wasm_invoke_method_debugger_agent_with_parms`);return res},mono_wasm_send_dbg_command:function(id,command_set,command,command_parameters){this.mono_wasm_malloc_and_set_debug_buffer(command_parameters);this._c_fn_table.mono_wasm_send_dbg_command_wrapper(id,command_set,command,this._debugger_buffer,command_parameters.length);let{res_ok:res_ok,res:res}=MONO.commands_received.remove(id);if(!res_ok)throw new Error(`Failed on mono_wasm_send_dbg_command`);return res},mono_wasm_get_dbg_command_info:function(){let{res_ok:res_ok,res:res}=MONO.commands_received.remove(0);if(!res_ok)throw new Error(`Failed on mono_wasm_get_dbg_command_info`);return res},_get_cfo_res_details:function(objectId,args){if(!(objectId in this._call_function_res_cache))throw new Error(`Could not find any object with id ${objectId}`);const real_obj=this._call_function_res_cache[objectId];const descriptors=Object.getOwnPropertyDescriptors(real_obj);if(args.accessorPropertiesOnly){Object.keys(descriptors).forEach(k=>{if(descriptors[k].get===undefined)Reflect.deleteProperty(descriptors,k)})}let res_details=[];Object.keys(descriptors).forEach(k=>{let new_obj;let prop_desc=descriptors[k];if(typeof prop_desc.value=="object"){new_obj=Object.assign({name:k},prop_desc)}else if(prop_desc.value!==undefined){new_obj={name:k,value:Object.assign({type:typeof prop_desc.value,description:""+prop_desc.value},prop_desc)}}else if(prop_desc.get!==undefined){new_obj={name:k,get:{className:"Function",description:`get ${k} () {}`,type:"function"}}}else{new_obj={name:k,value:{type:"symbol",value:"",description:""}}}res_details.push(new_obj)});return{__value_as_json_string__:JSON.stringify(res_details)}},mono_wasm_get_details:function(objectId,args={}){return this._get_cfo_res_details(`dotnet:cfo_res:${objectId}`,args)},_cache_call_function_res:function(obj){const id=`dotnet:cfo_res:${this._next_call_function_res_id++}`;this._call_function_res_cache[id]=obj;return id},mono_wasm_release_object:function(objectId){if(objectId in this._cache_call_function_res)delete this._cache_call_function_res[objectId]},_create_proxy_from_object_id:function(objectId,details){if(objectId.startsWith("dotnet:array:")){if(details.items===undefined){const ret=details.map(p=>p.value);return ret}if(details.dimensionsDetails==undefined||details.dimensionsDetails.length==1){const ret=details.items.map(p=>p.value);return ret}}let proxy={};Object.keys(details).forEach(p=>{var prop=details[p];if(prop.get!==undefined){Object.defineProperty(proxy,prop.name,{get(){return MONO.mono_wasm_send_dbg_command(prop.get.id,prop.get.commandSet,prop.get.command,prop.get.buffer,prop.get.length)},set:function(newValue){MONO.mono_wasm_send_dbg_command_with_parms(prop.set.id,prop.set.commandSet,prop.set.command,prop.set.buffer,prop.set.length,prop.set.valtype,newValue);return true}})}else if(prop.set!==undefined){Object.defineProperty(proxy,prop.name,{get(){return prop.value},set:function(newValue){MONO.mono_wasm_send_dbg_command_with_parms(prop.set.id,prop.set.commandSet,prop.set.command,prop.set.buffer,prop.set.length,prop.set.valtype,newValue);return true}})}else{proxy[prop.name]=prop.value}});return proxy},mono_wasm_call_function_on:function(request){if(request.arguments!=undefined&&!Array.isArray(request.arguments))throw new Error(`"arguments" should be an array, but was ${request.arguments}`);const objId=request.objectId;const details=request.details;let proxy;if(objId.startsWith("dotnet:cfo_res:")){if(objId in this._call_function_res_cache)proxy=this._call_function_res_cache[objId];else throw new Error(`Unknown object id ${objId}`)}else{proxy=this._create_proxy_from_object_id(objId,details)}const fn_args=request.arguments!=undefined?request.arguments.map(a=>JSON.stringify(a.value)):[];const fn_eval_str=`var fn = ${request.functionDeclaration}; fn.call (proxy, ...[${fn_args}]);`;const fn_res=eval(fn_eval_str);if(fn_res===undefined)return{type:"undefined"};if(Object(fn_res)!==fn_res){if(typeof fn_res=="object"&&fn_res==null)return{type:typeof fn_res,subtype:`${fn_res}`,value:null};return{type:typeof fn_res,description:`${fn_res}`,value:`${fn_res}`}}if(request.returnByValue&&fn_res.subtype==undefined)return{type:"object",value:fn_res};if(Object.getPrototypeOf(fn_res)==Array.prototype){const fn_res_id=this._cache_call_function_res(fn_res);return{type:"object",subtype:"array",className:"Array",description:`Array(${fn_res.length})`,objectId:fn_res_id}}if(fn_res.value!==undefined||fn_res.subtype!==undefined){return fn_res}if(fn_res==proxy)return{type:"object",className:"Object",description:"Object",objectId:objId};const fn_res_id=this._cache_call_function_res(fn_res);return{type:"object",className:"Object",description:"Object",objectId:fn_res_id}},_clear_per_step_state:function(){this._next_id_var=0;this._id_table={}},mono_wasm_debugger_resume:function(){this._clear_per_step_state()},mono_wasm_detach_debugger:function(){if(!this.mono_wasm_set_is_debugger_attached)this.mono_wasm_set_is_debugger_attached=Module.cwrap("mono_wasm_set_is_debugger_attached","void",["bool"]);this.mono_wasm_set_is_debugger_attached(false)},_register_c_fn:function(name,...args){Object.defineProperty(this._c_fn_table,name+"_wrapper",{value:Module.cwrap(name,...args)})},_register_c_var_fn:function(name,ret_type,params){if(ret_type!=="bool")throw new Error(`Bug: Expected a C function signature that returns bool`);this._register_c_fn(name,ret_type,params);Object.defineProperty(this,name+"_info",{value:function(...args){MONO.var_info=[];const res_ok=MONO._c_fn_table[name+"_wrapper"](...args);let res=MONO.var_info;MONO.var_info=[];if(res_ok){res=this._fixup_name_value_objects(res);return{res_ok:res_ok,res:res}}return{res_ok:res_ok,res:undefined}}})},mono_wasm_runtime_ready:function(){MONO.commands_received=new Map;MONO.commands_received.remove=function(key){const value=this.get(key);this.delete(key);return value};this.mono_wasm_runtime_is_ready=true;this._clear_per_step_state();this._next_call_function_res_id=0;this._call_function_res_cache={};this._c_fn_table={};this._register_c_fn("mono_wasm_send_dbg_command","bool",["number","number","number","number","number"]);this._register_c_fn("mono_wasm_send_dbg_command_with_parms","bool",["number","number","number","number","number","number","string"]);this._debugger_buffer_len=-1;if(globalThis.dotnetDebugger)debugger;else console.debug("mono_wasm_runtime_ready","fe00e07a-5519-4dfe-b35a-f867dbaf2e28")},mono_wasm_setenv:function(name,value){if(!this.wasm_setenv)this.wasm_setenv=Module.cwrap("mono_wasm_setenv",null,["string","string"]);this.wasm_setenv(name,value)},mono_wasm_set_runtime_options:function(options){if(!this.wasm_parse_runtime_options)this.wasm_parse_runtime_options=Module.cwrap("mono_wasm_parse_runtime_options",null,["number","number"]);var argv=Module._malloc(options.length*4);var wasm_strdup=Module.cwrap("mono_wasm_strdup","number",["string"]);let aindex=0;for(var i=0;i0?virtualName.substr(0,lastSlash):null;var fileName=lastSlash>0?virtualName.substr(lastSlash+1):virtualName;if(fileName.startsWith("/"))fileName=fileName.substr(1);if(parentDirectory){if(ctx.tracing)console.log("MONO_WASM: Creating directory '"+parentDirectory+"'");var pathRet=ctx.createPath("/",parentDirectory,true,true)}else{parentDirectory="/"}if(ctx.tracing)console.log("MONO_WASM: Creating file '"+fileName+"' in directory '"+parentDirectory+"'");if(!this.mono_wasm_load_data_archive(bytes,parentDirectory)){var fileRet=ctx.createDataFile(parentDirectory,fileName,bytes,true,true,true)}break;default:throw new Error("Unrecognized asset behavior:",asset.behavior,"for asset",asset.name)}if(asset.behavior==="assembly"){var hasPpdb=ctx.mono_wasm_add_assembly(virtualName,offset,bytes.length);if(!hasPpdb){var index=ctx.loaded_files.findIndex(element=>element.file==virtualName);ctx.loaded_files.splice(index,1)}}else if(asset.behavior==="icu"){if(this.mono_wasm_load_icu_data(offset))ctx.num_icu_assets_loaded_successfully+=1;else console.error("Error loading ICU asset",asset.name)}else if(asset.behavior==="resource"){ctx.mono_wasm_add_satellite_assembly(virtualName,asset.culture,offset,bytes.length)}},mono_load_runtime_and_bcl:function(unused_vfs_prefix,deploy_prefix,debug_level,file_list,loaded_cb,fetch_file_cb){var args={fetch_file_cb:fetch_file_cb,loaded_cb:loaded_cb,debug_level:debug_level,assembly_root:deploy_prefix,assets:[]};for(var i=0;iloaded_files_with_debug_info.push(value.url));MONO.loaded_files=loaded_files_with_debug_info;if(ctx.tracing){console.log("MONO_WASM: loaded_assets: "+JSON.stringify(ctx.loaded_assets));console.log("MONO_WASM: loaded_files: "+JSON.stringify(ctx.loaded_files))}var load_runtime=Module.cwrap("mono_wasm_load_runtime",null,["string","number"]);console.debug("MONO_WASM: Initializing mono runtime");this.mono_wasm_globalization_init(args.globalization_mode);if(ENVIRONMENT_IS_SHELL||ENVIRONMENT_IS_NODE){try{load_runtime("unused",args.debug_level)}catch(ex){print("MONO_WASM: load_runtime () failed: "+ex);print("MONO_WASM: Stacktrace: \n");print(ex.stack);var wasm_exit=Module.cwrap("mono_wasm_exit",null,["number"]);wasm_exit(1)}}else{load_runtime("unused",args.debug_level)}let tz;try{tz=Intl.DateTimeFormat().resolvedOptions().timeZone}catch{}MONO.mono_wasm_setenv("TZ",tz||"UTC");MONO.mono_wasm_runtime_ready();args.loaded_cb()},_load_assets_and_runtime:function(args){if(args.enable_debugging)args.debug_level=args.enable_debugging;if(args.assembly_list)throw new Error("Invalid args (assembly_list was replaced by assets)");if(args.runtime_assets)throw new Error("Invalid args (runtime_assets was replaced by assets)");if(args.runtime_asset_sources)throw new Error("Invalid args (runtime_asset_sources was replaced by remote_sources)");if(!args.loaded_cb)throw new Error("loaded_cb not provided");var ctx={tracing:args.diagnostic_tracing||false,pending_count:args.assets.length,mono_wasm_add_assembly:Module.cwrap("mono_wasm_add_assembly","number",["string","number","number"]),mono_wasm_add_satellite_assembly:Module.cwrap("mono_wasm_add_satellite_assembly","void",["string","string","number","number"]),loaded_assets:Object.create(null),loaded_files:[],createPath:Module["FS_createPath"],createDataFile:Module["FS_createDataFile"]};if(ctx.tracing)console.log("mono_wasm_load_runtime_with_args",JSON.stringify(args));this._apply_configuration_from_args(args);var fetch_file_cb=this._get_fetch_file_cb_from_args(args);var onPendingRequestComplete=function(){--ctx.pending_count;if(ctx.pending_count===0){try{MONO._finalize_startup(args,ctx)}catch(exc){console.error("Unhandled exception in _finalize_startup",exc);throw exc}}};var processFetchResponseBuffer=function(asset,url,blob){try{MONO._handle_loaded_asset(ctx,asset,url,blob)}catch(exc){console.error("Unhandled exception in processFetchResponseBuffer",exc);throw exc}finally{onPendingRequestComplete()}};args.assets.forEach(function(asset){var attemptNextSource;var sourceIndex=0;var sourcesList=asset.load_remote?args.remote_sources:[""];var handleFetchResponse=function(response){if(!response.ok){try{attemptNextSource();return}catch(exc){console.error("MONO_WASM: Unhandled exception in handleFetchResponse attemptNextSource for asset",asset.name,exc);throw exc}}try{var bufferPromise=response["arrayBuffer"]();bufferPromise.then(processFetchResponseBuffer.bind(this,asset,response.url))}catch(exc){console.error("MONO_WASM: Unhandled exception in handleFetchResponse for asset",asset.name,exc);attemptNextSource()}};attemptNextSource=function(){if(sourceIndex>=sourcesList.length){var msg="MONO_WASM: Failed to load "+asset.name;try{var isOk=asset.is_optional||asset.name.match(/\.pdb$/)&&MONO.mono_wasm_ignore_pdb_load_errors;if(isOk)console.debug(msg);else{console.error(msg);throw new Error(msg)}}finally{onPendingRequestComplete()}}var sourcePrefix=sourcesList[sourceIndex];sourceIndex++;if(sourcePrefix==="./")sourcePrefix="";var attemptUrl;if(sourcePrefix.trim()===""){if(asset.behavior==="assembly")attemptUrl=locateFile(args.assembly_root+"/"+asset.name);else if(asset.behavior==="resource"){var path=asset.culture!==""?`${asset.culture}/${asset.name}`:asset.name;attemptUrl=locateFile(args.assembly_root+"/"+path)}else attemptUrl=asset.name}else{attemptUrl=sourcePrefix+asset.name}try{if(asset.name===attemptUrl){if(ctx.tracing)console.log("Attempting to fetch '%s'",attemptUrl)}else{if(ctx.tracing)console.log("Attempting to fetch '%s' for '%s'",attemptUrl,asset.name)}var fetch_promise=fetch_file_cb(attemptUrl);fetch_promise.then(handleFetchResponse)}catch(exc){console.error("MONO_WASM: Error fetching '%s'\n%s",attemptUrl,exc);attemptNextSource()}};attemptNextSource()})},mono_wasm_globalization_init:function(globalization_mode){var invariantMode=false;if(globalization_mode==="invariant")invariantMode=true;if(!invariantMode){if(this.num_icu_assets_loaded_successfully>0){console.debug("MONO_WASM: ICU data archive(s) loaded, disabling invariant mode")}else if(globalization_mode!=="icu"){console.debug("MONO_WASM: ICU data archive(s) not loaded, using invariant globalization mode");invariantMode=true}else{var msg="invariant globalization mode is inactive and no ICU data archives were loaded";console.error("MONO_WASM: ERROR: "+msg);throw new Error(msg)}}if(invariantMode)this.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1");this.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY","1")},mono_wasm_get_loaded_files:function(){if(!this.mono_wasm_set_is_debugger_attached)this.mono_wasm_set_is_debugger_attached=Module.cwrap("mono_wasm_set_is_debugger_attached","void",["bool"]);this.mono_wasm_set_is_debugger_attached(true);return MONO.loaded_files},mono_wasm_get_loaded_asset_table:function(){return MONO.loaded_assets},_base64_to_uint8:function(base64String){const byteCharacters=atob(base64String);const byteNumbers=new Array(byteCharacters.length);for(let i=0;i{var file=m[0];var last=file.lastIndexOf("/");var directory=file.slice(0,last+1);folders.add(directory)});folders.forEach(folder=>{Module["FS_createPath"](prefix,folder,true,true)});for(row of manifest){var name=row[0];var length=row[1];var bytes=data.slice(0,length);Module["FS_createDataFile"](prefix,name,bytes,true,true);data=data.slice(length)}return true},mono_wasm_raise_debug_event:function(event,args={}){if(typeof event!=="object")throw new Error(`event must be an object, but got ${JSON.stringify(event)}`);if(event.eventName===undefined)throw new Error(`event.eventName is a required parameter, in event: ${JSON.stringify(event)}`);if(typeof args!=="object")throw new Error(`args must be an object, but got ${JSON.stringify(args)}`);console.debug("mono_wasm_debug_event_raised:aef14bca-5519-4dfe-b35a-f867abc123ae",JSON.stringify(event),JSON.stringify(args))},mono_wasm_load_config:async function(configFilePath){Module.addRunDependency(configFilePath);try{let config=null;if(ENVIRONMENT_IS_WEB){const configRaw=await fetch(configFilePath);config=await configRaw.json()}else if(ENVIRONMENT_IS_NODE){config=require(configFilePath)}else{config=JSON.parse(read(configFilePath))}Module.config=config}catch(e){Module.config={message:"failed to load config file",error:e}}finally{Module.removeRunDependency(configFilePath)}},mono_wasm_set_timeout_exec:function(id){if(!this.mono_set_timeout_exec)this.mono_set_timeout_exec=Module.cwrap("mono_set_timeout_exec",null,["number"]);this.mono_set_timeout_exec(id)},prevent_timer_throttling:function(){let now=(new Date).valueOf();const desired_reach_time=now+1e3*60*6;const next_reach_time=Math.max(now+1e3,this.spread_timers_maximum);const light_throttling_frequency=1e3;for(var schedule=next_reach_time;schedule{this.mono_wasm_set_timeout_exec(0);MONO.pump_count++;MONO.pump_message()},delay)}this.spread_timers_maximum=desired_reach_time}};function _mono_set_timeout(timeout,id){if(typeof globalThis.setTimeout==="function"){if(MONO.lastScheduleTimeoutId){globalThis.clearTimeout(MONO.lastScheduleTimeoutId);MONO.lastScheduleTimeoutId=undefined}MONO.lastScheduleTimeoutId=globalThis.setTimeout(function mono_wasm_set_timeout_exec(){MONO.mono_wasm_set_timeout_exec(id)},timeout)}else{++MONO.pump_count;MONO.timeout_queue.push(function(){MONO.mono_wasm_set_timeout_exec(id)})}}var BINDING={BINDING_ASM:"[System.Private.Runtime.InteropServices.JavaScript]System.Runtime.InteropServices.JavaScript.Runtime",_cs_owned_objects_by_js_handle:[],_js_handle_free_list:[],_next_js_handle:1,mono_wasm_marshal_enum_as_int:true,mono_bindings_init:function(binding_asm){this.BINDING_ASM=binding_asm},export_functions:function(module){module["mono_bindings_init"]=BINDING.mono_bindings_init.bind(BINDING);module["mono_bind_method"]=BINDING.bind_method.bind(BINDING);module["mono_method_invoke"]=BINDING.call_method.bind(BINDING);module["mono_method_get_call_signature"]=BINDING.mono_method_get_call_signature.bind(BINDING);module["mono_method_resolve"]=BINDING.resolve_method_fqn.bind(BINDING);module["mono_bind_static_method"]=BINDING.bind_static_method.bind(BINDING);module["mono_call_static_method"]=BINDING.call_static_method.bind(BINDING);module["mono_bind_assembly_entry_point"]=BINDING.bind_assembly_entry_point.bind(BINDING);module["mono_call_assembly_entry_point"]=BINDING.call_assembly_entry_point.bind(BINDING);module["mono_intern_string"]=BINDING.mono_intern_string.bind(BINDING)},bindings_lazy_init:function(){if(this.init)return;this.init=true;this.wasm_type_symbol=Symbol.for("wasm type");this.js_owned_gc_handle_symbol=Symbol.for("wasm js_owned_gc_handle");this.cs_owned_js_handle_symbol=Symbol.for("wasm cs_owned_js_handle");this.delegate_invoke_symbol=Symbol.for("wasm delegate_invoke");this.delegate_invoke_signature_symbol=Symbol.for("wasm delegate_invoke_signature");this.listener_registration_count_symbol=Symbol.for("wasm listener_registration_count");Object.prototype[this.wasm_type_symbol]=0;Array.prototype[this.wasm_type_symbol]=1;ArrayBuffer.prototype[this.wasm_type_symbol]=2;DataView.prototype[this.wasm_type_symbol]=3;Function.prototype[this.wasm_type_symbol]=4;Map.prototype[this.wasm_type_symbol]=5;if(typeof SharedArrayBuffer!=="undefined")SharedArrayBuffer.prototype[this.wasm_type_symbol]=6;Int8Array.prototype[this.wasm_type_symbol]=10;Uint8Array.prototype[this.wasm_type_symbol]=11;Uint8ClampedArray.prototype[this.wasm_type_symbol]=12;Int16Array.prototype[this.wasm_type_symbol]=13;Uint16Array.prototype[this.wasm_type_symbol]=14;Int32Array.prototype[this.wasm_type_symbol]=15;Uint32Array.prototype[this.wasm_type_symbol]=16;Float32Array.prototype[this.wasm_type_symbol]=17;Float64Array.prototype[this.wasm_type_symbol]=18;this.assembly_load=Module.cwrap("mono_wasm_assembly_load","number",["string"]);this.find_corlib_class=Module.cwrap("mono_wasm_find_corlib_class","number",["string","string"]);this.find_class=Module.cwrap("mono_wasm_assembly_find_class","number",["number","string","string"]);this._find_method=Module.cwrap("mono_wasm_assembly_find_method","number",["number","string","number"]);this.invoke_method=Module.cwrap("mono_wasm_invoke_method","number",["number","number","number","number"]);this.mono_string_get_utf8=Module.cwrap("mono_wasm_string_get_utf8","number",["number"]);this.mono_wasm_string_from_utf16=Module.cwrap("mono_wasm_string_from_utf16","number",["number","number"]);this.mono_get_obj_type=Module.cwrap("mono_wasm_get_obj_type","number",["number"]);this.mono_array_length=Module.cwrap("mono_wasm_array_length","number",["number"]);this.mono_array_get=Module.cwrap("mono_wasm_array_get","number",["number","number"]);this.mono_obj_array_new=Module.cwrap("mono_wasm_obj_array_new","number",["number"]);this.mono_obj_array_set=Module.cwrap("mono_wasm_obj_array_set","void",["number","number","number"]);this.mono_wasm_register_bundled_satellite_assemblies=Module.cwrap("mono_wasm_register_bundled_satellite_assemblies","void",[]);this.mono_wasm_try_unbox_primitive_and_get_type=Module.cwrap("mono_wasm_try_unbox_primitive_and_get_type","number",["number","number"]);this.mono_wasm_box_primitive=Module.cwrap("mono_wasm_box_primitive","number",["number","number","number"]);this.mono_wasm_intern_string=Module.cwrap("mono_wasm_intern_string","number",["number"]);this.assembly_get_entry_point=Module.cwrap("mono_wasm_assembly_get_entry_point","number",["number"]);this.mono_wasm_get_delegate_invoke=Module.cwrap("mono_wasm_get_delegate_invoke","number",["number"]);this.mono_wasm_string_array_new=Module.cwrap("mono_wasm_string_array_new","number",["number"]);this._box_buffer=Module._malloc(16);this._unbox_buffer=Module._malloc(16);this._class_int32=this.find_corlib_class("System","Int32");this._class_uint32=this.find_corlib_class("System","UInt32");this._class_double=this.find_corlib_class("System","Double");this._class_boolean=this.find_corlib_class("System","Boolean");this.mono_typed_array_new=Module.cwrap("mono_wasm_typed_array_new","number",["number","number","number","number"]);var binding_fqn_asm=this.BINDING_ASM.substring(this.BINDING_ASM.indexOf("[")+1,this.BINDING_ASM.indexOf("]")).trim();var binding_fqn_class=this.BINDING_ASM.substring(this.BINDING_ASM.indexOf("]")+1).trim();this.binding_module=this.assembly_load(binding_fqn_asm);if(!this.binding_module)throw"Can't find bindings module assembly: "+binding_fqn_asm;var namespace=null,classname=null;if(binding_fqn_class!==null&&typeof binding_fqn_class!=="undefined"){namespace="System.Runtime.InteropServices.JavaScript";classname=binding_fqn_class.length>0?binding_fqn_class:"Runtime";if(binding_fqn_class.indexOf(".")!=-1){var idx=binding_fqn_class.lastIndexOf(".");namespace=binding_fqn_class.substring(0,idx);classname=binding_fqn_class.substring(idx+1)}}var wasm_runtime_class=this.find_class(this.binding_module,namespace,classname);if(!wasm_runtime_class)throw"Can't find "+binding_fqn_class+" class";var get_method=function(method_name){var res=BINDING.find_method(wasm_runtime_class,method_name,-1);if(!res)throw"Can't find method "+namespace+"."+classname+":"+method_name;return res};var bind_runtime_method=function(method_name,signature){var method=get_method(method_name);return BINDING.bind_method(method,0,signature,"BINDINGS_"+method_name)};this.get_call_sig=get_method("GetCallSignature");this._get_cs_owned_object_by_js_handle=bind_runtime_method("GetCSOwnedObjectByJSHandle","ii!");this._get_cs_owned_object_js_handle=bind_runtime_method("GetCSOwnedObjectJSHandle","mi");this._try_get_cs_owned_object_js_handle=bind_runtime_method("TryGetCSOwnedObjectJSHandle","mi");this._create_cs_owned_proxy=bind_runtime_method("CreateCSOwnedProxy","iii!");this._get_js_owned_object_by_gc_handle=bind_runtime_method("GetJSOwnedObjectByGCHandle","i!");this._get_js_owned_object_gc_handle=bind_runtime_method("GetJSOwnedObjectGCHandle","m");this._release_js_owned_object_by_gc_handle=bind_runtime_method("ReleaseJSOwnedObjectByGCHandle","i");this._create_tcs=bind_runtime_method("CreateTaskSource","");this._set_tcs_result=bind_runtime_method("SetTaskSourceResult","io");this._set_tcs_failure=bind_runtime_method("SetTaskSourceFailure","is");this._get_tcs_task=bind_runtime_method("GetTaskSourceTask","i!");this._setup_js_cont=bind_runtime_method("SetupJSContinuation","mo");this._object_to_string=bind_runtime_method("ObjectToString","m");this._get_date_value=bind_runtime_method("GetDateValue","m");this._create_date_time=bind_runtime_method("CreateDateTime","d!");this._create_uri=bind_runtime_method("CreateUri","s!");this._is_simple_array=bind_runtime_method("IsSimpleArray","m");this._are_promises_supported=(typeof Promise==="object"||typeof Promise==="function")&&typeof Promise.resolve==="function";this.isThenable=(js_obj=>{return Promise.resolve(js_obj)===js_obj||(typeof js_obj==="object"||typeof js_obj==="function")&&typeof js_obj.then==="function"});this.isChromium=false;if(globalThis.navigator){var nav=globalThis.navigator;if(nav.userAgentData&&nav.userAgentData.brands){this.isChromium=nav.userAgentData.brands.some(i=>i.brand=="Chromium")}else if(globalThis.navigator.userAgent){this.isChromium=nav.userAgent.includes("Chrome")}}this._empty_string="";this._empty_string_ptr=0;this._interned_string_full_root_buffers=[];this._interned_string_current_root_buffer=null;this._interned_string_current_root_buffer_count=0;this._interned_js_string_table=new Map;this._js_owned_object_table=new Map;this._use_finalization_registry=typeof globalThis.FinalizationRegistry==="function";this._use_weak_ref=typeof globalThis.WeakRef==="function";if(this._use_finalization_registry){this._js_owned_object_registry=new globalThis.FinalizationRegistry(this._js_owned_object_finalized.bind(this))}},_js_owned_object_finalized:function(gc_handle){this._js_owned_object_table.delete(gc_handle);this._release_js_owned_object_by_gc_handle(gc_handle)},_lookup_js_owned_object:function(gc_handle){if(!gc_handle)return null;var wr=this._js_owned_object_table.get(gc_handle);if(wr){return wr.deref()}return null},_register_js_owned_object:function(gc_handle,js_obj){var wr;if(this._use_weak_ref){wr=new WeakRef(js_obj)}else{wr={deref:()=>{return js_obj}}}this._js_owned_object_table.set(gc_handle,wr)},_wrap_js_thenable_as_task:function(thenable){this.bindings_lazy_init();if(!thenable)return null;var thenable_js_handle=BINDING.mono_wasm_get_js_handle(thenable);const tcs_gc_handle=this._create_tcs();thenable.then(result=>{this._set_tcs_result(tcs_gc_handle,result);this._mono_wasm_release_js_handle(thenable_js_handle);if(!this._use_finalization_registry){this._release_js_owned_object_by_gc_handle(tcs_gc_handle)}},reason=>{this._set_tcs_failure(tcs_gc_handle,reason?reason.toString():"");this._mono_wasm_release_js_handle(thenable_js_handle);if(!this._use_finalization_registry){this._release_js_owned_object_by_gc_handle(tcs_gc_handle)}});if(this._use_finalization_registry){this._js_owned_object_registry.register(thenable,tcs_gc_handle)}return this._get_tcs_task(tcs_gc_handle)},_unbox_task_root_as_promise:function(root){this.bindings_lazy_init();const self=this;if(root.value===0)return null;if(!this._are_promises_supported)throw new Error("Promises are not supported thus 'System.Threading.Tasks.Task' can not work in this context.");const gc_handle=this._get_js_owned_object_gc_handle(root.value);var result=this._lookup_js_owned_object(gc_handle);if(!result){var cont_obj=null;var result=new Promise(function(resolve,reject){if(self._use_finalization_registry){cont_obj={resolve:resolve,reject:reject}}else{cont_obj={resolve:function(){const res=resolve.apply(null,arguments);self._js_owned_object_table.delete(gc_handle);self._release_js_owned_object_by_gc_handle(gc_handle);return res},reject:function(){const res=reject.apply(null,arguments);self._js_owned_object_table.delete(gc_handle);self._release_js_owned_object_by_gc_handle(gc_handle);return res}}}});this._setup_js_cont(root.value,cont_obj);if(this._use_finalization_registry){this._js_owned_object_registry.register(result,gc_handle)}this._register_js_owned_object(gc_handle,result)}return result},_unbox_ref_type_root_as_js_object:function(root){this.bindings_lazy_init();if(root.value===0)return null;var js_handle=this._try_get_cs_owned_object_js_handle(root.value,false);if(js_handle){if(js_handle===-1){throw new Error("Cannot access a disposed JSObject at "+root.value)}return this.mono_wasm_get_jsobj_from_js_handle(js_handle)}const gc_handle=this._get_js_owned_object_gc_handle(root.value);var result=this._lookup_js_owned_object(gc_handle);if(!result){result={};result[BINDING.js_owned_gc_handle_symbol]=gc_handle;if(this._use_finalization_registry){this._js_owned_object_registry.register(result,gc_handle)}this._register_js_owned_object(gc_handle,result)}return result},_wrap_delegate_root_as_function:function(root){this.bindings_lazy_init();if(root.value===0)return null;const gc_handle=this._get_js_owned_object_gc_handle(root.value);return this._wrap_delegate_gc_handle_as_function(gc_handle)},_wrap_delegate_gc_handle_as_function:function(gc_handle,after_listener_callback){this.bindings_lazy_init();var result=this._lookup_js_owned_object(gc_handle);if(!result){result=function(){const delegateRoot=MONO.mono_wasm_new_root(BINDING.get_js_owned_object_by_gc_handle(gc_handle));try{const res=BINDING.call_method(result[BINDING.delegate_invoke_symbol],delegateRoot.value,result[BINDING.delegate_invoke_signature_symbol],arguments);if(after_listener_callback){after_listener_callback()}return res}finally{delegateRoot.release()}};const delegateRoot=MONO.mono_wasm_new_root(BINDING.get_js_owned_object_by_gc_handle(gc_handle));try{if(typeof result[BINDING.delegate_invoke_symbol]==="undefined"){result[BINDING.delegate_invoke_symbol]=BINDING.mono_wasm_get_delegate_invoke(delegateRoot.value);if(!result[BINDING.delegate_invoke_symbol]){throw new Error("System.Delegate Invoke method can not be resolved.")}}if(typeof result[BINDING.delegate_invoke_signature_symbol]==="undefined"){result[BINDING.delegate_invoke_signature_symbol]=Module.mono_method_get_call_signature(result[BINDING.delegate_invoke_symbol],delegateRoot.value)}}finally{delegateRoot.release()}if(this._use_finalization_registry){this._js_owned_object_registry.register(result,gc_handle)}this._register_js_owned_object(gc_handle,result)}return result},mono_intern_string:function(string){if(string.length===0)return this._empty_string;var ptr=this.js_string_to_mono_string_interned(string);var result=MONO.interned_string_table.get(ptr);return result},_store_string_in_intern_table:function(string,ptr,internIt){if(!ptr)throw new Error("null pointer passed to _store_string_in_intern_table");else if(typeof ptr!=="number")throw new Error(`non-pointer passed to _store_string_in_intern_table: ${typeof ptr}`);const internBufferSize=8192;if(this._interned_string_current_root_buffer_count>=internBufferSize){this._interned_string_full_root_buffers.push(this._interned_string_current_root_buffer);this._interned_string_current_root_buffer=null}if(!this._interned_string_current_root_buffer){this._interned_string_current_root_buffer=MONO.mono_wasm_new_root_buffer(internBufferSize,"interned strings");this._interned_string_current_root_buffer_count=0}var rootBuffer=this._interned_string_current_root_buffer;var index=this._interned_string_current_root_buffer_count++;rootBuffer.set(index,ptr);if(internIt)rootBuffer.set(index,ptr=this.mono_wasm_intern_string(ptr));if(!ptr)throw new Error("mono_wasm_intern_string produced a null pointer");this._interned_js_string_table.set(string,ptr);if(!MONO.interned_string_table)MONO.interned_string_table=new Map;MONO.interned_string_table.set(ptr,string);if(string.length===0&&!this._empty_string_ptr)this._empty_string_ptr=ptr;return ptr},js_string_to_mono_string_interned:function(string){var text=typeof string==="symbol"?string.description||Symbol.keyFor(string)||"":string;if(text.length===0&&this._empty_string_ptr)return this._empty_string_ptr;var ptr=this._interned_js_string_table.get(string);if(ptr)return ptr;ptr=this.js_string_to_mono_string_new(text);ptr=this._store_string_in_intern_table(string,ptr,true);return ptr},js_string_to_mono_string:function(string){if(string===null)return null;else if(typeof string==="symbol")return this.js_string_to_mono_string_interned(string);else if(typeof string!=="string")throw new Error("Expected string argument, got "+typeof string);if(string.length===0)return this.js_string_to_mono_string_interned(string);if(string.length<=256){var interned=this._interned_js_string_table.get(string);if(interned)return interned}return this.js_string_to_mono_string_new(string)},js_string_to_mono_string_new:function(string){var buffer=Module._malloc((string.length+1)*2);var buffer16=buffer/2|0;for(var i=0;i0)return this.mono_wasm_get_jsobj_from_js_handle(js_handle);return null},_get_string_from_intern_table:function(mono_obj){if(!MONO.interned_string_table)return undefined;return MONO.interned_string_table.get(mono_obj)},conv_string:function(mono_obj){return MONO.string_decoder.copy(mono_obj)},is_nested_array:function(ele){return this._is_simple_array(ele)},mono_array_to_js_array:function(mono_array){if(mono_array===0)return null;var arrayRoot=MONO.mono_wasm_new_root(mono_array);try{return this._mono_array_root_to_js_array(arrayRoot)}finally{arrayRoot.release()}},_mono_array_root_to_js_array:function(arrayRoot){if(arrayRoot.value===0)return null;let elemRoot=MONO.mono_wasm_new_root();try{var len=this.mono_array_length(arrayRoot.value);var res=new Array(len);for(var i=0;i>>0===js_obj)result=this._box_js_uint(js_obj);else result=this._box_js_double(js_obj);if(!result)throw new Error(`Boxing failed for ${js_obj}`);return result}case typeof js_obj==="string":return this.js_string_to_mono_string(js_obj);case typeof js_obj==="symbol":return this.js_string_to_mono_string_interned(js_obj);case typeof js_obj==="boolean":return this._box_js_bool(js_obj);case this.isThenable(js_obj)===true:return this._wrap_js_thenable_as_task(js_obj);case js_obj.constructor.name==="Date":return this._create_date_time(js_obj.getTime());default:return this._extract_mono_obj(should_add_in_flight,js_obj)}},_extract_mono_obj:function(should_add_in_flight,js_obj){if(js_obj===null||typeof js_obj==="undefined")return 0;var result=null;if(js_obj[BINDING.js_owned_gc_handle_symbol]){result=this.get_js_owned_object_by_gc_handle(js_obj[BINDING.js_owned_gc_handle_symbol]);return result}if(js_obj[BINDING.cs_owned_js_handle_symbol]){result=this.get_cs_owned_object_by_js_handle(js_obj[BINDING.cs_owned_js_handle_symbol],should_add_in_flight);if(!result){delete js_obj[BINDING.cs_owned_js_handle_symbol]}}if(!result){const wasm_type=js_obj[this.wasm_type_symbol];const wasm_type_id=typeof wasm_type==="undefined"?0:wasm_type;var js_handle=BINDING.mono_wasm_get_js_handle(js_obj);result=this._create_cs_owned_proxy(js_handle,wasm_type_id,should_add_in_flight)}return result},has_backing_array_buffer:function(js_obj){return typeof SharedArrayBuffer!=="undefined"?js_obj.buffer instanceof ArrayBuffer||js_obj.buffer instanceof SharedArrayBuffer:js_obj.buffer instanceof ArrayBuffer},js_typed_array_to_array:function(js_obj){if(!!(this.has_backing_array_buffer(js_obj)&&js_obj.BYTES_PER_ELEMENT)){var arrayType=js_obj[this.wasm_type_symbol];var heapBytes=this.js_typedarray_to_heap(js_obj);var bufferArray=this.mono_typed_array_new(heapBytes.byteOffset,js_obj.length,js_obj.BYTES_PER_ELEMENT,arrayType);Module._free(heapBytes.byteOffset);return bufferArray}else{throw new Error("Object '"+js_obj+"' is not a typed array")}},typedarray_copy_to:function(typed_array,pinned_array,begin,end,bytes_per_element){if(!!(this.has_backing_array_buffer(typed_array)&&typed_array.BYTES_PER_ELEMENT)){if(bytes_per_element!==typed_array.BYTES_PER_ELEMENT)throw new Error("Inconsistent element sizes: TypedArray.BYTES_PER_ELEMENT '"+typed_array.BYTES_PER_ELEMENT+"' sizeof managed element: '"+bytes_per_element+"'");var num_of_bytes=(end-begin)*bytes_per_element;var view_bytes=typed_array.length*typed_array.BYTES_PER_ELEMENT;if(num_of_bytes>view_bytes)num_of_bytes=view_bytes;var offset=begin*bytes_per_element;var heapBytes=new Uint8Array(Module.HEAPU8.buffer,pinned_array+offset,num_of_bytes);heapBytes.set(new Uint8Array(typed_array.buffer,typed_array.byteOffset,num_of_bytes));return num_of_bytes}else{throw new Error("Object '"+typed_array+"' is not a typed array")}},typedarray_copy_from:function(typed_array,pinned_array,begin,end,bytes_per_element){if(!!(this.has_backing_array_buffer(typed_array)&&typed_array.BYTES_PER_ELEMENT)){if(bytes_per_element!==typed_array.BYTES_PER_ELEMENT)throw new Error("Inconsistent element sizes: TypedArray.BYTES_PER_ELEMENT '"+typed_array.BYTES_PER_ELEMENT+"' sizeof managed element: '"+bytes_per_element+"'");var num_of_bytes=(end-begin)*bytes_per_element;var view_bytes=typed_array.length*typed_array.BYTES_PER_ELEMENT;if(num_of_bytes>view_bytes)num_of_bytes=view_bytes;var typedarrayBytes=new Uint8Array(typed_array.buffer,0,num_of_bytes);var offset=begin*bytes_per_element;typedarrayBytes.set(Module.HEAPU8.subarray(pinned_array+offset,pinned_array+offset+num_of_bytes));return num_of_bytes}else{throw new Error("Object '"+typed_array+"' is not a typed array")}},typed_array_from:function(pinned_array,begin,end,bytes_per_element,type){var newTypedArray=0;switch(type){case 5:newTypedArray=new Int8Array(end-begin);break;case 6:newTypedArray=new Uint8Array(end-begin);break;case 7:newTypedArray=new Int16Array(end-begin);break;case 8:newTypedArray=new Uint16Array(end-begin);break;case 9:newTypedArray=new Int32Array(end-begin);break;case 10:newTypedArray=new Uint32Array(end-begin);break;case 13:newTypedArray=new Float32Array(end-begin);break;case 14:newTypedArray=new Float64Array(end-begin);break;case 15:newTypedArray=new Uint8ClampedArray(end-begin);break}this.typedarray_copy_from(newTypedArray,pinned_array,begin,end,bytes_per_element);return newTypedArray},js_to_mono_enum:function(js_obj,method,parmIdx){this.bindings_lazy_init();if(typeof js_obj!=="number")throw new Error(`Expected numeric value for enum argument, got '${js_obj}'`);return js_obj|0},get_js_owned_object_by_gc_handle:function(gc_handle){if(!gc_handle){return 0}return this._get_js_owned_object_by_gc_handle(gc_handle)},get_cs_owned_object_by_js_handle:function(js_handle,should_add_in_flight){if(!js_handle){return 0}return this._get_cs_owned_object_by_js_handle(js_handle,should_add_in_flight)},mono_method_get_call_signature:function(method,mono_obj){let instanceRoot=MONO.mono_wasm_new_root(mono_obj);try{this.bindings_lazy_init();return this.call_method(this.get_call_sig,null,"im",[method,instanceRoot.value])}finally{instanceRoot.release()}},_create_named_function:function(name,argumentNames,body,closure){var result=null,closureArgumentList=null,closureArgumentNames=null;if(closure){closureArgumentNames=Object.keys(closure);closureArgumentList=new Array(closureArgumentNames.length);for(var i=0,l=closureArgumentNames.length;i0;var has_args_marshal=typeof args_marshal==="string";if(has_args){if(!has_args_marshal)throw new Error("No signature provided for method call.");else if(args.length>args_marshal.length)throw new Error("Too many parameter values. Expected at most "+args_marshal.length+" value(s) for signature "+args_marshal)}return has_args_marshal&&has_args},_get_buffer_for_method_call:function(converter){if(!converter)return 0;var result=converter.scratchBuffer;converter.scratchBuffer=0;return result},_get_args_root_buffer_for_method_call:function(converter){if(!converter)return null;if(!converter.needs_root_buffer)return null;var result;if(converter.scratchRootBuffer){result=converter.scratchRootBuffer;converter.scratchRootBuffer=null}else{result=MONO.mono_wasm_new_root_buffer(converter.steps.length);result.converter=converter}return result},_release_args_root_buffer_from_method_call:function(converter,argsRootBuffer){if(!argsRootBuffer||!converter)return;if(!converter.scratchRootBuffer){argsRootBuffer.clear();converter.scratchRootBuffer=argsRootBuffer}else{argsRootBuffer.release()}},_release_buffer_from_method_call:function(converter,buffer){if(!converter||!buffer)return;if(!converter.scratchBuffer)converter.scratchBuffer=buffer|0;else Module._free(buffer|0)},_convert_exception_for_method_call:function(result,exception){if(exception===0)return null;var msg=this.conv_string(result);var err=new Error(msg);return err},_maybe_produce_signature_warning:function(converter){if(converter.has_warned_about_signature)return;console.warn("MONO_WASM: Deprecated raw return value signature: '"+converter.args_marshal+"'. End the signature with '!' instead of 'm'.");converter.has_warned_about_signature=true},_decide_if_result_is_marshaled:function(converter,argc){if(!converter)return true;if(converter.is_result_possibly_unmarshaled&&argc===converter.result_unmarshaled_if_argc){if(argc= ",converter.result_unmarshaled_if_argc,"argument(s) but got",argc,"for signature "+converter.args_marshal].join(" "));this._maybe_produce_signature_warning(converter);return false}else{if(argc0&&Array.isArray(args[0]))args[0]=BINDING.js_array_to_mono_array(args[0],true,false);let result=BINDING.call_method(method,null,signature,args);return Promise.resolve(result)}catch(error){return Promise.reject(error)}}},call_assembly_entry_point:function(assembly,args,signature){return this.bind_assembly_entry_point(assembly,signature)(...args)},mono_wasm_get_jsobj_from_js_handle:function(js_handle){if(js_handle>0)return this._cs_owned_objects_by_js_handle[js_handle];return null},mono_wasm_get_js_handle:function(js_obj){if(js_obj[BINDING.cs_owned_js_handle_symbol]){return js_obj[BINDING.cs_owned_js_handle_symbol]}var js_handle=this._js_handle_free_list.length?this._js_handle_free_list.pop():this._next_js_handle++;this._cs_owned_objects_by_js_handle[js_handle]=js_obj;js_obj[BINDING.cs_owned_js_handle_symbol]=js_handle;return js_handle},_mono_wasm_release_js_handle:function(js_handle){var obj=BINDING._cs_owned_objects_by_js_handle[js_handle];if(typeof obj!=="undefined"&&obj!==null){if(globalThis===obj)return obj;if(typeof obj[BINDING.cs_owned_js_handle_symbol]!=="undefined"){obj[BINDING.cs_owned_js_handle_symbol]=undefined}BINDING._cs_owned_objects_by_js_handle[js_handle]=undefined;BINDING._js_handle_free_list.push(js_handle)}return obj}};function _mono_wasm_add_event_listener(objHandle,name,listener_gc_handle,optionsHandle){var nameRoot=MONO.mono_wasm_new_root(name);try{BINDING.bindings_lazy_init();var sName=BINDING.conv_string(nameRoot.value);var obj=BINDING.mono_wasm_get_jsobj_from_js_handle(objHandle);if(!obj)throw new Error("ERR09: Invalid JS object handle for '"+sName+"'");const prevent_timer_throttling=!BINDING.isChromium||obj.constructor.name!=="WebSocket"?null:()=>MONO.prevent_timer_throttling(0);var listener=BINDING._wrap_delegate_gc_handle_as_function(listener_gc_handle,prevent_timer_throttling);if(!listener)throw new Error("ERR10: Invalid listener gc_handle");var options=optionsHandle?BINDING.mono_wasm_get_jsobj_from_js_handle(optionsHandle):null;if(!BINDING._use_finalization_registry){listener[BINDING.listener_registration_count_symbol]=listener[BINDING.listener_registration_count_symbol]?listener[BINDING.listener_registration_count_symbol]+1:1}if(options)obj.addEventListener(sName,listener,options);else obj.addEventListener(sName,listener);return 0}catch(exc){return BINDING.js_string_to_mono_string(exc.message)}finally{nameRoot.release()}}function _mono_wasm_asm_loaded(assembly_name,assembly_ptr,assembly_len,pdb_ptr,pdb_len){if(MONO.mono_wasm_runtime_is_ready!==true)return;const assembly_name_str=assembly_name!==0?Module.UTF8ToString(assembly_name).concat(".dll"):"";const assembly_data=new Uint8Array(Module.HEAPU8.buffer,assembly_ptr,assembly_len);const assembly_b64=MONO._base64Converter.toBase64StringImpl(assembly_data);let pdb_b64;if(pdb_ptr){const pdb_data=new Uint8Array(Module.HEAPU8.buffer,pdb_ptr,pdb_len);pdb_b64=MONO._base64Converter.toBase64StringImpl(pdb_data)}MONO.mono_wasm_raise_debug_event({eventName:"AssemblyLoaded",assembly_name:assembly_name_str,assembly_b64:assembly_b64,pdb_b64:pdb_b64})}function _mono_wasm_create_cs_owned_object(core_name,args,is_exception){var argsRoot=MONO.mono_wasm_new_root(args),nameRoot=MONO.mono_wasm_new_root(core_name);try{BINDING.bindings_lazy_init();var js_name=BINDING.conv_string(nameRoot.value);if(!js_name){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("Invalid name @"+nameRoot.value)}var coreObj=globalThis[js_name];if(coreObj===null||typeof coreObj==="undefined"){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("JavaScript host object '"+js_name+"' not found.")}var js_args=BINDING._mono_array_root_to_js_array(argsRoot);try{var allocator=function(constructor,js_args){var argsList=new Array;argsList[0]=constructor;if(js_args)argsList=argsList.concat(js_args);var tempCtor=constructor.bind.apply(constructor,argsList);var js_obj=new tempCtor;return js_obj};var js_obj=allocator(coreObj,js_args);var js_handle=BINDING.mono_wasm_get_js_handle(js_obj);return BINDING._js_to_mono_obj(false,js_handle)}catch(e){var res=e.toString();setValue(is_exception,1,"i32");if(res===null||res===undefined)res="Error allocating object.";return BINDING.js_string_to_mono_string(res)}}finally{argsRoot.release();nameRoot.release()}}function _mono_wasm_fire_debugger_agent_message(){debugger}function _mono_wasm_get_by_index(js_handle,property_index,is_exception){BINDING.bindings_lazy_init();var obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR03: Invalid JS object handle '"+js_handle+"' while getting ["+property_index+"]")}try{var m=obj[property_index];return BINDING._js_to_mono_obj(true,m)}catch(e){var res=e.toString();setValue(is_exception,1,"i32");if(res===null||typeof res==="undefined")res="unknown exception";return BINDING.js_string_to_mono_string(res)}}function _mono_wasm_get_global_object(global_name,is_exception){var nameRoot=MONO.mono_wasm_new_root(global_name);try{BINDING.bindings_lazy_init();var js_name=BINDING.conv_string(nameRoot.value);var globalObj;if(!js_name){globalObj=globalThis}else{globalObj=globalThis[js_name]}if(globalObj===null||typeof globalObj===undefined){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("Global object '"+js_name+"' not found.")}return BINDING._js_to_mono_obj(true,globalObj)}finally{nameRoot.release()}}function _mono_wasm_get_object_property(js_handle,property_name,is_exception){BINDING.bindings_lazy_init();var nameRoot=MONO.mono_wasm_new_root(property_name);try{var js_name=BINDING.conv_string(nameRoot.value);if(!js_name){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("Invalid property name object '"+nameRoot.value+"'")}var obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR01: Invalid JS object handle '"+js_handle+"' while geting '"+js_name+"'")}var res;try{var m=obj[js_name];return BINDING._js_to_mono_obj(true,m)}catch(e){var res=e.toString();setValue(is_exception,1,"i32");if(res===null||typeof res==="undefined")res="unknown exception";return BINDING.js_string_to_mono_string(res)}}finally{nameRoot.release()}}var DOTNET={conv_string:function(mono_obj){return MONO.string_decoder.copy(mono_obj)}};function _mono_wasm_invoke_js_blazor(exceptionMessage,callInfo,arg0,arg1,arg2){var mono_string=globalThis._mono_string_cached||(globalThis._mono_string_cached=Module.cwrap("mono_wasm_string_from_js","number",["string"]));try{var blazorExports=globalThis.Blazor;if(!blazorExports){throw new Error("The blazor.webassembly.js library is not loaded.")}return blazorExports._internal.invokeJSFromDotNet(callInfo,arg0,arg1,arg2)}catch(ex){var exceptionJsString=ex.message+"\n"+ex.stack;var exceptionSystemString=mono_string(exceptionJsString);setValue(exceptionMessage,exceptionSystemString,"i32");return 0}}function _mono_wasm_invoke_js_marshalled(exceptionMessage,asyncHandleLongPtr,functionName,argsJson,treatResultAsVoid){var mono_string=globalThis._mono_string_cached||(globalThis._mono_string_cached=Module.cwrap("mono_wasm_string_from_js","number",["string"]));try{var u32Index=asyncHandleLongPtr>>2;var asyncHandleJsNumber=Module.HEAPU32[u32Index+1]*4294967296+Module.HEAPU32[u32Index];var funcNameJsString=DOTNET.conv_string(functionName);var argsJsonJsString=argsJson&&DOTNET.conv_string(argsJson);var dotNetExports=globaThis.DotNet;if(!dotNetExports){throw new Error("The Microsoft.JSInterop.js library is not loaded.")}if(asyncHandleJsNumber){dotNetExports.jsCallDispatcher.beginInvokeJSFromDotNet(asyncHandleJsNumber,funcNameJsString,argsJsonJsString,treatResultAsVoid);return 0}else{var resultJson=dotNetExports.jsCallDispatcher.invokeJSFromDotNet(funcNameJsString,argsJsonJsString,treatResultAsVoid);return resultJson===null?0:mono_string(resultJson)}}catch(ex){var exceptionJsString=ex.message+"\n"+ex.stack;var exceptionSystemString=mono_string(exceptionJsString);setValue(exceptionMessage,exceptionSystemString,"i32");return 0}}function _mono_wasm_invoke_js_unmarshalled(exceptionMessage,funcName,arg0,arg1,arg2){try{var funcNameJsString=DOTNET.conv_string(funcName);var dotNetExports=globalThis.DotNet;if(!dotNetExports){throw new Error("The Microsoft.JSInterop.js library is not loaded.")}var funcInstance=dotNetExports.jsCallDispatcher.findJSFunction(funcNameJsString);return funcInstance.call(null,arg0,arg1,arg2)}catch(ex){var exceptionJsString=ex.message+"\n"+ex.stack;var mono_string=Module.cwrap("mono_wasm_string_from_js","number",["string"]);var exceptionSystemString=mono_string(exceptionJsString);setValue(exceptionMessage,exceptionSystemString,"i32");return 0}}function _mono_wasm_invoke_js_with_args(js_handle,method_name,args,is_exception){let argsRoot=MONO.mono_wasm_new_root(args),nameRoot=MONO.mono_wasm_new_root(method_name);try{BINDING.bindings_lazy_init();var js_name=BINDING.conv_string(nameRoot.value);if(!js_name||typeof js_name!=="string"){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR12: Invalid method name object '"+nameRoot.value+"'")}var obj=BINDING.get_js_obj(js_handle);if(!obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR13: Invalid JS object handle '"+js_handle+"' while invoking '"+js_name+"'")}var js_args=BINDING._mono_array_root_to_js_array(argsRoot);var res;try{var m=obj[js_name];if(typeof m==="undefined")throw new Error("Method: '"+js_name+"' not found for: '"+Object.prototype.toString.call(obj)+"'");var res=m.apply(obj,js_args);return BINDING._js_to_mono_obj(true,res)}catch(e){var res=e.toString();setValue(is_exception,1,"i32");if(res===null||res===undefined)res="unknown exception";return BINDING.js_string_to_mono_string(res)}}finally{argsRoot.release();nameRoot.release()}}function _mono_wasm_release_cs_owned_object(js_handle){BINDING.bindings_lazy_init();BINDING._mono_wasm_release_js_handle(js_handle)}function _mono_wasm_remove_event_listener(objHandle,name,listener_gc_handle,capture){var nameRoot=MONO.mono_wasm_new_root(name);try{BINDING.bindings_lazy_init();var obj=BINDING.mono_wasm_get_jsobj_from_js_handle(objHandle);if(!obj)throw new Error("ERR11: Invalid JS object handle");var listener=BINDING._lookup_js_owned_object(listener_gc_handle);if(!listener)return;var sName=BINDING.conv_string(nameRoot.value);obj.removeEventListener(sName,listener,!!capture);if(!BINDING._use_finalization_registry){listener[BINDING.listener_registration_count_symbol]--;if(listener[BINDING.listener_registration_count_symbol]===0){BINDING._js_owned_object_table.delete(listener_gc_handle);BINDING._release_js_owned_object_by_gc_handle(listener_gc_handle)}}return 0}catch(exc){return BINDING.js_string_to_mono_string(exc.message)}finally{nameRoot.release()}}function _mono_wasm_set_by_index(js_handle,property_index,value,is_exception){var valueRoot=MONO.mono_wasm_new_root(value);try{BINDING.bindings_lazy_init();var obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR04: Invalid JS object handle '"+js_handle+"' while setting ["+property_index+"]")}var js_value=BINDING._unbox_mono_obj_root(valueRoot);try{obj[property_index]=js_value;return true}catch(e){var res=e.toString();setValue(is_exception,1,"i32");if(res===null||typeof res==="undefined")res="unknown exception";return BINDING.js_string_to_mono_string(res)}}finally{valueRoot.release()}}function _mono_wasm_set_object_property(js_handle,property_name,value,createIfNotExist,hasOwnProperty,is_exception){var valueRoot=MONO.mono_wasm_new_root(value),nameRoot=MONO.mono_wasm_new_root(property_name);try{BINDING.bindings_lazy_init();var property=BINDING.conv_string(nameRoot.value);if(!property){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("Invalid property name object '"+property_name+"'")}var js_obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!js_obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR02: Invalid JS object handle '"+js_handle+"' while setting '"+property+"'")}var result=false;var js_value=BINDING._unbox_mono_obj_root(valueRoot);if(createIfNotExist){js_obj[property]=js_value;result=true}else{result=false;if(!createIfNotExist){if(!js_obj.hasOwnProperty(property))return false}if(hasOwnProperty===true){if(js_obj.hasOwnProperty(property)){js_obj[property]=js_value;result=true}}else{js_obj[property]=js_value;result=true}}return BINDING._box_js_bool(result)}finally{nameRoot.release();valueRoot.release()}}function _mono_wasm_typed_array_copy_from(js_handle,pinned_array,begin,end,bytes_per_element,is_exception){BINDING.bindings_lazy_init();var js_obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!js_obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR08: Invalid JS object handle '"+js_handle+"'")}var res=BINDING.typedarray_copy_from(js_obj,pinned_array,begin,end,bytes_per_element);return BINDING._js_to_mono_obj(false,res)}function _mono_wasm_typed_array_copy_to(js_handle,pinned_array,begin,end,bytes_per_element,is_exception){BINDING.bindings_lazy_init();var js_obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!js_obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR07: Invalid JS object handle '"+js_handle+"'")}var res=BINDING.typedarray_copy_to(js_obj,pinned_array,begin,end,bytes_per_element);return BINDING._js_to_mono_obj(false,res)}function _mono_wasm_typed_array_from(pinned_array,begin,end,bytes_per_element,type,is_exception){BINDING.bindings_lazy_init();var res=BINDING.typed_array_from(pinned_array,begin,end,bytes_per_element,type);return BINDING._js_to_mono_obj(true,res)}function _mono_wasm_typed_array_to_array(js_handle,is_exception){BINDING.bindings_lazy_init();var js_obj=BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);if(!js_obj){setValue(is_exception,1,"i32");return BINDING.js_string_to_mono_string("ERR06: Invalid JS object handle '"+js_handle+"'")}return BINDING.js_typed_array_to_array(js_obj,false)}function _schedule_background_exec(){++MONO.pump_count;if(typeof globalThis.setTimeout==="function"){globalThis.setTimeout(MONO.pump_message,0)}}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;MONO.export_functions(Module);BINDING.export_functions(Module);var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"__assert_fail":___assert_fail,"__clock_gettime":___clock_gettime,"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_begin_catch":___cxa_begin_catch,"__cxa_end_catch":___cxa_end_catch,"__cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"__cxa_throw":___cxa_throw,"__resumeException":___resumeException,"__sys_access":___sys_access,"__sys_chdir":___sys_chdir,"__sys_chmod":___sys_chmod,"__sys_connect":___sys_connect,"__sys_fadvise64_64":___sys_fadvise64_64,"__sys_fchmod":___sys_fchmod,"__sys_fcntl64":___sys_fcntl64,"__sys_fstat64":___sys_fstat64,"__sys_fstatfs64":___sys_fstatfs64,"__sys_ftruncate64":___sys_ftruncate64,"__sys_getcwd":___sys_getcwd,"__sys_getdents64":___sys_getdents64,"__sys_getpid":___sys_getpid,"__sys_getrusage":___sys_getrusage,"__sys_ioctl":___sys_ioctl,"__sys_link":___sys_link,"__sys_lstat64":___sys_lstat64,"__sys_madvise1":___sys_madvise1,"__sys_mkdir":___sys_mkdir,"__sys_mmap2":___sys_mmap2,"__sys_msync":___sys_msync,"__sys_munmap":___sys_munmap,"__sys_open":___sys_open,"__sys_readlink":___sys_readlink,"__sys_recvfrom":___sys_recvfrom,"__sys_rename":___sys_rename,"__sys_rmdir":___sys_rmdir,"__sys_sendto":___sys_sendto,"__sys_setsockopt":___sys_setsockopt,"__sys_shutdown":___sys_shutdown,"__sys_socket":___sys_socket,"__sys_stat64":___sys_stat64,"__sys_symlink":___sys_symlink,"__sys_unlink":___sys_unlink,"__sys_utimensat":___sys_utimensat,"abort":_abort,"clock_getres":_clock_getres,"clock_gettime":_clock_gettime,"compile_function":compile_function,"difftime":_difftime,"dotnet_browser_entropy":_dotnet_browser_entropy,"emscripten_asm_const_int":_emscripten_asm_const_int,"emscripten_get_heap_max":_emscripten_get_heap_max,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"emscripten_thread_sleep":_emscripten_thread_sleep,"environ_get":_environ_get,"environ_sizes_get":_environ_sizes_get,"exit":_exit,"fd_close":_fd_close,"fd_fdstat_get":_fd_fdstat_get,"fd_pread":_fd_pread,"fd_pwrite":_fd_pwrite,"fd_read":_fd_read,"fd_seek":_fd_seek,"fd_sync":_fd_sync,"fd_write":_fd_write,"flock":_flock,"gai_strerror":_gai_strerror,"getTempRet0":_getTempRet0,"gettimeofday":_gettimeofday,"gmtime_r":_gmtime_r,"invoke_vi":invoke_vi,"llvm_eh_typeid_for":_llvm_eh_typeid_for,"localtime_r":_localtime_r,"mono_set_timeout":_mono_set_timeout,"mono_wasm_add_event_listener":_mono_wasm_add_event_listener,"mono_wasm_asm_loaded":_mono_wasm_asm_loaded,"mono_wasm_create_cs_owned_object":_mono_wasm_create_cs_owned_object,"mono_wasm_fire_debugger_agent_message":_mono_wasm_fire_debugger_agent_message,"mono_wasm_get_by_index":_mono_wasm_get_by_index,"mono_wasm_get_global_object":_mono_wasm_get_global_object,"mono_wasm_get_object_property":_mono_wasm_get_object_property,"mono_wasm_invoke_js_blazor":_mono_wasm_invoke_js_blazor,"mono_wasm_invoke_js_marshalled":_mono_wasm_invoke_js_marshalled,"mono_wasm_invoke_js_unmarshalled":_mono_wasm_invoke_js_unmarshalled,"mono_wasm_invoke_js_with_args":_mono_wasm_invoke_js_with_args,"mono_wasm_release_cs_owned_object":_mono_wasm_release_cs_owned_object,"mono_wasm_remove_event_listener":_mono_wasm_remove_event_listener,"mono_wasm_set_by_index":_mono_wasm_set_by_index,"mono_wasm_set_object_property":_mono_wasm_set_object_property,"mono_wasm_typed_array_copy_from":_mono_wasm_typed_array_copy_from,"mono_wasm_typed_array_copy_to":_mono_wasm_typed_array_copy_to,"mono_wasm_typed_array_from":_mono_wasm_typed_array_from,"mono_wasm_typed_array_to_array":_mono_wasm_typed_array_to_array,"schedule_background_exec":_schedule_background_exec,"setTempRet0":_setTempRet0,"strftime":_strftime,"time":_time,"tzset":_tzset};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _mono_wasm_register_root=Module["_mono_wasm_register_root"]=function(){return(_mono_wasm_register_root=Module["_mono_wasm_register_root"]=Module["asm"]["mono_wasm_register_root"]).apply(null,arguments)};var _mono_wasm_deregister_root=Module["_mono_wasm_deregister_root"]=function(){return(_mono_wasm_deregister_root=Module["_mono_wasm_deregister_root"]=Module["asm"]["mono_wasm_deregister_root"]).apply(null,arguments)};var _mono_wasm_add_assembly=Module["_mono_wasm_add_assembly"]=function(){return(_mono_wasm_add_assembly=Module["_mono_wasm_add_assembly"]=Module["asm"]["mono_wasm_add_assembly"]).apply(null,arguments)};var _mono_wasm_add_satellite_assembly=Module["_mono_wasm_add_satellite_assembly"]=function(){return(_mono_wasm_add_satellite_assembly=Module["_mono_wasm_add_satellite_assembly"]=Module["asm"]["mono_wasm_add_satellite_assembly"]).apply(null,arguments)};var _mono_wasm_setenv=Module["_mono_wasm_setenv"]=function(){return(_mono_wasm_setenv=Module["_mono_wasm_setenv"]=Module["asm"]["mono_wasm_setenv"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var _mono_wasm_register_bundled_satellite_assemblies=Module["_mono_wasm_register_bundled_satellite_assemblies"]=function(){return(_mono_wasm_register_bundled_satellite_assemblies=Module["_mono_wasm_register_bundled_satellite_assemblies"]=Module["asm"]["mono_wasm_register_bundled_satellite_assemblies"]).apply(null,arguments)};var _mono_wasm_load_runtime=Module["_mono_wasm_load_runtime"]=function(){return(_mono_wasm_load_runtime=Module["_mono_wasm_load_runtime"]=Module["asm"]["mono_wasm_load_runtime"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var _mono_wasm_assembly_load=Module["_mono_wasm_assembly_load"]=function(){return(_mono_wasm_assembly_load=Module["_mono_wasm_assembly_load"]=Module["asm"]["mono_wasm_assembly_load"]).apply(null,arguments)};var _mono_wasm_find_corlib_class=Module["_mono_wasm_find_corlib_class"]=function(){return(_mono_wasm_find_corlib_class=Module["_mono_wasm_find_corlib_class"]=Module["asm"]["mono_wasm_find_corlib_class"]).apply(null,arguments)};var _mono_wasm_assembly_find_class=Module["_mono_wasm_assembly_find_class"]=function(){return(_mono_wasm_assembly_find_class=Module["_mono_wasm_assembly_find_class"]=Module["asm"]["mono_wasm_assembly_find_class"]).apply(null,arguments)};var _mono_wasm_assembly_find_method=Module["_mono_wasm_assembly_find_method"]=function(){return(_mono_wasm_assembly_find_method=Module["_mono_wasm_assembly_find_method"]=Module["asm"]["mono_wasm_assembly_find_method"]).apply(null,arguments)};var _mono_wasm_get_delegate_invoke=Module["_mono_wasm_get_delegate_invoke"]=function(){return(_mono_wasm_get_delegate_invoke=Module["_mono_wasm_get_delegate_invoke"]=Module["asm"]["mono_wasm_get_delegate_invoke"]).apply(null,arguments)};var _mono_wasm_box_primitive=Module["_mono_wasm_box_primitive"]=function(){return(_mono_wasm_box_primitive=Module["_mono_wasm_box_primitive"]=Module["asm"]["mono_wasm_box_primitive"]).apply(null,arguments)};var _mono_wasm_invoke_method=Module["_mono_wasm_invoke_method"]=function(){return(_mono_wasm_invoke_method=Module["_mono_wasm_invoke_method"]=Module["asm"]["mono_wasm_invoke_method"]).apply(null,arguments)};var _mono_wasm_assembly_get_entry_point=Module["_mono_wasm_assembly_get_entry_point"]=function(){return(_mono_wasm_assembly_get_entry_point=Module["_mono_wasm_assembly_get_entry_point"]=Module["asm"]["mono_wasm_assembly_get_entry_point"]).apply(null,arguments)};var _mono_wasm_string_get_utf8=Module["_mono_wasm_string_get_utf8"]=function(){return(_mono_wasm_string_get_utf8=Module["_mono_wasm_string_get_utf8"]=Module["asm"]["mono_wasm_string_get_utf8"]).apply(null,arguments)};var _mono_wasm_string_convert=Module["_mono_wasm_string_convert"]=function(){return(_mono_wasm_string_convert=Module["_mono_wasm_string_convert"]=Module["asm"]["mono_wasm_string_convert"]).apply(null,arguments)};var _mono_wasm_string_from_js=Module["_mono_wasm_string_from_js"]=function(){return(_mono_wasm_string_from_js=Module["_mono_wasm_string_from_js"]=Module["asm"]["mono_wasm_string_from_js"]).apply(null,arguments)};var _mono_wasm_string_from_utf16=Module["_mono_wasm_string_from_utf16"]=function(){return(_mono_wasm_string_from_utf16=Module["_mono_wasm_string_from_utf16"]=Module["asm"]["mono_wasm_string_from_utf16"]).apply(null,arguments)};var _mono_wasm_get_obj_type=Module["_mono_wasm_get_obj_type"]=function(){return(_mono_wasm_get_obj_type=Module["_mono_wasm_get_obj_type"]=Module["asm"]["mono_wasm_get_obj_type"]).apply(null,arguments)};var _mono_wasm_try_unbox_primitive_and_get_type=Module["_mono_wasm_try_unbox_primitive_and_get_type"]=function(){return(_mono_wasm_try_unbox_primitive_and_get_type=Module["_mono_wasm_try_unbox_primitive_and_get_type"]=Module["asm"]["mono_wasm_try_unbox_primitive_and_get_type"]).apply(null,arguments)};var _mono_unbox_int=Module["_mono_unbox_int"]=function(){return(_mono_unbox_int=Module["_mono_unbox_int"]=Module["asm"]["mono_unbox_int"]).apply(null,arguments)};var _mono_wasm_array_length=Module["_mono_wasm_array_length"]=function(){return(_mono_wasm_array_length=Module["_mono_wasm_array_length"]=Module["asm"]["mono_wasm_array_length"]).apply(null,arguments)};var _mono_wasm_array_get=Module["_mono_wasm_array_get"]=function(){return(_mono_wasm_array_get=Module["_mono_wasm_array_get"]=Module["asm"]["mono_wasm_array_get"]).apply(null,arguments)};var _mono_wasm_obj_array_new=Module["_mono_wasm_obj_array_new"]=function(){return(_mono_wasm_obj_array_new=Module["_mono_wasm_obj_array_new"]=Module["asm"]["mono_wasm_obj_array_new"]).apply(null,arguments)};var _mono_wasm_obj_array_set=Module["_mono_wasm_obj_array_set"]=function(){return(_mono_wasm_obj_array_set=Module["_mono_wasm_obj_array_set"]=Module["asm"]["mono_wasm_obj_array_set"]).apply(null,arguments)};var _mono_wasm_string_array_new=Module["_mono_wasm_string_array_new"]=function(){return(_mono_wasm_string_array_new=Module["_mono_wasm_string_array_new"]=Module["asm"]["mono_wasm_string_array_new"]).apply(null,arguments)};var _mono_wasm_exec_regression=Module["_mono_wasm_exec_regression"]=function(){return(_mono_wasm_exec_regression=Module["_mono_wasm_exec_regression"]=Module["asm"]["mono_wasm_exec_regression"]).apply(null,arguments)};var _mono_wasm_exit=Module["_mono_wasm_exit"]=function(){return(_mono_wasm_exit=Module["_mono_wasm_exit"]=Module["asm"]["mono_wasm_exit"]).apply(null,arguments)};var _mono_wasm_set_main_args=Module["_mono_wasm_set_main_args"]=function(){return(_mono_wasm_set_main_args=Module["_mono_wasm_set_main_args"]=Module["asm"]["mono_wasm_set_main_args"]).apply(null,arguments)};var _mono_wasm_strdup=Module["_mono_wasm_strdup"]=function(){return(_mono_wasm_strdup=Module["_mono_wasm_strdup"]=Module["asm"]["mono_wasm_strdup"]).apply(null,arguments)};var _mono_wasm_parse_runtime_options=Module["_mono_wasm_parse_runtime_options"]=function(){return(_mono_wasm_parse_runtime_options=Module["_mono_wasm_parse_runtime_options"]=Module["asm"]["mono_wasm_parse_runtime_options"]).apply(null,arguments)};var _mono_wasm_enable_on_demand_gc=Module["_mono_wasm_enable_on_demand_gc"]=function(){return(_mono_wasm_enable_on_demand_gc=Module["_mono_wasm_enable_on_demand_gc"]=Module["asm"]["mono_wasm_enable_on_demand_gc"]).apply(null,arguments)};var _mono_wasm_intern_string=Module["_mono_wasm_intern_string"]=function(){return(_mono_wasm_intern_string=Module["_mono_wasm_intern_string"]=Module["asm"]["mono_wasm_intern_string"]).apply(null,arguments)};var _mono_wasm_string_get_data=Module["_mono_wasm_string_get_data"]=function(){return(_mono_wasm_string_get_data=Module["_mono_wasm_string_get_data"]=Module["asm"]["mono_wasm_string_get_data"]).apply(null,arguments)};var _mono_wasm_typed_array_new=Module["_mono_wasm_typed_array_new"]=function(){return(_mono_wasm_typed_array_new=Module["_mono_wasm_typed_array_new"]=Module["asm"]["mono_wasm_typed_array_new"]).apply(null,arguments)};var _mono_wasm_unbox_enum=Module["_mono_wasm_unbox_enum"]=function(){return(_mono_wasm_unbox_enum=Module["_mono_wasm_unbox_enum"]=Module["asm"]["mono_wasm_unbox_enum"]).apply(null,arguments)};var _memset=Module["_memset"]=function(){return(_memset=Module["_memset"]=Module["asm"]["memset"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var _putchar=Module["_putchar"]=function(){return(_putchar=Module["_putchar"]=Module["asm"]["putchar"]).apply(null,arguments)};var _mono_background_exec=Module["_mono_background_exec"]=function(){return(_mono_background_exec=Module["_mono_background_exec"]=Module["asm"]["mono_background_exec"]).apply(null,arguments)};var _mono_wasm_get_icudt_name=Module["_mono_wasm_get_icudt_name"]=function(){return(_mono_wasm_get_icudt_name=Module["_mono_wasm_get_icudt_name"]=Module["asm"]["mono_wasm_get_icudt_name"]).apply(null,arguments)};var _mono_wasm_load_icu_data=Module["_mono_wasm_load_icu_data"]=function(){return(_mono_wasm_load_icu_data=Module["_mono_wasm_load_icu_data"]=Module["asm"]["mono_wasm_load_icu_data"]).apply(null,arguments)};var _mono_print_method_from_ip=Module["_mono_print_method_from_ip"]=function(){return(_mono_print_method_from_ip=Module["_mono_print_method_from_ip"]=Module["asm"]["mono_print_method_from_ip"]).apply(null,arguments)};var _mono_set_timeout_exec=Module["_mono_set_timeout_exec"]=function(){return(_mono_set_timeout_exec=Module["_mono_set_timeout_exec"]=Module["asm"]["mono_set_timeout_exec"]).apply(null,arguments)};var _htons=Module["_htons"]=function(){return(_htons=Module["_htons"]=Module["asm"]["htons"]).apply(null,arguments)};var _mono_wasm_set_is_debugger_attached=Module["_mono_wasm_set_is_debugger_attached"]=function(){return(_mono_wasm_set_is_debugger_attached=Module["_mono_wasm_set_is_debugger_attached"]=Module["asm"]["mono_wasm_set_is_debugger_attached"]).apply(null,arguments)};var _mono_wasm_send_dbg_command_with_parms=Module["_mono_wasm_send_dbg_command_with_parms"]=function(){return(_mono_wasm_send_dbg_command_with_parms=Module["_mono_wasm_send_dbg_command_with_parms"]=Module["asm"]["mono_wasm_send_dbg_command_with_parms"]).apply(null,arguments)};var _mono_wasm_send_dbg_command=Module["_mono_wasm_send_dbg_command"]=function(){return(_mono_wasm_send_dbg_command=Module["_mono_wasm_send_dbg_command"]=Module["asm"]["mono_wasm_send_dbg_command"]).apply(null,arguments)};var _ntohs=Module["_ntohs"]=function(){return(_ntohs=Module["_ntohs"]=Module["asm"]["ntohs"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=function(){return(_emscripten_main_thread_process_queued_calls=Module["_emscripten_main_thread_process_queued_calls"]=Module["asm"]["emscripten_main_thread_process_queued_calls"]).apply(null,arguments)};var _htonl=Module["_htonl"]=function(){return(_htonl=Module["_htonl"]=Module["asm"]["htonl"]).apply(null,arguments)};var __get_tzname=Module["__get_tzname"]=function(){return(__get_tzname=Module["__get_tzname"]=Module["asm"]["_get_tzname"]).apply(null,arguments)};var __get_daylight=Module["__get_daylight"]=function(){return(__get_daylight=Module["__get_daylight"]=Module["asm"]["_get_daylight"]).apply(null,arguments)};var __get_timezone=Module["__get_timezone"]=function(){return(__get_timezone=Module["__get_timezone"]=Module["asm"]["_get_timezone"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["__cxa_can_catch"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["__cxa_is_pointer_type"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["memalign"]).apply(null,arguments)};var dynCall_iijj=Module["dynCall_iijj"]=function(){return(dynCall_iijj=Module["dynCall_iijj"]=Module["asm"]["dynCall_iijj"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["dynCall_iij"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["dynCall_ji"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["dynCall_j"]).apply(null,arguments)};var dynCall_iijji=Module["dynCall_iijji"]=function(){return(dynCall_iijji=Module["dynCall_iijji"]=Module["asm"]["dynCall_iijji"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["dynCall_jiji"]).apply(null,arguments)};var dynCall_iiji=Module["dynCall_iiji"]=function(){return(dynCall_iiji=Module["dynCall_iiji"]=Module["asm"]["dynCall_iiji"]).apply(null,arguments)};var dynCall_iijiiij=Module["dynCall_iijiiij"]=function(){return(dynCall_iijiiij=Module["dynCall_iijiiij"]=Module["asm"]["dynCall_iijiiij"]).apply(null,arguments)};var dynCall_iiiij=Module["dynCall_iiiij"]=function(){return(dynCall_iiiij=Module["dynCall_iiiij"]=Module["asm"]["dynCall_iiiij"]).apply(null,arguments)};var dynCall_jiiij=Module["dynCall_jiiij"]=function(){return(dynCall_jiiij=Module["dynCall_jiiij"]=Module["asm"]["dynCall_jiiij"]).apply(null,arguments)};var dynCall_viiijjii=Module["dynCall_viiijjii"]=function(){return(dynCall_viiijjii=Module["dynCall_viiijjii"]=Module["asm"]["dynCall_viiijjii"]).apply(null,arguments)};var dynCall_jd=Module["dynCall_jd"]=function(){return(dynCall_jd=Module["dynCall_jd"]=Module["asm"]["dynCall_jd"]).apply(null,arguments)};var dynCall_jf=Module["dynCall_jf"]=function(){return(dynCall_jf=Module["dynCall_jf"]=Module["asm"]["dynCall_jf"]).apply(null,arguments)};var dynCall_jiiiiiiiii=Module["dynCall_jiiiiiiiii"]=function(){return(dynCall_jiiiiiiiii=Module["dynCall_jiiiiiiiii"]=Module["asm"]["dynCall_jiiiiiiiii"]).apply(null,arguments)};var dynCall_vj=Module["dynCall_vj"]=function(){return(dynCall_vj=Module["dynCall_vj"]=Module["asm"]["dynCall_vj"]).apply(null,arguments)};var dynCall_iji=Module["dynCall_iji"]=function(){return(dynCall_iji=Module["dynCall_iji"]=Module["asm"]["dynCall_iji"]).apply(null,arguments)};var dynCall_ij=Module["dynCall_ij"]=function(){return(dynCall_ij=Module["dynCall_ij"]=Module["asm"]["dynCall_ij"]).apply(null,arguments)};var dynCall_jj=Module["dynCall_jj"]=function(){return(dynCall_jj=Module["dynCall_jj"]=Module["asm"]["dynCall_jj"]).apply(null,arguments)};var dynCall_iiijiiiii=Module["dynCall_iiijiiiii"]=function(){return(dynCall_iiijiiiii=Module["dynCall_iiijiiiii"]=Module["asm"]["dynCall_iiijiiiii"]).apply(null,arguments)};var dynCall_vijj=Module["dynCall_vijj"]=function(){return(dynCall_vijj=Module["dynCall_vijj"]=Module["asm"]["dynCall_vijj"]).apply(null,arguments)};var dynCall_iiijiiii=Module["dynCall_iiijiiii"]=function(){return(dynCall_iiijiiii=Module["dynCall_iiijiiii"]=Module["asm"]["dynCall_iiijiiii"]).apply(null,arguments)};var dynCall_jiiiii=Module["dynCall_jiiiii"]=function(){return(dynCall_jiiiii=Module["dynCall_jiiiii"]=Module["asm"]["dynCall_jiiiii"]).apply(null,arguments)};var dynCall_jij=Module["dynCall_jij"]=function(){return(dynCall_jij=Module["dynCall_jij"]=Module["asm"]["dynCall_jij"]).apply(null,arguments)};var dynCall_jijj=Module["dynCall_jijj"]=function(){return(dynCall_jijj=Module["dynCall_jijj"]=Module["asm"]["dynCall_jijj"]).apply(null,arguments)};var dynCall_iijjiii=Module["dynCall_iijjiii"]=function(){return(dynCall_iijjiii=Module["dynCall_iijjiii"]=Module["asm"]["dynCall_iijjiii"]).apply(null,arguments)};var dynCall_vijjjii=Module["dynCall_vijjjii"]=function(){return(dynCall_vijjjii=Module["dynCall_vijjjii"]=Module["asm"]["dynCall_vijjjii"]).apply(null,arguments)};var dynCall_iijii=Module["dynCall_iijii"]=function(){return(dynCall_iijii=Module["dynCall_iijii"]=Module["asm"]["dynCall_iijii"]).apply(null,arguments)};var dynCall_iijiii=Module["dynCall_iijiii"]=function(){return(dynCall_iijiii=Module["dynCall_iijiii"]=Module["asm"]["dynCall_iijiii"]).apply(null,arguments)};var dynCall_vijiiii=Module["dynCall_vijiiii"]=function(){return(dynCall_vijiiii=Module["dynCall_vijiiii"]=Module["asm"]["dynCall_vijiiii"]).apply(null,arguments)};var dynCall_iijiiii=Module["dynCall_iijiiii"]=function(){return(dynCall_iijiiii=Module["dynCall_iijiiii"]=Module["asm"]["dynCall_iijiiii"]).apply(null,arguments)};var dynCall_vij=Module["dynCall_vij"]=function(){return(dynCall_vij=Module["dynCall_vij"]=Module["asm"]["dynCall_vij"]).apply(null,arguments)};var dynCall_jii=Module["dynCall_jii"]=function(){return(dynCall_jii=Module["dynCall_jii"]=Module["asm"]["dynCall_jii"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ArrayToString"]=UTF8ArrayToString;Module["UTF8ToString"]=UTF8ToString;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;Module["addFunction"]=addFunction;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(implicit&&keepRuntimeAlive()&&status===0){return}if(keepRuntimeAlive()){}else{exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
-
-// SIG // Begin signature block
-// SIG // MIIorAYJKoZIhvcNAQcCoIIonTCCKJkCAQExDzANBglg
-// SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
-// SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
-// SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
-// SIG // TQePqAWSw1A+4UE8oHLkRl4VTuaq7N4OVFD3928S/POg
-// SIG // gg3lMIIGYzCCBEugAwIBAgITMwAAA3zJ9rztB1muCAAA
-// SIG // AAADfDANBgkqhkiG9w0BAQwFADB+MQswCQYDVQQGEwJV
-// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
-// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
-// SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
-// SIG // aWduaW5nIFBDQSAyMDExMB4XDTIzMDUxMTE5MDMzMloX
-// SIG // DTI0MDUwODE5MDMzMlowYzELMAkGA1UEBhMCVVMxEzAR
-// SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
-// SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
-// SIG // bjENMAsGA1UEAxMELk5FVDCCAaIwDQYJKoZIhvcNAQEB
-// SIG // BQADggGPADCCAYoCggGBAM7wia8MfPwd4mtILpj8qoFF
-// SIG // 2NU9AGUh6KMxjoH5wsKo/CNMznlw6z6QDoXMd1SjRH/n
-// SIG // mWLJ9UwKsIHC4wjcIIQA2oTK9wiBP2C4JADckr1ib5QF
-// SIG // VIdjt1rgvt7QVuVcu3i+7vIlThcWBQFDCipaAmlQG5WS
-// SIG // Lf3DbJZuL5FNO5hxjw5mqtZg/RifUhMu6gw/ZandJNcC
-// SIG // 3TW3ZkLpWhjKdJIJh6omc+RYTQByB3XUt4P1wTh4Ah2w
-// SIG // ImmwDnQMiHYgLiKTaP1TQBTbmB1o4ims4knVLsfrXKhR
-// SIG // UumxtoBIN/YyvhwpJuXqJWTgUq13YyqxNEyNC1QWtGpc
-// SIG // Ww+jSkX2sX6yNkxKexr1D+2lyu5C4nNHEox0huDXcn4C
-// SIG // eEpERgkVAnxhPLB68NLqqzBa7kLv5V8cNl9rG2FE64AG
-// SIG // QA9WxNNUiIt+ItJUgq1IF2t7tdJGvmsJDj07yV0TToU6
-// SIG // 5kqUexgpLaDoZizsV4ZhPYjWHpv0D6juvnBPTt4ionDc
-// SIG // nFsv9wIDAQABo4IBczCCAW8wHwYDVR0lBBgwFgYKKwYB
-// SIG // BAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFFKpamFH
-// SIG // SEZcQyIedxp5ANsBMD5JMEUGA1UdEQQ+MDykOjA4MR4w
-// SIG // HAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xFjAU
-// SIG // BgNVBAUTDTQ2NDIyMys1MDEwMTUwHwYDVR0jBBgwFoAU
-// SIG // SG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0wSzBJ
-// SIG // oEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
-// SIG // aW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3
-// SIG // LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYBBQUH
-// SIG // MAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lv
-// SIG // cHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3
-// SIG // LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEB
-// SIG // DAUAA4ICAQAOSEYc1GtkOHuaEONN2ZhGwBfVVOls91pV
-// SIG // 9txVvKdJwl8XjM3UD80N0c4mvoVT6K1a8VgJom58eg7c
-// SIG // 6HuwPsdvhNlaslOhXnFTHGUqJ++gXPDgH5a2w5j0IHTm
-// SIG // yYkSv4NDSi9u2FtgWRjlfyag9r8kvBRUv/M8ISO2dqne
-// SIG // LiQhJcTL95mFcpt7Jf2m+b25wM6S5BPvV4sgepZMQwGJ
-// SIG // HBANg+w2YUfgQ430mnZHg70iI6V+rMEcPW6jFaf9B/5+
-// SIG // vvXlw4yabr32W3ofks4OxTX8HVfRLO8uK/jdCODX2vAa
-// SIG // Zeh7YNdtTGqMsOhI6KOW+IAQrUnvEbiRPmPqvgFjAH0e
-// SIG // NUr/zy/Xt8gxBranFQdM1gVv57aU/HMtK8L8tpAT0Zjc
-// SIG // h/4xE2oHpVdcIPxjISlHQJIL7NtEI0/WPNA7afEiUj8C
-// SIG // Ztxg9ivyy/hLd+i4COfhFeraWsxkwM+oKKYpWJJFQTgJ
-// SIG // Z8kHhoOTVxoxMseEfUalzoL0C+MHsDdsMn5VQw3LCuoq
-// SIG // pnhG6vnN0TMNsbNydBflcBlACOPz+S6QNfp62r0JYWXw
-// SIG // BbtRM+3A9dHtD4nqr/ZjtCAG8GdxU220D240BmU5/TZR
-// SIG // OHHwPLl4Afmki/uogGvnFyd19wFHHG80gB5N9rsdKUsx
-// SIG // hO+CqUzuQeurTLKzf6lKyjOfwYQ2IMpN1zCCB3owggVi
-// SIG // oAMCAQICCmEOkNIAAAAAAAMwDQYJKoZIhvcNAQELBQAw
-// SIG // gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
-// SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
-// SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1p
-// SIG // Y3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-// SIG // eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcwODIx
-// SIG // MDkwOVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
-// SIG // c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
-// SIG // BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UE
-// SIG // AxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAx
-// SIG // MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
-// SIG // AKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCquAY4
-// SIG // GgRJun/DDB7dN2vGEtgL8DjCmQawyDnVARQxQtOJDXlk
-// SIG // h36UYCRsr55JnOloXtLfm1OyCizDr9mpK656Ca/XllnK
-// SIG // YBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3WraPPLbfM6
-// SIG // XKEW9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5pUkp
-// SIG // 5w2+oBN3vpQ97/vjK1oQH01WKKJ6cuASOrdJXtjt7UOR
-// SIG // g9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7La4zWMW3Pv4y
-// SIG // 07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwPrRkj
-// SIG // hMv0ugOGjfdf8NBSv4yUh7zAIXQlXxgotswnKDglmDlK
-// SIG // Ns98sZKuHCOnqWbsYR9q4ShJnV+I4iVd0yFLPlLEtVc/
-// SIG // JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9G9RV
-// SIG // S+c5oQ/pI0m8GLhEfEXkwcNyeuBy5yTfv0aZxe/CHFfb
-// SIG // g43sTUkwp6uO3+xbn6/83bBm4sGXgXvt1u1L50kppxMo
-// SIG // pqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9AN0/B
-// SIG // 4YVEicQJTMXUpUMvdJX3bvh4IFgsE11glZo+TzOE2rCI
-// SIG // F96eTvSWsLxGoGyY0uDWiIwLAgMBAAGjggHtMIIB6TAQ
-// SIG // BgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k5VAF
-// SIG // 04KqFzc3IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAweCgBT
-// SIG // AHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
-// SIG // MAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kUBU7h6qfH
-// SIG // MdEjiTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL2Ny
-// SIG // bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv
-// SIG // TWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNybDBe
-// SIG // BggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0dHA6
-// SIG // Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWlj
-// SIG // Um9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNydDCBnwYD
-// SIG // VR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYIKwYB
-// SIG // BQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
-// SIG // a2lvcHMvZG9jcy9wcmltYXJ5Y3BzLmh0bTBABggrBgEF
-// SIG // BQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABpAGMA
-// SIG // eQBfAHMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG
-// SIG // 9w0BAQsFAAOCAgEAZ/KGpZjgVHkaLtPYdGcimwuWEeFj
-// SIG // kplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79HqaPz
-// SIG // adtjvyI1pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS0LD9
-// SIG // a+M+By4pm+Y9G6XUtR13lDni6WTJRD14eiPzE32mkHSD
-// SIG // jfTLJgJGKsKKELukqQUMm+1o+mgulaAqPyprWEljHwlp
-// SIG // blqYluSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMOr5ko
-// SIG // l5hNDj0L8giJ1h/DMhji8MUtzluetEk5CsYKwsatruWy
-// SIG // 2dsViFFFWDgycScaf7H0J/jeLDogaZiyWYlobm+nt3TD
-// SIG // QAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVAKmWj
-// SIG // w11SYobDHWM2l4bf2vP48hahmifhzaWX0O5dY0HjWwec
-// SIG // hz4GdwbRBrF1HxS+YWG18NzGGwS+30HHDiju3mUv7Jf2
-// SIG // oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3HjXG
-// SIG // 0qKin3p6IvpIlR+r+0cjgPWe+L9rt0uX4ut1eBrs6jeZ
-// SIG // eRhL/9azI2h15q/6/IvrC4DqaTuv/DDtBEyO3991bWOR
-// SIG // PdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYibV3FW
-// SIG // TkhFwELJm3ZbCoBIa/15n8G9bW1qyVJzEw16UM0xghof
-// SIG // MIIaGwIBATCBlTB+MQswCQYDVQQGEwJVUzETMBEGA1UE
-// SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
-// SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgw
-// SIG // JgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
-// SIG // QSAyMDExAhMzAAADfMn2vO0HWa4IAAAAAAN8MA0GCWCG
-// SIG // SAFlAwQCAQUAoIGuMBkGCSqGSIb3DQEJAzEMBgorBgEE
-// SIG // AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3
-// SIG // AgEVMC8GCSqGSIb3DQEJBDEiBCBnmN2X2UE1Rv4UCq+D
-// SIG // DqGYze7Fi/IG3Xosu2XETQlTYDBCBgorBgEEAYI3AgEM
-// SIG // MTQwMqAUgBIATQBpAGMAcgBvAHMAbwBmAHShGoAYaHR0
-// SIG // cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3DQEB
-// SIG // AQUABIIBgEoJ+Eqx1p5b0Ggifcs4n5PbOq18NHA4fwGb
-// SIG // sbqxiB65FkCx3/dYqSg61vB5gpwWk5SMcXI8SdN4x9Ii
-// SIG // 3zAeELVhWDPn1aPdAg0swzi1WYkKqSCqhp5APLQialb7
-// SIG // PpGD3ugXenntUBHnbUPZJas0dI0u/VIIW8x6FJMB8+y0
-// SIG // jPR/TlaTn1UV0QVYHjt/orRzSGMUpPHAEmtZnp+rwKqR
-// SIG // 5So+iA2em5NJitGNaxr+bZIgc1Ws+7/o1KeHvI4wbZhq
-// SIG // PMXjrit1118cMpbMsk5qh7dFlJgg4cW39Olj8xGAtiX6
-// SIG // weAjf3zSf9DM5q3fq4nZgGikDm3idL2nM5LHHVrKj1tt
-// SIG // 70fms3YNKQow9RkdBr2kDPMcVvDksLFazjN4TsqqIY1p
-// SIG // EjYScgAovxcNdPXlZ+1adHE8m+vU+KWrwcyvrD4B4Eqo
-// SIG // o/R7fp2QtuWxZbTkDMEMxQSx44Hd+azFfby4Qr6+Znnv
-// SIG // ZE5HiDJBhDlhTFZH6ezUcEg0AUiMEoeHjpHoQKGCFykw
-// SIG // ghclBgorBgEEAYI3AwMBMYIXFTCCFxEGCSqGSIb3DQEH
-// SIG // AqCCFwIwghb+AgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZ
-// SIG // BgsqhkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYB
-// SIG // BAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCBinnEK7d9j
-// SIG // 77Ck/kJ56EwzVrc4sxshS7NmqRGHTC6pogIGZYM1N1M1
-// SIG // GBMyMDI0MDEyMTIyNTUwMi4xNzlaMASAAgH0oIHYpIHV
-// SIG // MIHSMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
-// SIG // Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
-// SIG // TWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRN
-// SIG // aWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0
-// SIG // ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOkZDNDEt
-// SIG // NEJENC1EMjIwMSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt
-// SIG // ZS1TdGFtcCBTZXJ2aWNloIIReDCCBycwggUPoAMCAQIC
-// SIG // EzMAAAHimZmV8dzjIOsAAQAAAeIwDQYJKoZIhvcNAQEL
-// SIG // BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
-// SIG // bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
-// SIG // FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd
-// SIG // TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
-// SIG // MjMxMDEyMTkwNzI1WhcNMjUwMTEwMTkwNzI1WjCB0jEL
-// SIG // MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
-// SIG // EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
-// SIG // c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9z
-// SIG // b2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYw
-// SIG // JAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGQzQxLTRCRDQt
-// SIG // RDIyMDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3Rh
-// SIG // bXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-// SIG // ADCCAgoCggIBALVjtZhV+kFmb8cKQpg2mzisDlRI978G
-// SIG // b2amGvbAmCd04JVGeTe/QGzM8KbQrMDol7DC7jS03Jkc
-// SIG // rPsWi9WpVwsIckRQ8AkX1idBG9HhyCspAavfuvz55khl
-// SIG // 7brPQx7H99UJbsE3wMmpmJasPWpgF05zZlvpWQDULDcI
-// SIG // Yyl5lXI4HVZ5N6MSxWO8zwWr4r9xkMmUXs7ICxDJr5a3
-// SIG // 9SSePAJRIyznaIc0WzZ6MFcTRzLLNyPBE4KrVv1LFd96
-// SIG // FNxAzwnetSePg88EmRezr2T3HTFElneJXyQYd6YQ7eCI
-// SIG // c7yllWoY03CEg9ghorp9qUKcBUfFcS4XElf3GSERnlzJ
-// SIG // sK7s/ZGPU4daHT2jWGoYha2QCOmkgjOmBFCqQFFwFmsP
-// SIG // rZj4eQszYxq4c4HqPnUu4hT4aqpvUZ3qIOXbdyU42pNL
-// SIG // 93cn0rPTTleOUsOQbgvlRdthFCBepxfb6nbsp3fcZaPB
-// SIG // fTbtXVa8nLQuMCBqyfsebuqnbwj+lHQfqKpivpyd7KCW
-// SIG // ACoj78XUwYqy1HyYnStTme4T9vK6u2O/KThfROeJHiSg
-// SIG // 44ymFj+34IcFEhPogaKvNNsTVm4QbqphCyknrwByqorB
-// SIG // CLH6bllRtJMJwmu7GRdTQsIx2HMKqphEtpSm1z3ufASd
-// SIG // PrgPhsQIRFkHZGuihL1Jjj4Lu3CbAmha0lOrAgMBAAGj
-// SIG // ggFJMIIBRTAdBgNVHQ4EFgQURIQOEdq+7QdslptJiCRN
-// SIG // pXgJ2gUwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacb
-// SIG // UzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3
-// SIG // dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9z
-// SIG // b2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSku
-// SIG // Y3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQ
-// SIG // aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j
-// SIG // ZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB
-// SIG // JTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNV
-// SIG // HSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC
-// SIG // B4AwDQYJKoZIhvcNAQELBQADggIBAORURDGrVRTbnulf
-// SIG // sg2cTsyyh7YXvhVU7NZMkITAQYsFEPVgvSviCylr5ap3
-// SIG // ka76Yz0t/6lxuczI6w7tXq8n4WxUUgcj5wAhnNorhnD8
-// SIG // ljYqbck37fggYK3+wEwLhP1PGC5tvXK0xYomU1nU+lXO
-// SIG // y9ZRnShI/HZdFrw2srgtsbWow9OMuADS5lg7okrXa2da
-// SIG // COGnxuaD1IO+65E7qv2O0W0sGj7AWdOjNdpexPrspL2K
-// SIG // EcOMeJVmkk/O0ganhFzzHAnWjtNWneU11WQ6Bxv8OpN1
-// SIG // fY9wzQoiycgvOOJM93od55EGeXxfF8bofLVlUE3zIiko
-// SIG // Sed+8s61NDP+x9RMya2mwK/Ys1xdvDlZTHndIKssfmu3
-// SIG // vu/a+BFf2uIoycVTvBQpv/drRJD68eo401mkCRFkmy/+
-// SIG // BmQlRrx2rapqAu5k0Nev+iUdBUKmX/iOaKZ75vuQg7hC
-// SIG // iBA5xIm5ZIXDSlX47wwFar3/BgTwntMq9ra6QRAeS/o/
-// SIG // uYWkmvqvE8Aq38QmKgTiBnWSS/uVPcaHEyArnyFh5G+q
-// SIG // eCGmL44MfEnFEhxc3saPmXhe6MhSgCIGJUZDA7336nQD
-// SIG // 8fn4y6534Lel+LuT5F5bFt0mLwd+H5GxGzObZmm/c3pE
-// SIG // WtHv1ug7dS/Dfrcd1sn2E4gk4W1L1jdRBbK9xwkMmwY+
-// SIG // CHZeMSvBMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJ
-// SIG // mQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UE
-// SIG // BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
-// SIG // BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
-// SIG // b3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv
-// SIG // b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcN
-// SIG // MjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQsw
-// SIG // CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
-// SIG // MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
-// SIG // b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv
-// SIG // ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZI
-// SIG // hvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3mi
-// SIG // y9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+
-// SIG // F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQ
-// SIG // GOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4
-// SIG // bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa
-// SIG // ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/d
-// SIG // vI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmP
-// SIG // frVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXA
-// SIG // hjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09
-// SIG // /SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231f
-// SIG // gLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ
-// SIG // 8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q
-// SIG // 6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK
-// SIG // 12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiE
-// SIG // R9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflS
-// SIG // xIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3
-// SIG // tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEE
-// SIG // BQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKR
-// SIG // PEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXS
-// SIG // ZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9
-// SIG // AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy
-// SIG // b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku
-// SIG // aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQB
-// SIG // gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAP
-// SIG // BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP
-// SIG // 6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeG
-// SIG // RWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3Js
-// SIG // L3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIz
-// SIG // LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKG
-// SIG // Pmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy
-// SIG // dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0G
-// SIG // CSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Ge
-// SIG // ckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQ
-// SIG // dTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6c
-// SIG // qYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2C
-// SIG // DPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQ
-// SIG // JL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye
-// SIG // ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTp
-// SIG // kbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB
-// SIG // 9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgs
-// SIG // sU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QB
-// SIG // jloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjo
-// SIG // iV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvB
-// SIG // QUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w
-// SIG // /ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi
-// SIG // 6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHI
-// SIG // qzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm
-// SIG // 8qGCAtQwggI9AgEBMIIBAKGB2KSB1TCB0jELMAkGA1UE
-// SIG // BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
-// SIG // BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
-// SIG // b3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IEly
-// SIG // ZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQL
-// SIG // Ex1UaGFsZXMgVFNTIEVTTjpGQzQxLTRCRDQtRDIyMDEl
-// SIG // MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
-// SIG // dmljZaIjCgEBMAcGBSsOAwIaAxUAFpuZafp0bnpJdIhf
-// SIG // iB1d8pTohm+ggYMwgYCkfjB8MQswCQYDVQQGEwJVUzET
-// SIG // MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
-// SIG // bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
-// SIG // aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt
-// SIG // cCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOlX4IEw
-// SIG // IhgPMjAyNDAxMjIwMjI3MTNaGA8yMDI0MDEyMzAyMjcx
-// SIG // M1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6VfggQIB
-// SIG // ADAHAgEAAgIDHTAHAgEAAgISmzAKAgUA6VkyAQIBADA2
-// SIG // BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow
-// SIG // CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB
-// SIG // BQUAA4GBADDGFKMf5CvdbQHJ4SVeburl2yRonb1BDDdb
-// SIG // kAyQgxp4bJk1Kvg//HJYEVq6/fdRYxUEnbxs+wz4kBLU
-// SIG // FddogpJ6Zre9QNA7iT23+JF8pPlIau7+cE0RHrhJjmZH
-// SIG // 2k10DNBRTgddkr628rmChBoSHaemX4223xAu5fASMhYL
-// SIG // pw7vMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMx
-// SIG // EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
-// SIG // ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
-// SIG // dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3Rh
-// SIG // bXAgUENBIDIwMTACEzMAAAHimZmV8dzjIOsAAQAAAeIw
-// SIG // DQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzEN
-// SIG // BgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgZbaz
-// SIG // BcQ4HT8rYFz0Gfypjp0HIJRmI2JO/8gNXlP6Ab0wgfoG
-// SIG // CyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAriSpKEP0m
-// SIG // uMbBUETODoL4d5LU6I/bjucIZkOJCI9//zCBmDCBgKR+
-// SIG // MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
-// SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
-// SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
-// SIG // Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB
-// SIG // 4pmZlfHc4yDrAAEAAAHiMCIEIIx6jRoGesJV6zmgtmHQ
-// SIG // Iu63pN4CG7099+7BU4o4rLasMA0GCSqGSIb3DQEBCwUA
-// SIG // BIICACd8c/TDizp57iB9XeIWQ83/TN/GfUpltNHgD6W7
-// SIG // 9aOX4ptFSi4tgI8lA92v/OjjDSWQ75fZbyXqPs0X4f4a
-// SIG // AXA7sLCAbuUeY7p/MDI0BaocXlwNe20t2aaa3f4OP4mq
-// SIG // bb37XpIwuZAXI4cQhZyfXRjdMoajSe18gKSeNLnAKFbg
-// SIG // 3xWa4jWG640+SikOvJJGkx1yk/9cJQispZrXPAAPE9WS
-// SIG // pKrXo1wW0SsTW01ONnArdZ/D1HddM/4U5xREI2fLO0wR
-// SIG // ySBcCte85/4G/YQFJKYmkMLUxwbOaMJdU9IXaDEDwF3w
-// SIG // wv7+Y0EWBzAMJHYI9kfTcIMSj4rqcOHjdcc5VRBKAcCN
-// SIG // 9G2G2B4DyoLGaVYQ73Yb52VB9D/awCkwPeD/SF08yeFk
-// SIG // QcUf0d9aenYupkXyjKXGwteYjzddTS5kPPUCXzbbnKTH
-// SIG // 4fAwFDLLdqsbZmc5WjPWmLwDwikHkxD2Ox+bDFw4nAGB
-// SIG // 1qMZ+mx3wdNetTcz57hzR+dC041AQQRGyTU+Hvzjw+fH
-// SIG // 6e/i1JHHa0Es7FK/8uDMbR/s5+2kRXcb0i9K7aJGl3FY
-// SIG // ssUeuaV0KzXisz5J6MEZaTdfYhrl0Eoz263+PCM8FsWa
-// SIG // OazP5eF7m7ndjz+heHbNK1ZxINPaX27ZiQV7rxsG8VMs
-// SIG // JiB1ZJZnwfAhtTu2czAGHqUxwQv+
-// SIG // End signature block
diff --git a/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js.br b/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js.br
deleted file mode 100644
index b2f3bc0be..000000000
Binary files a/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js.br and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js.gz b/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js.gz
deleted file mode 100644
index 1b8fbd9ac..000000000
Binary files a/FF1Blazorizer/output/wwwroot/_framework/dotnet.6.0.27.23owh3yvu8.js.gz and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/images/tooltips/RandomizeClassInnateMagicCheckBox.png b/FF1Blazorizer/output/wwwroot/images/tooltips/RandomizeClassInnateMagicCheckBox.png
deleted file mode 100644
index 036edf2b4..000000000
Binary files a/FF1Blazorizer/output/wwwroot/images/tooltips/RandomizeClassInnateMagicCheckBox.png and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/images/tooltips/airboat.gif b/FF1Blazorizer/output/wwwroot/images/tooltips/airboat.gif
deleted file mode 100644
index 67ba92087..000000000
Binary files a/FF1Blazorizer/output/wwwroot/images/tooltips/airboat.gif and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/images/tooltips/procgenEarth.png b/FF1Blazorizer/output/wwwroot/images/tooltips/procgenEarth.png
deleted file mode 100644
index 573ede3ca..000000000
Binary files a/FF1Blazorizer/output/wwwroot/images/tooltips/procgenEarth.png and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/images/tooltips/randomShardName.png b/FF1Blazorizer/output/wwwroot/images/tooltips/randomShardName.png
deleted file mode 100644
index c0bd48c81..000000000
Binary files a/FF1Blazorizer/output/wwwroot/images/tooltips/randomShardName.png and /dev/null differ
diff --git a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_0_Loose_3_Orbs.json b/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_0_Loose_3_Orbs.json
deleted file mode 100644
index c28c87b9e..000000000
--- a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_0_Loose_3_Orbs.json
+++ /dev/null
@@ -1,498 +0,0 @@
-{
- "Name": "Fall League - 0 Loose 3 Orbs",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": true,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": false,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": false,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 2,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 2,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "PredictivePlacement": false,
- "AllowUnsafePlacement": false,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 0,
- "ExpChestConversionMax": 0,
- "ExpChestMinReward": 4000,
- "ExpChestMaxReward": 7000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": false,
- "EnableLifeInBattle": 2,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "SanityCheckerV2": true,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": false,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": false,
- "ShardCount": 0,
- "OrbsRequiredCount": 3,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "FiendsRefights": 0,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 1,
- "TCFormations": 0,
- "TCBetterTreasure": 0,
- "TCKeyItems": 0,
- "TCShards": 0,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": false,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "ShuffleScriptsBosses": true,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": true,
- "NoConsecutiveNukes": true,
- "TranceHasStatusElement": false,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 0,
- "OrdealsPillars": true,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": false,
- "MapDwarvesNorthwest": false,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": true,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": false,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": true,
- "IncentivizeEarth": false,
- "IncentivizeVolcano": false,
- "IncentivizeIceCave": true,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": false,
- "IncentivizeConeria": false,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": false,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 0,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 0,
- "EarthIncentivePlacementType": 0,
- "VolcanoIncentivePlacementType": 0,
- "SeaShrineIncentivePlacementType": 0,
- "SkyPalaceIncentivePlacementType": 0,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 0,
- "BetterTrapChests": true,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": false,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": true,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": false,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": false,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": true,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": true,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 30,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "InventoryAutosort": true,
- "AutoRetargeting": false,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": true,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": true,
- "NoXcalber": false,
- "ClassAsNpcFiends": true,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 100,
- "BossScaleStatsHigh": 200,
- "BossScaleHpLow": 100,
- "BossScaleHpHigh": 200,
- "EnemyScaleStatsLow": 60,
- "EnemyScaleStatsHigh": 190,
- "EnemyScaleHpLow": 60,
- "EnemyScaleHpHigh": 190,
- "PriceScaleFactorLow": 30,
- "PriceScaleFactorHigh": 250,
- "ExpMultiplier": 2.5,
- "ExpBonus": 100,
- "ExpMultiplierFighter": 1,
- "ExpMultiplierThief": 1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 18,
- "ProgressiveScaleMode": 7,
- "StartingItemSet": 2,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": false,
- "FORCED1": true,
- "FORCED2": false,
- "FORCED3": false,
- "FORCED4": true,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": true,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": false,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": false,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": -3,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": -3,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": false,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassMode": 1,
- "RandomizeClassCasting": false,
- "RandomizeClassKeyItems": false,
- "RandomizeClassChaos": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "NoBossSkillScriptShuffle": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMaxBonus": 2,
- "RandomizeClassMaxMalus": 1,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": false,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 15,
- "WhiteMageHarmEveryone": true,
- "EarlierRuby": true
- }
-}
diff --git a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_E-F_Shuffle.json b/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_E-F_Shuffle.json
deleted file mode 100644
index 5b0ab36b9..000000000
--- a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_E-F_Shuffle.json
+++ /dev/null
@@ -1,497 +0,0 @@
-{
- "Name": "Fall League - E-F Shuffle",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": true,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": false,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": false,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 2,
- "ScriptMultiplier": 2,
- "TouchMultiplier": 2,
- "TouchPool": 0,
- "TouchMode": 2,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": false,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 2500,
- "ExpChestMaxReward": 8000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": false,
- "EnableLifeInBattle": 2,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "SanityCheckerV2": true,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": false,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": true,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 4,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 2,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "FiendsRefights": 0,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 0,
- "TCBetterTreasure": 0,
- "TCKeyItems": 0,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "ShuffleScriptsBosses": true,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": true,
- "NoConsecutiveNukes": true,
- "TranceHasStatusElement": false,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 0,
- "OrdealsPillars": true,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": true,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": true,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": true,
- "Towns": true,
- "IncludeConeria": false,
- "Floors": true,
- "AllowDeepCastles": true,
- "AllowDeepTowns": true,
- "MapOpenProgressionExtended": false,
- "MapDwarvesNorthwest": true,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": true,
- "EntrancesMixedWithTowns": true,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": true,
- "IncentivizeEarth": false,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": true,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 0,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 0,
- "EarthIncentivePlacementType": 0,
- "VolcanoIncentivePlacementType": 0,
- "SeaShrineIncentivePlacementType": 0,
- "SkyPalaceIncentivePlacementType": 0,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 0,
- "BetterTrapChests": false,
- "IncentivizeMasamune": true,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": false,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": true,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": true,
- "IncentivizeDefCastWeapon": false,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": false,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": false,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 30,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "InventoryAutosort": true,
- "AutoRetargeting": false,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 100,
- "BossScaleStatsHigh": 300,
- "BossScaleHpLow": 250,
- "BossScaleHpHigh": 400,
- "EnemyScaleStatsLow": 50,
- "EnemyScaleStatsHigh": 150,
- "EnemyScaleHpLow": 100,
- "EnemyScaleHpHigh": 100,
- "PriceScaleFactorLow": 30,
- "PriceScaleFactorHigh": 300,
- "ExpMultiplier": 3,
- "ExpBonus": 250,
- "ExpMultiplierFighter": 1,
- "ExpMultiplierThief": 1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 6,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 6,
- "ConsumableTreasureStackSize": 0,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": false,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": true,
- "THIEF3": true,
- "BLACK_BELT3": false,
- "RED_MAGE3": true,
- "WHITE_MAGE3": true,
- "BLACK_MAGE3": true,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": false,
- "FORCED1": true,
- "FORCED2": false,
- "FORCED3": false,
- "FORCED4": true,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": true,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": false,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": false,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": true,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 0,
- "RandomWeaponBonusHigh": 7,
- "RandomArmorBonusLow": 0,
- "RandomArmorBonusHigh": 7,
- "SeparateBossHPScaling": false,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassMode": 1,
- "RandomizeClassCasting": false,
- "RandomizeClassKeyItems": false,
- "RandomizeClassChaos": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": true,
- "NoBossSkillScriptShuffle": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMaxBonus": 3,
- "RandomizeClassMaxMalus": 1,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 1,
- "OpenChestsInOrder": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 1,
- "AllowUnsafeStartArea": true,
- "IncreaseDarkPenalty": false,
- "TouchIncludeBosses": true,
- "Lockpicking": false,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 15,
- "WhiteMageHarmEveryone": true,
- "EarlierRuby": false
- }
-}
diff --git a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Noverworld.json b/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Noverworld.json
deleted file mode 100644
index e573fd5f0..000000000
--- a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Noverworld.json
+++ /dev/null
@@ -1,498 +0,0 @@
-{
- "Name": "Fall League - Noverworld",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": true,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": true,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": false,
- "GuaranteedDefenseItem": 4,
- "GuaranteedPowerItem": 4,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 1,
- "TouchPool": 1,
- "TouchMode": 2,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 1,
- "ItemMagicMode": 1,
- "ItemMagicPool": 4,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": true,
- "LooseItemsNpcBalance": false,
- "PredictivePlacement": false,
- "AllowUnsafePlacement": false,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 50,
- "ExpChestConversionMax": 70,
- "ExpChestMinReward": 500,
- "ExpChestMaxReward": 2500,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 2,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "SanityCheckerV2": true,
- "OwMapExchange": 2,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": false,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 2,
- "MapGenSeed": 1157497865,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 3,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": true,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": false,
- "ShardCount": 3,
- "OrbsRequiredCount": 3,
- "OrbsRequiredMode": 1,
- "OrbsRequiredSpoilers": true,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "FiendsRefights": 0,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": true,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": true,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 6,
- "TCFormations": 0,
- "TCBetterTreasure": 0,
- "TCKeyItems": 0,
- "TCShards": 1,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": false,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "ShuffleScriptsBosses": true,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": true,
- "NoConsecutiveNukes": true,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 0,
- "OrdealsPillars": true,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": true,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": true,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": true,
- "FlipDungeons": null,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": false,
- "Entrances": true,
- "Towns": true,
- "IncludeConeria": false,
- "Floors": true,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": false,
- "MapDwarvesNorthwest": true,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": false,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": true,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": true,
- "EntrancesMixedWithTowns": true,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": false,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": false,
- "IncentivizeAirship": false,
- "IncentivizeShipAndCanal": false,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": true,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": true,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": true,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 1,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 1,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 1,
- "VolcanoIncentivePlacementType": 1,
- "SeaShrineIncentivePlacementType": 1,
- "SkyPalaceIncentivePlacementType": 1,
- "CorneriaIncentivePlacementType": 1,
- "MarshLockedIncentivePlacementType": 1,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": false,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": false,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": false,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": true,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": false,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": false,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": false,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": false,
- "WeaponStats": true,
- "BBCritRate": true,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 2,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": true,
- "WeaponTypeBonusValue": 25,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "InventoryAutosort": true,
- "AutoRetargeting": false,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": true,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 5,
- "IncludeMorale": true,
- "DeadsGainXP": false,
- "NonesGainXP": true,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": true,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": true,
- "ClassAsNpcCount": 5,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 70,
- "BossScaleStatsHigh": 200,
- "BossScaleHpLow": 150,
- "BossScaleHpHigh": 250,
- "EnemyScaleStatsLow": 40,
- "EnemyScaleStatsHigh": 80,
- "EnemyScaleHpLow": 70,
- "EnemyScaleHpHigh": 120,
- "PriceScaleFactorLow": 30,
- "PriceScaleFactorHigh": 150,
- "ExpMultiplier": 2,
- "ExpBonus": 200,
- "ExpMultiplierFighter": 1,
- "ExpMultiplierThief": 1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1.3,
- "ExpMultiplierBlackMage": 1.5,
- "EncounterRate": 0,
- "DungeonEncounterRate": 9,
- "ProgressiveScaleMode": 6,
- "StartingItemSet": 6,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": true,
- "WHITE_MAGE1": true,
- "BLACK_MAGE1": true,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": true,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": false,
- "WHITE_MAGE4": false,
- "BLACK_MAGE4": false,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": false,
- "FORCED2": false,
- "FORCED3": true,
- "FORCED4": true,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": true,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": false,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": false,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": true,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": true,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "FreeTail": false,
- "HintsVillage": true,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": -3,
- "RandomWeaponBonusHigh": 3,
- "RandomArmorBonusLow": -2,
- "RandomArmorBonusHigh": 2,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": true,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassMode": 1,
- "RandomizeClassCasting": false,
- "RandomizeClassKeyItems": true,
- "RandomizeClassChaos": false,
- "RandomizeClassIncludeXpBonus": true,
- "AlternateFiends": false,
- "NoBossSkillScriptShuffle": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 1,
- "EarlierHighTierMagic": true,
- "ChangeMaxMP": true,
- "RedMageMaxMP": 4,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 1,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 1,
- "OpenChestsInOrder": false,
- "WorldWealth": 0,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 2,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": false,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 18,
- "WhiteMageHarmEveryone": true,
- "EarlierRuby": true
- }
-}
diff --git a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Procgen_OW_Oops_All_Loose.json b/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Procgen_OW_Oops_All_Loose.json
deleted file mode 100644
index 99a99369a..000000000
--- a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Procgen_OW_Oops_All_Loose.json
+++ /dev/null
@@ -1,497 +0,0 @@
-{
- "Name": "Fall League - Procgen OW Oops All Loose",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": false,
- "NoEmptyScripts": false,
- "LaterLoose": true,
- "MermaidPrison": false,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 2,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 2,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": true,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": false,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 7000,
- "ExpChestMaxReward": 7000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": false,
- "EnableLifeInBattle": 2,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "SanityCheckerV2": true,
- "OwMapExchange": 1,
- "OwShuffledAccess": true,
- "OwUnsafeStart": false,
- "OwRandomPregen": true,
- "RelocateChests": true,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": false,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 450698476,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": false,
- "ShardCount": 0,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 2,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "FiendsRefights": 0,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 6,
- "TCFormations": 2,
- "TCBetterTreasure": 2,
- "TCKeyItems": 0,
- "TCShards": 0,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "ShuffleScriptsBosses": true,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": true,
- "NoConsecutiveNukes": true,
- "TranceHasStatusElement": false,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 0,
- "OrdealsPillars": true,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": false,
- "MapOpenProgressionDocks": false,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": false,
- "MapDwarvesNorthwest": false,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": false,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": true,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": false,
- "IncentivizeFetchNPCs": false,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": true,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": false,
- "IncentivizeVolcano": false,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": false,
- "IncentivizeSeaShrine": false,
- "IncentivizeConeria": false,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": false,
- "IncentivizeTitansTrove": false,
- "IncentivizeCardia": false,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 0,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 0,
- "EarthIncentivePlacementType": 0,
- "VolcanoIncentivePlacementType": 0,
- "SeaShrineIncentivePlacementType": 0,
- "SkyPalaceIncentivePlacementType": 0,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 0,
- "BetterTrapChests": false,
- "IncentivizeMasamune": true,
- "IncentivizeKatana": true,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": true,
- "IncentivizeOpal": true,
- "IncentivizeRibbon": true,
- "IncentivizeDefCastArmor": true,
- "IncentivizeOffCastArmor": true,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": true,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": true,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": true,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": true,
- "WeaponTypeBonusValue": 30,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "InventoryAutosort": true,
- "AutoRetargeting": false,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 4,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 70,
- "BossScaleStatsHigh": 150,
- "BossScaleHpLow": 50,
- "BossScaleHpHigh": 150,
- "EnemyScaleStatsLow": 70,
- "EnemyScaleStatsHigh": 150,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 30,
- "PriceScaleFactorHigh": 250,
- "ExpMultiplier": 2.5,
- "ExpBonus": 250,
- "ExpMultiplierFighter": 1,
- "ExpMultiplierThief": 1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 15,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 7,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": true,
- "WHITE_MAGE1": true,
- "BLACK_MAGE1": true,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": true,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": true,
- "THIEF3": true,
- "BLACK_BELT3": true,
- "RED_MAGE3": true,
- "WHITE_MAGE3": true,
- "BLACK_MAGE3": true,
- "FIGHTER4": true,
- "THIEF4": true,
- "BLACK_BELT4": true,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": false,
- "NONE_CLASS3": false,
- "NONE_CLASS4": false,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": true,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": true,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": false,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": false,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": true,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "FreeTail": false,
- "HintsVillage": true,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": -3,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": -3,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": false,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 3,
- "EnablePoolParty": true,
- "SafePoolParty": true,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassMode": 1,
- "RandomizeClassCasting": false,
- "RandomizeClassKeyItems": false,
- "RandomizeClassChaos": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "NoBossSkillScriptShuffle": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMaxBonus": 2,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": false,
- "TouchIncludeBosses": true,
- "Lockpicking": false,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 15,
- "WhiteMageHarmEveryone": true,
- "EarlierRuby": false
- }
-}
diff --git a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Relay_Race.json b/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Relay_Race.json
deleted file mode 100644
index ad9e6b70b..000000000
--- a/FF1Blazorizer/output/wwwroot/presets/Fall_League_-_Relay_Race.json
+++ /dev/null
@@ -1,497 +0,0 @@
-{
- "Name": "Fall League - Relay Race",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": true,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": true,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": false,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": false,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 2,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 1,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 1,
- "ItemMagicPool": 4,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": false,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 0,
- "ExpChestConversionMax": 0,
- "ExpChestMinReward": 4000,
- "ExpChestMaxReward": 7000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 2,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "SanityCheckerV2": true,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": false,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": true,
- "RandomWaresIncludesSpecialGear": true,
- "RandomLoot": false,
- "ShardHunt": false,
- "ShardCount": 0,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 1,
- "ChaosRush": false,
- "ToFRMode": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "FiendsRefights": 0,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 12,
- "UnrunnablesHigh": 12,
- "EnemyFormationsSurprise": false,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 0,
- "TCBetterTreasure": 0,
- "TCKeyItems": 0,
- "TCShards": 0,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": false,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "ShuffleScriptsBosses": true,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": true,
- "NoConsecutiveNukes": true,
- "TranceHasStatusElement": false,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": true,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": false,
- "LefeinSuperStore": false,
- "LefeinShops": true,
- "RandomVampAttack": true,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": true,
- "SwoleBahamut": true,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": false,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "MoveGaiaItemShop": false,
- "ShufflePravokaShops": false,
- "FlipDungeons": true,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": true,
- "Towns": true,
- "IncludeConeria": false,
- "Floors": true,
- "AllowDeepCastles": false,
- "AllowDeepTowns": true,
- "MapOpenProgressionExtended": false,
- "MapDwarvesNorthwest": false,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": true,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": true,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": true,
- "EntrancesMixedWithTowns": true,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": false,
- "IncentivizeShipAndCanal": false,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": false,
- "IncentivizeVolcano": false,
- "IncentivizeIceCave": true,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": false,
- "IncentivizeConeria": false,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": false,
- "IncentivizeCardia": false,
- "IceCaveIncentivePlacementType": 1,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 0,
- "EarthIncentivePlacementType": 0,
- "VolcanoIncentivePlacementType": 0,
- "SeaShrineIncentivePlacementType": 0,
- "SkyPalaceIncentivePlacementType": 1,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 0,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": true,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": false,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": false,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": false,
- "FreeShip": true,
- "FreeAirship": true,
- "FreeLute": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": true,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": true,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 2,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 30,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "InventoryAutosort": true,
- "AutoRetargeting": false,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": true,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": true,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 100,
- "BossScaleStatsHigh": 250,
- "BossScaleHpLow": 250,
- "BossScaleHpHigh": 350,
- "EnemyScaleStatsLow": 100,
- "EnemyScaleStatsHigh": 230,
- "EnemyScaleHpLow": 100,
- "EnemyScaleHpHigh": 200,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 4,
- "ExpBonus": 250,
- "ExpMultiplierFighter": 1,
- "ExpMultiplierThief": 1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 18,
- "DungeonEncounterRate": 21,
- "ProgressiveScaleMode": 12,
- "StartingItemSet": 2,
- "ConsumableTreasureStackSize": 0,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": true,
- "WHITE_MAGE1": true,
- "BLACK_MAGE1": true,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": true,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": true,
- "THIEF3": true,
- "BLACK_BELT3": true,
- "RED_MAGE3": true,
- "WHITE_MAGE3": true,
- "BLACK_MAGE3": true,
- "FIGHTER4": true,
- "THIEF4": true,
- "BLACK_BELT4": true,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": false,
- "FORCED2": false,
- "FORCED3": false,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": true,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": false,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": false,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": true,
- "RandomWeaponBonusLow": -3,
- "RandomWeaponBonusHigh": 3,
- "RandomArmorBonusLow": -2,
- "RandomArmorBonusHigh": 3,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": true,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassMode": 1,
- "RandomizeClassCasting": false,
- "RandomizeClassKeyItems": false,
- "RandomizeClassChaos": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "NoBossSkillScriptShuffle": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMaxBonus": 2,
- "RandomizeClassMaxMalus": 1,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 1,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 1,
- "OpenChestsInOrder": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 0,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": false,
- "TouchIncludeBosses": true,
- "Lockpicking": false,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 15,
- "WhiteMageHarmEveryone": true,
- "EarlierRuby": false
- }
-}
diff --git a/FF1Blazorizer/output/wwwroot/presets/Winter_Tournament_2024.json b/FF1Blazorizer/output/wwwroot/presets/Winter_Tournament_2024.json
deleted file mode 100644
index 1448322c7..000000000
--- a/FF1Blazorizer/output/wwwroot/presets/Winter_Tournament_2024.json
+++ /dev/null
@@ -1,505 +0,0 @@
-{
- "Name": "Winter_Tournament_2024",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": false,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 2,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": true,
- "LooseItemsSpreadPlacement": true,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": false,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 0,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 500,
- "ExpChestMaxReward": 2000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 1,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "SanityCheckerV2": true,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": false,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 3,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 0,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 1,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 16,
- "UnrunnablesHigh": 16,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 0,
- "TCFormations": 0,
- "TCBetterTreasure": 0,
- "TCKeyItems": 0,
- "TCShards": 0,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": true,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "ShuffleScriptsBosses": true,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": true,
- "NoConsecutiveNukes": true,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": false,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": false,
- "MapDwarvesNorthwest": false,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": false,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": false,
- "IncentivizeFetchItems": false,
- "IncentivizeCanoeItem": false,
- "IncentivizeAirship": false,
- "IncentivizeShipAndCanal": false,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": false,
- "IncentivizeVolcano": false,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": false,
- "IncentivizeSeaShrine": false,
- "IncentivizeConeria": false,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": false,
- "IncentivizeTitansTrove": false,
- "IncentivizeCardia": false,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 0,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 0,
- "EarthIncentivePlacementType": 0,
- "VolcanoIncentivePlacementType": 0,
- "SeaShrineIncentivePlacementType": 0,
- "SkyPalaceIncentivePlacementType": 0,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 0,
- "BetterTrapChests": true,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": true,
- "IncentivizeOpal": true,
- "IncentivizeRibbon": true,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": true,
- "IncentivizeDefCastWeapon": false,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": false,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": false,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": true,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 2,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 35,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "InventoryAutosort": true,
- "AutoRetargeting": false,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 90,
- "BossScaleStatsHigh": 180,
- "BossScaleHpLow": 110,
- "BossScaleHpHigh": 200,
- "EnemyScaleStatsLow": 110,
- "EnemyScaleStatsHigh": 160,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 30,
- "PriceScaleFactorHigh": 250,
- "ExpMultiplier": 1.5,
- "ExpBonus": 75,
- "ExpMultiplierFighter": 1,
- "ExpMultiplierThief": 1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 15,
- "DungeonEncounterRate": 16,
- "ProgressiveScaleMode": 12,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": true,
- "WHITE_MAGE1": true,
- "BLACK_MAGE1": true,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": true,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": true,
- "THIEF3": true,
- "BLACK_BELT3": true,
- "RED_MAGE3": true,
- "WHITE_MAGE3": true,
- "BLACK_MAGE3": true,
- "FIGHTER4": true,
- "THIEF4": true,
- "BLACK_BELT4": true,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": false,
- "FORCED2": false,
- "FORCED3": false,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": true,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": false,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": false,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": -1,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": -1,
- "RandomArmorBonusHigh": 6,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassMode": 1,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassChaos": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "NoBossSkillScriptShuffle": false,
- "Transmooglifier": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMaxBonus": 2,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "TouchIncludeBosses": true,
- "Lockpicking": false,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 33,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "EarlierRuby": false
- }
-}
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/FountainText.png b/FF1Blazorizer/wwwroot/images/tooltips/FountainText.png
new file mode 100644
index 000000000..854c37936
Binary files /dev/null and b/FF1Blazorizer/wwwroot/images/tooltips/FountainText.png differ
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/LefienShortcut.png b/FF1Blazorizer/wwwroot/images/tooltips/LefienShortcut.png
new file mode 100644
index 000000000..445aff7d7
Binary files /dev/null and b/FF1Blazorizer/wwwroot/images/tooltips/LefienShortcut.png differ
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/MagicShopMenuChangeCheckBox.png b/FF1Blazorizer/wwwroot/images/tooltips/MagicShopMenuChangeCheckBox.png
new file mode 100644
index 000000000..f0a360cc7
Binary files /dev/null and b/FF1Blazorizer/wwwroot/images/tooltips/MagicShopMenuChangeCheckBox.png differ
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/chestsAppearOpened.png b/FF1Blazorizer/wwwroot/images/tooltips/chestsAppearOpened.png
new file mode 100644
index 000000000..c633efe4b
Binary files /dev/null and b/FF1Blazorizer/wwwroot/images/tooltips/chestsAppearOpened.png differ
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/preserveFiendRefightsCheckBox.gif b/FF1Blazorizer/wwwroot/images/tooltips/preserveFiendRefightsCheckBox.gif
deleted file mode 100644
index 942461adc..000000000
Binary files a/FF1Blazorizer/wwwroot/images/tooltips/preserveFiendRefightsCheckBox.gif and /dev/null differ
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/redMageHitDropDown.png b/FF1Blazorizer/wwwroot/images/tooltips/redMageHitDropDown.png
new file mode 100644
index 000000000..611505b04
Binary files /dev/null and b/FF1Blazorizer/wwwroot/images/tooltips/redMageHitDropDown.png differ
diff --git a/FF1Blazorizer/wwwroot/images/tooltips/thiefHitCheckBox.gif b/FF1Blazorizer/wwwroot/images/tooltips/thiefHitDropDown.gif
similarity index 100%
rename from FF1Blazorizer/wwwroot/images/tooltips/thiefHitCheckBox.gif
rename to FF1Blazorizer/wwwroot/images/tooltips/thiefHitDropDown.gif
diff --git a/FF1Blazorizer/wwwroot/presets/Beginner.json b/FF1Blazorizer/wwwroot/presets/Beginner.json
index 201e883fc..5a2461bef 100644
--- a/FF1Blazorizer/wwwroot/presets/Beginner.json
+++ b/FF1Blazorizer/wwwroot/presets/Beginner.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -265,6 +267,7 @@
"AirBoat": false,
"BuyTen": true,
"IdentifyTreasures": true,
+ "ChestsAppearOpened": true,
"ShopInfo": true,
"ChestInfo": true,
"IncentiveChestItemsFanfare": true,
@@ -287,7 +290,7 @@
"NPCSwatter": true,
"BattleMagicMenuWrapAround": true,
"InventoryAutosort": true,
- "AutoRetargeting": false,
+ "AutoRetargeting": false,
"EnemyStatusAttackBug": true,
"ImproveTurnOrderRandomization": true,
"FixHitChanceCap": true,
@@ -416,7 +419,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +430,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Chaos_Rush.json b/FF1Blazorizer/wwwroot/presets/Chaos_Rush.json
index 74a8ceb3c..0454380c6 100644
--- a/FF1Blazorizer/wwwroot/presets/Chaos_Rush.json
+++ b/FF1Blazorizer/wwwroot/presets/Chaos_Rush.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 3,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": true,
diff --git a/FF1Blazorizer/wwwroot/presets/Deep_Dungeon.json b/FF1Blazorizer/wwwroot/presets/Deep_Dungeon.json
index b6bf3b2e1..0a9b8fbf5 100644
--- a/FF1Blazorizer/wwwroot/presets/Deep_Dungeon.json
+++ b/FF1Blazorizer/wwwroot/presets/Deep_Dungeon.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": false,
"SkyCastle4FMazeMode": 0,
"TitansTrove": false,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Entrance_Floor_Shuffle.json b/FF1Blazorizer/wwwroot/presets/Entrance_Floor_Shuffle.json
index a86df5748..2042da2ca 100644
--- a/FF1Blazorizer/wwwroot/presets/Entrance_Floor_Shuffle.json
+++ b/FF1Blazorizer/wwwroot/presets/Entrance_Floor_Shuffle.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Floaterless.json b/FF1Blazorizer/wwwroot/presets/Floaterless.json
index 8d1abebda..497f75259 100644
--- a/FF1Blazorizer/wwwroot/presets/Floaterless.json
+++ b/FF1Blazorizer/wwwroot/presets/Floaterless.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Free_Enterprise.json b/FF1Blazorizer/wwwroot/presets/Free_Enterprise.json
index c0136a4ee..9b95e4ea4 100644
--- a/FF1Blazorizer/wwwroot/presets/Free_Enterprise.json
+++ b/FF1Blazorizer/wwwroot/presets/Free_Enterprise.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": true,
diff --git a/FF1Blazorizer/wwwroot/presets/Hidden_Chaos.json b/FF1Blazorizer/wwwroot/presets/Hidden_Chaos.json
index 712007cdc..15185486c 100644
--- a/FF1Blazorizer/wwwroot/presets/Hidden_Chaos.json
+++ b/FF1Blazorizer/wwwroot/presets/Hidden_Chaos.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": false,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Improved_Vanilla.json b/FF1Blazorizer/wwwroot/presets/Improved_Vanilla.json
index 08a5c70b3..ce03434ee 100644
--- a/FF1Blazorizer/wwwroot/presets/Improved_Vanilla.json
+++ b/FF1Blazorizer/wwwroot/presets/Improved_Vanilla.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": false,
@@ -157,6 +158,7 @@
"OrdealsPillars": false,
"SkyCastle4FMazeMode": 0,
"TitansTrove": false,
+ "LefeinShortcut": false,
"LefeinSuperStore": false,
"LefeinShops": false,
"RandomVampAttack": false,
@@ -257,14 +259,15 @@
"FreeCanal": false,
"FreeCanoe": false,
"EasyMode": false,
- "HousesFillHp": false,
+ "HousesFillHp": true,
"SpeedHacks": true,
"NoPartyShuffle": true,
"Dash": true,
- "SpeedBoat": false,
+ "SpeedBoat": true,
"AirBoat": false,
"BuyTen": true,
"IdentifyTreasures": true,
+ "ChestsAppearOpened": true,
"ShopInfo": true,
"ChestInfo": true,
"IncentiveChestItemsFanfare": false,
@@ -287,7 +290,7 @@
"NPCSwatter": true,
"BattleMagicMenuWrapAround": true,
"InventoryAutosort": true,
- "AutoRetargeting": false,
+ "AutoRetargeting": true,
"EnemyStatusAttackBug": true,
"ImproveTurnOrderRandomization": true,
"FixHitChanceCap": false,
@@ -416,7 +419,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +430,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": false,
+ "ThiefHitBuff": 3,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": false,
"FreeTail": false,
@@ -480,7 +483,7 @@
"KnightMaxMP": 4,
"NinjaMaxMP": 4,
"MpGainOnMaxGainMode": 0,
- "LockMode": 3,
+ "LockMode": 2,
"MDefMode": 0,
"FormationShuffleMode": 0,
"RandomizeTreasure": 0,
diff --git a/FF1Blazorizer/wwwroot/presets/Lichs_Revenge.json b/FF1Blazorizer/wwwroot/presets/Lichs_Revenge.json
index 976fa6928..f6b9a1dfc 100644
--- a/FF1Blazorizer/wwwroot/presets/Lichs_Revenge.json
+++ b/FF1Blazorizer/wwwroot/presets/Lichs_Revenge.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": false,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Maximum_Troll.json b/FF1Blazorizer/wwwroot/presets/Maximum_Troll.json
index 887443323..bd383e4bb 100644
--- a/FF1Blazorizer/wwwroot/presets/Maximum_Troll.json
+++ b/FF1Blazorizer/wwwroot/presets/Maximum_Troll.json
@@ -81,6 +81,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -146,6 +147,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": false,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": true,
@@ -156,7 +158,7 @@
"GaiaShortcut": true,
"OWDamageTiles": false,
"DamageTilesKill": false,
- "MoveGaiaItemShop": true,
+ "MoveGaiaItemShop": false,
"FlipDungeons": true,
"SpookyFlag": false,
"DraculasFlag": false,
@@ -385,7 +387,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": true,
"EFGEarth1": false,
"EFGEarth2": false,
"FiendShuffle": true,
@@ -399,7 +400,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/NOverworld.json b/FF1Blazorizer/wwwroot/presets/NOverworld.json
index 1deffee6c..0a1d6044d 100644
--- a/FF1Blazorizer/wwwroot/presets/NOverworld.json
+++ b/FF1Blazorizer/wwwroot/presets/NOverworld.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Oops_All_Loose.json b/FF1Blazorizer/wwwroot/presets/Oops_All_Loose.json
index 63f4d1363..0558480fb 100644
--- a/FF1Blazorizer/wwwroot/presets/Oops_All_Loose.json
+++ b/FF1Blazorizer/wwwroot/presets/Oops_All_Loose.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Over_Randomizer.json b/FF1Blazorizer/wwwroot/presets/Over_Randomizer.json
index 0680d7675..eb56e6800 100644
--- a/FF1Blazorizer/wwwroot/presets/Over_Randomizer.json
+++ b/FF1Blazorizer/wwwroot/presets/Over_Randomizer.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": true,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": true,
"FiendShuffle": true,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": true,
"GenerateNewSpellbook": true,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Procgen_Overworld.json b/FF1Blazorizer/wwwroot/presets/Procgen_Overworld.json
index 4243f890f..eb896aed5 100644
--- a/FF1Blazorizer/wwwroot/presets/Procgen_Overworld.json
+++ b/FF1Blazorizer/wwwroot/presets/Procgen_Overworld.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Shard_Hunt.json b/FF1Blazorizer/wwwroot/presets/Shard_Hunt.json
index 4a689999a..ed5502e00 100644
--- a/FF1Blazorizer/wwwroot/presets/Shard_Hunt.json
+++ b/FF1Blazorizer/wwwroot/presets/Shard_Hunt.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/Winter_Tournament_2024.json b/FF1Blazorizer/wwwroot/presets/Winter_Tournament_2024.json
index b2b850bba..2f2abeff7 100644
--- a/FF1Blazorizer/wwwroot/presets/Winter_Tournament_2024.json
+++ b/FF1Blazorizer/wwwroot/presets/Winter_Tournament_2024.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": true,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": false,
"LefeinSuperStore": false,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -416,7 +418,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +429,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/default.json b/FF1Blazorizer/wwwroot/presets/default.json
index e0bed3091..5a2461bef 100644
--- a/FF1Blazorizer/wwwroot/presets/default.json
+++ b/FF1Blazorizer/wwwroot/presets/default.json
@@ -92,6 +92,7 @@
"MaxLevelLow": 50,
"MaxLevelHigh": 50,
"Spoilers": false,
+ "TriState": false,
"TournamentSafe": false,
"BlindSeed": false,
"Shops": true,
@@ -157,6 +158,7 @@
"OrdealsPillars": true,
"SkyCastle4FMazeMode": 0,
"TitansTrove": true,
+ "LefeinShortcut": true,
"LefeinSuperStore": true,
"LefeinShops": true,
"RandomVampAttack": false,
@@ -265,6 +267,7 @@
"AirBoat": false,
"BuyTen": true,
"IdentifyTreasures": true,
+ "ChestsAppearOpened": true,
"ShopInfo": true,
"ChestInfo": true,
"IncentiveChestItemsFanfare": true,
@@ -416,7 +419,6 @@
"ClampMinimumStatScale": false,
"ClampMinimumBossStatScale": false,
"ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
"FiendShuffle": false,
"DisableTentSaving": false,
"DisableInnSaving": false,
@@ -428,7 +430,8 @@
"RandomizeFormationEnemizer": false,
"GenerateNewSpellbook": false,
"SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
"AllSpellLevelsForKnightNinja": false,
"BuffHealingSpells": true,
"FreeTail": false,
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025finals.json b/FF1Blazorizer/wwwroot/presets/wt2025finals.json
index 1085d4f7d..f397f8827 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025finals.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025finals.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Finals",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 4,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": true,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": true,
- "MapBridgeLefein": true,
- "MapRiverToMelmond": true,
- "MapGaiaMountainPass": true,
- "MapHighwayToOrdeals": true,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 140,
- "BossScaleStatsHigh": 200,
- "BossScaleHpLow": 170,
- "BossScaleHpHigh": 200,
- "EnemyScaleStatsLow": 100,
- "EnemyScaleStatsHigh": 160,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 0,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 0,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 4,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": true,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": true,
+ "MapBahamutCardiaDock": true,
+ "MapLefeinRiver": true,
+ "MapBridgeLefein": true,
+ "MapRiverToMelmond": true,
+ "MapGaiaMountainPass": true,
+ "MapHighwayToOrdeals": true,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 140,
+ "BossScaleStatsHigh": 200,
+ "BossScaleHpLow": 170,
+ "BossScaleHpHigh": 200,
+ "EnemyScaleStatsLow": 100,
+ "EnemyScaleStatsHigh": 160,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 0,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 0,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025qfinals.json b/FF1Blazorizer/wwwroot/presets/wt2025qfinals.json
index 787145318..b34ce4d46 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025qfinals.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025qfinals.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Quarterfinals",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 7,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": true,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": true,
- "MapBridgeLefein": true,
- "MapRiverToMelmond": true,
- "MapGaiaMountainPass": true,
- "MapHighwayToOrdeals": true,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 130,
- "BossScaleStatsHigh": 200,
- "BossScaleHpLow": 160,
- "BossScaleHpHigh": 200,
- "EnemyScaleStatsLow": 90,
- "EnemyScaleStatsHigh": 160,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 0,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 0,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 7,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": true,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": true,
+ "MapBahamutCardiaDock": true,
+ "MapLefeinRiver": true,
+ "MapBridgeLefein": true,
+ "MapRiverToMelmond": true,
+ "MapGaiaMountainPass": true,
+ "MapHighwayToOrdeals": true,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 130,
+ "BossScaleStatsHigh": 200,
+ "BossScaleHpLow": 160,
+ "BossScaleHpHigh": 200,
+ "EnemyScaleStatsLow": 90,
+ "EnemyScaleStatsHigh": 160,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 0,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 0,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025quals.json b/FF1Blazorizer/wwwroot/presets/wt2025quals.json
index a3989d4ef..937484467 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025quals.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025quals.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Qualifiers",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 2,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": false,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": false,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 120,
- "BossScaleStatsHigh": 160,
- "BossScaleHpLow": 150,
- "BossScaleHpHigh": 150,
- "EnemyScaleStatsLow": 80,
- "EnemyScaleStatsHigh": 120,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 4,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 4,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 2,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": false,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": false,
+ "MapBahamutCardiaDock": false,
+ "MapLefeinRiver": false,
+ "MapBridgeLefein": false,
+ "MapRiverToMelmond": false,
+ "MapGaiaMountainPass": false,
+ "MapHighwayToOrdeals": false,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 120,
+ "BossScaleStatsHigh": 160,
+ "BossScaleHpLow": 150,
+ "BossScaleHpHigh": 150,
+ "EnemyScaleStatsLow": 80,
+ "EnemyScaleStatsHigh": 120,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 4,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 4,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025r16.json b/FF1Blazorizer/wwwroot/presets/wt2025r16.json
index 798a0f4b8..50beb5b6f 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025r16.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025r16.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Round of 16",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 3,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": false,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": false,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": true,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 130,
- "BossScaleStatsHigh": 180,
- "BossScaleHpLow": 160,
- "BossScaleHpHigh": 180,
- "EnemyScaleStatsLow": 90,
- "EnemyScaleStatsHigh": 140,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 1,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 1,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 3,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": false,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": false,
+ "MapBahamutCardiaDock": false,
+ "MapLefeinRiver": false,
+ "MapBridgeLefein": false,
+ "MapRiverToMelmond": true,
+ "MapGaiaMountainPass": false,
+ "MapHighwayToOrdeals": false,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 130,
+ "BossScaleStatsHigh": 180,
+ "BossScaleHpLow": 160,
+ "BossScaleHpHigh": 180,
+ "EnemyScaleStatsLow": 90,
+ "EnemyScaleStatsHigh": 140,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 1,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 1,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025r32.json b/FF1Blazorizer/wwwroot/presets/wt2025r32.json
index 2caa1f6be..232b20ef6 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025r32.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025r32.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Round of 32",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 3,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": false,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": false,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": true,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 130,
- "BossScaleStatsHigh": 170,
- "BossScaleHpLow": 160,
- "BossScaleHpHigh": 170,
- "EnemyScaleStatsLow": 90,
- "EnemyScaleStatsHigh": 130,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 2,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 2,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 3,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": false,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": false,
+ "MapBahamutCardiaDock": false,
+ "MapLefeinRiver": false,
+ "MapBridgeLefein": false,
+ "MapRiverToMelmond": true,
+ "MapGaiaMountainPass": false,
+ "MapHighwayToOrdeals": false,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 130,
+ "BossScaleStatsHigh": 170,
+ "BossScaleHpLow": 160,
+ "BossScaleHpHigh": 170,
+ "EnemyScaleStatsLow": 90,
+ "EnemyScaleStatsHigh": 130,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 2,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 2,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025r64.json b/FF1Blazorizer/wwwroot/presets/wt2025r64.json
index eb79561ee..4e1ffeb4d 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025r64.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025r64.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Round of 64",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 2,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": false,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": false,
- "MapBahamutCardiaDock": false,
- "MapLefeinRiver": false,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": false,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 130,
- "BossScaleStatsHigh": 160,
- "BossScaleHpLow": 160,
- "BossScaleHpHigh": 160,
- "EnemyScaleStatsLow": 90,
- "EnemyScaleStatsHigh": 120,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 3,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 3,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 2,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": false,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": false,
+ "MapBahamutCardiaDock": false,
+ "MapLefeinRiver": false,
+ "MapBridgeLefein": false,
+ "MapRiverToMelmond": false,
+ "MapGaiaMountainPass": false,
+ "MapHighwayToOrdeals": false,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 130,
+ "BossScaleStatsHigh": 160,
+ "BossScaleHpLow": 160,
+ "BossScaleHpHigh": 160,
+ "EnemyScaleStatsLow": 90,
+ "EnemyScaleStatsHigh": 120,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 3,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 3,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025r8.json b/FF1Blazorizer/wwwroot/presets/wt2025r8.json
index ea3498ef5..31f6141c6 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025r8.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025r8.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Round of 8",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 3,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": true,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": true,
- "MapBridgeLefein": false,
- "MapRiverToMelmond": true,
- "MapGaiaMountainPass": false,
- "MapHighwayToOrdeals": false,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 130,
- "BossScaleStatsHigh": 190,
- "BossScaleHpLow": 160,
- "BossScaleHpHigh": 190,
- "EnemyScaleStatsLow": 90,
- "EnemyScaleStatsHigh": 150,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 0,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 0,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 3,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": true,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": true,
+ "MapBahamutCardiaDock": true,
+ "MapLefeinRiver": true,
+ "MapBridgeLefein": false,
+ "MapRiverToMelmond": true,
+ "MapGaiaMountainPass": false,
+ "MapHighwayToOrdeals": false,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 130,
+ "BossScaleStatsHigh": 190,
+ "BossScaleHpLow": 160,
+ "BossScaleHpHigh": 190,
+ "EnemyScaleStatsLow": 90,
+ "EnemyScaleStatsHigh": 150,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 0,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 0,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/presets/wt2025sfinals.json b/FF1Blazorizer/wwwroot/presets/wt2025sfinals.json
index 7aa1ca126..c6e7c68a5 100644
--- a/FF1Blazorizer/wwwroot/presets/wt2025sfinals.json
+++ b/FF1Blazorizer/wwwroot/presets/wt2025sfinals.json
@@ -1,532 +1,534 @@
{
"Name": "Winter Tournament 2025 Semifinals",
- "Flags": {
- "StartingEquipmentMasamune": false,
- "StartingEquipmentKatana": false,
- "StartingEquipmentHealStaff": false,
- "StartingEquipmentZeusGauntlet": false,
- "StartingEquipmentWhiteShirt": false,
- "StartingEquipmentRibbon": false,
- "StartingEquipmentDragonslayer": false,
- "StartingEquipmentLegendKit": false,
- "StartingEquipmentRandomEndgameWeapon": false,
- "StartingEquipmentRandomAoe": false,
- "StartingEquipmentRandomCasterItem": false,
- "StartingEquipmentGrandpasSecretStash": false,
- "StartingEquipmentOneItem": false,
- "StartingEquipmentRandomCrap": false,
- "StartingEquipmentStarterPack": false,
- "StartingEquipmentRandomTypeWeapon": false,
- "StartingEquipmentRemoveFromPool": false,
- "StartingEquipmentNoDuplicates": false,
- "ReversedFloors": false,
- "BuffTier1DamageSpells": true,
- "NoEmptyScripts": false,
- "LaterLoose": false,
- "MermaidPrison": true,
- "GuaranteedDefenseItem": 3,
- "GuaranteedPowerItem": 0,
- "ScriptMultiplier": 1,
- "TouchMultiplier": 2,
- "TouchPool": 1,
- "TouchMode": 0,
- "RibbonMode": 0,
- "Archipelago": false,
- "ArchipelagoGold": false,
- "ArchipelagoConsumables": false,
- "ArchipelagoShards": false,
- "ArchipelagoEquipment": 0,
- "ItemMagicMode": 0,
- "ItemMagicPool": 0,
- "MagisizeWeapons": false,
- "DisableMinimap": false,
- "LooseItemsForwardPlacement": false,
- "LooseItemsSpreadPlacement": false,
- "LooseItemsNpcBalance": false,
- "AllowUnsafePlacement": true,
- "ShipCanalBeforeFloater": false,
- "ExpChestConversionMin": 10,
- "ExpChestConversionMax": 10,
- "ExpChestMinReward": 3000,
- "ExpChestMaxReward": 3000,
- "SpellNameMadness": 0,
- "ExtConsumableSet": 0,
- "EnableSoftInBattle": true,
- "EnableLifeInBattle": 0,
- "NormalShopsHaveExtConsumables": false,
- "LegendaryShopHasExtConsumables": false,
- "ExtConsumableTreasureStackSize": 0,
- "ExtStartingItemSet": 0,
- "ExtConsumableChests": 0,
- "OwMapExchange": 0,
- "OwShuffledAccess": false,
- "OwUnsafeStart": false,
- "OwRandomPregen": false,
- "RelocateChests": false,
- "RelocateChestsTrapIndicator": false,
- "ShuffleChimeAccess": true,
- "ShuffleChimeIncludeTowns": false,
- "GameMode": 0,
- "MapGenSeed": 0,
- "ReplacementMap": null,
- "ResourcePack": null,
- "ShopKillMode_Weapons": 0,
- "ShopKillMode_Armor": 0,
- "ShopKillMode_Item": 0,
- "ShopKillMode_Black": 0,
- "ShopKillMode_White": 0,
- "ShopKillFactor_Weapons": 0,
- "ShopKillFactor_Armor": 0,
- "ShopKillFactor_Item": 0,
- "ShopKillFactor_Black": 0,
- "ShopKillFactor_White": 0,
- "ShopKillExcludeConeria_Weapons": false,
- "ShopKillExcludeConeria_Armor": false,
- "ShopKillExcludeConeria_Item": false,
- "ShopKillExcludeConeria_Black": false,
- "ShopKillExcludeConeria_White": false,
- "ExcludeGoldFromScaling": false,
- "CheapVendorItem": false,
- "StartingLevel": 0,
- "TransmooglifierVariance": 0,
- "MaxLevelLow": 50,
- "MaxLevelHigh": 50,
- "Spoilers": false,
- "TournamentSafe": true,
- "BlindSeed": false,
- "Shops": true,
- "Treasures": true,
- "ChestsKeyItems": true,
- "NPCItems": true,
- "NPCFetchItems": true,
- "RandomWares": false,
- "RandomWaresIncludesSpecialGear": false,
- "RandomLoot": false,
- "ShardHunt": true,
- "ShardCount": 7,
- "OrbsRequiredCount": 4,
- "OrbsRequiredMode": 0,
- "OrbsRequiredSpoilers": false,
- "TransformFinalFormation": 0,
- "ChaosRush": false,
- "ToFRMode": 1,
- "FiendsRefights": 0,
- "ExitToFR": true,
- "ChaosFloorEncounters": false,
- "MagicShops": false,
- "MagicShopLocs": false,
- "MagicShopLocationPairs": false,
- "MagicLevels": true,
- "MagicPermissions": false,
- "Weaponizer": false,
- "WeaponizerNamesUseQualityOnly": false,
- "WeaponizerCommonWeaponsHavePowers": false,
- "ArmorCrafter": false,
- "MagicLevelsTiered": false,
- "MagicLevelsMixed": false,
- "MagicAutohitThreshold": 0,
- "Rng": true,
- "FixMissingBattleRngEntry": false,
- "EncounterPrng": false,
- "UnrunnableShuffle": true,
- "UnrunnablesLow": 0,
- "UnrunnablesHigh": 0,
- "EnemyFormationsSurprise": true,
- "UnrunnablesStrikeFirstAndSurprise": false,
- "EnemyTrapTiles": 3,
- "TCFormations": 2,
- "TCBetterTreasure": 0,
- "TCKeyItems": 2,
- "TCShards": 2,
- "TCExcludeCommons": false,
- "TCChestCount": 0,
- "TCProtectIncentives": false,
- "TCMasaGuardian": false,
- "TrappedChaos": false,
- "TCIndicator": true,
- "SwolePirates": false,
- "ShuffleScriptsEnemies": true,
- "RemoveBossScripts": false,
- "ShuffleScriptsBosses": false,
- "ShuffleSkillsSpellsEnemies": true,
- "ShuffleSkillsSpellsBosses": false,
- "NoConsecutiveNukes": false,
- "TranceHasStatusElement": true,
- "EnemySkillsSpellsTiered": false,
- "AllowUnsafePirates": false,
- "AllowUnsafeMelmond": false,
- "WarMECHMode": 1,
- "OrdealsPillars": true,
- "ShuffleLavaTiles": false,
- "SkyCastle4FMazeMode": 0,
- "TitansTrove": true,
- "LefeinSuperStore": true,
- "LefeinShops": true,
- "RandomVampAttack": false,
- "RandomVampAttackIncludesConeria": false,
- "FightBahamut": false,
- "SwoleBahamut": false,
- "SwoleAstos": false,
- "ConfusedOldMen": false,
- "GaiaShortcut": true,
- "DamageTileLow": 1,
- "DamageTileHigh": 1,
- "OWDamageTiles": false,
- "DamageTilesKill": false,
- "ArmorResistsDamageTileDamage": false,
- "MoveGaiaItemShop": true,
- "ShufflePravokaShops": false,
- "FlipDungeons": false,
- "VerticallyFlipDungeons": false,
- "SpookyFlag": false,
- "DraculasFlag": false,
- "MapOpenProgression": true,
- "MapOpenProgressionDocks": true,
- "Entrances": false,
- "Towns": false,
- "IncludeConeria": false,
- "Floors": false,
- "AllowDeepCastles": false,
- "AllowDeepTowns": false,
- "MapOpenProgressionExtended": true,
- "MapAirshipDock": true,
- "MapBahamutCardiaDock": true,
- "MapLefeinRiver": true,
- "MapBridgeLefein": true,
- "MapRiverToMelmond": true,
- "MapGaiaMountainPass": true,
- "MapHighwayToOrdeals": true,
- "MapDragonsHoard": false,
- "MapHallOfDragons": false,
- "EntrancesIncludesDeadEnds": false,
- "EntrancesMixedWithTowns": false,
- "IncentivizeFreeNPCs": true,
- "IncentivizeFetchNPCs": true,
- "IncentivizeTail": true,
- "IncentivizeMainItems": true,
- "IncentivizeFetchItems": true,
- "IncentivizeCanoeItem": true,
- "IncentivizeAirship": true,
- "IncentivizeShipAndCanal": true,
- "IncentivizeBridgeItem": false,
- "IncentivizeMarsh": false,
- "IncentivizeEarth": true,
- "IncentivizeVolcano": true,
- "IncentivizeIceCave": false,
- "IncentivizeOrdeals": true,
- "IncentivizeSeaShrine": true,
- "IncentivizeConeria": true,
- "IncentivizeMarshKeyLocked": false,
- "IncentivizeSkyPalace": true,
- "IncentivizeTitansTrove": true,
- "IncentivizeCardia": true,
- "IceCaveIncentivePlacementType": 0,
- "OrdealsIncentivePlacementType": 1,
- "MarshIncentivePlacementType": 0,
- "TitansIncentivePlacementType": 1,
- "EarthIncentivePlacementType": 3,
- "VolcanoIncentivePlacementType": 2,
- "SeaShrineIncentivePlacementType": 3,
- "SkyPalaceIncentivePlacementType": 3,
- "CorneriaIncentivePlacementType": 0,
- "MarshLockedIncentivePlacementType": 0,
- "CardiaIncentivePlacementType": 1,
- "BetterTrapChests": false,
- "IncentivizeMasamune": false,
- "IncentivizeKatana": false,
- "IncentivizeXcalber": true,
- "IncentivizeVorpal": false,
- "IncentivizeOpal": false,
- "IncentivizeRibbon": false,
- "IncentivizeDefCastArmor": false,
- "IncentivizeOffCastArmor": false,
- "IncentivizeOtherCastArmor": true,
- "IncentivizePowerRod": false,
- "IncentivizeDefCastWeapon": true,
- "IncentivizeOffCastWeapon": false,
- "IncentivizeOtherCastWeapon": false,
- "LooseExcludePlacedDungeons": false,
- "EarlyKing": true,
- "EarlySarda": true,
- "EarlySage": true,
- "EarlyOrdeals": true,
- "ShuffleObjectiveNPCs": false,
- "OnlyRequireGameIsBeatable": false,
- "FreeBridge": true,
- "FreeShip": false,
- "FreeAirship": false,
- "FreeLute": false,
- "FreeRod": false,
- "EnableCritNumberDisplay": true,
- "FreeCanal": false,
- "FreeCanoe": false,
- "EasyMode": false,
- "HousesFillHp": true,
- "SpeedHacks": true,
- "NoPartyShuffle": true,
- "Dash": true,
- "SpeedBoat": true,
- "AirBoat": true,
- "BuyTen": true,
- "IdentifyTreasures": true,
- "ShopInfo": true,
- "ChestInfo": true,
- "IncentiveChestItemsFanfare": true,
- "WaitWhenUnrunnable": true,
- "ImprovedClinic": false,
- "Etherizer": false,
- "HouseMPRestoration": true,
- "WeaponStats": true,
- "BBCritRate": false,
- "WeaponCritRate": true,
- "WeaponBonuses": true,
- "ThiefAgilityBuff": 1,
- "SkyWarriorSpoilerBats": 1,
- "SpoilerBatsDontCheckOrbs": true,
- "MoveToFBats": false,
- "WeaponTypeBonusValue": 42,
- "ChanceToRun": 1,
- "SpellBugs": true,
- "BlackBeltAbsorb": true,
- "NPCSwatter": true,
- "BattleMagicMenuWrapAround": true,
- "MagicMenuSpellReordering": true,
- "InventoryAutosort": true,
- "RepeatedHealPotionUse": false,
- "AutoRetargeting": true,
- "EnemyStatusAttackBug": true,
- "ImproveTurnOrderRandomization": true,
- "FixHitChanceCap": true,
- "MelmondClinic": false,
- "DDProgressiveTilesets": false,
- "DDFiendOrbs": false,
- "TailBahamutMode": 0,
- "StartingGold": 3,
- "IncludeMorale": false,
- "DeadsGainXP": false,
- "NonesGainXP": false,
- "NoTail": false,
- "NoFloater": false,
- "GuaranteedMasamune": false,
- "SendMasamuneHome": false,
- "MoreConsumableChests": 0,
- "NoMasamune": false,
- "NoXcalber": false,
- "ClassAsNpcFiends": false,
- "ClassAsNpcKeyNPC": false,
- "ClassAsNpcCount": 6,
- "ClassAsNpcDuplicate": false,
- "ClassAsNpcForcedFiends": false,
- "ClassAsNpcPromotion": false,
- "BossScaleStatsLow": 140,
- "BossScaleStatsHigh": 200,
- "BossScaleHpLow": 170,
- "BossScaleHpHigh": 200,
- "EnemyScaleStatsLow": 100,
- "EnemyScaleStatsHigh": 160,
- "EnemyScaleHpLow": 50,
- "EnemyScaleHpHigh": 150,
- "PriceScaleFactorLow": 50,
- "PriceScaleFactorHigh": 200,
- "ExpMultiplier": 2.5,
- "ExpBonus": 150,
- "ExpMultiplierFighter": 1.1,
- "ExpMultiplierThief": 1.1,
- "ExpMultiplierBlackBelt": 1,
- "ExpMultiplierRedMage": 1,
- "ExpMultiplierWhiteMage": 1,
- "ExpMultiplierBlackMage": 1,
- "EncounterRate": 12,
- "DungeonEncounterRate": 15,
- "ProgressiveScaleMode": 11,
- "StartingItemSet": 4,
- "ConsumableTreasureStackSize": 2,
- "FIGHTER1": true,
- "THIEF1": true,
- "BLACK_BELT1": true,
- "RED_MAGE1": false,
- "WHITE_MAGE1": false,
- "BLACK_MAGE1": false,
- "FIGHTER2": true,
- "THIEF2": true,
- "BLACK_BELT2": false,
- "RED_MAGE2": true,
- "WHITE_MAGE2": true,
- "BLACK_MAGE2": true,
- "FIGHTER3": false,
- "THIEF3": false,
- "BLACK_BELT3": false,
- "RED_MAGE3": false,
- "WHITE_MAGE3": false,
- "BLACK_MAGE3": false,
- "FIGHTER4": false,
- "THIEF4": false,
- "BLACK_BELT4": false,
- "RED_MAGE4": true,
- "WHITE_MAGE4": true,
- "BLACK_MAGE4": true,
- "KNIGHT1": false,
- "KNIGHT2": false,
- "KNIGHT3": false,
- "KNIGHT4": false,
- "NINJA1": false,
- "NINJA2": false,
- "NINJA3": false,
- "NINJA4": false,
- "MASTER1": false,
- "MASTER2": false,
- "MASTER3": false,
- "MASTER4": false,
- "RED_WIZ1": false,
- "RED_WIZ2": false,
- "RED_WIZ3": false,
- "RED_WIZ4": false,
- "WHITE_WIZ1": false,
- "WHITE_WIZ2": false,
- "WHITE_WIZ3": false,
- "WHITE_WIZ4": false,
- "BLACK_WIZ1": false,
- "BLACK_WIZ2": false,
- "BLACK_WIZ3": false,
- "BLACK_WIZ4": false,
- "NONE_CLASS2": true,
- "NONE_CLASS3": true,
- "NONE_CLASS4": true,
- "FORCED1": true,
- "FORCED2": true,
- "FORCED3": true,
- "FORCED4": false,
- "DraftFighter": false,
- "DraftThief": false,
- "DraftBlackBelt": false,
- "DraftRedMage": false,
- "DraftWhiteMage": false,
- "DraftBlackMage": false,
- "DraftKnight": false,
- "DraftNinja": false,
- "DraftMaster": false,
- "DraftRedWiz": false,
- "DraftWhiteWiz": false,
- "DraftBlackWiz": false,
- "TAVERN1": true,
- "TAVERN2": true,
- "TAVERN3": false,
- "TAVERN4": true,
- "TAVERN5": true,
- "TAVERN6": true,
- "WeaponPermissions": false,
- "ArmorPermissions": false,
- "RecruitmentMode": true,
- "RecruitmentModeHireOnly": false,
- "RecruitmentModeReplaceOnlyNone": true,
- "ClampMinimumStatScale": false,
- "ClampMinimumBossStatScale": false,
- "ClampMinimumPriceScale": false,
- "EFGWaterfall": false,
- "FiendShuffle": false,
- "DisableTentSaving": false,
- "DisableInnSaving": false,
- "SaveGameWhenGameOver": false,
- "SaveGameDWMode": false,
- "ShuffleAstos": false,
- "UnsafeAstos": false,
- "RandomizeEnemizer": false,
- "RandomizeFormationEnemizer": false,
- "GenerateNewSpellbook": false,
- "SpellcrafterMixSpells": false,
- "ThiefHitRate": true,
- "AllSpellLevelsForKnightNinja": false,
- "BuffHealingSpells": true,
- "IntAffectsSpells": false,
- "AddDamageTiles": false,
- "DamageTilesCastles": false,
- "DamageTilesDungeons": false,
- "DamageTilesCaves": false,
- "DamageTilesTowns": false,
- "DamageTilesTof": false,
- "DamageTilesQuantity": 1,
- "FreeTail": false,
- "HintsVillage": false,
- "SpellcrafterRetainPermissions": false,
- "RandomWeaponBonus": true,
- "RandomArmorBonus": true,
- "RandomWeaponBonusExcludeMasa": false,
- "RandomWeaponBonusLow": 0,
- "RandomWeaponBonusHigh": 5,
- "RandomArmorBonusLow": 0,
- "RandomArmorBonusHigh": 5,
- "SeparateBossHPScaling": true,
- "SeparateEnemyHPScaling": false,
- "ClampBossHPScaling": false,
- "ClampEnemyHpScaling": false,
- "PoolSize": 2,
- "EnablePoolParty": false,
- "SafePoolParty": false,
- "IncludePromClasses": false,
- "EnableRandomPromotions": false,
- "IncludeBaseClasses": false,
- "RandomPromotionsSpoilers": false,
- "RandomizeClassCasting": true,
- "RandomizeClassKeyItems": false,
- "RandomizeClassIncludeXpBonus": false,
- "AlternateFiends": false,
- "FinalFantasy2Fiends": false,
- "FinalFantasy3Fiends": false,
- "FinalFantasy4Fiends": false,
- "FinalFantasy5Fiends": false,
- "FinalFantasy6Fiends": false,
- "FinalFantasy1BonusFiends": false,
- "BlackOrbFiends": false,
- "NoBossSkillScriptShuffle": false,
- "MooglieWeaponBalance": false,
- "GuaranteeCustomClassComposition": false,
- "LegendaryWeaponShop": false,
- "LegendaryArmorShop": false,
- "LegendaryBlackShop": false,
- "LegendaryWhiteShop": false,
- "LegendaryItemShop": false,
- "ExclusiveLegendaryWeaponShop": false,
- "ExclusiveLegendaryArmorShop": false,
- "ExclusiveLegendaryBlackShop": false,
- "ExclusiveLegendaryWhiteShop": false,
- "ExclusiveLegendaryItemShop": false,
- "RandomizeClassMode": 1,
- "RandomizeClassMaxBonus": 1,
- "RandomizeClassMaxMalus": 0,
- "EarlierHighTierMagic": false,
- "ChangeMaxMP": false,
- "RedMageMaxMP": 9,
- "WhiteMageMaxMP": 9,
- "BlackMageMaxMP": 9,
- "KnightMaxMP": 4,
- "NinjaMaxMP": 4,
- "Knightlvl4": true,
- "PinkMage": false,
- "BlackKnight": true,
- "BlackKnightKeep": false,
- "WhiteNinja": true,
- "WhiteNinjaKeep": true,
- "MpGainOnMaxGainMode": 0,
- "LockMode": 3,
- "MDefMode": 0,
- "FormationShuffleMode": 1,
- "RandomizeTreasure": 0,
- "OpenChestsInOrder": false,
- "SetRNG": false,
- "WorldWealth": 1,
- "DeepDungeonGenerator": 0,
- "EvadeCap": 3,
- "AllowUnsafeStartArea": false,
- "IncreaseDarkPenalty": true,
- "IncreaseRegeneration": false,
- "PoisonMode": 6,
- "PoisonSetDamageValue": 3,
- "TouchIncludeBosses": true,
- "Lockpicking": true,
- "ReducedLuck": false,
- "LockpickingLevelRequirement": 22,
- "WhiteMageHarmEveryone": true,
- "ProcgenEarth": false,
- "LoosePlacementMode": 0
- }
+ "Flags": {
+ "StartingEquipmentMasamune": false,
+ "StartingEquipmentKatana": false,
+ "StartingEquipmentHealStaff": false,
+ "StartingEquipmentZeusGauntlet": false,
+ "StartingEquipmentWhiteShirt": false,
+ "StartingEquipmentRibbon": false,
+ "StartingEquipmentDragonslayer": false,
+ "StartingEquipmentLegendKit": false,
+ "StartingEquipmentRandomEndgameWeapon": false,
+ "StartingEquipmentRandomAoe": false,
+ "StartingEquipmentRandomCasterItem": false,
+ "StartingEquipmentGrandpasSecretStash": false,
+ "StartingEquipmentOneItem": false,
+ "StartingEquipmentRandomCrap": false,
+ "StartingEquipmentStarterPack": false,
+ "StartingEquipmentRandomTypeWeapon": false,
+ "StartingEquipmentRemoveFromPool": false,
+ "StartingEquipmentNoDuplicates": false,
+ "ReversedFloors": false,
+ "BuffTier1DamageSpells": true,
+ "NoEmptyScripts": false,
+ "LaterLoose": false,
+ "MermaidPrison": true,
+ "GuaranteedDefenseItem": 3,
+ "GuaranteedPowerItem": 0,
+ "ScriptMultiplier": 1,
+ "TouchMultiplier": 2,
+ "TouchPool": 1,
+ "TouchMode": 0,
+ "RibbonMode": 0,
+ "Archipelago": false,
+ "ArchipelagoGold": false,
+ "ArchipelagoConsumables": false,
+ "ArchipelagoShards": false,
+ "ArchipelagoEquipment": 0,
+ "ItemMagicMode": 0,
+ "ItemMagicPool": 0,
+ "MagisizeWeapons": false,
+ "DisableMinimap": false,
+ "LooseItemsForwardPlacement": false,
+ "LooseItemsSpreadPlacement": false,
+ "LooseItemsNpcBalance": false,
+ "AllowUnsafePlacement": true,
+ "ShipCanalBeforeFloater": false,
+ "ExpChestConversionMin": 10,
+ "ExpChestConversionMax": 10,
+ "ExpChestMinReward": 3000,
+ "ExpChestMaxReward": 3000,
+ "SpellNameMadness": 0,
+ "ExtConsumableSet": 0,
+ "EnableSoftInBattle": true,
+ "EnableLifeInBattle": 0,
+ "NormalShopsHaveExtConsumables": false,
+ "LegendaryShopHasExtConsumables": false,
+ "ExtConsumableTreasureStackSize": 0,
+ "ExtStartingItemSet": 0,
+ "ExtConsumableChests": 0,
+ "OwMapExchange": 0,
+ "OwShuffledAccess": false,
+ "OwUnsafeStart": false,
+ "OwRandomPregen": false,
+ "RelocateChests": false,
+ "RelocateChestsTrapIndicator": false,
+ "ShuffleChimeAccess": true,
+ "ShuffleChimeIncludeTowns": false,
+ "GameMode": 0,
+ "MapGenSeed": 0,
+ "ReplacementMap": null,
+ "ResourcePack": null,
+ "ShopKillMode_Weapons": 0,
+ "ShopKillMode_Armor": 0,
+ "ShopKillMode_Item": 0,
+ "ShopKillMode_Black": 0,
+ "ShopKillMode_White": 0,
+ "ShopKillFactor_Weapons": 0,
+ "ShopKillFactor_Armor": 0,
+ "ShopKillFactor_Item": 0,
+ "ShopKillFactor_Black": 0,
+ "ShopKillFactor_White": 0,
+ "ShopKillExcludeConeria_Weapons": false,
+ "ShopKillExcludeConeria_Armor": false,
+ "ShopKillExcludeConeria_Item": false,
+ "ShopKillExcludeConeria_Black": false,
+ "ShopKillExcludeConeria_White": false,
+ "ExcludeGoldFromScaling": false,
+ "CheapVendorItem": false,
+ "StartingLevel": 0,
+ "TransmooglifierVariance": 0,
+ "MaxLevelLow": 50,
+ "MaxLevelHigh": 50,
+ "Spoilers": false,
+ "TriState": false,
+ "TournamentSafe": true,
+ "BlindSeed": false,
+ "Shops": true,
+ "Treasures": true,
+ "ChestsKeyItems": true,
+ "NPCItems": true,
+ "NPCFetchItems": true,
+ "RandomWares": false,
+ "RandomWaresIncludesSpecialGear": false,
+ "RandomLoot": false,
+ "ShardHunt": true,
+ "ShardCount": 7,
+ "OrbsRequiredCount": 4,
+ "OrbsRequiredMode": 0,
+ "OrbsRequiredSpoilers": false,
+ "TransformFinalFormation": 0,
+ "ChaosRush": false,
+ "ToFRMode": 1,
+ "FiendsRefights": 0,
+ "ExitToFR": true,
+ "ChaosFloorEncounters": false,
+ "MagicShops": false,
+ "MagicShopLocs": false,
+ "MagicShopLocationPairs": false,
+ "MagicLevels": true,
+ "MagicPermissions": false,
+ "Weaponizer": false,
+ "WeaponizerNamesUseQualityOnly": false,
+ "WeaponizerCommonWeaponsHavePowers": false,
+ "ArmorCrafter": false,
+ "MagicLevelsTiered": false,
+ "MagicLevelsMixed": false,
+ "MagicAutohitThreshold": 0,
+ "Rng": true,
+ "FixMissingBattleRngEntry": false,
+ "EncounterPrng": false,
+ "UnrunnableShuffle": true,
+ "UnrunnablesLow": 0,
+ "UnrunnablesHigh": 0,
+ "EnemyFormationsSurprise": true,
+ "UnrunnablesStrikeFirstAndSurprise": false,
+ "EnemyTrapTiles": 3,
+ "TCFormations": 2,
+ "TCBetterTreasure": 0,
+ "TCKeyItems": 2,
+ "TCShards": 2,
+ "TCExcludeCommons": false,
+ "TCChestCount": 0,
+ "TCProtectIncentives": false,
+ "TCMasaGuardian": false,
+ "TrappedChaos": false,
+ "TCIndicator": true,
+ "SwolePirates": false,
+ "ShuffleScriptsEnemies": true,
+ "RemoveBossScripts": false,
+ "ShuffleScriptsBosses": false,
+ "ShuffleSkillsSpellsEnemies": true,
+ "ShuffleSkillsSpellsBosses": false,
+ "NoConsecutiveNukes": false,
+ "TranceHasStatusElement": true,
+ "EnemySkillsSpellsTiered": false,
+ "AllowUnsafePirates": false,
+ "AllowUnsafeMelmond": false,
+ "WarMECHMode": 1,
+ "OrdealsPillars": true,
+ "ShuffleLavaTiles": false,
+ "SkyCastle4FMazeMode": 0,
+ "TitansTrove": true,
+ "LefeinShortcut": false,
+ "LefeinSuperStore": true,
+ "LefeinShops": true,
+ "RandomVampAttack": false,
+ "RandomVampAttackIncludesConeria": false,
+ "FightBahamut": false,
+ "SwoleBahamut": false,
+ "SwoleAstos": false,
+ "ConfusedOldMen": false,
+ "GaiaShortcut": true,
+ "DamageTileLow": 1,
+ "DamageTileHigh": 1,
+ "OWDamageTiles": false,
+ "DamageTilesKill": false,
+ "ArmorResistsDamageTileDamage": false,
+ "MoveGaiaItemShop": true,
+ "ShufflePravokaShops": false,
+ "FlipDungeons": false,
+ "VerticallyFlipDungeons": false,
+ "SpookyFlag": false,
+ "DraculasFlag": false,
+ "MapOpenProgression": true,
+ "MapOpenProgressionDocks": true,
+ "Entrances": false,
+ "Towns": false,
+ "IncludeConeria": false,
+ "Floors": false,
+ "AllowDeepCastles": false,
+ "AllowDeepTowns": false,
+ "MapOpenProgressionExtended": true,
+ "MapAirshipDock": true,
+ "MapBahamutCardiaDock": true,
+ "MapLefeinRiver": true,
+ "MapBridgeLefein": true,
+ "MapRiverToMelmond": true,
+ "MapGaiaMountainPass": true,
+ "MapHighwayToOrdeals": true,
+ "MapDragonsHoard": false,
+ "MapHallOfDragons": false,
+ "EntrancesIncludesDeadEnds": false,
+ "EntrancesMixedWithTowns": false,
+ "IncentivizeFreeNPCs": true,
+ "IncentivizeFetchNPCs": true,
+ "IncentivizeTail": true,
+ "IncentivizeMainItems": true,
+ "IncentivizeFetchItems": true,
+ "IncentivizeCanoeItem": true,
+ "IncentivizeAirship": true,
+ "IncentivizeShipAndCanal": true,
+ "IncentivizeBridgeItem": false,
+ "IncentivizeMarsh": false,
+ "IncentivizeEarth": true,
+ "IncentivizeVolcano": true,
+ "IncentivizeIceCave": false,
+ "IncentivizeOrdeals": true,
+ "IncentivizeSeaShrine": true,
+ "IncentivizeConeria": true,
+ "IncentivizeMarshKeyLocked": false,
+ "IncentivizeSkyPalace": true,
+ "IncentivizeTitansTrove": true,
+ "IncentivizeCardia": true,
+ "IceCaveIncentivePlacementType": 0,
+ "OrdealsIncentivePlacementType": 1,
+ "MarshIncentivePlacementType": 0,
+ "TitansIncentivePlacementType": 1,
+ "EarthIncentivePlacementType": 3,
+ "VolcanoIncentivePlacementType": 2,
+ "SeaShrineIncentivePlacementType": 3,
+ "SkyPalaceIncentivePlacementType": 3,
+ "CorneriaIncentivePlacementType": 0,
+ "MarshLockedIncentivePlacementType": 0,
+ "CardiaIncentivePlacementType": 1,
+ "BetterTrapChests": false,
+ "IncentivizeMasamune": false,
+ "IncentivizeKatana": false,
+ "IncentivizeXcalber": true,
+ "IncentivizeVorpal": false,
+ "IncentivizeOpal": false,
+ "IncentivizeRibbon": false,
+ "IncentivizeDefCastArmor": false,
+ "IncentivizeOffCastArmor": false,
+ "IncentivizeOtherCastArmor": true,
+ "IncentivizePowerRod": false,
+ "IncentivizeDefCastWeapon": true,
+ "IncentivizeOffCastWeapon": false,
+ "IncentivizeOtherCastWeapon": false,
+ "LooseExcludePlacedDungeons": false,
+ "EarlyKing": true,
+ "EarlySarda": true,
+ "EarlySage": true,
+ "EarlyOrdeals": true,
+ "ShuffleObjectiveNPCs": false,
+ "OnlyRequireGameIsBeatable": false,
+ "FreeBridge": true,
+ "FreeShip": false,
+ "FreeAirship": false,
+ "FreeLute": false,
+ "FreeRod": false,
+ "EnableCritNumberDisplay": true,
+ "FreeCanal": false,
+ "FreeCanoe": false,
+ "EasyMode": false,
+ "HousesFillHp": true,
+ "SpeedHacks": true,
+ "NoPartyShuffle": true,
+ "Dash": true,
+ "SpeedBoat": true,
+ "AirBoat": true,
+ "BuyTen": true,
+ "IdentifyTreasures": true,
+ "ShopInfo": true,
+ "ChestInfo": true,
+ "IncentiveChestItemsFanfare": true,
+ "WaitWhenUnrunnable": true,
+ "ImprovedClinic": false,
+ "Etherizer": false,
+ "HouseMPRestoration": true,
+ "WeaponStats": true,
+ "BBCritRate": false,
+ "WeaponCritRate": true,
+ "WeaponBonuses": true,
+ "ThiefAgilityBuff": 1,
+ "SkyWarriorSpoilerBats": 1,
+ "SpoilerBatsDontCheckOrbs": true,
+ "MoveToFBats": false,
+ "WeaponTypeBonusValue": 42,
+ "ChanceToRun": 1,
+ "SpellBugs": true,
+ "BlackBeltAbsorb": true,
+ "NPCSwatter": true,
+ "BattleMagicMenuWrapAround": true,
+ "MagicMenuSpellReordering": true,
+ "InventoryAutosort": true,
+ "RepeatedHealPotionUse": false,
+ "AutoRetargeting": true,
+ "EnemyStatusAttackBug": true,
+ "ImproveTurnOrderRandomization": true,
+ "FixHitChanceCap": true,
+ "MelmondClinic": false,
+ "DDProgressiveTilesets": false,
+ "DDFiendOrbs": false,
+ "TailBahamutMode": 0,
+ "StartingGold": 3,
+ "IncludeMorale": false,
+ "DeadsGainXP": false,
+ "NonesGainXP": false,
+ "NoTail": false,
+ "NoFloater": false,
+ "GuaranteedMasamune": false,
+ "SendMasamuneHome": false,
+ "MoreConsumableChests": 0,
+ "NoMasamune": false,
+ "NoXcalber": false,
+ "ClassAsNpcFiends": false,
+ "ClassAsNpcKeyNPC": false,
+ "ClassAsNpcCount": 6,
+ "ClassAsNpcDuplicate": false,
+ "ClassAsNpcForcedFiends": false,
+ "ClassAsNpcPromotion": false,
+ "BossScaleStatsLow": 140,
+ "BossScaleStatsHigh": 200,
+ "BossScaleHpLow": 170,
+ "BossScaleHpHigh": 200,
+ "EnemyScaleStatsLow": 100,
+ "EnemyScaleStatsHigh": 160,
+ "EnemyScaleHpLow": 50,
+ "EnemyScaleHpHigh": 150,
+ "PriceScaleFactorLow": 50,
+ "PriceScaleFactorHigh": 200,
+ "ExpMultiplier": 2.5,
+ "ExpBonus": 150,
+ "ExpMultiplierFighter": 1.1,
+ "ExpMultiplierThief": 1.1,
+ "ExpMultiplierBlackBelt": 1,
+ "ExpMultiplierRedMage": 1,
+ "ExpMultiplierWhiteMage": 1,
+ "ExpMultiplierBlackMage": 1,
+ "EncounterRate": 12,
+ "DungeonEncounterRate": 15,
+ "ProgressiveScaleMode": 11,
+ "StartingItemSet": 4,
+ "ConsumableTreasureStackSize": 2,
+ "FIGHTER1": true,
+ "THIEF1": true,
+ "BLACK_BELT1": true,
+ "RED_MAGE1": false,
+ "WHITE_MAGE1": false,
+ "BLACK_MAGE1": false,
+ "FIGHTER2": true,
+ "THIEF2": true,
+ "BLACK_BELT2": false,
+ "RED_MAGE2": true,
+ "WHITE_MAGE2": true,
+ "BLACK_MAGE2": true,
+ "FIGHTER3": false,
+ "THIEF3": false,
+ "BLACK_BELT3": false,
+ "RED_MAGE3": false,
+ "WHITE_MAGE3": false,
+ "BLACK_MAGE3": false,
+ "FIGHTER4": false,
+ "THIEF4": false,
+ "BLACK_BELT4": false,
+ "RED_MAGE4": true,
+ "WHITE_MAGE4": true,
+ "BLACK_MAGE4": true,
+ "KNIGHT1": false,
+ "KNIGHT2": false,
+ "KNIGHT3": false,
+ "KNIGHT4": false,
+ "NINJA1": false,
+ "NINJA2": false,
+ "NINJA3": false,
+ "NINJA4": false,
+ "MASTER1": false,
+ "MASTER2": false,
+ "MASTER3": false,
+ "MASTER4": false,
+ "RED_WIZ1": false,
+ "RED_WIZ2": false,
+ "RED_WIZ3": false,
+ "RED_WIZ4": false,
+ "WHITE_WIZ1": false,
+ "WHITE_WIZ2": false,
+ "WHITE_WIZ3": false,
+ "WHITE_WIZ4": false,
+ "BLACK_WIZ1": false,
+ "BLACK_WIZ2": false,
+ "BLACK_WIZ3": false,
+ "BLACK_WIZ4": false,
+ "NONE_CLASS2": true,
+ "NONE_CLASS3": true,
+ "NONE_CLASS4": true,
+ "FORCED1": true,
+ "FORCED2": true,
+ "FORCED3": true,
+ "FORCED4": false,
+ "DraftFighter": false,
+ "DraftThief": false,
+ "DraftBlackBelt": false,
+ "DraftRedMage": false,
+ "DraftWhiteMage": false,
+ "DraftBlackMage": false,
+ "DraftKnight": false,
+ "DraftNinja": false,
+ "DraftMaster": false,
+ "DraftRedWiz": false,
+ "DraftWhiteWiz": false,
+ "DraftBlackWiz": false,
+ "TAVERN1": true,
+ "TAVERN2": true,
+ "TAVERN3": false,
+ "TAVERN4": true,
+ "TAVERN5": true,
+ "TAVERN6": true,
+ "WeaponPermissions": false,
+ "ArmorPermissions": false,
+ "RecruitmentMode": true,
+ "RecruitmentModeHireOnly": false,
+ "RecruitmentModeReplaceOnlyNone": true,
+ "ClampMinimumStatScale": false,
+ "ClampMinimumBossStatScale": false,
+ "ClampMinimumPriceScale": false,
+ "FiendShuffle": false,
+ "DisableTentSaving": false,
+ "DisableInnSaving": false,
+ "SaveGameWhenGameOver": false,
+ "SaveGameDWMode": false,
+ "ShuffleAstos": false,
+ "UnsafeAstos": false,
+ "RandomizeEnemizer": false,
+ "RandomizeFormationEnemizer": false,
+ "GenerateNewSpellbook": false,
+ "SpellcrafterMixSpells": false,
+ "ThiefHitBuff": 4,
+ "RedMageHitBuff": 2,
+ "AllSpellLevelsForKnightNinja": false,
+ "BuffHealingSpells": true,
+ "IntAffectsSpells": false,
+ "AddDamageTiles": false,
+ "DamageTilesCastles": false,
+ "DamageTilesDungeons": false,
+ "DamageTilesCaves": false,
+ "DamageTilesTowns": false,
+ "DamageTilesTof": false,
+ "DamageTilesQuantity": 1,
+ "FreeTail": false,
+ "HintsVillage": false,
+ "SpellcrafterRetainPermissions": false,
+ "RandomWeaponBonus": true,
+ "RandomArmorBonus": true,
+ "RandomWeaponBonusExcludeMasa": false,
+ "RandomWeaponBonusLow": 0,
+ "RandomWeaponBonusHigh": 5,
+ "RandomArmorBonusLow": 0,
+ "RandomArmorBonusHigh": 5,
+ "SeparateBossHPScaling": true,
+ "SeparateEnemyHPScaling": false,
+ "ClampBossHPScaling": false,
+ "ClampEnemyHpScaling": false,
+ "PoolSize": 2,
+ "EnablePoolParty": false,
+ "SafePoolParty": false,
+ "IncludePromClasses": false,
+ "EnableRandomPromotions": false,
+ "IncludeBaseClasses": false,
+ "RandomPromotionsSpoilers": false,
+ "RandomizeClassCasting": true,
+ "RandomizeClassKeyItems": false,
+ "RandomizeClassIncludeXpBonus": false,
+ "AlternateFiends": false,
+ "FinalFantasy2Fiends": false,
+ "FinalFantasy3Fiends": false,
+ "FinalFantasy4Fiends": false,
+ "FinalFantasy5Fiends": false,
+ "FinalFantasy6Fiends": false,
+ "FinalFantasy1BonusFiends": false,
+ "BlackOrbFiends": false,
+ "NoBossSkillScriptShuffle": false,
+ "MooglieWeaponBalance": false,
+ "GuaranteeCustomClassComposition": false,
+ "LegendaryWeaponShop": false,
+ "LegendaryArmorShop": false,
+ "LegendaryBlackShop": false,
+ "LegendaryWhiteShop": false,
+ "LegendaryItemShop": false,
+ "ExclusiveLegendaryWeaponShop": false,
+ "ExclusiveLegendaryArmorShop": false,
+ "ExclusiveLegendaryBlackShop": false,
+ "ExclusiveLegendaryWhiteShop": false,
+ "ExclusiveLegendaryItemShop": false,
+ "RandomizeClassMode": 1,
+ "RandomizeClassMaxBonus": 1,
+ "RandomizeClassMaxMalus": 0,
+ "EarlierHighTierMagic": false,
+ "ChangeMaxMP": false,
+ "RedMageMaxMP": 9,
+ "WhiteMageMaxMP": 9,
+ "BlackMageMaxMP": 9,
+ "KnightMaxMP": 4,
+ "NinjaMaxMP": 4,
+ "Knightlvl4": true,
+ "PinkMage": false,
+ "BlackKnight": true,
+ "BlackKnightKeep": false,
+ "WhiteNinja": true,
+ "WhiteNinjaKeep": true,
+ "MpGainOnMaxGainMode": 0,
+ "LockMode": 3,
+ "MDefMode": 0,
+ "FormationShuffleMode": 1,
+ "RandomizeTreasure": 0,
+ "OpenChestsInOrder": false,
+ "SetRNG": false,
+ "WorldWealth": 1,
+ "DeepDungeonGenerator": 0,
+ "EvadeCap": 3,
+ "AllowUnsafeStartArea": false,
+ "IncreaseDarkPenalty": true,
+ "IncreaseRegeneration": false,
+ "PoisonMode": 6,
+ "PoisonSetDamageValue": 3,
+ "TouchIncludeBosses": true,
+ "Lockpicking": true,
+ "ReducedLuck": false,
+ "LockpickingLevelRequirement": 22,
+ "WhiteMageHarmEveryone": true,
+ "ProcgenEarth": false,
+ "LoosePlacementMode": 0
+ }
}
diff --git a/FF1Blazorizer/wwwroot/tooltips/tooltips.json b/FF1Blazorizer/wwwroot/tooltips/tooltips.json
index af21cf97a..ebfb4ed3b 100644
--- a/FF1Blazorizer/wwwroot/tooltips/tooltips.json
+++ b/FF1Blazorizer/wwwroot/tooltips/tooltips.json
@@ -17,6 +17,11 @@
"screenshot": "downloadSpoilersCheckBox.png",
"description": "Download a spoiler log for the current seed. The resulting ROM's randomization will be different than if the log had not been generated in order to prevent cheating in races.\nNote: You may be asked by your browser to allow downloading multiple files when using this option."
},
+ {
+ "Id": "tristatesCheckBox",
+ "title": "Show Reveal Randomized State Flags Button",
+ "description": "Enables the reveal randomized state flags button. Clicking the button allows you to know what any selected tristate flags will become. This is NOT reversible. \nNote: Save your tristate flag string if you don't want remake it."
+ },
{
"Id": "printBlursingsCheckBox",
"title": "Print Class Blursings",
@@ -281,6 +286,12 @@
"screenshot": "shopInfoIconsCheckBox.png",
"description": "When using Shop Information, elements and statuses are shown as icons, allowing for more information to be displayed."
},
+ {
+ "Id": "magicShopMenuCheckBox",
+ "title": "Magic Shop Menus Match Equipment Shops Menu",
+ "screenshot": "MagicShopMenuChangeCheckBox.png",
+ "description": "Changes the magic shop menu order to match the equipment shops.\nSelect Spell > Pay > Choose Character."
+ },
{
"Id": "renounceAutosortCheckBox",
"title": "Renounce Autosort",
@@ -376,16 +387,10 @@
"description": "Configure the Temple of Fiends Fiends Refights.\n\nAll: All Fiends must be fought to reach Chaos.\nTwo Paths: Only two fiends must be defeated. On floor 1F, two stairs will lead to two random Fiends floors each. If Short ToFR is selected, going left or right will lead to two different Fiends tiles.\nNone: No Fiends will be encountered in the Temple of Fiends Revisited.\nRandom: One of the previous options at random."
},
{
- "Id": "preserveFiendRefightsCheckBox",
- "title": "Include Fiend Tiles",
- "screenshot": "preserveFiendRefightsCheckBox.gif",
- "description": "Adds the four Fiend refights to the Chaos floor. Two trap tiles will be found on either side south of the entrance, with the boss in each tile shuffled for each seed."
- },
- {
- "Id": "preserveAllFiendRefightsCheckBox",
- "title": "Refight All Fiends",
+ "Id": "shortToFRFiendsRefightsDropDown",
+ "title": "Fiends Refights",
"screenshot": "preserveAllFiendRefightsCheckBox.png",
- "description": "Now all four Fiends are in both directions and they must all be defeated to reach CHAOS."
+ "description": "Configure the Temple of Fiends Fiends Refights.\n\nAll: All Fiends must be fought to reach Chaos.\nTwo Paths: Only two fiends must be defeated. Going left or right will lead to two different Fiends tiles.\nLopsided: Two Paths but one side has one buffed fiend, the other has three normal scaled fiends.\nProgressive: Two Paths but guarantees one easy and one hard fiend will fall on each side.\nAnything Goes: Two Paths but the fiend tiles are random. Possibly 4 Kraken, possibly 4 free steps.\nRude: All plus one extra fifth fiend refight.\nNone: No Fiends will be encountered in the Temple of Fiends Revisited.\nRandom: One of the previous options at random."
},
{
"Id": "exitToFRCheckBox",
@@ -936,6 +941,12 @@
"screenshot": "gaiaShortcutMoveItemShop.png",
"description": "Moves the Item Shop next to the Gaia Shortcut.\nThis flag is ignored if \"Add Gaia Shortcut\" is disabled."
},
+ {
+ "Id": "lefeinShortcutCheckBox",
+ "title": "Add Lefein Shortcut",
+ "screenshot": "LefienShortcut.png",
+ "description": "Tired of getting Lefeinian Linebacked? This flag adds two bridges that speed up Slab turn-in and talking to the hint giver."
+ },
{
"Id": "lefeinShopsCheckBox",
"title": "Lefeinish Hospitality",
@@ -1037,7 +1048,7 @@
"Id": "tcChestCountSlider",
"title": "Trapped Chests Count",
"screenshot": "tcChestsPool.png",
- "description": "Sets the number of chests that will have traps (monsters) in them. Setting the slider to the rightmost position will select a random number of trapped chests.\n\nIn game count may slightly differ for some flags combinations.\nFor best results, use in combination with the sub-flags included in this section."
+ "description": "Sets the number of chests that will have traps (monsters) in them. Setting the slider to the rightmost position will select a random number of trapped chests.\n\nIn game count may slightly differ for some flags combinations.\nThe starting value is the highest minimum number of possible trapped chests. This doesn't take into account free or removed items nor the random selection options.\nFor best results, use in combination with the sub-flags included in this section."
},
{
"Id": "tcBetterTreasuresDropDown",
@@ -1061,7 +1072,7 @@
"Id": "tcExcludeCommonCheckBox",
"title": "Exclude Common Treasures",
"screenshot": "trappedChestsCheckBox.gif",
- "description": "Common treasures (common equipment, consumables and GP chests) are never trapped."
+ "description": "Common treasures (common equipment, consumables and GP chests) are never trapped.\nThis will result in a lower number of trapped chests if a higher value than the minimum is chosen.\nE.G. shards + key items are set to always for 53 chests, but 60 is selected.\nAt least the extra 8 will be ignored."
},
{
"Id": "tcProtectIncentivesCheckBox",
@@ -1363,6 +1374,18 @@
"screenshot": "onlyShuffleBossSkillsCheckBox.png",
"description": "Shuffles bosses' skills and spells so they can appear in any script. The original Fiends are shuffled between themselves, then the second Fiends, WarMech and Chaos."
},
+ {
+ "Id": "templeoffiendrefightsonlyCheckBox",
+ "title": "Shuffle Temple of Fiend Refights Only",
+ "screenshot": null,
+ "description": "Will only shuffle the four fiend refights in the Temple of Fiends Revisted, This option will leave Chaos's script as default."
+ },
+ {
+ "Id": "overworldfiendsonlyCheckBox",
+ "title": "Shuffle the Overworld Fiends",
+ "screenshot": null,
+ "description": "Will only shuffle the four fiends in the overworld."
+ },
{
"Id": "enemyScriptsCheckBox",
@@ -1404,7 +1427,7 @@
"Id": "EnemyTrapTiles",
"title": "Trap Tiles",
"screenshot": "enemyTrapTilesCheckBox.gif",
- "description": "Vanilla: All tiles are their original monster formations.\n\nShuffle: Shuffles all the forced encounter tiles in the game, except the Fiend refights. This doesn't add in any new tiles, instead it simply shuffles the existing encounter tiles among themselves.\n\nA-Side Formations: Trap Tiles are randomly populated from the A-side encounter list.\n\nB-Side Formations: Trap tiles are randomly populated from the B-side encounter list.\n\nA-Side & B-Side: Trap tiles are randomly populated from any of the A-side or B-side encounter formations.\n\nRemove Trap Tiles: Removes all the forced encounter tiles from the game, except the Fiend refights.\n\nLocal Formations: Tiles will use formations from the same dungeon that they appear in (when possible).\n\nCurated: \"A-Side & B-Side\" but with overly punishing encounters removed. To make up for this, the best grind tiles have also been removed. (This is a sample pool. Tournament organizers can request specific enemy formations to be used, contact your local dev for details.)\n\n(None of the randomized pools include bosses.)"
+ "description": "Vanilla: All tiles are their original monster formations.\n\nShuffle: Shuffles all the forced encounter tiles in the game, except the Fiend refights. This doesn't add in any new tiles, instead it simply shuffles the existing encounter tiles among themselves.\n\nA-Side Formations: Trap Tiles are randomly populated from the A-side encounter list.\n\nB-Side Formations: Trap tiles are randomly populated from the B-side encounter list.\n\nA-Side & B-Side: Trap tiles are randomly populated from any of the A-side or B-side encounter formations.\n\nRemove Trap Tiles: Removes all the forced encounter tiles from the game, except the Fiend refights.\n\nLocal Formations: Tiles will use formations from the same dungeon that they appear in (when possible).\n\nUndead Only: Contains undead and some undead adjacent formations. \n\nOverpowered: \"A-Side & B-Side\" but with only the best grinds.\n\nCurated: \"A-Side & B-Side\" but with overly punishing encounters removed. To make up for this, the best grind tiles have also been removed. (This is a sample pool. Tournament organizers can request specific enemy formations to be used, contact your local dev for details.)\n\n(None of the randomized pools include bosses.)"
},
{
"Id": "WarMECHModeDropDown",
@@ -1478,6 +1501,12 @@
"screenshot": null,
"description": "Will add 45 Final Fantasy 6 Fiends to the Alternate Fiend Pool."
},
+ {
+ "Id": "winnerscirclepool",
+ "title": "Winner Circle",
+ "screenshot": null,
+ "description": "Any winner of a FFR Tournament gets the chance to add a fiend of their choice into the pool, this will add in all of the winner circle fiends to the Alternate Fiend Pool."
+ },
{
"Id": "blackorbrisingpool",
"title": "Black Orb Rising Fiends",
@@ -1613,10 +1642,16 @@
"description": "Halves the Black Belt's unarmed critical hit rate, so that it is now equal to their current level. (Vanilla crit rate is equal to the character's level times 2.)"
},
{
- "Id": "thiefHitCheckBox",
+ "Id": "thiefHitDropDown",
"title": "Thief Hit Rate Rebalance",
- "screenshot": "thiefHitCheckBox.gif",
- "description": "Increases the hit rate of Thieves and Ninjas from +2 per level to +4 per level, making them more effective combatants (helping to balance them in comparison to Fighters and Knights, which will still have significantly more HP and STR).\n[grid][r]{i}Hit% |Lvl 9|Lvl 17|Lvl 25[r]{l}Vanilla Thief|21%|37%|53%[r]{l}Fighter|34%|58%|82%[r]{l}Buffed Thief|37%|69%|101%"
+ "screenshot": "thiefHitDropDown.gif",
+ "description": "Changes the hit rate of Thieves and Ninjas from +2 per level to +N per level, potentially making them more effective combatants (helping to balance them in comparison to Fighters and Knights, which will still have significantly more HP and STR).\n[grid][r]{i}Hit% |Lvl 9|Lvl 17|Lvl 25[r]{l}Vanilla Thief|21%|37%|53%[r]{l}Fighter|34%|58%|82%[r]{l}Buffed Thief (Double)|37%|69%|101%"
+ },
+ {
+ "Id": "redMageHitDropDown",
+ "title": "Red Mage Hit Rate Rebalance",
+ "screenshot": "redMageHitDropDown.png",
+ "description": "Changes the hit rate of Red Mages and Wizards from +2 per level to +N per level, making them more or less viable as melee."
},
{
"Id": "thiefAgilityBuffDropDown",
@@ -2100,6 +2135,12 @@
"screenshot": "identifyTreasuresCheckBox.png",
"description": "If enabled, the player can see what item is in a chest if their inventory is full, instead of seeing \"Can't hold any more\"."
},
+ {
+ "Id": "chestsAppearOpenedCheckBox",
+ "title": "Chests Appear Opened",
+ "screenshot": "chestsAppearOpened.png",
+ "description": "Treasure chests will have an opened appearance after you open them."
+ },
{
"Id": "dashCheckBox",
"title": "Faster Walking Speed",
@@ -2609,5 +2650,11 @@
"title": "Map Derp",
"screenshot": "mapDerp.png",
"description": "Derp."
+ },
+ {
+ "Id": "funFountainsCheckBox",
+ "title": "Fun Fountain Text",
+ "screenshot": "FountainText.png",
+ "description": "We all love being told to wash our face, but what if the fountain said other things?"
}
]
diff --git a/FF1Lib/AltFiends.cs b/FF1Lib/AltFiends.cs
index 997b0b47a..fd5cd4f71 100644
--- a/FF1Lib/AltFiends.cs
+++ b/FF1Lib/AltFiends.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
+using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
@@ -2812,35 +2813,18 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
MonsterType = MonsterType.GIANT,
SpellChance1 = 0x00,
Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
- SkillChance1 = 0x40,
+ SkillChance1 = 0x00,
Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
SpellChance2 = 0x00,
Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
- SkillChance2 = 0x40,
+ SkillChance2 = 0x00,
Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
},
};
var FF1BonusFiendsList = new List
{
- new AlternateFiends {
- Name = "B.VAMP", //Will be Moved to Winner Fiends at a later date
- SpriteSheet = FormationSpriteSheet.SentryWaterNagaChimera,
- FormationPattern = FormationPattern.Large4,
- GFXOffset = FormationGFX.Sprite2,
- Palette1 = 0x23,
- Palette2 = 0x25,
- ElementalWeakness = SpellElement.Lightning,
- MonsterType = MonsterType.UNDEAD,
- SpellChance1 = 0x40,
- Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FOG, (byte)SpellByte.FIR2, (byte)SpellByte.INVS, (byte)SpellByte.FIRE, (byte)SpellByte.FIR2, (byte)SpellByte.FOG, (byte)SpellByte.INVS },
- SkillChance1 = 0x00,
- Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
- SpellChance2 = 0x40,
- Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.FOG, (byte)SpellByte.INVS, (byte)SpellByte.NUKE, (byte)SpellByte.FIR3, (byte)SpellByte.FOG, (byte)SpellByte.INVS, (byte)SpellByte.CUR3 },
- SkillChance2 = 0x40,
- Skills2 = new List { (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno, (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno },
- },
+
new AlternateFiends {
Name = "BEHOLDER",
@@ -2899,6 +2883,25 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
Skills2 = new List { (byte)EnemySkills.Frost, (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Frost, (byte)EnemySkills.Blizzard },
},
+ new AlternateFiends {
+ Name = "CARAVAN",
+ SpriteSheet = FormationSpriteSheet.MummyCoctricWyvernTyro,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Earth,
+ MonsterType = MonsterType.REGENERATIVE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Gaze, (byte)EnemySkills.Trance, (byte)EnemySkills.Ink, (byte)EnemySkills.Stare },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FAST, (byte)SpellByte.ICE2, (byte)SpellByte.FOG, (byte)SpellByte.FIR2, (byte)SpellByte.CUR3, (byte)SpellByte.LIT2, (byte)SpellByte.SLO2, (byte)SpellByte.SABR },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Poison_Damage, (byte)EnemySkills.Toxic, (byte)EnemySkills.Crack, (byte)EnemySkills.Dazzle },
+ },
+
new AlternateFiends {
Name = "DR.UNNE",
SpriteSheet = FormationSpriteSheet.SlimeSpiderManticorAnkylo,
@@ -2918,25 +2921,6 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
Skills2 = new List { (byte)EnemySkills.Blizzard, (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Tornado, (byte)EnemySkills.Toxic },
},
- new AlternateFiends {
- Name = "ENSINGER", //Will be Moved to Winner Fiends at a later date
- SpriteSheet = FormationSpriteSheet.BoneCreepHyenaOgre,
- FormationPattern = FormationPattern.Mixed,
- GFXOffset = FormationGFX.Sprite4,
- Palette1 = 0x23,
- Palette2 = 0x25,
- ElementalWeakness = SpellElement.Time,
- MonsterType = MonsterType.MAGE,
- SpellChance1 = 0x40,
- Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.INVS, (byte)SpellByte.LIT2, (byte)SpellByte.HOLD, (byte)SpellByte.ICE2, (byte)SpellByte.RUB, (byte)SpellByte.LIT, (byte)SpellByte.HOLD },
- SkillChance1 = 0x40,
- Skills1 = new List { (byte)EnemySkills.Cremate, (byte)EnemySkills.Glance, (byte)EnemySkills.Trance, (byte)EnemySkills.Frost },
- SpellChance2 = 0x40,
- Spells2 = new List { (byte)SpellByte.XFER, (byte)SpellByte.INVS, (byte)SpellByte.LIT3, (byte)SpellByte.XFER, (byte)SpellByte.NUKE, (byte)SpellByte.INVS, (byte)SpellByte.LIT3, (byte)SpellByte.STOP },
- SkillChance2 = 0x40,
- Skills2 = new List { (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Toxic, (byte)EnemySkills.Trance, (byte)EnemySkills.Thunder },
- },
-
new AlternateFiends {
Name = "EVILELF",
SpriteSheet = FormationSpriteSheet.VampGargoyleEarthDragon1,
@@ -3089,6 +3073,25 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
Skills2 = new List { (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Nuclear, (byte)EnemySkills.Squint, (byte)EnemySkills.Tornado },
},
+ new AlternateFiends {
+ Name = "NIMBUS", //Will be Moved to Winner Fiends at a later date
+ SpriteSheet = FormationSpriteSheet.SahagPirateSharkBigEye,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Fire,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.SLEP, (byte)SpellByte.ICE2, (byte)SpellByte.STUN, (byte)SpellByte.FOG, (byte)SpellByte.SLOW, (byte)SpellByte.ICE2, (byte)SpellByte.WALL, (byte)SpellByte.BLND },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stare, (byte)EnemySkills.Snorting, (byte)EnemySkills.Frost, (byte)EnemySkills.Glance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.SLP2, (byte)SpellByte.ICE3, (byte)SpellByte.XFER, (byte)SpellByte.SLO2, (byte)SpellByte.FOG2, (byte)SpellByte.ICE3, (byte)SpellByte.XFER, (byte)SpellByte.ZAP },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Swirl, (byte)EnemySkills.Flash, (byte)EnemySkills.Blizzard, (byte)EnemySkills.Poison_Stone },
+ },
+
new AlternateFiends {
Name = "REVENANT",
SpriteSheet = FormationSpriteSheet.KaryLich,
@@ -3146,6 +3149,25 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
},
+ new AlternateFiends {
+ Name = "SEPHROTH", //Will be Moved to Winner Fiends at a later date
+ SpriteSheet = FormationSpriteSheet.SlimeSpiderManticorAnkylo,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Status,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.ICE2, (byte)SpellByte.LIT2, (byte)SpellByte.CUR2, (byte)SpellByte.FIR2, (byte)SpellByte.LIT2, (byte)SpellByte.ICE2, (byte)SpellByte.CUR2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Frost, (byte)EnemySkills.Heat, (byte)EnemySkills.Flash, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.XFER, (byte)SpellByte.ICE3, (byte)SpellByte.FIR3, (byte)SpellByte.LIT3, (byte)SpellByte.FAST, (byte)SpellByte.WALL, (byte)SpellByte.CUR4, (byte)SpellByte.SABR },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Nuclear, (byte)EnemySkills.Blaze, (byte)EnemySkills.Thunder, (byte)EnemySkills.Blizzard },
+ },
+
new AlternateFiends {
Name = "VAMAKALI",
SpriteSheet = FormationSpriteSheet.KrakenTiamat,
@@ -3165,6 +3187,25 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
Skills2 = new List { (byte)EnemySkills.Inferno, (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Crack, (byte)EnemySkills.Toxic },
},
+ new AlternateFiends {
+ Name = "WHEELS", //Will be Moved to Winner Fiends at a later date
+ SpriteSheet = FormationSpriteSheet.BadmanAstosMadponyWarmech,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stare, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Heat, (byte)EnemySkills.Ink },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Nuclear, (byte)EnemySkills.Blaze, (byte)EnemySkills.Thunder, (byte)EnemySkills.Trance },
+ },
+
new AlternateFiends {
Name = "WRONGEYE",
SpriteSheet = FormationSpriteSheet.MedusaCatmanPedeTiger,
@@ -3184,53 +3225,2948 @@ public void AlternativeFiends(ExtAltFiends extAltFiends, EnemyScripts enemyScrip
Skills2 = new List { (byte)EnemySkills.Toxic, (byte)EnemySkills.Swirl, (byte)EnemySkills.Stare, (byte)EnemySkills.Poison_Stone },
},
- };
- var alternateFiendsList = new List
- {
-
+ new AlternateFiends {
+ Name = "ZINOGRE", //Will be Moved to Winner Fiends at a later date
+ SpriteSheet = FormationSpriteSheet.MedusaCatmanPedeTiger,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.LIT, (byte)SpellByte.LIT2, (byte)SpellByte.HOLD, (byte)SpellByte.STUN, (byte)SpellByte.LOCK, (byte)SpellByte.INVS, (byte)SpellByte.LIT, (byte)SpellByte.LIT2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Gaze, (byte)EnemySkills.Flash, (byte)EnemySkills.Stare, (byte)EnemySkills.Gaze },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.LIT3, (byte)SpellByte.FIR3, (byte)SpellByte.STOP, (byte)SpellByte.RUSE, (byte)SpellByte.LOK2, (byte)SpellByte.ZAP, (byte)SpellByte.LIT3, (byte)SpellByte.FIR3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Thunder, (byte)EnemySkills.Trance, (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno },
+ },
};
- if ((bool)flags.FinalFantasy2Fiends)
-
+ var WinnerCirleFiendsList = new List
{
- alternateFiendsList.AddRange(FF2AltFiendslist);
- }
+ new AlternateFiends {
+ Name = "AGNEA",
+ SpriteSheet = FormationSpriteSheet.SentryWaterNagaChimera,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Earth,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.INVS, (byte)SpellByte.CUR2, (byte)SpellByte.FOG2, (byte)SpellByte.SABR, (byte)SpellByte.INVS, (byte)SpellByte.CUR2, (byte)SpellByte.SABR, (byte)SpellByte.FAST },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.WALL, (byte)SpellByte.INVS, (byte)SpellByte.SABR, (byte)SpellByte.FAST, (byte)SpellByte.INVS, (byte)SpellByte.FOG, (byte)SpellByte.SABR, (byte)SpellByte.CUR3 },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
- if ((bool)flags.FinalFantasy3Fiends)
+ new AlternateFiends {
+ Name = "B.VAMP",
+ SpriteSheet = FormationSpriteSheet.SentryWaterNagaChimera,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Lightning,
+ MonsterType = MonsterType.UNDEAD,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FOG, (byte)SpellByte.FIR2, (byte)SpellByte.INVS, (byte)SpellByte.FIRE, (byte)SpellByte.FIR2, (byte)SpellByte.FOG, (byte)SpellByte.INVS },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.FOG, (byte)SpellByte.INVS, (byte)SpellByte.NUKE, (byte)SpellByte.FIR3, (byte)SpellByte.FOG, (byte)SpellByte.INVS, (byte)SpellByte.CUR3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno, (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno },
+ },
- {
- alternateFiendsList.AddRange(FF3AltFiendslist);
- }
+ new AlternateFiends {
+ Name = "ENSINGER",
+ SpriteSheet = FormationSpriteSheet.BoneCreepHyenaOgre,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Time,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.INVS, (byte)SpellByte.LIT2, (byte)SpellByte.HOLD, (byte)SpellByte.ICE2, (byte)SpellByte.RUB, (byte)SpellByte.LIT, (byte)SpellByte.HOLD },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Cremate, (byte)EnemySkills.Glance, (byte)EnemySkills.Trance, (byte)EnemySkills.Frost },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.XFER, (byte)SpellByte.INVS, (byte)SpellByte.LIT3, (byte)SpellByte.XFER, (byte)SpellByte.NUKE, (byte)SpellByte.INVS, (byte)SpellByte.LIT3, (byte)SpellByte.STOP },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Toxic, (byte)EnemySkills.Trance, (byte)EnemySkills.Thunder },
+ },
- if ((bool)flags.FinalFantasy4Fiends)
+ new AlternateFiends {
+ Name = "NIMBUS",
+ SpriteSheet = FormationSpriteSheet.SahagPirateSharkBigEye,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Fire,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.SLEP, (byte)SpellByte.ICE2, (byte)SpellByte.STUN, (byte)SpellByte.FOG, (byte)SpellByte.SLOW, (byte)SpellByte.ICE2, (byte)SpellByte.WALL, (byte)SpellByte.BLND },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stare, (byte)EnemySkills.Snorting, (byte)EnemySkills.Frost, (byte)EnemySkills.Glance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.SLP2, (byte)SpellByte.ICE3, (byte)SpellByte.XFER, (byte)SpellByte.SLO2, (byte)SpellByte.FOG2, (byte)SpellByte.ICE3, (byte)SpellByte.XFER, (byte)SpellByte.ZAP },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Swirl, (byte)EnemySkills.Flash, (byte)EnemySkills.Blizzard, (byte)EnemySkills.Poison_Stone },
+ },
- {
- alternateFiendsList.AddRange(FF4AltFiendsList);
- }
+ new AlternateFiends {
+ Name = "SEPHROTH",
+ SpriteSheet = FormationSpriteSheet.SlimeSpiderManticorAnkylo,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Status,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.ICE2, (byte)SpellByte.LIT2, (byte)SpellByte.CUR2, (byte)SpellByte.FIR2, (byte)SpellByte.LIT2, (byte)SpellByte.ICE2, (byte)SpellByte.CUR2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Frost, (byte)EnemySkills.Heat, (byte)EnemySkills.Flash, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.XFER, (byte)SpellByte.ICE3, (byte)SpellByte.FIR3, (byte)SpellByte.LIT3, (byte)SpellByte.FAST, (byte)SpellByte.WALL, (byte)SpellByte.CUR4, (byte)SpellByte.SABR },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Nuclear, (byte)EnemySkills.Blaze, (byte)EnemySkills.Thunder, (byte)EnemySkills.Blizzard },
+ },
- if ((bool)flags.FinalFantasy5Fiends)
+ new AlternateFiends {
+ Name = "THNDBIRD",
+ SpriteSheet = FormationSpriteSheet.SlimeSpiderManticorAnkylo,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Lightning,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.STUN, (byte)SpellByte.FIR2, (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.LOCK, (byte)SpellByte.FIR2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Heat, (byte)EnemySkills.Scorch, (byte)EnemySkills.Heat, (byte)EnemySkills.Glance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FAST, (byte)SpellByte.LOCK, (byte)SpellByte.FIR3, (byte)SpellByte.FIR2, (byte)SpellByte.INVS, (byte)SpellByte.WALL, (byte)SpellByte.FIR3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno, (byte)EnemySkills.Poison_Damage, (byte)EnemySkills.Inferno },
+ },
- {
- alternateFiendsList.AddRange(FF5AltFiendsList);
- }
+ new AlternateFiends {
+ Name = "WHEELS",
+ SpriteSheet = FormationSpriteSheet.BadmanAstosMadponyWarmech,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stare, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Heat, (byte)EnemySkills.Ink },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Nuclear, (byte)EnemySkills.Blaze, (byte)EnemySkills.Thunder, (byte)EnemySkills.Trance },
+ },
- if ((bool)flags.FinalFantasy6Fiends)
+ new AlternateFiends {
+ Name = "ZINOGRE",
+ SpriteSheet = FormationSpriteSheet.MedusaCatmanPedeTiger,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.LIT, (byte)SpellByte.LIT2, (byte)SpellByte.HOLD, (byte)SpellByte.STUN, (byte)SpellByte.LOCK, (byte)SpellByte.INVS, (byte)SpellByte.LIT, (byte)SpellByte.LIT2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Gaze, (byte)EnemySkills.Flash, (byte)EnemySkills.Stare, (byte)EnemySkills.Gaze },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.LIT3, (byte)SpellByte.FIR3, (byte)SpellByte.STOP, (byte)SpellByte.RUSE, (byte)SpellByte.LOK2, (byte)SpellByte.ZAP, (byte)SpellByte.LIT3, (byte)SpellByte.FIR3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Thunder, (byte)EnemySkills.Trance, (byte)EnemySkills.Blaze, (byte)EnemySkills.Inferno },
+ },
+ };
+ var FF2AltFiendListHardcore = new List
{
- alternateFiendsList.AddRange(FF6AltFiendsList);
- }
-
- if ((bool)flags.FinalFantasy1BonusFiends)
+ new AlternateFiends
{
- alternateFiendsList.AddRange(FF1BonusFiendsList);
+ Name = "ADMNTOSE",
+ SpriteSheet = FormationSpriteSheet.AspLobsterBullTroll,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Fire,
+ MonsterType = MonsterType.DRAGON,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FAST, (byte)SpellByte.FOG, (byte)SpellByte.AFIR, (byte)SpellByte.AICE, (byte)SpellByte.TMPR, (byte)SpellByte.FOG, (byte)SpellByte.INVS, (byte)SpellByte.CUR2 },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FAST, (byte)SpellByte.SABR, (byte)SpellByte.INVS, (byte)SpellByte.LOCK, (byte)SpellByte.FAST, (byte)SpellByte.SABR, (byte)SpellByte.INVS, (byte)SpellByte.CUR4 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Ink, (byte)EnemySkills.Ink, (byte)EnemySkills.Ink, (byte)EnemySkills.Ink },
+ },
+
+ new AlternateFiends
+ {
+ Name = "ASTAROTH",
+ SpriteSheet = FormationSpriteSheet.BadmanAstosMadponyWarmech,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x39,
+ Palette2 = 0x39,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.BRAK, (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.BRAK, (byte)SpellByte.FIRE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Heat, (byte)EnemySkills.Heat, (byte)EnemySkills.Heat, (byte)EnemySkills.Poison_Stone },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FIR3, (byte)SpellByte.FIR2, (byte)SpellByte.BRAK, (byte)SpellByte.FIR2, (byte)SpellByte.FIR3, (byte)SpellByte.FIR2, (byte)SpellByte.BANE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Scorch, (byte)EnemySkills.Poison_Damage, (byte)EnemySkills.Blaze, (byte)EnemySkills.Poison_Stone },
+ },
+
+ new AlternateFiends
+ {
+ Name = "BELZEBUB",
+ SpriteSheet = FormationSpriteSheet.SlimeSpiderManticorAnkylo,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x30,
+ Palette2 = 0x30,
+ ElementalWeakness = SpellElement.Lightning,
+ MonsterType = MonsterType.UNDEAD,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FAST, (byte)SpellByte.FIRE, (byte)SpellByte.FOG, (byte)SpellByte.FIRE, (byte)SpellByte.SLOW, (byte)SpellByte.FIRE, (byte)SpellByte.RUB },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Flash, (byte)EnemySkills.Stinger, (byte)EnemySkills.Flash, (byte)EnemySkills.Dazzle },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FAST, (byte)SpellByte.FIR3, (byte)SpellByte.FOG, (byte)SpellByte.FIR2, (byte)SpellByte.SLO2, (byte)SpellByte.FIR3, (byte)SpellByte.BANE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Nuclear, (byte)EnemySkills.Flash, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Inferno },
+ },
+
+ new AlternateFiends
+ {
+ Name = "BORGEN",
+ SpriteSheet = FormationSpriteSheet.MedusaCatmanPedeTiger,
+ FormationPattern = FormationPattern.Small9,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Fire,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.CUR2, (byte)SpellByte.CURE, (byte)SpellByte.FIRE, (byte)SpellByte.AFIR, (byte)SpellByte.FIR2, (byte)SpellByte.HEAL, (byte)SpellByte.HEL2, (byte)SpellByte.CURE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stinger, (byte)EnemySkills.Snorting, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.NUKE, (byte)SpellByte.FIR3, (byte)SpellByte.HOLD, (byte)SpellByte.XFER, (byte)SpellByte.BANE, (byte)SpellByte.ZAP, (byte)SpellByte.MUTE, (byte)SpellByte.STOP },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Gaze, (byte)EnemySkills.Trance, (byte)EnemySkills.Gaze, (byte)EnemySkills.Blaze },
+ },
+
+ new AlternateFiends
+ {
+ Name = "BEHEMOTH",
+ SpriteSheet = FormationSpriteSheet.BoneCreepHyenaOgre,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x1D, // Yellow/Orange
+ Palette2 = 0x1D,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.UNDEAD,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.STUN, (byte)SpellByte.FIR2, (byte)SpellByte.FAST, (byte)SpellByte.FIR2, (byte)SpellByte.STUN, (byte)SpellByte.FIR2, (byte)SpellByte.FAST },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Snorting, (byte)EnemySkills.Snorting, (byte)EnemySkills.Snorting, (byte)EnemySkills.Snorting },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.STOP, (byte)SpellByte.FIR3, (byte)SpellByte.FAST, (byte)SpellByte.FIR3, (byte)SpellByte.SLO2, (byte)SpellByte.FIR3, (byte)SpellByte.NUKE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Snorting, (byte)EnemySkills.Snorting, (byte)EnemySkills.Snorting, (byte)EnemySkills.Blaze },
+ },
+
+ new AlternateFiends
+ {
+ Name = "B.KNIGHT",
+ SpriteSheet = FormationSpriteSheet.BadmanAstosMadponyWarmech,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x1A, // Grey/Purple
+ Palette2 = 0x1A,
+ ElementalWeakness = SpellElement.Poison,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FAST, (byte)SpellByte.SLOW, (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.FAST, (byte)SpellByte.SLOW, (byte)SpellByte.STUN, (byte)SpellByte.STOP },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Flash, (byte)EnemySkills.Flash, (byte)EnemySkills.Flash, (byte)EnemySkills.Dazzle },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.MUTE, (byte)SpellByte.SLO2, (byte)SpellByte.FAST, (byte)SpellByte.SABR, (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.SABR, (byte)SpellByte.BRAK },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Trance, (byte)EnemySkills.Flash, (byte)EnemySkills.Ink, (byte)EnemySkills.Glare },
+ },
+
+ new AlternateFiends
+ {
+ Name = "GOTUS",
+ SpriteSheet = FormationSpriteSheet.KrakenTiamat,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Poison,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.SLOW, (byte)SpellByte.DARK, (byte)SpellByte.SLOW, (byte)SpellByte.LIT, (byte)SpellByte.FIRE, (byte)SpellByte.ICE, (byte)SpellByte.DARK, (byte)SpellByte.MUTE },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FAST, (byte)SpellByte.FAST, (byte)SpellByte.SABR, (byte)SpellByte.TMPR, (byte)SpellByte.SABR, (byte)SpellByte.ZAP, (byte)SpellByte.XXXX, (byte)SpellByte.QAKE },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+
+ new AlternateFiends
+ {
+ Name = "IROGIANT",
+ SpriteSheet = FormationSpriteSheet.KaryLich,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Lightning,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FOG, (byte)SpellByte.STUN, (byte)SpellByte.BLND, (byte)SpellByte.FIR2, (byte)SpellByte.HOLD, (byte)SpellByte.STUN, (byte)SpellByte.FIRE, (byte)SpellByte.CURE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stinger, (byte)EnemySkills.Flash, (byte)EnemySkills.Trance, (byte)EnemySkills.Stinger },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.NUKE, (byte)SpellByte.XFER, (byte)SpellByte.XXXX, (byte)SpellByte.SLO2, (byte)SpellByte.MUTE, (byte)SpellByte.FIR3, (byte)SpellByte.CUR3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Poison_Damage, (byte)EnemySkills.Blaze, (byte)EnemySkills.Glare, (byte)EnemySkills.Toxic },
+ },
+
+ new AlternateFiends
+ {
+ Name = "LAMQUEEN",
+ SpriteSheet = FormationSpriteSheet.MummyCoctricWyvernTyro,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Time,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FOG, (byte)SpellByte.STUN, (byte)SpellByte.ICE2, (byte)SpellByte.FOG, (byte)SpellByte.SLEP, (byte)SpellByte.SLOW, (byte)SpellByte.ICE2, (byte)SpellByte.LIT2 },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.INVS, (byte)SpellByte.MUTE, (byte)SpellByte.XXXX, (byte)SpellByte.FOG2, (byte)SpellByte.SLO2, (byte)SpellByte.FIR3, (byte)SpellByte.ICE3, (byte)SpellByte.CUR4 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Poison_Stone, (byte)EnemySkills.Tornado, (byte)EnemySkills.Ink, (byte)EnemySkills.Poison_Damage },
+ },
+
+ new AlternateFiends
+ {
+ Name = "MEDUSAE",
+ SpriteSheet = FormationSpriteSheet.KaryLich,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23, // Green/Grey
+ Palette2 = 0x23,
+ ElementalWeakness = SpellElement.Poison,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.STUN, (byte)SpellByte.BRAK, (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.STUN, (byte)SpellByte.BRAK },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Gaze, (byte)EnemySkills.Glance, (byte)EnemySkills.Gaze, (byte)EnemySkills.Glare },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.XXXX, (byte)SpellByte.BRAK, (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.XXXX, (byte)SpellByte.BRAK },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Glare, (byte)EnemySkills.Glance, (byte)EnemySkills.Glare, (byte)EnemySkills.Poison_Stone },
+ },
+
+ new AlternateFiends
+ {
+ Name = "RNDWORM",
+ SpriteSheet = FormationSpriteSheet.VampGargoyleEarthDragon1,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Fire,
+ MonsterType = MonsterType.NONE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Crack, (byte)EnemySkills.Trance, (byte)EnemySkills.Ink, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Crack, (byte)EnemySkills.Nuclear, (byte)EnemySkills.Toxic, (byte)EnemySkills.Thunder },
+ },
+
+ new AlternateFiends
+ {
+ Name = "SERGEANT",
+ SpriteSheet = FormationSpriteSheet.AspLobsterBullTroll,
+ FormationPattern = FormationPattern.Small9,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Lightning,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.CURE, (byte)SpellByte.HEAL, (byte)SpellByte.MUTE, (byte)SpellByte.XFER, (byte)SpellByte.BLND, (byte)SpellByte.ICE, (byte)SpellByte.CURE, (byte)SpellByte.MUTE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Gaze, (byte)EnemySkills.Glance, (byte)EnemySkills.Stare, (byte)EnemySkills.Dazzle },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FAST, (byte)SpellByte.TMPR, (byte)SpellByte.BLND, (byte)SpellByte.XFER, (byte)SpellByte.XXXX, (byte)SpellByte.ICE3, (byte)SpellByte.BANE, (byte)SpellByte.FOG },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Blizzard, (byte)EnemySkills.Nuclear, (byte)EnemySkills.Glare, (byte)EnemySkills.Squint },
+ },
+
+ new AlternateFiends
+ {
+ Name = "TWHD.DRG",
+ SpriteSheet = FormationSpriteSheet.KaryLich,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Time,
+ MonsterType = MonsterType.DRAGON,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Trance, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Flash, (byte)EnemySkills.Stinger },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.TMPR, (byte)SpellByte.FAST, (byte)SpellByte.XFER, (byte)SpellByte.INVS, (byte)SpellByte.TMPR, (byte)SpellByte.SLO2, (byte)SpellByte.CUR3, (byte)SpellByte.MUTE },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+
+ };
+ var FF3AltFiendListHardcore = new List
+ {
+ new AlternateFiends {
+ Name = "AHRIMAN",
+ SpriteSheet = FormationSpriteSheet.ImpWolfIguanaGiant,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.ICE2, (byte)SpellByte.MUTE, (byte)SpellByte.SLO2, (byte)SpellByte.LIT2, (byte)SpellByte.CUR2, (byte)SpellByte.INVS, (byte)SpellByte.SLP2 },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.NUKE, (byte)SpellByte.SLO2, (byte)SpellByte.XXXX, (byte)SpellByte.CUR4, (byte)SpellByte.ICE3, (byte)SpellByte.MUTE, (byte)SpellByte.FIR3, (byte)SpellByte.XFER },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+ new AlternateFiends {
+ Name = "AMON",
+ SpriteSheet = FormationSpriteSheet.SlimeSpiderManticorAnkylo,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Status,
+ MonsterType = MonsterType.NONE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FIR2, (byte)SpellByte.LIT2, (byte)SpellByte.BRAK, (byte)SpellByte.SLOW, (byte)SpellByte.FOG, (byte)SpellByte.STUN, (byte)SpellByte.AICE },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.NUKE, (byte)SpellByte.LIT3, (byte)SpellByte.CUR4, (byte)SpellByte.XXXX, (byte)SpellByte.BANE, (byte)SpellByte.QAKE, (byte)SpellByte.SLO2 },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+ new AlternateFiends{
+ Name = "BIGRAT",
+ SpriteSheet = FormationSpriteSheet.MummyCoctricWyvernTyro,
+ FormationPattern = FormationPattern.Small9,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.WERE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.ICE, (byte)SpellByte.MUTE, (byte)SpellByte.STUN, (byte)SpellByte.ICE, (byte)SpellByte.FIRE, (byte)SpellByte.LIT, (byte)SpellByte.DARK },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Ink, (byte)EnemySkills.Stinger, (byte)EnemySkills.Snorting, (byte)EnemySkills.Dazzle },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.ICE3, (byte)SpellByte.XXXX, (byte)SpellByte.LIT3, (byte)SpellByte.INVS, (byte)SpellByte.ICE3, (byte)SpellByte.MUTE, (byte)SpellByte.RUB },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Inferno, (byte)EnemySkills.Blizzard, (byte)EnemySkills.Thunder, (byte)EnemySkills.Swirl },
+ },
+ new AlternateFiends {
+ Name = "CARBUNCL",
+ SpriteSheet = FormationSpriteSheet.SentryWaterNagaChimera,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x2D, // Blue/Grey
+ Palette2 = 0x2D,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.CURE, (byte)SpellByte.FAST, (byte)SpellByte.CURE, (byte)SpellByte.SLOW, (byte)SpellByte.CURE, (byte)SpellByte.FAST, (byte)SpellByte.CURE, (byte)SpellByte.SLOW },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stinger, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Gaze, (byte)EnemySkills.Dazzle },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FAST, (byte)SpellByte.CUR2, (byte)SpellByte.SLO2, (byte)SpellByte.WALL, (byte)SpellByte.CUR2, (byte)SpellByte.XFER, (byte)SpellByte.SABR, (byte)SpellByte.CUR3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Stinger, (byte)EnemySkills.Gaze, (byte)EnemySkills.Glance, (byte)EnemySkills.Dazzle },
+ },
+ new AlternateFiends {
+ Name = "DJINN",
+ SpriteSheet = FormationSpriteSheet.SentryWaterNagaChimera,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23, // Green/White
+ Palette2 = 0x23,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.FAST, (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.FIRE, (byte)SpellByte.FAST },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Scorch, (byte)EnemySkills.Heat, (byte)EnemySkills.Scorch, (byte)EnemySkills.Gaze },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FIR2, (byte)SpellByte.FAST, (byte)SpellByte.FIR3, (byte)SpellByte.FIR2, (byte)SpellByte.SLO2, (byte)SpellByte.FIR2, (byte)SpellByte.NUKE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Blaze, (byte)EnemySkills.Scorch, (byte)EnemySkills.Scorch, (byte)EnemySkills.Inferno },
+ },
+ new AlternateFiends
+ {
+ Name = "DOGA",
+ SpriteSheet = FormationSpriteSheet.MedusaCatmanPedeTiger,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.MUTE, (byte)SpellByte.BRAK, (byte)SpellByte.SLEP, (byte)SpellByte.STUN, (byte)SpellByte.QAKE, (byte)SpellByte.SLOW, (byte)SpellByte.MUTE, (byte)SpellByte.BLND },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.BRAK, (byte)SpellByte.BRAK, (byte)SpellByte.QAKE, (byte)SpellByte.QAKE, (byte)SpellByte.NUKE, (byte)SpellByte.SLO2, (byte)SpellByte.RUB, (byte)SpellByte.XXXX },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+ new AlternateFiends {
+ Name = "ECHIDNA",
+ SpriteSheet = FormationSpriteSheet.KaryLich,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x25, // Red/White
+ Palette2 = 0x2F,
+ ElementalWeakness = SpellElement.Fire,
+ MonsterType = MonsterType.MAGE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.STUN, (byte)SpellByte.SLOW, (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.STUN, (byte)SpellByte.SLOW },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Dazzle, (byte)EnemySkills.Ink, (byte)EnemySkills.Ink, (byte)EnemySkills.Crack },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.STUN, (byte)SpellByte.STOP, (byte)SpellByte.ZAP, (byte)SpellByte.STOP, (byte)SpellByte.WALL, (byte)SpellByte.XFER, (byte)SpellByte.STUN, (byte)SpellByte.XXXX },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Crack, (byte)EnemySkills.Trance, (byte)EnemySkills.Crack, (byte)EnemySkills.Gaze },
+ },
+ new AlternateFiends
+ {
+ Name = "GARUDA",
+ SpriteSheet = FormationSpriteSheet.KrakenTiamat,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Earth,
+ MonsterType = MonsterType.NONE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Dazzle, (byte)EnemySkills.Flash, (byte)EnemySkills.Ink, (byte)EnemySkills.Gaze },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Thunder, (byte)EnemySkills.Nuclear, (byte)EnemySkills.Toxic, (byte)EnemySkills.Poison_Damage },
+ },
+ new AlternateFiends
+ {
+ Name = "GENERAL",
+ SpriteSheet = FormationSpriteSheet.BoneCreepHyenaOgre,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.NONE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Flash, (byte)EnemySkills.Stare, (byte)EnemySkills.Stare, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Trance, (byte)EnemySkills.Squint, (byte)EnemySkills.Toxic, (byte)EnemySkills.Crack },
+ },
+ new AlternateFiends {
+ Name = "GOLDOR",
+ SpriteSheet = FormationSpriteSheet.MedusaCatmanPedeTiger,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.MAGICAL,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.LIT2, (byte)SpellByte.ICE2, (byte)SpellByte.MUTE, (byte)SpellByte.AFIR, (byte)SpellByte.AICE, (byte)SpellByte.ALIT, (byte)SpellByte.SLOW },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.NUKE, (byte)SpellByte.LIT3, (byte)SpellByte.ICE3, (byte)SpellByte.WALL, (byte)SpellByte.MUTE, (byte)SpellByte.SLO2, (byte)SpellByte.SLO2 },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+ new AlternateFiends {
+ Name = "GUARDIN",
+ SpriteSheet = FormationSpriteSheet.SahagPirateSharkBigEye,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite1,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Crack, (byte)EnemySkills.Stinger, (byte)EnemySkills.Trance, (byte)EnemySkills.Gaze },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.WALL, (byte)SpellByte.CUR4, (byte)SpellByte.SLO2, (byte)SpellByte.FAST, (byte)SpellByte.INVS, (byte)SpellByte.SLP2, (byte)SpellByte.QAKE, (byte)SpellByte.QAKE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Crack, (byte)EnemySkills.Stare, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Tornado },
+ },
+ new AlternateFiends {
+ Name = "GUTSCO",
+ SpriteSheet = FormationSpriteSheet.BoneCreepHyenaOgre,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.FIR2, (byte)SpellByte.SLOW, (byte)SpellByte.FIRE, (byte)SpellByte.FIR2, (byte)SpellByte.STUN, (byte)SpellByte.BLND, (byte)SpellByte.FIRE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Cremate, (byte)EnemySkills.Heat, (byte)EnemySkills.Stinger, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR3, (byte)SpellByte.FIR3, (byte)SpellByte.FAST, (byte)SpellByte.FOG, (byte)SpellByte.SLO2, (byte)SpellByte.SLP2, (byte)SpellByte.FIR3, (byte)SpellByte.LOK2 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Blaze, (byte)EnemySkills.Nuclear, (byte)EnemySkills.Cremate, (byte)EnemySkills.Squint },
+ },
+ new AlternateFiends {
+ Name = "HECATON",
+ SpriteSheet = FormationSpriteSheet.KrakenTiamat,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Earth,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stare, (byte)EnemySkills.Gaze, (byte)EnemySkills.Squint, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Crack, (byte)EnemySkills.Squint, (byte)EnemySkills.Toxic, (byte)EnemySkills.Glare },
+ },
+ new AlternateFiends {
+ Name = "KUNOICHI",
+ SpriteSheet = FormationSpriteSheet.CaribeGatorOchoHydra,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.NONE,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Dazzle, (byte)EnemySkills.Gaze, (byte)EnemySkills.Trance, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Tornado, (byte)EnemySkills.Trance, (byte)EnemySkills.Poison_Damage, (byte)EnemySkills.Glare },
+ },
+ new AlternateFiends {
+ Name = "LEVIATHN",
+ SpriteSheet = FormationSpriteSheet.ImageGeistWormEye,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x01, // Blue/White
+ Palette2 = 0x01,
+ ElementalWeakness = SpellElement.Lightning,
+ MonsterType = MonsterType.GIANT,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.ICE, (byte)SpellByte.ICE2, (byte)SpellByte.ICE, (byte)SpellByte.STOP, (byte)SpellByte.ICE, (byte)SpellByte.ICE2, (byte)SpellByte.ICE, (byte)SpellByte.STOP },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Frost, (byte)EnemySkills.Dazzle, (byte)EnemySkills.Stinger, (byte)EnemySkills.Flash },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.ICE2, (byte)SpellByte.ICE2, (byte)SpellByte.ICE3, (byte)SpellByte.ICE3, (byte)SpellByte.ICE2, (byte)SpellByte.ICE2, (byte)SpellByte.XFER, (byte)SpellByte.ICE3 },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Frost, (byte)EnemySkills.Swirl, (byte)EnemySkills.Blizzard, (byte)EnemySkills.Swirl },
+ },
+ new AlternateFiends {
+ Name = "LUCIFER",
+ SpriteSheet = FormationSpriteSheet.ImpWolfIguanaGiant,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.REGENERATIVE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FIRE, (byte)SpellByte.FIR2, (byte)SpellByte.SLOW, (byte)SpellByte.SLEP, (byte)SpellByte.BLND, (byte)SpellByte.MUTE, (byte)SpellByte.FIRE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Heat, (byte)EnemySkills.Scorch, (byte)EnemySkills.Trance, (byte)EnemySkills.Glance },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.NUKE, (byte)SpellByte.FIR3, (byte)SpellByte.XFER, (byte)SpellByte.FIR3, (byte)SpellByte.XXXX, (byte)SpellByte.FAST, (byte)SpellByte.FOG2, (byte)SpellByte.TMPR },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Inferno, (byte)EnemySkills.Toxic, (byte)EnemySkills.Poison_Damage, (byte)EnemySkills.Squint },
+ },
+ new AlternateFiends{
+ Name = "NEP.DRGN",
+ SpriteSheet = FormationSpriteSheet.KrakenTiamat,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.None,
+ MonsterType = MonsterType.DRAGON,
+ SpellChance1 = 0x00,
+ Spells1 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Stare, (byte)EnemySkills.Heat, (byte)EnemySkills.Cremate, (byte)EnemySkills.Trance },
+ SpellChance2 = 0x00,
+ Spells2 = new List { (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE, (byte)SpellByte.NONE },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Tornado, (byte)EnemySkills.Toxic, (byte)EnemySkills.Inferno, (byte)EnemySkills.Tornado },
+ },
+ new AlternateFiends{
+ Name = "NINJI",
+ SpriteSheet = FormationSpriteSheet.MummyCoctricWyvernTyro,
+ FormationPattern = FormationPattern.Mixed,
+ GFXOffset = FormationGFX.Sprite4,
+ Palette1 = 0x23,
+ Palette2 = 0x25,
+ ElementalWeakness = SpellElement.Time,
+ MonsterType = MonsterType.NONE,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FOG, (byte)SpellByte.INVS, (byte)SpellByte.BLND, (byte)SpellByte.BLND, (byte)SpellByte.STUN, (byte)SpellByte.SLEP, (byte)SpellByte.SLEP, (byte)SpellByte.FOG },
+ SkillChance1 = 0x00,
+ Skills1 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FAST, (byte)SpellByte.SABR, (byte)SpellByte.FOG2, (byte)SpellByte.INVS, (byte)SpellByte.SLO2, (byte)SpellByte.SLP2, (byte)SpellByte.BANE, (byte)SpellByte.ZAP },
+ SkillChance2 = 0x00,
+ Skills2 = new List { (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None, (byte)EnemySkills.None },
+ },
+ new AlternateFiends {
+ Name = "SALAMAND",
+ SpriteSheet = FormationSpriteSheet.WizardGarlandDragon2Golem,
+ FormationPattern = FormationPattern.Large4,
+ GFXOffset = FormationGFX.Sprite3,
+ Palette1 = 0x27, // Orange/Red
+ Palette2 = 0x27,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.DRAGON,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.FIRE, (byte)SpellByte.DARK, (byte)SpellByte.FIRE, (byte)SpellByte.FIR2, (byte)SpellByte.FIRE, (byte)SpellByte.DARK, (byte)SpellByte.FIRE, (byte)SpellByte.FIR2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List { (byte)EnemySkills.Flash, (byte)EnemySkills.Heat, (byte)EnemySkills.Flash, (byte)EnemySkills.Heat },
+ SpellChance2 = 0x40,
+ Spells2 = new List { (byte)SpellByte.FIR2, (byte)SpellByte.FIR3, (byte)SpellByte.FIR3, (byte)SpellByte.NUKE, (byte)SpellByte.FIR2, (byte)SpellByte.FIR2, (byte)SpellByte.FIR3, (byte)SpellByte.DARK },
+ SkillChance2 = 0x40,
+ Skills2 = new List { (byte)EnemySkills.Scorch, (byte)EnemySkills.Blaze, (byte)EnemySkills.Heat, (byte)EnemySkills.Inferno },
+ },
+
+ new AlternateFiends {
+ Name = "SCYLLA",
+ SpriteSheet = FormationSpriteSheet.KrakenTiamat,
+ FormationPattern = FormationPattern.Fiends,
+ GFXOffset = FormationGFX.Sprite2,
+ Palette1 = 0x1A, // Blue/Green
+ Palette2 = 0x24,
+ ElementalWeakness = SpellElement.Ice,
+ MonsterType = MonsterType.AQUATIC,
+ SpellChance1 = 0x40,
+ Spells1 = new List { (byte)SpellByte.LIT, (byte)SpellByte.LIT2, (byte)SpellByte.LIT, (byte)SpellByte.LIT2, (byte)SpellByte.LIT, (byte)SpellByte.LIT2, (byte)SpellByte.LIT, (byte)SpellByte.LIT2 },
+ SkillChance1 = 0x40,
+ Skills1 = new List