package TEST
using RTDB, Items, BaseStatusEffect, ItemAction

[ notQueryable ]
kerenzikov_skiff : LootItem
{
	fk< Item > itemID = "Items.LowQualityDrink10";
}

[ notQueryable ]
kerenzikov_skiff_table : LootTable
{
}

[ notQueryable ]
ccl_garment_test : LootTable
{
}

[ notQueryable ]
gymui_test : LootTable
{
	minItemsToLoot = 10;
	fk< LootItem >[] lootItems = 
	[
		{
			itemID = "Items.Recipe_Preset_Igla_Sovereign_Legendary";
		} : LootItem, 
		{
			itemID = "Items.Q115_Afterlife_Netrunner";
		} : LootItem, 
		{
			itemID = "Items.MediumQualityFood2";
		} : LootItem, 
		{
			itemID = "Items.FirstAidWhiffV1";
		} : LootItem, 
		{
			itemID = "Items.OverheatLvl2Program";
		} : LootItem, 
		{
			itemID = "Items.TShirt_09_old_01";
		} : LootItem, 
		{
			itemID = "Items.Preset_Lexington_Wilson";
		} : LootItem, 
		{
			itemID = "Items.BiotechRareMKII";
		} : LootItem, 
		{
			itemID = "Items.Recipe_OverheatLvl2Program";
		} : LootItem, 
		{
			itemID = "Items.generic_nomad_cookbook";
		} : LootItem, 
		{
			itemID = "Items.CommonMaterial1";
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem
	];
}

[ notQueryable ]
debug_character_loot : LootTable
{
	minItemsToLoot = 1;
	maxItemsToLoot = 1;
	lootItems = [];
}

[ notQueryable ]
craftingTestLootTable : LootTable
{
	minItemsToLoot = 14;
	maxItemsToLoot = 14;
	fk< LootItem >[] lootItems = 
	[
		{
			itemID = "Items.RecipeGrenadeFlashHoming";
			dropChance = 1f;
			dropCountMin = 1;
			dropCountMax = 1;
		} : LootItem, 
		{
			itemID = "Items.CommonMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.UncommonMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.RareMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.EpicMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.LegendaryMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.QuickHackUncommonMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.QuickHackEpicMaterial1";
			dropChance = 1f;
			dropCountMin = 150;
			dropCountMax = 150;
		} : LootItem, 
		{
			itemID = "Items.Recipe_CommsNoiseProgram";
			dropChance = 1f;
			dropCountMin = 1;
			dropCountMax = 1;
		} : LootItem
	];
}

[ Debug ]
[ notQueryable ]
q112_oda_netrunner_cyberdeck : Items.BaseDeckTier4
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< GameplayLogicPackage >[] OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 13;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BufferSize";
					modifierType = "Additive";
					value = 9;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram1";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.OverheatProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram2";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.PingLvl4Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram3";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.EMPOverloadProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram4";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.DisableCyberwareProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram5";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.WeaponMalfunctionProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram6";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.GrenadeExplodeLvl3Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram7";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}
	];
}

[ Debug ]
[ notQueryable ]
q003_royce_netrunner_cyberdeck : Items.MilitechParaline
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< GameplayLogicPackage >[] OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 13;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BufferSize";
					modifierType = "Additive";
					value = 9;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram1";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.GrenadeExplodeLvl3Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram2";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.OverheatProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram3";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.WeaponMalfunctionProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram4";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.EMPOverloadProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram5";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}
	];
}

[ Debug ]
[ notQueryable ]
q110_sasquatch_netrunner_cyberdeck : Items.MilitechParaline
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< GameplayLogicPackage >[] OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 13;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BufferSize";
					modifierType = "Additive";
					value = 9;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram1";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.DisableCyberwareProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram2";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.OverheatProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram3";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.EMPOverloadProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram4";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.LocomotionMalfunctionProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram5";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.SystemCollapseLvl3Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram6";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}
	];
}

[ Debug ]
[ notQueryable ]
mech_netrunner_cyberdeck : Items.MilitechParaline
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram1";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.OverheatProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram2";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.SystemCollapseLvl3Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram3";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.EMPOverloadProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram4";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.LocomotionMalfunctionProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram5";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.WeaponMalfunctionProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram6";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram8";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.MadnessLvl3Program";
				}
			];
		}
	];
}

[ notQueryable ]
InstantFullHealInhaler : Items.Inhaler
{
	displayName = "TEST Instant Full Heal Inhaler";
	localizedDescription = "Test item, Consumable that provides an instant full heal";
	tags += 
	[
		"Quest"
	];
	appearanceName = "drug_10";
	consumableType = "ConsumableType.Medical";
	objectActions = 
	[
		"ItemAction.Equip", {
			completionEffects = 
			[
				{
					statusEffect = "TEST.InstantHeal";
				}
			];
		} : ItemAction.Consume
	];
}

[ notQueryable ]
MassiveCarryCapacityCyberware : Items.MusculoskeletalSystemModule
{
	displayName = "DEBUG Cyberware to increase Carry Capacity";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.CarryCapacity";
					modifierType = "Multiplier";
					value = 10;
				} : ConstantStatModifier
			];
		}
	];
}

[ notQueryable ]
OverPoweredInhaler : Items.Inhaler
{
	displayName = "TEST Over Powered Inhaler";
	localizedDescription = "Test item, Consumable that provides extra damage, grapple abilities, extra resistance, and extra health";
	appearanceName = "drug_10";
	consumableType = "ConsumableType.Medical";
	objectActions = 
	[
		"ItemAction.Equip", {
			completionEffects = 
			[
				{
					statusEffect = "TEST.OverPowered";
				}
			];
		} : ItemAction.Consume
	];
}

[ notQueryable ]
q113_smasher_netrunner_cyberdeck : Items.MilitechParaline
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< GameplayLogicPackage >[] OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 13;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BufferSize";
					modifierType = "Additive";
					value = 9;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram4";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.DisableCyberwareProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram5";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.WeaponMalfunctionProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram6";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.EMPOverloadProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram7";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}
	];
}

[ notQueryable ]
FunctionalTestCyberdeck : Items.MilitechParaline
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram1";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.PingLvl4Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram2";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.GrenadeExplodeLvl3Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram7";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}
	];
}

[ Debug ]
[ notQueryable ]
GymSmoketestCyberdeck : Items.MilitechParaline
{
	fk< ItemBlueprint > blueprint = "TEST.FunctionalTestCyberdeckBlueprint";
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		"Items.GenericRootSlotItem", {
			slot = "AttachmentSlots.CyberdeckProgram1";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.GrenadeExplodeLvl3Program";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram4";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.BlindProgram";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.CyberdeckProgram6";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.SuicideLvl3Program";
				}
			];
		}
	];
}

[ Debug ]
[ notQueryable ]
FunctionalTestCyberdeckBlueprint : ItemBlueprint
{
	fk< ItemBlueprintElement > rootElement = 
	{
		fk< AttachmentSlot > slot = "AttachmentSlots.GenericItemRoot";
		fk< ItemBlueprintElement >[] childElements = 
		[
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram1";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram2";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram3";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram4";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram5";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram6";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram7";
			}, 
			{
				fk< AttachmentSlot > slot = "AttachmentSlots.CyberdeckProgram8";
			}
		];
	};
}

[ Debug ]
[ notQueryable ]
CombatTierHacksProgram : Items.CombatQuickHackUnlock
{
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 114;
	} : ConstantStatModifier;
	quality = "Quality.Rare";
	displayName = "TEST COMBAT 1 (Not all combat hacks)";
	objectActions = 
	[
		"QuickHack.SuicideLvl3Hack", "QuickHack.ContagionHack", "QuickHack.BrainMeltLvl2Hack", "QuickHack.MadnessLvl3Hack", "QuickHack.OverloadHack", "QuickHack.CyberwareMalfunctionHack", "QuickHack.OverheatHack", "QuickHack.WeaponMalfunctionHack", "QuickHack.LocomotionMalfunctionHack", "QuickHack.PingHack"
	];
}

[ Debug ]
[ notQueryable ]
StealthTierHacksProgram : Items.CombatQuickHackUnlock
{
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 114;
	} : ConstantStatModifier;
	quality = "Quality.Rare";
	displayName = "TEST STEALTH 1";
	objectActions = 
	[
		"QuickHack.SystemCollapseLvl3Hack", "QuickHack.CommsCallInLvl1Hack", "QuickHack.BlindHack", "QuickHack.CommsNoiseHack", "QuickHack.CyberwareMalfunctionHack", "QuickHack.LocomotionMalfunctionHack", "QuickHack.PingHack"
	];
}

[ notQueryable ]
FunctionalTestsStackableItem : Item
{
	bool isSingleInstance = true;
}

[ notQueryable ]
TestPrereqLoot : LootTable
{
	minItemsToLoot = 2;
	lootItems = 
	[
		{
			itemID = "Items.Visor_01_basic_02";
		}, 
		{
			playerPrereqID = "Prereqs.AfterFirstVisitAtVictor";
			itemID = "Items.Preset_Katana_Default";
		}
	];
}

