package minigame_v2
using RTDB, MinigameTraps, ItemAction, Effectors

DefaultMinigame : Minigame_Def
{
	trapsProbability = 0f;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 30.f;
	float overlapProbability = 0.8f;
	useProgression = true;
}

DefaultMinigameNoCameras : DefaultMinigame
{
	fk< Program >[] forbiddenPrograms = 
	[
		{
			program = "MinigameAction.NetworkCameraFriendly";
		}, 
		{
			program = "MinigameAction.NetworkCameraMalfunction";
		}, 
		{
			program = "MinigameAction.NetworkCameraShutdown";
		}
	];
}

DefaultMinigameNoTurrets : DefaultMinigame
{
	fk< Program >[] forbiddenPrograms = 
	[
		{
			program = "MinigameAction.NetworkTurretFriendly";
		}, 
		{
			program = "MinigameAction.NetworkTurretMalfunction";
		}, 
		{
			program = "MinigameAction.NetworkTurretShutdown";
		}
	];
}

DefaultMinigameNoCamerasNoTurrets : DefaultMinigame
{
	fk< Program >[] forbiddenPrograms = 
	[
		{
			program = "MinigameAction.NetworkCameraFriendly";
		}, 
		{
			program = "MinigameAction.NetworkCameraMalfunction";
		}, 
		{
			program = "MinigameAction.NetworkCameraShutdown";
		}, 
		{
			program = "MinigameAction.NetworkTurretFriendly";
		}, 
		{
			program = "MinigameAction.NetworkTurretMalfunction";
		}, 
		{
			program = "MinigameAction.NetworkTurretShutdown";
		}
	];
}

DefaultItemMinigame : DefaultMinigame
{
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#49565";
			charactersChain = 
			[
				-1, -1, -1, -1
			];
			program = "MinigameAction.GainAccessProgram";
		}
	];
}

DefaultItemMinigameEasy : DefaultMinigame
{
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#49565";
			charactersChain = 
			[
				-1, -1, -1
			];
			program = "MinigameAction.GainAccessProgram";
		}
	];
	extraDifficulty = -10;
}

DefaultItemMinigameHard : DefaultMinigame
{
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#49565";
			charactersChain = 
			[
				-1, -1, -1, -1, -1
			];
			program = "MinigameAction.GainAccessProgram";
		}
	];
	bufferSize = 6;
	extraDifficulty = 10;
}

DefaultItemMinigameVeryHard : DefaultMinigame
{
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#49565";
			charactersChain = 
			[
				-1, -1, -1, -1, -1, -1
			];
			program = "MinigameAction.GainAccessProgram";
		}
	];
	bufferSize = 7;
	extraDifficulty = 20;
}

Q003ShardMinigame : DefaultItemMinigame
{
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#49560";
			charactersChain = 
			[
				-1, -1, -1
			];
			program = "MinigameAction.UnlockSecurityProgramQ003";
		}, 
		{
			programName = "LocKey#49563";
			charactersChain = 
			[
				-1, -1, -1, -1
			];
			program = "MinigameAction.NetworkLootQ003";
		}
	];
}

PredefinedBoardMinigameTest : Minigame_Def
{
	trapsProbability = 0f;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 90.f;
	gridSize = 6;
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				1, 1, 1, 1, 1, 1
			];
		}, 
		{
			symbols = 
			[
				1, 1, 3, 1, 1, 1
			];
		}, 
		{
			symbols = 
			[
				1, 1, 1, 1, 1, 1
			];
		}, 
		{
			symbols = 
			[
				1, 1, 1, 1, 1, 1
			];
		}, 
		{
			symbols = 
			[
				1, 1, 1, 1, 1, 1
			];
		}, 
		{
			symbols = 
			[
				3, 1, 1, 1, 1, 1
			];
		}
	];
	fk< RowTraps >[] gridTraps = 
	[
		{
			traps = 
			[
				0, 0, 0, 0, 1, 0
			];
		}, 
		{
			traps = 
			[
				1, 0, 2, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 1, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 1, 0, 2, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 1
			];
		}
	];
}

PlacideMinigame : Minigame_Def
{
	trapsProbability = 0f;
	timeLimit = 15.f;
	gridSize = 6;
	noTraps = true;
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "Obliterate Defenses";
			program = "MinigameAction.NetworkLowerICEPlacide";
			charactersChain = 
			[
				1, 1, 3, 4, 1, 2
			];
		}
	];
}

VrTutorialMinigame : Minigame_Def
{
	trapsProbability = 0f;
	timeLimit = 999.f;
	gridSize = 5;
	noTraps = true;
	useProgression = false;
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#23401";
			program = "MinigameAction.NetworkLootMoneyVRTutorial";
			charactersChain = 
			[
				1, 1, 2, 1
			];
		}
	];
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				1, 0, 2, 2, 3
			];
		}, 
		{
			symbols = 
			[
				3, 2, 3, 0, 0
			];
		}, 
		{
			symbols = 
			[
				2, 1, 0, 3, 2
			];
		}, 
		{
			symbols = 
			[
				0, 0, 1, 2, 1
			];
		}, 
		{
			symbols = 
			[
				1, 2, 0, 0, 1
			];
		}
	];
	fk< RowTraps >[] gridTraps = 
	[
		{
			traps = 
			[
				0, 0, 0, 0, 1
			];
		}, 
		{
			traps = 
			[
				1, 0, 2, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 1, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 1, 0, 2, 0
			];
		}
	];
}

SuicideMinigame : Minigame_Def
{
	trapsProbability = 0f;
	timeLimit = 20.f;
	float overlapProbability = 0.8f;
	gridSize = 5;
	noTraps = true;
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "Motion Control";
			program = "MinigameAction.NetworkSuicideMotion";
			charactersChain = 
			[
				1, 1, 3
			];
		}, 
		{
			programName = "Force Trigger";
			program = "MinigameAction.NetworkSuicideForceShoot";
			charactersChain = 
			[
				1, 2, 1
			];
		}
	];
}

PredefinedBoardWithProgramsTest : Minigame_Def
{
	trapsProbability = 0f;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 90.f;
	gridSize = 6;
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				1, 0, 2, 1, 2, 3
			];
		}, 
		{
			symbols = 
			[
				1, 2, 3, 0, 0, 0
			];
		}, 
		{
			symbols = 
			[
				3, 2, 0, 0, 1, 1
			];
		}, 
		{
			symbols = 
			[
				0, 0, 2, 1, 3, 0
			];
		}, 
		{
			symbols = 
			[
				1, 2, 1, 2, 0, 3
			];
		}, 
		{
			symbols = 
			[
				3, 2, 0, 0, 2, 1
			];
		}
	];
	fk< RowTraps >[] gridTraps = 
	[
		{
			traps = 
			[
				0, 0, 0, 0, 1, 0
			];
		}, 
		{
			traps = 
			[
				1, 0, 2, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 1, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 1, 0, 2, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 1
			];
		}
	];
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "Basic Access";
			program = "";
			charactersChain = 
			[
				1, 3
			];
		}, 
		{
			programName = "Camera Malfunction";
			program = "MinigameAction.NetworkCameraMalfunction";
			charactersChain = 
			[
				1, 2, 1
			];
		}
	];
}

PredefinedBoardQ003Item : Minigame_Def
{
	trapsProbability = 0;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 45.f;
	gridSize = 6;
	bufferSize = 6;
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				1, 0, 2, 1, 2, 3
			];
		}, 
		{
			symbols = 
			[
				1, 2, 3, 0, 0, 0
			];
		}, 
		{
			symbols = 
			[
				3, 4, 1, 3, 1, 1
			];
		}, 
		{
			symbols = 
			[
				0, 0, 2, 1, 3, 4
			];
		}, 
		{
			symbols = 
			[
				1, 4, 1, 2, 0, 3
			];
		}, 
		{
			symbols = 
			[
				3, 3, 0, 4, 2, 2
			];
		}
	];
	fk< RowTraps >[] gridTraps = 
	[
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0, 0, 0
			];
		}
	];
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#49560";
			program = "MinigameAction.UnlockSecurityProgramQ003";
			charactersChain = 
			[
				1, 0, 3
			];
		}, 
		{
			programName = "LocKey#49563";
			program = "MinigameAction.NetworkLootQ003";
			charactersChain = 
			[
				2, 2, 4, 1
			];
		}
	];
}

PredefinedBoardMQ024Item : Minigame_Def
{
	trapsProbability = 0;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 45.f;
	gridSize = 5;
	bufferSize = 7;
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				0, 1, 4, 2, 3
			];
		}, 
		{
			symbols = 
			[
				2, 0, 3, 4, 3
			];
		}, 
		{
			symbols = 
			[
				1, 2, 4, 0, 0
			];
		}, 
		{
			symbols = 
			[
				3, 2, 0, 1, 1
			];
		}, 
		{
			symbols = 
			[
				1, 3, 2, 1, 4
			];
		}
	];
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#42544";
			program = "MinigameAction.NetworkDataMineLootAll";
			charactersChain = 
			[
				3, 1
			];
		}, 
		{
			programName = "LocKey#42545";
			program = "MinigameAction.NetworkDataMineLootAllAdvanced";
			charactersChain = 
			[
				1, 2, 3
			];
		}, 
		{
			programName = "LocKey#42547";
			program = "MinigameAction.NetworkDataMineLootAllMaster";
			charactersChain = 
			[
				4, 0, 2, 3
			];
		}, 
		{
			programName = "LocKey#51707";
			program = "MinigameAction.NetworkLootMQ024";
			charactersChain = 
			[
				1, 0, 4, 1
			];
		}
	];
}

PredefinedBoardMQ015Item : Minigame_Def
{
	trapsProbability = 0;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 45.f;
	gridSize = 5;
	bufferSize = 7;
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				0, 2, 1, 3, 1
			];
		}, 
		{
			symbols = 
			[
				0, 2, 0, 1, 3
			];
		}, 
		{
			symbols = 
			[
				1, 3, 3, 2, 2
			];
		}, 
		{
			symbols = 
			[
				1, 4, 4, 0, 0
			];
		}, 
		{
			symbols = 
			[
				4, 3, 0, 2, 4
			];
		}
	];
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "LocKey#42544";
			program = "MinigameAction.NetworkDataMineLootAllAdvanced";
			charactersChain = 
			[
				0, 0, 1
			];
		}, 
		{
			programName = "LocKey#42545";
			program = "MinigameAction.NetworkDataMineLootAllMaster";
			charactersChain = 
			[
				1, 4, 0
			];
		}, 
		{
			programName = "LocKey#42547";
			program = "MinigameAction.NetworkLootMQ015";
			charactersChain = 
			[
				2, 3, 2, 1
			];
		}, 
		{
			programName = "LocKey#51707";
			program = "MinigameAction.NetworkLootMQ015Recipe";
			charactersChain = 
			[
				1, 0, 4, 2
			];
		}
	];
}

TutorialMinigame : Minigame_Def
{
	trapsProbability = 0;
	defaultTrap = "MinigameTraps.NONE";
	timeLimit = 45;
	gridSize = 4;
	bufferSize = 5;
	fk< RowSymbols >[] gridSymbols = 
	[
		{
			symbols = 
			[
				3, 2, 1, 0
			];
		}, 
		{
			symbols = 
			[
				3, 0, 2, 2
			];
		}, 
		{
			symbols = 
			[
				0, 2, 1, 3
			];
		}, 
		{
			symbols = 
			[
				1, 3, 0, 2
			];
		}
	];
	fk< RowTraps >[] gridTraps = 
	[
		{
			traps = 
			[
				0, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 2
			];
		}, 
		{
			traps = 
			[
				1, 0, 0, 0
			];
		}, 
		{
			traps = 
			[
				0, 0, 0, 0
			];
		}
	];
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "Data Mine";
			program = "MinigameAction.NetworkDataMineLootAll";
			charactersChain = 
			[
				0, 1
			];
		}
	];
}

DefaultMinigameSymbols : MiniGame_AllSymbols
{
	symbolsWithRarity = 
	[
		"minigame_v2.Common", "minigame_v2.Uncommon", "minigame_v2.Rare", "minigame_v2.Epic", "minigame_v2.Extra"
	];
}

DefaultMinigameSymbols2 : MiniGame_AllSymbols
{
	symbolsWithRarity = 
	[
		"minigame_v2.Common2", "minigame_v2.Uncommon2", "minigame_v2.Rare2", "minigame_v2.Epic2", "minigame_v2.Extra2"
	];
}

DefaultMinigameSymbols3 : MiniGame_AllSymbols
{
	symbolsWithRarity = 
	[
		"minigame_v2.Common3", "minigame_v2.Uncommon3", "minigame_v2.Rare3", "minigame_v2.Epic3", "minigame_v2.Extra3", "minigame_v2.Legendary3"
	];
}

Kab08Minigame : Minigame_Def
{
	timeLimit = 45.f;
	noTraps = true;
	fk< Program >[] overrideProgramsList = 
	[
		{
			programName = "Find Anna Hamill";
			program = "minigame_v2.FindAnna";
			charactersChain = 
			[
				0, 1, 3
			];
		}
	];
}

FindAnna : ObjectAction
{
}

Common : MiniGame_SymbolsWithRarity
{
	name = "Common";
	probability = 0.35;
	symbol = "1C";
}

Uncommon : MiniGame_SymbolsWithRarity
{
	name = "Uncommon";
	probability = 0.28;
	symbol = "55";
}

Rare : MiniGame_SymbolsWithRarity
{
	name = "Rare";
	probability = 0.22;
	symbol = "BD";
}

Epic : MiniGame_SymbolsWithRarity
{
	name = "Epic";
	probability = 0.15;
	symbol = "E9";
}

Extra : MiniGame_SymbolsWithRarity
{
	name = "Extra";
	probability = 0;
	symbol = "FF";
}

Common2 : MiniGame_SymbolsWithRarity
{
	name = "Common";
	probability = 0.30;
	symbol = "1C";
}

Uncommon2 : MiniGame_SymbolsWithRarity
{
	name = "Uncommon";
	probability = 0.25;
	symbol = "55";
}

Rare2 : MiniGame_SymbolsWithRarity
{
	name = "Rare";
	probability = 0.20;
	symbol = "7A";
}

Epic2 : MiniGame_SymbolsWithRarity
{
	name = "Epic";
	probability = 0.15;
	symbol = "BD";
}

Extra2 : MiniGame_SymbolsWithRarity
{
	name = "Extra";
	probability = 0.10;
	symbol = "E9";
}

Common3 : MiniGame_SymbolsWithRarity
{
	name = "Common";
	probability = 0.25;
	symbol = "1C";
}

Uncommon3 : MiniGame_SymbolsWithRarity
{
	name = "Uncommon";
	probability = 0.21;
	symbol = "55";
}

Rare3 : MiniGame_SymbolsWithRarity
{
	name = "Rare";
	probability = 0.18;
	symbol = "7A";
}

Epic3 : MiniGame_SymbolsWithRarity
{
	name = "Epic";
	probability = 0.14;
	symbol = "BD";
}

Extra3 : MiniGame_SymbolsWithRarity
{
	name = "Extra";
	probability = 0.12;
	symbol = "E9";
}

Legendary3 : MiniGame_SymbolsWithRarity
{
	name = "Legendary";
	probability = 0.1;
	symbol = "FF";
}

